The arm has 3 revolute joints in a plane, link lengths L₁,L₂,L₃. Forward kinematics of the end-effector (x,y):
x = L1·cosθ1 + L2·cos(θ1+θ2) + L3·cos(θ1+θ2+θ3)
y = L1·sinθ1 + L2·sin(θ1+θ2) + L3·sin(θ1+θ2+θ3)
The 2×3 Jacobian J = ∂(x,y)/∂(θ1,θ2,θ3) maps joint velocities to end-effector velocity: v = J·θ̇. To reach a target, each frame solves the damped least-squares (Levenberg–Marquardt) inverse:
Δθ = Jᵀ (J Jᵀ + λ²I)⁻¹ · e, e = target − current position
λ trades accuracy for stability. With λ = 0 this reduces to the classic Jacobian pseudo-inverse, which blows up as the arm straightens out; a small λ keeps the step finite through a singularity.
The manipulability ellipsoid is the image of the unit joint-velocity ball under J: its shape is set by the eigenvalues/eigenvectors of M = J Jᵀ (a 2×2 matrix here). Semi-axis lengths are √λ₁, √λ₂ along the eigenvectors — long axes mean the end-effector can move fast in that direction for modest joint speeds, short axes mean it can barely move at all. The scalar manipulability index w = √det(J Jᵀ) = σ₁σ₂ (product of singular values) collapses to zero exactly at a singularity — e.g. when the arm is fully outstretched or fully folded — and the ellipse flattens to a line. The condition number κ = σ_max/σ_min measures how lopsided that ellipse is; κ → ∞ at the same singular configurations.
- Drag the target — the arm continuously re-solves DLS-IK toward it every frame.
- Damping λ — raise it to see the arm move more sluggishly but stay stable when the target sits near or beyond full reach.
- Send arm to a singularity — snaps the target to the edge of the workspace so you can watch w → 0 and the ellipse degenerate.
Real-world relevance: this exact ellipsoid analysis (Yoshikawa's manipulability measure) is how industrial and surgical robot arms plan trajectories that avoid low-dexterity poses, and why teleoperated arms slow down automatically near full extension.