Underactuated robotics

Watched the first lecture of underactuated robotics by Prof Tedrake. It was great. His lecture note/book is available online. And the example code is directly available at colab.

So what is underactuated robotics? Consider a standard manipulator equation with state $q$

$M(q) \dot{q}+C(q,\dot{q}) \dot{q} = \tau_g(q) + B(q) u,$

where L.H.S. are the force terms, R.H.S. are the “Ma” terms, $M(q)$ is mass/inertia matrix and positive definite, $u$ is the control input, and $B(q)$ maps the control input to $q$.

We can rearrange the above to

$\ddot{q}= M(q)^{-1} [ \tau_g(q) + B(q) u - C(q,\dot{q} )\dot{q}] =\underset{f_1(q,\dot{q})}{\underbrace{M(q)^{-1}[ \tau_g(q) - C(q,\dot{q} )\dot{q}]}} +\underset{f_2(q,\dot{q})}{\underbrace{M(q)^{-1} B(q) }}u .$

Note that if $f_2(q,\dot{q})$ has full row rank (or simply $B(q)$ has full row rank since $M(q)$ is positive definite and hence full-rank), then for any desired $\ddot{q}^d$, we can achieve that by picking $u$ as

$u = f_2^{\dagger} (q,\dot{q}) (\ddot{q}^{d} - f_1(q,\dot{q})),$ where $f_2^{\dagger}$ is the pseudo-inverse of $f_2$. We say such robotic system is fully actuated.

On the other hand, if $f_2(q,\dot{q})$ does not have full row rank, the above trivial controller will not work. We then have a much more challenging and interesting scenario. And we say the robotic system is underactuated.