+++
title = "Jacobian"
author = ["Thomas Dehaeze"]
draft = false
+++
Tags
:
## Jacobian Matrices of a Parallel Manipulator {#jacobian-matrices-of-a-parallel-manipulator}
From ([Taghirad 2013](#orgdcd348b)):
> The Jacobian matrix not only reveals the **relation between the joint variable velocities of a parallel manipulator to the moving platform linear and angular velocities**, it also constructs the transformation needed to find the **actuator forces from the forces and moments acting on the moving platform**.
([Merlet 2006](#org3c93a40))
## Computing the Jacobian Matrix {#computing-the-jacobian-matrix}
How to derive the Jacobian matrix is well explained in chapter 4 of ([Taghirad 2013](#orgdcd348b)) ([notes]({{< relref "taghirad13_paral" >}})).
Consider parallel manipulator shown in Figure [1](#orgea8dcb1) (it represents a Stewart platform).
Kinematic loop closures are:
\begin{equation}
{}^A\bm{O}\_B = {}^A\bm{a}\_i + l\_i \hat{\bm{s}}\_i + {}^A\bm{b}\_i
\end{equation}
Which can be written as:
\begin{equation}
{}^A\bm{p} = {}^A\bm{a}\_i + l\_i {}^A\hat{\bm{s}}\_i + {}^A\bm{R}\_B {}^B\bm{b}\_i
\end{equation}
with
- \\({}^A\bm{p} = {}^A\bm{O}\_B\\) the position vector of the moving platform w.r.t. frame \\(\\{\bm{A}\\}\\)
- \\({}^A\bm{R}\_B\\) the rotation matrix of the moving platform
- \\({}^A\bm{a}\_i\\) the position vector of the \\(i\\)'th limb of the fixed platform w.r.t. frame \\(\\{\bm{A}\\}\\)
- \\({}^B\bm{b}\_i\\) the position vector of the \\(i\\)'th limb of the moving platform w.r.t. frame \\(\\{\bm{B}\\}\\)
- \\(\bm{\hat{s}}\_i\\) the limb unit vector
- \\(l\_i\\) is the limb length
By taking the time derivative, we obtain the following **Velocity Loop Closures**:
\begin{equation}
{}^A\hat{\bm{s}}\_i {}^A\bm{v}\_p + ({}^A\bm{b}\_i \times \hat{\bm{s}}\_i) {}^A\bm{\omega} = \dot{l}\_i \label{eq:velocity\_loop\_closure}
\end{equation}
{{< figure src="/ox-hugo/jacobian_geometry.png" caption="Figure 1: Example of parallel manipulator with defined frames and vectors" >}}
## Velocities of joints and of moving platform {#velocities-of-joints-and-of-moving-platform}
The Jacobian matrix links the joint variable velocities to the moving platform linear and angular velocities.
\begin{equation}
\dot{\bm{q}} = \bm{J} \dot{\bm{\mathcal{X}}}
\end{equation}
with \\(\bm{q} = \left[ q\_1, q\_2, \ldots, q\_m \right]^T\\) the vector of actuated joint coordinates (linear displacement of an actuator prismatic joint or angular rotation of an actuated revolute joint) and \\(\bm{\mathcal{X}} = \left[ x\_1, x\_2, \ldots, x\_n \right]^T\\) the vector of moving platform motion variables (position or orientation).
From equation \eqref{eq:velocity_loop_closure}, we have:
\begin{equation}
\bm{J} = \begin{bmatrix}
{{}^A\hat{\bm{s}}\_1}^T & ({}^A\bm{b}\_1 \times {}^A\hat{\bm{s}}\_1)^T \\\\\\
{{}^A\hat{\bm{s}}\_2}^T & ({}^A\bm{b}\_2 \times {}^A\hat{\bm{s}}\_2)^T \\\\\\
{{}^A\hat{\bm{s}}\_3}^T & ({}^A\bm{b}\_3 \times {}^A\hat{\bm{s}}\_3)^T \\\\\\
{{}^A\hat{\bm{s}}\_4}^T & ({}^A\bm{b}\_4 \times {}^A\hat{\bm{s}}\_4)^T \\\\\\
{{}^A\hat{\bm{s}}\_5}^T & ({}^A\bm{b}\_5 \times {}^A\hat{\bm{s}}\_5)^T \\\\\\
{{}^A\hat{\bm{s}}\_6}^T & ({}^A\bm{b}\_6 \times {}^A\hat{\bm{s}}\_6)^T
\end{bmatrix}
\end{equation}
And therefore \\(\bm{J}\\) then **depends only** on:
- \\({}^A\hat{\bm{s}}\_i\\) the orientation of the limbs
- \\({}^A\bm{b}\_i\\) the position of the joints with respect to \\(O\_B\\) and express in \\(\\{\bm{A}\\}\\).
For the platform in Figure [1](#orgea8dcb1), we have:
\begin{equation}
\begin{bmatrix} \dot{l}\_1 \\ \dot{l}\_2 \\ \dot{l}\_3 \\ \dot{l}\_4 \\ \dot{l}\_5 \\ \dot{l}\_6 \end{bmatrix} =
\begin{bmatrix}
{{}^A\hat{\bm{s}}\_1}^T & ({}^A\bm{b}\_1 \times {}^A\hat{\bm{s}}\_1)^T \\\\\\
{{}^A\hat{\bm{s}}\_2}^T & ({}^A\bm{b}\_2 \times {}^A\hat{\bm{s}}\_2)^T \\\\\\
{{}^A\hat{\bm{s}}\_3}^T & ({}^A\bm{b}\_3 \times {}^A\hat{\bm{s}}\_3)^T \\\\\\
{{}^A\hat{\bm{s}}\_4}^T & ({}^A\bm{b}\_4 \times {}^A\hat{\bm{s}}\_4)^T \\\\\\
{{}^A\hat{\bm{s}}\_5}^T & ({}^A\bm{b}\_5 \times {}^A\hat{\bm{s}}\_5)^T \\\\\\
{{}^A\hat{\bm{s}}\_6}^T & ({}^A\bm{b}\_6 \times {}^A\hat{\bm{s}}\_6)^T
\end{bmatrix}
\begin{bmatrix} {}^Av\_x \\ {}^Av\_y \\ {}^Av\_z \\ {}^A\omega\_x \\ {}^A\omega\_y \\ {}^A\omega\_z \end{bmatrix}
\end{equation}
## Static Forces in Parallel Manipulators {#static-forces-in-parallel-manipulators}
The **Jacobian matrix** constructs the **transformation needed to find the actuator forces** \\(\bm{\tau}\\) **from the wrench acting on the moving platform** \\(\bm{\mathcal{F}}\\):
\begin{equation}
\bm{\mathcal{F}} = \bm{J}^T \bm{\tau}
\end{equation}
in which \\(\bm{\tau} = [f\_1, f\_2, \cdots, f\_6]^T\\) is the vector of actuator forces, and \\(\bm{\mathcal{F}} = [\bm{f}, \bm{n}]^T\\) is the 6D wrench applied by the manipulator to the environment at the point \\(\bm{O}\_B\\).
Note that it is here assumed that the forces are static and **along the limb axis** \\(\hat{\bm{s}}\_i\\).
## Bibliography {#bibliography}
Merlet, Jean-Pierre. 2006. “Jacobian, Manipulability, Condition Number, and Accuracy of Parallel Robots.”
Taghirad, Hamid. 2013. _Parallel Robots : Mechanics and Control_. Boca Raton, FL: CRC Press.