I made a robot dog using Lewansoul LX-16a Smart Serial bus motors and a 3D printed body. I am using an Arduino Mega 2560 to control everything. I already have the inverse kinematics working. But for some reason, I can't get the robot to balance on 3 legs. I have tried to balance the weight, and tried to hard code other legs to move down to shift the CG. But that trick doesn't work when I am trying to make the gaits. I want the dog to balance dynamically as it walks. I want to use a gyroscope to do that, but I don't know where to start.



1 Answer 1


Consider the triangle formed by the three feet that touch the ground. For static balance, the center of gravity's projection needs to be within that triangle. Crouching will lower the CG but won't necessarily move it into the triangle. If the feet were to stay put but the legs lean to one side, that would shift the CG. For dynamic balance, as the CG and the triangle move relative to each other, the static inside-the-triangle condition can be momentarily violated. That's sort of a brief controlled fall, but things are ok as long as a foot moves (the triangle moves) to counter it in time. Gait is a complicated thing. Good thing others have studied it, so you don't have to discover it all.

Cool project. Good luck!

  • $\begingroup$ I'm sorry but I am very new to this. What triangle are you talking about. Is there some video or images I can look at? Thank you so much for helping!!! $\endgroup$ Nov 14, 2021 at 18:00
  • $\begingroup$ I think I know the triangle you are talking about but how can I project the CG of the robot? $\endgroup$ Nov 14, 2021 at 19:51
  • $\begingroup$ Three feet on the ground form the three vertexes of a triangle. That triangle, of course, lies on the ground. The CG is almost certainly not on the ground, but somewhat higher. By "projection" of the CG, I meant the point below the CG, straight down from it, on the plane of the ground. $\endgroup$
    – r-bryan
    Nov 14, 2021 at 21:11
  • $\begingroup$ So I know where the CG is during the initialization(all 4 feet on the floor) but once it starts tilting, what can I do to calculate it? $\endgroup$ Nov 14, 2021 at 21:56
  • $\begingroup$ I was wondering if I even need to calculate it. If not, how should I go about doing this dynamic stability. $\endgroup$ Nov 14, 2021 at 23:50

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.