Table of Contents
Fetching ...

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.

Stand Up, NAO! Increasing the Reliability of Stand-Up Motions Through Error Compensation in Position Control

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 , computing from the delayed error and a predicted error , 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.

Paper Structure

This paper contains 14 sections, 4 equations, 6 figures, 2 tables.

Figures (6)

  • Figure 1: The front stand-up routine. Upper row: The robot starts with a default pose, pulls it legs together and rotates the arms, then first stretches the legs to lift itself up on the arms and head and then stretches the legs fully. This brings the robot in an ideal pose supported by the soles and arms with some momentum towards the legs, which is necessary afterwards to tilt the torso upwards. Bottom row: The robot shifts its CoM into the supporting area of its feet. Afterwards, the torso is tilted upwards, the legs aligned to shift the mass of the robot evenly and the legs are pulled together.
  • Figure 2: The back stand-up routine. Upper row: The robot moves the arms behind its back and then moves the legs upwards and forward to tilt the torso upright, by using the arms as a tilting point for the CoM. Bottom row: After tilting upright, the legs are spread apart and the arms are used to stabilize and prevent a fall backwards. Then the robot shifts itself on one leg followed by the other one. Afterwards, the legs are aligned to shift the robot mass evenly, which allows to pull the legs together and bring the robot safely into a standing pose.
  • Figure 3: A previously stuck hip yaw pitch joint of 30° lets the robot tilt forward during standing up.
  • Figure 4: A cutout of a stand-up attempt without and with the error compensation: a) The joints keep getting stuck or lagging behind, resulting in a fall. b) The left sole joints are used to compensate the errors, which keeps the torso stable and the joints free up after some time.
  • Figure 5: The overall state-based flow carried out in every execution cycle.
  • ...and 1 more figures