Board Reference

    Flight Controller
    Field Oriented Controller

    Motor Drive

    PMSM

    Motion Control

    Attitude Control

    Tutorial

    Mathematics
    Classical Control
    State Estimation
    Feedforward Control
    Disturbance Observer
    Motion Control

Acceleration controller for Redundant System

A redundant system has additional degrees of freedom that expand an operation while securing the performance of task execution.

Kinematics

Let us consider a map
hq:qRmxRn,\begin{align} h_{q}: \bm{\bm{q}}\in\mathbb{R}^{m} \rightarrow \bm{x}\in\mathbb{R}^{n}, \end{align}
where q\bm{\bm{q}} and x\bm{x} stands for generalized positions on a joint space and work space, and mm, nn (m>n)(m>n) denote the dimensions of the vectors. Note that the map is non-injective. Let a joint space and work space be a differentiable manifold. A velocity and acceleration on a joint space map to
x˙=Jaco(q)q˙x¨=Jaco(q)q¨+J˙aco(q)q˙,\begin{align} \dot{\bm{x}} &= \bm{J}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}} \\ \ddot{\bm{x}} &= \bm{J}_{\rm aco}(\bm{\bm{q}})\ddot{\bm{\bm{q}}} + \dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}}, \end{align}
where Jaco\bm{J}_{\rm aco} denotes a Jacobian matrix
Jaco(q)hq(q)qRn×m.\begin{align} \bm{J}_{\rm aco}(\bm{\bm{q}}) \equiv \frac{\partial h_{q}(\bm{\bm{q}})}{\partial \bm{\bm{q}}} \in \mathbb{R}^{n \times m}. \end{align}

Null space

When x¨\ddot{\bm{x}} is given, q¨\ddot{\bm{q}} cannot be sought uniquely. Solution candidates are
q¨=Jaco+(q)(x¨J˙aco(q)q˙)+Jaconull(q)χ,\begin{align} \ddot{\bm{q}}&=\bm{J}_{\rm aco}^{+}(\bm{q})\left(\ddot{\bm{x}}-\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}\right)+\bm{J}_{\rm aco}^{\rm null}(\bm{q})\bm{\chi}, \end{align}
where
Jaco+(q)JacoT(q)(Jaco(q)JacoT(q))1Jaconull(q)=(IJaco+(q)Jaco(q)).\begin{align} \bm{J}_{\rm aco}^{+}(\bm{q})&\equiv \bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\left(\bm{J}_{\rm aco}(\bm{q})\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\right)^{-1} \\ \bm{J}_{\rm aco}^{\rm null}(\bm{q}) &= \left(\bm{I}-\bm{J}_{\rm aco}^{+}(\bm{q})\bm{J}_{\rm aco}(\bm{q})\right). \end{align}
The second term of the solution candidates is the null space of the map,
Jaconull(q)χKer(Jaco(q)),\begin{align} \bm{J}_{\rm aco}^{\rm null}(\bm{q})\bm{\chi} \in {\rm Ker}(\bm{J}_{\rm aco}(\bm{q})), \end{align}
where Jaconull(q)\bm{J}_{\rm aco}^{\rm null}(\bm{q}) is orthogonal projection to the nul space. A joint-space acceleration in the null space does not affect x¨\ddot{\bm{x}} but an internal system, called redundant degrees of freedom.

Energy conservation law

Here, let J\bm{J} and M\bm{M} be an inertia of joint-space system and work-space system. Since a kinetic energy of a system is constant on any coordinates, an equation
12q˙TJ(q)q˙=12x˙TM(q)x˙.\begin{align} \frac{1}{2}\dot{\bm{q}}^{\mathrm T}\bm{J}(\bm{\bm{q}})\dot{\bm{q}} &= \frac{1}{2}\dot{\bm{x}}^{\mathrm T}\bm{M}(\bm{\bm{q}})\dot{\bm{x}}. \end{align}
holds, i.e.,
J(q)=JacoT(q)M(q)Jaco(q).\begin{align} \bm{J}(\bm{\bm{q}}) &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{M}(\bm{\bm{q}})\bm{J}_{\rm aco}(\bm{\bm{q}}). \end{align}
It further leads
J(q)=JacoT(q)M(q)Jaco(q)J(q)Jaco+(q)=JacoT(q)M(q)Jaco(q)Jaco+(q)=JacoT(q)M(q)Jaco+(q)=J1(q)JacoT(q)M(q)I=Jaco(q)J1(q)JacoT(q)M(q)M1(q)=Jaco(q)J1(q)JacoT(q).\begin{align} \bm{J}(\bm{\bm{q}}) &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{M}(\bm{\bm{q}})\bm{J}_{\rm aco}(\bm{\bm{q}}) \\ \Leftrightarrow \bm{J}(\bm{\bm{q}}) \bm{J}_{\rm aco}^{+}(\bm{\bm{q}}) &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{M}(\bm{\bm{q}})\bm{J}_{\rm aco}(\bm{\bm{q}}) \bm{J}_{\rm aco}^{+}(\bm{\bm{q}}) = \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{M}(\bm{\bm{q}})\\ \Leftrightarrow \bm{J}_{\rm aco}^{+}(\bm{\bm{q}}) &= \bm{J}^{-1}(\bm{q})\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{M}(\bm{\bm{q}})\\ \Leftrightarrow \bm{I} &= \bm{J}_{\rm aco}(\bm{\bm{q}}) \bm{J}^{-1}(\bm{q})\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\bm{M}(\bm{\bm{q}})\\ \therefore \bm{M}^{-1}(\bm{q}) &= \bm{J}_{\rm aco}(\bm{\bm{q}}) \bm{J}^{-1}(\bm{q})\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}}). \end{align}

Dynamics

Motion equations on a joint space and work space are described as
τ=J(q)q¨f=M(q)x¨.\begin{align} \bm{\tau}&=\bm{J}(\bm{\bm{q}})\ddot{\bm{q}}\\ \bm{f}&=\bm{M}(\bm{\bm{q}})\ddot{\bm{x}}. \end{align}
Here, we can found
JacoT(q)f=JacoT(q)M(q)J˙aco(q)q˙+JacoT(q)M(q)Jaco(q)q¨=JacoT(q)M(q)J˙aco(q)q˙+J(q)q¨=JacoT(q)M(q)J˙aco(q)q˙+τ\begin{align} \bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{f} &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}+\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\bm{J}_{\rm aco}(\bm{q})\ddot{\bm{q}}\\ &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}+\bm{J}(\bm{q})\ddot{\bm{q}}\\ &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}+\bm{\tau}\\ \end{align}
Therefore, we found a particular solution
τ=JacoT(q)(fM(q)J˙aco(q)q˙).\begin{align} \bm{\tau} &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}-\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right). \end{align}
Since the system has the null space, a general solution is given as
τ=JacoT(q)(fM(q)J˙aco(q)q˙)+J(q)Jaconull(q)ξ.\begin{align} \bm{\tau}&=\bm{J}_{\rm aco}^{\mathrm T}(\bm{q})\left(\bm{f}-\bm{M}(\bm{q})\dot{\bm{J}}_{\rm aco}(\bm{q})\dot{\bm{q}}\right)+\bm{J}(\bm{q})\bm{J}_{\rm aco}^{\rm null}(\bm{q})\bm{\xi}. \end{align}

Work space acceleration control

Acceleration control is achieved when
M(q)=I.\begin{align} \bm{M}(\bm{q}) = \bm{I}. \end{align}
It is achieved by controlling a virtual inertia of a joint-space system using a joint-space acceleration controller. A joint-space acceleration controller makes a virtual inertia
Jv(q)=I.\begin{align} \bm{J}_{\rm v}(\bm{q}) = \bm{I}. \end{align}
By controlling this value, a work-space acceleration control is indirectly achieved. For this purpose, the following condition should hold:
Jaco(q)Jv1(q)JacoT(q)=IJv1(q)JacoT(q)=Jaco+(q).\begin{align} &\bm{J}_{\rm aco}(\bm{\bm{q}}) \bm{J}_{\rm v}^{-1}(\bm{q})\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}}) = \bm{I}\\ \Leftrightarrow &\bm{J}_{\rm v}^{-1}(\bm{q})\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}}) = \bm{J}^{+}_{\rm aco}(\bm{q}). \end{align}

Computing torque method

For implementation, a control input to be calculated is a joint-space torque. Assuming that a joint-space acceleration controller is implemented, we show a calculation process of an acceleration reference. When work-space force reference fref\bm{f}^{\rm ref} is given, a joint-space torque reference is calculated as
τref=JacoT(q)(frefM(q)J˙aco(q)q˙)+Jv(q)Jaconull(q)ξ=JacoT(q)(frefJ˙aco(q)q˙)+Jv(q)Jaconull(q)ξ.\begin{align} \bm{\tau}^{\rm ref} &= \bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\bm{M}(\bm{\bm{q}})\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right) +\bm{J}_{\rm v}(\bm{q})\bm{J}_{\rm aco}^{\rm null}(\bm{q})\bm{\xi}\\ &=\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right)+\bm{J}_{\rm v}(\bm{q})\bm{J}_{\rm aco}^{\rm null}(\bm{q})\bm{\xi}. \end{align}
Considering a virtual joint-space inertia, an acceleration reference is caluclated as
q¨ref=Jv1τref=Jv1(q)JacoT(q)(frefJ˙aco(q)q˙)+Jv1(q)Jv(q)Jaconull(q)ξ=Jaco+(q)(frefJ˙aco(q)q˙)+Jaconull(q)ξ\begin{align} \ddot{\bm{q}}^{\rm ref} &= \bm{J}_{\rm v}^{-1}\bm{\tau}^{\rm ref}\\ &=\bm{J}_{\rm v}^{-1}(\bm{\bm{q}})\bm{J}_{\rm aco}^{\mathrm T}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right)+\bm{J}_{\rm v}^{-1}(\bm{\bm{q}})\bm{J}_{\rm v}(\bm{q})\bm{J}_{\rm aco}^{\rm null}(\bm{q})\bm{\xi}\\ &=\bm{J}_{\rm aco}^{+}(\bm{\bm{q}})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right)+\bm{J}_{\rm aco}^{\rm null}(\bm{q})\bm{\xi} \end{align}
Assuming that an joint-space acceleration control works,
q¨=q¨ref\begin{align} \ddot{\bm{q}} &= \ddot{\bm{q}}^{\rm ref} \end{align}
holds. Then, a work-space acceleration is calculated as
x¨=Jaco(q)q¨ref+J˙aco(q)q˙=Jaco(q)Jaco+(q)(frefJ˙aco(q)q˙)+Jaco(q)Jaconull(q)ξ+J˙aco(q)q˙=frefJ˙aco(q)q˙+J˙aco(q)q˙=fref.\begin{align} \ddot{\bm{x}} &= \bm{J}_{\rm aco}(\bm{\bm{q}})\ddot{\bm{\bm{q}}}^{\rm ref} + \dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}}\\ &= \bm{J}_{\rm aco}(\bm{\bm{q}})\bm{J}_{\rm aco}^{+}(\bm{q})\left(\bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}}\right) + \bm{J}_{\rm aco}(\bm{\bm{q}})\bm{J}^{\rm null}_{\rm aco}(\bm{\bm{q}})\bm{\xi} + \dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}}\\ &= \bm{f}^{\rm ref}-\dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{q}} + \dot{\bm{J}}_{\rm aco}(\bm{\bm{q}})\dot{\bm{\bm{q}}}\\ &= \bm{f}^{\rm ref}. \end{align}

© DigitalServo