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):
- Tikhonov regularization — a squared, variable damping on the
generalized-velocity normal equations. - Impedance derate — an emergent slowdown that scales the gains, not the command.
- Damped inverse (three-tier) — undamped → damped-least-squares → hold-last.
- 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 ,
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 :
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:
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:
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
- Result: singularity_threshold_cascade — the
amplification bound, the three floors, and the four-layer stack stated as
a result (this page is its narrative/overview companion). - Results: steady_state_error_floor ·
coordinated_control_lyapunov_stability ·
circumcentroidal_decoupling. - Topics: dynamic_singularity ·
damped_least_squares ·
singularity_robust_inverse ·
cartesian_impedance_control ·
kinematic_singularity. - Source: chiaverini1997singularity — fixed-base
damped-least-squares / variable-damping ancestor of layers 1 and 3. - Notation: notation.md.