Stair Climbing Stabilization of the HRP-4 Humanoid Robot using Whole-body Admittance Control

Stéphane Caron, Abderrahmane Kheddar and Olivier Tempier. ICRA 2019, Montreal, Canada, May 2019.

Abstract

We consider dynamic stair climbing with the HRP-4 humanoid robot as part of an Airbus manufacturing use-case demonstrator. We share experimental knowledge gathered so as to achieve this task, which HRP-4 had never been challenged to before. In particular, we extend walking stabilization based on linear inverted pendulum tracking by quadratic programming-based wrench distribution and a whole-body admittance controller that applies both end-effector and CoM strategies. While existing stabilizers tend to use either one or the other, our experience suggests that the combination of these two approaches improves tracking performance. We demonstrate this solution in an on-site experiment where HRP-4 climbs an industrial staircase with 18.5 cm high steps, and release our walking controller as open source software.

Content

 Paper Poster presented at ICRA 2019 Presentation given at JRL on 11 December 2018 Stair climbing at the Airbus Saint-Nazaire factory Walking controller (C++) 10.1109/ICRA.2019.8794348

Supplementary material

 Floating base observer used in this controller

BibTeX

@inproceedings{caron2019icra,
title = {Stair Climbing Stabilization of the {HRP}-4 Humanoid Robot using Whole-body Admittance Control},
author = {Caron, St{\'e}phane and Kheddar, Abderrahmane and Tempier, Olivier},
booktitle = {IEEE International Conference on Robotics and Automation},
url = {https://hal.archives-ouvertes.fr/hal-01875387},
year = {2019},
month = may,
}


Discussion

What is the formula for the matrix $$\bfU$$ in Equation (10)?

This matrix is given by:

\begin{equation*} \bfU = \begin{bmatrix} -1 & 0 & -\mu & 0 & 0 & 0 \\ +1 & 0 & -\mu & 0 & 0 & 0 \\ 0 & -1 & -\mu & 0 & 0 & 0 \\ 0 & +1 & -\mu & 0 & 0 & 0 \\ 0 & 0 & -Y & -1 & 0 & 0 \\ 0 & 0 & -Y & +1 & 0 & 0 \\ 0 & 0 & -X & 0 & -1 & 0 \\ 0 & 0 & -X & 0 & +1 & 0 \\ -Y & -X & -(X + Y) \mu & +\mu & +\mu & -1 \\ -Y & +X & -(X + Y) \mu & +\mu & -\mu & -1 \\ +Y & -X & -(X + Y) \mu & -\mu & +\mu & -1 \\ +Y & +X & -(X + Y) \mu & -\mu & -\mu & -1 \\ +Y & +X & -(X + Y) \mu & +\mu & +\mu & +1 \\ +Y & -X & -(X + Y) \mu & +\mu & -\mu & +1 \\ -Y & +X & -(X + Y) \mu & -\mu & +\mu & +1 \\ -Y & -X & -(X + Y) \mu & -\mu & -\mu & +1 \end{bmatrix} \end{equation*}

with $$\mu$$ the friction coefficient, $$X$$ the half-length and $$Y$$ the half-width of the rectangular contact area. Check out this paper for the derivation of this formula, which corresponds to its equations (15) to (20). In code, it is implemented in the functions:

Pages of this website are under the CC-BY 4.0 license.