Divergent components of motion

Talk given at the CNRS-AIST Joint Robotics Laboratory (JRL) on 29 October 2019.


Some nonlinear control systems admit an exponential dichotomy (Coppel, 1966), that is to say, their dynamics can be decomposed into (exponentially) stable and unstable components. Walking robots fall into this category, and we call their unstable components divergent components of motion (DCM). The concept of DCM has been fruitfully applied to the linear inverted pendulum (LIP) for both walking pattern generation and balance feedback control. But DCMs can be found for other models as well! In this talk, we will discuss DCMs for the variable-height inverted pendulum (VHIP), an extension of the LIP where the controller can add height variations. Ideally, we would like our robot to behave as a LIP (nominal height) unless some perturbation occurs and the robot resorts to the height-variation strategy, if it has to. Deciding when to use or not this strategy may seem "smart" or predictive, but we will see that it can be implemented straightforwardly as linear feedback over a 4D DCM.


Chatty Presentation



pdf Slides


Thanks to all the people who attended the presentations and asked meaningful questions about it. Feel free to write me directly if you have any other question related to this talk.

What matrices did you use to generate the figure on slide 4?

This figure corresponds to:

  • \(A = \begin{bmatrix} +2 & 1 \\ 0 & +1 \end{bmatrix}\) for \(\mathrm{eig}(A) = \{2, 1\}\)
  • \(A = \begin{bmatrix} -2 & 1 \\ 0 & +1 \end{bmatrix}\) for \(\mathrm{eig}(A) = \{-2, 1\}\)
  • \(A = \begin{bmatrix} -2 & 1 \\ 0 & -1 \end{bmatrix}\) for \(\mathrm{eig}(A) = \{-2, -1\}\)

Why did you seem to doubt that ω is a DCM, isn't it clearly divergent?

Yes, the point I had doubts on is about the "of motion" part. Previously, when the DCM was directly computed by linear combination of the CoM position and velocity, it was clear that "it diverges" and "it is a component of motion" imply that it is a DCM. But here, \(\omega\) appears as a technical choice we make in order to diagonalize the state-transition matrix after changing variable.

How do you choose the remaining proportional gain on slide 12?

On the real robot, it will depend on your control cycle and in particular on the bandwidth of the force control loop (admittance control on our robots, see slide 26). DCM and force control gains are coupled when the two are run at roughly the same frequency, as is the case here, and we are not modeling this coupling. For practical advice, check out this note on tuning stabilizer gains.

How did you select the poles in the final least-squares formulation?

In general we could have four gains on the diagonal of the closed-loop state-transition matrix, but in practice we often use the same gains for different directions (for instance, the same gain for both sagittal and lateral DCM feedback in the LIP). I followed this practice, using a single normalized gain \(k > 1\) and scaling it on each axis by a factor consistent with the equations of motion.

Is there unicity of the DCMs or exponential dichotomy?

No! For instance, in a previous work we had used a different DCM for the VHIP whose formula included the ZMP as well. Multiplying a DCM by a non-zero scalar also yields a DCM, there may be "classes" of equivalent DCMs for some equivalence relation, but I wonder what it could be...
© Stéphane Caron — All content on this website is under the CC BY 4.0 license.