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.