Humanoids and Legged Robots
How Bipedal Robots Stay Upright: From ZMP to MPC
Balance control explained without the maths: what the zero moment point actually is, why capture point changed the field, and what model predictive control added on top.

A biped stays upright by keeping the ground reaction force where it can still generate a correcting moment. The classical answer keeps the zero moment point inside the support polygon, which produces the flat-footed shuffle of early humanoids. Modern controllers plan several steps ahead at 200 to 1,000 Hz and treat stepping as part of the balance strategy rather than as a failure of it.
The zero moment point, plainly
The zero moment point is the location on the ground where the horizontal moment of the ground reaction force is zero. If it lies strictly inside the area covered by the feet, the support polygon, the foot does not rotate and the robot is dynamically stable. If it reaches the edge, the foot begins to tip and the robot is falling unless it does something.
The classical control strategy is therefore: plan a trajectory that keeps the zero moment point comfortably inside the polygon at all times. It works, and it produces the recognisable early humanoid gait, with knees bent, feet flat and small steps, because those choices maximise the polygon and minimise the moment.
The limitation is that the strategy is defined by what it forbids. A human walking does allow the equivalent point to leave the support area, recovers with the next footfall, and that is why human gait is efficient and robot gait historically was not.
Capture point and the shift to stepping
The capture point reframes the problem. Instead of asking whether the robot is stable now, it asks where the foot would have to be placed to bring the robot to a stop. If that location is reachable, the robot is recoverable even though it is currently falling.
This single change turns stepping from a locomotion primitive into a balance action. A push that the classical formulation treats as a failure becomes a step in the direction of the push, which is what humans do and what modern robots visibly do in demonstration videos.
| Approach | Core idea | Look-ahead | Resulting gait |
|---|---|---|---|
| Zero moment point tracking | Keep the point inside the polygon | Current step | Flat-footed, bent knees, conservative |
| Linear inverted pendulum | Model the body as a point mass on a massless leg | 1 step | Smoother, still conservative |
| Capture point | Where must the foot land to stop | 1 to 2 steps | Push recovery, reactive stepping |
| Whole-body control | Solve for all joint torques against multiple objectives | Instantaneous | Compliant, uses arms and torso |
| Model predictive control | Optimise a horizon of future states each cycle | 2 to 4 steps | Natural, terrain-adaptive |
| Learned policy | Neural controller trained in simulation | Implicit | Robust to disturbance, harder to certify |
What model predictive control adds
Model predictive control solves an optimisation problem at every control cycle: given the current state, a model of the dynamics and a set of constraints, find the sequence of actions over the next horizon that minimises a cost, then execute only the first action and repeat. Running that at 200 Hz to 1,000 Hz over a horizon of two to four steps is what produces gait that adapts to terrain rather than following a pre-planned trajectory.
The practical cost is compute and model fidelity. The optimisation must complete within one control period, which forces simplified dynamics models, and any mismatch between the model and the real robot shows up as a limp, a drift or a fall on unmodelled ground.
The numbers a balance controller works with
| Quantity | Typical value | Why it matters |
|---|---|---|
| Balance loop rate | 200 to 1,000 Hz | Sets the optimisation time budget per cycle |
| Joint torque loop rate | 1,000 to 10,000 Hz | Runs beneath the balance loop |
| State estimation rate | 200 to 1,000 Hz | Fuses inertial data with joint encoders |
| Step duration | 0.3 to 0.8 s | Shorter steps recover faster from a push |
| Foot length | 200 to 280 mm | Defines the support polygon in the sagittal plane |
| Foot width | 80 to 130 mm | Defines lateral stability, the tighter constraint |
| Walking speed | 0.5 to 1.6 m/s | Below a brisk human walk of about 1.8 m/s |
| Centre of mass height | 0.8 to 1.0 m | Sets the pendulum time constant |
| Push recovery window | 100 to 300 ms | Time available to place a recovery step |
| Actuator latency budget | 1 to 5 ms | Delay directly erodes the recovery window |
Foot width is the constraint that surprises people. A 100 mm wide foot gives a lateral support polygon of roughly 100 mm while standing on one leg, against 240 mm fore and aft, so sideways pushes are far harder to absorb than forward ones. That asymmetry is why robots step sideways more readily than they step forward when disturbed.
Where learned control sits
Reinforcement learning in simulation now produces walking controllers with disturbance rejection that is hard to match analytically, and transfer to hardware works when the simulation randomises mass, friction, latency and terrain sufficiently. Two honest caveats belong alongside the demonstration videos.
- Failure modes are hard to characterise. An analytical controller has provable regions of stability. A learned policy has an empirical one, which complicates any safety argument.
- Hybrid is the production answer. Most deployed systems use a learned or optimised policy for gait with analytical safety layers underneath, such as joint limit enforcement and a fall-protection behaviour.
Frequently asked questions
What is the zero moment point?
The point on the ground where the horizontal moment of the ground reaction force is zero. Keeping it inside the area covered by the feet means the foot does not rotate, which is the classical condition for dynamic stability in walking robots.
Why did early humanoids walk with bent knees?
Because keeping the zero moment point safely inside the support polygon favours flat feet, low centre of mass and short steps. It is a conservative strategy that avoids the region where the robot would have to step to recover.
What changed with capture point?
It reframed balance as a question of where the next foot must land to stop the fall, which makes stepping a balance action rather than a failure. That is what enables the push recovery behaviour seen in modern demonstrations.
How fast does a balance controller run?
Typically 200 Hz to 1,000 Hz for the balance loop, with joint-level torque control often faster. Model predictive controllers must complete their optimisation within one control period, which limits model complexity.
Why does carrying something make balancing harder?
Because whole-body controllers use arm and torso momentum to generate correcting moments. A payload held in both hands adds mass and removes that control authority at the same time.
Are learned controllers used in production?
Increasingly, but usually in hybrid form: a learned or optimised policy for gait with analytical safety layers underneath for joint limits and fall behaviour, because a learned policy has an empirical rather than provable stability region.
Sources
- ROBOTS guide, legged robot profilesIEEE Spectrum, published control rates and gait characteristics
- arXiv robotics preprints, legged locomotion controlPrimary literature on capture point, whole-body and predictive control
- ISO 13482, safety requirements for personal care robotsInternational Organization for Standardization, fall hazard provisions for legged machines