Spacecraft Robotics Toolkit: An Open-Source Simulator for Spacecraft Robotic Arm Dynamic Modeling and Control
Authors: Virgili-Llop, Drew, Romano · Year: 2016 · Venue: IEEE (Spacecraft Robotics Laboratory, Naval Postgraduate School); SPART toolkit release paper
Raw: md
Summary
Introduces SPART, an open-source MATLAB/Simulink toolkit for the 6-DOF kinematic and dynamic modeling and control of a spacecraft with an attached robotic arm. The formulation is a Newton-Euler approach built on the Decoupled Natural Orthogonal Complement (DeNOC) matrix, giving recursive O(n) forward/inverse dynamics and recursive O(n) construction of the generalized inertia matrix H and convective inertia matrix C. The toolkit explicitly supports both a floating (uncontrolled) and a flying (actuated) base, and ships several control primitives (resolved motion-rate control, transpose-Jacobian, zero-/desired-reaction maneuvers) plus workspace and manipulability analysis tools.
Key Claims
- The full system equation of motion is
H(q)q̈ + C(q,q̇)q̇ = τwithH = NᵀMNandC = Nᵀ(MṄ + ṀN), where N is the natural orthogonal complement mapping joint-space rates to operational-space twists (t = Nq̇). - The generalized inertia matrix H is symmetric positive semi-definite (not strictly positive-definite as stated for fixed-base manipulators) and partitions into base block H₀ (6×6), manipulator block H_m (n×n), and base-manipulator coupling block H₀ₘ (6×n); C partitions analogously but is not symmetric.
- DeNOC factorization
N = N_l N_d(lower-block-triangular times block-diagonal) yields O(n) recursive forward and inverse dynamics; the Composite Rigid Body method is O(n³) but competitive for n < 12 links. - Branch topology induces sparsity:
B_{i,j} = 0when links i and j are not on the same branch, so a single-chain manipulator yields a fully populated lower-triangular N_l, while all links share a branch with the base soB_{i0} ≠ 0. - A Desired Reaction Maneuver (DRM) generalizes Yoshida’s Zero Reaction Maneuver (ZRM): redundant DOF can impose an arbitrary prescribed base reaction (not only zero), and can null residual base momentum 𝓜′. ZRM is recovered as the special case 𝓜′ = 0, q̇₀ = 0.
- DRM/ZRM resolution requires a matrix inverse that is singularity-prone “in even less intuitive locations than when inverting only Jacobians”; an adjugate-based regularization
q̇_m = k·adj(G)(…)with capped k bounds q̇_m near singularities (recovering the exact inverse when k = 1/det(G)). - Limitations: valid only for rigid-body kinematic-tree topologies; closed-loop chains and flexible bodies are not supported.
Method
Regime — both. The toolkit is built to handle either a free-floating base (uncontrolled, base wrench = 0, momentum conserved) or a free-flying base (fully actuated 6-DOF base). The core functions expose explicitly “flying- and floating-base Jacobians” and “flying- and floating-base generalized inertia and convective inertia matrices,” and the O(n) solvers “can solve for a floating or a flying base.” This is directly relevant to our fully-actuated regime: SPART is one of the few open packages that does not assume the base is passive.
Generalized coordinates. q = [q₀ qₘ]ᵀ, with base state q₀ six-dimensional. The base rate is q̇₀ = [ω₀ ṙ₀]ᵀ — angular velocity in body axes, linear velocity in the inertial frame (a mixed representation worth flagging when comparing to other conventions).
Twist propagation. Per-link twist tᵢ = [ωᵢ ṙᵢ]ᵀ; recursion tᵢ = B_{ij} tⱼ + pᵢ q̇ᵢ (Eq. 11). Stacked: t = Nq̇ (Eq. 16). For the base the propagation vector becomes a 6×6 matrix P₀ = diag(ⁱR_{L₀}, 1₃) so t₀ = P₀ q̇₀.
DeNOC factorization. N = N_l N_d (Eqs. 17–19), N_l lower-block-triangular of B-matrices, N_d block-diagonal of propagation vectors/matrices.
Newton-Euler. Per-link wrench wᵢ = [nᵢ fᵢ]ᵀ, spatial inertia Mᵢ = diag(Iᵢ, mᵢ1₃) (Eq. 30), Mᵢ ṫᵢ + Ṁᵢ tᵢ = wᵢ (Eq. 31). Wrenches split into contributing/non-contributing w = wᶜ + wⁿ = wq + w_F + wⁿ (Eq. 36). Non-contributing wrenches do no work, so premultiplying by Nᵀ eliminates them (since tᵀwⁿ = q̇ᵀNᵀwⁿ = 0), recovering Eq. (1)/(38).
Kinematics. Homogeneous transforms built recursively outward through the tree from the base (Eqs. 2–6) using DH parameters (d, θ, α, a per Table 1). System CoM r_c = Σmᵢrᵢ / Σmᵢ (Eq. 7). Jacobians are horizontal slices of N; end-effector velocity t_EE = J_{0EE} q̇₀ + J_{mEE} q̇ₘ (Eq. 28) makes base vs. manipulator contributions explicit — the dynamic-coupling structure.
Relevance to thesis
This is a foundational tooling/modeling reference for our free-flying manipulator. SPART explicitly models a flying (fully-actuated) base alongside the floating case, matching our assumption rather than the dominant free-floating literature. The clean block partition of H (H₀, H₀ₘ, H_m) and the explicit base/manipulator Jacobian split give the dynamic-coupling structure we exploit in coordinated control. The Desired Reaction Maneuver generalizes the reaction-null-space idea to prescribed (nonzero) base reactions and to momentum dumping, and its adjugate-based singularity regularization is a concrete, citable technique for our planning/control layer. The DeNOC-based O(n) recursion is a practical simulation backbone.
Connections
Topics: generalized_jacobian · reaction_null_space · denoc_formulation · dynamic_coupling
Key Equations / Quotes
“H(q)q̈ + C(q,q̇)q̇ = τ” (Eq. 1, p. 3)
“H = NᵀMN … C = Nᵀ(MṄ + ṀN)” (Eqs. 39–40, p. 6)
Generalized inertia partition (Eq. 44):
H = [[H₀, H₀ₘ], [H₀ₘᵀ, H_m]]
Desired/Zero Reaction Maneuver resolution (Eq. 47):
q̇_m = [[-H₀⁻¹H₀ₘ], [J*{xᵢ}]]⁻¹ ( [q̇₀; t{xᵢ}] − [H₀⁻¹; J_{0xᵢ}H₀⁻¹] 𝓜′ )
Adjugate regularization near singularity (Eq. 48):
q̇_m = k·adj(G) ( [q̇₀; t_{xᵢ}] − [H₀⁻¹; J_{0xᵢ}H₀⁻¹] 𝓜′ ), G = [[-H₀⁻¹H₀ₘ], [J*_{xᵢ}]]
“the toolkit is capable of simulating a floating or a flying base and can handle external forces, both in operational and in joint space.” (Abstract, p. 1)
“the flying- and floating-base Jacobians, and the flying- and floating-base generalized inertia and convective inertia matrices.” (Sec. 3, p. 6)
“an inverse needs to be computed, and the process is susceptible to encounter singularities (in even less intuitive locations than when inverting only Jacobians).” (Sec. 4.1, p. 7)
Open Questions
- The paper notes DRM singularities occur “in even less intuitive locations than when inverting only Jacobians” but gives no characterization of where these dynamic/coupling singularities lie — what is the singular set of G?
- The adjugate regularization caps k to bound q̇_m, but no analysis of tracking-error or stability cost of that capping near the singularity is provided.
- The base rate q₀ mixes body-frame angular velocity with inertial-frame linear velocity; the consequences of this mixed representation for the structure of C and for control design are not discussed.
- No flexible-body or closed-loop support; how much does the rigid-tree assumption limit fidelity for the NPS-FSS prototype arm?