Fall Recovery Controller for Humanoid Robots

Hierarchical balance & recovery via capture-point FSMs in MuJoCo

Designed and implemented a progressive suite of four balance and fall-recovery controllers for the v0H humanoid robot in MuJoCo simulation. The controllers build on each other in a progression from minimal standing to full-body dynamic balance with fall recovery, inspired by human balance recovery strategies: ankle, hip, stepping, and protective reflexes.

Design Philosophy

The system is organized as a capability progression where each controller adds new modules on top of the previous one:

  • Controller C → A → B → D, from minimal robust standing to full-body dynamic balance
  • Each level adds disturbance coverage while preserving the stability guarantees of prior levels
  • All controllers use the Capture Point (CP) as the primary lateral stability predictor:
\[ x_{\mathrm{CP}} = x_{\mathrm{COM}} + \frac{\dot{x}_{\mathrm{COM}}}{\omega_0}, \quad \omega_0 = \sqrt{\frac{g}{h_{\mathrm{COM}}}} \]

Controller C: Minimal Robust Standing

Foundation layer with tight PD control and a 60% torque-rate clamp to suppress limit-cycle oscillations. A single static standing pose validates kinematics and joint sign conventions. On contact loss, all torques are zeroed to let gravity settle the robot.

  • Conservative gains: \(K_p = 15{-}30\), \(K_d = 1.5{-}3.0\) per joint group
  • Safety: torque limited to 60% of actuator max, rate-limited at 15% change per step
  • Handles gentle perturbations only (<0.1 m push)

Controller A: Layered Reflex Cascade

Introduces a three-tier reflex hierarchy mirroring human balance recovery:

  • Ankle strategy (\(|\delta| < 0.02\)): small roll corrections via ankle PD
  • Hip strategy (\(|\delta| < 0.07\)): hip abduction on the support leg + contralateral squat + ankle correction
  • Stepping strategy (\(|\delta| < 0.25\)): adaptive step with length \(l = K_{\text{step}} \cdot |\delta|\), clipped to the physical leg reach (0.55 m)

A 0.15 s dwell timer between FSM transitions prevents mode-flapping under oscillatory disturbances. If the stepping strategy fails to reduce error within 50 ms, the controller automatically falls back to the hip strategy.

Controller B: Full Fall-Recovery Pipeline

Extends the reflex cascade with trajectory-free fall handling and a complete stand-up sequence:

  • FALLING: Detected when pelvis height drops below 0.33 m or vertical velocity exceeds 0.8 m/s. The robot bends knees and arms to lower COM and prepare for impact.
  • IMPACT: On ground contact (3+ contact points), stiffness is reduced and damping increased to absorb energy.
  • TRIPOD: Stable three-point stance with controlled hip/knee targets.
  • STAND-UP: A 2-second scripted sequence through half-kneel to full standing, using staged joint waypoints at 0.4 s intervals.

A TelemetryBuffer logs state, capture-point error, and COM-BoS margin at each timestep for post-hoc analysis.

Controller D: Full-Body Dynamic Balance

The most capable controller, employing five coordinated strategies activated by capture-point error thresholds:

StrategyCP Error ThresholdAction
Ankle< 5 cmAnkle roll/pitch torques
Hip< 12 cmHip abduction + weight shift
Arm swing< 15 cmCounter-momentum arm motion
Torso lean< 20 cmTorso pitch/roll compensation
Stepping< 25 cmLateral/frontal recovery step
Emergency> 40 cm or COM ↓Pre-impact pose → recovery sequence

The FSM transitions between STANDING → BALANCING → STEPPING → EMERGENCY states, with automatic downshifting as CP error decreases. Gains are auto-scaled during BALANCING and STEPPING states (recovery gain factor of 2×).

Performance Summary

MetricCABD
FSM states14116–7
Capture-point logic-LateralLateral + predictiveLateral + stepping
Impact mitigation--Knees + armsPre-impact pose
Max push survived0.1 m0.25 m CP0.5 m fall + get-up0.35 m CP
Peak torque<20 Nm<60 Nm<120 Nm<200 Nm

In a 40-second stress test with aggressive stochastic perturbations, Controller D maintained 62% standing, 38% active balancing, and 0% falls, with a mean capture-point error of 0.012 m.