Linear Algebra · Theory · M8
M8-T7 — Robot Singularities
At a singularity the Jacobian loses rank: some hand motions become impossible and others demand infinite joint speed. The SVD tells you how close you are.
The Jacobian is a matrix whose rank can drop at special configurations. An arm that has its elbow straight cannot move its hand along the forearm direction, however fast the joints turn. We find those configurations with the determinant, explain them with the rank-nullity and SVD tools of Modules 3 and 6, and show how nearness to a singularity shows up as a large condition number.
Learning objectives
After this lesson, you should be able to:
- Find the singular configurations of the two-link arm from det J = l₁l₂ sin q₂ = 0.
- Explain with rank and the SVD which hand directions are lost and which joint motions become unobservable at a singularity.
- Use σmin, the condition number and manipulability as distance-to-singularity indicators.
- Distinguish boundary singularities from internal ones and name wrist and gimbal-type singularities in 3D.
Introduction and motivation
A welding robot follows a straight seam. As the seam brings the arm toward full extension the joint velocities needed to keep the tool speed constant grow, the controller saturates, the weld bead wobbles, and the safety system stops the arm. Nothing is broken: the path passes close to a singularity. Knowing where they are, what is lost there, and how to detect approach early is routine in arm programming.
The intuition
The Jacobian columns are the hand velocities from each joint alone. Usually the two columns point in different directions, so any hand velocity can be built from them. When the arm is stretched, both joints move the hand perpendicular to the arm, so the columns are parallel and every combination points the same way: no way to move along the arm. The matrix has lost a rank, its determinant is zero, and its smaller singular value is zero.
Interactive figure. A two-link arm with a velocity ellipse that flattens as the elbow straightens. The readout shows det J, the two singular values and the condition number, and flags configurations near a singularity. This figure needs JavaScript to be interactive.
Geometric and physical interpretation
Geometric view. At a singularity the image of the unit circle (the manipulability ellipse) degenerates to a segment: the Jacobian maps a whole direction of joint-velocity space to nothing (the null vector) and loses a direction in hand-velocity space. In 3D arms the same happens when two joint axes become parallel or collinear, as in a wrist whose middle axis points along the first (gimbal lock of Module 7). Physical view. Statics is dual: where the arm cannot move in a direction it can resist force in that direction without any torque, since τ = Jᵀf = 0 for f along the lost direction. That is why a stretched arm holds a heavy load on its bones, not its muscles.
The mathematics
- det J
- determinant of a square Jacobian; zero exactly at singularities.
- σmin
- smallest singular value of J: the distance, in the hand-speed-per-joint-speed sense, to a singularity.
- κ = σ₁/σmin
- condition number of J; infinite at a singularity.
- w = √det(JJᵀ)
- Yoshikawa manipulability; zero at a singularity.
Singular configurations of the two-link arm
det J = l₁ l₂ sin q₂ = 0 ⇔ q₂ = 0 (stretched) or q₂ = ±180° (folded)
What it means. Only the elbow angle matters: the shoulder can point anywhere. Both singularities lie on the boundary of the workspace (r = l₁ + l₂ or |l₁ − l₂|).
What is lost
rank J = 1; ṗ = J q̇ ∈ span(u₁); J v₂ = 0 (σ₂ = 0)
What it means. The hand can only move along one direction u₁ (perpendicular to the stretched arm). The joint-velocity direction v₂ produces no hand motion. A hand velocity along u₂ is unreachable.
Cost near a singularity
‖q̇‖ ≈ ‖ṗalong u₂‖ / σ₂ → ∞ as σ₂ → 0
What it means. To produce a hand velocity component along the weak direction, joint speeds scale as 1/σmin. A modest request becomes an impossible one very close to the singularity.
Singular ⇔ det J = 0 ⇔ σmin = 0 ⇔ rank drops. Two-link arm: q₂ = 0 or 180°. Near it, joint speeds scale like 1/σmin.
Step-by-step derivation: the determinant, the lost direction and the blow-up
- Determinant.
J = [[−l₁s₁ − l₂s₁₂, −l₂s₁₂], [l₁c₁ + l₂c₁₂, l₂c₁₂]]. Thendet J = (−l₁s₁ − l₂s₁₂)(l₂c₁₂) + l₂s₁₂(l₁c₁ + l₂c₁₂) = l₁l₂(−s₁c₁₂ + s₁₂c₁) = l₁l₂ sin(q₁₂ − q₁) = l₁l₂ sin q₂. - Zero set.
sin q₂ = 0givesq₂ = 0or±180°. Withq₂ = 0both columns are multiples of(−sin q₁, cos q₁): parallel, rank 1. - The lost direction. For the stretched arm with
q₁ = 0,J = [[0, 0], [l₁ + l₂, l₂]]: the first row is zero, so the hand has no x-velocity (along the arm). The null vectorv₂ ∝ (l₂, −(l₁ + l₂))is the pair of joint speeds that cancel exactly. - SVD view.
J = UΣVᵀwithσ₂ = 0. Hand velocities are confined tospan(u₁); the joint-velocity directionv₂is the null space. At the same time, the transpose mapτ = Jᵀfhas null directionu₂: loads along u₂ need no torque. - Blow-up. Write the desired hand velocity as
ṗ = a u₁ + b u₂. The least-squares inverse isq̇ = (a/σ₁)v₁ + (b/σ₂)v₂; the second term grows without bound as σ₂ → 0 unless b = 0. Even with exact arithmetic, a tiny error in the command along u₂ becomes a huge joint speed. - Distance to singularity. The matrix nearest to J with rank 1 differs from J by exactly σ₂ in the 2-norm (Eckart-Young, Module 6): σmin is the quantitative distance to singularity. The condition number σ₁/σ₂ and the manipulability σ₁σ₂ are alternative indicators; σmin is preferred because it does not depend on the other singular value.
- Boundary versus internal. Singularities of the two-link arm lie on the workspace boundary (the arm is stretched or folded). Redundant and spatial arms also have internal singularities, inside the workspace, where two axes align; they can be reached in the middle of a motion and are more dangerous in practice.
3D examples. A six-axis arm with a spherical wrist is singular when its wrist axes 4 and 6 line up (the wrist is “straight”), at the shoulder when the wrist centre lies on the axis of joint 1, and at the elbow when the arm is stretched. Euler angles of Module 7 have the same structure: at pitch ±90°, roll and yaw align and the map from angle rates to angular velocity loses rank.
Why a mobile robot is not exempt. A differential-drive robot cannot move sideways: its Jacobian from wheel speeds to (ẋ, ẏ, θ̇) always has rank 2 in a 3-dimensional space: a different (non-holonomic) kind of constraint, not a singularity at a particular configuration.
A worked example: how close is close?
Arm with l₁ = 1.1, l₂ = 0.8, so det J = 0.88 sin q₂.
- Stretched, q = (0°, 0°).
J = [[0, 0], [1.9, 0.8]],det = 0, singular values2.062and0. The hand can only move vertically; the x-velocity needed to move along the arm is impossible. - Nearly stretched, q₂ = 5°.
det = 0.88 sin 5° = 0.0767; singular values2.060and0.0372, condition number55.3. - The price. At
q = (0°, 5°),J = [[−0.0697, −0.0697], [1.897, 0.797]]. To move the hand 0.5 m/s along the arm (ṗ = (0.5, 0)):q̇ = J⁻¹ṗ = (5.20, −12.37)rad/s, nearly 700 °/s: far beyond any motor. - Comfortable, q₂ = 20°.
det = 0.301, singular values2.030and0.148, condition number13.7: still a stretched pose but workable. - Statics at the singularity. At
q = (0°, 0°)a horizontal forcef = (1, 0)on the hand givesτ = Jᵀf = [[0, 1.9], [0, 0.8]](1, 0) = (0, 0): the arm resists any load along itself without motor torque. - Folded.
q₂ = 180°givessin q₂ = 0again: the second singularity, atr = |l₁ − l₂| = 0.3.
Robotics application
Manipulators. Path planners add singularity checks (σmin, manipulability) as costs or constraints; teach pendants warn when the tool path approaches a wrist or elbow singularity.
UAVs and gimbals. A two-axis gimbal loses a degree of freedom when the tilt axis points along the pan axis (gimbal lock); attitude estimators avoid the issue by using quaternions; see attitude representation and rotation matrices and quaternion-based orientation.
SLAM and LiDAR registration. The Gauss-Newton matrix JᵀJ is singular, with a null direction, when geometry is degenerate (an empty corridor): the same mathematics in a different robot; see ICP fundamentals, LiDAR point clouds for SLAM and the earlier rank and condition-number lesson.
Mobile robots. Steering mechanisms with a singular steering angle (a bicycle model at full lock) show the same ill conditioning; see robot motion models for navigation.
Engineering implications and limitations
Practical rules
- Monitor σmin (or manipulability) online. It is the cheapest early-warning signal; the SVD of a 6 × 6 matrix costs microseconds.
- Set a threshold and a response. Below σmin ≈ 0.01–0.05 (in consistent units) switch to damped least squares (next lesson) or slow the path.
- Plan paths away from singularities. Use the manipulability measure as a planning cost; choose elbow and wrist poses that keep it high.
- Do not rely on det J alone. It depends on units and the number of joints; use σmin or the condition number.
- Scale rows consistently. Metres and radians in one Jacobian make σmin meaningless; weight them first (Module 5).
- Expect singularities at workspace edges. Avoid commanding targets at full reach; leave a margin of a few percent.
Limits
The Jacobian analysis is local. It says which directions are lost at a configuration, not how to plan around it globally; and measures such as σmin depend on the choice of units for the task space.
Common misconceptions
“A singularity is a point where the robot breaks.”
The mechanism is fine; it is the velocity map that loses rank, so some hand motions need infinite joint speed.
“If det J is small, the arm is near a singularity.”
The determinant is unit-dependent; judge nearness by σmin or the condition number.
“Singularities are only at the workspace boundary.”
Two-link arms have only boundary ones, but redundant and spatial arms have internal singularities where axes align.
“At a singularity the arm cannot move at all.”
It can still move, just not in the lost direction (it can even move the joints with the hand fixed, along the null vector).
Engineering takeaways
- Singular configurations are where J loses rank: det J = 0, σmin = 0. For the two-link arm det J = l₁l₂ sin q₂, so q₂ = 0 or 180°.
- At a singularity some hand direction is unreachable and a joint-velocity direction does nothing; statics is dual (loads along the lost direction need no torque).
- Near a singularity joint speeds scale like 1/σmin; σmin (or manipulability) is the best distance-to-singularity indicator.
- Redundant and 3D arms also have internal singularities (axes aligning, wrist and gimbal lock).
- Monitor σmin online, plan paths for high manipulability, and switch to damping close to singular poses.
References and further reading
Primary papers and authoritative documentation.
- Modern Robotics (Lynch and Park), free preprint: chapter 5.3, singularity analysis
- Buss, Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares: singularities and the behaviour of Jacobian inverse methods; the site did not load when we last checked
- Michigan ROB 101: Computational Linear Algebra: singular configurations of manipulators
- MIT 18.06SC Linear Algebra (OCW): lecture on the SVD and the condition number
Knowledge check
Three conceptual questions. Write an answer, then reveal the explanation. Your answers stay in your browser.
Question 1
For l₁ = l₂ = 1 find the determinant of the Jacobian at q₂ = 30° and the Jacobian ranks at q₂ = 0.
Explanation
det J = l₁l₂ sin q₂ = sin 30° = 0.5. At q₂ = 0, det = 0 and the two columns are parallel, so rank J = 1.
Question 2
An arm has Jacobian singular values 3.0 and 0.02. How large must joint speeds be to produce a 0.5 m/s hand velocity along the weak direction, and what does it mean?
Explanation
‖q̇‖ ≈ 0.5/0.02 = 25 rad/s, vastly beyond the limits of any joint; the arm is effectively singular for that direction. Reduce the speed, change the path or use damping.
Question 3
An engineer monitors |det J| and sets a threshold of 1e-3. After changing the link lengths from metres to millimetres the alarm never fires. Why?
Explanation
The determinant scales with the units of the matrix (here 10⁶ times larger when lengths are in mm), so the threshold is meaningless. Use σmin or the condition number with consistently scaled rows.
What’s next
Near a singularity the exact inverse is dangerous. The damped least-squares method deliberately gives up a little accuracy to keep joint speeds bounded, and iterating it gives a robust inverse-kinematics solver.
Related content
Nothing below is required to finish this lesson.
- BeforeM8-T6: Jacobian Inverse and Pseudoinverse
Solve for joint velocities with the inverse or pseudoinverse and say when each is valid.
- BeforeM2-T6: Determinants and Geometric Interpretation
Interpret the determinant as a signed area scale factor and link a zero determinant to a transformation that cannot be undone.
- LabM8-L1: Interactive Robotic Arm and Inverse Kinematics
Drive a two-link arm to targets by inverse kinematics, watch the pseudoinverse blow up near a singularity, and fix it with damping.
Get notified when the next lesson and new labs are released.
One email per new lesson or lab.