Monday, June 2, 2014

Car Design

Car Design

The NXT car uses an Ultrasonic Sensor from LEGO® MINDSTORMS™ NXT

The NXT car was build with wheels that steer the vehicle with a Servo Motor.   
The NXT brick positioned on top of the car frame administers the operation of the Servo Motors.    


The NXT car also possesses a Light Sensor from LEGO® MINDSTORMS™ NXT

Servo Motor B is the engine of the NXT car and provides the power for the car to move back and forward.


Code

For the benefit of future students, we have decided to post our code. The code is barely commented and somewhat disjointed in places, but it works and our algorithms should be pretty straightforward to understand.

https://www.dropbox.com/s/vy53db9yh48rm87/ENGR103.zip

Additional Video

Before week 9, I created a video describing the way in which the robot traverses the environment and senses parking spots. This video shows the robot working in a different environment than the one created for the demonstration.

Note: this was before the location-preference code was written.


Wednesday, May 28, 2014

Week 9, Showdate

Week 9 is the final showdate for our robot. By now, the entire environment is built and the robot can successfully navigate it, correct it's navigation by following the specified road, and park in the closest available parking space to its destination upon scanning the environment for a suitable space and choosing the preferred type of parking position/style.

Check our robot's performances are here:

Parallel:

Perpendicular:


Wednesday, May 21, 2014

Week 8, Path correction

Week 8 is the final week for adjustments to our robot. In week's 6 and 7 we tried to make the robot park in suitable spaces while ignoring spaces that it can't fit into. Our current goal is to make sure the robot can not only detect parking spots, but also be able to move across a street properly.


One issue that occurred was the light sensors incorrectly detecting the street below it; sometimes the robot seemed to completely ignore the street and continue on its own path. We attempted to fix this via blocking external light to force the robot to detect only the street and set the light sensors to adjust around two strips of "guidelines" to make the robot correct its path once it deviated.


Afterwards we adjusted the code to be able to follow the path up to the point where it detected a valid parking slot. After detecting the spot, the robot would ignore the street and do its parking duties. To do this, we first set up a "wall" for the robot to detect behind the parking spot so the robot could choose which parking program (parallel or perpendicular) to use. We plan to continue working on it, but as of now we have successfully made the robot prioritize parallel parking.

Week 7 :Perpendicular Parking







Week 7 was one of the trickier weeks for our group. We had to work out a few problems with our robot's behavior such as never parking properly and sometimes even failing to detect parking space!


However, we managed to work out the problems regarding detecting parking space and through plenty of trial and error we were able to make the robot park itself properly.


Check out our robot's perpendicular parking ability now:






Wednesday, May 7, 2014

Parking Week 6

Week 6 was very productive for our group. Our Robot is constructed and it is able to self-park based on obstacle sensing. Additionally, we managed to add an additional program to adjust its trajectory based on the "walls" for it to follow.

Currently, we are trying to manage to get the programs to work together more consistently. The robot can reliably park itself upon finding an open spot, however it cannot work at the same time as the program that tries to adjust its trajectory. We expect to get this issue resolved soon and in future weeks we plan on adding perpendicular parking.



Wednesday, April 30, 2014

Parallel Parking Week 5

We are currently working on parallel parking. Check out our progress!


Wednesday, April 23, 2014

Week 2 Progress

Week 2 was a productive week for our group. We were able to successfully install the LejosJ firmware on the NXT brick and begin to learn about the vast library of commands that Lejos affords us. In addition, the preliminary construction of the robot and environment were completed.

One of the design constraints of the robot is that it must drive like a real car. To achieve this, we will use two motors to drive the rear wheels, and a third motor to turn the front wheels. This way, the car can be driven without varying the speed of the driving wheels. This design does not come without problems, however, as the mechanical construction is a lot more complicated and unforeseen physical interference with moving parts will be a problem. That being said, it is something that we hope to work on in the coming weeks so that we can begin to focus on the programming of the robot.

Wednesday, April 9, 2014

What is out there?
Society is becoming ever more automated, and every day, engineers develop new ways to make our lives easier and safer. Parallel parking is considered by many to be one of the most difficult skills associated with driving, and is the second most common reason for failing a driving exam. 
Self-park cars fifteen year ago sounded unrealistic, but today there are companies that are developing this technology. Ford created an Active Car Assistant where the driver has control over the acceleration of the vehicle, while the wheel is controlled by the computer. 

Audi has the Audi Connect, which without human directions can search for a parking space and park itself. It can also go back to the original position and pick up the driver. 


Other companies that works towards this technology are BMW, with the BMW ConnectedDrive. This car searches for a suitable parking space and parks itself.