The Decoupled Natural Orthogonal Complement (DeNOC) is a velocity-transformation method for
deriving the equations of motion of a serial (or branched) multibody chain from the Newton–Euler
equations, due to Saha and extending the Natural Orthogonal Complement of Angeles & Lee. A
velocity-transformation matrix Nvoc maps the generalized joint rates q˙ to the stacked link twists t, and is factored into a lower
block-triangular factor Nl (twist propagation along the chain) and a block-diagonal
factor Nd (per-joint motion subspaces). Premultiplying the stacked Newton–Euler
equations by Nvoc⊤ annihilates the non-contributing (constraint)
wrenches and collapses the system to the minimal generalized equations of motion, yielding a
recursive O(n) algorithm for the generalized inertia and convective-inertia matrices.
In virgili-llop2016spacecraft the DeNOC is applied to a
spacecraft-plus-arm with the base appended as link 0, so the same formulation serves both a
free-flying and a free-floating base — the regime is set by how q˙0 (base
twist) is driven or left free, not by the DeNOC machinery itself.
Velocity transformation and its decoupling (Eqs. 16–17; the source writes the DeNOC matrix N —
renamed here Nvoc to avoid clashing with the null-space projector N in notation.md):
\boldsymbol N_{\mathrm{voc}} = \boldsymbol N_l\,\boldsymbol N_d .$$
Projection of the stacked Newton–Euler equations $\boldsymbol M_{\mathrm{NE}}\dot{\boldsymbol t}+\dot{\boldsymbol M}_{\mathrm{NE}}\boldsymbol t=\boldsymbol w$ onto the
joint space removes the non-contributing wrenches ($\boldsymbol N_{\mathrm{voc}}^\top\boldsymbol w^{n}=0$), giving the generalized
equations of motion (Eqs. 38–40):
$$\boldsymbol M\,\ddot{\boldsymbol q} + \boldsymbol C\,\dot{\boldsymbol q} = \boldsymbol\tau,\qquad
\boldsymbol M = \boldsymbol N_{\mathrm{voc}}^\top \boldsymbol M_{\mathrm{NE}}\,\boldsymbol N_{\mathrm{voc}},\qquad
\boldsymbol C = \boldsymbol N_{\mathrm{voc}}^\top\!\left(\boldsymbol M_{\mathrm{NE}}\dot{\boldsymbol N}_{\mathrm{voc}} + \dot{\boldsymbol M}_{\mathrm{NE}}\boldsymbol N_{\mathrm{voc}}\right).$$
The block-stacked link-mass operator $\boldsymbol M_{\mathrm{NE}}=\mathrm{blkdiag}(\boldsymbol M_0,\dots,\boldsymbol M_n)$ is the source's $M$; the
resulting **generalized inertia is the canonical $\boldsymbol M$ of [notation.md](../notation.md)**
(the source labels it $H$). The base–arm coupling appears as the off-diagonal block (Eq. 44):
$$\boldsymbol M = \begin{bmatrix}\boldsymbol M_0 & \boldsymbol M_{0m}\\ \boldsymbol M_{0m}^\top & \boldsymbol M_m\end{bmatrix}.$$
## Source Support
- [virgili-llop2016spacecraft](../sources/virgili-llop2016spacecraft.md) — derives the DeNOC twist
propagation, the $\boldsymbol N_l\boldsymbol N_d$ factorization, and the $\mathcal{O}(n)$ recursive
forms of $\boldsymbol M$ and $\boldsymbol C$ for a spacecraft-with-arm; states explicitly that the
same SPART formulation handles a *flying* or a *floating* base.
## Related Topics
- [ffsm_dynamics](ffsm_dynamics.md) — the DeNOC is one route to assemble the FFSM equations of
motion that this page's $\boldsymbol M\ddot{\boldsymbol q}+\boldsymbol C\dot{\boldsymbol q}=\boldsymbol\tau$ form expresses.
- [free_floating_dynamics](free_floating_dynamics.md) — recovered from the *same* DeNOC model by
leaving the base twist $\dot{\boldsymbol q}_0$ unactuated (zero base wrench), contrasting our
free-flying use where $\dot{\boldsymbol q}_0$ is commanded.
- [generalized_inertia_matrix](generalized_inertia_matrix.md) — the DeNOC produces $\boldsymbol M=\boldsymbol N_{\mathrm{voc}}^\top\boldsymbol M_{\mathrm{NE}}\boldsymbol N_{\mathrm{voc}}$ recursively in $\mathcal{O}(n)$.
- [generalized_jacobian](generalized_jacobian.md) — the per-link horizontal slices $\boldsymbol J_i$ of $\boldsymbol N_{\mathrm{voc}}$ are the velocity Jacobians; the free-floating GJM is a further reduction folding momentum conservation.
- [dynamic_coupling](dynamic_coupling.md) — the base–arm coupling block $\boldsymbol M_{0m}$ (source $H_{0m}$) is exactly the inertial coupling between arm motion and base reaction.
## Open Questions
- The source presents one formulation for both regimes but its worked control example is the
(free-floating) Desired/Zero Reaction Maneuver. What changes in the DeNOC-derived
$\boldsymbol M,\boldsymbol C$ partition when the base is *actuated* (free-flying) — does the
coupling block $\boldsymbol M_{0m}$ stop being a constraint and become a control channel?
- The DeNOC gives the full coupled $\boldsymbol M$; how does this relate to Giordano's
circumcentroidal split $\boldsymbol\Gamma$ that decouples the CoM from the attitude+EE block —
is one a coordinate transform of the other?