# 3D Bipedal Walking including COM height variations

## Abstract

Real robots that walk in the field today rely on the Linear Inverted Pendulum Mode (LIPM) for walking control. Rigorously, the LIPM requires the robot's center-of-mass to lie in a plane, which is valid for walking on flat surfaces but becomes inexact over more general terrains. In this talk, we will see how to extend the LIPM to 3D walking, opening up old but refreshed questions on the analysis and control of bipeds. Technically, we will encounter a nonlinear control problem that we address by model predictive control of a quasi-convex optimization problem. We will see how the resulting controller works on the HRP-4 humanoid robot.

## Content

Slides of NTU version, more detailed | |

Slides of QUT version, more high-level |

## References

Balance problem with height variations (ICRA 2018) | |

Walking pattern generation with height variations (pre-print) |

## Q & A

Thanks to all the people who attended the presentations and asked meaningful questions about it (including those I forgot to write down below!). Feel free to write me directly if you have any other question related to this talk.

**What is your vector** \(\boldsymbol{\varphi}\) **of design variables?**

Sorry for this gap in the talk, as I didn't want to step too much into the details of the derivation (these are available in condensed and unabridged versions). The function is actually \(\varphi(s) = (s \omega)^2\). It is not obvious from the equations we saw but this quantity appears quite frequently in the structure of the problem. This draws another connection with TOPP as TOPP-RA defines the same quantity.

**Do you interpolate a CoM path as in TOPP?**

No, the CoM path will be an output of the optimization (derived by forward integration from \(\lambda(t)\) and \(r(t)\)). The key trick we adapted from TOPP is the change of variable \(s(t)\) and the idea to define solutions as functions of \(s\) rather than \(t\). (If you think of TOPP, an expression like \(\dot{s}(s)\) expands to \(\frac{{\rm d} s}{{\rm d}t}(s(t))\) which looks like a snake biting its own tail, but is actually well-defined.) Path tracking was not necessary here to formulate our problem.

**What makes your "capture problems" faster to solve than generic nonlinear
problems?**

Mainly two things: (1) the structure fromlinearinequalities that allows for taylored QR decompositions in the least-square steps of the SQP solver, and (2) the fact that the nonlinear equality does not "disrupt" the improvements thus obtained on the "QP part" of the optimization. You will need to take a look at Section IV of the the paper for more precise statements.

**Edit (21/05/2018):** a better answer from Adrien Escande:

There are mainly four factors behind this speedup:

- There is only
onenonlinear constraint, so that using a quadratic penalty with fixed gain works well.- Linear inequality constraints have a fixed and known structure that we can leverage during the least-square steps.
- The latter make it easy to find an initial feasible point.
- The problem is well-conditioned: most standard SQP refinements and tricks are not needed, so that we can get away with a simple "straight out of the textbook" implementation. Even line search or other globalization methods may not be necessary.