Skip to the lesson
FixTheRobot Explore Robotics / Linear Algebra / M8 Jacobians and Robot Kinematics / M8-T5

Linear Algebra · Theory · M8

M8-T5 — Differential Kinematics

Velocity kinematics is one matrix equation, ṗ = J q̇. Read it forwards for motion, transpose it for force, and take its SVD for dexterity.

  • Lesson 5 of 10
  • Module 8: Jacobians and Robot Kinematics
  • Jacobians and kinematics
  • About 8 minutes to read

Position kinematics is nonlinear, but velocities relate linearly. This lesson uses the Jacobian to predict how fast the hand moves for given joint speeds, to turn a desired hand force into joint torques, and to measure with the SVD how easily the arm moves in each direction.

Learning objectives

After this lesson, you should be able to:

  • Write and use the velocity relation ṗ = J(q) q̇ for an arm.
  • Derive the force relation τ = Jᵀ f from power conservation.
  • Describe the manipulability ellipse and read its axes and the manipulability measure from the SVD of J.
  • Integrate a velocity command into joint positions and explain the drift this causes.

Introduction and motivation

A robot is told to move its gripper at 0.2 m/s along a line. The controller has only joint velocity commands. It must compute which joint speeds produce exactly that hand velocity at the current configuration, and recompute at every tick as the configuration changes. The same matrix tells it how much torque each joint needs to push on the world with a given force, and how strong or fast the arm is in each direction.

The intuition

Differentiating the forward kinematics p = f(q) with respect to time gives, by the chain rule, ṗ = J(q) q̇. At a fixed configuration this is a plain matrix times a vector: each joint contributes its Jacobian column scaled by its speed, and the hand velocity is the sum of those contributions (a linear combination of the columns, Module 2). Because the equation is linear, scaling the joint speeds scales the hand speed.

Velocities forward, forces backwardThe Jacobian maps joint velocities to hand velocity, and its transpose maps hand force to joint torque. Together they conserve power: torque times joint velocity equals force times hand velocity.joint speeds q̇(rad/s) hand velocity ṗ(m/s) ṗ = J q̇ joint torques τ(N·m) hand force f(N) τ = Jᵀ f power: τᵀ q̇ = (Jᵀf)ᵀ q̇ = fᵀ (J q̇) = fᵀ ṗ
The Jacobian maps velocities forward; its transpose maps forces backward; power is the same either way.

Interactive figure. A two-link arm with the hand velocity as an orange arrow, the Jacobian columns as green and gold arrows, and the velocity ellipse as a dashed curve. The readout lists the velocity, the singular values and the determinant. This figure needs JavaScript to be interactive.

Geometric and physical interpretation

Geometric view. The image of the unit circle of joint-speed vectors under J is an ellipse: the manipulability ellipse (Module 6). Its semi-axes are the singular values σ₁, σ₂ of J, in the directions of the left singular vectors u₁, u₂: the arm moves fastest along u₁ and slowest along u₂. The area is proportional to σ₁σ₂ = |det J| (Yoshikawa's manipulability). Physical view. The dual ellipse for forces has the same axes but inverse lengths: where the arm moves easily it pushes weakly, and vice versa.

The mathematics

q, q̇
joint positions and joint velocities.
p, ṗ
hand position and velocity.
τ, f
joint torques and the force applied by the hand on the environment.
σ₁ ≥ σ₂
singular values of J; w = σ₁σ₂ = √det(JJᵀ) is the manipulability.

Velocity kinematics

ṗ = J(q) q̇

What it means. The hand velocity is the sum of the Jacobian columns weighted by the joint speeds. J must be re-evaluated at the current q at every time step.

Force kinematics (statics)

τ = J(q)ᵀ f

What it means. To exert the force f at the hand, each joint must supply a torque equal to the corresponding column of J dotted with f. It follows from the equality of mechanical power at the joints and at the hand.

Manipulability

J = U Σ Vᵀ,     w = σ₁ σ₂ = |det J|  (square case)

What it means. The ellipse axes σ₁ and σ₂ are the maximum and minimum hand speed per unit joint-speed norm; the product measures overall dexterity, going to zero at a singularity.

ṗ = J q̇ (velocity), τ = Jᵀ f (force), and the SVD of J gives the manipulability ellipse. Power conservation links the first two: τᵀq̇ = fᵀṗ.

Step-by-step derivation: velocity, force and manipulability

  1. Velocity. Differentiate p(t) = f(q(t)) with the chain rule: ṗ = Σⱼ (∂f/∂qⱼ) q̇ⱼ = J q̇. Written as columns: ṗ = J₁ q̇₁ + J₂ q̇₂ + ….
  2. Power. The mechanical power delivered at the joints is τᵀ q̇; the power delivered to the environment at the hand is fᵀ ṗ. For a lossless, static arm they are equal: τᵀq̇ = fᵀṗ for every q̇.
  3. Torque from force. Substitute ṗ = J q̇: τᵀ q̇ = fᵀ J q̇ for all q̇, hence τᵀ = fᵀJ, i.e. τ = Jᵀ f. (This is the principle of virtual work.)
  4. Manipulability ellipse. The set of joint-speed vectors with ‖q̇‖ = 1 is a circle. With J = UΣVᵀ the image is {U Σ Vᵀ q̇}: rotate the circle (Vᵀ), stretch by σ₁ and σ₂ (Σ), rotate again (U): an ellipse with semi-axes σ₁ along u₁ and σ₂ along u₂.
  5. Force ellipse. The force that a unit-norm torque vector can balance is f with τ = Jᵀf, so f = J⁻ᵀτ: the axes are 1/σ₁ and 1/σ₂. The arm is strong exactly where it is slow.
  6. Integration. Joint positions follow from q(t + Δt) ≈ q(t) + q̇ Δt. Because J changes with q, a hand path commanded by constant velocity drifts from the intended straight line unless the error is fed back (closed-loop inverse kinematics, next lessons).

The 3D case. For a 3D arm the Jacobian has six rows: three for linear velocity and three for angular velocity of the hand (the twist). A revolute joint with axis zⱼ at position oⱼ contributes the column (zⱼ × (p − oⱼ), zⱼ): its angular velocity is along its axis, and its contribution to linear velocity is the cross product ω × r. The planar case above is the special case with all axes along z.

Mobile robots. The same idea gives the kinematics of a unicycle, (ẋ, ẏ, θ̇) = [[cos θ, 0], [sin θ, 0], [0, 1]] (v, ω): a 3 × 2 matrix whose rank 2 says the robot cannot move sideways instantly.

A worked example: hand velocity, joint torques and manipulability

Arm with l₁ = 1.1, l₂ = 0.8 at q = (0°, 90°), where J = [[−0.8, −0.8], [1.1, 0]].

  • Velocity. Joint speeds q̇ = (1, 0.5) rad/s give ṗ = J q̇ = (−0.8 − 0.4, 1.1) = (−1.2, 1.1) m/s, a speed of √(1.44 + 1.21) = 1.63 m/s.
  • Force to torque. To push on the environment with f = (0, 10) N (straight up in the world), τ = Jᵀ f = [[−0.8, 1.1], [−0.8, 0]] (0, 10) = (11, 0) N·m. The elbow supplies nothing because the force is along the second link, which points straight up.
  • Power check. τᵀq̇ = 11·1 + 0·0.5 = 11 W, and fᵀṗ = 10 · 1.1 = 11 W ✓.
  • Manipulability. det J = (−0.8)(0) − (−0.8)(1.1) = 0.88; the singular values are σ₁ = 1.458 and σ₂ = 0.604, product 0.88 ✓. The hand can move at most 1.458 m/s per unit joint-speed norm and at least 0.604 m/s.
  • A different pose. At the figure's starting pose q = (40°, 70°) with q̇ = (0.6, −0.4), ṗ = (−0.575, 0.451) m/s.
  • Drift. Commanding the hand to move up at 1 m/s from this pose by holding the joint speeds computed at t = 0 for 0.5 s moves the hand along a curve, not a line, because J changes during the motion; the error is of order ½ Δt² |q̈|, which feedback must remove.

Robotics application

Manipulators. Resolved-rate control, force control and impedance control all start from ṗ = J q̇ and τ = Jᵀ f; teleoperation and visual servoing use the same relations with image coordinates.

Mobile robots. The unicycle and bicycle models are differential kinematics of the wheels; path-following controllers choose (v, ω) in task space and map to wheel speeds; see robot motion models for navigation, pure pursuit and Stanley and cross-track control.

UAVs. The mapping from rotor speeds to total thrust and body torques is a linear (Jacobian-like) allocation matrix; a UAV with a manipulator adds the arm Jacobian to the body; see UAV coordinate frames.

SLAM and LiDAR. The same idea relates sensor motion to the apparent motion of landmarks: the matrix of image or range-bearing Jacobians (previous lesson); see landmark-based mapping. IMU and GPS provide ṗ-level measurements that are fused with joint-encoder predictions via J.

Engineering implications and limitations

Practical rules

  • Recompute J every control cycle. A stale Jacobian produces a path that drifts; update it at the current q.
  • Close the loop on position. Command q̇ = J⁺(ṗ_des + K (p_des − p)); open-loop integration accumulates error.
  • Check units and frames. J maps into the frame in which p is expressed (base or tool); rotate it if a command is given in the other.
  • Mind actuator limits. The joint speeds needed for a given ṗ can exceed motor limits; scale the whole command uniformly to preserve the direction.
  • Use the force ellipse for payload planning. The arm lifts most along the short axis of the velocity ellipse; plan tasks along directions where the required force is cheap.
  • Include gravity and friction for real force control. τ = Jᵀf is the static map; dynamics add terms.

Limits

The relations are first-order and instantaneous. They ignore link dynamics (inertia, Coriolis), joint flexibility and friction, and the velocity relation is valid only for small time steps at a given q.

Common misconceptions

“The Jacobian transpose gives the inverse velocity map.”

Jᵀ maps forces to torques. It is not the inverse of J (it is only when J is orthogonal).

“Constant joint speeds give a straight hand path.”

Only to first order. J varies with q, so the hand path curves.

“A large σ means the arm is strong in that direction.”

It is fast there and weak: the force capacity scales as 1/σ.

“The Jacobian is constant for a given robot.”

It depends on the configuration and must be recomputed as the arm moves.

Engineering takeaways

  1. ṗ = J(q) q̇: the hand velocity is a combination of the Jacobian columns weighted by the joint speeds.
  2. τ = Jᵀ f follows from power conservation τᵀq̇ = fᵀṗ.
  3. The SVD of J gives the manipulability ellipse: axes σ₁, σ₂ for velocity and 1/σ₁, 1/σ₂ for force; w = |det J| for a square J.
  4. J changes with q, so recompute it each cycle and close the loop on position.
  5. The 3D Jacobian has six rows (linear and angular velocity); each revolute column is (z × r, z).

References and further reading

Primary papers and authoritative documentation.

Knowledge check

Three conceptual questions. Write an answer, then reveal the explanation. Your answers stay in your browser.

Question 1

With J = [[−0.8, −0.8], [1.1, 0]] find the joint speeds that give hand velocity (0, 0.55).

Explanation

Solve: from the second row 1.1 q̇₁ = 0.55, q̇₁ = 0.5. First row: −0.8·0.5 − 0.8 q̇₂ = 0, so q̇₂ = −0.5. Joint speeds (0.5, −0.5) rad/s.

Question 2

At the same configuration, what joint torques hold a hand force of (5, 0) N, and what is the power balance for q̇ = (0.2, 0)?

Explanation

τ = Jᵀf = [[−0.8, 1.1], [−0.8, 0]](5, 0) = (−4, −4) N·m. With q̇ = (0.2, 0): τᵀq̇ = −0.8 W; ṗ = J q̇ = (−0.16, 0.22), fᵀṗ = 5·(−0.16) = −0.8 W ✓.

Question 3

An arm's Jacobian has singular values 2.0 and 0.1. Compare the hand speed and the force capacity along the two ellipse axes for unit joint norms.

Explanation

Speed: up to 2.0 m/s along u₁ but only 0.1 m/s along u₂. Force: the capacity scales as 1/σ, so the arm can push 10 times harder along u₂ than along u₁ (per unit torque norm): fast and weak along u₁, slow and strong along u₂.

What’s next

To command a hand velocity we must solve ṗ = J q̇ for the joint speeds. When J is square and nonsingular that is an inverse; for redundant or singular arms it is the pseudoinverse of Module 6.

Next lesson

M8-T6 — Jacobian Inverse and Pseudoinverse

Solve for joint velocities with the inverse or pseudoinverse and say when each is valid.

Nothing below is required to finish this lesson.

  • Before
    M8-T4: Jacobian Matrices

    Assemble the Jacobian of a vector function and read it as the best local linear approximation.