# Finding Jacobian matrix using the DH parameter table and relative transformation matrices

Let's say we have a three revolute joint robot with the following DH parameter table:

Where the last row corresponds to the transformation between the last joint frame and the end-effector frame.

We can easily derive the transformation matrices from the DH table:

$$A_{i-1,i}=A_{z,\theta}\cdot A_{z,d}\cdot A_{x,a}\cdot A_{x,\alpha}$$

And get the absolute transformation matrix of the minimal configuration:

$$A_{0,2}=A_{0,1}\cdot A_{1,2}$$

And of the end-effector:

$$A_{0,3}=A_{0,2}\cdot A_{2,3}$$

What are the steps to calculate the Jacobian, without using the predefined formulas:

I know that there are some partial derivatives by each $$\theta_i$$ involved, but I'm not sure what the procedure is.

Your kinematic equation, which links TCP position to joint position is: $$X = A_{0,3} \times Q$$

or

$$\begin{pmatrix} x \\ y\\ z\\ 1\end{pmatrix} = A_{0,3} \times \begin{pmatrix} \theta_1 \\ \theta_2\\ \theta_3\\ 1\end{pmatrix}$$

based on this, you will need to write:

$$\left\{ \begin{eqnarray} x &=& f_x(\theta_1, \theta_2, \theta_3)\\ y &=& f_y(\theta_1, \theta_2, \theta_3)\\ z &=& f_z(\theta_1, \theta_2, \theta_3)\\ \alpha &=& f_\alpha(\theta_1, \theta_2, \theta_3)\\ \beta &=& f_\beta(\theta_1, \theta_2, \theta_3)\\ \gamma &=& f_\gamma(\theta_1, \theta_2, \theta_3) \end{eqnarray} \right.$$

where $$\alpha, \beta, \gamma$$ are the Euler angles of end-effector orientation (it does not matter in which order they are defined, you just have to pick one and stick with it, e.g. XYZ order or ZXZ order). Based on these equations you can write the Jacobian as: then

$$J = \left[ \begin{matrix} \frac{\partial f_x}{\partial \theta_1} & \frac{\partial f_x}{\partial \theta_2} & \frac{\partial f_x}{\partial \theta_3}\\ \frac{\partial f_y}{\partial \theta_1} & \frac{\partial f_y}{\partial \theta_2} & \frac{\partial f_y}{\partial \theta_3}\\ \frac{\partial f_z}{ \partial \theta_1 } & \frac{\partial f_z}{\partial \theta_2} & \frac{\partial f_z}{\partial \theta_3}\\ \frac{\partial f_\alpha}{ \partial \theta_1 } & \frac{\partial f_z}{\partial \theta_2} & \frac{\partial f_z}{\partial \theta_3}\\ \frac{\partial f_\beta}{ \partial \theta_1 } & \frac{\partial f_z}{\partial \theta_2} & \frac{\partial f_z}{\partial \theta_3}\\ \frac{\partial f_\gamma}{ \partial \theta_1 } & \frac{\partial f_z}{\partial \theta_2} & \frac{\partial f_z}{\partial \theta_3}\\ \end{matrix} \right]$$

Please note that this is $$6x3$$ as it is used to compute both linear and rotational velocities of the end-effector based on the 3 joint velocities as follows:

$$\left[ \begin{array} \dot{x} \\ \dot{y} \\ \dot{z} \\ \dot{\alpha} \\ \dot{\beta} \\ \dot{\gamma} \end{array} \right] = J \times \left[ \begin{array} \dot{\theta_1} \\ \dot{\theta_2} \\ \dot{\theta_3} \end{array} \right]$$

• What about angular velocities $\omega _x$, $\omega _y$ and $\omega _z$? – A6EE Jan 18 at 19:29
• added angular velocities – 50k4 Jan 18 at 19:39
• By $\times$, do you mean the dot or cross product? – A6EE Jan 18 at 23:14
• J is a matrix. To my knowledge cross product is defined only between two vectors. This is a matrix multiplication. – 50k4 Jan 19 at 8:25