Intuition Why this page exists
The parent note proved the formula. But a formula you can only run in the "nice" case is a trap. Here we hit it with every kind of input: zero spin, spin along each axis, a quaternion that is not the identity, a case where q ˙ 0 = 0 , a pure-vector quaternion, a real satellite word-problem, and an exam twist. When you finish, no scenario should surprise you.
Before any numbers, one reminder of the two objects we feed the machine:
Recall The two ingredients (open if rusty)
A unit quaternion q = ( q 0 , q 1 , q 2 , q 3 ) with q 0 2 + q 1 2 + q 2 2 + q 3 2 = 1 stores an orientation. An angular velocity ω = ( ω 1 , ω 2 , ω 3 ) in rad/s is how fast the body spins right now , measured in the body frame . The rate is
q ˙ = 2 1 Ξ ( q ) ω , Ξ ( q ) = − q 1 q 0 q 3 − q 2 − q 2 − q 3 q 0 q 1 − q 3 q 2 − q 1 q 0 .
Definition Notation we will lean on
Vector part q v = ( q 1 , q 2 , q 3 ) : the last three numbers of the quaternion. The first number q 0 is the scalar part . So q = ( q 0 , q v ) .
q v ⋅ ω is the ordinary dot product q 1 ω 1 + q 2 ω 2 + q 3 ω 3 (a single number).
q v × ω is the ordinary cross product (a 3-vector). The notation [ q v × ] means "the 3 × 3 matrix that does × ω ."
In block form the kinematics reads q ˙ = 2 1 [ − q v ⋅ ω q 0 ω + q v × ω ] — the top entry drives q 0 , the bottom three drive q v .
Definition The unit 3-sphere
S 3 (where q lives)
The four numbers of a unit quaternion obey q 0 2 + q 1 2 + q 2 2 + q 3 2 = 1 . That is exactly the equation of a sphere of radius 1 in 4-dimensional space — mathematicians call it the 3-sphere and write == S 3 == . Just as points with x 2 + y 2 + z 2 = 1 form the ordinary 2-D surface of a ball in 3-D, points with ∥ q ∥ = 1 form a curved 3-D surface inside 4-D. Every valid attitude is one point on this surface; as the body spins, q slides along S 3 and must never leave it (or ∥ q ∥ = 1 and the rotation is corrupted). We picture it as a circle in the figures — a faithful low-dimensional stand-in.
Definition The Hamilton product
⊗ (needed for Ex 8)
p ⊗ q is quaternion multiplication — how two rotations compose into one. For p = ( p 0 , p v ) and q = ( q 0 , q v ) ,
p ⊗ q = [ p 0 q 0 − p v ⋅ q v p 0 q v + q 0 p v + p v × q v ] .
It is not commutative (p ⊗ q = q ⊗ p in general) — because doing rotation p then q differs from q then p . The cross-product term p v × q v is exactly what encodes that order-sensitivity. A pure quaternion ( 0 , v ) has zero scalar part; ( 0 , ω ) is the angular-velocity quaternion .
Definition The inertial-frame matrix
Ω ( ω ) (needed for Ex 8)
When ω is given in the inertial frame instead of the body frame, we left-multiply: q ˙ = 2 1 ( 0 , ω ) ⊗ q = 2 1 Ω ( ω ) q , where
Ω ( ω ) = 0 ω 1 ω 2 ω 3 − ω 1 0 − ω 3 ω 2 − ω 2 ω 3 0 − ω 1 − ω 3 − ω 2 ω 1 0 .
Same physics as the parent note; Ω ( ω ) factors out q where Ξ ( q ) factors out ω . We only invoke it once, in the exam-twist example.
Every case this topic can throw at you falls into one of these cells. The examples below are tagged with the cell they cover.
#
Cell (what makes it special)
Example
A
Zero input — ω = 0 (degenerate: nothing spins)
Ex 1
B
Spin about a single body axis , q at identity
Ex 2
C
Same spin, all three axes — check the sign pattern of Ξ
Ex 3
D
q NOT the identity — the interesting case, q ˙ 0 = 0
Ex 4
E
Sign / direction reversal — ω → − ω
Ex 5
F
Limiting / linearity — scale ω , super-fast spin behaviour
Ex 6
G
Pure-vector quaternion q 0 = 0 — top-row formula stress test
Ex 7
H
Real-world word problem — a satellite detumble reading
Ex 8
I
Exam twist — inertial-frame ω , must switch to Ω ( ω ) q
Ex 9
Worked example Example 1 — Cell A · Zero angular velocity
A satellite floats with its thrusters off: ω = ( 0 , 0 , 0 ) , current attitude q = ( 0.6 , 0 , 0.8 , 0 ) (a valid unit quaternion). What is q ˙ ?
Forecast: if nothing spins, the orientation should not change. Guess q ˙ = 0 before reading on.
Write the formula. q ˙ = 2 1 Ξ ( q ) ω .
Why this step? Always start from the one true relation; don't reason about "nothing happens" — let the math say it.
Substitute ω = 0 . A 4 × 3 matrix times the zero 3-vector is the zero 4-vector.
Why this step? Ξ ( q ) can be any numbers — multiplying by a zero column kills them all. The value of q is irrelevant.
q ˙ = 2 1 Ξ ( q ) 0 0 0 = 0 0 0 0 .
Verify: q ˙ = 0 means the attitude is frozen — exactly what "no rotation" should give. Units: Ξ is dimensionless, ω is rad/s, so q ˙ is (1/s), and 0 ⋅ anything is still 0 . ✔
Worked example Example 2 — Cell B · Single-axis spin from identity
Start at identity q = ( 1 , 0 , 0 , 0 ) , spin about body x only: ω = ( 0.1 , 0 , 0 ) rad/s. Find q ˙ .
Forecast: the x -part of the vector (q 1 ) should be the one waking up. Guess which entry of q ˙ is nonzero.
Build Ξ ( q ) at identity. With q 0 = 1 , q 1 = q 2 = q 3 = 0 :
Ξ ( q ) = 0 1 0 0 0 0 1 0 0 0 0 1 .
Why this step? At the identity the vector part is zero, so all q v terms drop and Ξ collapses to a clean "stack" of the 3 × 3 identity under a zero row.
Multiply and halve.
q ˙ = 2 1 Ξ ( q ) 0.1 0 0 = 2 1 0 0.1 0 0 = 0 0.05 0 0 .
Why this step? Only the first column of Ξ is picked out (because only ω 1 = 0 ), and the ½ is the half-angle factor from the parent derivation.
Verify: q ˙ 0 = 0 — the norm cannot change at this instant, consistent with q ⊤ q ˙ = 1 ⋅ 0 = 0 . Only q 1 grows, i.e. a roll about x is turning on. See the tangent-arrow picture below. ✔
The arrow above is q ˙ living tangent to the unit sphere S 3 at q — look at how it points along the surface, never outward. That is the norm-preservation fact made visible.
Worked example Example 3 — Cell C · All three axes at once (sign pattern)
Still at identity q = ( 1 , 0 , 0 , 0 ) , but now ω = ( ω 1 , ω 2 , ω 3 ) general. Show every component of q ˙ .
Forecast: each body-rate should feed its own vector slot, cleanly. Guess q ˙ v = 2 1 ω .
Reuse Ξ at identity (from Ex 2), multiply:
q ˙ = 2 1 0 1 0 0 0 0 1 0 0 0 0 1 ω 1 ω 2 ω 3 = 2 1 0 ω 1 ω 2 ω 3 .
Why this step? This is the "linearized" attitude update EKFs love: near identity, q ˙ v = 2 1 ω and q ˙ 0 = 0 . The attitude EKF uses exactly this small-angle picture.
Read the sign pattern. No minus signs appear because q v = 0 removed the skew (cross-product) block [ q v × ] .
Why this step? The minus signs in the general Ξ come from that skew block; killing q v shows the pattern is not arbitrary — it is the rotation non-commutativity encoded.
Verify: for ω = ( 0.1 , 0.2 , − 0.3 ) , q ˙ = ( 0 , 0.05 , 0.10 , − 0.15 ) . Norm rate q ⊤ q ˙ = 1 ⋅ 0 = 0 . ✔
Worked example Example 4 — Cell D · A quaternion that is NOT identity
This is the case people fear. Take q = ( 2 2 , 2 2 , 0 , 0 ) (a 90° roll about x , unit norm: 0.5 + 0.5 = 1 ). Spin about body x : ω = ( 0.1 , 0 , 0 ) . Find q ˙ .
Forecast: now q v = 0 , so the top row of Ξ (the − q v ⊤ row) is alive — expect q ˙ 0 = 0 . Guess its sign.
Write Ξ ( q ) fully. With q 0 = q 1 = 2 2 ≈ 0.707 , q 2 = q 3 = 0 :
Ξ ( q ) = − 0.707 0.707 0 0 0 0 0.707 0.707 0 0 − 0.707 0.707 .
Why this step? Every entry is now filled — no shortcut. This is the honest test of the formula.
Multiply by ω = ( 0.1 , 0 , 0 ) (only column 1 survives), then halve:
q ˙ = 2 1 − 0.707 0.707 0 0 ( 0.1 ) = − 0.0354 0.0354 0 0 .
Why this step? Now q ˙ 0 = − 0.0354 = 0 : as q 1 grows, q 0 must shrink to keep the length fixed — the sphere is curving.
Verify: norm rate q ⊤ q ˙ = 0.707 ( − 0.0354 ) + 0.707 ( 0.0354 ) + 0 + 0 = 0 . ✔ The two nonzero terms cancel because q ˙ is tangent. See figure: at a tilted q , the tangent arrow has a component along − q 0 .
Worked example Example 5 — Cell E · Reverse the spin direction
Same q = ( 2 2 , 2 2 , 0 , 0 ) as Ex 4, but flip the spin: ω = ( − 0.1 , 0 , 0 ) . Find q ˙ .
Forecast: since q ˙ is linear in ω , reversing ω should reverse q ˙ exactly. Guess the vector.
Use linearity. q ˙ ( − ω ) = 2 1 Ξ ( q ) ( − ω ) = − 2 1 Ξ ( q ) ω = − q ˙ ( ω ) .
Why this step? We already computed q ˙ ( ω ) in Ex 4; no need to redo the matrix product — the minus just carries through.
Write it down.
q ˙ = 0.0354 − 0.0354 0 0 .
Why this step? Now q 0 grows and q 1 shrinks — the roll is undoing itself, geometrically the mirror of Ex 4.
Verify: norm rate 0.707 ( 0.0354 ) + 0.707 ( − 0.0354 ) = 0 . ✔ And q ˙ ( − ω ) = − q ˙ ( ω ) confirms the sign-symmetry. ✔
Worked example Example 6 — Cell F · Scaling and the fast-spin limit
Fix q = ( 1 , 0 , 0 , 0 ) . First double ω from ( 0.1 , 0 , 0 ) to ( 0.2 , 0 , 0 ) . Then ask: as ω 1 → ∞ , what does ∥ q ˙ ∥ do?
Forecast: doubling ω doubles q ˙ (linearity). And as spin blows up, ∥ q ˙ ∥ grows without bound. Guess both before checking.
Scaling. From Ex 2, q ˙ ( 0.1 ) = ( 0 , 0.05 , 0 , 0 ) . So q ˙ ( 0.2 ) = 2 ⋅ ( 0 , 0.05 , 0 , 0 ) = ( 0 , 0.1 , 0 , 0 ) .
Why this step? Ξ ( q ) does not depend on ω , so q ˙ is a straight linear map of ω — this is the whole reason Ξ is a matrix , usable in RK4 stepping.
Limit. At identity ∥ q ˙ ∥ = 2 1 ∥ ω ∥ = 2 1 ∣ ω 1 ∣ → ∞ as ω 1 → ∞ .
Why this step? The tangent velocity magnitude is literally half the spin speed. Faster spin → faster slide along S 3 ; the picture never breaks, but a fixed timestep Δ t eventually under-samples it — the practical reason to renormalize and cap step size.
Verify: q ˙ ( 0.2 ) = ( 0 , 0.1 , 0 , 0 ) = 2 q ˙ ( 0.1 ) . ✔ And 2 1 ∥ ( 10 , 0 , 0 ) ∥ = 5 , i.e. ∥ q ˙ ∥ = 5 for ω 1 = 10 . ✔
Worked example Example 7 — Cell G · Pure-vector quaternion (
q 0 = 0 )
The stress test for the top row of Ξ . Take q = ( 0 , 1 , 0 , 0 ) — a valid unit quaternion (norm = 1 ) with zero scalar part (it represents a 180° rotation about x ). Spin about body x : ω = ( 0.2 , 0 , 0 ) . Find q ˙ .
Forecast: the top-row driver is − q v ⋅ ω . Here q v = ( 1 , 0 , 0 ) is parallel to ω , so that dot product is nonzero and large — expect q ˙ 0 = 0 and dominant . Guess its sign.
Write Ξ ( q ) with q 0 = 0 , q 1 = 1 , q 2 = q 3 = 0 .
Ξ ( q ) = − 1 0 0 0 0 0 0 1 0 0 − 1 0 .
Why this step? With q 0 = 0 the whole q 0 I part of the bottom block vanishes; only the skew (cross-product) entries survive there, and the top row − q v ⊤ = ( − 1 , 0 , 0 ) is now maximal.
Multiply by ω = ( 0.2 , 0 , 0 ) (column 1 only), then halve:
q ˙ = 2 1 − 1 0 0 0 ( 0.2 ) = − 0.1 0 0 0 .
Why this step? q ˙ 0 = − 0.1 dominates: at a 180° attitude, spinning about the same axis pulls q 0 down fastest, driving q around the far side of the sphere.
Verify: norm rate q ⊤ q ˙ = 0 ( − 0.1 ) + 1 ( 0 ) + 0 + 0 = 0 . ✔ Only the scalar part moves — exactly the top-row behaviour we wanted to isolate. Units rad/s. ✔
Worked example Example 8 — Cell H · Real satellite detumble reading
A CubeSat's gyro reports body rates ω = ( 0.02 , − 0.05 , 0.03 ) rad/s. Its current attitude estimate is q = ( 0.9 , 0.2 , − 0.3 , 0.244949 ) . (Check: 0.81 + 0.04 + 0.09 + 0.06 = 1.00 , unit.) Compute q ˙ for the next RK4 tick.
Forecast: all four components of q ˙ will be nonzero (both q v and full ω are active). Guess whether q ˙ 0 is + or − from − q v ⋅ ω .
Top entry q ˙ 0 = 2 1 ( − q v ⋅ ω ) = 2 1 ( − ( 0.2 ) ( 0.02 ) − ( − 0.3 ) ( − 0.05 ) − ( 0.244949 ) ( 0.03 ) ) .
Why this step? The first row of Ξ is − q v ⊤ ; it measures how much the spin points "along" the current vector part, which is what changes the scalar q 0 .
q ˙ 0 = 2 1 ( − 0.004 − 0.015 − 0.0073485 ) = 2 1 ( − 0.0263485 ) = − 0.01317.
Vector part q ˙ v = 2 1 ( q 0 ω + q v × ω ) .
Why this step? This is the bottom 3 × 3 block q 0 I + [ q v × ] acting on ω — the Rodrigues -style scalar-plus-cross structure.
Cross product q v × ω with q v = ( 0.2 , − 0.3 , 0.244949 ) , ω = ( 0.02 , − 0.05 , 0.03 ) :
q v × ω = ( ( − 0.3 ) ( 0.03 ) − ( 0.244949 ) ( − 0.05 ) , ( 0.244949 ) ( 0.02 ) − ( 0.2 ) ( 0.03 ) , ( 0.2 ) ( − 0.05 ) − ( − 0.3 ) ( 0.02 ) )
= ( 0.0032475 , − 0.0051010 , − 0.004 ) .
Then q 0 ω = ( 0.018 , − 0.045 , 0.027 ) , sum = ( 0.0212475 , − 0.0501010 , 0.023 ) , times ½:
q ˙ v = ( 0.0106237 , − 0.0250505 , 0.0115 ) .
Verify: full q ˙ = ( − 0.01317 , 0.0106237 , − 0.0250505 , 0.0115 ) . Norm rate q ⊤ q ˙ should be 0 : 0.9 ( − 0.01317 ) + 0.2 ( 0.0106237 ) + ( − 0.3 ) ( − 0.0250505 ) + 0.244949 ( 0.0115 ) = 0 (to numerical precision). ✔ Units all rad/s. ✔
Worked example Example 9 — Cell I · Exam twist: inertial-frame
ω
Trap question: "ω = ( 0 , 0 , 0.4 ) rad/s is given in the inertial frame, q = ( 1 , 0 , 0 , 0 ) . A student writes q ˙ = 2 1 q ⊗ ( 0 , ω ) . Is that right? Give the correct q ˙ ."
Forecast: body-rate formula post-multiplies; inertial rate must pre -multiply. Guess whether the numeric answer even differs here.
Diagnose the error. For inertial ω use left multiplication: q ˙ = 2 1 ( 0 , ω ) ⊗ q = 2 1 Ω ( ω ) q , with Ω ( ω ) from the definition callout above (and ⊗ is the Hamilton product defined earlier).
Why this step? Frame of ω dictates multiplication side — a classic flight-software bug (and worse than gimbal lock because it fails silently). The student used the body form.
Compute correctly. With Ω ( ω ) for ω = ( 0 , 0 , 0.4 ) and q = ( 1 , 0 , 0 , 0 ) :
Ω ( ω ) q = 0 0 0 0.4 0 0 − 0.4 0 0 0.4 0 0 − 0.4 0 0 0 1 0 0 0 = 0 0 0 0.4 , q ˙ = 0 0 0 0.2 .
Why this step? At the identity, body and inertial frames coincide , so here both formulas happen to give ( 0 , 0 , 0 , 0.2 ) — the twist is that this agreement is a coincidence of q = identity, not a general truth.
Verify: body form 2 1 Ξ ( q ) ω at identity also gives ( 0 , 0 , 0 , 0.2 ) (third column of the identity-Ξ times 0.4 , halved). ✔ They match only because q is the identity — for any tilted q they diverge, which is the point of the trap. ✔
Recall Self-test (open after you've tried)
If ω = 0 , what is q ˙ ? ::: The zero 4-vector, for any q .
At the identity quaternion, what is q ˙ 0 ? ::: Always 0 (the − q v ⋅ ω row vanishes since q v = 0 ).
Why does q ˙ ( − ω ) = − q ˙ ( ω ) ? ::: Because q ˙ = 2 1 Ξ ( q ) ω is linear in ω .
For a pure-vector quaternion q 0 = 0 spun about an axis parallel to q v , which component of q ˙ dominates? ::: The scalar part q ˙ 0 , since − q v ⋅ ω is then maximal.
For inertial-frame ω , which formula? ::: q ˙ = 2 1 Ω ( ω ) q (left multiply).
Mnemonic One-line memory hook
"Zero spin, frozen; identity, q 0 still; flip spin, flip rate; wrong frame, wrong side."