Computed torque control explained

Computed torque control is a control scheme used in motion control in robotics. It combines feedback linearization via a PID controller of the error with a dynamical model of the controlled robot.[1] [2]

Let the dynamics of the controlled robot be described by

M\left(\vec\theta\right)\ddot\vec\theta+C\left(\vec\theta,

\vec\theta

\right)

\vec\theta

+ \vec\taug\left(\vec\theta\right) = \vec\tau

where

\vec\theta\inRN

is the state vector of joint variables that describe the system,

M\left(\vec\theta\right)

is the inertia matrix,

C\left(\vec\theta,

\vec\theta

\right)

\vec\theta

is the vector Coriolis and centrifugal torques,

\vec\taug\left(\vec\theta\right)

are the torques caused by gravity and

\vec\tau

is the vector of joint torque inputs.

Assume that we have an approximate model of the system made up of

\tildeM\left(\vec\theta\right), \tildeC\left(\vec\theta,

\vec\theta

\right),\tilde\vec\taug\left(\vec\theta\right)

. This model does not need to be perfect, but it should justify the approximations

M\left(\vec\theta\right)-1\tildeM\left(\vec\theta\right)1

and

M-1\left(C\left(\vec\theta,

\vec\theta

\right)

\vec\theta

+ \vec\taug\left(\vec\theta\right) \right) M-1\left(\tildeC\left(\vec\theta,

\vec\theta

\right)

\vec\theta

+ \tilde\vec\taug\left(\vec\theta\right) \right)

.

Given a desired trajectory

\vec\thetad(t)

the error relative to the current state

\vec\theta(t)

is then

\vec\thetae(t)=\vec\thetad(t)-\vec\theta(t)

.

We can then set the input of the system to be

\vec\tau(t)= \tildeM\left(\vec\theta\right)\left(\ddot\vec\thetad(t)+Kp\vec\thetae(t)+Ki

t
\int
0

\ddot\vec\thetae(t')dt'+Kd

\vec\theta

e(t) \right)+ \tildeC\left(\vec\theta,

\vec\theta

\right)+\tilde\vec\taug\left(\vec\theta\right)

With this input the dynamics of the entire systems becomes

\begin{align} M\left(\vec\theta\right)\ddot\vec\theta+C\left(\vec\theta,

\vec\theta

\right)

\vec\theta

+ \vec\taug\left(\vec\theta\right) =& \tildeM\left(\vec\theta\right)\left(\ddot\vec\thetad(t)+Kp\vec\thetae(t)+Ki

t
\int
0

\ddot\vec\thetae(t')dt'+Kd

\vec\theta

e(t) \right)+ \tildeC\left(\vec\theta,

\vec\theta

\right)+\tilde\vec\taug\left(\vec\theta\right) \\ \ddot\vec\theta+M\left(\vec\theta\right)-1\left(C\left(\vec\theta,

\vec\theta

\right)

\vec\theta

+ \vec\taug\left(\vec\theta\right) \right) =& \underbrace{ M\left(\vec\theta\right)-1\tildeM\left(\vec\theta\right)}\left(\ddot\vec\thetad(t)+Kp\vec\thetae(t)+Ki

t
\int
0

\ddot\vec\thetae(t')dt'+Kd

\vec\theta

e(t) \right)+ M\left(\vec\theta\right)-1\left(\tildeC\left(\vec\theta,

\vec\theta

\right)+\tilde\vec\taug\left(\vec\theta\right) \right)\\ \ddot\vec\theta=& \ddot\vec\thetad(t)+Kp\vec\thetae(t)+Ki

t
\int
0

\ddot\vec\thetae(t')dt'+Kd

\vec\theta

e(t) \\ 0=& \ddot\vec\thetae +Kp\vec\thetae(t)+Ki

t
\int
0

\ddot\vec\thetae(t')dt'+Kd

\vec\theta

e(t) \end{align}

and the normal methods for PID controller tuning can be applied. In this way the complicated nonlinear control problem has been reduced to a relatively simple linear control problem.

Notes and References

  1. Book: Lynch . Kevin M. . Modern robotics: mechanics, planning, and control . Park . Frank C. . 2017 . Cambridge university press . 978-1-107-15630-2 . Cambridge.
  2. Book: Springer handbook of robotics . 2016 . Springer . 978-3-319-32550-7 . Siciliano . Bruno . 2nd . Springer handbooks . Berlin Heidelberg . 174–175 . Khatib . Oussama.