3D Printed Mobile Robot

I completed this project over the summer between finishing undergrad and starting grad school and it is probably the most fun project I have worked on. Other than a few fasteners and the electronics, everything on the robot was 3D printed. I based the design off of an open source design but modified the design to make it wider, my goal was to power all of the electronic systems from one battery so I needed to carry a large battery.

I decided to use a large portable charger for a power source, mainly because of the large capacity (30,000 mAh) and the 12V DC output, but at the time it was on sale on Amazon and I wanted to spend as little as money as possible. The brain of the robot is a Raspberry Pi 3, I wrote python code that runs locally on the Pi and listens for keyboard commands over SSH and actuates the GPIO pins, meaning that I was able to control the robot from any computer over a local network. The power train consists of the large battery, two brushed DC motors with gearing, and an H-bridge to control each motor's direction independently. I was able to use the same battery to power the Raspberry Pi and the motors, I achieved this with simple circuit design and Buck Converters to regulate the DC voltage. The Raspberry Pi runs on 5V and the motors were rated for 3.3V, but when supplying the motors with 3.3V they were producing too much power and the robots tracks started to slip. Using a Buck Converter allowed me to adjust the voltage to find the sweet spot to mitigate slippage. The robot also has a camera on it that can be streamed through SSH as well.

My goal for this project was to have this robot be able to explore and map a room autonomously. But you may have noticed the robot has feedback and thus I am doing open loop control. I started to modify the design to include wheel encoders so the robot has feedback that it can use for more advanced control techniques. But then I started my PhD and free time was no longer abundant. I plan on revisiting this project in the future and incorporating wheel encoders and a Lidar sensor so I can implement existing SLAM methods (localization and mapping).