3.5.3 · D5Guidance, Navigation & Control (GNC)
Question bank — Direction cosine matrix (DCM) — construction from Euler angles
Before the questions, here is a self-contained picture of everything the traps below use.
True or false — justify
TF1. "A DCM stores the vector itself, so applying it to a vector rotates that vector in space."
False. The vehicle turns, but only re-expresses the same physical vector's components in a new frame — the arrow in space never moves. Rotating the axes by looks numerically like rotating the vector by , which is why signs feel backwards.
TF2. "Every entry of a DCM lies between and ."
True. Each cell is (the grid in Figure s02), and a cosine can never leave . If you ever compute a cell of magnitude , your matrix is corrupted (not orthonormal).
TF3. " and are different matrices, but ."
True. Reversing the translation direction inverts the matrix, and for a rotation the inverse is the transpose: . Flipping the grid across its diagonal undoes the turn.
TF4. "Because , every symmetric matrix is a DCM."
False. means orthogonal, not symmetric. Most DCMs are not symmetric (a yaw isn't). You also need to exclude reflections.
TF5. "The columns of a DCM are unit vectors, and so are the rows."
True. Orthonormality ( and ) forces both rows and columns to be mutually perpendicular unit vectors — one statement is the row version, the other the column version of the same fact.
TF6. "Multiplying two valid DCMs always gives another valid DCM."
True. The product of two rotations is a rotation: orthogonality and both survive multiplication (). This closure is exactly what makes SO(3) a group.
TF7. "A -- sequence and a -- sequence with the same angle values give the same DCM."
False. Matrix multiplication doesn't commute, so rotation order changes the result. Same numbers, different sequence = different attitude in general.
TF8. "For very small angles the order of the three rotations stops mattering."
True, but only to first order. Each tiny turn is ; multiplying two gives . The linear part is a plain sum of skew matrices, and addition commutes, so swapping order only changes the discarded block. That surviving sum is exactly .
TF9. "Gimbal lock means the DCM becomes singular (non-invertible)."
False. The DCM stays a perfectly good rotation with ; it is the Euler-angle parameterization that goes singular, because at pitch two of the three angles rotate about the same physical axis.
Spot the error
SE1. " should have in the bottom-left, matching and ."
Error. Mini-derivation: pitch spins the – plane, so a point at goes to , (the standard 2D turn in the order). Because the ordered pair here is not , when you write the matrix in normal row order the lands in the top-right () and in the bottom-left () — the opposite of . Figure s03's middle panel shows this plane; always re-derive by asking which two axes span the rotation plane and in what cyclic order.
SE2. "To go from to we apply yaw first, so yaw's matrix must sit leftmost: ."
Error. Each matrix acts on the output of the previous one (Figure s04), so the last physical rotation multiplies first (leftmost). Correct order is — yaw (), applied first, sits rightmost; roll (), applied last, sits leftmost.
SE3. "To recover yaw I use ."
Error. Plain collapses the two quadrants that share a tangent value, so signs of get lost. Use , which reads both signs separately and returns the correct quadrant across the full .
SE4. "Pitch comes from ."
Error — a sign slip. In the 3-2-1 DCM the entry is (here is the pitch angle), so . Forgetting the minus flips your pitch upside down.
SE5. "Since , I can build a DCM by picking any three perpendicular vectors as rows."
Half-error. Perpendicular unit rows give orthogonality but can still produce a reflection (, a left-handed frame). You must also ensure right-handedness: , giving .
SE6. "In the small-angle DCM , the vector is in yaw-pitch-roll order."
Error. The skew vector orders components by axis number, not rotation sequence: for axes (recall , , ). This ordering is what makes it plug directly into a linearized error state.
Why questions
WHY1. Why is each DCM entry a cosine rather than, say, a distance or a raw coordinate?
Because it is a dot product of two unit vectors, and when both have length . The cosine cleanly measures "how much of one axis points along another" on a fixed scale.
WHY2. Why do we chain single-axis rotations by multiplying matrices instead of adding angles?
Rotations about different axes don't add like numbers — they interact. Matrix multiplication is precisely the operation that composes "do this transform, then that transform," respecting that the second acts on the result of the first (Figure s04).
WHY3. Why does getting "for free" matter so much in flight software?
Inverting a general matrix costs arithmetic and can amplify round-off; transposing is just relabeling entries — exact and instant. On a power- and cycle-limited flight computer that saving, done thousands of times per second, is huge.
WHY4. Why does the entry depend on pitch alone, not yaw or roll?
maps the inertial -axis onto the body -axis. In the -- build, only the pitch rotation () tilts the body -axis out of the inertial horizontal plane; yaw spins within that plane and roll happens after, so neither touches this particular projection. It's a handy sanity anchor.
WHY5. Why does GNC often store attitude as a quaternion and convert to Euler angles only for display?
Euler angles hit the gimbal-lock singularity and their rate equations blow up near pitch . Quaternions parameterize the same rotations with no singularity, so the internal state stays well-behaved; humans just prefer reading angles.
WHY6. Why must specifically, and not ?
would encode a reflection — turning a right-handed frame into a left-handed mirror image, which no physical rotation can do. A proper rotation preserves handedness, forcing .
WHY7. Why does the small-angle DCM turn out to be minus a skew-symmetric matrix?
An infinitesimal rotation of a vector is a tiny cross product, , and the cross product is exactly what the skew-symmetric operator performs. So is just "identity plus a tiny cross-product nudge."
Edge cases
EC1. What does the DCM look like for zero rotation, and why?
It is the identity matrix . With all angles zero, every body axis coincides with its inertial counterpart, so when and otherwise — exactly .
EC2. At both pitch and , what happens to the recovered yaw and roll — and why are the two cases symmetric?
In both cases , so yaw () and roll () turn about the same physical axis and only their combination is recoverable, not each separately. At the DCM depends on yaw and roll only through the difference ; at only through the sum — mirror-image versions of the same singularity, since flipping the sign of pitch flips the relative sense of the two collapsed axes.
EC3. Is a full yaw the same DCM as yaw?
Yes — and , giving identical matrices. The DCM is periodic in each angle with period ; distinct angle triples can name the same attitude.
EC4. Do yaw and roll+pitch that flip the vehicle the other way ever collide as the same DCM?
Yes — this is Euler-angle non-uniqueness. Different triples can produce one identical DCM (a flip is reachable multiple ways), which is why extraction formulas pick one canonical representative.
EC5. If someone hands you a matrix with orthonormal rows but , what is it?
An improper rotation (rotation combined with a reflection). It is a valid orthogonal matrix but not a DCM, because it flips handedness — no rigid body can physically achieve it.
EC6. What is the DCM's behaviour as roll while yaw and pitch are arbitrary?
The terms collapse () and — a clean two-rotation matrix. No singularity here; only pitch triggers gimbal lock, roll does not.
Recall One-line self-test
Cover everything and answer aloud: Why is order-of-multiplication crucial in general but irrelevant to first order for small angles? ::: Rotations don't commute, so full products depend on order; but the small-angle DCM keeps only linear terms , and adding tiny skew matrices does commute — order lives entirely in the discarded second-order terms.
Connections
- Direction cosine matrix (DCM) — construction from Euler angles (index 3.5.3)
- Quaternions — avoiding gimbal lock
- Euler angles — kinematic differential equations
- Rotation group SO(3) and orthogonal matrices
- Attitude determination — TRIAD & QUEST
- Kalman filter — linearized attitude error state
- Angular velocity and skew-symmetric matrices