Food Delivery Robot

ezgif.com-gif-maker (5).gif
 

The Fall 2020 AA274A project was to design a fully autonomous food delivery robot (in simulation). Using a software stack we developed over the course of 8 weeks, we were able to simultaneously map and navigate through an unknown environment (SLAM), detect and save location of vendors using a convolutional neural network for image detection, and finally receive an order from a user to pick up and deliver items from vendors.

The Turtlebot robot we used featured both a forward facing camera and LIDAR (scanning laser rangefinder). The software used was ROS in Python combined with RVIZ for visualizing the robot parameters and Gazebo for running the visual and world simulation.

robot-1.jpg
ezgif.com-gif-maker (3).gif

Our group additionally implemented an obstacle avoidance algorithm taking advantage of LIDAR data to further add to the safety of our robot when navigating this tight world. The robot is also able to obey traffic laws by detecting and performing the correct actions when met with a stop sign in the world.

robot-1-8.jpg

Above you can see what the Turtlebot looks like in Gazebo simulation software and below you can see what an actual Turtlebot looks like. Note the Velodyne LIDAR mounted on the top and the small camera module mounted below it.

robot-1-9.jpg
 

Demo Videos

Below is a mapping demo. I manually drive the robot around the world as it both locates itself and maps the world. As we pass by the objects in the world, the robot publishes a marker in RVIZ indicating where it thinks the location of that object is in the world. The green line on the ground indicates the path the robot has planned using the A* trajectory planning algorithm.

Below is a video of the robot performing an autonomous delivery. It receives and order for an “apple”, drives to the apple while obeying stop signs, waits to pick up the order, and finally drives back to the home base avoiding obstacles and walls along the way. It should be noted that the request can contain any number of items (e.g. Apple, Banana, Carrot, Banana, Carrot). It will process and deliver the orders in the order that they are received.


robot-1-5.jpg
robot-1-6.jpg