Date: Jun 12, 2026. Question: what causes the sharp condition-number (κ) peaks during orbit tracking, how do we alleviate them, reduce error, smooth the trajectory, and harden the robot — and are we asking the right questions?
Companions: this study complements (does not repeat)
the empirical forensics in
generated_reports/GNC/Jun12_26/chain10_kappa_forensics_verdict.md
(+ offline tables, codepath audit) and the chain docs
tasks/daily_log/Jun12_26/chain10_kappa_forensics_{design,plan}.md.
Those documents establish what happens in our data; this one
asks what the literature says it is and what to do about
it.
Sources: the 14 markdown-converted papers in
docs/Most_Relevant/papers/ (citekeys below match folder
names and docs/Most_Relevant/references.bib), the CHAIN_10
evidence set, the s_min_G/s_min_J study, the Phase 00 round-1 verdict,
generated_reports/math/derivation_7dof.md, and a code audit
of the live singularity-handling stack (file:line refs throughout).
Method: per-source structured extraction by parallel readers, synthesis
by the advisor, then an adversarial verification pass checking every
load-bearing citation against its source file.
Full vocabulary lives in wiki/terminology.md. The
minimum to read this report:
| term | meaning |
|---|---|
κ (kappa, kJ/kG) |
Condition number σ_max/σ_min of a Jacobian: 1 = motion authority
evenly spread, large = lopsided/fragile. We log both kJ
(arm map) and kG (full coordinated map). Lower and steadier
is better. |
σ₆ (sj, s_min_J) |
Smallest singular value of the arm’s task map — how much camera motion the weakest direction can still produce. Near 0 = near a locked-up (singular) pose. Healthy is comfortably above 0.025. |
| s_min_G | Same idea for the full 12×(6+n) coordinated map Γ. Statistically
interchangeable with σ₆ here (Spearman ≥ 0.9969 overall, derate
decisions identical on every run —
sming_vs_sminj_study.md). |
| derate | Below the σ floor the controller deliberately slows the vehicle (ramp: scale 1.0 at σ ≥ 0.025 down to 0.25 at σ ≤ 0.005). The “derate fraction” headline = share of steps spent throttled. |
| kernel freeze | 7-DOF only: below σ₆ = 0.025 the near-null joint direction is reused from the last healthy step instead of recomputed (it otherwise swings up to 69°/step). |
| pothole entry / dwell | Entry = one crossing into σ₆ < 0.025; dwell = how long a visit lasts. CHAIN_10’s H4: ±2% speed moves the entry count (23/14/2), i.e. a seed effect, not an amplifier effect. |
| hot band | The narrow stretch of orbit phase where one run’s κ peaks cluster. The 7-DOF’s band moves with ±2% schedule speed; the 6-DOF’s bands stay put. |
| aim clock | The schedule deciding where along the inspection path the camera
aims right now; driven by achieved orbit progress
(progress_sync), not wall time. |
| run names | r0_6dof_path = 6-joint arm on the orbit path (Phase 00
winner); r1_7dof_path = 7-joint redundant arm, same path;
±2% = path-speed variants of the same config. |
| Cliff’s δ | Rank-based effect size between two sample sets (here: a driver’s values inside peak windows vs matched calm windows), running −1…+1: the fraction of peak-window samples larger than control samples minus the fraction smaller. Pre-registered “large” bar: 0.5. |
| pe_p99 / ze_p99 / nu_jump_p99 | The three tracking metrics, all lower-is-better: 99th-percentile EE position error [m] (gate < 0.2 m; round-2 bar 0.1651 m); 99th-percentile pointing-axis error (chord between unit camera axes ≈ angle in rad; stretch < 0.001); 99th-percentile per-step EE twist change (smoothness witness — mixed units, compare across runs only). |
| L1–L4 | The four pre-registered round-2 hardening levers: L1 velocity-lag
feedforward, L2 σ-gradient null-space pull (7-DOF only), L3
pointing-smoothing retune, L4 kernel-freeze thaw policy (7-DOF only).
Registry: tasks/phase00_protocol.md. |
CHAIN_10 (pre-registered, offline, bit-exact replays of 8 runs)
killed the numerics hypothesis H1 (the finite-difference path tangent is
discarded at its only call site — ee_guidance.py:574 in the
current snapshot; the CHAIN_10 docs cite line 620, which predates the
CHAIN_11/12 mesh refactor) and the surface-curvature hypothesis H2
(curvature at peaks indistinguishable from calm windows; Cliff’s δ never
near the +0.5 bar). It promoted H3 — the schedule walks the arm near
its extension limit in schedule-dependent phase bands — on the
striking evidence that the 7-DOF’s hot band moves wholesale under ±2%
speed (phases 0.29–0.35 at −2%; startup-only at +2%, with zero
post-startup peaks), while the registered driver-level test using the
crude reach_b proxy stayed honest-inconclusive (δ = +0.82
on the 7-DOF +2% run and +0.60 on the 6-DOF nominal, but −0.42 on the
7-DOF nominal). H4 got the SEED verdict: entries 23/14/2 — the schedule
changes how often we fall in, not how long an unchanged set of falls
lasts. Pointing error is EVENT-dominant on the 7-DOF (δ up to +0.94
inside peak windows; the 6-DOF anti-correlates because its
peaks occur while crawling).
Context from earlier work: the near-singular regime is the
arm at full extension — the reach/shoulder factor R(θ)
of det(J_arm) = R·sinθ₃·sinθ₅ — not base mass (factorization and the
0.64–0.80 derate residual: mission_1_success.md; the +1.0
s_min_G/extension correlation: the CHAIN_10 design and verdict docs;
base mass ruled out by the Jun-8 counterweight sweep recorded in
high_level_plans/decisions.md). The 6-DOF lives
saturated on that floor (dwell 614–655 s at every speed, derate
fraction 0.64–0.80); the 7-DOF lives marginally near it, which
is exactly why ±2% swings it by orders of magnitude
(phase00_round1_verdict.md). The s-metric question is
settled: s_min_G and s_min_J are redundant witnesses here (agreement
1.0000 on derate decisions).
Worth stating precisely once, because the literature’s claims attach to specific matrices:
kJ, s_min_J ≡ σ₆: condition number /
smallest singular value of **J⁺ = J_νe − R_eb0·J̄_v**
(utils/robot.py:238-243) — the arm’s joint columns with the
CoM-translation contribution removed. This is the partial-base
generalized Jacobian of our controller’s source paper
[giordano2019coordinated], eq. (14): the matrix whose σ_min defines that
paper’s stability region Ω.kG, s_min_G: same quantities for the full
12×(6+n) coordinated map Γ
(utils/robot.py:250-255). A code comment (recording finding
F4) at breve_controller.py:305-306 states Γ is singular iff
the arm map is — a claim our redundancy study confirmed
numerically.utils/sampling.py:70-78,
parameters.yaml:82-87); throttles CoM velocity (×s),
feedforward accel (×s²), ω_b, base wrench, and arm gain blocks;breve_controller.py:498-516);utils/robot.py:173-210);utils/robot.py:312-323).Layer 2 deserves a flag: between σ = 0.05 and 0.025 the solve is already being damped while the derate has not yet engaged. Damping of this isotropic kind has a known, quantified cost in the literature — tracking error injected into all directions, not just the dying one (see §4.3). That makes layer 2 a prime suspect for the event-dominant pointing error inside peak windows, alongside freeze thaw jumps (measured p99 = 82.9°).
[papadopoulos1993dynamic] proves that for a floating-base manipulator, all singularities of the generalized Jacobian are functions of the joint angles q alone — independent of base attitude — and that in the workspace the same end-effector pose can be singular or not depending on the path taken to reach it (the nonholonomy of momentum). The workspace splits into a Path-Independent Workspace (PIW: no path can be singular) and a Path-Dependent Workspace (PDW: singularity is path-conditional). Each singular hypersurface maps to a radial annulus of reach around the system CoM; in their planar worked example the outer annulus extends exactly to the full-extension boundary.
[calzolari2020singularity] sharpens this: the singular surfaces are fixed walls in configuration space — of complex topology (Calzolari’s summary of Rybus et al. 2012, their ref [33]; their own Figs. 2–3 show the planar singular curve “is not a line”) — and sometimes thin enough that a locally-constrained optimizer “can fail to detect an unfeasible step” — i.e. a local manipulability or σ threshold can step straight across a wall undetected. Singularity avoidance done properly is therefore a global, geometric problem (their S-Maps turn it into collision avoidance against precomputed configuration-space boxes), not a local-trigger problem.
The synthesis with CHAIN_10 is one sentence: the walls don’t move; the schedule’s joint-space path does. A ±2% retiming of the aim clock re-routes q(t) relative to immovable singular surfaces, changing the number of close encounters — which is precisely the SEED verdict (entries 23/14/2) and the hot band relocating. The 6-DOF doesn’t show it because its path is pinned against the wall at every speed (saturated floor).
The lineage matters here. [umetani1989resolved] derived the Generalized Jacobian J* = J_M − J_S·I_S⁻¹·I_M (the matrix family our kG instruments) and noted the heavy-base limit: as base inertia grows, the coupling correction vanishes and J* degenerates to the fixed-base arm Jacobian. ([wilde2018equations], the canonical modern construction, never states the limit — but it reads off directly from that paper’s explicit build, eqs. 52 and 110: cite Umetani–Yoshida for the point, Wilde for the machinery.) Consequence for us: with a spacecraft base much heavier than a UR3, the generalized map’s conditioning inherits the arm’s ordinary kinematic singular structure — full extension first. That is the structural reason s_min_G tracks the arm-extension factor at +1.0 and why the s_min_G/s_min_J study found the two interchangeable. The exotic “dynamic singularities” of the free-floating literature (mass-distribution-shifted singular sets, [papadopoulos1993dynamic]; coupling-matrix degeneracies, [nenchev2013reaction], [sone2016reactionless]) are largely suppressed for us — additionally so because our base is actuated: [papadopoulos1993dynamic] §VI shows constant base attitude reduces the singular set to the kinematic one. One sign-caution worth recording: in [sone2016reactionless]’s planar specimen model the coupling-inertia determinant is maximal — farthest from their dynamic singularities — at full arm extension (tied to manipulator-CoM-to-base-CoM distance, with their explicit caveat that spatial joint-axis geometry also matters): the opposite tail from the arm Jacobian’s extension singularity. Citing that paper carelessly could appear to contradict H3; in fact it corroborates that our spikes are arm-kinematic, not coupling-driven. And it closes the PIW/PDW question for our system: in this heavy, attitude-controlled limit the path-dependence subtlety collapses, so “which workspace is the helix in?” reduces to “how close does the demanded standoff reach approach the outer (full-extension) annulus” — precisely the quantity the schedule oracle of §4.1 computes.
Two papers reproduce our promoted mechanism almost verbatim:
And the controller’s own papers concede the gap our derate fills:
[giordano2019coordinated] proves stability (for the nonredundant n = 6
case — the 7-DOF extension is our own, derivation_7dof.md)
only inside Ω = {σ_min(J⁺) > 0} with zero margin and no
enforcement mechanism; [giordano2020coordination] states the
practical remedy is “suitably pre-planned trajectories [18,43] … to
limit the occurrence of singularities” — its reference [43] being
exactly [calzolari2020singularity]. The burden of staying away from
singularities is, by the designers’ own admission, on
trajectory/schedule design. Our κ bands are what that unfunded
mandate looks like in flight.
Four mutually consistent explanations, all from the fixed-base robustness literature:
There is also a self-inflicted event class the literature warns about: hard thresholds make their own transients. Truncated-SVD inversion “generates discontinuous joint velocities due to the threshold”, and in the same case study a sudden primary-task error jump appears at the exit of an algorithmic singularity — driven by ill-conditioned null-space velocities integrated across the crossing ([chiaverini1997singularity] Fig. 2); a too-small threshold lets the schedule drive through the singularity and chatter ([torres1992minimizing]*, see §7 caveat); [sone2016reactionless] add a quartic term to their damping schedule specifically to keep the entry/exit smooth. Our stack has two hard switches (freeze at 0.025; hold-last-inverse at 0.005) and one measured exit transient (thaw jump p99 = 82.9°). The CHAIN_10 recommendation — audit freeze/derate handling before reconstruction math — is exactly what this literature would order.
Ordered from most upstream (cheapest, most preventive) to most downstream (last-resort robustness). The right posture is layered: plan so entries are rare, spend redundancy to make them rarer, and make the inversion graceful for the residue.
The controller-design literature itself sends the problem here: [giordano2020coordination]’s stated practical remedy is pre-planned singularity-aware trajectories; [calzolari2020singularity]’s whole program is planning-side; and flight practice agrees — ETS-VII’s arm trajectories were generated offline and executed feedforward ([nenchev2013reaction]; that was for momentum management rather than singularity avoidance, but it is the operational precedent for offline trajectory certification). The deliberate counterpoint is [bruschi2025singularity], which moves the handling into the control law instead (§4.2’s subject).
r1_kernel_continuity.kappa_series) over a
desired-path rollout is the same oracle. This is the
conditioning twin of the T1 coverage oracle, and it converts ±2%
schedule sensitivity from a hazard into a design degree of
freedom: if +2% produces zero post-startup peaks (it does —
CHAIN_10), then schedule selection/re-timing is a zero-hardware
mitigation, gated only by full-helix validation of coverage/tracking
(the round-3 lesson: validate on the full helix, short gates mislead).
Adjacent precedent: [das2025understanding] re-plan joint trajectories in
an SVD basis — of the coupling matrix, targeting base
disturbance rather than conditioning — the same shape of fix applied to
a different matrix.camera_radius = radius_scale(0.55) × r_reach
(parameter_loader.py:183) and the reach clamp at
ee_guidance.py:766-784. [giordano2018workspace] gives the
same insight from the workspace side: keep the aim target inside a
favorable region of the CoM-centered reachable workspace — in their
experiments manipulability then stayed favorable, with their own caveat
that unfavorable base attitudes could still reach zero manipulability
(moot for our attitude-controlled base, but their guarantee is
conditional). A full Calzolari S-Map is overkill for one arm with one
dominant singular factor — but their point-cloud pruning stage
(approximate — it locates near-singular regions, certifies nothing), or
simply our oracle above, captures the working benefit without the
170-hour formal computation; only the full S-Map buys the
guarantee.derivation_7dof.md already flags that σ-climbing, envelope
clearance, and pan-centering compete for the single null DOF. The
literature does not resolve allocation; it does say the budget is real
([nenchev2013reaction]: under the full momentum constraint a 7-DOF arm’s
reactionless manifold is 1-D, relaxing to n−3 = 4 if only base
orientation is protected; the kinematic spare DOF available to L2 is
exactly one either way — you cannot buy everything with one joint).The published menu maps one-to-one onto layers we already run, which turns this section into an audit rather than a shopping trip:
base_guidance.py:118-141) is SC-shaped — that component’s
cost surfaces as schedule lag (dwell, traversal debt), not pointing
error, and this is the strongest published justification for keeping it.
But the same ramp also scales the arm gain blocks and the base
wrench (breve_controller.py:313-316, 326-327) — a
feedback-stiffness reduction in all task directions, which is
itself a DLS-type cost in Sone’s taxonomy. So the sharpened audit
question: in-window pointing error must be attributed among (a)
the Tikhonov layer (σ < 0.05), (b) the damped J⁺ inverse, (c)
switching transients (freeze/thaw, hold-last-inverse), and (d) the
derate’s own gain-scaling component — only the speed-scaling component
is exonerated by the SC argument. [chiaverini1997singularity]
eq. 14 quantifies the DLS cost: damping injects error into all
task directions, scaling as λ²/(σᵢ²+λ²).kJ as a logged witness (noisy, scale-free) rather than a
control signal is correct.What is causing the spikes? The aim-clock schedule, in specific orbit-phase bands, demands standoff poses that pull the arm toward its full-extension singular surface — a fixed wall in joint space ([papadopoulos1993dynamic], [calzolari2020singularity]). Because our base is heavy and actuated, the generalized map’s conditioning inherits the arm’s kinematic reach factor ([umetani1989resolved] heavy-base limit) — hence s_min_G ≡ arm extension (corr +1.0). A ±2% retiming re-routes the joint-space path relative to the walls, moving the bands and the entry count (SEED). The κ spike is the symptom; the cause is a schedule-feasibility deficit in the sense of [bruschi2025singularity] Defs. 1–2. Numerics (H1) and surface curvature (H2) are exonerated both empirically (CHAIN_10) and structurally (no paper offers a mechanism for either).
How do we alleviate them? In order of leverage: (1) re-time/re-shape the schedule offline against a κ-along-schedule oracle so the helix never demands near-wall reach (§4.1); (2) tighten the standoff/reach corridor — one existing knob (§4.1); (3) spend the 7th joint’s null motion climbing σ₆ (lever L2), with the algorithmic-singularity diagnostic logged (§4.2); (4) keep the derate’s speed-scaling component (the published singularity-consistent design), attribute the in-window pointing cost among the four inversion-layer suspects — including the derate’s own gain-scaling component — smooth the two hard switches (L4), and if damping is implicated, switch it to directional filtering (§4.3).
How do we reduce error and smooth the trajectory? The event-dominant verdict says the error budget is spent at entries/exits, not in cruise — so L1 (velocity-lag feedforward) must be designed and evaluated against the startup/hot-band events (CHAIN_10 follow-up 4), and the smoothing wins are at the σ-boundary transitions (thaw policy, hold-last-inverse), not in the EE path itself. Note the reframe: it is not the end-effector trajectory that needs smoothing — it is the arm’s route through configuration space, which posture/null-space action shapes.
How do we harden the robot? Make schedule sensitivity a designed quantity — with a margin band, not a point. The clean +2% arm sits beside a non-monotone dwell cliff (431/231/3.27 s), so choosing it because it was clean at one setting is exactly what a committee pokes. The oracle should sweep a 2-D neighborhood (speed × standoff) and certify that a whole band around the chosen operating point stays wall-clear; the residual sensitivity then feeds the Phase-A CVaR axis (already pre-registered as a first-class risk source), and the fragility campaign measures noise on top of a system whose deterministic singular encounters are planned out, not accidental.
Mostly yes — three confirmations and three reframes.
Confirmed right: (1) pre-registered falsification with progress-indexed (not time-indexed) peaks was the correct instrument: the literature’s central fact (fixed walls, moving path) is only visible in phase/configuration coordinates. (2) Preferring σ_min over κ as the control signal matches the entire robustness literature. (3) The event-vs-broadband pointing discriminator was exactly the right question, and its EVENT answer is what [chiaverini1997singularity] predicts for a closed-loop pseudo-inverse kinematic loop — with [giordano2019coordinated] supplying the loss-of-actuation-at-the-event mechanism (stated there for its transpose-type realization).
Reframe 1 — from “why does κ spike” to “where does the
demanded path graze the wall.” κ is a consequence. The
upstream object is the demanded joint-space path q_des(s) and its
clearance from the fixed singular set. That question is answerable
offline, deterministically, per schedule candidate — which is a stronger
position than diagnosing peaks after flight. H3’s closure (swap
reach_b for the true extension margin / strided s_min
replay) is this reframe executed on logged data.
Reframe 2 — schedule sensitivity is a design DOF, not just a risk. CHAIN_10 treated ±2% as a perturbation axis; the +2% arm (zero post-startup peaks, dwell 3.27 s) is also an existence proof that a clean schedule exists nearby. The question “how do we harden against ±2%?” should be paired with “which retiming do we deliberately choose?” — gated, as always, on full-helix coverage/tracking validation.
Reframe 3 — the 6-DOF and 7-DOF are different problems wearing the same metric. The 6-DOF sits saturated on the reach floor (64–80% derated; bands immobile): its fix is geometric (standoff/reach corridor — §4.1), and no inversion-layer tuning will move it. The 7-DOF is marginal (entries swing 10× under ±2%): its fixes are schedule re-timing and null-space σ-climbing. One number (derate fraction) headlines both, but the treatments do not transfer across arms — worth keeping separate in round-2 scoring.
One question we were not asking: does our own robustness stack create events? The literature’s threshold-transient warnings (§3.4) plus our measured 82.9° thaw jumps and the σ<0.05 Tikhonov layer suggest an attribution audit within the mitigation stack — which layer owns the in-window pointing error — before any new machinery is added. That is a sharper version of CHAIN_10’s “review freeze/derate handling before the reconstruction math.”
torres1992minimizing is the wrong paper under
that citekey. The markdown (and per the sweep, the staged
source) is Holt & Desrochers, “Inertial-Space Disturbance
Rejection for Space-Based Manipulators” (NASA N94-26281) — the
Torres–Dubowsky enhanced-disturbance-map paper appears only as its
reference [4]. The Holt content is genuinely useful (the σ_min threshold
trade-off and chattering warning cited in §3.4/§4.3 are theirs), but
nothing from this folder may be cited as Torres–Dubowsky. Re-fetch the
real JGCD 1992 paper; the bib note already says the NTRS report was
“staged as source PDF” — that staging grabbed the wrong report.giordano2020wholebody and
giordano2021compliant have no bib entries
(and no markdown conversions — not swept); bib entries
nenchev1999reaction, nakamura1986inverse,
yoshikawa1985manipulability,
yoshikawa1985dynamic, chiaverini1994review,
wampler1986manipulator, vafa1990kinematics,
whitney1969resolved have no folders.
(Loose PDFs for at least the Nenchev 1999 paper sit in
docs/Most_Relevant/ unfoldered.) Additionally, Maciejewski
& Klein 1988 — the origin of directional/filtered damping, per
[chiaverini1997singularity]’s own attribution — is in neither the bib
nor the folders; add it if §4.3’s filtering route is pursued.chiaverini1997singularity.md drops scattered inline math
symbols (display equations intact); umetani1989resolved.md
is OCR of the Japanese JRSJ version (abstract and the load-bearing GJM
equations 14, 16–23 readable; eq. 8’s subscripts and the eq. 13 block
garbled — re-derive from neither);
giordano2019coordinated.md reproduces the two known
published typos (eq. 31 sign, eq. 34d block order — already in project
memory) and garbles eq. 4 / 34b — do not re-derive from those
transcriptions. The two textbooks (siciliano2009robotics,
spong2006robot) were deliberately not page-read in this
study; cite them only as background.| # | follow-up | size | harness |
|---|---|---|---|
| 1 | H3 closure: swap reach_b → strided
s_min_J replay (or shoulder-frame reach) as the driver in the committed
correlator; re-run on the 8 npz |
minutes, offline | validation/kappa_peak_forensics.py (one driver
function) |
| 2 | Schedule-κ oracle: σ₆ along q_des(s) over a 2-D (speed × standoff) neighborhood; certify a margin band around the chosen operating point (the clean +2% arm borders the non-monotone 431/231/3.27 s cliff); calibrate predicted vs logged bands | offline script | replay idiom from
r1_kernel_continuity.kappa_series |
| 3 | In-window error attribution: within peak windows, attribute pointing error among (a) Tikhonov layer (σ<0.05), (b) freeze/thaw steps, (c) hold-last-inverse steps, (d) derate gain-scaling steps — engagement flags are all reconstructable from logs | offline | extend the CHAIN_10 window machinery |
| 4 | L1 velocity-lag feedforward: design AND evaluate against the startup/hot-band events, not cruise only (the §5 error-reduction answer; CHAIN_10 verdict follow-up 4); both configs per protocol amendment 1 | round-2 lever | full-helix A/B per tasks/phase00_protocol.md |
| 5 | L4 smoothing: thaw-policy + hold-last-inverse transition smoothing, pre-registered against nu_jump_p99 and in-window ze mass | round-2 lever | existing freeze A/B harness |
| 6 | L2 σ-gradient null-space pull with the algorithmic-singularity diagnostic (log σ_min of the projected map; Chiaverini eq.-34 form, not the inverted-projector form) | round-2 lever | 7-DOF null-space hook (com_controller.py:227-240) |
| 7 | 6-DOF reach-corridor A/B: sweep
radius_scale/standoff on the incumbent — its saturated
64–80% derate is the declared geometric residual that §6 claims no
inversion-layer tuning can move; test the claim instead of asserting
it |
full-helix gated | knob at parameter_loader.py:183 |
| 8 | Threshold re-derivation: size 0.025 from the 1/ε joint-rate amplification against UR3 rate/saturation limits; justify or harmonize the 0.005 / 0.02 / 0.025 / 0.05 spread across the four layers | small offline calc | thesis-defense prep (§4.3) |
| 9 | H_norm pilot: compute the Jacobian-spectrum entropy offline on the 8 npz first — verify it actually discriminates single-σ collapse (weak signature, ≈0.92 of max for n=7) before any live logging | offline pilot | utils/robot.py spectrum already computed |
| 10 | Bib repair: re-fetch Torres–Dubowsky 1992; reconcile folder/bib mismatches; add Maciejewski & Klein 1988 if the filtering route is pursued | housekeeping | docs/Most_Relevant/ |
Deliberately not recommended now: a full Calzolari S-Map (formal machinery disproportionate to one dominant singular factor — YAGNI), adopting Bruschi’s priority swap outright (fuel/base-pose cost unmodeled for a 30-rev inspection; would need a costed A/B), and any new runtime metric — even H_norm enters as an offline pilot first.
docs/Most_Relevant/papers/<key>/<key>.md unless
noted)| citekey | reference | role in this study |
|---|---|---|
| bruschi2025singularity | Bruschi & Invernizzi, ACC 2025 | task-priority singularity-free design; feasibility/compatibility framing; H3 mechanism reproduction |
| calzolari2020singularity | Calzolari, Lampariello, Giordano, RSS 2020 | singularity maps; fixed C-space walls; local-metric failure; planning-side avoidance |
| chiaverini1997singularity | Chiaverini, IEEE TRA 1997 | kinematic vs algorithmic singularities; DLS / variable damping; directional-filtering analysis (origin: Maciejewski & Klein 1988); threshold sizing; closed-loop build-up |
| das2025understanding | Das, Choi, Kim, arXiv 2025 | coupling-SVD trajectory re-planning (adjacent precedent for §4.1); H_norm entropy idea (defined on the coupling matrix — the §4.4 Jacobian adaptation is ours) |
| giordano2018workspace | Giordano, Calzolari, Albu-Schäffer, ICRA 2018 | workspace-fixation; stretch→manipulability-collapse mechanism |
| giordano2019coordinated | Giordano, Ott, Albu-Schäffer, RA-L 2019 | our controller; J⁺ definition; Ω region with zero margin; loss-of-actuation at singularity |
| giordano2020coordination | Giordano, Dietrich, Ott, Albu-Schäffer, RAS 2020 | singularity depends on joints only; prescribes pre-planned singularity-aware trajectories |
| nenchev2013reaction | Nenchev, Mech. Sci. 2013 | RNS formalism; OSF vicinity-fluctuation contrast; use-the-null-channel guidance (his RNS kernel ≠ our task kernel) |
| papadopoulos1993dynamic | Papadopoulos & Dubowsky, ASME JDSMC 1993 | dynamic singularities; q-only dependence; PIW/PDW; reach annuli; redundancy & attitude-control remedies |
| sone2016reactionless | Sone & Nenchev, Acta Astronautica 2016 | SC-vs-DLS (derate justification); algorithmic-singularity fingerprint; smooth damping schedules |
| torres1992minimizing* | actually Holt & Desrochers, NASA N94-26281 (see §7) | σ_min threshold trade-off; chattering; forbidden-direction error |
| umetani1989resolved | Umetani & Yoshida, IEEE TRA 1989 (JRSJ OCR) | Generalized Jacobian origin; heavy-base limit; speed-invariance of path geometry |
| wilde2018equations | Wilde et al., Frontiers Rob. AI 2018 | canonical GJM construction + derivatives (oracle machinery); maneuvering-mode taxonomy |
| ye2019research | Ye, Dong, Hong, Electronics 2019 | adaptive RNS lineage; contrast citation only (no conditioning content) |
Internal evidence: chain10_kappa_forensics_verdict.md,
chain10_offline_tables.md,
chain10_codepath_audit.md,
sming_vs_sminj_study.md,
phase00_round1_verdict.md,
round_2_questions.md,
chain10_kappa_forensics_design.md,
generated_reports/math/derivation_7dof.md,
generated_reports/GNC/Jun10_26/mission_1_success.md, plus
code refs as cited (snapshot of utils/robot.py,
GNC/breve_controller.py, GNC/base_guidance.py,
GNC/com_guidance.py,
GNC/guidance/ee_guidance.py,
YAMLs_by_domain/parameters.yaml at Jun 12, 2026).