Velocity Kinematics and the Jacobian
Learning Objectives
- Write the end-effector velocity as and , and read each column of the Jacobian as the motion produced by one joint alone.
- Build the geometric Jacobian column by column from the link frames, with the revolute rule and the prismatic rule .
- Check a Jacobian against central finite differences, including the angular rows, and choose the step size.
- Define the analytic Jacobian, relate it to the geometric one through the matrix of the chosen orientation angles, and say when the two coincide and when they diverge.
Context & Motivation
Forward kinematics answers "where is the tool". Control needs "how fast does the tool move when the joints move", because motors are commanded in joint velocities and tasks are written in Cartesian ones. inverse-kinematics-and-workspace already used the answer inside Newton's method: the matrix of partial derivatives of a planar arm. That matrix was obtained by differentiating a formula, which works for position. Orientation is different. A rotation matrix is not a vector, and its rate of change is described by an angular velocity that is not, in general, the derivative of any three numbers. This lesson builds the Jacobian directly from the geometry of the chain, rows for included, and checks it numerically.
Core Theory
Conventions: classic DH frames as in the-denavit-hartenberg-convention, so joint moves about or along , whose origin is . All vectors are expressed in the base frame. The tool point is . The Jacobian stacks linear rows on top, . Modern Robotics stacks them the other way, angular on top.
Velocity kinematics is the chain rule
If , the multivariable chain rule of partial-derivatives-and-the-multivariable-chain-rule gives , one term per route from to . So column of is the tip velocity when joint moves at unit rate and every other joint is still. The relation is linear in and nonlinear in : the matrix changes with the posture.
Building the geometric Jacobian column by column
A unit rate at a revolute joint spins everything beyond it about the axis through . A rigid body spinning at about an axis through moves its point at . A unit rate at a prismatic joint slides everything beyond it along without turning it. Hence
Angular velocities of a serial chain add, each joint contributing its axis times its rate, so the angular rows are just the joint axes. Every quantity needed, and , is the third and fourth column of , which forward kinematics already computes. In the modified convention joint sits on at , and the same rule applies with that index.
Naming: what "geometric" means where
This Jacobian is what many texts call the geometric Jacobian. Modern Robotics uses the name for its space and body Jacobians, which map to a twist, and notes in a footnote that the term has also been used for this mixed form, which it calls "hybrid". The difference is only in the linear part. The space Jacobian's linear part is the velocity of the point of the moving body that is momentarily at the base origin, and . Before comparing a Jacobian with another source, check which velocity it produces.
The analytic Jacobian
Suppose orientation is described by three angles , for instance ZYX angles with (yaw, pitch, roll, about the moving axes). Differentiating gives the analytic Jacobian . The angle rates and are related by , where each column of is the axis of one elementary rotation, expressed in the base frame:
Therefore
valid wherever is invertible. Three consequences:
- The linear rows always coincide, because both Jacobians use in the base frame.
- The angular rows coincide only when . A planar arm is the standard case: its single orientation angle has .
- At , is singular and does not exist, even if the arm can rotate freely. This is a representation singularity, a property of the chosen angles, not of the robot. Every Euler-angle sequence has one, at some value of its middle angle.
The analytic Jacobian is what you need when the task is written in those angles, for example a controller that tracks a yaw-pitch-roll trajectory. The geometric one is what you need for physical questions such as tool speed, forces through , and robot singularities.
Worked Examples
Example 1: the articulated arm, column by column
Use the arm and table of the-denavit-hartenberg-convention ( m, m, m, assumed lengths) at . From the frames already computed there:
texti axis z_(i-1) origin o_(i-1) p - o_(i-1) 1 (0, 0, 1) (0, 0, 0) (0.6408, 0.3700, 0.6500) 2 (0.5, -0.866, 0) (0, 0, 0.4) (0.6408, 0.3700, 0.2500) 3 (0.5, -0.866, 0) (0.3062, 0.1768, 0.7536) (0.3346, 0.1932, -0.1035)
Taking the cross products,
Read the columns. Joint 1 moves the tip horizontally, perpendicular to the arm, at a speed equal to the horizontal reach m, and has no vertical effect. Joints 2 and 3 share an axis direction, so their angular columns are equal. Joint 2's linear column has vertical component , again the horizontal reach, because the shoulder lifts the tip in proportion to how far out it is. The same columns come from differentiating the position formula of that lesson: .
For a joint velocity rad/s, .
Example 2: checking against finite differences
Position rows: perturb one joint by and take . Angular rows: the rotation matrices are not vectors, but is the skew-symmetric matrix of , so take and read off the entries , , of . The largest difference from the geometric , over all 18 entries:
texth 1e-2 1e-4 1e-6 1e-8 1e-10 max diff 1.7e-05 1.7e-09 7.0e-11 ~1e-08 ~5e-07 to 9e-07
The central difference has truncation error of order , which dominates on the left, and rounding error of order , which dominates on the right. The last two entries are rounding noise: their digits change with how the forward kinematics is coded, only their order of magnitude is stable. The best step is near , about the cube root of machine precision. An off-by-one in the origins, using instead of (easy when switching conventions), shows up as an entry off by , nine orders above this floor. A time-domain check agrees too: with s reproduces m/s.
The relation of the naming section also checks out here: for each column, (the space-Jacobian linear part) plus reproduces the corresponding column of .
Example 3: a prismatic joint
Use the SCARA of the-denavit-hartenberg-convention (assumed shoulder height m, links m and m) at , with tip . Axes with origins and , and because the quill's positive travel is down.
The third column is just on top and zeros below: sliding moves the tool down at 1 m/s per m/s and does not turn it. Rows 4 and 5 are zero, so this arm can never tilt its tool, and the matrix has rank 3 at best. Finite differences with agree to .
Example 4: geometric versus analytic, away from any singularity
For the articulated arm at the tool's ZYX angles are : yaw equals , pitch equals , roll stays . So the angular rows of are
Both are correct, and they answer different questions: gives angle rates, gives the physical spin. Finite differences of the extracted ZYX angles reproduce to . The linear rows are identical.
Example 5: when only the analytic Jacobian blows up
Take a three-joint wrist with , all joints revolute. Its angular Jacobian has columns , and , confirmed by finite differences to . Describe its orientation with ZYX angles and drive it toward , where the ZYX pitch reaches :
textq2 cond(J_omega) max |J_A entry| ZYX rates for qdot = (0.1, 0.1, 0.1) rad/s 40* 2.75 1.1 80 1.19 5.8 (0.68, 0.10, 0.57) 89 1.018 57.3 (5.83, 0.10, 5.73) 89.9 1.0017 573 (57.40, 0.10, 57.30)
(* row at , the others at .) At the wrist is almost perfectly conditioned, it spins at rad/s, and yet yaw and roll must change at about 57 rad/s each. Near pitch the yaw axis and the roll axis point in nearly opposite directions, so these two large rates nearly cancel. A controller written in ZYX angles would see a fault that the hardware does not have.
The reverse also happens. At the axes of joints 1 and 3 line up, has singular values , and the wrist really cannot spin about one direction. That is a robot singularity, the subject of singularities-and-manipulability. The two kinds are told apart by asking which matrix loses rank: (the robot) or (the angles).
Common Misconceptions & Pitfalls
- "Angular velocity is the derivative of the Euler angles." It is times that derivative. In Example 4 the two differ at an ordinary posture.
- "The geometric and analytic Jacobians differ everywhere." Their linear rows are always equal, and for a planar arm the angular row is equal too.
- "A blow-up in means the robot is singular." In Example 5 the wrist had condition number while had entries of 573.
- "Prismatic columns look like revolute ones." They have the axis in the linear rows and zeros in the angular rows, and no cross product.
- "Any finite-difference step works." The error was at and of order at , against near .
- "The geometric Jacobian is the same in every book." Modern Robotics means a twist Jacobian, whose linear part is not . Check the velocity before comparing numbers.
Summary
The Jacobian maps joint rates to end-effector velocity, and its column is the motion produced by joint alone. From the link frames, a revolute joint contributes to the linear rows and to the angular rows, a prismatic joint contributes and zeros. For the articulated arm and the SCARA these columns matched central differences to at the best step, . The analytic Jacobian differentiates a chosen set of orientation angles and equals : same linear rows, angular rows that differ unless as in a planar arm, and a blow-up wherever is singular. A ZYX wrist near pitch showed angle rates of 57 rad/s while the hardware spun at rad/s and was well conditioned.