+++ 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.