Kinematic Jacobian


The kinematic Jacobian is one of the key concepts at the heart of robotics and has applications in topics such as inverse kinematics and force control.

The mathematical meaning of a Jacobian is a matrix that relates one coordinate system to another, for the kinematic case this is a relation between the joint and the Cartesian velocities of the tool tip.


By following the mathematical definition of the Jacobian, the kinematic Jacobian must relate the velocity of each joint to the Cartesian(x,y,z) and angular( \gamma, \beta, \alpha ) velocities of the tool tip

 J=\left[\begin{array}{cccc}  \frac{\partial\theta_{1}}{\partial x} & \frac{\partial\theta_{1}}{\partial x} & . & \frac{\partial\theta_{n}}{\partial x}\\  \frac{\partial\theta_{1}}{\partial y} & \frac{\partial\theta_{1}}{\partial y} & . & \frac{\partial\theta_{n}}{\partial y}\\  . & . & . & .\\  \frac{\partial\theta_{1}}{\partial\alpha} & \frac{\partial\theta_{1}}{\partial\alpha} & . & \frac{\partial\theta_{n}}{\partial\alpha}\end{array}\right]

Now how might we calculate this matrix ? Well one way would be to write down the symbolic equations of the tool tip position in something like Matlab and symbolically differentiate these equations. However this method is quite unwieldy since the size of the equations grows very quickly as the degrees of freedom increase. Another way is to consider the physical relationship between angular and Cartesian velocity

 \dot{P}=\omega \times P

Heres x represents the cross product,   \omega represents the angular velocity and P represents a Cartesian position vector. If we consider P to be the vector from the base of a link to the tool-tip then the above relationship would essentially give us the tool-tip velocity as a function of the links rotational velocity, this is pretty much the definition of the kinematic Jacobian.

So if we apply the above relationship to each link of the manipulator then we could calculate how much each link’s rotation would contribute to the tool-tip velocity. Furthermore if we assumed a unit rotational velocity for each link(i.e 1 rad/sec) then we would find a nominalized relationship between the joint and Cartesian velocities. That is, we would know how much m/sec we would get for every rad/sec for every joint. Now what about the rotational velocity of the tool tip as a function of the joints rotational velocity you might ask? Well they are really the same thing, the tool tip’s coordinate frame rotates at the same rate as the joint does because we assume that they are rigidly connected.

So to cut to the chase, the relationship between each links angular and tool-tip velocities can be calculated as

J_{n}=\dot{X}_{n}=\left[\begin{array}{c}  \begin{array}{c}  z_{n}\times x_{n}\end{array}\\  z_{n}\end{array}\right]

and the total kinematic Jacobian can then be calculated as

  J=\left[\begin{array}{cccc}  J_{0} & J_{1} & ... & J_{N}\end{array}\right]

Of course to perform this calculation we would have to know the position vector, x, from each link to the tool tip. This can be done by forward kinematics as was explained earlier. Now  z is a vector indicating the rotational velocity vector. As we discussed earlier, its magnitude should be 1 rad/sec however what should its direction be and how do we calculate it ? Obviously the joint can only rotate around its axis of rotation therefore its direction is the joint axis of the link in question. Its value can be calculated from the rotation matrix between the base frame and the link in question. If we remind ourselves of the fact that in D-H convention the z axis always represents the axis of a joints rotation and that a rotation matrix is nothing more than three unit vectors indicating the direction of the x,y and z axes, then the rotation axis of each joint can be calculated as follows

 z_{n}=R_{0}^{n}\left[\begin{array}{c}  0\\  0\\  1\end{array}\right]

Putting all this together we should be able to calculate the kinematic Jacobian.

Next: Inverse Kinematics

Previous: Joint state parameterization and forward kinematics


 Posted by at 3:57 pm

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">