Singularities and Manipulability
Learning Objectives
- Define a kinematic singularity as a loss of rank of the Jacobian, and test for it with the determinant when is square and with singular values otherwise.
- Find the singular configurations of a planar two-link arm and of a three-joint articulated arm, and classify them as boundary or interior.
- Show with a run how joint velocities grow near a singularity, and predict their size from the smallest singular value.
- Define Yoshikawa's manipulability measure, compute it for square, wide and tall Jacobians, and say what it does not capture.
- Describe what damped least squares buys and what it costs.
Context & Motivation
velocity-kinematics-and-the-jacobian built the matrix that turns joint rates into tool velocity, . A controller usually needs the opposite direction: the task says how the tool should move, and the controller computes the joint rates, for a square invertible by . inverse-kinematics-and-workspace already met the trouble spot from the iteration side: at the stretched arm, and Newton's method could not take a step. This lesson looks at the same configurations from the velocity side. What exactly is lost there, how large do the joint rates get nearby, and how can "nearby" be measured with one number?
Core Theory
Singular means rank-deficient
Let be , mapping joint rates to task velocities. A configuration is singular when drops below its largest value over all configurations, which is for an arm that is not deficient everywhere. At such a point two things happen together. Some task direction leaves the range of , so no joint motion produces tool motion that way. And the null space grows, so some joint motion produces no tool motion.
For square , rank loss is . For a non-square there is no determinant, and the general tool is the singular value decomposition , with . The rank is the number of nonzero , and the smallest one says how close the configuration is to losing a direction. In floating point "zero" means "below a tolerance", which is what numpy.linalg.matrix_rank applies.
What happens near a singularity
Near, but not at, a singularity of a square , exists and
with equality when points along the left singular vector of . So the joint rates do not blow up for every task velocity: only the component along the direction that is being lost gets amplified, by . Task velocities that stay inside the surviving directions remain cheap.
Two arms, their singular sets
For the planar two-link arm, : singular when the arm is stretched () or folded (). Both lie on the workspace boundary, where inverse-kinematics-and-workspace found a single solution instead of two.
For the articulated arm of the-denavit-hartenberg-convention, with position Jacobian (),
where is the horizontal distance from the tip to the base axis. The factor is the elbow singularity, stretched or folded forearm, again on the boundary. The factor is the shoulder singularity: the tip on the vertical axis of joint 1. That one lies inside the workspace, so a straight-line task can run right through it.
Yoshikawa's manipulability measure
A unit ball of joint rates, , maps under to an ellipsoid of task velocities with semi-axes along the left singular vectors. Modern Robotics calls it the manipulability ellipsoid and, for a task space of dimension , measures its volume with
which it lists as and says is proportional to the ellipsoid's volume. Its notes credit Yoshikawa (1985, International Journal of Robotics Research) with the first quantitative formulation of manipulability, and the Robotics Toolbox for Python implements this volume as its default "yoshikawa" method, described as a "distance from singularity". Properties that follow from the definition:
- , and exactly at a singularity.
- For square , .
- For wide (, a redundant arm), is and the formula works as written.
- For tall (), is with rank at most , so at every configuration and the formula carries no information. The usual way out is to apply it to the rows the task cares about, for example alone. Modern Robotics separates the linear and angular ellipsoids for a related reason: the units differ. The Robotics Toolbox offers the same choice through an
axesargument and warns that using all rows "involves adding different units". - has units (m² for a planar position Jacobian), so its value changes with the unit of length, and comparing across robots of different size compares sizes as much as dexterity.
Other one-number measures look at shape rather than volume. Modern Robotics uses , which is 1 for a round ellipsoid and grows toward a singularity. Murray, Li and Sastry list and , and warn that the determinant can be large even when is small, because a large compensates. The two books use the symbols , , for different quantities.
Worked Examples
Assumed values: two-link arm m, m; articulated arm m, m, m. Velocities in m/s, joint rates in rad/s.
Example 1: approaching the stretched arm
Move the tip of the two-link arm radially outward along the axis at m/s toward the boundary at m, and compare with the same speed tangentially. Joint rates from on the branch:
textr (m) theta2 (deg) sigma_min |qdot| radial |qdot| tangential 1.0 107.46 0.559 0.089 0.050 1.5 42.13 0.252 0.198 0.033 1.59 13.24 0.081 0.618 0.031 1.599 4.18 0.026 1.95 0.031 1.5999 1.32 0.0081 6.17 0.031 1.59999 0.42 0.0026 19.5 0.031
Each tenfold step toward the boundary multiplies the radial joint rate by about . Differentiating explains it: , which gives rad/s at , and shrinks like the square root of the distance to the boundary. The tangential rate, meanwhile, settles at rad/s: moving along the boundary circle needs only joint 1, and that direction is never lost.
Example 2: a straight line past the shoulder singularity
Command the articulated arm's tip along the line m for s, a constant m/s along that passes at horizontal distance from the base axis at s. The run integrates with the classic fourth-order Runge-Kutta method at fixed step , starting from the exact inverse kinematics on the branch.
texth (m) peak |theta1_dot| at t (s) min |det Jv| max tracking error (dt = 1e-3 or 1e-4 s) 0.05 2.000 2.000 3.9e-03 below 1e-12 m 0.01 10.000 2.000 7.6e-04 below 1e-12 m 0.001 100.00 2.000 7.6e-05 below 1e-9 m
The peak is exactly . Joint 1 is the base yaw , so , which at is . At that instant the other two joints are still: for . Over the whole pass turns from to , and of that happens while the tip covers the around the axis. For mm that is in s, for a tool moving at only m/s. The integration is not the problem: the tracking error stays near rounding level, whose exact digits depend on the implementation. The motor is the problem. If the base joint is limited to, say, 3 rad/s (an assumed figure), this path is infeasible for m.
Example 3: damped least squares, and its price
Damped least squares replaces by . In singular-value terms each gain becomes , which is at most , so the joint rates stay bounded. The price is that the commanded tool velocity is no longer met exactly. Rerun Example 2 at mm with s and position feedback, with :
textlambda (m) peak joint rate (rad/s) max tracking error (mm) final theta (deg) 0 100.0 < 0.001 (0.3, 98.1, -145.6) 0.001 50.3 2.2 (0.3, 98.1, -145.6) 0.003 7.0 1.75 (180.3, 188.1, -145.6) 0.01 1.12 1.58 (180.3, 188.1, -145.6) 0.03 0.51 1.53 (180.3, 188.1, -145.6)
The peak joint rate is the largest rate of any single joint; the norm of at its peak agrees with it to within 0.02 rad/s in the first three rows and is and rad/s in the last two. A damping of 1 cm cuts the fastest joint's peak by a factor of 90 for a deviation of 1.6 mm near the axis, and the feedback pulls the error back to mm by the end. The last column shows a side effect. Without enough damping the base spins through about . With mm the arm instead reaches back over the base axis, passing , and finishes on the other shoulder branch with the same tool position. Whether that is acceptable depends on joint limits and on what is around the robot.
Example 4: manipulability of the two-link arm
texttheta2 (deg) w (m^2) sigma_1 sigma_2 mu1 = sigma_1/sigma_2 90 0.600 1.215 0.494 2.46 120 0.520 0.877 0.593 1.48 135 0.424 0.732 0.580 1.26 45 0.424 1.580 0.269 5.88 10 0.104 1.702 0.061 27.8 1 0.0105 1.709 0.0061 279
Here , which does not depend on (at it is both for and for rad) and is largest at . But the roundest ellipse is elsewhere: a sweep of puts the minimum at , where is about 28 percent lower. And and have the same with against : equal volume, very different shape, the limitation Murray, Li and Sastry point out. In millimetres, the at reads mm².
Example 5: wide and tall Jacobians
Wide. The planar three-link arm with lengths , , m, tracking only the tip position, has a . There is no determinant, but is defined:
textq (deg) rank sigma w (m^2) (0, 0, 0) 1 (2.124, 0) 0 (0, 180, 0) 1 (0.954, 0) 0 (0, 90, -90) 2 (1.554, 0.420) 0.652 (0, 90, 0) 2 (1.524, 0.623) 0.949
The rank drops only when the three columns are parallel, which needs the base, both joints and the tip on one line. Because , almost every posture is regular, and the extra joint can be used to keep high.
Tall. The articulated arm's full geometric Jacobian at has singular values , so it has full rank 3, yet evaluates to a number of order , zero up to rounding, as it must for a matrix of rank 3. Applied to the position rows, m³, matching . The angular rows have rank 2 at every configuration (joints 2 and 3 have parallel axes), so this arm can never control all three components of its tool's spin, and a measure on the angular rows alone would be zero everywhere: a permanent deficiency, not proximity to a singularity. Mixing rows also mixes units: expressing the linear rows in mm changes the product of the six-row singular values from to .
Common Misconceptions & Pitfalls
- "At a singularity every joint rate blows up." Only the component along the lost direction does. In Example 1 the tangential motion needed rad/s right at the boundary.
- "Singularities live on the workspace boundary." The shoulder singularity of Example 2 is interior, and a straight line runs through it.
- " is the test." Only for square . For wide or tall , use the rank and the singular values.
- "Maximizing makes the arm isotropic." In Example 4, peaked at , while the roundest ellipse was at .
- "Yoshikawa's measure works for any Jacobian." For a tall it is identically zero. Apply it to the task rows.
- " is good." Only relative to the same robot, units and rows. In mm the same posture gives .
- "Damping fixes singularities for free." It trades joint speed for tracking error, and in Example 3 it also changed the arm's configuration branch.
Summary
A singularity is a configuration where the Jacobian loses rank: some tool direction becomes impossible and some joint motion becomes invisible. Square Jacobians signal it with , all Jacobians with a vanishing singular value. Near one, the joint rate needed for a task velocity grows like for the component along the lost direction, as the radial approach of Example 1 showed, while other directions stay cheap. Some singularities are interior: a line passing from the articulated arm's base axis demanded exactly from the base joint, 100 rad/s at mm. Yoshikawa's measure is the volume of the velocity ellipsoid, equal to for square , defined for wide , and identically zero for tall unless restricted to the task rows. It vanishes at singularities but says nothing about the ellipsoid's shape and depends on units. Damped least squares bounds the joint rates at the cost of tracking error and, sometimes, a different configuration.