+++
title = "Identification and decoupling control of flexure jointed hexapods"
author = ["Thomas Dehaeze"]
draft = false
+++

Tags
: [Stewart Platforms]({{< relref "stewart_platforms" >}}), [Flexible Joints]({{< relref "flexible_joints" >}})

Reference
: ([Chen and McInroy 2000](#orgc009af3))

Author(s)
: Chen, Y., & McInroy, J.

Year
: 2000


## Abstract {#abstract}

> By exploiting properties of the joint space mass-inertia matrix of flexure jointed hexapods, a new **decoupling method** is proposed.
> The new decoupling method, through a **static** input-output mapping, transforms the highly coupled 6 inputs 6 outputs dynamics into 6 independent single-input single-output channels.
> Prior decoupling control algorithms imposed severe constraints on the allowable geometry, workspace and payload.
> This paper derives a new algorithm which removes these constraints, thus greatly expanding the applications.
> Based on the new decoupling algorithm, an **identification algorithm** is introduced to identify the **joint space mass-inertia matrix** using payload acceleration and base forces.
> This algorithm can be used for precision payload calibration, thus improving performance and removing the labor required to design the control for different payloads.
> The new decoupling algorithm is experimentally compared to earlier techniques.
> These experimental results indicate that the new approach is practical, and improves performance.


## Introduction {#introduction}

Typical decoupling algorithm impose two constraints:

-   the payload mass/inertia matrix is diagonal
-   the geometry of the platform and attachment of the payload must be carefully chosen

This limits the applications significantly.

The algorithm derived herein removes these constraints, thus greatly expanding the potential applications.


## Dynamic Model of Flexure Jointed Hexapods {#dynamic-model-of-flexure-jointed-hexapods}

The derivation of the dynamic model is done in ([McInroy 1999](#org0e9e807)) ([Notes]({{< relref "mcinroy99_dynam" >}})).

<a id="orge595e9c"></a>

{{< figure src="/ox-hugo/chen00_flexure_hexapod.png" caption="Figure 1: A flexured joint Hexapod. {P} is a cartesian coordiante frame located at (and rigidly connected to) the payload's center of mass. {B} is a frame attached to the (possibly moving) base, and {U} is a universal inertial frame of reference" >}}

In the joint space, the dynamics of a flexure jointed hexapod are written as:

\begin{equation}
  \vec{f}\_b = \vec{f}\_m - \bm{K}(\vec{l} - \vec{l}\_r) - \bm{B} \dot{\vec{l}}
\end{equation}

\begin{aligned}
  & \left( {}^U\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}^{-1} \right) \ddot{\vec{l}} + \\\\\\
  & {}^U\_B\bm{R} \bm{J}^T \bm{B} \dot{\vec{l}} + {}^U\_B\bm{R}\bm{J}^T \bm{K}(\vec{l} - \vec{l}\_r) = \\\\\\
  & {}^U\_B\bm{R} \bm{J}^T \vec{f}\_m + \vec{\mathcal{F}}\_e + \vec{\mathcal{F}} + \vec{\mathcal{C}} - \\\\\\
  & \left( {}^U\_B\bm{R} \bm{J}^T \bm{M}\_s + {}^U\_P\bm{R} {}^P\bm{M}\_x {}^U\_P\bm{R}^T \bm{J}\_c \bm{J}\_B^{-1} \right) \ddot{\vec{q}}\_s
\end{aligned}

where:

-   \\(\bm{J}\\) is the \\(6 \times 6\\) hexapod Jacobian relating payload Cartesian movements, expressed in {P}, to strut length changes in the joint space
-   \\({}^B\_U\bm{R}\\) is the \\(6 \times 6\\) rotation matrix from the base frame {B} to the universal inertial frame of reference {U} (it consists of two identical \\(3 \times 3\\) rotation matrices forming a block diagonal \\(6 \times 6\\) matrix)
-   \\(\bm{J}\_c\\) and \\(\bm{J}\_B\\) are \\(6 \times 6\\) Jacobian matrices capturing base motion
-   \\({}^P\bm{M}\_x\\) is the \\(6 \times 6\\) mass-inertia matrix of the payload found with respect to the payload frame {P}
-   \\(\bm{M}\_s\\) is a diagonal \\(6 \times 6\\) matrix containing the moving mass of each strut
-   \\(\bm{B}\\) and \\(\bm{K}\\) are \\(6 \times 6\\) diagonal matrices containing the damping of stiffness, respectively, of each strut
-   \\(\vec{l}\\) is the \\(6 \times 1\\) vector of strut lengths, and \\(\vec{l}\_r\\) is the constant vector of relaxed strut length
-   \\(\vec{f}\_b\\) is the vector of forces exerted at the bottom of the strut
-   \\(\vec{f}\_m\\) is the vector of strut motor forces
-   \\(\ddot{\vec{q}}\_s\\) is a \\(6 \times 1\\) vector of base accelerations along each strut plus some Coriolis terms
-   \\(\vec{\mathcal{F}}\_e\\) is a vector of payload exogenous generalized forces
-   \\(\vec{\mathcal{C}}\\) is a vector containing all the Coriolis and centripetal terms except the Coriolis terms in \\(\ddot{\vec{q}}\_s\\)
-   \\(\vec{\mathcal{G}}\\) is a vector containing all gravity terms

\begin{aligned}
  \bm{M}\_p & \ddot{\vec{p}}\_s + \bm{B} \dot{\vec{p}}\_s + \bm{K} \vec{p}\_s = \vec{f}\_m + \\\\\\
  & \bm{M}\_q \ddot{\vec{q}}\_s + \bm{B} \dot{\vec{q}}\_s + \bm{J}^{-T} {}^U\_B\bm{R}^T \vec{\mathcal{F}}\_e
\end{aligned}

where

-   \\(\bm{M}\_p = \bm{J}^{-T} {}^B\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}^{-1} + \bm{M}\_s\\)
-   \\(\bm{M}\_q = \bm{J}^{-T} {}^B\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}^{-1} - \bm{J}^{-T} {}^B\_P\bm{R} {}^P\bm{M}\_x {}^B\_P\bm{R}^T \bm{J}\_c \bm{J}\_B^{-1}\\)

\\(\bm{M}\_p\\) and \\(\bm{M}\_q\\) are joint space mass-inertia matrices.


## Decoupling the Dynamics of Flexure Jointed Hexapods {#decoupling-the-dynamics-of-flexure-jointed-hexapods}


## Identification of Joint Space Mass-Inertia Matrix {#identification-of-joint-space-mass-inertia-matrix}


## Experimental Results {#experimental-results}


## Bibliography {#bibliography}

<a id="orgc009af3"></a>Chen, Yixin, and J.E. McInroy. 2000. “Identification and Decoupling Control of Flexure Jointed Hexapods.” In _Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065)_, nil. <https://doi.org/10.1109/robot.2000.844878>.

<a id="org0e9e807"></a>McInroy, J.E. 1999. “Dynamic Modeling of Flexure Jointed Hexapods for Control Purposes.” In _Proceedings of the 1999 IEEE International Conference on Control Applications (Cat. No.99CH36328)_, nil. <https://doi.org/10.1109/cca.1999.806694>.
