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:

framescoordinate transform reduced / decoupled EOM
control law + working closed loopguidance 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:

  1. 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.
  2. Coordinate transform (§2). A single map
    takes
    to ; see
    circumcentroidal_motion.
  3. Reduced / decoupled EOM (§3). The congruence under (with a
    transport correction) block-diagonalizes the inertia and gives a passive
    coupled block; see circumcentroidal_decoupling.
  4. 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.
  5. 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