a scene of a bathtub

Allo

Mia's 'ancestor': Robotgator, V1 first version of Mia, V1 latest version of Mia, V2

Mia

Creators: Augusto Mota Pinheiro
Start Date: ~ 08/2020
End Date: N/A
Medium & Tools: Arduino | FreeCAD | 3D Printing

Project Summary

During my 2 years at Dawson, I had the opportunity to work on a more advanced project, one of my choosing, for my Art of Physical Computing class. With the very appreciated help from my teacher, John Connolly, I came up with this project idea: a quadruped robot!

Having done close to no embedded projects in the past, this was a completely new field for me, mixing CAD, 3D printing and the Arduino platform. I had to learn a lot of new things on the fly which meant a lot of mistakes, from those I managed to grow my knowledge of the field considerably as well as come up with a pretty cool bot!

As I will detail more below, I had to restart the project from scratch with different objectives halfway through, which is where Mia is born. It's a project that I intend to keep working on, so I'll update this page as I go!

FreeCAD design of the front skeleton of the bot FreeCAD design of the entire skeleton of the bot FreeCAD design of the bot with servo mockups FreeCAD design of the bot with more detailed servo and Arduino mockups FreeCAD design of the entire bot with legs and all overview of the 3D printed bot's skeleton full 3D printed view of the standing bot

Robotgator

Bill of Materials

My initial idea was to create an aquatic alligator-like robot that would have a gait very similar to an alligator's.

This meant coming up with the design, creating it in FreeCAD, printing it and testing it. The best way to approach this is in an iterative fashion, so quick design and quick testing to rapidly get useful feedback which was not what I did and was my first big mistake.

Looking back, it's obvious now why Robotgator failed so badly in the "functional" sense. The base concept was decent, but the joints were fragile, the ground contacts were too small, the bot was too heavy for its 9G servos and it lacked space to properly attach the Arduino UNO.

The result of this first attempt was very physically underwhelming, but I learned a lot and I applied those learnings in my next iteration Mia.

Mia lifting a paw off the floor the bot's internal circuitry the inside of the bot's head elastic around her paw's to improve adherence corner view of version 2 of the robot, with reinforced shoulders top view of version 2 of the robot, with reinforced shoulders side view of the TPU paws Windows companion app screenshot

Mia

Bill of Materials

Mia is the best and most relevant part of this project. Having learned everything I could from Robotgator (and having done an extensive after action report, accessible here) I set out to accomplish a few, more specific goals with this iteration: start from a base, not from scratch and focus more on the software. These goals would allow me to concentrate on a smaller project, that I could take further and farther.

With that mindset, I found the Spot Micro Open Source Project and started work on Michael Kubina's version which was excellent for a beginner like me! From the project's Github page I found all of the necessary CAD files to start printing. My teacher and I decided that it was best to get the physical design part out of the way, as it was the biggest slowdown last time.

I managed to have inverse kinematics to work, implementing an algorithm from scratch using trigonometry, have some a kind of obstacle avoidance system using its ultrasonic sensors (where it simply stops moving if there's an obstacle close) and code a companion app with WPF where the bot can be controlled through Bluetooth (repository here) and sensor data is displayed (last image above). All of that, programmed in decently optimized C++ on an Arduino, the repo of which you can check out here.

I finished the "school" part of the project at the end of my program at Dawson, in June of 2021, and I've been improving it ever since with some recently added reinforced shoulders (from the mod section of Michael's Repository) and some flexible TPU paws, as well as improving the codebase for the companion app.