We created a fully-functional quadruped robot coded in Python and remotely controlled via Bluetooth
Twitter:
https://twitter.com/ISTCeducation/status/1526351797199196162
Facebook:
We wanted to create a fully functional robot similar to the Boston Dynamics Spot robot dog, using robotics concepts, electronics, and coding. The robot features a main body, with 4 legs attached to the body. Each leg is flexible and mobile through the actuation of 3 servo motors: 1 connecting the leg to the body to adjust the angle perpendicular to the body, 1 adjusting the angle coplanar to the side face of the body, and 1 at the middle of the leg making a joint similar to the knee of a dog. Servo motors are highly precise so with proper code we are able to control the motions of the robot to be similar to the motion of a dog in real life.
The main body of the robot is 3D-printed, which required computer-aided design (CAD) on Autodesk Inventor, and iterative design as 3D prints take multiple phases of testing and redesigning to work. This required the use of the 3D printers both in our Academy lab workspace and our own personal 3D printers. Electronics are used to program and control the 12 servo motors (3 per 4 legs), and we used our knowledge of digital electronics to properly wire the 12 servo motors (as well as additional sensors and other devices added to the dog) to a microcontroller.
Our microcontroller, a Raspberry Pi Zero W, can be coded using computer programming languages like Python and C++. We already had knowledge of these programming languages prior to starting this project so this stage of the build was not extremely unfamiliar; however, the coding portion still took a significant amount of the total time on this project just because of the complexity of an interactive robot dog in order to make it as realistic as possible.
The SpotMicro robot dog is an open-source project. While the original creator designed 3D parts for the robot and published a list of necessary hardware (See: https://www.thingiverse.com/thing:3445283), he did not release code or a program for the robot. This means other people have created their own unique code for the robot and many have published this code online.
In addition, many people have modified the robot's design, including changing the 3D printed parts, adding or removing electronic components, and changing how the robot is controlled. Some of these modifications, also known as "remixes," are shown below.
We created a version of the SpotMicro robot that works with a controller. We had to modify 3D-printed parts using CAD, change the assembly using custom hardware, and create modifications to the code to make our robot dog with an Xbox One controller.
The original design.
Uses an ultra-sonic sensor for mapping or obstacle avoidance.
Uses hot glue and screws, nuts, and bearings to assemble parts.
The SpotMicroAI robot with a remote controller instead of sensors.
Uses an Xbox One or PS4 Controller.
We based our robot dog on this type of design.
A modified design.
All nuts and bolts were replaced with self-tapping screws (easier and faster to assemble and open/close covers to access electronics).
Due to the self-tapping screws change, no more gluing of any part.
The foot is now bigger on the inside, and the wrist smaller (not noticeable from the outside, but it will have better elasticity).
SpotMicro with an optimized design for support-free 3D-printing. It utilizes an ESP32-DevKitC for the low-level control of the electronics.
The heavy computation is made by external devices, which in return have the power to command the robot.
Adds a reinforced shoulder joint cover as well as a shorter rear cover and back plate.
Uses 625ZZ ball bearings (as for the original).
The Shoulder Cover attaches to the extended Servo Cap using 3x20 mm screws and M3 nuts (as used by original build).
Hidden screw and nut holes on shoulder cover for a smooth look.
Prints support free.