For a school project, I have designed and assembled a bipedal humanoid robot. The robot is roughly $54$cm tall, with the width(distance between two legs) at $20$cm. The parts that make up the robot are 3D-printed. It has $12$ degrees of freedom, $2$ for each foot, $1$ for the legs, and $3$ for each side of the hip.

Here is the link to the Github repository.

My goal for this project has been to get the robot to walk. As of currently, my robot is connected to a microcontroller via PWM wires, and I connected it to a computer. The robot is powered using a DC power supply. I use a simple robot control system on my computer, which sends specific PWM signals to each servo within the range $500-2500$, covering a full $180$ turn. For each PWM signal, I can control its duration as well.

My problem is the robot is failing to balance on one foot. I know my method of controlling it is extremely primitive, but I can't seem to get it to balance on one foot. I added an extra $DOF$ on the foot, to allow the foot to shift the centre of gravity.

Here is an image:

enter image description here

From the image shown, it seems like the centre of gravity indeed has shifted to a location directly above the foot. However, when trying to control it, the robot never manages to successfully balance on one foot. It usually falls towards the right and backwards(from the perspective of the image). The PLA material from the 3D-prints also seems to bend a little, causing the robot to lean towards the left. I have tried many ways to fix it, but it is to no avail.

This is my first question on the Robotics Stack Exchange page. Sorry for possible bad/inaccurate terminology. Any help or suggestions will be greatly appreciated.

  • $\begingroup$ the blue area is not the center of gravity for that robot $\endgroup$
    – jsotola
    Commented Mar 10, 2020 at 17:36
  • $\begingroup$ how are you determining if the robot is balanced? $\endgroup$
    – jsotola
    Commented Mar 10, 2020 at 17:44
  • $\begingroup$ @jsotola The actual robot isn't balanced when I am controlling it from the computer. The robot always falls to the side. $\endgroup$ Commented Mar 11, 2020 at 1:06
  • $\begingroup$ @jsotola I need some tips for balancing humanoids. $\endgroup$ Commented Mar 11, 2020 at 1:09
  • $\begingroup$ what is your understanding of how you keep your balance? ... i am talking about you $\endgroup$
    – jsotola
    Commented Mar 11, 2020 at 2:07

1 Answer 1


Humanoid robots balance and motion planning are not trivial tasks. I believe you will learn a lot if you read about Zero Moment Point (ZMP). Basically, it is a specific point of contact between the robot's planar foot and the ground. What makes this point special is that the reaction forces at it produce zero torque on the robot body. If there is no reaction torque on the robot body, it will not fall.

How to calculate it? We need to know the positions of the center of mass of each body part as well as their orientations and velocities.

Please, start from this thesis. It explains the concept very well. https://www.techunited.nl/media/files/humanoid/MaartenDekker_OPEN2009_Zero_Moment_Point_Method_for_Stable_Biped_Walking.pdf


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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