Quadruped (In Progress!)
I’ve always been fascinated by biomimetic robots, from MIT’s robotic cheetah to Boston Dynamics’ Spot. I was especially interested in learning the kinematics that define their movement. During the summer after my sophomore year of college, I decided to challenge myself to design, build, and program a quadruped from scratch.
Objectives
- Able to walk forward, backward, turn, adjust height and trot
- Each leg with have 3 DOF
- Cost less than $300
- Implement PID control for stabilization
Materials
- 12 MG996 Servo Motors
- 12 bearings
- Teensy 4.0
- 7.4V NiMH Battery
- …will update soon!
Research
I watched several videos on makers building quadrupeds, helping me break down the project into smaller steps: design a leg, get it to move vertically, get it to move horizontally, design the full quadruped body, test and iterate. I began by performing simple hand calculations to determine the mass of the total robot and the torque required in each leg to support the weight.
- Body length: 10-11 inch
- Body width: 5 -6 inch
- Upper leg segment: 4 inches
- Lower leg segment 3.5 – 4 inches
- Each leg can carry a load of 1.3 kg
- Stall torque is 11kg but at max power torque operational is 6 kg
- Total robot weight must be no more than 1.2 kg → 3 pounds
Then, I began to design a single leg. To improve the robot’s balance, I focused on concentrating the leg’s mass near the center of rotation. This led me to mount the servos close together and incorporate linkages into the design. Each leg is composed of a femur and a tibia, providing 3 degrees of freedom.
Design
I began by designing a single leg in Onshape. To enhance balance, I concentrated the leg’s mass near the center of rotation by mounting the servos close together and incorporating linkages. Each leg consists of a femur and a tibia, giving it 3 degrees of freedom. After testing multiple variations, I arrived at the current design. One major challenge was creating features that could be properly secured with screws or bolts after partial assembly, which pushed me to approach the design with assembly in mind. Another hurdle was fine-tuning the linkage geometry, early versions often collided with the femur, restricting smooth movement through the full range of motion
After refining the design of a single leg, I moved onto designing the full quadruped body, which was limited by the size of the print bed.
More on the design coming soon!


Build
I 3D-printed the leg at a local makerspace out of PLA and used standard M3 screws throughout the build.

Electronics
I custom designed a PCB that could distribute power to all the electrical components. First, I performed calculations to select a battery.
Battery Calculations
- Servo motor specs:
- Torque at 6V = 12 kg/cm
- Torque at 7.2V = 13 kg/cm
- Recommended voltage: 5V
- Current usage: 2.5A
- Powering 12 servos:
- 7.2 Volt battery
- Max current draw: 12 * 3 = 36 A
- I = I_stall * (T / T_stall)
- I = 3 * (6/11) = 1.3-1.6
- Max Current Draw: 15.6 – 19.2A
- Max Current Draw for 500mA = 6A
PCB Design
I learned to use Altium to design the PCB, which consists of the following:
- Teensy 4.0
- XT60 connector
- Power converter
- Adafruit BNO080
- FS2A Receiver
In the first version of my PCB, I placed the power converter module too close to the USB port, preventing me from programming the Teensy once everything was soldered together. I also realized I oriented the receiver incorrectly. I corrected these issues and cleaned the routing in the second version.


Software
The quadruped’s movements can be controlled using inverse kinematics, derived through trigonometry and the law of cosines. After determining how to make the leg move vertically and horizontally, different gaits can be programmed. A common example is the semicircle gait, where opposite diagonal legs trace semicircular paths in alternating sequence. Each gait can be viewed as a function of x and y coordinates, where vertical translation (y) and horizontal translation (x) are interpolated to position the leg precisely.

Results
Coming soon!