# Using jacobian of arm robot to calculate transformation matrices?

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.

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.