Autonomous Delivery System

I worked in a team of 4 to build, design, and program a robot that can pick up "bags" of groceries" from known and unknown locations and deliver them to specified delivery points. 

This was to be done both autonomously and manually in a teleop mode. I was in charge of the teleop mode which was done with wifi on my phone and assisted with troubleshooting the code. Our system was pretty successful and ended up as one of the fastest teams.

Final Demo

RBE 1001 Final test run

The course consisted of paths as strips of black tape which were followed with a line sensor. There was a trial and error process with the PID values to make the robot follows the line smoothly. The bags were of varying weights and the delivery points were of varying height. Some counterweights were added to the back of the arm to handle the heavier packages.  A state machine was used to let the robot know which paths to take and which paths it has already taken. To detect the free-range bag, we decided to put the ultrasonic on the side of the robot as it drives until it sees the package. This made detecting the raised delivery points a bit more difficult but it was worth it as our team had one of the best performances in detecting the free-range bag. 

Front view showing the mounting position of the arm and the line sensor in front and the ultrasonic to the right

Side view showing the ultrasonic sensor and the counterweight balloon of flour and batteries on the back