Humanoid Balance Control (ZMP, Capture Point, MPC) — Robotics Reference

Scope. Bipedal balance is the single hardest classical control problem in robotics: the plant is floating-base, underactuated, hybrid, unilaterally-constrained, and statically unstable. Two feet (or one, in single-support) cannot hold the centre of mass without active control — falling is the default. This note covers the engineering recipe for keeping a 1.5 m tall, 60–90 kg humanoid upright while walking, pushed, perturbed, or carrying payload. Quadruped balance lives in [[Robotics/legged-robotics]]; manipulation while standing lives in [[Robotics/mpc-for-robots]]. Here we focus on the CoM ↔ ZMP ↔ contact-wrench trilateral that every humanoid controller — from Honda ASIMO (1996) to Atlas Electric (2024) — must solve.

1. At a glance

A humanoid balances on contact patches whose combined area (≈ 0.04 m² for two adult-sized feet) is tiny relative to the body height (≈ 1.7 m). The CoM hovers about 0.95 m above the floor. The system is therefore an inverted pendulum on a flat foot — unstable, with characteristic divergence time 1/ω = √(h/g) ≈ 0.31 s for h = 0.95 m. Lose footing for one third of a second and the robot is on the floor.

Why is it hard:

  • Under-actuation. Six DoF of the floating base (3 translation + 3 rotation) cannot be commanded directly. The only authority comes through the unilateral contact wrench at the feet, which is itself bounded by the friction cone and the support polygon.
  • Hybrid dynamics. Each foot strike or lift-off is an instantaneous structural change in the equations of motion (see [[Robotics/legged-robotics]] §2.1). Eight contact transitions per metre of walk at 1 m/s.
  • Real-time. Capture-point recovery requires updating footstep targets every 2–10 ms; whole-body torque commands at 1–5 kHz; current loops at 10–30 kHz.
  • Robustness. Friction varies (μ ≈ 0.3 on tile, 0.9 on rubber), payload moves the CoM, perception is noisy, motors saturate.

Three control paradigms dominate the 2026 humanoid stack:

  1. ZMP / preview control (Honda ASIMO, HRP-2/3/4, JAXA): pre-compute a CoM trajectory whose induced ZMP tracks a desired reference inside the support polygon. Flat-ground, statically posed, slow (0.4–0.8 m/s) but reliable.
  2. Capture-point / DCM step planning (Pratt 2006, Englsberger 2015 — IHMC Atlas, DLR TORO): place the swing foot at the instantaneous capture point to bring the CoM to rest in one step. Naturally handles disturbances and uneven terrain.
  3. Whole-body MPC (Di Carlo 2018 SRBD; Mastalli 2020 Crocoddyl; Dafarra 2024): solve a convex QP over centroidal dynamics + contact wrenches at 50–200 Hz; project to joint torques through a hierarchical task QP at 500–1000 Hz. The dominant 2024–2026 method.

Current humanoid platforms (2026):

PlatformVendorHeight/MassActuationBalance method
Atlas ElectricBoston Dynamics (2024)1.5 m / 89 kgElectric QDD + planetaryCapture point + WBC + learned residual
Figure 02Figure AI (2024)1.7 m / 70 kgCustom BLDC + cycloidalCapture-point + neural policy
1X Neo Gamma1X Technologies (2024)1.65 m / 30 kgTendon-gear (soft drive)WBC + learned compliance
Optimus Gen 3Tesla (2025)1.73 m / 57 kgIn-house BLDC + planetaryWBC + RL
ApolloApptronik (2024)1.73 m / 73 kgSEA + harmonicCapture-point + ZMP fallback
Unitree H1Unitree (2024)1.8 m / 47 kgParallel-mechanism QDDRL policy (Isaac Lab)
Unitree G1Unitree (2024)1.32 m / 35 kgQDDRL policy
DigitAgility Robotics (2023+)1.75 m / 45 kgSEA + tendon springsHZD + capture point

Where it sits in the design stack: floating-base dynamics supplies the model; QDD or SEA actuation supplies the torque; admittance supplies contact compliance; invariant EKF supplies the CoM/orientation estimate; MPC supplies the regulator. This note glues them together at the balance layer.

First ask before applying: Single-support or double-support? Single → strict capture-point or DCM; double → ZMP inside the support polygon will do. Flat ground or uneven terrain? Flat → LIP + preview is exact; uneven → centroidal MPC. RL or model-based? RL trains in Isaac Lab / MuJoCo MJX and is robust to terrain noise; model-based is interpretable and certifiable. Modern systems are hybrid — model-based MPC + learned residual.

2. First principles

2.1 The state and the unstable mode

The configuration is split between base and joints exactly as in [[Robotics/legged-robotics]] §2.1:

The CoM dynamics, ignoring leg mass, reduce to a point of mass m (the robot total) at height h_{\text{CoM}}. The only horizontal force at the foot–floor contact is the friction-limited component of the ground reaction wrench. In single-support, the system is a planar inverted pendulum of natural frequency ω = √(g/h_{\text{CoM}}). For h = 0.95 m, g = 9.81 m/s²:

Any horizontal position error grows like e^{ωt}. A 5 mm tracking error doubles in 0.22 s; a 1 cm error reaches the edge of the foot in under half a second. This timescale governs every other choice in the stack: ZMP MPC must run faster than 1/ω; capture-point recovery must replan within ~ 100 ms; impedance loops must close within milliseconds.

2.2 Zero-Moment Point (ZMP) — Vukobratović 1972

Vukobratović defined the ZMP as the point on the support surface where the net horizontal moment of the ground-reaction wrench is zero. On flat ground it coincides with the Centre of Pressure (CoP); on inclines or stairs the two differ by the inclination geometry.

For a humanoid with feet contacting at r_1, r_2, \dots, each carrying vertical force F_{i,z}:

(the second term is the angular-momentum correction — Sardain & Bessonnet 2004 IEEE T-SMC). In practice, with arms locked, the correction is small and ZMP ≈ CoP.

The Vukobratović balance theorem: the robot does not tip iff p_{\text{ZMP}} \in \mathrm{ConvHull}(\text{contact patches}). If the ZMP migrates outside the support polygon, the foot edge becomes a pivot and the robot rotates about it. The job of every balance controller is to keep the ZMP inside the polygon — with margin, since perception and actuation are imperfect.

2.3 Linear Inverted Pendulum (LIP) — Kajita 2001

Assume (i) CoM at constant height h_{\text{CoM}}, (ii) all mass at the CoM, (iii) massless telescopic leg, (iv) one foot in contact at x_{\text{ZMP}}. The horizontal CoM dynamics become a linear unstable second-order ODE:

Eigenvalues ±ω — one stable, one anti-stable. The diverging mode is the failure mode. Closed-form orbital energy:

is conserved during single-support, so the orbit in the (x, \dot x) plane is a hyperbola asymptotic to lines of slope ±ω. This is the fundamental analytical tool for biped footstep planning.

2.4 Capture point (Pratt 2006)

The instantaneous capture point is the location at which the next foot must land — now — to bring the CoM to rest in one step under the LIP dynamics:

(For the 2D case Pratt-Carff-Drakunov-Goswami 2006, IEEE-RAS Humanoids; for 3D see Koolen 2012 IJRR.) The capture point is the projection of the CoM forward along the diverging eigenvector. If the swing foot lands exactly on the CP and the CoP is held there, the LIP energy is dissipated to zero by the natural dynamics in one step — no further effort needed.

The locus of N-step capture points (i.e. positions from which the robot can come to rest in at most N steps with feasible foot placements) forms the N-step capture region, a finite, computable set. Disturbances that drive the CoM outside the 1-step region but inside the 2-step region recover after a small jog; outside the N-step region the robot must fall.

2.5 Divergent Component of Motion (DCM) — Englsberger 2015

Englsberger, Ott & Albu-Schäffer (DLR, 2015 IEEE T-RO) generalised the capture point to a continuous state. Define:

The LIP dynamics in (x_{\text{CoM}}, \xi) coordinates decouple into:

The unstable mode is now an explicit, scalar, controllable variable — and the stable mode is autonomously tracking. DCM control is the basis of the IHMC Atlas walking controller used in the DARPA Robotics Challenge and the DLR TORO humanoid.

2.6 Single Rigid Body Dynamics (SRBD) — Di Carlo 2018

For dynamic motion where the LIP assumption breaks (vertical CoM excursions, fast manoeuvres), approximate the robot as a single rigid body with mass m, body inertia I_B, and massless legs locating the contact wrenches F_i. State x = (r_{\text{CoM}}, \Theta_B, v_{\text{CoM}}, \omega_B) \in \mathbb{R}^{12} and input u = \mathrm{stack}(F_i):

m\,\dot v_{\text{CoM}} &= \sum_i F_i + m\,g \\ I_B \dot \omega_B + \omega_B \times (I_B \omega_B) &= \sum_i (r_i - r_{\text{CoM}}) \times F_i \end{aligned}$$ Linearised about hover (`\omega_B \approx 0`, `R_B \approx R_z(\psi)`) the dynamics become convex in `F_i` once the foot locations `r_i` are fixed by the gait scheduler. This is the SRBD model that powers MIT Cheetah 3 (Bledt 2018) and, with extended state, Boston Dynamics Spot. Applied to humanoids it underlies the centroidal MPC layer used by Atlas Electric and the OCS2 framework. ### 2.7 Centroidal momentum (Orin & Goswami 2008) The full robot's linear + angular momentum about the CoM, $$h_G \;=\; (m \dot r_{\text{CoM}}, L_{\text{CoM}}) \;=\; A_G(q) v$$ is the 6-vector the contact wrenches act on directly. `A_G(q)` is the **centroidal momentum matrix** (CMM), a `6 × (6+n_a)` map. The CMM cleanly decouples internal motion (joint shuffling that does not move the CoM or change angular momentum) from balance-critical motion (motion of the CoM and total angular momentum). This is the algebraic backbone of every modern whole-body controller (Sentis-Khatib 2005; Wensing-Orin 2013). ### 2.8 Hybrid Zero Dynamics (HZD) — Westervelt et al 2007 A complementary, mathematically rigorous framework for bipedal walking: define **virtual constraints** `h(q) = 0` that, when enforced exactly by feedback, leave a one-dimensional **zero dynamics** describing the orbit of the energy-conjugate variable. Periodic gaits become limit cycles of this 1D system; provably stable Poincaré maps fall out of the construction. HZD was the foundation of MABEL (Michigan), MARLO and **Cassie** (Agility Robotics' bipedal platform that ran a 5-km outdoor course; Siekmann 2021 RSS; Reher-Ames 2020). The 2026 trend has moved beyond pure HZD toward HZD + capture-point hybrids and HZD + learned policies, but the periodic-orbit certificates HZD provides remain the strongest formal stability guarantee available for underactuated bipeds. ## 3. Worked examples ### Example A — Single-step capture-point recovery A 80 kg humanoid in single support. Mass concentrated at `h_{\text{CoM}} = 0.95\ \text{m}`. Current state: `x_{\text{CoM}} = 0.10\ \text{m}` (relative to stance foot), `\dot x_{\text{CoM}} = 0.50\ \text{m/s}`. Where must the swing foot land? $$\omega = \sqrt{9.81/0.95} = 3.214\ \text{rad/s}$$ $$x_{\text{CP}} = 0.10 + \frac{0.50}{3.214} = 0.10 + 0.156 = 0.256\ \text{m}$$ Place the swing foot 25.6 cm in front of the stance foot, hold the CoP there, and the LIP energy `E = \tfrac{1}{2}(0.50)^2 - \tfrac{1}{2}(3.214)^2(0.10)^2 = 0.125 - 0.0517 = 0.073\ \text{J}` decays naturally — at touchdown into the new stance the new `E' = \tfrac{1}{2}\dot x^2 - \tfrac{1}{2}\omega^2 (x - x_{\text{CP}})^2 = 0` (the orbit passes through the rest point). One step, no further effort. If the foot lands at 0.20 m instead, residual energy `E' = \tfrac{1}{2}(0.50)^2 - \tfrac{1}{2}(3.214)^2(0.10 - 0.20)^2 = 0.125 - 0.0517 = 0.073\ \text{J}` — same as the original; the controller needs a second step. ### Example B — ZMP preview MPC (Kajita 2003) Kajita-Kanehiro-Kaneko-Fujiwara-Harada-Yokoi-Hirukawa (ICRA 2003) formulate balance as an LQR on the LIP with a **preview** of the desired ZMP reference. Discretise the LIP with sampling period `\Delta T = 5\ \text{ms}` and treat the CoM jerk `u = \dddot x_{\text{CoM}}` as the input: $$\begin{bmatrix} x \\ \dot x \\ \ddot x \end{bmatrix}_{k+1} = \begin{bmatrix} 1 & \Delta T & \Delta T^2/2 \\ 0 & 1 & \Delta T \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} x \\ \dot x \\ \ddot x \end{bmatrix}_k + \begin{bmatrix} \Delta T^3 / 6 \\ \Delta T^2 / 2 \\ \Delta T \end{bmatrix} u_k$$ with output `y_k = p_{\text{ZMP},k} = x_k - (h_{\text{CoM}}/g)\ddot x_k`. Cost over preview horizon `N = 320` steps (1.6 s): $$J = \sum_{k=0}^{N-1} \bigl[ Q_e (p_{\text{ZMP},k} - p_{\text{ZMP},k}^{\text{ref}})^2 + R\, u_k^2 \bigr]$$ with `Q_e = 1`, `R = 10^{-6}`. The closed-form gain has a feedback term + a future-reference preview integral. Runs at 200 Hz on a single x86 core. This is the controller in HRP-2, HRP-3, HRP-4 and JAXA's H-II rover deployments. ### Example C — DCM tracking For the same 80 kg humanoid in continuous walk, define the DCM `\xi` and command its evolution. Desired DCM trajectory between footsteps: $$\xi^{\text{ref}}(t) \;=\; r_{\text{ZMP}}^{\text{ref}} + (\xi^{\text{ref}}(0) - r_{\text{ZMP}}^{\text{ref}})\,e^{\omega t}$$ Track via the proportional law `r_{\text{ZMP}} = \xi - k_\xi (\xi - \xi^{\text{ref}}) / \omega` with `k_\xi = 1.5`. The resulting closed-loop is `\dot e_\xi = -k_\xi e_\xi`, with `1/k_\xi = 0.67\ \text{s}` time constant — fast enough to reject a typical 30-N push within one step. This is the inner loop used in IHMC Atlas and DLR TORO; it composes cleanly with footstep replanning at the gait-scheduler layer. ## 4. Balance hierarchy Modern humanoid stacks are organised into a **layer-cake** of decreasing time horizon and increasing update rate. Crossing the layers correctly is more important than the choice within any one layer. | Layer | Function | Time horizon | Update rate | Method | Output | |---|---|---|---|---|---| | Mission / behaviour | "Walk to door, open it" | 10–100 s | 1–10 Hz | Behaviour tree, FSM, LLM planner | Desired pose, footstep goals | | Footstep / gait scheduler | "Next foot here at time t" | 1–5 s | 1–10 Hz | A* on footstep graph, MIQP | Stride pattern, contact schedule | | ZMP / capture-point / DCM | Stable CoM trajectory consistent with contacts | 0.5–2 s | 50–200 Hz | LIP preview, DCM control, centroidal MPC | CoM, CoP/ZMP, contact wrench refs | | Whole-body QP | Project wrenches into joint torques while honouring all task priorities | 10–50 ms | 500–1000 Hz | Hierarchical QP (TSID, OCS2 IK-MPC) | Joint torques τ | | Joint impedance / torque control | Track torque, reject local disturbances | 1–10 ms | 1–5 kHz | PD + feedforward, friction comp | Motor current ref | | Motor current loop | FOC / SVPWM at the inverter | 10–100 µs | 10–30 kHz | Field-oriented control | PWM duty | Each layer assumes the layer below tracks within its bandwidth. Mismatch causes the classic failure: the centroidal MPC commands a wrench the WBC cannot realise (joint limits, torque saturation) and the robot tips silently. ## 5. Real platforms A full inventory of the named humanoids in service or research as of 2026, with the salient balance details: ### 5.1 Production / commercial - **Boston Dynamics Atlas Electric (2024 release).** Replaced the iconic hydraulic Atlas with a fully-electric design. 89 kg, 1.5 m, custom electric actuators with planetary reductions. Balance: centroidal MPC + WBC + learned residual policy. Footstep planner runs at 5 Hz; capture-point inner loop at 200 Hz; WBC at 500 Hz. Whitepaper 2024 confirms sub-metre precision footstep placement. Replaced the 28 hydraulic actuators with electric equivalents; no oil = far cleaner indoor deployment. - **Figure 02 (Figure AI, 2024).** 1.7 m, 70 kg. Custom BLDC + cycloidal drives. Capture-point + learned policy, trained against demonstrations from the AI Day video set. OpenAI partnership for high-level cognition. Pilot deployments at BMW Spartanburg, Charleston (2024–2025). - **1X Neo Gamma (1X Technologies, formerly Halodi, 2024).** 1.65 m, 30 kg. Tendon-and-gear "soft drive" actuators — inherently compliant. WBC + learned compliance. Lighter mass reduces impact loading and simplifies the friction-cone budget. - **Tesla Optimus Gen 3 (announced 2025).** 1.73 m, 57 kg. In-house BLDC + planetary actuators. WBC + RL policy trained in Tesla's internal simulator. 22-DoF hands with tactile feedback. Battery: 2.3 kWh enabling ~ 8 h of light work. - **Apptronik Apollo (2024).** 1.73 m, 73 kg. SEA (Series Elastic Actuator) joints with harmonic-drive reductions. Capture-point primary controller with ZMP fallback for graceful degradation. Pilot at Mercedes-Benz factory floor 2024. - **Unitree H1 (2024).** 1.8 m, 47 kg. Parallel-mechanism QDD actuators (similar topology to Cheetah-3 legs). Pure RL policy trained in Isaac Lab. Demonstrated 3.3 m/s walking and back-flip recovery. - **Unitree G1 (2024).** 1.32 m, 35 kg. Smaller, cheaper sibling of H1. QDD actuation. RL policy. - **Agility Robotics Digit (V4, 2023–2026).** 1.75 m, 45 kg. SEA + tendon-spring legs (4-bar parallel mechanism). HZD-style controller with capture-point step planning. Deployed in Amazon and GXO warehouses 2024+. ### 5.2 Research - **DLR TORO (2014–).** Torque-controlled humanoid built around DLR's LWR-like SEA joints. DCM control + WBC. Reference platform for the Englsberger DCM line of papers. - **KIT ARMAR-6 (2018–).** Bimanual humanoid, fixed-base hips on caster wheels — quasi-humanoid; balance is wheeled rather than legged but the upper body is the full humanoid stack. - **IIT WALK-MAN (2015–).** Italian Institute of Technology; SEA joints, ZMP + WBC. Was used in the DARPA Robotics Challenge finals 2015. - **MIT Cheetah Humanoid (research, 2024).** Centroidal MPC inherited directly from MIT Cheetah 3 work, scaled up to biped. - **Toyota T-HR3 (2017).** Tele-operated humanoid; balance assisted by the human operator through master rig. - **Toyota Cue (2018–).** Basketball-playing humanoid; specialised throw-and-shoot rather than locomotion balance. ### 5.3 Legacy (mostly retired but historically definitive) - **Honda ASIMO (1996–2018).** The reference ZMP-tracking humanoid; 0.4 m/s walking; never recovered from a push. Officially retired 2018. - **Sony QRIO (2003–2006).** 0.58 m entertainment humanoid; ZMP + reactive recovery. Project cancelled 2006. - **Petman / Atlas hydraulic (BD, 2009–2024).** Hydraulic Atlas, capture-point + WBC + later learned policies; the DARPA Robotics Challenge platform. Retired in favour of the Electric variant April 2024. - **AIST HRP-2/3/4 (2000s–2010s).** Reference Japanese humanoid line; ZMP + preview control. HRP-4 is still occasionally used in research. ## 6. Control methods | Method | Year / origin | Update rate | Strengths | Weaknesses | Used by | |---|---|---|---|---|---| | ZMP + preview LQR | Kajita 2003 | 100–200 Hz | Closed-form, robust on flat ground | Flat-ground only, no flight phase | ASIMO, HRP-2/3/4 | | Capture point | Pratt 2006 | 100–500 Hz | Naturally handles disturbances | Single-mass LIP assumption | IHMC Atlas, Apollo | | DCM | Englsberger 2015 | 100–500 Hz | Decouples stable/unstable modes | Still single-mass LIP | DLR TORO, IHMC | | Centroidal MPC (SRBD) | Di Carlo 2018 | 50–200 Hz | Convex QP, arbitrary terrain, fast | Ignores leg inertia | Cheetah-3, Spot, Atlas Electric | | Whole-Body Control (WBC) | Sentis-Khatib 2005 | 500–1000 Hz | Multi-task hierarchy, exact dynamics | Inverse-dynamics computational load | All modern humanoids | | HZD | Westervelt 2007 | Symbolic | Provable periodic gait stability | Hard to design, gait-specific | Cassie, MABEL, Digit | | Reinforcement Learning | Hwangbo 2019, Margolis 2024 | 50–500 Hz | Robust to terrain noise, model-free | Sim-to-real gap, no certificate | Unitree H1, Optimus, Cassie blind | | Model-based + RL residual | Lee 2019 | Hybrid | Best of both | Architectural complexity | Atlas Electric, Figure 02 | ### 6.1 ZMP preview control Kajita's preview LQR (Example B above) is the canonical Japanese approach. The CoM trajectory is solved offline (preview = future-reference feedforward) and tracked at runtime by an inner servo loop. Failure mode: any walking pattern that requires the ZMP outside the support polygon (running, jumping, flight phases) is infeasible. ### 6.2 Capture point + DCM Plan footsteps such that the touchdown of each new foot coincides with the **current capture point** projected forward by the swing time. The CoP within each stance phase tracks the DCM with a proportional law (Example C). Failure mode: the LIP assumption fails when the CoM accelerates vertically (stair climbing, jumping). Mitigation: replan capture point with a variable-height LIP or with eCMP (Englsberger 2013) corrections. ### 6.3 Centroidal / SRBD MPC The dominant 2024–2026 method. Formulate at horizon `N` (typically 0.5–1.0 s, 10–20 prediction nodes): $$\min_{F_{1:N}} \sum_{k=1}^N \|x_k - x_k^{\text{ref}}\|^2_Q + \|F_k\|^2_R \quad \text{s.t. SRBD dynamics, friction cones, foot kinematics}$$ The constraint set is linear once the contact schedule is fixed by the gait scheduler. QP solved with OSQP, qpSWIFT, or Crocoddyl's DDP at 100–200 Hz on a single core. Used in OCS2 (ETH), the BD Spot stack, and increasingly in humanoid stacks. ### 6.4 Whole-Body Control Sentis-Khatib (IJHR 2005) cast multi-task whole-body control as a **prioritised null-space projection** problem. Modern implementations (TSID, Pinocchio + Crocoddyl, OCS2) instead solve a hierarchical QP: $$\min_{\ddot q, \tau, \lambda} \|J_{\text{task}_1}\ddot q - \ddot x^{\text{ref}}_1\|^2 \;\;\text{s.t.}\;\; M \ddot q + h = S^\top \tau + J_c^\top \lambda, \;\lambda \in \text{cone}$$ with task `_2`, `_3`, ... enforced in lower-priority cascaded QPs. Runs at 500–1000 Hz. Tasks: CoM tracking, ZMP, swing-foot pose, gaze, manipulation. ### 6.5 Reinforcement learning Hwangbo 2019 (Science Robotics, ANYmal blind walking) established the modern pipeline: train a recurrent policy in massively-parallel rigid-body sim (Isaac Gym → Isaac Lab → MuJoCo MJX → Genesis), domain-randomise terrain and mass parameters, deploy with proprioception-only observations on hardware. Margolis 2024 (IJRR, rapid locomotion) scaled this to high-speed (3 m/s+) on Cassie. Failure mode: distribution shift on perception inputs and unmodelled motor dynamics. ### 6.6 HZD Westervelt-Grizzle 2007 establishes a procedure: pick virtual constraints `h(q)`, enforce them with feedback linearisation, analyse the resulting zero dynamics on the Poincaré section, design the gait so that the section map is contractive. Provides the only **certified-stable** controller available for an underactuated biped. Used in Cassie (Reher 2020) and Digit. Limitation: works best for periodic, symmetric, flat-ground gaits. ### 6.7 Hybrid model-based + RL Lee 2019 (residual policy learning) trains a small neural correction on top of a model-based controller. Atlas Electric, Figure 02, and the latest Cassie controllers use variants of this: a centroidal-MPC inner loop with a learned outer policy that handles terrain, perception, and perturbations the model does not capture. Best-of-both: interpretability of the model + robustness of the policy. ## 7. Edge cases and failure modes - **Push recovery — ankle / hip / step strategies.** Three reflexes (Stephens 2007) in increasing severity: ankle torque (small push, CoM stays inside foot), hip flail (medium push, generates angular momentum), step (large push, requires foot replacement). All modern controllers blend smoothly between them via the capture-point logic. - **Slip on ice (μ ≈ 0.1).** Friction cone shrinks; required tangential force may exceed limit; foot slips. Mitigation: reduce μ assumption in MPC by ~ 40 % margin; shorten step length; widen stance. - **Uneven terrain.** ZMP/LIP fail outside flat-ground assumption. Perceptive locomotion (Lee 2020 Science Robotics, ANYmal on stairs) uses a depth/RGB observation embedded into the policy. ANYmal Parkour (Hoeller 2024) and Atlas Electric do this routinely. - **Stair climbing (kinematic and perceptive).** IHMC Atlas during the DRC used a depth-based footstep planner; Atlas Electric extends this with a learned policy. Failure: missed step-height estimate → toe scuff → fall. - **Variable payload (carry mass on chest).** Changes the CoM location and mass; the centroidal MPC must re-estimate `r_{\text{CoM}}` online. Use a payload observer (Carpentier 2019) that fits added mass and CoM offset from joint-torque residuals. - **External perturbation (push, shove).** Capture-point reactive step within `1/ω ≈ 0.3 s`. Threshold beyond which the robot cannot recover with a single step is the boundary of the 1-step capture region. - **Motor torque saturation.** WBC needs joint-torque limits as inequality constraints; otherwise the controller commands the impossible. Mitigation: explicit torque limits in the QP; saturate gracefully via slack variables. - **Foot slip mid-stance.** Detected by tangential velocity at the foot relative to the floor. Trigger emergency CoP retreat toward the slipping foot. - **State estimation under contact** (Hartley 2020 IJRR, **Invariant EKF**). The contact constraint provides a strong pseudo-measurement of body velocity. Hartley's contact-aided InEKF is the de facto standard; runs at IMU rate (1 kHz) using right-invariant error. - **Battery sag at sprint.** Bus voltage droops under peak motor current; available torque drops just when needed. Mitigation: voltage-feed-forward in motor controller; conservative MPC torque limit at low SoC. - **Encoder drift.** Absolute encoders eliminate startup drift; relative encoders need a homing routine. Mitigation: redundant absolute encoders on each joint (Atlas Electric, Apollo). - **Protective fall.** When recovery is no longer possible (CoM outside *N*-step capture region for all feasible N), trigger a controlled fall: tuck arms, bend knees, roll on shoulder. Atlas Electric has a dedicated learned fall policy. - **Knee lock / overextension.** If a knee approaches its kinematic limit during single support, the LIP assumption (constant CoM height) breaks; centroidal MPC must explicitly include the knee-extension limit. ## 8. Tools and software - **OCS2 (ETH).** Whole-body MPC framework, used on ANYmal, the MIT Mini-Cheetah humanoid platforms, and various academic humanoids. C++17, SQP and DDP back-ends. - **TSID (Task Space Inverse Dynamics, LAAS-CNRS).** Hierarchical task QP via Pinocchio. Used in PAL Reachy and many academic humanoids. - **Pinocchio (LAAS-CNRS).** State-of-the-art floating-base rigid-body library; analytical derivatives; the back-end for Crocoddyl, TSID, Aligator. Carpentier 2019. - **Crocoddyl (LAAS-CNRS).** Differential Dynamic Programming (DDP) solver tailored for legged robots; FDDP and Box-FDDP variants. Mastalli 2020. - **MuJoCo (Google DeepMind).** Premier contact simulator; MuJoCo MPC (online optimal control) and MJX (JAX/XLA backend, GPU parallel). - **Isaac Sim / Isaac Lab (NVIDIA, 2024+).** GPU-parallel RL training environment; default for Unitree H1, Figure 02, Optimus development. - **Genesis (CMU/Sea AI Lab, 2024).** New differentiable, GPU-parallel simulator; claims 100× MuJoCo throughput for legged training. - **PyBullet / Bullet.** Long-standing open-source physics engine; still common in research due to easy Python bindings. - **Drake (Toyota Research / MIT).** Systems-and-control framework with formal trajectory optimisation, contact solving, and verification. Used in TRI Punyo humanoid research. - **ROS 2 (Jazzy Jalisco, 2024+) + ros2_control.** Deployment substrate; real-time joint-state and effort interfaces; integrates with the controllers above. ## 9. Case studies ### 9.1 MIT Cheetah 3 → humanoid balance (Wensing-Kim 2017; Bledt 2018) The MIT Cheetah 3 stack established the modern centroidal-MPC + WBC recipe for legged robots. Wensing & Kim (IJRR 2017) showed that a convex MPC over the SRBD (Section 2.6) running at 50–200 Hz, paired with a whole-body QP at 1 kHz, suffices for high-dynamics gaits (trotting, bounding, jumping). The same architecture transferred directly to Spot, and with adaptation, to humanoid platforms — Atlas Electric, Figure 02, and several academic humanoids (e.g. Wensing's MIT Humanoid prototype). Key insight: **separate kinematics from dynamics**; let the MPC reason about contact wrenches in the centroidal frame, let the WBC reason about joint torques. The two layers communicate through wrench setpoints. ### 9.2 Cassie 5 km outdoor run (Siekmann 2021; Margolis 2024) Cassie (Agility Robotics, 2017) was the first bipedal robot to run an outdoor 5-km course (Berkeley campus, 2022). The controller is a **recurrent neural policy** trained entirely in simulation (Isaac Gym), conditioned on proprioception only (no perception). Siekmann 2021 (RSS) introduced the periodic reward formulation that lets a single policy span walking through running. Margolis 2024 (IJRR) extended this to "rapid locomotion" — sub-second adaptation to terrain change, gait transitions, push recovery — with sim-to-real domain randomisation on motor dynamics and terrain friction. The Cassie work demonstrated that pure RL can reach the dynamic-walking regime previously reserved for HZD + model-based stacks. ### 9.3 Boston Dynamics Atlas Electric (2024) After 11 years of hydraulic Atlas, Boston Dynamics released the all-electric Atlas in April 2024. Hardware: 89 kg, 1.5 m, fully electric custom actuators with planetary reductions, on-board batteries (rumoured 1.5 kWh), redundant encoders on every joint. Balance: a hybrid stack — centroidal MPC (200 Hz), WBC (500 Hz), and a learned residual policy that handles perception-conditioned manoeuvres and recovery. The 2024 demo videos (Atlas getting up from prone, somersaulting, handing off objects) show sub-metre precision footstep placement and confident recovery from 30+ N pushes. The whitepaper (2024) emphasises that the controller architecture is the same family as Spot's — proof that the MIT Cheetah-3 recipe scales to full humanoid form-factor. ## 10. Cross-references - `[[Robotics/legged-robotics]]` — quadruped + biped dynamics primer, hybrid contact models - `[[Robotics/dynamics-rigid-body]]` — floating-base manipulator equation, Featherstone spatial algebra - `[[Robotics/motors-electric]]` — QDD (Quasi-Direct-Drive) actuators that make modern humanoids possible - `[[Robotics/impedance-control]]` — Hogan compliance, used for contact transitions and arms - `[[Robotics/state-space-lqr]]` — LQR, MPC foundations used inside the balance stack - `[[Robotics/bayesian-estimation]]` — invariant EKF for floating-base state estimation - `[[Robotics/rl-for-control]]` — Isaac Lab, MJX, sim-to-real for policy learning - `[[Robotics/dynamic-locomotion]]` (planned, same batch) — companion note covering fast running and jumping - `[[Robotics/exoskeletons]]` (planned) — assistive bipeds; same ZMP / capture-point math with human-in-the-loop - `[[Robotics/prosthetics]]` (planned) — single-leg variants; HZD prosthesis control - `[[Engineering/mpc-control]]` — generic MPC fundamentals - `[[Engineering/vibration-dynamics]]` — structural mode shaping, joint elasticity ## 11. Citations - **Vukobratović, M. & Stepanenko, J. (1972).** "On the Stability of Anthropomorphic Systems." *Mathematical Biosciences* 15: 1–37. The original ZMP paper. - **Kajita, S., Kanehiro, F., Kaneko, K., Yokoi, K., Hirukawa, H. (2001).** "The 3D Linear Inverted Pendulum Mode." *IROS 2001*. The LIP model. - **Kajita, S., Kanehiro, F., Kaneko, K., Fujiwara, K., Harada, K., Yokoi, K., Hirukawa, H. (2003).** "Biped Walking Pattern Generation by using Preview Control of Zero-Moment Point." *ICRA 2003*. Preview MPC. - **Pratt, J., Carff, J., Drakunov, S., Goswami, A. (2006).** "Capture Point: A Step Toward Humanoid Push Recovery." *IEEE-RAS Humanoids 2006*. - **Englsberger, J., Ott, C., Albu-Schäffer, A. (2015).** "Three-Dimensional Bipedal Walking Control Based on Divergent Component of Motion." *IEEE Transactions on Robotics* 31(2): 355–368. DCM canonical paper. - **Westervelt, E., Grizzle, J., Chevallereau, C., Choi, J., Morris, B. (2007).** *Feedback Control of Dynamic Bipedal Robot Locomotion.* CRC Press. HZD textbook. - **Sentis, L., Khatib, O. (2005).** "Synthesis of Whole-Body Behaviors through Hierarchical Control of Behavioral Primitives." *International Journal of Humanoid Robotics* 2(4): 505–518. WBC. - **Orin, D., Goswami, A. (2008).** "Centroidal momentum matrix of a humanoid robot." *ICRA 2008*. CMM definition. - **Wensing, P., Kim, S. (2017).** "Proprioceptive Actuator Design in the MIT Cheetah." *IEEE T-RO* 33(3): 509–522. - **Bledt, G., Powell, M., Katz, B., Di Carlo, J., Wensing, P., Kim, S. (2018).** "MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot." *IROS 2018*. - **Di Carlo, J., Wensing, P., Katz, B., Bledt, G., Kim, S. (2018).** "Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control." *IROS 2018*. Convex SRBD MPC. - **Hartley, R., Ghaffari, M., Eustice, R., Grizzle, J. (2020).** "Contact-Aided Invariant Extended Kalman Filtering for Robot State Estimation." *IJRR* 39(4): 402–430. - **Siekmann, J., Godse, Y., Fern, A., Hurst, J. (2021).** "Sim-to-Real Learning of All Common Bipedal Gaits via Periodic Reward Composition." *RSS 2021*. Cassie blind walking. - **Margolis, G., Kim, S., Pulkit, A. (2024).** "Rapid Locomotion via Reinforcement Learning." *IJRR* 43(4): 572–595. Cassie rapid locomotion. - **Hwangbo, J. et al (2019).** "Learning Agile and Dynamic Motor Skills for Legged Robots." *Science Robotics* 4(26). ANYmal blind walking foundation paper. - **Lee, J., Hwangbo, J., Wellhausen, L., Koltun, V., Hutter, M. (2020).** "Learning Quadrupedal Locomotion over Challenging Terrain." *Science Robotics* 5(47). ANYmal stairs / perceptive locomotion. - **Mastalli, C., Budhiraja, R., Merkt, W., Saurel, G., Hammoud, B., Naveau, M., Carpentier, J., Righetti, L., Vijayakumar, S., Mansard, N. (2020).** "Crocoddyl: An Efficient and Versatile Framework for Multi-Contact Optimal Control." *ICRA 2020*. - **Carpentier, J., Saurel, G., Buondonno, G., Mirabel, J., Lamiraux, F., Stasse, O., Mansard, N. (2019).** "The Pinocchio C++ library: A Fast and Flexible Implementation of Rigid Body Dynamics Algorithms." *SII 2019*. - **Koolen, T., de Boer, T., Rebula, J., Goswami, A., Pratt, J. (2012).** "Capturability-Based Analysis and Control of Legged Locomotion." *IJRR* 31(9): 1094–1113. *N*-step capture regions. - **Stephens, B. (2007).** "Humanoid Push Recovery." *IEEE-RAS Humanoids 2007*. Ankle/hip/step strategies. - **Sardain, P., Bessonnet, G. (2004).** "Forces Acting on a Biped Robot: Center of Pressure — Zero Moment Point." *IEEE T-SMC* 34(5): 630–637. - **Reher, J., Ames, A. (2020).** "Inverse Dynamics Control of Compliant Hybrid Zero Dynamic Walking." *ICRA 2020*. Cassie HZD. - **Hoeller, D., Rudin, N., Sako, D., Hutter, M. (2024).** "ANYmal Parkour: Learning Agile Navigation for Quadrupedal Robots." *Science Robotics*. - **Boston Dynamics (2024).** "Atlas Electric — A New Era of Humanoid Robots." Whitepaper, April 2024.