Compliant Quadruped Legs Using Servos

Walking robots that move smoothly are tricky to build and usually involve some sort of compliant leg mechanism — a robot limb that can rebound like natural physiology for much better movement than what a stiff machine can accomplish. In his everlasting quest to build a real working robot dog, [James Bruton] is working on an affordable and accessible Mini Robot Dog, starting with the compliant leg mechanism.

The 3D printed leg mechanism has two joints (hip and knee), with an RC servo to drive each. To make the joints compliant, both are spring-loaded to absorb external forces, and the deflection is sensed by a hall effect sensor with moving magnets on each side. Using the inputs from the hall effect sensor, the servo can follow the deflection and return to its original position smoothly after the force dissipates. This is a simple technique but it shows a lot of promise. See the video after the break.

A project can sometimes develop a life of its own, or in the case of [James]’s OpenDog, spawn experimentally evolving offspring. This is number four, and it’s designed  to be a platform for learning how to make a quadruped walk properly, and to be simple and cheap enough for others to build. We’re looking forward to seeing how it turns out.

If you missed it, also check out this robot’s weird sibling, self-balancing Sonic.

4 thoughts on “Compliant Quadruped Legs Using Servos

  1. Speaking as a mechatronics engineer, it’s a nice idea, but I think what we really need is a somewhat affordable BLDC controller with current control/feedback which could implement this directly in the controller (torque of the motor (at one position is the torque is directly proportional to the current through the coils, implement a decent sine-wave control on all phases and you have an almost constant force. The K factor on your PID controller can then give you any spring constant you want) . That way you have much tighter control over the spring force and can give it any compliance curve you want, even a non-linear one (which I think would be what you want on a project like this)

    1. I would love to have something like that available in a roughly hobby servo sized form factor and without costing the world. I don’t think I’ll see such a thing without implementing it. I had some hopes for the OpenServo project a few years ago, but that seems to have gone away.

    2. I’m not sure I’ve correctly understood this article, but it seems his solution does not use energy to maintain an (equilibrium) position while a BLDC does. It’s more limited, but not exactly the same goals.

      1. It’s still using the servo to maintain position, just using a spring compliance on the position sensor side (instead of the drive side) to create a compliance effect.
        When there is force on the leg it forces the spring (and the leg position sensor) out of position. The servo moves to compensate, reducing tension on the spring (and the leg) back to the 0 setting. When the force is removed the spring contracts and moves the leg position sensor the other way, again causing the servo to move to compensate (and thus raise the leg back up).

        The overall force at rest on the servo is still the same.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.