Singularities and Manipulability

Published on 2026-11-04·v1.0

Learning Objectives

  • Define a kinematic singularity as a loss of rank of the Jacobian, and test for it with the determinant when JJ 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, x˙=J(q)q˙\dot{\mathbf x}=J(\mathbf q)\dot{\mathbf q}. 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 JJ by q˙=J−1x˙\dot{\mathbf q}=J^{-1}\dot{\mathbf x}. inverse-kinematics-and-workspace already met the trouble spot from the iteration side: at the stretched arm, det⁡J=0\det J=0 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 JJ be m×nm\times n, mapping nn joint rates to mm task velocities. A configuration is singular when rank⁡J(q)\operatorname{rank}J(\mathbf q) drops below its largest value over all configurations, which is min⁡(m,n)\min(m,n) for an arm that is not deficient everywhere. At such a point two things happen together. Some task direction leaves the range of JJ, so no joint motion produces tool motion that way. And the null space grows, so some joint motion produces no tool motion.

For square JJ, rank loss is det⁡J=0\det J=0. For a non-square JJ there is no determinant, and the general tool is the singular value decomposition J=UΣVTJ=U\Sigma V^T, with σ1≥⋯≥σmin⁡(m,n)≥0\sigma_1\ge\dots\ge\sigma_{\min(m,n)}\ge0. The rank is the number of nonzero σi\sigma_i, 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 JJ, J−1J^{-1} exists and

∥q˙∥=∥J−1x˙∥≤∥x˙∥σmin⁡,\lVert\dot{\mathbf q}\rVert=\lVert J^{-1}\dot{\mathbf x}\rVert\le\frac{\lVert\dot{\mathbf x}\rVert}{\sigma_{\min}},

with equality when x˙\dot{\mathbf x} points along the left singular vector of σmin⁡\sigma_{\min}. 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 1/σmin⁡1/\sigma_{\min}. Task velocities that stay inside the surviving directions remain cheap.

Two arms, their singular sets

For the planar two-link arm, det⁡J=L1L2sin⁡θ2\det J=L_1L_2\sin\theta_2: singular when the arm is stretched (θ2=0\theta_2=0) or folded (θ2=π\theta_2=\pi). 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 JvJ_v (3×33\times3),

det⁡Jv=−a2a3sin⁡θ3 (a2cos⁡θ2+a3cos⁡(θ2+θ3))=−a2a3sin⁡θ3  r,\det J_v=-a_2a_3\sin\theta_3\,\big(a_2\cos\theta_2+a_3\cos(\theta_2+\theta_3)\big)=-a_2a_3\sin\theta_3\;r,

where rr is the horizontal distance from the tip to the base axis. The factor sin⁡θ3\sin\theta_3 is the elbow singularity, stretched or folded forearm, again on the boundary. The factor rr 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, ∥q˙∥≤1\lVert\dot{\mathbf q}\rVert\le1, maps under JJ to an ellipsoid of task velocities with semi-axes σi\sigma_i along the left singular vectors. Modern Robotics calls it the manipulability ellipsoid and, for a task space of dimension m≤nm\le n, measures its volume with

w(q)=det⁡(J(q) J(q)T)=σ1σ2⋯σm,w(\mathbf q)=\sqrt{\det\big(J(\mathbf q)\,J(\mathbf q)^T\big)}=\sigma_1\sigma_2\cdots\sigma_m,

which it lists as μ3\mu_3 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:

  • w≥0w\ge0, and w=0w=0 exactly at a singularity.
  • For square JJ, w=∣det⁡J∣w=\lvert\det J\rvert.
  • For wide JJ (m<nm<n, a redundant arm), JJTJJ^T is m×mm\times m and the formula works as written.
  • For tall JJ (m>nm>n), JJTJJ^T is m×mm\times m with rank at most n<mn<m, so w=0w=0 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 JvJ_v 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 axes argument and warns that using all rows "involves adding different units".
  • ww has units (m² for a planar position Jacobian), so its value changes with the unit of length, and comparing ww across robots of different size compares sizes as much as dexterity.

Other one-number measures look at shape rather than volume. Modern Robotics uses μ1=σmax⁡/σmin⁡\mu_1=\sigma_{\max}/\sigma_{\min}, which is 1 for a round ellipsoid and grows toward a singularity. Murray, Li and Sastry list σmin⁡\sigma_{\min} and σmin⁡/σmax⁡\sigma_{\min}/\sigma_{\max}, and warn that the determinant can be large even when σmin⁡\sigma_{\min} is small, because a large σmax⁡\sigma_{\max} compensates. The two books use the symbols μ1\mu_1, μ2\mu_2, μ3\mu_3 for different quantities.

Worked Examples

Assumed values: two-link arm L1=1.0L_1=1.0 m, L2=0.6L_2=0.6 m; articulated arm d1=0.4d_1=0.4 m, a2=0.5a_2=0.5 m, a3=0.4a_3=0.4 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 xx axis at 0.050.05 m/s toward the boundary at r=1.6r=1.6 m, and compare with the same speed tangentially. Joint rates from q˙=J−1x˙\dot{\mathbf q}=J^{-1}\dot{\mathbf x} on the θ2>0\theta_2>0 branch:

text
r (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 10\sqrt{10}. Differentiating r2=L12+L22+2L1L2cos⁡θ2r^2=L_1^2+L_2^2+2L_1L_2\cos\theta_2 explains it: θ˙2=−rr˙/(L1L2sin⁡θ2)\dot\theta_2=-r\dot r/(L_1L_2\sin\theta_2), which gives −1.826-1.826 rad/s at r=1.599r=1.599, and sin⁡θ2\sin\theta_2 shrinks like the square root of the distance to the boundary. The tangential rate, meanwhile, settles at 0.05/1.6=0.0310.05/1.6=0.031 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 p(t)=(−0.2+0.1t, h, 0.6)\mathbf p(t)=(-0.2+0.1t,\ h,\ 0.6) m for 0≤t≤40\le t\le4 s, a constant 0.10.1 m/s along xx that passes at horizontal distance hh from the base axis at t=2t=2 s. The run integrates q˙=Jv−1p˙\dot{\mathbf q}=J_v^{-1}\dot{\mathbf p} with the classic fourth-order Runge-Kutta method at fixed step Δt\Delta t, starting from the exact inverse kinematics on the θ3<0\theta_3<0 branch.

text
h (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 v/hv/h. Joint 1 is the base yaw θ1=atan2⁡(y,x)\theta_1=\operatorname{atan2}(y,x), so θ˙1=(xy˙−yx˙)/(x2+y2)\dot\theta_1=(x\dot y-y\dot x)/(x^2+y^2), which at x=0x=0 is −v/h-v/h. At that instant the other two joints are still: q˙=(−10,0,0)\dot{\mathbf q}=(-10,0,0) for h=0.01h=0.01. Over the whole pass θ1\theta_1 turns from 177.1∘177.1^\circ to 2.9∘2.9^\circ, and 157∘157^\circ of that happens while the tip covers the 10h10h around the axis. For h=1h=1 mm that is 157∘157^\circ in 0.10.1 s, for a tool moving at only 0.10.1 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 h<0.033h<0.033 m.

Example 3: damped least squares, and its price

Damped least squares replaces J−1J^{-1} by JT(JJT+λ2I)−1J^T(JJ^T+\lambda^2I)^{-1}. In singular-value terms each gain 1/σi1/\sigma_i becomes σi/(σi2+λ2)\sigma_i/(\sigma_i^2+\lambda^2), which is at most 1/(2λ)1/(2\lambda), so the joint rates stay bounded. The price is that the commanded tool velocity is no longer met exactly. Rerun Example 2 at h=1h=1 mm with Δt=10−4\Delta t=10^{-4} s and position feedback, q˙=JT(JJT+λ2I)−1(p˙d+Ke)\dot{\mathbf q}=J^T(JJ^T+\lambda^2I)^{-1}(\dot{\mathbf p}_d+K\mathbf e) with K=10 s−1K=10\ \text{s}^{-1}:

text
lambda (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 q˙\dot{\mathbf q} at its peak agrees with it to within 0.02 rad/s in the first three rows and is 1.231.23 and 0.570.57 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 0.0110.011 mm by the end. The last column shows a side effect. Without enough damping the base spins through about 177∘177^\circ. With λ≥3\lambda\ge3 mm the arm instead reaches back over the base axis, θ2\theta_2 passing 180∘180^\circ, 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

text
theta2 (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 w=∣det⁡J∣=0.6∣sin⁡θ2∣w=\lvert\det J\rvert=0.6\lvert\sin\theta_2\rvert, which does not depend on θ1\theta_1 (at θ2=60∘\theta_2=60^\circ it is 0.51960.5196 both for θ1=0\theta_1=0 and for θ1=1\theta_1=1 rad) and is largest at θ2=±90∘\theta_2=\pm90^\circ. But the roundest ellipse is elsewhere: a sweep of θ2\theta_2 puts the minimum μ1=1.260\mu_1=1.260 at θ2≈134.2∘\theta_2\approx134.2^\circ, where ww is about 28 percent lower. And θ2=45∘\theta_2=45^\circ and 135∘135^\circ have the same w=0.424w=0.424 with μ1=5.88\mu_1=5.88 against 1.261.26: equal volume, very different shape, the limitation Murray, Li and Sastry point out. In millimetres, the ww at 90∘90^\circ reads 6.0×1056.0\times10^5 mm².

Example 5: wide and tall Jacobians

Wide. The planar three-link arm with lengths 1.01.0, 0.60.6, 0.30.3 m, tracking only the tip position, has a 2×32\times3 JJ. There is no determinant, but w=det⁡JJTw=\sqrt{\det JJ^T} is defined:

text
q (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 n>mn>m, almost every posture is regular, and the extra joint can be used to keep ww high.

Tall. The articulated arm's full 6×36\times3 geometric Jacobian at (30∘,45∘,−60∘)(30^\circ,45^\circ,-60^\circ) has singular values (1.633,1.244,0.324)(1.633,1.244,0.324), so it has full rank 3, yet det⁡(JJT)\det(JJ^T) evaluates to a number of order 10−5010^{-50}, zero up to rounding, as it must for a 6×66\times6 matrix of rank 3. Applied to the position rows, wv=∣det⁡Jv∣=0.128w_v=\lvert\det J_v\rvert=0.128 m³, matching a2a3∣sin⁡θ3∣ r=0.5⋅0.4⋅0.866⋅0.7399a_2a_3\lvert\sin\theta_3\rvert\,r=0.5\cdot0.4\cdot0.866\cdot0.7399. 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 0.6580.658 to 1.28×1081.28\times10^8.

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 0.0310.031 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.
  • "det⁡J=0\det J=0 is the test." Only for square JJ. For wide or tall JJ, use the rank and the singular values.
  • "Maximizing ww makes the arm isotropic." In Example 4, ww peaked at 90∘90^\circ, while the roundest ellipse was at 134∘134^\circ.
  • "Yoshikawa's measure works for any Jacobian." For a tall JJ it is identically zero. Apply it to the task rows.
  • "w=0.6w=0.6 is good." Only relative to the same robot, units and rows. In mm the same posture gives 6×1056\times10^5.
  • "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 det⁡J=0\det J=0, all Jacobians with a vanishing singular value. Near one, the joint rate needed for a task velocity grows like 1/σmin⁡1/\sigma_{\min} 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 hh from the articulated arm's base axis demanded exactly v/hv/h from the base joint, 100 rad/s at h=1h=1 mm. Yoshikawa's measure w=det⁡JJTw=\sqrt{\det JJ^T} is the volume of the velocity ellipsoid, equal to ∣det⁡J∣\lvert\det J\rvert for square JJ, defined for wide JJ, and identically zero for tall JJ 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.

Documentation Links