Stand Up, NAO! Increasing the Reliability of Stand-Up Motions Through Error Compensation in Position Control
Philip Reichenberg, Tim Laue
TL;DR
This work tackles the reliability of stand-up motions for the NAO robot in RoboCup SPL, where large joint-position errors frequently derail attempts. The authors introduce an error compensation framework that propagates the detected error from a problematic joint to other joints via the rule $\,\hat{R}_{\\gamma} = R_{\\gamma} + \\Delta_j \\cdot p_{\\gamma}$, computing $\\Delta_j$ from the delayed error $\,\\delta_j = r_j - m_j$ and a predicted error $\\hat{\\delta}_j$, with smoothing and cross-keyframe alignment to avoid overcompensation. They augment this core idea with a suite of extensions—balancing through a CoM-based exponential PD controller, viability checks, waiting phases, and Ankle Roll Oscillation—to cope with surface irregularities and worn hardware. Evaluations across multiple teams and RoboCup events show improved stand-up success and broad adoption, though wear can reduce performance and motivates automated tuning and RL-based exploration with tools like IsaacGym in future work.
Abstract
Stand-up motions are an indispensable part of humanoid robot soccer. A robot incapable of standing up by itself is removed from the game for some time. In this paper, we present our stand-up motions for the NAO robot. Our approach dates back to 2019 and has been evaluated and slightly expanded over the past six years. We claim that the main reason for failed stand-up attempts are large errors in the executed joint positions. By addressing such problems by either executing special motions to free up stuck limbs such as the arms, or by compensating large errors with other joints, we significantly increased the overall success rate of our stand-up routine. The motions presented in this paper are also used by several other teams in the Standard Platform League, which thereby achieve similar success rates, as shown in an analysis of videos from multiple tournaments.
