# 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

The paper on HAL is a post-print I have kept updating after the conference to keep up with the later additions and fixes implemented in the walking controller. See the release notes on GitHub for an overview of the major changes since the conference version (v1.1).

 Post-print paper Poster presented at ICRA 2019 Presentation given at the Jet Propulsion Laboratory on 5 June 2019 Stair climbing at the Airbus Saint-Nazaire factory Walking controller (C++) 10.1109/ICRA.2019.8794348

## Supplementary material

 Controller documentation Floating base observer used in this controller Overview of the controller's principles Python prototype of the walking trajectory generator

## 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,
doi = {10.1109/ICRA.2019.8794348},
}


## Discussion

Thanks to all those who have contributed to the conversation so far. Feel free to leave a reply using the form below, or subscribe to the  Discussion's atom feed to stay tuned.

• Posted on

Ankle angular velocities are clamped in the foot damping controller. How significant is this? Does the pipeline rely on this?

• Posted on

We clamped angular velocities at 0.2 rad/s for the ankles. In the nominal behavior (a.k.a. "if everything goes well"™) no clamping should happen, so the control pipeline does not rely on this part. This clamping is rather a safety to avoid some states going from bad to worse: if the ZMP hits the boundary of its support area and the foot starts to tilt around its edge, force/torque sensors may measure an obscenely-far ZMP. We don't want to forward this value unclamped to a direct velocity controller ;-)

• Posted on

In the MPC trajectory generator, what ZMP constraints are enforced during double support?

• Posted on

To compute open-loop walking trajectories (i.e. before sensor readings and DCM feedback, which are the task of the stabilizer), we solve linear model predictive control (MPC) quadratic programs. These programs follow the formulation from Wieber et al., see e.g. the writeup in Brasseur et al. (2015). In particular, problems from this line of work use CoM jerk as control inputs/optimization variables, and don't have inequality constraints during double support phases, owing to the fact that these phases are no more than one or two timesteps. See the ZMP inequality constraint FAQ of the controller for more technical details.

• Posted on

Why isn't there an angular momentum task in whole body control?

• Posted on

Although the linear inverted pendulum model assumes constant angular momentum around the CoM, this controller does not try to explicitly control angular momentum. Rather, it relies on chest posture control for the upper body, and treats angular momentum variations as unmodeled disturbances handled after the fact by DCM feedback. Chest posture control is synchronized with foot damping control to adapt to terrain variations: see the angular momentum task FAQ of the controller for more technical details.

• Posted on

What are the pros and cons of CoM admittance control?

• Posted on

While we used CoM admittance control in 2019 stair climbing experiments, such as the one you see in the video above, we disabled it by default when distributing the open source controller. This choice is detailed in the CoM admittance control FAQ of the controller. In short: it improves disturbance rejection when contact force constraints are saturated (like we had when stepping up), but on stiff position-controlled robots like HRP-4 it has a tendency to pick up resonance vibrations.

• Posted on

How is the divergent component of motion estimated?

• Posted on

As now described in Appendix B, we compute the translation and orientation of the floating base using the classical IMU with anchor frame estimate. We then derive the CoM position by combining it with joint encoder measurements, and the CoM velocity by first-order low-pass filtering of this position.

• Posted on

Why use damping control at the foot contact frame rather than, say, an acceleration-based force control law?

• Posted on

The answer can be found in Equation (2) of Kajita et al. (2001). Robots from the HRP series have inherited from their Honda elders the choice of a mechanical flexibility (rubber bushes and linear dampers) added between the ankle and foot links. Stiffness $$K$$ dominates damping $$B$$ in this flexibility, that is, in practice $$K \Delta \theta \gg B \Delta \dot{\theta}$$ where $$\theta$$ is a contact frame angle. We then use as a ground reaction torque model:

\begin{equation*} \tau = K (\theta - \theta_{\mathit{ground}}) \end{equation*}

Usually the environment is static, so that the time-derivative of this expression is:

\begin{equation*} \dot{\tau} = K \dot{\theta} \end{equation*}

Foot damping control corresponds to the following angular velocity:

\begin{equation*} \dot{\theta} = A (\tau_{\mathit{desired}} - \tau) \end{equation*}

In closed loop, this yields:

\begin{equation*} \dot{\tau} = K A (\tau_{\mathit{desired}} - \tau) \end{equation*}

This ensures that $$\tau \to \tau_{\mathit{desired}}$$ as $$t \to \infty$$.

• Posted on

OK, but why in practice use damping control rather than an acceleration-based formulation?

• Posted on

Large stiffness and low damping were rather a design choice that came with the robots we worked with. The second-order model with both stiffness $$K$$ and damping $$B$$ coefficients has more parameters to tune, but if $$K \Delta \theta \gg B \Delta \dot{\theta}$$ this more complex model will anyway behave like a first-order model. Let us apply Occam's razor then: using the first-order model, we get similar performance with less parameters to tune and simpler code to maintain ;-)

• Posted on

Shall we try moving away from such high-stiffness low-damping at the contact interface?

• Posted on

Absolutely, moving away from high stiffness and low damping at contact makes sense in my opinion. We tried moving away from this setting when walking on gravel with soft soles: the soles had a Young's modulus of 0.32 MPa (versus 5 MPa in previous works and I-don't-know-how-much for the default hard robot soles) meaning we reduced $$K$$ rather than increase $$B$$. We still walked on hard floor though. There were two takeaway observations from this work:

First, the interaction with the ground through soft soles had more (ankle displacement to reaction force change) delay, i.e. lower force control bandwidth. This is not great for balance control where, when the stabilizer outputs a desired contact wrench, we want this wrench to be applied to the environment as fast as possible. That's one thing to look at: what combinations of $$K$$ and $$B$$ maximize the force control bandwidth?

Second, foot impacts at touchdown with soft soles were better mitigated mechanically. Walking controllers typically touch down earlier than expected at every step, which incurs undesired CoM velocity disturbances (foot impacts after they propagate across the kinematic chain). But with the soft soles these impacts were lower. If we imagine a function $$\mathrm{impact}(K, B)$$ at touchdown, it is likely decreasing in $$B$$ yet increasing in $$K$$. This leads us to another question: for a given $$K$$ (and some model of early-touchdown impact), what values of $$B$$ minimize $$\mathrm{impact}(K, B)$$?

• Posted on

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

• Posted on

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:

### Post a comment

You can use Markdown with $\LaTeX$ formulas in your comment.

You agree to the publication of your comment on this page under the CC BY 4.0 license.

Your email address will not be published.

© Stéphane Caron — All content on this website is under the CC BY 4.0 license.
τ