Robotics

Zero Moment Point

The balance criterion that lets a biped walk without tipping over

The Zero Moment Point (ZMP) is the spot on the ground where the ground reaction force produces zero tipping moment. Keep it inside the foot's support polygon and a biped walks without tipping; let it reach the edge and the foot rotates and falls. It is the criterion behind ASIMO and most modern humanoid walking controllers.

  • Proposed byVukobratović & Stepanenko, 1972
  • Stability ruleZMP inside support polygon
  • Equals (flat foot)Center of pressure
  • Core modelLinear Inverted Pendulum
  • Typical margin20 to 40 mm interior
  • Failure modeEdge rotation → fall

Interactive visualization

Press play, or step through manually. The visualization is yours to drive — try it before reading on.

Open visualization fullscreen ↗

Watch the 60-second explainer

A condensed visual walkthrough — narrated, captioned, under a minute.

How the Zero Moment Point works

Stand a rigid humanoid on one flat foot and gravity immediately tries to topple it. The only thing stopping the fall is the floor pushing back through the sole. That push is not a single force at a single point — it is a whole distribution of pressure spread across the contact patch. The Zero Moment Point is the trick of collapsing that entire pressure distribution down to one equivalent push-point: the unique spot where the resultant ground reaction force acts so that it generates no moment about the two horizontal axes.

Why does that one point matter? Because the floor can only push, it cannot pull, and it cannot apply a moment to a flat foot lying on it. So the entire effect of the ground on the robot is a single force passing through the ZMP. If that point lands somewhere inside the foot's contact area, a real pressure distribution exists that produces it, the foot stays flat, and the body does not rotate. If the body's motion demands a reaction point outside the foot, no pressure distribution can supply it — the foot has run out of sole to push down on — and the foot rotates about its edge. That edge rotation is the start of a fall.

The contact area is called the support polygon: the convex hull of all the points where feet touch the ground. With two feet flat it is a wide hexagon spanning both soles; on one foot it shrinks to a single shoe-sized rectangle perhaps 250 mm long by 100 mm wide. The whole game of dynamic walking is to keep the ZMP comfortably inside that polygon, with a safety margin, at every instant — even while the body accelerates, swings a leg, and lifts a foot.

The crucial insight, due to Miomir Vukobratović in 1972, is that this is a dynamic condition, not a static one. A statically balanced robot keeps its center of mass over the support polygon. A ZMP-balanced robot can let the center of mass swing well outside the foot — as it must during a fast step — as long as the inertial reaction shifts the ZMP back inside. That is exactly why a walking robot does not freeze: it is constantly almost-falling, and the ZMP is the accountant tracking whether it is still recoverable.

The math: where the ZMP sits

Take the full multibody robot and sum gravity, inertia, and the ground reaction about a point on the floor. The ZMP is the point p on the contact plane where the horizontal components of the total moment vanish. Writing it out for the planar (sagittal) case, with total mass M, center of mass at height zc and horizontal position x, gravity g, and angular momentum about the CoM L:

Full (exact) ZMP, sagittal plane:

            M·x·(z̈ + g)  −  M·z·ẍ  −  L̇_y
  x_zmp  =  ──────────────────────────────────
                     M·(z̈ + g)

Stability criterion:   p_zmp  ∈  interior of support polygon

If x_zmp would fall outside the foot, it is "fictitious":
the real center of pressure saturates at the edge and the
gap M·(z̈+g)·(x_zmp − x_edge) is the unbalanced tipping moment.

That exact form is messy because of the angular-momentum rate and the vertical acceleration . Walking controllers almost always use the Linear Inverted Pendulum Model (LIPM), which makes two assumptions: the center of mass moves at a constant height (z̈ = 0) and the angular momentum about the CoM is negligible (L̇ ≈ 0). The equation collapses to a clean linear relation:

Linear Inverted Pendulum (LIPM):

  x_zmp = x  −  (z_c / g) · ẍ           and symmetrically for y

  CoM dynamics:   ẍ = (g / z_c) · (x − x_zmp)

  Time constant:  T_c = √(z_c / g)
  For z_c = 0.80 m, g = 9.81:  T_c = √(0.0816) = 0.286 s

Read that first line physically: the ZMP sits behind the center of mass, offset along the direction of acceleration by (zc/g)·ẍ. Accelerate the body forward and the ZMP drops back toward the heel; to push the ZMP forward to the toe you must decelerate. A taller robot (larger zc) gets a larger ZMP swing for the same acceleration, which is one reason tall bipeds are harder to balance and react more slowly — the time constant Tc grows with the square root of height.

Worked example: how hard can a 1.3 m robot accelerate?

Take a humanoid the size of Honda's ASIMO: standing CoM height roughly zc = 0.80 m, on a single foot 250 mm long. The ankle joint sits about 100 mm forward of the heel, so the ZMP can travel forward about 150 mm to the toe and back about 100 mm to the heel before it hits an edge.

Given:
  z_c   = 0.80 m          CoM height
  g     = 9.81 m/s²
  L_fwd = 0.15 m          ZMP travel to toe (from nominal under ankle)

Maximum forward acceleration before the ZMP reaches the toe edge:
  From  x_zmp = x − (z_c/g)·ẍ,  the ZMP offset is (z_c/g)·ẍ.
  Set offset = L_fwd:
     ẍ_max = L_fwd · g / z_c
           = 0.15 × 9.81 / 0.80
           = 1.84 m/s²   (≈ 0.19 g)

So a flat-footed single-support biped of this size can demand at most about 1.8 m/s² of horizontal acceleration before the ZMP runs out of foot — under a fifth of a g. That tiny number is why early humanoids walked so cautiously: with a 250 mm foot you simply cannot brake or lunge hard while balancing on one of them. The two ways to buy more acceleration are obvious from the formula: make the foot longer (raise Lfwd) or lower the CoM (shrink zc) — which is exactly why ASIMO walks with bent knees and oversized feet.

Now the recovery time. If the robot is briefly knocked so its CoM leans 30 mm past the ZMP, the LIPM says the CoM accelerates away at ẍ = (g/zc)·0.03 = 0.37 m/s², and the lean grows exponentially with time constant Tc = 0.286 s. The "capture point" — where the swing foot must land to bring the CoM to rest — is offset from the CoM by ẋ·Tc. At a 0.3 m/s lean velocity that is a 86 mm step correction, which is why a stumbling robot takes a quick short step rather than freezing.

Real-world systems that use ZMP

SystemMethodFoot / CoMNotes
Honda ASIMO (2000–2018)ZMP preview controlLarge flat feet, low bent-knee CoMThe canonical strict-ZMP biped; flat-footed shuffle gait, ZMP held well inside the sole
HRP-2 / HRP-4 (AIST)Preview control (Kajita 2003)~0.8 m CoM, 230 mm footReference implementation of ZMP preview control; widely cited research platform
KAIST HUBO / DRC-HUBOZMP + posture controlSwitchable bipedal/wheeledWon the 2015 DARPA Robotics Challenge on rough terrain
NASA Valkyrie / IHMC controllerZMP + Capture Point + MPC1.9 m, force-controlled anklesBlends ZMP with momentum-based whole-body control for disturbance recovery
Boston Dynamics Atlas (early hydraulic)Model-predictive ZMP / centroidalTall, high CoMPushed beyond strict ZMP toward whole-body MPC for jumps and parkour
Industrial gait simulators (OpenSim, biomech)ZMP as a balance metricHuman-scaleZMP/CoP used to score prosthetic and exoskeleton gait stability

ZMP vs other balance criteria

ZMPStatic (CoM-over-base)Capture PointContact Wrench Cone
Balance typeDynamicStatic onlyDynamic (recovery)Dynamic, multi-contact
Quantity checkedReaction-force pointCoM ground projectionWhere to step to stopFull 6-axis contact wrench
Stays valid on flat groundYesYesYesYes
Handles slopes / multi-contactNo (single flat plane)NoPartialYes
Allows foot rotationNo (forbidden)NoBrief, controlledYes, within cone
Compute costLow (linear LIPM)TrivialLowHigh (QP / LP each step)
Typical useLevel walking gait genSlow posing, standingPush recovery, stumblingRough terrain, climbing

Design rules, margins, and gait generation

In practice nobody tries to hold the ZMP at a single point. A walking controller is built around a desired ZMP trajectory: a piecewise path that sits under the stance foot during single support, then jumps across to the next foot during the double-support phase. The job of the controller is to find the center-of-mass motion that realizes that ZMP path. Shuuji Kajita's 2003 preview control does exactly this — it looks ahead one to two seconds at the planned footsteps, then solves for the CoM trajectory whose induced ZMP tracks the reference. Modern controllers replace the preview gain with online Model Predictive Control, re-solving a small quadratic program every 5 to 20 ms.

  • Keep a margin. Never drive the ZMP to the literal polygon edge. Sensor noise, model error, and unmodeled flexibility mean a commanded ZMP at the edge is a real ZMP outside it. A typical interior margin is 20 to 40 mm, or 10 to 20 % of the foot dimension.
  • Double support is your friend. When both feet are down the support polygon is large, so the ZMP can move fast and far between footsteps. The single-support phase, on one shrunken polygon, is where the constraint bites — most gait timing is chosen to minimize the risk there.
  • Sense it, do not just plan it. Force/torque sensors in the ankles (or pressure mats in the soles) measure the actual center of pressure. Comparing measured CoP to commanded ZMP is the error signal for the balance feedback loop. ASIMO and HRP-2 both run six-axis ankle force/torque sensors for this.
  • Foot geometry is a design lever. A longer foot widens the ZMP-allowable range and buys acceleration headroom, at the cost of clumsy swing clearance and tripping risk. This is the trade ASIMO's deliberately large feet make.

Common misconceptions and pitfalls

  • "ZMP is just the center of mass projected down." No. That is the static criterion. The ZMP includes inertial reaction, so it diverges from the CoM projection exactly when the body accelerates — which is the whole point of walking. During a fast forward step the CoM ground-projection can be ahead of the toe while the ZMP is still safely inside the foot.
  • "ZMP can leave the support polygon." The true ZMP — defined as a point of real, non-negative contact pressure — can never leave the polygon, because pressure cannot be negative. When the equations produce a point outside, it is a fictitious or imaginary ZMP; physically the center of pressure pins to the edge and the leftover moment rotates the foot. Saying "the ZMP left the foot" is shorthand for "the foot started to tip."
  • "ZMP works anywhere." It assumes one flat, horizontal contact plane and that all contacts are coplanar. On stairs, slopes, or when a hand also touches a wall, the assumption breaks and you need the Contact Wrench Cone / centroidal-momentum generalization. On a slope the reaction force is no longer vertical and a robot can tip while standing perfectly still.
  • "Strict ZMP is how humans walk." Humans deliberately violate it: heel-strike, roll, and toe-off let the center of pressure ride out to the toe edge and even tip onto the toe during push-off, which is far more efficient than the flat-footed ZMP shuffle. That is why passive-dynamic and capture-point walkers, which relax the strict-interior rule, look more human and use a fraction of the energy.
  • "Higher and faster is better." The time constant Tc = √(zc/g) grows with height and the allowable acceleration max = L·g/zc shrinks with it. A taller robot reacts more slowly and tolerates less acceleration on the same foot — the physics actively penalizes a high CoM, which is why balance-critical bipeds crouch.
  • "You can ignore arm and leg swing." The neglected term — the rate of angular momentum about the CoM — is exactly what whole-body controllers exploit. Swinging the arms or torso generates a reaction moment that shifts the ZMP without moving the feet, the same reflex a human uses to catch a stumble. Dropping it from the model is fine for steady walking but loses a real recovery tool.

Frequently asked questions

What is the Zero Moment Point in simple terms?

The Zero Moment Point is the single spot on the ground where the foot's total ground reaction force acts so that it produces no tipping moment about any horizontal axis. Picture all the pressure under a foot collapsing to one push-point; that point is the ZMP. If the point sits inside the foot's contact area, the foot stays flat and the robot does not rotate. If the required point would fall outside the foot, the foot tips about its edge instead.

What is the difference between the ZMP and the center of pressure?

When both exist they are the same point. The center of pressure (CoP) is the pressure-weighted centroid of the contact patch and by definition can never leave the foot. The ZMP is defined dynamically as the point where the horizontal moment of gravity plus inertia plus the reaction vanishes. As long as the foot is flat the two coincide. The useful distinction is the "fictitious" or "imaginary" ZMP: when the balance equations demand a ZMP outside the support polygon, the CoP saturates at the edge and the foot starts to rotate — that gap is exactly the unbalanced tipping moment.

Why does the ZMP have to stay inside the support polygon?

Because the ground can only push, never pull. The reaction force must pass through a point of positive contact pressure, and the set of such points is the support polygon — the convex hull of all foot-ground contact points. If the dynamics call for a reaction line outside that hull, no real pressure distribution can supply it, the unbalanced moment spins the foot about its nearest edge, and the robot falls. Keeping the ZMP strictly interior, with a margin of typically 20 to 40 mm, guarantees a flat foot and a stable, non-rotating contact.

How does the linear inverted pendulum model relate to ZMP?

The Linear Inverted Pendulum Model (LIPM) assumes the center of mass stays at a constant height z_c, which linearizes the dynamics to x_zmp = x − (z_c / g) · ẍ. This says the ZMP sits behind the CoM along the direction of acceleration by a distance proportional to z_c/g. Controllers invert it: given a desired ZMP trajectory that stays inside the polygon, solve for the CoM motion that realizes it. The preview-control and Model Predictive Control walking schemes used on most humanoids are built directly on this equation.

Does ZMP work on uneven or sloped ground?

The classic ZMP assumes a single flat, horizontal contact surface, so it breaks down on slopes, stairs, or multi-contact terrain. On a slope the reaction force is no longer vertical and the foot can begin to rotate even while standing still. The fix is to generalize to contact-wrench or Contact Wrench Cone criteria, which check the full 6-axis force/torque the contact can supply against friction-cone limits. Modern humanoids on rough terrain use these wrench-based criteria; flat-ground ZMP remains the standard for level walking.

How does ZMP balance differ from how humans actually walk?

Strict ZMP walking keeps the foot flat and the point well inside the sole at all times, producing the flat-footed, bent-knee gait famous from Honda's ASIMO. Humans deliberately let the ZMP ride out to the toe and even tip onto the toe edge during push-off, using a heel-strike-to-toe-off roll the rigid criterion forbids. Passive-dynamic and capture-point methods relax the strict-interior rule to recover this efficiency, accepting brief controlled foot rotation that ZMP alone would flag as a fall.