Domain A.3 — Rigid-Body Kinematics

Advanced attitude coordinates and deterministic attitude estimation from vector measurements.

← 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:

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:

This finite nature of orientation is important for control design, especially when spacecraft can tumble through large angles.

Key facts

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):

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

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

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:

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:

A convenient mapping is

\[ \boldsymbol{\sigma}_S = -\frac{\boldsymbol{\sigma}} {\boldsymbol{\sigma}^T\boldsymbol{\sigma}}. \]

Practical strategy

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).

Types

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\):

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

8.2 Free-flying vehicles (aircraft, missiles, spacecraft)

8.3 Large rotations / tumbling motion

8.4 Navigation and control design

Important considerations:

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

At a given time:

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

  1. Choose the most accurate inertial/body vector as \(\hat{\mathbf{t}}_1\).
  2. 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.
  3. 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:

Pros

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

Pros

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 →

← Back to Domain A.2 — Newtonian Mechanics

← Back to Domain A overview