I have been given a Jacobian for a 3 revolute joint robot.

I need to obtain the origins of each of the joint. Origins of the joints can be obtained once I get $T^0_1$, $T^0_2$, $T^0_3$ and $T^0_4$. 4th frame is my end effector.

Is there any way to calculate the transformation matrices from the Jacobian? I have gone through literature extensively and I can get the Jacobian from the transformation matrices using the below relations

The Jacobian is

$$J = \begin{bmatrix} J_v\\ J_w \end{bmatrix}$$

where for revolute joints,

$$ J_{v_i} = z_{i-1} \times (o_n - o_{i-1}) \\ J_{w_i} = z_{i-1}$$

Is the reverse possible i.e, obtaining the transformation matrices when I have the Jacobian?

Is there any way to obtain just the origins of the frames $ o_1, o_2, o_3$ ($o_0 = \begin{bmatrix} 0 &0 &0 \end{bmatrix}^T$ ) from the given Jacobian? The reverse cross product method does not give me the complete co-ordinates of the origin.


2 Answers 2


While it is not possible to completely determine all the origin given only one Jacobian, I think it's possible to obtain the origins $o_1, o_2, o_3$ from multiple Jacobians.

Let's write $$J = \begin{bmatrix}J_{v1} & J_{v2} & J_{v3}\\J_{w1} & J_{w2} & J_{w3}\end{bmatrix} = \begin{bmatrix}z_0 \times o_3 & z_1 \times (o_3 - o_1) & z_2 \times (o_3 - o_2)\\ z_0 & z_1 & z_2\end{bmatrix}.$$

You can easily see that given one Jacobian, it's not possible to completely determine $o_3$ as we can write $$ o_3 = \frac{J_{v1} \times z_0}{\Vert z_0 \Vert^2} + a_0z_0, $$ for arbitrary $a_0$.

Simllarly, from $J_{v2} = z_1 \times (o_3 - o_1)$, we have $$ o_3 - o_1 = \frac{J_{v2} \times z_1}{\Vert z_1 \Vert^2} + a_1z_1, $$ for arbitrary $a_1$.

From the two equations above, we then have that $$ o_1 = \frac{J_{v1} \times z_0}{\Vert z_0 \Vert^2} - \frac{J_{v2} \times z_1}{\Vert z_1 \Vert^2} + a_0z_0 - a_1z_1, $$ for some arbitrary $a_0$ and $a_1$. But $o_1$ is actually the origin of the first joint so by right, $o_1$ should remain the same at any configuration.

Considering this, with another Jacobian, we may be able to calculate $a_0$ and $a_1$ and hence $o_1$.

I think we can use the same trick to recover $o_2$ and $o_3$ as well.


The Jacobian corresponds to the mapping between Cartesian space and joint space at the velocity level. So from the joint coordinates to the end-effector Cartesian coordinates.

As you pointed out from the transformation matrices it is easy to derivate the the Jacobian. But if you get the Jacobian of a robot in general it's is hard to retrieve the transformation matrices because they are "mixed" in the term of the Jacobian, and it is impossible if you retrieve a numerical Jacobian.

I your case you have some structure so its might be possible but it would be simpler/faster to just write down a parametrization of the arm and derive the transformation matrices. If you want some generic tool look at Denavit–Hartenberg parametrization in any robotics handbook.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.