Engineering:Computed torque control

From HandWiki
Revision as of 10:34, 4 February 2024 by John Stpola (talk | contribs) (fix)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Robot control


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

[math]\displaystyle{ \mathbf{M}\left( \vec\theta \right) \ddot\vec\theta + \mathbf{C}\left( \vec\theta, \dot\vec\theta \right) \dot\vec\theta + \vec\tau_g \left(\vec\theta\right) = \vec\tau }[/math] where [math]\displaystyle{ \vec\theta \in \mathbb{R}^N }[/math] is the state vector of joint variables that describe the system, [math]\displaystyle{ \mathbf{M}\left(\vec\theta\right) }[/math] is the inertia matrix, [math]\displaystyle{ \mathbf{C}\left( \vec\theta, \dot\vec\theta \right) \dot\vec\theta }[/math] is the vector Coriolis and centrifugal torques, [math]\displaystyle{ \vec\tau_g \left(\vec\theta\right) }[/math] are the torques caused by gravity and [math]\displaystyle{ \vec\tau }[/math] is the vector of joint torque inputs.

Assume that we have an approximate model of the system made up of [math]\displaystyle{ \tilde\mathbf{M}\left( \vec\theta \right), \tilde\mathbf{C}\left( \vec\theta, \dot\vec\theta \right), \tilde\vec\tau_g \left(\vec\theta\right) }[/math]. This model does not need to be perfect, but it should justify the approximations [math]\displaystyle{ \mathbf{M}\left( \vec\theta \right)^{-1} \tilde\mathbf{M}\left( \vec\theta \right) \approx \mathbf 1 }[/math] and [math]\displaystyle{ \mathbf{M} ^{-1} \left( \mathbf{C}\left( \vec\theta, \dot\vec\theta \right) \dot\vec\theta + \vec\tau_g \left(\vec\theta\right) \right) \approx \mathbf{M} ^{-1} \left( \tilde\mathbf{C}\left( \vec\theta, \dot\vec\theta \right) \dot\vec\theta + \tilde\vec\tau_g \left(\vec\theta\right) \right) }[/math].

Given a desired trajectory [math]\displaystyle{ \vec\theta_d(t) }[/math] the error relative to the current state [math]\displaystyle{ \vec\theta(t) }[/math] is then [math]\displaystyle{ \vec\theta_e(t) = \vec\theta_d(t) - \vec\theta(t) }[/math].

We can then set the input of the system to be

[math]\displaystyle{ \vec\tau(t) = \tilde\mathbf{M}\left( \vec\theta \right) \left( \ddot\vec\theta_d(t) + K_p \vec\theta_e(t) + K_i \int_0^t \ddot\vec\theta_e(t') dt' + K_d \dot\vec\theta_e(t) \right) + \tilde\mathbf{C}\left( \vec\theta, \dot\vec\theta \right) + \tilde\vec\tau_g \left(\vec\theta\right) }[/math]

With this input the dynamics of the entire systems becomes

[math]\displaystyle{ \begin{align} \mathbf{M}\left( \vec\theta \right) \ddot\vec\theta + \mathbf{C}\left( \vec\theta, \dot\vec\theta \right) \dot\vec\theta + \vec\tau_g \left(\vec\theta\right) =& \tilde\mathbf{M}\left( \vec\theta \right) \left( \ddot\vec\theta_d(t) + K_p \vec\theta_e(t) + K_i \int_0^t \ddot\vec\theta_e(t') dt' + K_d \dot\vec\theta_e(t) \right) + \tilde\mathbf{C}\left( \vec\theta, \dot\vec\theta \right) + \tilde\vec\tau_g \left(\vec\theta\right) \\ \ddot\vec\theta + \mathbf{M}\left( \vec\theta \right)^{-1} \left( \mathbf{C}\left( \vec\theta, \dot\vec\theta \right) \dot\vec\theta + \vec\tau_g \left(\vec\theta\right) \right) =& \underbrace{ \mathbf{M}\left( \vec\theta \right)^{-1} \tilde\mathbf{M}\left( \vec\theta \right) }_{\approx \mathbf{1}} \left( \ddot\vec\theta_d(t) + K_p \vec\theta_e(t) + K_i \int_0^t \ddot\vec\theta_e(t') dt' + K_d \dot\vec\theta_e(t) \right) + \mathbf{M}\left( \vec\theta \right)^{-1} \left( \tilde\mathbf{C}\left( \vec\theta, \dot\vec\theta \right) + \tilde\vec\tau_g \left(\vec\theta\right) \right) \\ \ddot\vec\theta = & \ddot\vec\theta_d(t) + K_p \vec\theta_e(t) + K_i \int_0^t \ddot\vec\theta_e(t') dt' + K_d \dot\vec\theta_e(t) \\ 0 = & \ddot\vec\theta_e + K_p \vec\theta_e(t) + K_i \int_0^t \ddot\vec\theta_e(t') dt' + K_d \dot\vec\theta_e(t) \end{align} }[/math]

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

References

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