In this series of tutorials, we’ll go over the basics of manipulator robot kinematics. So far, we’ve discussed how to parameterize coordinate frames in a kinematic chain via the Denavit-Hartenberg parameters and compute the pose of the endeffector as function of the joint variables and robot geometry via *forward direct* kinematics. Now, we’ll present *forward differential* kinematics which describes how joint velocities combine through manipulator geometry to result in the endeffector velocity.

In order to compute derivatives of the link poses - in geometric terms, link *twists* - from derivatives of the joint variables, we use **forward differential** kinematics. This mapping is described by a matrix
called the **Jacobian**.

There are two ways to arrive at such a mapping - the first is called the
*geometric* Jacobian and the second is called the *analytical*
Jacobian.

The geometric Jacobian is derived in a manner similar to that of the direct kinematics function in which one sums up the contributions of each individual joint velocity to the total end-effector velocity; this mapping is configuration-dependent.

The analytical Jacobian results from differentiating the direct kinematics function (when this function describes the pose with reference to a minimal representation in operational space) with respect to the joint variables.

For an n-DOF manipulator we have the direct kinematics equation

It is desired to express the end-effector linear velocity and the end-effector angular velocity in terms of the joint velocities . It will be shown that these relations are both linear in the joint velocities and are given by

where and are the Jacobian
matrices relating the contributions of the joint velocities to the
end-effector linear and angular velocities, respectively. We can write this in
compact form as the *differential kinematics equation*

where

is the manipulator geometric Jacobian which is, in general, a function of the manipulator configuration. This matrix is derived as follows.

First, consider the time derivative of a rotation matrix . Since such a matrix is orthogonal,

Differentiating this expression with respect to time yields

Defining we have

which implies that the matrix must be *skew-symmetric* since the sum
of it and its transpose equals the zero matrix.

Since we can solve our expression for to yield

which is the differential equation relating the rotation matrix to its derivative via the skew-symmetric operator .

Consider a constant vector in a rotating reference frame described by and its image in the fixed frame in which is defined. Taking the derivative of yields

which, using the definition of the derivative of a rotation matrix, can be written as

From mechanics, however, we know that this is simply given by where is the angular velocity of the rotating frame with respect to the reference frame at time .

This means that we must have

We can thus write . Further, for a rotation matrix we have the property

Now consider the coordinate transformation of a point from Frame 1 to Frame 0 given by

Differentiating this expression with respect to time yields

where represents the point
after it has been rotated into Frame 0 but not translated, ie .
This is known as the *velocity composition rule*. If the point is fixed in Frame 1 then this reduces to

Now consider deriving the relationships between the linear and angular velocities of successive frames. Using the same DH convention for choosing link frames, it can be shown that

gives the linear velocity of Link as a function of the translational and rotational velocities of Link . Note that all vectors are expressed with respect to a fixed Frame 0 and that denotes the velocity of the origin of Frame with respect to the origin of Frame as expressed in terms of Frame 0. In addition,

gives the angular velocity of Link as a function of the angular velocities of Link and of Link with respect to Link ().

Using these general results, we have that for a *prismatic joint*

since the orientation of Frame with respect to does not change when Joint is moved and thus . For the linear velocity we have

since this joint is articulated in the direction of axis .

For a *revolute joint* we have

and

Consider the expression relating the end-effector position to the joint variables. Differentiating this yields

due to the chain rule. Thus, the linear velocity of the end-effector can be obtained as the sum of terms, each of which represents the contribution of a single joint to the end-effector linear velocity when all other joints are still.

Thus, we have for a prismatic joint and for a revolute joint.

The angular velocity of the end-effector is given by

and thus for a prismatic joint and for a revolute joint .

In summary, the full Jacobian is formed from vectors and as

where we have

The vectors on which the Jacobian depends are functions of the joint variables and can be computed from the direct kinematics relations as follows.

- is given by the third column of the rotation matrix ; if then .
- is given by the first three elements of the fourth coumn of the homogeneous transformation matrix .
- is given by the first three elements of the fourth column of the homogeneous transformation matrix

Finally, note that the Jacobian has been developed here to describe the
end-effector velocities with respect to the base frame. If it is desired to
represent the Jacobian with respect to a different Frame *u* then the
relation is

In this tutorial, we introduced the basics for defining manipulator link frames via Denavit-Hartenberg parameters, as well as computing the incremental homogeneous transformations between successive links. We worked through the specifics for a three-link planar arm and a more complex anthropomorphic arm. Next, we’ll implement classes to define general manipulator kinematics based on this theory.

Written on January 23rd , 2020 by Nick RotellaFeel free to share!