Robust legged locomotion is a very interesting control problem, due to its nature of multibody-, hybrid-, nonsmooth-, nonlinear-dynamics.

Here is a brief overview of the controller’s I’ve learned so far:

controller Example
Raibert’s controller Big dog
Static locomotion Little dog
Zero moment point (ZMP) ASIMO
Capture points M2V2
Virtual model control (VMC) SpringFlamingo
Hybrid zero dynamics (HZD) ATRIAS

Raibert’s controller

Raibert’s controller decouples the control for leg length and leg angle. It regulates:

  • Hopping height - by constant energy input of leg length actuator during stance phase;
  • Body pitch - by PD control of leg angle actuator during stance phase;
  • Forward speed - by PD control of landing foot position (equivalent to leg angle) during flight phase.

Static locomotion (inverse kinematics)

Static locomotion plans a trajectory of joints such that at any moment of time the CoM falls within the support polygon of the robot. It works only if the robot moves slow enough that the dynamic/inertia effect is not too strong.

First, the foot and CoM trajectories are planned. Second, use inverse kinematics to compute the desire joint angle trajectories. Last, use PD control to track joint trajectories.

Zero moment point (ZMP)

A desire CoM motion has to be enforce by the contact force and moment. We can compute the contact force with CoM dynamics, but it may generate a torque. To zero this torque, we can place the foot to the ZMP (basically the center of pressure). In this way, we derive the ZMP equation.

The ZMP problem is to find a trajectory of CoM and ZMP such that:

  • they fullfill the ZMP equations
  • ZMP is always within the support polygon
  • they fullfull leg length constraint

It is treated as an optimal control problem that minimize tracking error of ZMP and CoM jerk.

Capture points

A state $x$ is N-step capturable if there exists future input $u$ that prevent entering fail state $F$ without taking more than $N$ steps.

The idea is to study the dynamics of the instantaneous capture point $x_{IC}$, and plan the foot steps accordingly to capture the system.

It doesn’t really control the robot to move, but rather control the robot to stop.

Virtual model control (VMC)

For a desire CoM motion, we imagining there exists virtual forces ($F_x$, $F_y$, $F_{\theta}$) that enable this motion, which can be computed with PD controller. These virtual forces have no physical actuators, and thus have to be generated by contact forces. We decompose the contact jacobian to passive and active part:

  • using passive contact jacobian and desire virtual forces we compute the desire contact forces;
  • using active contact jacobian and desire contact forces we compute the motor torque

Hybrid zero dynamics (HZD)

HZD designs trajectories base on phase variable instead of time. The basic idea is to apply vitual constraints to achieve control goal. It involves several steps:

  • define a phase variable theta that grows strictly monotonic over the course of a stride, and is dependent on the not actuated DoF;
  • design desire joint trajectories for all active joints as a function of the phase variable, as the virtual constraints $y = q - h_{\theta}$;
  • virtual constraints are satisfied when $y = \dot{y} = \ddot{y} := 0$ => $J\ddot{q} + \dot{J}\dot{q} = 0$;
  • replace $\ddot{q}$ in the above equation with system’s EoM, then solve for the desire joint torque $\tau$.

Note, $DDy = 0$ makes no sense when $y , \dot{y} \neq 0$. It should be used to control $y$ and $\dot{y}$ such that they converge to constraints: $\ddot{y} = - k_d \dot{y} - k_p y$.