Open Quadruped Build
During the fall 2024 semester at BU, I was given the opportunity to build a project of my own at BU's RASTIC facility. I chose to build the Open Quadruped, initially designed by Maurice Rahme and Adham Elarabawy. This project was quite well documented and had very interesting design choices, such as the use of belts for leg actuation and 12-point Bezier Curves as part of a machine-learning reinforced gait. Their GitHub repos and an image of the finished project are below:
Maurice Rahme: https://github.com/OpenQuadruped
Adham Elarabawy: https://github.com/adham-elarabawy/open-quadruped
I began this project by reading the documentation on both pages to understand why the original developers chose certain materials, electronics, and actuators. I also quickly read through the codebase to gain a basic understanding of the system. Once I felt that I had an adequate understanding of the quadruped, I asked the lab director, Dr Kenn Sebesta, to order parts from the BOM I had assembled, as well as permission to use RASTIC's resources, such as their 3D printers and filament, and the ARENA testing facility within the lab.
While waiting for the electronics to arrive, I 3D-printed the quadruped, ensuring the layer lines were optimized for strength. During this process, I also had my first encounter with printing TPU 90A rubber filament for the quadruped's feet. This process required me to research settings and bed layouts to achieve an adequate finish on the tread at the bottom of the feet. Once the parts had all been printed, all that was left was to wait for the electronics to arrive.
The electronics in question were a LiPo battery, a BNO55 IMU, hall-effect sensors, a buck converter, a UBEC, a Teensy 4.0 microcontroller, a Raspberry Pi 4, a specialized power distribution board, and 12 25 kg servo motors.
The system's electronics work as follows: The LiPO battery powers the entire robot, and its voltage is stepped down twice: first at the buck converter, where it drops from 12V to 5V, and then to the Raspberry Pi, sensors, and Teensy. The second step-down conversion is the UBEC, which powers the distribution board. This board powers the motors at either 5 or 6 volts, and connects the sensors to the Pi, the Pi to the Teensy, and the Teensy to the motors.
After soldering some header pins to the distribution board and some XT60 connectors to the battery leads and the board's input, it was time to start assembling the robot.
Before assembling the body, I connected the motors and Teensy using the distribution board and ran a calibration script. This script moved the motors to their central positions so that when the entire system was assembled, the legs would be set to the correct positions. I then assembled the central body—the robot's "hip"—and finally the legs. I then disconnected the motors from power and began to screw in all of the electronics, except for the Raspberry Pi.
One of the most impressive aspects of this robot is its extensive modular software architecture, which uses reinforcement learning to optimize its gait on rough terrain. To take advantage of this work, I would need to build that same ROS environment on a Raspberry Pi 4.
Therefore, the next step was to flash the Pi with Ubuntu 20.04 server edition, so that the correct ROS version, ROS Melodic, would run as well as possible.
This part of the process was fairly difficult. The repo has not been updated in some time, and many parts of the software stack are outdated or use older versions of certain libraries. Therefore, a significant amount of time was spent just upgrading and downgrading certain tools to match the system's requirements. The highlight of this process was replacing the Fortran compiler, an action that prompted several warnings and could have forced me to start the entire Pi programming process from scratch.
Once this was done, I added the Pi to the quadruped. I also connected it to the Teensy and ran a quick script to verify that ROSSerial, the connection between the two boards, was working properly. Below is a video taken right after I got the legs to move from an external controller.
The quadruped was now ready for testing. As I was running the system on wall power at the time, I quickly threw together a test rig and began walking trials at RASTIC's ARENA facility. A video of one of my favourite runs is below.
The robot's performance was admirable, but there were a few problems, such as frequent skipping of the belt-driven legs, and I had to connect the system to a power supply to ensure everything worked properly before using the LiPO battery.
To improve the robot's performance, Professor Sebesta and I redesigned some of its components. The professor advised me that the robot's gear teeth could likely be adjusted to grip the belts more securely. He also suggested splitting the leg into multiple materials, using stiff PLA for the majority of the leg and PETG for the gear teeth. His approach was very interesting: he added a plastic thread so no additional fasteners would be required, keeping the BOM outside the legs unchanged. We also targeted the tensioner system, using brass rods instead of PLA so the belts would encounter less resistance as the legs moved, making them easier to tension. Two images of this redesigned leg are below.


In addition, we increased the size of the battery compartment to enable the robot to run longer and reconfigured the electronics compartment to ensure all components fit better. There were some other small changes, such as swapping out some nuts for heat-set inserts, standardizing the fastener size to M3, and adding an off switch at one end of the robot to act as a "tail".
An image of this robot version and a CAD image are below.


I learned a great deal from this project, as I had to validate inverse kinematics and gait patterns, incorporate ROS and serial commands, program in Linux, Python, and C++, understand the electronics requirements of robots, and follow good project standards. Once again, I would like to credit Adham Elbawary and Maurice Rahme for their open-source work and Professor Kenn Sebesta for all his help.




Comments