Two-link arm: forward kinematics, the Jacobian, and singularities

CS 549 · sessions 2.3–2.4 · l1 = 0.4 m, l2 = 0.3 m · move the joint sliders and watch the ellipse.

Controls

30°
45°

Readouts

The ellipse is the set of tip velocities J q̇ for all joint-velocity vectors with |q̇| = 1 rad/s; its semi-axes are the singular values of J. The arrows are the columns of J: ∂p/∂q₁ = (−y, x), always perpendicular to the line from the base to the tip, and ∂p/∂q₂, always perpendicular to link 2. Where they become parallel, det J = l₁ l₂ sin q₂ = 0 and the ellipse is a line: the tip cannot move along the arm at first order.

Default state = the worked example of the 2.3–2.4 notes §5. Companion notes: notes.md.

A commanded tip velocity you can point: which direction is cheap, and what happens at det J = 0

Controls

139.1°

The magnitude is fixed at |ẋ| = 0.1 m/s; only the direction changes. The two buttons keep following the arm as you move q1 and q2 above; dragging the slider switches to a fixed direction in the world frame.

Readouts

Away from a singularity the square system J q̇ = ẋ has one solution, q̇ = J⁻¹ ẋ, and the arm produces the command exactly; the cost in joint rate is what changes with direction. At det J = 0 the readout does not stop: it prints the least-norm rates q̇ = J⁺ ẋ and splits ẋ into the part the arm can produce and the part it cannot. The joint rates stay small there — it is the task error, not the joint rate, that has gone wrong.

Multiply on the wrong side: the same four factors in the wrong order

Controls

Both ghosts use the same four factors as the correct chain, with two of them exchanged. Clear the box to see the correct arm alone.

Readouts

The heading is the same in all three chains, and it is the same in all 24 orderings of the four factors: in the plane every rotation block commutes, so the heading is always q1 + q2. A student who checks only the orientation of the end-effector frame never sees the error. This is a planar accident — in 3-D the order changes the orientation too, which is what tab 2 of modules/rotations-3d shows.