The manipulator Jacobian relates infinitesimal joint displacement to infinitesimal tool translation and rotation.

flowchart LR
    DQ["Joint displacement<br/>dq"] --> A["Linear block<br/>A(q)"] --> DP["Tool translation<br/>dp"]
    DQ --> B["Angular block<br/>B(q)"] --> DPHI["Tool rotation<br/>d-phi"]
    DP --> DU["Tool displacement<br/>du"]
    DPHI --> DU

Let:

  • be an infinitesimal tool-tip translation in base coordinates
  • be an infinitesimal tool rotation in base coordinates

Combine them into the infinitesimal tool displacement vector:

For each joint configuration , there is a matrix such that:

This gives the displacement mapping:

Linear and angular blocks

Partition the manipulator Jacobian into two blocks:

Then:

Divide the linear relation by :

Differentiate the tool-tip position function :

The th row and th column are:

Angular block

Write the angular block by columns:

Then:

The column gives the angular tool displacement caused by joint when all other joints stay fixed.

For a prismatic joint, motion along causes no angular tool displacement:

For a revolute joint, rotation about gives:

Therefore:

Define the joint-type parameter:

The two cases combine into:

The joint axis in base coordinates is:

where is the third unit vector.

Complete form

The manipulator Jacobian is:

Calculation procedure

  1. Set and
  2. Calculate
  3. Update
  4. Set and repeat steps 2 to 3 until
  5. Calculate and
  6. Assemble from the columns and

Here, selects the position coordinates from the homogeneous coordinate vector.

Important

maps joint velocity to linear tool velocity. maps joint velocity to angular tool velocity.

See Link Coordinates, Denavit-Hartenberg (D-H) Representation, and Manipulator Jacobian of a Four-Axis SCARA Robot (Adept One).