The robot's centre of mass is modelled as a Linear Inverted Pendulum (LIPM) of height h pivoting over whichever foot is on the ground. Its horizontal acceleration is set entirely by where the Zero Moment Point (ZMP), p, sits under that foot:
ẍ = (g / h) · (x − p) [LIPM equation]
ξ = x + ẋ·√(h / g) [Capture Point — where a step would fully stop the fall]
- Ankle strategy — for small disturbances the controller aims the ZMP at the capture point ξ, but clamps it inside the physical foot sole (11 cm × 6 cm). This is the yellow marker; while it stays off the sole's edge, gravity alone rebalances the pendulum.
- Stepping strategy — once the ZMP saturates at the sole edge, or the capture point drifts too far from the stance foot, the controller plans a new footstep at the capture point (cyan marker) plus the nominal stride. If that landing point is farther than the leg can reach, the robot cannot arrest its fall in time and falls.
- Push forward / sideways — injects an instant CoM velocity impulse, exactly like a real push-recovery test on a humanoid (Atlas, Optimus, Digit). Watch how a longer leg reach or a wider stance buys a larger recovery margin.
This ZMP / capture-point formulation is the same walking-pattern-generator math used on real bipedal humanoids, distinct from a fixed pre-recorded gait cycle: every step here is planned online, in reaction to the pendulum's own state.