Skip to content

AntonioCervantes/ARoD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

ARoD - Autonomous Robot of Delivery

ARoD was a project done by a team of four Mechanical Engineering senior project students at San Jose State University. The purpose of this project was to design and build a fully autonomous delivery robot that can deliver food and supplies on the San Jose State University campus. The goal for the team was to have ARoD deliver food from the Student Union to the Martin Luther King Library completely autonomously. The team was succussful in completing this goal and a video of the delivery route can be seen in the following video.

https://youtu.be/VCPlvbe8okU

The robot itself was designed and built completely from scratch by the team. The drive system is a ackermann-based system that features a different gearbox and an ackermann steering mechanism. The drive system chassis is mach made from t-slot extrusions and 3D printed parts. The main body chassis features a secure locking food compartment and housing for electronics and sensors. The main aesthetic to the main body of ARoD is the LED panel which displays eyes giving the robot personality and friendliness. The main body ws built with acrylic plastic and 3D printed parts.

Chavez Fountain

Main code loop

The main code can be seen in the graph below. The region colored in red is the food delivery loop, and the blue is the navigation and obstalce avoidance loop. All of the code was written in multiple modules that feature functions for sensors and logical calculations. The Waypoint_Navigation.py is the master code script that is run on ARoD's food delivery process.

ARoD main code loop

Interesting Features

GUI using GUIZero

We created a graphical user interface to help with testing and remote control of the robot. Using the GUIZero python library this GUI feature buttons to steering, opening and closing the food compartment door, turning on and off the drive motor, and motor/ESC calibration. Code for the GUI can be found in guizero_gui.py

GUI

Magnetometer Calibration Scipt using MATLAB

The robot uses a magnetometer for heading information, and the sensor we used was the LSM9DS1 from Adafruit. To get usable heading direction information the sensor had to be calibrated for magnetic interferences. We created the Magnetometer_Calibration.m MATLAB script to read in raw sensor data and calculate the XYZ hard iron offsets. An example of the calibration can be seen in the following graphs.

Uncalibrated RPI_uncal_data

Calibrated RPI_cal_data

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published