Singularities and the Jacobian

← Robot list · The basics

The part of robotics that surprises everybody: why a robot arm suddenly loses a direction of movement, why its motors race, why a tool orientation “locks”, and how professionals live with it. We start from joint speeds and finish with redundant and parallel robots. You should have followed the “Maths and motion” course (or know what a 2-axis arm and a matrix are).

The big question

Stretch your arm completely in front of you and ask a friend to push your hand towards you along the arm. You resist with no effort: the bones carry the load. Now try to move your hand along the arm without bending the elbow: impossible. In that pose your arm has lost a direction. Robots have exactly the same problem, and it has a name: a singularity.

This course answers five questions:

  • What is it? (lessons 1 and 2) A pose where the Jacobian matrix loses rank.
  • Where are they? (lesson 3) The three famous ones of a 6-axis robot: elbow, shoulder, wrist.
  • How close am I? (lesson 4) Manipulability and condition number.
  • Why does it hurt? (lessons 5 and 6) Exploding speeds, lost forces, gimbal lock.
  • What do I do about it? (lessons 7 and 8) Redundancy, damped inverse, planning, parallel robots.
1

From joint speeds to tool speed: the Jacobian

12 min
You will learn

how the Jacobian is built, column by column, and what it tells you about a robot.

1.1 Speeds are simpler than positions

The position of the tool depends on the joint angles in a complicated way: sines, cosines, products. But the speed of the tool depends on the joint speeds in a very simple way: linearly. If you double all the joint speeds, the tool goes twice as fast. This linear link is a matrix, the Jacobian J.

The idea in one sentence

Each joint, turning alone at 1 rad/s, makes the tool move with some velocity: an arrow. That arrow is one column of J. When several joints move, the tool velocity is the sum of the arrows, each one multiplied by the speed of its joint.

1.2 One single joint

Take one link of length L turned by the angle θ: the end is at x = L cos θ, y = L sin θ. Differentiate with respect to time:

ẋ = −L sin θ · θ̇, ẏ = L cos θ · θ̇

The column (−L sin θ, L cos θ) is perpendicular to the link and has length L: the end moves on a circle, so its velocity is tangent to it. Longer link, faster tool: v = L · ω.

1.3 The two-joint arm

For the arm of the “Maths and motion” course, x = L1 cos θ1 + L2 cos(θ1+θ2) and y = L1 sin θ1 + L2 sin(θ1+θ2). Differentiating gives:

ẋẏ = −L1 sin θ1 − L2 sin θ12−L2 sin θ12L1 cos θ1 + L2 cos θ12L2 cos θ12 θ̇1θ̇2 (θ12 = θ1 + θ2)

Read it geometrically: column 1 is the tool velocity when only joint 1 turns (1 rad/s). It is perpendicular to the line “joint 1 → tool” and its length is the distance joint 1 – tool. Column 2 is the same for joint 2: perpendicular to the line “joint 2 → tool”, length L2.

Worked example

L1 = 0.5 m, L2 = 0.3 m, θ1 = 0°, θ2 = 90°. Then sin θ1 = 0, cos θ1 = 1, sin θ12 = 1, cos θ12 = 0:

J = −0.3−0.30.50

If θ̇1 = 1 rad/s and θ̇2 = 0.5 rad/s: ẋ = −0.3·1 − 0.3·0.5 = −0.45 m/s and ẏ = 0.5·1 + 0·0.5 = 0.5 m/s. The tool moves at √(0.45² + 0.5²) ≈ 0.67 m/s.

Method: the Jacobian of any robot, column by column
  1. For each joint i, find its axis (a unit vector zi) and a point Oi on that axis.
  2. Revolute joint: the linear part of the column is zi × (Ptool − Oi) and the angular part is zi.
  3. Prismatic joint: the linear part is zi and the angular part is zero.
  4. Stack the columns side by side. In 3D, J has 6 rows (3 for the linear velocity v, 3 for the angular velocity ω) and n columns (one per joint).
Remember
  • Velocity model: ẋ = J(q) q̇. The tool velocity is a linear combination of the columns of J.
  • J depends on the pose q: it changes as the robot moves. For small moves, dx ≈ J dq.
  • Inverse: if the tool must move at ẋ, the joints must move at q̇ = J−1 ẋ. That is only possible if J can be inverted… and this is where the whole course begins.

Key terms

  • Jacobian matrix
  • joint speed
  • tool velocity
  • column of J
  • linear / angular velocity
Check yourself
  1. A link of 0.4 m turns at 2 rad/s. How fast does its end move?

    v = L · ω = 0.4 × 2 = 0.8 m/s, tangent to the circle described by the end.

  2. With the Jacobian of the worked example, what is the tool velocity if only joint 2 turns at 1 rad/s?

    The second column: (−0.3 ; 0) m/s. The tool, 0.3 m above joint 2, is carried to the left at 0.3 m/s.

The Jacobian in the Master-level course →

2

What is a singularity?

10 min
You will learn

to recognise a singularity in a drawing, and to name it with the Jacobian.

2.1 The stretched arm

Put the two-joint arm with θ2 = 0: the arm is perfectly stretched. Replace in the Jacobian of lesson 1 (cos θ12 = cos θ1, sin θ12 = sin θ1):

J = −(L1+L2) sin θ1−L2 sin θ1(L1+L2) cos θ1L2 cos θ1

Look at the two columns: both are proportional to the same vector (−sin θ1, cos θ1), which is perpendicular to the arm. Whatever the joint speeds, the tool can only move sideways. Along the arm, nothing is possible.

New word

Singularity. A pose q where the Jacobian loses rank: its columns are no longer independent, so there is at least one direction in which the tool cannot move, whatever the joint speeds. For a square J this is written det J(q) = 0.

2.2 The test: the determinant

For the two-joint arm, a short calculation (lesson 5 of this course shows it again) gives:

det J = L1 L2 sin θ2

Elbow angledet JMeaning
θ₂ = 0°L₁L₂ · 0 = 0Singular: arm stretched (the tool is at the edge of its workspace).
θ₂ = ±180°L₁L₂ · 0 = 0Singular: arm folded back on itself.
θ₂ = ±90°±L₁L₂Best case: the largest determinant.
θ₂ = 10°0.17 · L₁L₂Regular on paper, but already close to a singularity (lesson 4).
Watch out

A singularity is a property of the pose (the joint values), not of the speed, the program or the motors. A better motor does not remove it.

2.3 Two families

  • Boundary singularities sit at the edge of the workspace: arm stretched or folded. They are easy to avoid, simply do not ask the tool to go there.
  • Internal singularities sit inside the workspace (shoulder and wrist of a 6-axis robot, lesson 3). They are the dangerous ones: the tool can pass through them while doing a perfectly normal task.

The first reflex of an engineer facing a new robot: find its singular poses and keep the useful workspace away from them.

Key terms

  • singularity
  • rank
  • determinant
  • boundary singularity
  • internal singularity
Check yourself
  1. The arm has L₁ = L₂ and is folded back on itself. What is θ₂, and is the pose singular?

    θ₂ = ±180°. sin θ₂ = 0, so det J = 0: it is singular (the tool is back at the shoulder).

  2. The arm is stretched along the x axis (θ₁ = 0, θ₂ = 0). In which direction can the tool still move?

    Only along y, perpendicular to the arm. Movement along x is lost.

  3. Why is an internal singularity more dangerous than a boundary one?

    Because a normal task inside the workspace can reach it without warning; the edge of the workspace is a limit you already respect.

Watch the stretched and folded poses on the SCARA page →

3

The singularities of a 6-axis robot

14 min
You will learn

the three classical singularities (elbow, shoulder, wrist), where they are and how to recognise them on a real robot.

Most industrial robots have six axes and a spherical wrist (axes 4, 5 and 6 meet at one point, the wrist centre; see the 6-axis robot page). This shape splits the problem in two: joints 1-3 place the wrist centre, joints 4-6 orient the tool. The Jacobian then also splits, and its determinant becomes a product of simple factors. For the Stäubli RX-90 of the Master course:

det J = −C3 D3 RL4 S5 (S23 RL4 − C2 D3)

A product is zero when one factor is zero. Each zero factor is a family of singular poses:

NameConditionWhat is lostHow to recognise it
Elbow (or reach)Joints 1-3 stretched or folded: the wrist centre is at the edge of what joints 1-3 can reach.Movement of the wrist centre along the arm (towards or away from the base).The arm looks like a straight stick. Typical when the tool is placed at maximum reach.
ShoulderThe wrist centre lies on the axis of joint 1 (arm folded up above the base).Sideways movement of the wrist centre: turning joint 1 does not move it any more.The tool passes just above or just in front of the base. A path crossing the base column is a trap.
WristJoint 5 = 0 (or 180°): axes 4 and 6 are on the same line.One rotation of the tool: only the sum or the difference of q4 and q6 matters.The tool points straight along the forearm. Typical for welding or painting straight ahead.

3.1 Why the wrist singularity is the one you meet most

The three wrist axes give the tool angular speeds along z4, z5 and z6. When q5 = 0, z6 = z4: two joints now turn the tool about the same axis. The tool can no longer turn about the axis perpendicular to both z4 and z5. Worse, an infinity of pairs (q4, q6) give the same tool orientation.

What you see on a real robot

Program a straight line with the tool pointing along the forearm. Near the singularity, q4 spins one way and q6 the opposite way, very fast, while the tool hardly moves. The controller slows down, shakes, or stops with an error such as “singularity” or “joint speed limit”.

3.2 Robots with an offset wrist (UR, cobots)

On a UR5 the wrist axes do not meet at one point, yet the same three families exist: wrist (q5 = 0 or 180°), elbow (q3 = 0 or 180°) and shoulder (the wrist centre above axis 1, inside the small cylinder made by the shoulder offset). Only the formulas change. Try the three of them on the 6-axis robot page and on the cobot page.

Remember
  • A 6-axis robot has three families of singular poses: elbow, shoulder, wrist.
  • In the joint space they are thin surfaces (for example q5 = 0). But the zone where the robot is badly conditioned around them is thick: you feel the problem well before the exact pose.
  • Elbow = edge of the workspace; shoulder and wrist = inside it.

Key terms

  • elbow singularity
  • shoulder singularity
  • wrist singularity
  • spherical wrist
  • wrist centre
Check yourself
  1. Which joint angle is 0 (or 180°) at a wrist singularity of a 6-axis robot?

    q5, the middle joint of the wrist. Then axes 4 and 6 are aligned.

  2. A path makes the tool pass exactly above the base column of the robot. Which singularity is close?

    The shoulder singularity: the wrist centre is close to axis 1.

  3. Which of the three is a boundary singularity, and why?

    The elbow: the arm is stretched, so the wrist centre is at the edge of the reachable zone.

Create a wrist singularity on the 6-axis robot page →

4

How close am I? Manipulability and conditioning

12 min
You will learn

to measure the distance to a singularity with a number, and to draw it as an ellipse.

A singularity is not a cliff: it is the bottom of a valley. The robot already behaves badly on the slopes. We need a number that says how far we are.

4.1 The manipulability ellipse

The idea in one picture

Imagine all the joint speed combinations of “size 1” (a circle of radius 1 in joint-speed space). Send them through the Jacobian: they come out as an ellipse in tool-speed space. It shows in which directions the tool is fast (long axis) and in which it is slow (short axis). At a singularity, the short axis becomes zero and the ellipse is flat: it is a segment, one direction is lost.

Mathematically, if J = U Σ VT (singular value decomposition), the semi-axes of the ellipse are the singular values σ1 ≥ σ2 ≥ … of J, in the directions of the columns of U. The tool is fast along the first, slow along the last.

4.2 Two numbers

  • Manipulability (Yoshikawa): w = √det(J JT) = σ1 σ2 … It is the “area” of the ellipse. It is zero at a singularity. For a square J, w = |det J|; for the two-joint arm, w = L1 L2 |sin θ2|.
  • Condition number: κ = σmax / σmin. It is 1 for a circle (the tool is equally good in all directions) and tends to infinity at a singularity. It is the number that says how much errors are amplified.
Worked example

Two-joint arm with L1 = 0.5 m and L2 = 0.3 m (wmax = 0.15 m²):

θ₂w (m²)σ₁σ₂κ = σ₁/σ₂
90°0.1500.610.252.5
30°0.0750.830.0919.1
10°0.0260.850.03128
2°0.00520.850.0061139

Between 90° and 2° the long axis does not change, but the short axis collapses: the robot is still fast in one direction and almost helpless in the other.

4.3 The force ellipse: the mirror image

The same matrix describes forces (see lesson 5): the force ellipse has the same axes but the inverse lengths 1/σi. Where the tool is slow it is strong, and where it is fast it is weak. A stretched arm is slow along its length but it can push very hard along it, because the bones carry the load. You choose the pose according to the task: speed (go to the fast direction) or force (go to the strong one). A hammer-like task wants a stretched arm, a fast pick and place wants a well-conditioned pose.

Watch out

For a full 6-axis robot, J mixes metres per second (linear part) and radians per second (angular part), so its singular values mix units. Engineers look at the two 3×3 blocks separately, or scale them with a characteristic length, before computing w or κ.

Key terms

  • manipulability
  • manipulability ellipse
  • singular value
  • SVD
  • condition number
  • isotropic
Check yourself
  1. A two-joint arm has L₁ = L₂ = 0.4 m. For which θ₂ is the manipulability maximal, and what is its value?

    w = L₁L₂ |sin θ₂| is maximal for θ₂ = ±90°: w = 0.4 × 0.4 = 0.16 m².

  2. What does κ = 1 mean for the ellipse?

    The ellipse is a circle: the robot can move equally well in every direction (isotropic).

  3. A task needs to push very hard along one direction. Do you want a high or a low σ in that direction?

    A low σ: the force ellipse has inverse lengths, so a direction where the tool is slow is a direction where it is strong.

5

Why singularities hurt: speeds, forces and accuracy

12 min
You will learn

what really happens to the motors, the forces and the precision of a robot near a singularity.

5.1 The joint speeds explode

To make the tool follow a Cartesian path at speed ẋ, the controller computes the joint speeds with the inverse Jacobian. For the two-joint arm:

J−1 = (1 / (L1L2 sin θ2)) L2 cos θ12L2 sin θ12−L1 cos θ1 − L2 cos θ12−L1 sin θ1 − L2 sin θ12

Every term is divided by det J = L1L2 sin θ2. When it tends to zero, the joint speeds tend to infinity.

Worked example: 0.1 m/s along the arm

L1 = 0.5 m, L2 = 0.3 m, θ1 = 0. The tool must move at only ẋ = 0.1 m/s (6 m/min, a slow walk) along the arm. We lower the elbow angle θ2 towards 0:

θ₂|θ̇₁| (rad/s)|θ̇₂| (rad/s)elbow motor
90°00.333 rpm
20°0.551.515 rpm
5°2.36.158 rpm
1°1131290 rpm

Same slow tool speed, but a hundred times more motor speed. A real joint has a speed limit (a few rad/s): the controller must slow the tool down, or the robot stops.

5.2 Forces: the same matrix, transposed

The power given by the motors, τT q̇, equals the power received by the tool, FT ẋ = FT J q̇. Hence the static model:

τ = JT F

To push on the world with a force F at the tool, the motors must supply the torques τ. Now take the arm stretched along x (θ1 = θ2 = 0, L1 = 0.5, L2 = 0.3):

τ1τ2 = 00.800.3 FxFy = 0.8 Fy0.3 Fy

Fx does not appear: a load of 1000 N pulling on the tool along the arm needs zero motor torque. The structure carries it. But a force of 10 N sideways needs 8 N·m and 3 N·m.

Remember: the duality
  • The directions where the tool cannot move (lost by J) are the directions where the robot can carry any load without motor torque (null space of JT).
  • It looks like a bonus (a strong, light robot), but the motors cannot control the force in that direction: no force control, no way to push gently, and the structure may be overloaded without any motor feeling it.

5.3 Accuracy and noise

Going from the joints to the tool (forward) is benign: dx = J dq, the error of the encoders is passed on without amplification. Going from the tool to the joints is the problem: a tool error of dx asks for up to dx/σmin of joint motion. With the arm of lesson 4, a tool step of 0.1 mm needs about 0.02° at θ₂ = 90° (σmin = 0.25) but about 0.9° at θ₂ = 2° (σmin = 0.0061): 40 times more, which can be below the resolution of the gearbox and the encoder. A small calibration error becomes a visible error.

5.4 What you see in a real program

SymptomCause
An alarm “singularity” or “joint speed limit exceeded”The inverse Jacobian asks for more than the motors can give.
The robot slows down for no apparent reasonThe controller scales the path speed to keep the joints within their limits.
A linear move fails but the same target in joint mode worksThe straight line crosses a singularity; joint interpolation does not invert anything.
Axes 4 and 6 spin fast in opposite directionsWrist singularity: the two axes cancel each other.
Vibration, noise, hot motorsLarge high-frequency joint corrections to hold a tiny tool error.

Key terms

  • inverse Jacobian
  • static model
  • joint torque
  • duality
  • speed limit
Check yourself
  1. A 500 N load pulls along the axis of the stretched arm of the example. What torques do the motors supply?

    Zero: τ = Jᵀ F, and Fx is multiplied by 0. The bones carry the load.

  2. In the example table, why does the elbow motor need 290 rpm at θ₂ = 1° for a tool moving at 0.1 m/s?

    Because to move the tool along an almost stretched arm, the elbow has to bend, and bending moves the tool along the arm only very slowly (by a second-order effect). The inverse Jacobian is divided by sin θ₂.

  3. Why is a MoveJ (joint interpolation) able to cross a singularity that stops a MoveL?

    It interpolates the joint values directly and never computes the inverse Jacobian.

6

Orientation singularities: gimbal lock

12 min
You will learn

why Euler and Cardan angles have a singularity, how it differs from a robot singularity, and what to use instead.

So far the singularity was in the robot. There is another one in the maths we use to write an orientation with three angles. It has the same bad effects on the controller, so it is worth knowing both.

6.1 Three angles, one lost

Cardan angles (roll-pitch-yaw): rotate by α about z, then β about y, then γ about x (all in the fixed frame): R = Rz(α) Ry(β) Rx(γ). Take the pitch β = 90° and compute the product:

R = 0sin(γ − α)cos(γ − α)0cos(γ − α)−sin(γ − α)−100

The matrix depends only on γ − α. Whatever α and γ are, if their difference is the same, the orientation is the same. We have three angles but only two numbers matter: a degree of freedom has disappeared. This is gimbal lock.

The Apollo story

The inertial platform of the Apollo spacecraft was a real set of three gimbals. When the middle gimbal approached 90° the outer and inner axes lined up and the platform lost a direction: the crew had to avoid that zone and received a warning before reaching it. It is exactly the same maths as the matrix above.

6.2 Representation singularity versus robot singularity

The angular velocity ω of the tool is related to the rates of the three angles by a matrix E:

ωxωyωz = 0−sin αcos α cos β0cos αsin α cos β10−sin β α̇β̇γ̇ det E = −cos β

When β = ±90°, det E = 0: some angular velocities ω would need infinite rates α̇ and γ̇. The tool itself is perfectly fine; it is the way of writing its orientation that breaks. Engineers therefore distinguish two Jacobians: the geometric one (about ω, singular only when the robot is) and the analytical one (about the angle rates, which also inherits the singularity of E).

Robot singularityRepresentation singularity (gimbal lock)
Where?In the mechanism: depends on the joint values q.In the maths: depends on the chosen angles.
Is it physical?Yes: the tool really cannot move in some direction.No: the tool can turn freely, only the three numbers are ambiguous.
CureMove away, replan, redundancy (lessons 7-8).Change the representation: matrix or quaternion.

6.3 What to use instead

RepresentationNumbersSingular?Comment
Euler / Cardan angles3Yes (±90° for Cardan)Human friendly. Fine for display, bad for computing and interpolating.
Rotation matrix9NoEverything works; 9 numbers with 6 constraints.
Axis and angle / rotation vector3-4At 0° and 180° it is ambiguousIntuitive; used for small rotations and errors.
Unit quaternion4Noq = (cos(θ/2), n sin(θ/2)). q and −q are the same rotation. Smooth interpolation (SLERP).
Remember
  • No set of three numbers can describe every orientation without a singularity (a mathematical fact about the rotation group). Four numbers (quaternion) or nine (matrix) can.
  • Controllers store orientations as quaternions or matrices and only convert to angles (ABC, RPY, WPR…) for the display and for the operator.
  • Never interpolate two orientations by interpolating their Euler angles.

Key terms

  • gimbal lock
  • Cardan / Euler angles
  • quaternion
  • geometric Jacobian
  • analytical Jacobian
  • SLERP
Check yourself
  1. For which value of the pitch β do the Cardan angles (rotations z, y, x) have a singularity?

    β = ±90° (cos β = 0). Then only γ − α (or γ + α) is defined.

  2. Is gimbal lock a defect of the robot?

    No. It is a defect of the three-angle description. The same tool orientation can be written with a quaternion without any problem.

  3. Why can a drone or a camera “flip” when it looks straight up if its attitude is stored as Euler angles?

    Looking straight up is the pitch = 90° singularity: yaw and roll become the same rotation and the angles jump.

Euler and Cardan angles in the Master-level course →

7

Redundancy and the null space

12 min
You will learn

why robots with extra joints are good at avoiding singularities, and how to use the extra freedom.

7.1 More joints than needed

A robot is redundant when it has more joints (n) than the task needs (m). Examples: a planar arm with 3 joints positioning a point in the plane (n = 3, m = 2); a 7-axis arm (KUKA iiwa, Franka Panda) for a 6-DOF task; your own arm (7 joints from the shoulder to the wrist) holding a glass: you can move the elbow freely while the glass stays still.

The Jacobian is no longer square: it has m rows and n > m columns. The system ẋ = J q̇ has infinitely many solutions.

7.2 The null space

New word

Null space of J: all the joint velocities q̇ such that J q̇ = 0. They move the joints but not the tool. Also called self-motion: the elbow of a 7-axis arm turning around the line shoulder–wrist is the textbook example.

Worked example: 3 joints, 2 tasks

Suppose that at some pose the Jacobian is:

J = 101011

The vector (1, 1, −1) is in the null space: J·(1, 1, −1) = (1 + 0 − 1 ; 0 + 1 − 1) = (0 ; 0). To obtain the tool velocity ẋ = (1 ; 0), the pseudo-inverse J+ = JT(J JT)−1 gives q̇ = (2/3 ; −1/3 ; 1/3): check J q̇ = (2/3 + 1/3 ; −1/3 + 1/3) = (1 ; 0). It is the solution with the smallest norm. All the other solutions are q̇ = (2/3 ; −1/3 ; 1/3) + k·(1 ; 1 ; −1), for any number k.

7.3 Using the freedom

q̇ = J+ ẋ + (I − J+J) z

The first term does the main task (the tool). The matrix (I − J+J) projects any vector z into the null space, so the second term can only move the joints, never the tool. Choose z to optimise a secondary criterion:

  • move away from the singularities (increase the manipulability w: z = k·∇w);
  • stay away from the joint limits (keep each joint near the middle of its range);
  • avoid obstacles with the elbow while the hand keeps working;
  • minimise energy, or share the load between joints.

7.4 Redundancy and singularities

A redundant robot is singular when rank J < m, that is det(J JT) = 0. This is a rarer event: the robot has many ways to reach the same tool pose, and if one of them is singular it can change the arm shape through the null space without disturbing the tool. A 7-axis arm can rotate its elbow to escape a shoulder or an elbow singularity. Only the singularities that lose a tool direction whatever the arm shape (typically a fully stretched arm) cannot be fixed.

AdvantagesDrawbacks
Escapes singularities, avoids obstacles and joint limitsOne more joint: more cost, mass and cabling
Tolerates a locked or failed joint (fault tolerance)Inverse kinematics needs an optimisation (no simple closed form)
Natural for human-like tasks (hand guiding, dual-arm)The extra motion must be controlled (the elbow can drift)
Task redundancy

A robot can also be redundant for one task without having extra joints. A welding torch or a drill is symmetric about its own axis, so its rotation about that axis does not matter: the task has only 5 DOF and a 6-axis robot has one free degree. That free degree is precisely how programmers move the tool away from a wrist singularity.

Key terms

  • redundant robot
  • null space
  • self-motion
  • pseudo-inverse
  • secondary task
  • task redundancy
Check yourself
  1. How many redundant degrees of freedom does a 7-axis arm have for a task that fixes the position and orientation of the tool?

    One: 7 − 6 = 1. It is the rotation of the elbow around the line shoulder–wrist.

  2. A Jacobian has 2 rows, 3 columns and rank 2. What is the dimension of its null space?

    3 − 2 = 1: there is a one-dimensional family of self-motions.

  3. Why is a welding torch (rotation about its axis is free) helpful to avoid a wrist singularity?

    Because the programmer can choose the rotation about the torch axis, and with it choose a wrist posture whose q5 is far from 0.

8

Living with singularities: detect, avoid, tame

14 min
You will learn

the toolbox of professionals, from the design of the cell to the damped inverse, and the singularities of parallel robots.

You cannot remove singularities of a given robot, but you can detect them, avoid them, or tame them. Professionals use all three, in this order.

8.1 Detect

Compute at each control step a distance measure (lesson 4): the manipulability w, the smallest singular value σmin, or simply the key joint angles (q5 for a wrist, q3 for an elbow). Set a threshold, for example “warn when w falls under 10 % of its maximum” and “slow down under 3 %”. Simulation tools draw this as a colour map of the workspace: green far from singularities, red close.

8.2 Avoid: by design and by programming

WhenWhat to do
Designing the cellPlace the robot and the workpiece so that the work zone is in the well-conditioned middle of the workspace: not at full reach, not above the base, not with the tool in line with the forearm. Simulate the paths before building.
Choosing tool and mountTilt the tool by 10-20° with respect to the forearm axis so that q5 never reaches 0. For a symmetric tool (torch, drill) this costs nothing.
Choosing the robotPick a 7-axis robot if the task cannot avoid the problem; or a robot whose workspace singularities fall outside the useful volume.
ProgrammingCross the dangerous zone with a joint move (MoveJ, PTP): no inversion, so no explosion. Use via points to change the arm configuration before a long linear move. Split a path that crosses a singularity in two.
Controller optionsMany controllers can accept a small deviation of the tool orientation to pass a wrist singularity (for example ABB SingArea \Wrist, FANUC wrist-joint motion option). The tool position stays on the path.

8.3 Tame: the damped inverse

If the robot must go through a poorly conditioned zone, replace the exact inverse by the damped least squares (Wampler, Nakamura and Hanafusa):

q̇ = JT (J JT + λ2 I)−1 ẋ

It solves a compromise: make the tool error small and keep the joint speeds small, with λ setting the balance. Far from a singularity (σ ≫ λ) it gives the same answer as the exact inverse. Near it the joint speeds stay finite, at the price of a small tool error in the lost direction: the robot slows down instead of racing. A common refinement raises λ only when needed: λ2 = λ02(1 − (w/w0)2) for w < w0, and 0 otherwise.

Two other taming tools: speed scaling (slow the whole path down so that no joint exceeds its limit; the path is kept, only the time changes) and task prioritisation (the position keeps the priority, the orientation is allowed to drift a little).

8.4 Parallel robots: three kinds of singularity

For a parallel robot (Delta, Stewart platform) the velocity relation is written A ẋ = B q̇, with x the platform and q the motors. Gosselin and Angeles named three cases:

TypeConditionConsequenceWhere?
Inverse kinematic (type 1)det B = 0The motors can no longer move the platform in some direction (like a stretched serial arm).Edge of the workspace.
Direct kinematic (type 2)det A = 0The platform can move with all motors locked: it gains an uncontrolled freedom and loses stiffness. Dangerous.Inside the workspace.
Combined (type 3)det A = det B = 0Both at once: only in special architectures.Special geometries.

This is a mirror of the serial case: for a serial robot the singular pose loses a tool direction (type 1); a parallel robot has this problem and the opposite one. That is why a parallel robot is always designed together with a map of its singularity-free workspace, and why the useful volume of a Delta robot is a small dome compared with the size of its frame.

See a Stewart platform in 3D: change its pose and watch the six leg lengths →

8.5 The cheat sheet

SymptomProbable causeFirst fix
Joint speed alarm in a straight lineArm almost stretched or tool over the baseMove the work zone closer; add a via point
Axes 4 and 6 spin oppositeWrist singularity (q5 ≈ 0)Tilt the tool; use the wrist option of the controller
Orientation angles jumpGimbal lock of the representationUse quaternions / matrices inside
Platform wobbles with motors lockedDirect singularity of a parallel robotStay inside the singularity-free workspace
Elbow-shaped solutions flipCrossing the boundary between two aspectsChoose the aspect before the move; do not cross

Key terms

  • damped least squares
  • speed scaling
  • MoveJ / MoveL
  • direct kinematic singularity
  • inverse kinematic singularity
  • singularity-free workspace
Check yourself
  1. Which kind of move can cross a singularity without trouble: a joint move (MoveJ) or a linear move (MoveL)?

    The joint move: it interpolates the joint values and never inverts the Jacobian.

  2. What does a larger λ do in the damped inverse?

    It reduces the joint speeds (safer) but increases the tool error in the poorly conditioned direction.

  3. The platform of a Stewart robot moves although all six actuators are locked. Which singularity is it?

    A direct kinematic singularity (type 2, det A = 0). It is inside the workspace and loses stiffness.

Singularities and workspace of the Delta robot →

Glossary

All the words of the course in one place.

TermMeaning
JacobianThe matrix J(q) that turns joint speeds into tool speeds: ẋ = J q̇.
SingularityA pose where J loses rank: the tool cannot move in at least one direction, whatever the joint speeds.
RankThe number of independent directions that J can produce.
Boundary singularityA singularity at the edge of the workspace (arm stretched or folded).
Internal singularityA singularity inside the workspace (shoulder, wrist): the most dangerous, because the robot can reach it while working.
Manipulabilityw = √det(J Jᵀ): a number that is zero at a singularity and large far from it.
Singular valuesThe lengths σᵢ of the axes of the manipulability ellipsoid.
Condition numberκ = σmax / σmin: 1 is perfect, a huge value means “almost singular”.
Pseudo-inverseJ⁺ = Jᵀ(J Jᵀ)⁻¹: the inverse for a redundant robot, which gives the smallest joint speeds.
Damped least squaresAn inverse with a small penalty λ that keeps joint speeds finite near a singularity.
Null spaceJoint motions that do not move the tool (J q̇ = 0): the “self-motion” of a redundant robot.
Redundant robotA robot with more joints than the task needs (for example 7 axes for a 6-DOF task).
Gimbal lockSingularity of the Euler / Cardan angles: two rotation axes line up and one degree of freedom disappears.
QuaternionFour numbers that describe an orientation without any singularity.
Wrist singularityJoint 5 = 0 on a spherical wrist: axes 4 and 6 are aligned.
Direct / inverse kinematic singularityParallel robots: the platform moves with locked motors (direct), or the motors cannot move the platform (inverse).

You can now read a singularity like a pro!

Next step: dynamics, motors and control — what happens when the robot must actually follow the speeds you computed.

Go to dynamics and control → Back to the roadmap