Singularity Handling: The Four-Layer Conditioning Cascade

Last updated: 2026-06-22

Overview

Singularity handling for the coordinated free-flying controller is a single, scheduled
four-layer cascade built on one scalar, the minimum singular value of the coordinate
transform (notation.md).
Because is singular exactly where its lower-right block
is — the two minimum singular values track with Spearman rank
correlation — the same schedules every layer, and all four ultimately
diverge through the shared factor
(dynamic_singularity; current_sota §6).

The four layers, ordered by the floor at which each engages
(singularity_threshold_cascade):

  1. Tikhonov regularization — a squared, variable damping on the
    generalized-velocity normal equations.
  2. Impedance derate — an emergent slowdown that scales the gains, not the command.
  3. Damped inverse (three-tier) — undamped → damped-least-squares → hold-last.
  4. Hold-last (freeze) — below the honesty floor, the and
    inverses are frozen at their last well-conditioned value.

The intellectual spine is the amplification bound. From the SVD
, reconstructing the
generalized velocity amplifies each task
component by , so for a commanded task speed ,

\boldsymbol{x}=\sum_i \frac{\boldsymbol{u}_i^\top\boldsymbol{z}}{s_i}\,\boldsymbol{v}_i \;\Rightarrow\; \lVert\boldsymbol{x}\rVert \le \frac{v}{\sigma_{\min}(\boldsymbol{\Gamma})} \;\Leftrightarrow\; \sigma_{\min}(\boldsymbol{\Gamma}) \le \frac{v}{\lVert\boldsymbol{x}\rVert}. \tag{current_sota eq 6.1}

Inverting this bound at the actuator rate limit produces a velocity currency threaded
through three thresholds: (full-speed budget),
(floored-speed budget exhausted → switch to
damping), and (damped-gain peak → freezing is the honest move)
(current_sota eqs 6.2; §6.1). The cascade design is ours; the damped-least-squares machinery
of layers 1 and 3 descends from chiaverini1997singularity
(fixed-base, redundant manipulator — neither free-flying nor free-floating).

Free-flying vs free-floating (load-bearing)

The object that goes singular here is the circumcentroidal Jacobian
inside the coordinate transform — a
free-flying construct in which is a commanded input. It is not
the free-floating generalized Jacobian (GJM, Umetani 1989) whose rank loss is the classical
dynamic singularity, and the cascade is about kinematic-reconstruction conditioning, not
momentum conservation. Sources that supply singularity maps / avoidance
(calzolari2020singularity, nanos2015avoiding,
papadopoulos1993dynamic) assume a free-floating base; their loci must be re-derived for our
actuated base.

Key Claims

Claim 1 — A single scalar schedules all four layers

exists iff (its lower-right block) is
nonsingular, so the two go singular together; empirically
.
A single proximity scalar therefore suffices to switch every layer on and off, and the
hazard has one analytic root — the shared factor.
Source support: current_sota §6 (final.tex §7); see
singularity_threshold_cascade and
dynamic_singularity. Caveat: the link is
empirical, not proven (open).

Claim 2 — Layer 1: Tikhonov regularization (squared variable damping)

The generalized velocity is recovered from the regularized normal equations with a constant
isotropic floor :

\dot{\boldsymbol{q}}=\big(\boldsymbol{\Gamma}^\top\boldsymbol{\Gamma}+\lambda_\Gamma\boldsymbol{I}\big)^{-1}\boldsymbol{\Gamma}^\top\boldsymbol{y}, \qquad \lambda_\Gamma=\max\!\big(\beta^2,\ \sigma_{\mathrm{crit},1}^2-\sigma_G^2\big). \tag{current_sota eq 6.3}

The damping is squared — added to , whose
eigenvalues are the squared singular values — and switches on once
(Chiaverini-style variable damping in the
singular region). Source support: current_sota §6.2 (final.tex eq gamma-solve);
chiaverini1997singularity for the variable-damping form;
topics damped_least_squares,
singularity_robust_inverse.

Claim 3 (KEY) — Layer 2: impedance derate scales the GAINS, not the command

A derate ramp slows the system as it nears the
singular set:

\gamma(\sigma_G)= \begin{cases} \sigma_{\mathrm{crit},1} & \sigma_G\le\sigma_{\mathrm{crit},2},\\[4pt] 1 & \sigma_G\ge\sigma_{\mathrm{crit},1},\\[4pt] \sigma_{\mathrm{crit},1}+(1-\sigma_{\mathrm{crit},1})\dfrac{\sigma_G-\sigma_{\mathrm{crit},2}}{\sigma_{\mathrm{crit},1}-\sigma_{\mathrm{crit},2}} & \text{otherwise.} \end{cases} \tag{current_sota eq 6.4}

Crucially multiplies the control gains and base wrench, not the velocity command:
and
. This is the load-bearing
distinction. Softening relocates the cruise-lag equilibrium: the
steady-state pose error floor

(current_sota eq 4.14) carries a factor, so scaling the stiffness by
scales the lag as
under a -invariant restoring wrench. The arm therefore goes slack — it tolerates a
larger lag rather than driving harder toward the dying direction — and the slowdown is
emergent: it falls out of the relocated equilibrium, it is never commanded. This holds
(observed ). Source support: current_sota §6.3 (final.tex
§7); steady_state_error_floor;
cartesian_impedance_control.

Claim 4 (KEY) — A literal SPEED derate cannot beat the bound and COLLAPSES the floor

Throttling the command itself, , is a different
operation
. It cannot beat the amplification bound (eq 6.1): lowering does not raise
, and the throttle’s pose-error growth over-extends the arm
toward the singular direction. The result is a collapsed error floor (observed ,
versus the impedance derate’s held floor). Hence the terminology is deliberately “impedance
derate,” not “speed derate.”
The two are easy to conflate and produce opposite outcomes — a known
failure mode worth flagging in any reimplementation. Source support: current_sota §6.3 (final.tex
§7); A/B comparison and derivation in the private report
generated_reports/math/derate_impedance_vs_speed.md (mirrored target:
math); see the cascade result
singularity_threshold_cascade.

Inconsistency / failure mode

“Impedance derate” (scale
by ) holds ; a “speed derate” (scale the command by
) collapses the floor. They share the symbol but are not interchangeable.

Claim 5 — Layers 3–4: three-tier damped inverse, then freeze

With the SVD , the
inverse is scheduled in three tiers and frozen below the honesty floor:

(\boldsymbol{J}^\oplus)^+= \begin{cases} \boldsymbol{V}\operatorname{diag}(1/s_i)\boldsymbol{U}^\top, & \sigma_G\ge\sigma_{\mathrm{crit},2}\ \text{(undamped)},\\[6pt] \boldsymbol{V}\operatorname{diag}\!\Big(\dfrac{s_i}{s_i^2+\lambda_J^2}\Big)\boldsymbol{U}^\top, & \sigma_{\mathrm{crit},3}\le\sigma_G<\sigma_{\mathrm{crit},2}\ \text{(damped)},\\[8pt] (\boldsymbol{J}^\oplus)^+_{\mathrm{last}}, & \sigma_G<\sigma_{\mathrm{crit},3}\ \text{(hold-last)}. \end{cases} \tag{current_sota eq 6.5}

The damped tier is the Chiaverini damped-least-squares gain , which peaks at
when ; below this, damping drives the dying
direction toward zero
, so hold-last (freeze) is the honest action — the
and inverses are frozen at their last well-conditioned value (the 7-DOF
extension additionally freezes the redundant self-motion / null-space direction below ,
where it swings violently). Source support: current_sota §6.4 (final.tex eq jplus-inverse);
singularity_robust_inverse,
damped_least_squares,
chiaverini1997singularity.

Claim 6 — Stability is asserted only on the singularity-free region

The coordinated control law’s Lyapunov stability (current_sota eqs 4.15–4.16) holds on
. The
cascade is precisely the machinery that keeps the trajectory inside (or honestly stalls it at the
boundary of) where the stability certificate is valid. Source support: current_sota §4.6;
coordinated_control_lyapunov_stability.

Tensions & Open Questions

  • Empirical, not proven, equivalence. The Spearman link between and
    justifies single-scalar scheduling, but an analytic
    bound across the full inertia-parameter envelope is open
    (singularity_threshold_cascade, Caveats).
  • Configuration-specific thresholds. and
    are tuned to the UR3 wrist rate
    () and the cruise; they must be re-derived for
    any other arm or speed.
  • Free-flying vs free-floating loci. Classical dynamic-singularity maps and avoidance results
    (calzolari2020singularity, nanos2015avoiding,
    papadopoulos1993dynamic) assume an uncontrolled base. How much does active 6-DOF base control
    shrink or eliminate the singular locus relative to the free-floating set?
    Open (dynamic_singularity, Open Questions).
  • Derate A/B not yet in the public wiki. The impedance-vs-speed A/B comparison lives in the
    private report; the full derivation is deferred to math. Until
    lifted, Claim 4’s / held-floor figures are reported, not re-derived here.
  • Layer interaction. Each layer is scheduled by the same , but their combined
    closed-loop behaviour (Tikhonov damping + impedance derate + damped inverse acting together near
    ) has no separate stability proof; only the singularity-free region
    result is on hand.

Connected Pages