← Back to Advanced Domains (A–E)
Domain A.3: Rigid-Body Kinematics (Advanced Attitude Coordinates)
This domain builds on A.1–A.2 (vector kinematics and Newton–Euler equations). The main goals are:
- To understand how to parametrise large 3-D rotations.
- To learn how to estimate attitude from vector sensor measurements.
1. Attitude Coordinates — Big Picture
Attitude coordinates (or attitude parameters) are sets of numbers that specify the orientation of one rigid body frame with respect to another. They play the same role for orientation that Cartesian, polar, or spherical coordinates play for position.
However, there is an important geometric difference:
- A position vector can have arbitrarily large magnitude.
- The relative orientation between two frames differs by at most a half-turn (180°). If you keep rotating past 180°, the attitude starts to “return” toward the original orientation.
This finite nature of orientation is important for control design, especially when spacecraft can tumble through large angles.
Key facts
- At least three numbers are required to describe the relative orientation of two frames.
- Any minimal 3-parameter set (Euler angles, CRPs, MRPs, etc.) has at least one geometric singularity: orientations where the parameters are undefined or not unique.
- Near such singularities, the corresponding kinematic differential equations become ill-conditioned or singular.
- Singularities can be avoided by using redundant coordinates (four or more parameters), such as quaternions, that are globally defined.
2. Euler’s Principal Rotation and Axis–Angle ↔ DCM
2.1 Euler’s principal rotation theorem
Any rigid body (or frame) can be moved from one orientation to another by a single rotation of angle \(\Phi\) about a unit vector \(\hat{\mathbf{e}}\) (the principal axis):
- The axis \(\hat{\mathbf{e}}\) is fixed in both the initial and final frames.
- The pair \((\hat{\mathbf{e}}, \Phi)\) is not unique: \((\hat{\mathbf{e}}, \Phi)\) and \((-\hat{\mathbf{e}}, -\Phi)\) describe the same physical rotation.
- Angles that differ by \(360^\circ\) are equivalent. In practice, we usually take \(|\Phi| \le 180^\circ\).
This motivates the axis–angle representation.
2.2 Principal rotation → Direction cosine matrix
Let the rotation from frame \(N\) to frame \(B\) be a principal rotation of angle \(\Phi\) about the unit axis \(\hat{\mathbf{e}} = [\,e_1\; e_2\; e_3\,]^T\). The corresponding DCM \(C = [C_{ij}]\) can be written in compact Rodrigues form:
\[ C = \cos\Phi\,I_3 + (1-\cos\Phi)\,\hat{\mathbf{e}}\,\hat{\mathbf{e}}^T - \sin\Phi\,[\hat{\mathbf{e}}]_\times , \]
where \([\hat{\mathbf{e}}]_\times\) is the skew-symmetric cross-product matrix of \(\hat{\mathbf{e}}\).
2.3 Direction cosine matrix → principal rotation
Given a proper orthogonal matrix \(C\), the principal angle and axis are recovered from
\[ \cos\Phi = \tfrac{1}{2}(\mathrm{tr}\,C - 1), \qquad \hat{\mathbf{e}} = \frac{1}{2\sin\Phi} \begin{bmatrix} C_{23} - C_{32} \\ C_{31} - C_{13} \\ C_{12} - C_{21} \end{bmatrix}, \]
valid whenever \(\sin\Phi \ne 0\) (i.e. away from exactly \(0^\circ\) or \(180^\circ\)). Any attitude parameter set built from \((\hat{\mathbf{e}}, \Phi)\) can therefore be connected directly to the DCM.
3. Classical Rodrigues Parameters (CRPs)
The classical Rodrigues parameters (also called the Gibbs vector) condense the 4-parameter quaternion into a minimal 3-vector:
\[ \mathbf{q} = \hat{\mathbf{e}} \,\tan\!\left(\frac{\Phi}{2}\right). \]
3.1 Relation to quaternions and DCM
Let the unit quaternion be \(\beta = [\,\beta_0\;\; \beta_v^T\,]^T\), with \(\beta_v \in \mathbb{R}^3\). Then
\[ \mathbf{q} = \frac{\beta_v}{\beta_0}, \]
and conversely
\[ \beta_0 = \frac{1}{1 + \mathbf{q}^T \mathbf{q}}, \qquad \beta_v = \frac{\mathbf{q}}{1 + \mathbf{q}^T \mathbf{q}}. \]
In terms of \(\mathbf{q}\), the DCM can be written as
\[ C(\mathbf{q}) = \frac{1}{1 + \mathbf{q}^T \mathbf{q}} \Big[(1 - \mathbf{q}^T \mathbf{q})\,I_3 + 2\,\mathbf{q}\mathbf{q}^T + 2[\mathbf{q}]_\times\Big]. \]
A convenient way to extract \(\mathbf{q}\) from a known rotation matrix \(C\) (away from \(\Phi = 180^\circ\)) is
\[ \mathbf{q} = \frac{1}{1 + \mathrm{tr}\,C} \begin{bmatrix} C_{23} - C_{32} \\ C_{31} - C_{13} \\ C_{12} - C_{21} \end{bmatrix}. \]
Note that \(C(\mathbf{q})^T = C(-\mathbf{q})\), so changing the sign of \(\mathbf{q}\) simply swaps “frame 1 relative to frame 2” and vice versa.
3.2 CRP kinematic differential equation
Let \(\boldsymbol{\omega}_B = [\,\omega_1,\; \omega_2,\; \omega_3\,]^T\) be the angular velocity expressed in the body frame. The CRPs evolve according to
\[ \dot{\mathbf{q}} = \tfrac{1}{2}\big(I_3 + [\mathbf{q}]_\times + \mathbf{q}\mathbf{q}^T\big) \boldsymbol{\omega}_B. \]
Characteristics
- Only polynomial terms; no trigonometric functions.
- Valid for all rotations except as \(|\Phi| \to 180^\circ\), where both \(\|\mathbf{q}\|\) and \(\|\dot{\mathbf{q}}\|\) grow without bound.
The inverse relation is
\[ \boldsymbol{\omega}_B = \frac{2}{1 + \mathbf{q}^T \mathbf{q}}\,(I_3 - [\mathbf{q}]_\times)\,\dot{\mathbf{q}}. \]
4. Cayley Transform — Matrix View
The Cayley transform provides a compact mapping between a proper orthogonal matrix \(C\) and a skew-symmetric matrix \(Q\):
\[ C = (I - Q)(I + Q)^{-1}, \qquad Q = (I - C)(I + C)^{-1}. \]
In 3-D, choosing \(Q = [\mathbf{q}]_\times\) reproduces the CRP parametrisation. For higher-dimensional rotation matrices, the same transform defines higher-dimensional “Rodrigues-type” parameters.
Geometric view
- \(Q\) plays the role of an orientation vector in matrix form.
- The kinematic equation for \(C\) can be written in terms of a corresponding “angular-velocity” cross-product matrix, similar to the usual DCM kinematics.
5. Modified Rodrigues Parameters (MRPs)
The Modified Rodrigues Parameters (MRPs) use a different angle scaling:
\[ \boldsymbol{\sigma} = \hat{\mathbf{e}} \,\tan\!\left(\frac{\Phi}{4}\right). \]
5.1 Relation to quaternions and principal rotation
With the same unit quaternion \(\beta = [\beta_0,\; \beta_v^T]^T\),
\[ \boldsymbol{\sigma} = \frac{\beta_v}{1 + \beta_0}, \]
and the inverse relations are
\[ \beta_0 = \frac{1 - \boldsymbol{\sigma}^T\boldsymbol{\sigma}} {1 + \boldsymbol{\sigma}^T\boldsymbol{\sigma}}, \qquad \beta_v = \frac{2\boldsymbol{\sigma}} {1 + \boldsymbol{\sigma}^T\boldsymbol{\sigma}}. \]
In terms of the principal rotation,
\[ \boldsymbol{\sigma} = \hat{\mathbf{e}} \,\tan\!\left(\frac{\Phi}{4}\right). \]
Hence MRPs are nonsingular for all rotations with \(|\Phi| < 360^\circ\), twice the nonsingular range of CRPs.
From this relation:
- \(\|\boldsymbol{\sigma}\| < 1\) corresponds to \(|\Phi| < 180^\circ\).
- \(\|\boldsymbol{\sigma}\| = 1\) corresponds to a 180° rotation.
- \(\|\boldsymbol{\sigma}\| > 1\) corresponds to rotations larger than 180° (but less than 360°).
5.2 Original vs shadow MRPs and switching
Because MRPs can be obtained by stereographic projection of the quaternion unit hypersphere, two distinct MRP sets represent the same attitude:
- the original vector \(\boldsymbol{\sigma}\),
- a shadow vector \(\boldsymbol{\sigma}_S\) obtained from the quaternion with opposite sign.
A convenient mapping is
\[ \boldsymbol{\sigma}_S = -\frac{\boldsymbol{\sigma}} {\boldsymbol{\sigma}^T\boldsymbol{\sigma}}. \]
Practical strategy
- Use the original set as long as \(\|\boldsymbol{\sigma}\| \le 1\).
- If \(\|\boldsymbol{\sigma}\|\) grows beyond 1, switch to \(\boldsymbol{\sigma}_S\).
- On the switching surface \(\|\boldsymbol{\sigma}\| = 1\), the mapping simplifies to \(\boldsymbol{\sigma}_S = -\boldsymbol{\sigma}\).
This original–shadow pair yields a minimal, nonsingular, bounded representation suitable for large-angle spacecraft manoeuvres. The norm is always bounded by 1, and the chosen vector always corresponds to the shortest principal rotation between the current and reference frames.
5.3 MRP–DCM and kinematics (summary)
The DCM can be written in terms of MRPs either in components or in compact vector form. One convenient compact expression is
\[ C(\boldsymbol{\sigma}) = I_3 + \frac{8[\boldsymbol{\sigma}]_\times^2 - 4(1 - \sigma^2)[\boldsymbol{\sigma}]_\times} {(1 + \sigma^2)^2}, \qquad \sigma^2 = \boldsymbol{\sigma}^T\boldsymbol{\sigma}. \]
The kinematic differential equation has a structure similar to the CRP case:
\[ \dot{\boldsymbol{\sigma}} = \tfrac{1}{4}\big[(1 - \sigma^2)I_3 + 2[\boldsymbol{\sigma}]_\times + 2\boldsymbol{\sigma}\boldsymbol{\sigma}^T\big]\boldsymbol{\omega}_B = \tfrac{1}{4} B(\boldsymbol{\sigma})\,\boldsymbol{\omega}_B. \]
The inverse mapping, expressing angular velocity in terms of \(\dot{\boldsymbol{\sigma}}\), uses the same matrix \(B(\boldsymbol{\sigma})\) with a scalar factor that remains well behaved except at the 360° singularity.
Overall, MRPs preserve the polynomial, no-trig form of the CRP kinematics while offering a larger nonsingular range.
6. General Stereographic Orientation Parameters (SOPs)
CRPs and MRPs are special cases of stereographic orientation parameters (SOPs).
- Start from the 4-D unit quaternion constraint sphere.
- Project points on this sphere onto a 3-D hyperplane that is one unit away from a chosen projection point.
Types
- Symmetric SOPs: the projection plane is perpendicular to the quaternion scalar axis \(\beta_0\). Singularities occur at a fixed rotation angle, independent of axis (CRPs and MRPs belong here).
- Asymmetric SOPs: more general projection geometry; singularities can depend on both rotation axis and angle.
In general, different quaternions can project to the same SOP vector (non-uniqueness). These coordinates are particularly useful when the spacecraft must remain within a specified cone about a reference direction; they appear in constrained pointing control laws.
7. Higher-Order Rodrigues Parameters and Other Coordinates
Additional attitude coordinates used in the literature include:
7.1 Higher-Order Rodrigues Parameters (HORPs)
HORPs extend the Cayley transform so that a rotation matrix is expressed through a skew-symmetric matrix \([X]\) raised to higher powers. The associated attitude vector
\[ \mathbf{x} = \hat{\mathbf{e}} \,\tan\!\left(\frac{\Phi}{2m}\right) \]
depends on an integer \(m\):
- \(m = 1\) → classical Rodrigues vector (CRPs).
- \(m = 2\) → MRPs.
Shadow sets can again be used to avoid singularities.
7.2 \((w, z)\) coordinates
A complex variable \(w\) encodes the heading of a chosen body axis, and a scalar \(z\) describes spin about that axis. These coordinates are very useful for under-actuated, axially symmetric spacecraft.
7.3 Cayley–Klein parameters
Cayley–Klein parameters are a pair of complex numbers closely related to quaternions, providing a nonsingular, once-redundant complex representation:
\[ \alpha = \beta_0 + i\beta_3,\qquad \beta = -\beta_2 + i\beta_1,\\ \gamma = \beta_2 + i\beta_1,\qquad \delta = \beta_0 - i\beta_3. \]
The inverse relations are
\[ \beta_0 = \tfrac{1}{2}(\alpha + \delta), \qquad \beta_1 = -\tfrac{i}{2}(\beta + \gamma),\\ \beta_2 = -\tfrac{1}{2}(\beta - \gamma), \qquad \beta_3 = -\tfrac{i}{2}(\alpha - \delta). \]
For these notes you can treat HORPs, \((w, z)\) coordinates, and Cayley–Klein parameters as advanced reading. Day-to-day spacecraft GNC work can be done comfortably with DCMs, quaternions, CRPs, and MRPs.
8. Choosing Attitude Coordinates in Practice
The best attitude representation depends on the physical system and the expected motion range.
8.1 Mechanisms with gimbals / joints
- Hardware usually fixes the parametrisation, e.g. a 3-gimbal mount corresponds to a specific Euler sequence (3-1-3, 3-2-1, etc.).
- You must avoid configurations where two gimbal axes line up (gimbal lock) or collide mechanically.
8.2 Free-flying vehicles (aircraft, missiles, spacecraft)
- For small excursions around a nominal attitude, most coordinate sets work reasonably well.
- Aircraft conventionally use yaw–pitch–roll Euler angles near straight-and-level flight.
- Choose frames so that the nominal attitude is as far as possible from any coordinate singularity.
8.3 Large rotations / tumbling motion
-
Prefer quaternions or MRPs:
- Quaternions are globally nonsingular but redundant (4 parameters + unit-norm constraint).
- MRPs are minimal (3 parameters) and remain well behaved up to \(360^\circ\), using original/shadow switching to avoid the lone singularity.
8.4 Navigation and control design
Important considerations:
- How nonlinear the coordinate dynamics are.
- Whether the parameter norm is bounded.
- Ease of gain tuning and handling actuator saturation.
MRPs with shadow-set switching are especially attractive for feedback control of spacecraft: they linearise nicely for small angles and keep the attitude error vector bounded.
9. Deterministic Attitude Estimation from Vector Measurements
So far we have focused on describing orientation. In practice we must estimate attitude from sensor data.
9.1 Common attitude sensors
- Sun sensors → unit vector toward the Sun.
- Magnetometers → magnetic field direction.
- Star trackers → line-of-sight to known stars.
At a given time:
- Each sensor provides a unit vector in the body frame, \(v_k^B\).
- Using orbital geometry and environmental models, we can compute the corresponding inertial vectors, \(v_k^N\).
A single unit vector constrains only two rotational degrees of freedom (rotation about that axis is unobservable), so we need at least two non-collinear vectors. With two or more vectors we usually formulate a least-squares problem.
9.2 Wahba’s problem (conceptual form)
Given a set of vector pairs \((v_k^B, v_k^N)\) with non-negative weights \(w_k\), find the DCM \(C_{BN}\) that minimises
\[ J(C_{BN}) = \tfrac{1}{2}\sum_k w_k \,\|v_k^B - C_{BN} v_k^N\|^2. \]
Every classical deterministic attitude estimator is essentially a different way of solving this problem.
9.3 TRIAD method
The TRIAD method uses exactly two vector measurements.
Steps
- Choose the most accurate inertial/body vector as \(\hat{\mathbf{t}}_1\).
- Construct \[ \hat{\mathbf{t}}_2 = \frac{\hat{\mathbf{t}}_1 \times \hat{\mathbf{t}}_1'} {\|\hat{\mathbf{t}}_1 \times \hat{\mathbf{t}}_1'\|}, \] where \(\hat{\mathbf{t}}_1\) and \(\hat{\mathbf{t}}_1'\) are the two measured directions.
- Let \(\hat{\mathbf{t}}_3 = \hat{\mathbf{t}}_1 \times \hat{\mathbf{t}}_2\).
Form the body and inertial triad matrices
\[ [B_T] = [\,\hat{\mathbf{t}}_1^B\; \hat{\mathbf{t}}_2^B\; \hat{\mathbf{t}}_3^B\,], \qquad [N_T] = [\,\hat{\mathbf{t}}_1^N\; \hat{\mathbf{t}}_2^N\; \hat{\mathbf{t}}_3^N\,]. \]
Then
\[ C_{BN} = [B_T][N_T]^T. \]
Interpretation
TRIAD builds an intermediate orthonormal frame \(T = \{\mathbf{t}_1, \mathbf{t}_2, \mathbf{t}_3\}\) in both inertial and body coordinates; the DCM \(C_{BN}\) maps the inertial triad to the body triad.
Pros: closed-form, very simple to implement.
Cons: effectively uses only “1.5” vectors and cannot process more than two measurements at once.
9.4 Davenport’s q-method
Davenport’s q-method rewrites Wahba’s cost function in terms of a quaternion. It builds a symmetric \(4\times 4\) matrix \(K\) from the weighted vector pairs. The optimal attitude quaternion is the eigenvector corresponding to the largest eigenvalue of \(K\). From this quaternion you can compute the DCM, CRPs, MRPs, etc.
9.5 QUEST (Quaternion Estimator)
Define
\[ B = \sum_{k=1}^N w_k\,v_k^B (v_k^N)^T,\qquad S = B + B^T,\qquad \sigma = \mathrm{tr}(B),\\ Z = \begin{bmatrix} B_{23} - B_{32} \\ B_{31} - B_{13} \\ B_{12} - B_{21} \end{bmatrix}. \]
Construct the symmetric K-matrix
\[ K = \begin{bmatrix} \sigma & Z^T \\ Z & S - \sigma I_3 \end{bmatrix}. \]
The optimal quaternion \(\beta\) satisfies
\[ K\beta = \lambda_{\max}\,\beta, \]
where \(\lambda_{\max}\) is the largest eigenvalue.
Shuster’s QUEST algorithm is an efficient implementation of Davenport’s method:
- It reduces the problem to a scalar nonlinear equation for the maximal eigenvalue;
- Once that scalar is found, the optimal quaternion is reconstructed algebraically.
Pros
- Retains Davenport’s optimality (solves Wahba’s problem exactly).
- Much lower computational load; widely used in spacecraft avionics.
Caution
If you represent the result in CRPs, the solution can approach the 180° singularity; this is usually handled by choosing a different body frame or switching to MRPs when needed.
9.6 OLAE — Optimal Linear Attitude Estimator
The OLAE algorithm uses the Cayley transform to express the attitude in CRPs and then linearises the measurement equations. Using the Cayley form \(C(\mathbf{q})\), the vector residual for each measurement can be written as
\[ \mathbf{d}_i = [\tilde{\mathbf{s}}_i]\,\mathbf{q}. \]
Stack all measurements:
\[ \mathbf{d} = \begin{bmatrix} \mathbf{d}_1 \\ \vdots \\ \mathbf{d}_N \end{bmatrix},\qquad S = \begin{bmatrix} \mathbf{s}_1 \\ \vdots \\ \mathbf{s}_N \end{bmatrix},\qquad W = \mathrm{diag}(w_1 I_3, \dots, w_N I_3). \]
Then the optimal CRP vector is the weighted least-squares solution
\[ \mathbf{q} = (S^T W S)^{-1} S^T W \mathbf{d}. \]
Key idea
- For each vector pair, use the Cayley form \(C(\mathbf{q})\) to rewrite the Wahba residuals in the linear form \(S\mathbf{q} = \mathbf{d}\), where \(S\) and \(\mathbf{d}\) depend on the weighted measurements.
- Solve directly for \(\mathbf{q}\) via a \(3\times 3\) matrix inversion.
Pros
- Purely linear; well suited to modern hardware that is very fast at matrix operations.
- Accepts any number of measurements and weights.
- Requires inversion of only a \(3\times 3\) matrix.
As with other CRP-based schemes, care is needed near the 180° singularity; in practice one can change frames or map the solution into MRPs with shadow-set switching.
Next in Domain A
Domain A.4 — Rigid-Body Dynamics →