English

Embedding Classical Balance Control Principles in Reinforcement Learning for Humanoid Recovery

Robotics 2026-03-10 v1

Abstract

Humanoid robots remain vulnerable to falls and unrecoverable failure states, limiting their practical utility in unstructured environments. While reinforcement learning has demonstrated stand-up behaviors, existing approaches treat recovery as a pure task-reward problem without an explicit representation of the balance state. We present a unified RL policy that addresses this limitation by embedding classical balance metrics: capture point, center-of-mass state, and centroidal momentum, as privileged critic inputs and shaping rewards directly around these quantities during training, while the actor relies solely on proprioception for zero-shot hardware transfer. Without reference trajectories or scripted contacts, a single policy spans the full recovery spectrum: ankle and hip strategies for small disturbances, corrective stepping under large pushes, and compliant falling with multi-contact stand-up using the hands, elbows, and knees. Trained on the Unitree H1-2 in Isaac Lab, the policy achieves a 93.4% recovery rate across randomized initial poses and unscripted fall configurations. An ablation study shows that removing the balance-informed structure causes stand-up learning to fail entirely, confirming that these metrics provide a meaningful learning signal rather than incidental structure. Sim-to-sim transfer to MuJoCo and preliminary hardware experiments further demonstrate cross-environment generalization. These results show that embedding interpretable balance structure into the learning framework substantially reduces time spent in failure states and broadens the envelope of autonomous recovery.

Keywords

Cite

@article{arxiv.2603.08619,
  title  = {Embedding Classical Balance Control Principles in Reinforcement Learning for Humanoid Recovery},
  author = {Nehar Poddar and Stephen McCrory and Luigi Penco and Geoffrey Clark and Hakki Erhan Svil and Robert Griffin},
  journal= {arXiv preprint arXiv:2603.08619},
  year   = {2026}
}
R2 v1 2026-07-01T11:10:41.821Z