EN
KinematicsAdvancedJacobiansingularityvelocitynumerical IK

The Jacobian

In 30 secondsThe Jacobian maps joint velocities to hand velocity (v = J·ω). When its determinant is zero, the arm is at a singularity and loses a direction of motion.

Also available in: Català · Castellano

The idea

FK and IK deal with positions. The Jacobian J deals with velocities: differentiate the FK formulas with respect to the angles and you get a matrix.

v = J · ω (ω: joint velocities; v: hand velocity)

Each column of J is how a single joint moves the hand; the hand moves by their sum.

J = [[−L1·sinθ1 − L2·sin(θ1+θ2), −L2·sin(θ1+θ2)], [L1·cosθ1 + L2·cos(θ1+θ2), L2·cos(θ1+θ2)]]

Example (L1 = L2 = 1, θ1 = 0°, θ2 = 90°): J = [[−1, −1], [1, 0]]. If only joint 1 turns at 1 rad/s, v = (−1, 1): perpendicular to the radius, at √2.

The other way round

To move the hand at a given velocity: ω = J⁻¹ · v. This is an arm’s Cartesian jog. Numerical IK takes small steps Δθ = J⁻¹ · Δx until it gets there.

Forces: τ = Jᵀ · F gives the torques needed to push with a force F.

Singularity

det J = L1 · L2 · sinθ2. At θ2 = 0° or 180° (arm stretched out or folded) it is 0 and J can’t be inverted: the hand can’t move along the arm. Near it, the motors would have to spin very fast to move the hand a little.

In the demo

With “θ2 = 90°”, move ω1: the white arrow is the sum of the two coloured ones (the columns of J). Switch to “Almost straight” and “Straight”: the ellipse of possible velocities flattens into a line. In “Hand to joints”, the bars turn red near the singularity.

Interactive demo

Related concepts