# 3D Inverse Kinematics Jacobian

I am reading up on inverse kinematics and have a few questions I hope could be answered.

This example is from a 3-revolute-joint, where $$E$$ is the end effector and $$G$$ is the goal position of the end effector.

It states that the desired change to the end effector is the difference between the end effector and the goal position, given as follows:

$$V = \begin{bmatrix}(G-E)_x\\(G-E)_y\\(G-E)_z \end{bmatrix}$$

This can then be set equal to the the Jacobian in the following form: $$J = \begin{bmatrix}((0,0,1) \times E)_x &(0,0,1) \times (E-P_1)_x & (0,0,1) \times (E-P_2)_x\\((0,0,1) \times E)_y &(0,0,1) \times (E-P_1)_y & (0,0,1) \times (E-P_2)_y\\((0,0,1) \times E)_z &(0,0,1) \times (E-P_1)_z & (0,0,1) \times (E-P_2)_z \end{bmatrix}$$

From this Jacobian term I do not understand where $$(0, 0, 1)$$ comes from.

Also I do not understand what the $$P_1$$ and $$P_2$$ come from.

I would like to understand where they come from and what they mean?

• Which textbook is this from? – sempaiscuba Mar 16 '19 at 17:26
• @sempaiscuba Taken from Computer Animation Algorithms and Techniques by Rick Parent – tester Mar 16 '19 at 17:28
• The preceding page (p206) isn't part of the Google books preview, but I'm guessing there is a diagram on that page that defines the terms. I'd guess that P1 & P2 are the positions of the arm joints. – sempaiscuba Mar 16 '19 at 17:48

OK, I was able to find a copy of the book Computer Animation Algorithms and Techniques by Rick Parent.

As stated the problem was as follows:

Consider the simple three revolute joint, planar manipulator of Figure 2. In this example the objective is to move the end effector, E, to the goal position, G. The orientation of the end effector is of no concern in this example.

The axis of rotation of each joint is perpendicular to the figure, coming out of the paper.

The diagram and last point are the keys to understanding the terms that you found unclear.

As we can see from the diagram, $$P_1$$ and $$P_2$$ are the Cartesian coordinates of the revolute joints P1 and P2 respectively (E is the Cartesian coordinates of the end effector).

And $$(0, 0, 1)$$ is simply the the “z” vector, defined by the axis of rotation of the revolute joints (i.e. perpendicular to the figure, coming out of the paper).

Thus, what you are calculating are the cross products of the joint axis ("z" vector) and the vectors from the joints to the end-effector ($$E - P_n$$).

• Amazing, thank you. So regarding the (0,0,1), how would this change if the joints could be rotated in any x,y,z, instead of just z? – tester Mar 16 '19 at 20:33
• @tester Then your life is going to get a lot more complicated. ;) The z-vector is defined a Cartesian (x,y,x) vector that defines the axis of rotation of your revolute joint. If the axis of rotation changes for that joint, so does your z-vector. – sempaiscuba Mar 16 '19 at 20:46
• Would you by any chance have any knowledge/resources towards constructing the Jacobian for all 3 dimensions? – tester Mar 20 '19 at 15:11
• @tester You might have a look at the courses on the QUT Robot Academy website. The lessons were previously offered as a MOOC by Professor Peter Corke & QUT (Peter is also the Author of the Robotics Toolbox for Matlab, and a contributor on here). – sempaiscuba Mar 20 '19 at 17:54