Coordinated Circumcentroidal Control — End-to-End Spine
Last updated: 2026-06-22
Overview
This page is the canonical overview of how we control the free-flying space manipulator
(a fully-actuated 6-DOF base carrying a redundant arm with a camera end-effector — not the
free-floating regime of much of the literature). It threads the whole controller as one spine:
frames → coordinate transform → reduced / decoupled EOM →
control law + working closed loop → guidance feedforward.
The organizing idea, due to Giordano 2019, is a
circumcentroidal change of velocity coordinates. The base velocity is eliminated in favour of the
whole-system centre-of-mass (CoM) velocity , the base angular velocity
, and the end-effector velocity taken about the CoM, .
In these coordinates the CoM translation loop decouples from a coupled
attitude+EE block, the coupled block is passive, and a Cartesian-impedance law on it is
Lyapunov-stable. The project layers its own deterministic guidance (a spherical-helix CoM orbit
plus a look-at end-effector pose) on top, supplying an analytic acceleration feedforward into that
stable inner loop. All symbols are rendered from notation.md.
The spine, in five stages:
- Frames (§0.1). Four frames — target/inertial , system-CoM
(axes non-rotating w.r.t. , translating as the arm moves), end-effector/camera
, base — set up the CoM-relative (“circumcentroidal”) split. - Coordinate transform (§2). A single map
takes
to ; see
circumcentroidal_motion. - Reduced / decoupled EOM (§3). The congruence under (with a
transport correction) block-diagonalizes the inertia and gives a passive
coupled block; see circumcentroidal_decoupling. - Control law + working closed loop (§4). A Cartesian-impedance / coordinated law on the coupled
block, proven asymptotically stable; see
coordinated_control and
coordinated_control_lyapunov_stability. - Guidance feedforward (§5). The project’s own CoM-orbit + look-at pose guidance, converted into
the frame to feed an analytic acceleration feedforward.
Key Claims
Claim 1 — The circumcentroidal transform is the hinge of the whole design
Eliminating the base velocity rewrites the EE twist as a CoM-translation part plus
motion about the CoM, ,
with the circumcentroidal Jacobian
(Giordano eq 14). Stacking the CoM-velocity relation, the identity on , and the
split gives the coordinate transform
(Giordano eq 19 / current_sota eq 2.4)
Because sits in the lower-right block, is
invertible iff is nonsingular — the two go singular together. This
single fact is what makes the natural proximity
measure (Spearman with ) and is the analytic
root of all the conditioning work. Source support:
circumcentroidal_motion;
giordano2019coordinated (eqs 12–19); closed-form inverse in
gamma_closed_form_inverse.
Regime — load-bearing
The split is purely kinematic: it removes base translation only, never base rotation,
and does not rely on momentum conservation. This is the free-flying object
, distinct from the free-floating generalized Jacobian
(Umetani 1989), which folds momentum conservation for an uncontrolled base. See
generalized_jacobian and
free_flying_vs_free_floating. Our base is fully actuated.
Claim 2 — Under the dynamics decouple into a CoM loop + a coupled block
The congruence ,
block-diagonalizes the inertia, ,
and the centroid Coriolis vanishes. The system splits into
(Giordano eqs 22a, 22b / current_sota eqs 3.3, 3.4)
The CoM equation is an isotropic point mass; the coupled attitude+EE block carries
all the dynamic coupling. Source support:
circumcentroidal_decoupling;
giordano2019coordinated (eq 21, App. B).
Inconsistency — hat vs breve (canonical)
are the full transformed matrices;
are the reduced lower-right block (the
coupled attitude+EE subsystem surviving after the CoM decouples). They are different objects. A prior
7-DOF effort conflated them; the canonical distinction lives at
circumcentroidal_decoupling.
Claim 3 — The coupled block is passive, and this requires the transport term
The reduced block satisfies the skew-symmetry / passivity identity
(Giordano eq 23 / current_sota eq 3.5)
This is not a free congruence: it holds only because the transport term
is retained inside
(it absorbs the contribution from the time-dependence of ).
Dropping that term — the most common shortcut — destroys the skew structure and with it the clean
Lyapunov bound. Source support:
coordinated_control_passivity;
giordano2019coordinated (eq 23, App. B).
Claim 4 — The coordinated (Cartesian-impedance) law is Lyapunov-asymptotically-stable on the singularity-free region
On the coupled block the control is a negative-feedback impedance law (gains SPD; uses the project’s
sign correction to Giordano eq 31):
(Giordano eq 31, sign-corrected / current_sota eq 4.7)
where the error-rate Jacobian
maps the stacked twist to the quaternion-based pose-error rate
(;
task_space_error_dynamics). With the energy certificate
(Giordano eqs 37, 38 / current_sota eqs 4.15, 4.16)
the tracking-error origin is asymptotically stable on
(Giordano eq 36). The passivity of Claim 3 is
the load-bearing step that collapses to pure damping dissipation. Joint rates are recovered by
with (eq 34d,
block-order-corrected). Source support:
coordinated_control_lyapunov_stability;
coordinated_control;
giordano2019coordinated (eqs 31, 34, 36–38).
Claim 5 — The project’s working closed loop adds damping-on-error and an acceleration feedforward
The paper certifies a regulator. The project’s working controller tracks a moving reference: the
damper acts on the velocity error and a matched acceleration feedforward is added to the RHS,
(final.tex eq 34b / current_sota eq 4.12)
Under nonzero reference rates the equilibrium shifts off the raw origin to a steady-state cruise-lag
floor (a balance among the proportional term, the cruising arm’s Coriolis
force, and the CoM coupling; current_sota eq 4.14). The CoM error loop itself is an autonomous damped
second-order system .
Source support: coordinated_control;
steady_state_error_floor.
Claim 6 — Guidance supplies the feedforward in the frame; the inner loop stays the same
Guidance is the project’s own deterministic POSE-mode plan, distinct from the borrowed control law. The
CoM tracks a spherical-helix orbit with a startup speed ramp; the desired EE pose is a look-at standoff
construction from the surface aim point (, the whole pose
governed by one direction ; current_sota eqs 5.7), with a roll-free desired twist
(eq 5.12). The desired
twist is converted to local then circumcentroidal coordinates,
(final.tex eq nu_dot_des_2 / current_sota eq 5.17)
and differentiated (with ) to supply the analytic
acceleration feedforward into
the RHS of Claim 5’s working loop — replacing the older finite-differenced demand. The maps
are already available from the dynamics (§2–3), so
guidance reuses the same circumcentroidal machinery rather than introducing new objects. Source support:
current_sota §5 (final.tex primary); coordinated_control.
Tensions & Open Questions
- Three project corrections to Giordano 2019 are load-bearing. The eq-31 negative-feedback sign,
the eq-34d selector block-order , and the
transport term in . With the paper’s printed forms
the bound does not follow. These are flagged on
coordinated_control_lyapunov_stability and rolled
up in_inconsistencies.md. - Regulator vs tracker. The Lyapunov certificate proves the regulator. Under nonzero reference
rates the equilibrium becomes the cruise-lag floor , so certifies
stability about a moving reference, not the raw origin. A rigorous tracking guarantee for the working
loop (Claim 5) is open. - Inner-loop idealization. The cascade is analyzed at the inner CoM loop’s equilibrium. In practice
the measured CoM error settles near , leaving a small persistent coupling
that the bare regulator proof does not cover; a cascaded-systems
argument is the rigorous route (cascaded_systems). - Validity confined to . Everything above holds only where
(equivalently ) is nonsingular. Near the boundary the joint-rate inverse is
regularized (Tikhonov / damped-), which perturbs the very loop the certificate describes; see
singularity_robust_inverse,
dynamic_singularity,
singularity_threshold_cascade. - Nonredundant () assumption. The whole spine assumes a square .
The redundant () case adds a self-motion / null-space reconstruction (the redundant DOF swings
violently near singularity and is frozen below ); how the split and the reduced
block generalize is open. - Regime hygiene. “Generalized Jacobian” is overloaded across the corpus: (Umetani,
free-floating, momentum-folded) vs (Giordano, free-flying, kinematic).
This spine is free-flying throughout; do not import GJM dynamic-singularity intuition.
Connected Pages
Results:
circumcentroidal_decoupling ·
coordinated_control_passivity ·
coordinated_control_lyapunov_stability ·
gamma_closed_form_inverse ·
steady_state_error_floor ·
singularity_threshold_cascade
Topics:
coordinated_control ·
circumcentroidal_motion ·
generalized_jacobian ·
task_space_error_dynamics ·
cartesian_impedance_control ·
cascaded_systems ·
free_flying_vs_free_floating ·
dynamic_singularity ·
singularity_robust_inverse
Sources:
giordano2019coordinated ·
giordano2020coordination ·
umetani1989resolved
Notation: notation.md