This page is a drill . The [[3.5.04 DCM kinematics — Ċ = −[ω×]C (index 3.5.4)|parent note]] proved the equation
C ˙ = − [ ω B × ] C .
Here we throw every kind of input at it — every spin axis, a general tilted axis, zero spin, spin that changes sign, a limiting long-time case, time-varying spin, a real spacecraft word problem, and an exam twist. If you can do all of these, nothing in an exam can surprise you.
Before we start, one reminder in plain words. The symbol [ w × ] ("the skew matrix of w ") is a 3 × 3 box of numbers built from a vector w = ( w 1 , w 2 , w 3 ) so that multiplying it by any vector a gives the cross product w × a . See Skew-symmetric matrices & cross-product operator . Written out:
[ w × ] = 0 w 3 − w 2 − w 3 0 w 1 w 2 − w 1 0 .
Notice the diagonal is always zero and flipping it across the diagonal flips every sign — that is what "skew-symmetric" means, and it is the whole reason C stays a rotation.
Definition Notation used on this whole page
We keep the arrow on the vector inside the bracket: [ ω B × ] always means "the skew matrix built from the vector ω B ". Whenever space is tight we may write [ ω × ] , but the object inside the bracket is always the vector , never a scalar.
Row/column indices run 1 , 2 , 3 (one-based), matching the subscripts b ^ 1 , b ^ 2 , b ^ 3 . "Index 1" = the first row/column, i.e. the x -row.
The vee-map ∨ (introduced formally in Ex 7) is the inverse of the skew bracket: given a skew matrix S , S ∨ reads off the vector w such that [ w × ] = S .
Every problem this topic can throw at you lands in one of these cells. The worked examples below are tagged with the cell they cover.
#
Case class
What's special
Example
A
Spin about a single body axis (x , y , or z )
reduces to a 2-D rotation
Ex 1, Ex 2
B
Zero spin ω = 0
degenerate: C ˙ = 0 , nothing moves
Ex 3
C
Sign flip / reverse spin (− ω )
direction of rotation reverses
Ex 4
D
Limiting / long-time behaviour (t → ∞ , periodicity)
solution is periodic, never blows up
Ex 5
E
General (tilted) constant axis (Rodrigues / matrix exponential)
full 3-component ω , one integration
Ex 6
F
Extract ω from data (vee-map)
inverse problem
Ex 7
G
Time-varying ω ( t )
no simple exponential; integrate carefully
Ex 8
H
Real-world word problem (spacecraft rate)
build [ ω × ] from a physical scenario
Ex 9
I
Exam twist : wrong-sign trap / frame trap
catch the plus/minus and N-vs-B error
Ex 10
J
Degenerate check : does integration preserve det C = + 1 ?
orthonormality + handedness
Ex 11
Worked example Ex 1 — Constant spin about body
z , find C ( t )
A rigid body starts aligned with inertial (C ( 0 ) = I ) and spins at constant rate ω = 2 rad/s about its body z -axis, so ω B = ( 0 , 0 , 2 ) . Find C ( t ) and evaluate it at t = 4 π s.
Forecast: guess first — at t = 4 π ≈ 0.79 s the body has turned ω t = 2 π (a quarter turn). Will the top-left 2 × 2 block look like a + or − rotation? Remember the minus sign in the equation.
Build the skew matrix. With ω B = ( 0 , 0 , 2 ) ,
[ ω × ] = 0 2 0 − 2 0 0 0 0 0 .
Why this step? Every DCM-kinematics problem starts by turning ω into its skew box; that box is the operator that "twists" C .
Recognize the ODE type. Since ω is constant, C ˙ = − [ ω × ] C is a linear ODE with constant coefficients . Its solution is the matrix exponential :
C ( t ) = e − [ ω × ] t C ( 0 ) .
Why this step? Just like x ˙ = a x ⇒ x = e a t x 0 for numbers, the matrix version works because [ ω × ] never changes.
Evaluate the exponential. The exponential of a z -axis skew matrix is a rotation. With the minus sign it is a rotation by angle − ω t about z :
C ( t ) = cos ω t − sin ω t 0 sin ω t cos ω t 0 0 0 1 .
Why this step? The minus turns + ω t into a clockwise turn — see the Lie-algebra picture where the skew matrix lives in the tangent space at I .
Plug t = π /4 , ω = 2 : ω t = π /2 , so cos = 0 , sin = 1 :
C ( 4 π ) = 0 − 1 0 1 0 0 0 0 1 .
Verify: Check C C T = I (it does, columns are orthonormal), and det C = + 1 . At t = 0 , ω t = 0 gives C = I ✔.
Figure 1 (below): the white arrows are the fixed inertial axes n ^ 1 , n ^ 2 ; the blue and yellow arrows are the body axes b ^ 1 , b ^ 2 after the quarter turn. The red arc shows the rotation is clockwise (− ω t ), which is exactly why the − sin ω t sits in the lower-left of C — the minus sign in the equation made itself visible as a clockwise sweep.
Intuition Figure 1 caption
Body z -spin at ω t = π /2 : inertial axes (white) fixed, body axes (blue/yellow) swept clockwise by − ω t (red arc). The clockwise sweep is the geometric face of the minus sign in C ˙ = − [ ω × ] C .
Worked example Ex 2 — Spin about body
x : which entries move?
Same setup (C ( 0 ) = I ) but ω B = ( 3 , 0 , 0 ) rad/s. Write C ( t ) and give C at t = 6 π s.
Forecast: which 2 × 2 block stays frozen, and which rotates?
Skew matrix: [ ω × ] = 0 0 0 0 0 3 0 − 3 0 .
Why this step? Only w 1 = 3 is nonzero, so only the w 1 entries survive — the x -axis is untouched.
Exponential of an x -axis skew (with the minus) is rotation by − ω t about x :
C ( t ) = 1 0 0 0 cos ω t − sin ω t 0 sin ω t cos ω t .
Why this step? The first row and first column (index 1, i.e. the x -row/column in our one-based convention) stay as identity; the y –z block does the turning.
Plug ω t = 3 ⋅ π /6 = π /2 : cos = 0 , sin = 1 :
C = 1 0 0 0 0 − 1 0 1 0 .
Verify: det C = + 1 , C C T = I , and the first row/column ( 1 , 0 , 0 ) is unmoved — correct for an x -spin ✔.
Worked example Ex 3 — No rotation at all
ω B = ( 0 , 0 , 0 ) with some starting C ( 0 ) = C 0 . What is C ( t ) ?
Forecast: trivial — but be sure you know why it's trivial.
Skew matrix is the zero matrix: [ ω × ] = 0 .
Why this step? Every entry of the box is built from a component of ω , and they're all zero.
The ODE becomes C ˙ = 0 , so C ( t ) = C 0 for all t .
Why this step? Zero derivative means the attitude never changes — physically the body isn't spinning.
Consistency with the exponential: e − 0 ⋅ t = I , so C ( t ) = I ⋅ C 0 = C 0 ✔.
Verify: C ( t ) = C 0 is constant, its rate is zero, orthonormality is trivially kept. This is the degenerate corner of the whole topic.
Worked example Ex 4 — Flip the spin direction
Take Ex 1 but with ω B = ( 0 , 0 , − 2 ) (spinning the other way). Find C ( t ) and compare with Ex 1 at t = π /4 .
Forecast: will the off-diagonal signs swap compared to Ex 1?
Skew matrix flips sign: [ ω × ] = 0 − 2 0 2 0 0 0 0 0 .
Why this step? [( − ω ) × ] = − [ ω × ] — the skew map is linear.
Exponential gives rotation by − ω t = + 2 t about z :
C ( t ) = cos ω t sin ω t 0 − sin ω t cos ω t 0 0 0 1 ,
using cos ( − x ) = cos x , sin ( − x ) = − sin x .
Why this step? Reversing ω reverses the handedness of the turn; only the sin terms change sign.
At t = π /4 , ω t = π /2 :
C = 0 1 0 − 1 0 0 0 0 1 .
Verify: This is exactly the transpose of Ex 1's answer — reversing spin gives the inverse rotation ✔. C Ex4 = C Ex1 T , and C Ex1 C Ex4 = I .
Worked example Ex 5 — Does
C ever blow up? Periodicity.
With constant ω B = ( 0 , 0 , ω ) , ω = 2 rad/s, describe C ( t ) as t → ∞ . Find the smallest T > 0 with C ( T ) = C ( 0 ) .
Forecast: unstable growth, or bounded forever?
The entries are cos ω t , sin ω t — bounded between − 1 and + 1 forever.
Why this step? Unlike e a t for a real a , the exponential of a skew matrix has purely imaginary eigenvalues, so it oscillates instead of growing. This is the hallmark of S O ( 3 ) : rotations never blow up.
Period: C repeats when ω t increases by 2 π , i.e. T = ω 2 π = 2 2 π = π s.
Why this step? One full revolution returns the frame to its start.
Limit: there is no single limit as t → ∞ ; C ( t ) cycles with period π s.
Verify: ω T = 2 ⋅ π = 2 π , so cos = 1 , sin = 0 , giving C ( T ) = I = C ( 0 ) ✔. Bounded and periodic — the "stable corner."
Worked example Ex 6 — Spin about a slanted body axis
Now the axis is not a coordinate axis. Let the constant body rate be ω B = ω e ^ with unit axis e ^ = 2 1 ( 1 , 1 , 0 ) and ω = 2 π rad/s. With C ( 0 ) = I , find C ( t ) in closed form and evaluate at t = 1 s.
Forecast: with a tilted axis you can't just fill in a 2 × 2 block — but there is still ONE clean formula. Guess which trig functions appear.
Split the angular velocity into magnitude and axis: ω B = ω e ^ , ∣ e ^ ∣ = 1 . Its skew is [ ω × ] = ω [ e ^ × ] .
Why this step? Pulling the scalar rate out front lets us use the unit-axis skew [ e ^ × ] , whose powers are simple: [ e ^ × ] 3 = − [ e ^ × ] .
Write the exponential with Rodrigues' formula. Because C ( t ) = e − [ ω × ] t = e − ϕ [ e ^ × ] with turn angle ϕ = ω t , the matrix-exponential identity gives
C ( t ) = I − sin ϕ [ e ^ × ] + ( 1 − cos ϕ ) [ e ^ × ] 2 , ϕ = ω t .
Why this step? The minus sign in C ˙ = − [ ω × ] C becomes the − sin ϕ term — a clockwise turn about e ^ . This is the general answer for any constant axis; the single-axis Ex 1/Ex 2 are special cases.
Build [ e ^ × ] and [ e ^ × ] 2 . With e ^ = 2 1 ( 1 , 1 , 0 ) :
[ e ^ × ] = 2 1 0 0 − 1 0 0 1 1 − 1 0 , [ e ^ × ] 2 = 2 1 − 1 1 0 1 − 1 0 0 0 − 2 .
Why this step? These two matrices are all Rodrigues needs — no infinite series.
Plug ϕ = ω t = 2 π ⋅ 1 = 2 π : sin ϕ = 1 , 1 − cos ϕ = 1 :
C ( 1 ) = I − [ e ^ × ] + [ e ^ × ] 2 = 2 1 2 1 2 1 2 1 2 1 − 2 1 − 2 1 2 1 0 .
Verify: C C T = I and det C = + 1 (checked in VERIFY). Also the axis e ^ is unmoved: C e ^ = e ^ , the fingerprint of "rotation about e ^ " ✔.
∨
The skew bracket [ w × ] turns a vector into a matrix . The vee-map ∨ does the reverse — it turns a skew matrix back into its vector. If
S = 0 s 3 − s 2 − s 3 0 s 1 s 2 − s 1 0 , then S ∨ = s 1 s 2 s 3 .
In words: read s 1 from the ( 3 , 2 ) entry, s 2 from the ( 1 , 3 ) entry, s 3 from the ( 2 , 1 ) entry. It is exactly the inverse of the skew bracket: ( [ w × ] ) ∨ = w .
Worked example Ex 7 — Read
ω off a measured C ˙ C T
A sensor gives you the product
C ˙ C T = 0 − 5 4 5 0 − 3 − 4 3 0 .
Find ω B .
Forecast: the three independent off-diagonal numbers are ω up to signs — guess them before computing.
Use the inverse relation. From the parent, [ ω B × ] = − C ˙ C T :
[ ω × ] = 0 5 − 4 − 5 0 3 4 − 3 0 .
Why this step? Multiplying C ˙ = − [ ω × ] C on the right by C T and using C C T = I isolates the skew matrix.
Apply the vee-map ∨ (just defined above) to read the components off the skew template:
ω 1 = ( ⋅ ) 32 = 3 , ω 2 = ( ⋅ ) 13 = 4 , ω 3 = ( ⋅ ) 21 = 5.
Why this step? Compare to the standard [ w × ] template: the ( 3 , 2 ) entry is w 1 , the ( 1 , 3 ) entry is w 2 , the ( 2 , 1 ) entry is w 3 .
Result: ω B = ( 3 , 4 , 5 ) rad/s.
Verify: Rebuild [ ω × ] from ( 3 , 4 , 5 ) — it matches step 1. Magnitude ∣ ω ∣ = 9 + 16 + 25 = 50 ≈ 7.071 rad/s ✔. This mirrors attitude determination where you recover rates from data.
Worked example Ex 8 — Spin-up about a fixed body axis,
ω ( t ) ramps
The body spins about its z -axis but the rate ramps linearly : ω B ( t ) = ( 0 , 0 , α t ) with α = 2 rad/s 2 , and C ( 0 ) = I . Find C ( t ) and evaluate at t = 1 s.
Forecast: you may be tempted to write e − [ ω × ] t — but ω is not constant now. Does the naive exponential still work here?
Check whether [ ω ( t ) × ] commutes with itself at different times. All the skew matrices [ ω ( t ) × ] here point along the same axis z , just scaled by α t . Matrices that are scalar multiples of one fixed matrix always commute.
Why this step? The general solution of C ˙ = − [ ω ( t ) × ] C needs a time-ordered exponential; it collapses to an ordinary exponential of the integral only when the skew matrices at different times commute. Here they do (single fixed axis), so we may integrate the angle.
Integrate the rate into a turn angle. Define ϕ ( t ) = ∫ 0 t ω ( s ) d s = ∫ 0 t α s d s = 2 1 α t 2 .
Why this step? The total angle turned is the area under the rate curve , not rate× time, because the rate keeps changing.
Write C ( t ) as a z -rotation by − ϕ ( t ) :
C ( t ) = cos ϕ ( t ) − sin ϕ ( t ) 0 sin ϕ ( t ) cos ϕ ( t ) 0 0 0 1 , ϕ ( t ) = 2 1 α t 2 .
Why this step? Same z -block structure as Ex 1, but the angle is now the integrated ϕ ( t ) , not ω t .
Plug t = 1 , α = 2 : ϕ = 2 1 ⋅ 2 ⋅ 1 2 = 1 rad, so cos 1 ≈ 0.5403 , sin 1 ≈ 0.8415 :
C ( 1 ) = cos 1 − sin 1 0 sin 1 cos 1 0 0 0 1 ≈ 0.5403 − 0.8415 0 0.8415 0.5403 0 0 0 1 .
This is the requested numerical matrix C ( 1 ) .
Verify: C C T = I and det C = + 1 for all t (checked in VERIFY). Warning: if the axis of ω ( t ) itself tumbled in time, the skew matrices would not commute and this shortcut would fail — you'd have to integrate the ODE numerically (this is exactly why quaternions are used in practice).
Worked example Ex 9 — Spacecraft nadir spin
An imaging satellite rotates at ω = 0.10 rad/s about its body y -axis (pitch) to keep its camera pointed at the ground. At t = 0 its DCM is C ( 0 ) = I . Where does a body vector b ^ = ( 0 , 0 , 1 ) (camera boresight, initially along inertial z ) point after t = 5 s, expressed in the inertial frame?
Forecast: the boresight sweeps in the x –z plane; predict which way.
Skew for y -spin: ω B = ( 0 , 0.10 , 0 ) gives
[ ω × ] = 0 0 − 0.10 0 0 0 0.10 0 0 .
Why this step? Only w 2 = 0.10 is nonzero; the y -axis is the spin axis.
C ( t ) = rotation by − ω t about y :
C ( t ) = cos ω t 0 sin ω t 0 1 0 − sin ω t 0 cos ω t .
Why this step? Standard body-axis result from Cell A, adapted to the y -block.
The boresight in inertial coords is b N = C T b ^ (since C maps N→B, its transpose maps B→N). With ω t = 0.10 ⋅ 5 = 0.5 rad:
b N = C T ( 0 , 0 , 1 ) T = ( − sin 0.5 , 0 , cos 0.5 ) = ( − 0.4794 , 0 , 0.8776 ) .
Why this step? We want the boresight seen from the ground/inertial frame, so we transform from body to inertial.
Verify: ∣ b N ∣ = 0.479 4 2 + 0.877 6 2 = 1.000 (unit length preserved) ✔. The camera has tilted 0.5 rad (≈ 28. 6 ∘ ) toward − x — a sensible pitch sweep.
Worked example Ex 10 — Spot the two mistakes
A student writes: "For C : N → B with ω N = ( 0 , 0 , ω ) , the kinematics is C ˙ = + [ ω N × ] C ." Find and fix both errors, then give the correct equation.
Forecast: count the errors before reading on — there are exactly two.
Error 1 — sign. For a matrix mapping N→B, the correct sign is minus : C ˙ = − [ ⋅ ] C . The plus belongs to C ˙ T = [ ω × ] C T (the B→N map). Why: forward body rotation makes inertial vectors appear to rotate backward in the body frame.
Error 2 — frame. The skew must use body components ω B , not ω N , since the output side (C ˙ 's left index) lives in the body frame.
Corrected equation:
C ˙ = − [ ω B × ] C , ω B = C ω N .
Why this step: both the sign convention and the frame of ω must match the direction C maps.
Verify: If we (wrongly) kept the plus, then d t d ( C C T ) would be nonzero, violating orthonormality — a contradiction that flags the sign error. With the correct minus, d t d ( C C T ) = 0 ✔. Compare with the analogous convention care in Quaternion kinematics — q̇ = ½ Ω(ω) q and Euler angle kinematics & gimbal lock .
Worked example Ex 11 — Does the flow keep
det C = + 1 ?
Using the constant z -spin solution of Ex 1, confirm that det C ( t ) = + 1 for all t (not − 1 , which would be a reflection).
Forecast: rotations must preserve handedness — but prove it, don't assume it.
Compute the determinant of C ( t ) from Ex 1. Expanding along the last row:
det C = 1 ⋅ ( cos 2 ω t + sin 2 ω t ) = cos 2 ω t + sin 2 ω t .
Why this step? The z -row is ( 0 , 0 , 1 ) , so the determinant reduces to the 2 × 2 block.
Pythagorean identity: cos 2 + sin 2 = 1 , so det C = + 1 for every t .
Why this step? This is the algebraic fingerprint of "proper rotation, no reflection."
General reason: d t d det C = det C ⋅ tr ( − [ ω × ]) = 0 because every skew matrix has zero trace. So det C never changes from its start value + 1 .
Why this step? Jacobi's formula plus tr [ ω × ] = 0 (zero diagonal) locks the determinant.
Verify: At t = π /4 (ω t = π /2 ): cos 2 + sin 2 = 0 + 1 = 1 ✔. The flow stays in S O ( 3 ) — no reflections, ever. This is Poisson's equation guaranteeing structure.
Recall Did every cell get covered?
Single-axis (A) ::: Ex 1 (z ), Ex 2 (x ), Ex 9 (y ).
Zero spin (B) ::: Ex 3 — C ˙ = 0 , C frozen.
Sign flip (C) ::: Ex 4 — reverse spin gives the transpose.
Limiting/periodic (D) ::: Ex 5 — bounded, period 2 π / ω .
General tilted axis (E) ::: Ex 6 — Rodrigues' formula, axis 2 1 ( 1 , 1 , 0 ) .
Extract ω , vee-map (F) ::: Ex 7 — ω = ( 3 , 4 , 5 ) .
Time-varying ω ( t ) (G) ::: Ex 8 — integrate the rate to angle ϕ = 2 1 α t 2 .
Word problem (H) ::: Ex 9 — boresight after 5 s.
Exam twist (I) ::: Ex 10 — sign + frame traps.
Handedness (J) ::: Ex 11 — det C = + 1 always.
For ω B = ( 0 , 0 , ω ) and C ( 0 ) = I , what is C ( t ) ? A rotation by − ω t about z : top-left block [[ cos ω t , sin ω t ] , [ − sin ω t , cos ω t ]] , C 33 = 1 .
What happens to C ˙ when ω = 0 ? [ ω × ] = 0 , so
C ˙ = 0 and
C ( t ) = C ( 0 ) forever (degenerate case).
Reversing the spin ω → − ω does what to C ( t ) ? Gives the inverse/transpose rotation; only the sin terms flip sign.
Why does constant-spin C ( t ) never blow up? Skew matrices have imaginary eigenvalues, so
e − [ ω × ] t oscillates (period
2 π / ω ) — bounded, in
S O ( 3 ) .
For a general constant axis e ^ , what closed form gives C ( t ) ? Rodrigues: C = I − sin ϕ [ e ^ × ] + ( 1 − cos ϕ ) [ e ^ × ] 2 with ϕ = ω t .
When ω ( t ) varies but keeps a fixed axis, how do you get the turn angle? Integrate the rate: ϕ ( t ) = ∫ 0 t ω ( s ) d s (e.g. 2 1 α t 2 for a linear ramp).
Why can't you always use e − [ ω × ] t for time-varying ω ( t ) ? The exponential of the integral is valid only if the skew matrices at different times commute (fixed axis); otherwise you need a time-ordered exponential or numerical integration.
How do you read ω B off − C ˙ C T ? Vee-map: ω 1 = ( ⋅ ) 32 , ω 2 = ( ⋅ ) 13 , ω 3 = ( ⋅ ) 21 .
Why is det C always + 1 under the DCM flow? d t d det C = det C ⋅ tr ( − [ ω × ]) = 0 since every skew matrix has zero trace.