Both 2-joint arms (shoulder + elbow, with a fixed gripper tip) are commanded toward the same target, sharing an identical Jacobian J at every instant since their poses stay mirrored. The naive arm solves joint velocity with the plain minimum-norm inverse q̇ = Jᵀ(JJᵀ)⁻¹ẋ. As the arm nears full extension, det(JJᵀ) collapses toward zero, so its inverse — and q̇ — explode: a real motor cannot obey that command, so controllers either fault or the arm jerks violently.
The damped arm adds a regularizer: q̇ = Jᵀ(JJᵀ + λ²I)⁻¹ẋ. The λ²I term keeps the matrix invertible even as det(JJᵀ)→0, trading exactness for a bounded, motor-safe solution — the end-effector briefly lags the exact commanded point (tracking error rises) instead of demanding infinite joint speed.
manipulability = √det(JJᵀ) → 0 at a singularity
q̇_naive = Jᵀ (JJᵀ)⁻¹ ẋ → unbounded near singularity
q̇_damped = Jᵀ (JJᵀ + λ²I)⁻¹ ẋ → bounded, smooth
- Reach toward singularity — how close the path's peak extension gets to the arm's maximum reach; higher pushes both solvers closer to det(JJᵀ)=0.
- Sweep speed — how fast the commanded target moves; faster sweeps demand larger ẋ, amplifying the naive spike.
- Damping λ — regularization strength for the right-hand arm; higher trades more tracking accuracy for safer, smoother joint motion.
- Drag target — grab the target marker yourself and walk it slowly toward full extension to feel the blow-up directly.