How does a biped humanoid robot like OttoDIY moves? What is the sequence of foot & legs servos? Can make it move forward, by lifting one foot up and turning leg, and then repeating the same steps for the other leg, it just staying in the same place. Can't use other libraries, need the algorithm, the sequence of movements. Is there a tutorial which explains different movements using 4 servos.

  • Left Foot Up
  • Left Leg Turn
  • Left Foot Down
  • Right Foot Up
  • Right Leg Turn
  • Right Foot Down

This doesn't seems to work, and the robot stays in the same place

  • $\begingroup$ there are several videos on YouTube ... play them back at slow speed $\endgroup$
    – jsotola
    Apr 10 at 16:41
  • $\begingroup$ tried that, not able to understand the same. $\endgroup$ Apr 10 at 19:27
  • $\begingroup$ Welcome to Robotics Priyank, but I'm afraid that Unbounded Design Questions are off-topic because there are many ways to solve any given design problem. We prefer practical, answerable questions based on actual problems that you face, so questions which ask for a list of approaches or a subjective recommendation on a method (for how to build something, how to accomplish something, what something is capable of, etc.) are off-topic. Please take a look at How to Ask & tour for more information on how stack exchange works. $\endgroup$
    – Tully
    Apr 10 at 19:40
  • $\begingroup$ Well this is an actual problem which has a solution definitely. As I mentioned, I tried various things, but my humanoid is not moving forward, but at its own location. I tried to look into how OTTO does it github.com/OttoDIY/OttoDIYLib/blob/master/src/Otto.cpp#L225, but its all very complex, they have their own oscillator wrapper. I mentioned the steps that I am using, and needed help from someone who had not used a 3rd party wrapper, but coded the various humanoid movement themselves. $\endgroup$ Apr 11 at 6:31

1 Answer 1


Unlike most bipeds, who walk by shifting their center of gravity towards the direction they want to move, the Otto DIY robot doesn't seem to have any clear shift in center of gravity. This is probably what makes its "walk" so confusing to analyze. While it does not shift its center of gravity in the direction it plans on walking, it shifts its center of gravity nonetheless.

If you analyze the Otto very closely you'll see that right before it starts its "ambulation", it flexes one foot up ("toes" up) and the other foot down. The foot that is flexed up does not affect the center of gravity of the robot. However, the foot that is flexed down lifts the robot up on that side causing the robot's center of gravity to be shifted towards the flexed down foot. We should note that the surface area of contact between ground and foot for both feet is reduced when the feet are pointed. This is important as the foot pointed up now has a normal force from the ground almost colinear to the "leg turn" (as you've labeled it) motor.

So, with the center of gravity now "leaning" towards the foot up leg, the robot's body will rotate over this leg when the motor rotates. This process is then repeated with the other leg to accomplish what is closer to waddling than walking.

Of course, the actual analysis of such a robot would be more complicated than this. For instance, if you implement a similar design yourself you may notice that the foot up leg twists about the leg turn motor instead of the robot's body twisting about the leg. In this case you would need to look at the actual dynamics of the robot to figure out what torques (if any) will cause the desired motion.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.