top of page

Building a 3D-Printed Quadruped Robot

  • Writer: Sharvesh
    Sharvesh
  • Jan 12, 2024
  • 3 min read

Updated: Apr 24, 2024


Introduction

This post covers most of the explanation of the design and manufacturing of the quadruped. While the explanation of the entire project would be considerably long for a portfolio post, I will try to cover most of the major steps without going too deep into the math.


Design

The idea, in essence, was to use motion capture data of horses to generate a baseline policy for the quadruped, and use some domain randomization and adaptation to modify the policy so that it is robust enough to deploy onto a physical quadrupedal robot. The hope was that this would lead to more natural and robust gaits as we would be leveraging (or at least partially) the millennia of evolution and adaptation. The first problem was that there was no quadruped. That kicked off a whole year of developing, testing, and (a lot of) redesigning to manufacture a quadruped robot. The quadruped is a 12-D.O.F robot with three actuators (hip abduction, hip flexion and knee flexion) on each leg with no exteroceptive sensors with a raspberry pi 4 controlling it.  


To design the actuators BLDC motors were an ideal choice. BLDC motors are power dense (perfect for the movements of the quadruped), and with a bit of feedback, we can make them perform pretty precise movements. MJBOTS offered reasonably priced BLDC servos that provided the required torque and actuation resolution, making them well-suited for the project. With a bit of research, it turned out that getting the BLDC motors and the encoders separately reduced the costs significantly (We require 12 servos, so we end up saving a lot more in the end). Of course, this meant that the actuator had to be designed.  


Initial Prototype of the quadruped


Below are the parts which were used for the quadruped:  


Device

Name

Comments

BLDC Motor

A 330Kv motor with a peak power of 600W and a max RPM of 7500

Servo Controller

This will allow you to turn a brushless motor into a servo.

Power Distribution Board

Two of these for all 12 actuators

Magnet

You will need to attach this to the rotor of the BLDC motor.

Battery

One of these is capable of powering all 12 actuators. You could get another and have one for each power distribution if you want longer runtime.

JST PH-3 to DB9 Connector

This cable allows you to connect fdcanusb to the moteus controller.

USB 2.0 to CAN-FD bus

This provides a USB 2.0 interface to a CAN-FD bus. You would need this for configuration and running other tests.

Controller

There is a pi (4b or 3b+) hat available at MJBOT which I would recommend to use.


Note: I have not added other additional accessories like connectors, housing and planetary gear set.


Older Iteration with Belt-Driven knee joint

The actuator had a BLDC motor, a magnetic encoder (a small magnet was attached to the shaft of the BLDC motor) to establish feedback and control, and a 6x planetary gear reduction housed inside the casing. The actuator casings were completely 3D-printed. In fact, almost the entirety of the quadruped was 3-D printed using PETG and PLA. I understand that 3-D printed parts cannot take as much load as, say, a machined aluminum part, but I was not expecting the quadruped to move fast or take on any significant loads. This also meant many more iterations of the quadruped could be developed and manufactured quickly. In addition, a broken part (if any) could be printed in a couple of hours and replaced. Overall, it just made more sense to 3D-print the entire bot rather than introduce machined parts, which would have made the robot costlier and made it heavier.


The MJBOT's power dist r4.5b allowed 6 separate power channels, and that meant two of these boards could power up all 12 motors. The initial design had a belt-driven leg. The idea here was that by placing the knee actuator closer to the hip, we would reduce the overall inertia. However, getting the tension right for the belt not to slip was harder than anticipated, so I just ended up moving the belt drive to a direct drive. This did meant that the leg inertia should increase, but as I mentioned earlier, I wasn’t really planning on faster gaits.

The actuators were all daisy-chained with a resistor at the terminal connection. Each actuator had a unique address which was used to move specific motors.


Newer iteration with a direct driven knee joint

As you might have noticed, the foot is just a bouncy ball with some epoxy infill. It was an excellent choice as it was light and maintained good friction with the floor. Maybe using some flexible material such as TPU could be a nice alternative.






Sharveshwaran Umashankar

Hi, I am a graduate student at the University of Minnesota's robotics institute focused on data-driven control and passionate about deploying them in real-world environments. You can contact me at umash002@umn.edu

bottom of page