Unified Notation
- Author:
Onur Tuncer, PhD
- Date:
May 13th, 2026
Goal
A single consistent notation that:
uses spatial algebra (Featherstone notation) for rigid-body dynamics,
treats configuration variables as living on a (product) manifold,
supports Lie-group-aware integration (RKMK) without ad-hoc constraint fixes (e.g. re-orthonormalization).
Unification is achieved by interpreting the Featherstone 6D spatial vectors as coordinates of the Lie algebra \(\Lie{se}(3)\) (and its dual \(\Lie{se}(3)^{\*}\)), and poses as elements of \(\SE(3)\).
State as a product manifold
For a single rigid body, choose the configuration
A typical flight / GNC state includes additional Euclidean components (velocities, biases, masses, aerodynamic states, etc.):
For multi-body systems (or multiple frames), configuration becomes a product manifold:
This is a product manifold viewpoint: Lie-group factors for configuration, Euclidean factors for everything else.
Spatial motion vectors as coordinates of \(\Lie{se}(3)\)
A Featherstone spatial motion vector (twist) is
We identify this with an element of the Lie algebra \(\Lie{se}(3)\) via the hat map:
In contrast, \((\cdot)^\vee\) maps \(\Lie{se}(3)\) back to \(\R^6\).
Key unification point:
Spatial motion vectors are simply coordinates for \(\Lie{se}(3)\). Spatial forces (wrenches) are the coordinates for the dual space \(\Lie{se}(3)^{\*}\):
Kinematics on \(\SE(3)\) using spatial velocity
Write kinematics in left-trivialized (body) form:
This equation is the clean bridge between Lie theory and Featherstone notation:
\(g\in\SE(3)\) is the pose (position + orientation),
\(\twist\in\R^6\) is the spatial twist (body spatial velocity),
\(\twist^\wedge\in\Lie{se}(3)\) is the corresponding Lie algebra element.
Featherstone cross operators as \(\ad\) and \(\ad^{\*}\)
Featherstone defines bi-linear operators:
motion cross product: \(\twist \times (\cdot)\) mapping \(\R^6\to \R^6\),
force cross product: \(\twist \times^{\*} (\cdot)\) mapping \(\R^6\to \R^6\).
In Lie notation these are precisely the adjoint actions:
Therefore “spatial algebra dynamics” can be re-written in a Lie-algebraic form without changing the underlying computations.
Rigid-body dynamics in unified form
Let \(I\in\R^{6\times 6}\) be the spatial inertia, \(\twist\) the body twist, and \(\wrench\) the net wrench. The standard Featherstone equation
is equivalently
This is the central “unified” dynamics statement:
pose lives on \(\SE(3)\),
velocities live in \(\Lie{se}(3)\cong\R^6\),
forces live in \(\Lie{se}(3)^{\*}\cong\R^6\),
coupling terms use \(\ad^{\*}\), matching Featherstone’s cross operator.
ODE on the product manifold \(\SE(3)\times\R^m\)
A general coupled system can be written as
where \(\Omega(g,y)\in\R^6\) is a spatial twist (often produced by vehicle dynamics + constraints + controls) and \(f(g,y)\in\R^m\) is the Euclidean part (biases, masses, actuator states, aero coefficients, etc.).
RKMK integration in the same notation
Runge–Kutta–Munthe-Kaas (RKMK) integrates the Lie-group factor by evolving an algebra increment
and updating the pose using the group exponential:
The Euclidean part advances by standard Runge–Kutta addition:
Stage reconstruction on \(\SE(3)\times\R^m\)
Let \((a_{ij},b_i,c_i)\) be a Runge–Kutta tableau with \(s\) stages and step size \(h\). Maintain stage variables
and define stage states
Stage rates and \(\dexp^{-1}\)
RKMK evaluates the vector field in the algebra (a vector space) via the inverse differential of the exponential:
(If one stores algebra elements as 6-vectors, \(K_i\) and \(\Omega\) can be interpreted as \(\R^6\) coordinates.)
Explicit stage accumulation
For an explicit Runge–Kutta tableau:
Then the final update is
Implicit R-K methods, on the other hand, require the solution of a coupled system of equations.
Practical Ramifications
This unified notation means:
One can keep poses on \(\SE(3)\) by construction (no re-orthonormalization hacks).
One keeps spatial dynamics in Featherstone form (fast, standard, and physically interpretable).
One can swap integrators (RK4, Radau IIA, Gauss) while preserving the manifold structure.
One’s EKF propagation naturally uses tangent-space coordinates (algebra vectors) consistent with the manifold.
Note: \(\R^m\) is also a Lie group
The additive group \((\R^m,+)\) is a Lie group with trivial exponential and \(\dexp\). So the whole state space \(\SE(3)\times\R^m\) can be viewed as a direct-product Lie group. In implementation, \(y\) is still kept in plain vector form because its Lie machinery is trivial.
Appendix
Hat/Vee Operators: From a Twist in \(\mathbb{R}^6\) to \(\Lie{se}(3)\)
This appendix explains the “hat” operator \((\cdot)^\wedge\) used throughout the document to map a 6D spatial motion vector (twist) into the Lie algebra \(\Lie{se}(3)\), and its inverse “vee” operator \((\cdot)^\vee\) mapping back to coordinates in \(\R^6\).
The hat map on \(\R^3\): \(\omega \mapsto [\omega]_\times\)
For \(\omega = (\omega_x,\omega_y,\omega_z)^\top \in \R^3\), define the skew-symmetric matrix
It is characterized by the identity
so “multiplication by \([\omega]_\times\)” is exactly the linear map “cross with \(\omega\).”
The hat map on \(\R^6\): \((\omega,v)\mapsto \Lie{se}(3)\)
A twist (spatial motion vector) is represented in coordinates by
The hat map \((\cdot)^\wedge:\R^6\to \Lie{se}(3)\) packs these coordinates into the standard matrix representation of \(\Lie{se}(3)\):
Thus, \(\omega\) occupies the rotational (skew) block, and \(v\) occupies the translational column.
Why this mapping is natural: recovering the kinematics
Let the pose be
Using left-trivialized (body) kinematics,
and substituting \(\twist^\wedge\) gives
Equating blocks yields the familiar rigid-body kinematics
So in the left-trivialized convention, \(\omega\) and \(v\) are expressed in the body frame, and are mapped into the inertial/world frame by left-multiplication with \(R\).
The vee map: extracting coordinates back to \(\R^6\)
The inverse map \((\cdot)^\vee:\Lie{se}(3)\to\R^6\) simply unpacks the matrix into its coordinate vector:
(Here \(\omega\) is recovered from the skew block via the standard identification between \(\Lie{so}(3)\) and \(\R^3\).)
Remark on conventions (body vs. spatial)
Equation \(\dot g = g\,\twist^\wedge\) corresponds to a body twist (left-trivialized velocity). If instead one uses a spatial twist (right-trivialized velocity) expressed in world coordinates rather than body coordinates, the kinematics take the form
and the coordinate interpretation of \((\omega,v)\) changes accordingly. If the world frame is an inertial frame then it is an “inertial twist”. The document adopts the left-trivialized convention to match the common “body” form used in many Lie-group integrators and in Featherstone-style rigid-body dynamics.