Just for information, I edited the first post with a figure so that it is more... sexy.
Let's go on with the main part of the method : a way to understand longitudinal biped walking.
Let's make some simplifications:
- upper body is only a point
- mass of foot is very small with respect to upper body (agility condition)
- Do not take into account lateral issues (for the moment)
- The leg length can be variable but L1d is much lower than V=thetad*L1
Therefore, the swing leg can be neglected and the model is simplified:
The model becomes a "simple" inverted pendulum. To make a step you must be sure the mass passes above the foot. That is to say the upper body has enough kinetic energy to be transformed in potential energy.
Kinetic energy is
Potential energy is
The condition to pass above the foot is then the BIG EQUATION:
A very good way to visualize such a dynamic system is to see the phase plane thetad=f(theta). If you want to know how to use phase plane, see the MIT course about underactuated robotics (by Russ Tedrake).
You can see this red limit is very important to take decisions before falling. The first decision to control the swing leg so that the robot does not fall. The fisrt approach is to say:
- below the red limit, the swing leg shall stay backward (not enough energy to make another step)
- above the red limit, the swing leg can go forward because the upper body will reach the pass
A first stability margin can be defined as the distance between robot state and the red limit.
Notice a number is important : sqrt(g/L) named the Froude number. If thetad reaches this value, the vertical acceleration of the upper body is +1g that is to say it compensates gravity... The robot flies (runs).
sqrt(2)*Froude number is the Thetad required to reach the pass is the robot is horizontal. (to make a back flip...)
This is a very analytic way to see dynamic walking but for control we can see the first necessary conditions:
- upper body has to be largely heavier than the legs
- swing leg tight actuator has to be as fast as possible
- theta and thetad must be measured (which sensor? at which place?)
- heelstrike must be detected to know which is the swing leg, which is the stance leg (which sensor?)
- Control must be reactive control = f(theta,thetad) like a map (learning algorithm?)
- stance foot shall be compliant
Now the stability is OK, I will talk about all the ways to give mechanical energy to the robot.
Do not hesitate to criticize me.