September 2019 Update

A project log for mjbots quad

An open-source, affordable, dynamic quadruped robot

Josh PieperJosh Pieper 09/30/2019 at 12:534 Comments

I've made a lot of progress in the last year, but of course still have a lot to do!  This update video has a quick tour.

And now for some details, eventually I guess I should split these up into their own separate projects...

Moteus Controller

I'm up to the fourth version (r3.1) of the open source moteus brushless controller, designed explicitly for legged robot applications.  It has a similar purpose to the Dizzy Servo or the Mini-Cheeta controller, but was designed to support a higher bitrate communications channel and eventually be produced in moderate volumes.

R3.1 specifications:

This version has received a fair amount of testing.  It is possible to heatsink to the back of the board, and I did some thermal profiling while doing so:

I've also run it in a jumping configuration continuously for hours at a time.

Moteus M80 Servo

The moteus controllers are integrated, along with a disassembled brushless 8108 quadcopter motor and a planetary geartrain, into the moteus servo.

R1 specifications:

The mounting patterns allows for a variety of useful mounting configurations.  Combined with the internal bearings, it can support large cantilevered loads, like those required for a jumping robot.

mjbots robot leg

With a similar design spirit to the Mini-Cheetah, the mjbots robot leg is designed to be largely 3d printed from PETG rather than machined.  It provides excellent maneuverability in all three axes.

R1 specifications:

mjbots quad A0

The robot is a chassis with an integrated computer, battery mount, power distribution, and 4 mjbots robot legs.  It runs the open source mjmech software for gait sequencing and control.

R1 specifications:


deʃhipu wrote 09/30/2019 at 13:23 point

Wow, this looks great! You have put a lot of work into it already. I understand that you want to further improve the mechanical design, but I think you already have enough to have a really good gait, if you only change the strategy a little bit.

Right now you seem to rely on moving the legs very fast in small steps to avoid the robot tipping over when the leg is raised. But I think you could instead balance with the whole body of the robot, moving it away from the leg before it is going to be raised, so that all the weight of the robot rests on the remaining three legs. That way the robot is statically stable, and you can make the steps as slow as you want, or even stop in the middle of it, without falling. You can then also make the steps much longer, increasing the speed and making it look more natural.

  Are you sure? yes | no

Josh Pieper wrote 09/30/2019 at 13:54 point

Yep.  I have actually done that in past iterations of this design and could definitely do so again if I wanted to.  

However, rather than resurrect that gait, my current plan is to inertially stabilize the leg lift off phase to give a larger amount of time before the legs need to get down.

  Are you sure? yes | no

Josh Pieper wrote 09/30/2019 at 14:01 point

Or rather, I might re-implement a statically stable gait at some point, it just isn't at the top of my personal priority list right now.  My goal for the gaits at the moment is to demonstrate more dynamic motions, like high speed movement and more aggressive jumps.

  Are you sure? yes | no

deʃhipu wrote 09/30/2019 at 18:15 point

Makes sense, thanks!

  Are you sure? yes | no