3.5.4Guidance, Navigation & Control (GNC)

DCM kinematics — Ċ = −[ω×]C

1,853 words8 min readdifficulty · medium

WHAT is CC?

Because the entries are cosines of angles between axes, Cij=b^in^jC_{ij} = \hat{b}_i \cdot \hat{n}_j.


WHY does CC change, and HOW fast?

Step 1 — The key constraint: orthonormality is preserved forever

Basis vectors stay unit-length and mutually perpendicular no matter how the body spins. So at all times: C(t)C(t)T=IC(t)\,C(t)^{T} = I

Why this step? This single fact is everything. It forces the derivative to have a special (skew) structure.

Step 2 — Differentiate the constraint

Differentiate CCT=IC C^{T} = I using the product rule: C˙CT+CC˙T=0\dot{C}\,C^{T} + C\,\dot{C}^{T} = 0

Notice CC˙T=(C˙CT)TC\dot{C}^{T} = (\dot{C}C^{T})^{T}. Let ΩC˙CT\Omega \equiv \dot{C}\,C^{T}. Then: Ω+ΩT=0Ω=ΩT\Omega + \Omega^{T} = 0 \quad\Rightarrow\quad \Omega = -\Omega^{T}

Why this step? We just proved Ω=C˙CT\Omega = \dot{C}C^{T} is skew-symmetric. A 3×33\times3 skew matrix has only 3 independent numbers — exactly the components of an angular velocity vector.

Step 3 — Identify Ω\Omega physically

Any skew-symmetric 3×33\times3 matrix can be written as the cross-product operator of some vector w\vec{w}: [w×]=[0w3w2w30w1w2w10],[w×]a=w×a[\vec{w}\times] = \begin{bmatrix} 0 & -w_3 & w_2 \\ w_3 & 0 & -w_1 \\ -w_2 & w_1 & 0 \end{bmatrix},\qquad [\vec{w}\times]\vec{a} = \vec{w}\times\vec{a}

Which vector is w\vec{w}? Take a body-fixed vector p\vec{p} (constant in the body frame). In inertial coordinates its rate of change is p˙N=ωN×pN\dot{\vec p}_{\mathcal N} = \vec\omega_{\mathcal N} \times \vec p_{\mathcal N} (rotating vector). Working the transport through CC (see box below) shows w\vec w is the angular velocity expressed in the body frame, ωB\vec\omega_{\mathcal B}, with a minus sign.

Why the minus sign? CC maps NB\mathcal N \to \mathcal B. As the body spins forward by ω\vec\omega, the inertial vectors appear to spin backward in the body frame — hence [ω×]-[\omega\times]. (If instead you track CN/B=CTC_{\mathcal N/\mathcal B} = C^T, you get C˙T=[ω×]CT\dot{C}^{T} = [\omega\times]C^{T}, no minus. The sign is a bookkeeping choice of direction.)

Deriving the sign cleanly (Feynman-style transport)

Let p\vec p be fixed in body (pB=\vec p_{\mathcal B}= const). Then pB=CpN\vec p_{\mathcal B} = C\vec p_{\mathcal N}, so 0=p˙B=C˙pN+Cp˙N.0 = \dot{\vec p}_{\mathcal B} = \dot C\,\vec p_{\mathcal N} + C\,\dot{\vec p}_{\mathcal N}. Using p˙N=ωN×pN\dot{\vec p}_{\mathcal N} = \vec\omega_{\mathcal N}\times\vec p_{\mathcal N} and ωB=CωN\vec\omega_{\mathcal B}=C\vec\omega_{\mathcal N}: C˙pN=C(ωN×pN)=[ωB×]CpN.\dot C\,\vec p_{\mathcal N} = -C(\vec\omega_{\mathcal N}\times \vec p_{\mathcal N}) = -[\vec\omega_{\mathcal B}\times]\,C\,\vec p_{\mathcal N}. True for all pN\vec p_{\mathcal N}C˙=[ωB×]C\dot C = -[\vec\omega_{\mathcal B}\times]C. Why valid? We used the identity C(a×b)=(Ca)×(Cb)C(\vec a\times\vec b) = (C\vec a)\times(C\vec b) for proper rotations.

![[3.5.04-DCM-kinematics-—-Ċ-=-−[ω×]C.png]]


WHY it matters (the 20% that gives 80%)

  • It's the attitude propagation ODE: integrate C˙=[ω×]C\dot C = -[\omega\times]C to know where the spacecraft points.
  • It guarantees orthonormality by construction — the derivative lives in the tangent space of the rotation group SO(3)SO(3), so exact solutions never "lose" orthogonality (numerically you must renormalize).
  • It's the parent of quaternion/Euler-angle kinematics: all are re-parametrizations of this same equation.

Worked Examples


Common Mistakes


Flashcards

What does the DCM CC map (state frames)?
Components of a vector from the reference/inertial frame N\mathcal N to the body frame B\mathcal B: vB=CvN\vec v_{\mathcal B}=C\vec v_{\mathcal N}.
State the DCM kinematic equation.
C˙=[ωB×]C\dot C = -[\vec\omega_{\mathcal B}\times]\,C.
Which constraint forces C˙CT\dot C C^T to be skew-symmetric?
Orthonormality CCT=ICC^T=I for all tt; differentiating gives C˙CT+(C˙CT)T=0\dot C C^T + (\dot C C^T)^T = 0.
Why the minus sign in C˙=[ω×]C\dot C = -[\omega\times]C?
Because CC maps N→B; forward body rotation makes inertial vectors appear to rotate backward in the body frame.
Which frame's ω\omega appears in the skew matrix?
Body-frame angular velocity ωB\vec\omega_{\mathcal B}.
How do you recover ω\omega from C,C˙C,\dot C?
[ωB×]=C˙CT[\vec\omega_{\mathcal B}\times] = -\dot C\,C^T, then read off via the vee-map.
Solution for constant spin ω\omega about body-z?
C(t)=e[ω×]tC(0)C(t)=e^{-[\omega\times]t}C(0) = rotation by ωt-\omega t about zz times C(0)C(0).
Vector identity used in the sign derivation?
C(a×b)=(Ca)×(Cb)C(\vec a\times\vec b)=(C\vec a)\times(C\vec b) for proper rotations.
Why renormalize CC during numerical integration?
Discrete steps drift off SO(3)SO(3); exact orthonormality is only guaranteed for the continuous ODE.

Recall Feynman: explain to a 12-year-old

Imagine you're spinning on a merry-go-round holding a compass. The compass points somewhere, but as you spin, which way the compass points relative to you keeps changing. The DCM CC is like a rulebook that converts "north in the world" into "which direction that is for the spinning me." Because I keep spinning, the rulebook keeps updating. The speed it updates is my spin speed — and it updates backwards compared to my spin, because when I turn right, the whole world seems to swing left. That backwards-ness is the minus sign.

Connections

![[3.5.04-DCM-kinematics-—-Ċ-=-−[ω×]C.png]]

Concept Map

must satisfy

makes C evolve

apply product rule

forces structure

has 3 free numbers

identified as

in body frame

N vectors spin backward

combines into

invert for skew part

DCM C maps N to B

Orthonormality C C^T = I

Differentiate constraint

Omega is skew-symmetric

Skew = cross-product operator

Vector w = body angular velocity

Minus sign convention

Poisson eqn Cdot = -omega x C

Spacecraft tumbles

Hinglish (regional understanding)

Intuition Hinglish mein samjho

Dekho, DCM matrix CC ek "translator" hai jo inertial frame ke vector ko body frame me convert karta hai: vB=CvN\vec v_B = C\vec v_N. Problem yeh hai ki satellite ya rigid body ghoom raha hota hai, isliye CC constant nahi rehta — time ke saath badalta hai. Sawaal: kitni tezi se badalta hai? Answer: C˙=[ωB×]C\dot C = -[\omega_B\times]C. Yaani rate of change nikalne ke liye body ki angular velocity ka skew matrix banao, minus lagao, aur CC se multiply karo.

Yeh minus sign kyun? Kyunki CC N se B jaata hai. Jab body forward ghoomti hai, toh body ki nazar se poori duniya ulti (backward) ghoomti dikhti hai — isliye minus. Agar aap ulta matrix CTC^T (B se N) use karo toh plus aayega. Derivation ka core idea simple hai: orthonormality humesha bani rehti hai, CCT=ICC^T=I. Isko differentiate karo toh pata chalta hai C˙CT\dot C C^T skew-symmetric hona chahiye, aur skew matrix me sirf 3 numbers hote hain — jo bilkul angular velocity ke components hain.

Yeh equation GNC me bahut important hai kyunki isi ko integrate karke hum spacecraft ka attitude (kaha point kar raha hai) track karte hain. Ek badiya baat: continuous solution automatically orthonormal rehta hai — matrix kabhi "kharab" nahi hoti. Par jab computer me numerically integrate karte ho (Euler steps), thoda drift aata hai, isliye beech beech me renormalize (Gram-Schmidt ya SVD) karna padta hai, ya phir quaternion use karo jo zyada efficient hai. Yaad rakhna: Minus, Skew, Body-omega, phir C — bas yehi mantra hai.

![[audio/3.5.04-DCM-kinematics-—-Ċ-=-−[ω×]C.mp3]]

Go deeper — visual, from zero

Test yourself — Guidance, Navigation & Control (GNC)

Connections