digital-brain/content/zettels/jacobian.md

5.2 KiB

+++ title = "Jacobian" author = ["Thomas Dehaeze"] draft = false +++

Tags :

Jacobian Matrices of a Parallel Manipulator

From (Taghirad 2013):

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)

Computing the Jacobian Matrix

How to derive the Jacobian matrix is well explained in chapter 4 of (Taghirad 2013) ([notes]({{< relref "taghirad13_paral" >}})).

Consider parallel manipulator shown in Figure 1 (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

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, 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

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

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.