Reading and display settings

Appearance

System follows your operating system and keeps following it, even if you change it later. The header's sun, moon and monitor cycle the same three options.

Text size (%) 100%

Default. Scales every text size on the site, equations and tables included.

Reading width 70ch

How much text runs across one line of prose. Narrower is easier to track; wider fits more on screen.

Line spacing 1.6

The leading on body text. Taller leading helps a tired eye stay on the line.

Density

Padding and gaps around controls, cards, and tables — how much breathing room the layout leaves itself.

Motion

System follows your operating system. Reduced removes every transition on this site. Full keeps them on unless your system asks for less.

1

Differentiate the constraint

Where skew-symmetric matrices come from

🎯 Goal: derive, in two lines, that every velocity of a rotating frame is a skew-symmetric matrix times the frame, and meet angular velocity in its world-frame and body-frame forms.

Let $R(t)$ be any smooth path of rotations: a spinning drone, a camera on a gimbal. It satisfies $R(t)R(t)^\top = I$ at every instant. Differentiate both sides with the product rule:

$$ \dot R R^\top + R\dot R^\top = 0 \quad\Longrightarrow\quad \dot R R^\top = -\bigl(\dot R R^\top\bigr)^\top. $$

So $\dot R R^\top$ is skew-symmetric. A $3\times3$ skew matrix has only three free entries, so we can name them by a 3-vector $\omega$:

$$ \dot R R^\top = [\omega_s]_\times, \qquad [\omega]_\times = \begin{bmatrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix}. $$

Starting instead from $R^\top R = I$ gives a second skew matrix, $R^\top\dot R = [\omega_b]_\times$. These are the two angular velocities of the same motion. $\omega_s$ is expressed in the fixed world (spatial) frame, and $\omega_b$ is expressed in the moving body frame, which is what a strapped-down gyroscope measures. They are related by the rotation itself, $\omega_s = R\,\omega_b$: the first appearance of the adjoint, which Part 8 develops.

$$ \dot R = [\omega_s]_\times R = R\,[\omega_b]_\times. $$

The demo spins a body at a constant body rate. The readout estimates both skew matrices by finite differences from two nearby frames and reads off $\omega_s$ and $\omega_b$. The body rate stays fixed while the world rate swings around with the body.

ωs (world frame) R·(body axis of ωb)
2

Hat, vee and the cross product

$[\omega]_\times v = \omega\times v$

🎯 Goal: see that the skew matrix is the cross product in matrix clothing, and use it to find the velocity of every point on a spinning body.

Multiply $[\omega]_\times$ by any vector $v$ and you get exactly $\omega\times v$. That is why the notation has a $\times$ in it:

$$ \omega^\wedge = [\omega]_\times \in \mathfrak{so}(3), \qquad \bigl([\omega]_\times\bigr)^\vee = \omega \in \mathbb{R}^3, \qquad [\omega]_\times v = \omega \times v. $$

Hat ($^\wedge$) builds the matrix from the vector and vee ($^\vee$) reads the vector back. They are linear and inverse to each other, so $\mathfrak{so}(3)$ and $\mathbb{R}^3$ are the same vector space in two costumes. In practice every algorithm stores the 3-vector and only builds the matrix when it must multiply by it.

Physically, a point $p$ rigidly attached to a body spinning at $\omega$ moves with velocity $\dot p = [\omega]_\times p = \omega\times p$. That velocity is perpendicular to both the axis and the point, and proportional to the point's distance from the axis. Every point circles the axis. Turn the rate below and watch the velocity field: zero on the axis, largest at the rim.

The dark arrow is $\omega$. Small arrows are the velocities $\omega\times p$ of points scattered on a sphere around the origin. Drag to orbit.

3

Three generators and their one-parameter subgroups

A basis for the algebra

🎯 Goal: write every element of $\mathfrak{so}(3)$ as a combination of three basis matrices, and see each element as the velocity of a steady rotation.

The hats of the three unit vectors form a basis of $\mathfrak{so}(3)$, the generators of infinitesimal rotation about $x$, $y$ and $z$:

$$ G_1 = \begin{bmatrix}0&0&0\\0&0&-1\\0&1&0\end{bmatrix},\quad G_2 = \begin{bmatrix}0&0&1\\0&0&0\\-1&0&0\end{bmatrix},\quad G_3 = \begin{bmatrix}0&-1&0\\1&0&0\\0&0&0\end{bmatrix},\qquad [\omega]_\times = \omega_1 G_1 + \omega_2 G_2 + \omega_3 G_3. $$

Each algebra element $\omega$ generates a one-parameter subgroup, the path $t\mapsto \exp(t[\omega]_\times)$. It is the rotation you get by spinning steadily at rate $\omega$ for time $t$. These paths are the "straight lines" of the group: they pass through the identity, compose additively in $t$ ($\exp(s\hat\omega)\exp(t\hat\omega) = \exp((s+t)\hat\omega)$), and at $t = 2\pi/\lVert\omega\rVert$ they return to the start. The demo traces what the path does to a fixed vector $v$: a circle around the axis $\omega$, closing after one period.

The traced circle is $\exp(t[\omega]_\times)\,v$ for $t\in[0, t_{\max}]$. The frame is $\exp(t_{\max}[\omega]_\times)$ itself. Drag to orbit.

4

The Lie bracket: the cost of reordering

A loop that does not close

🎯 Goal: measure non-commutativity directly. Rotate forward about $a$, then $b$, then back about $a$, then back about $b$, and you do not return home. The gap is $\varepsilon^2(a\times b)$.

In a commutative group, "forward $a$, forward $b$, back $a$, back $b$" is a round trip. In $SO(3)$ it is not. For small steps $\varepsilon$ the leftover rotation is

$$ \operatorname{Exp}(\varepsilon a)\operatorname{Exp}(\varepsilon b)\operatorname{Exp}(-\varepsilon a)\operatorname{Exp}(-\varepsilon b) \;=\; \operatorname{Exp}\!\bigl(\varepsilon^2 [a,b] + O(\varepsilon^3)\bigr), $$

where the Lie bracket is the matrix commutator $[A,B] = AB-BA$. For $\mathfrak{so}(3)$ it has a beautiful form, the cross product:

$$ \bigl[\,[a]_\times, [b]_\times\bigr] = [a\times b]_\times. $$

So the bracket of two algebra elements is another algebra element, and the algebra is closed under it. That closure is what makes the algebra a faithful local copy of the group. The demo follows the tip of a vector around the four legs of the loop. The loop fails to close by a rotation about $a\times b$. Shrink $\varepsilon$ and the gap shrinks like $\varepsilon^2$: halving $\varepsilon$ quarters it.

The four colored legs are the four rotations applied in turn to a vector's tip. The magenta arrow is $a\times b$. Drag to orbit.

5

Why the bracket matters: combining exponentials

A first look at Baker–Campbell–Hausdorff

🎯 Goal: see that $\operatorname{Log}(\operatorname{Exp}(a)\operatorname{Exp}(b))$ is $a+b$ plus bracket corrections, and measure how much each correction buys.

If rotations commuted, $\operatorname{Exp}(a)\operatorname{Exp}(b) = \operatorname{Exp}(a+b)$ and every rotation problem would be a vector problem. They do not, and the correction is written entirely in brackets. That is the Baker–Campbell–Hausdorff (BCH) formula:

$$ \operatorname{Log}\bigl(\operatorname{Exp}(a)\operatorname{Exp}(b)\bigr) = a + b + \tfrac12[a,b] + \tfrac1{12}\bigl([a,[a,b]] + [b,[b,a]]\bigr) + \cdots $$

Two consequences drive the rest of the series. First, for small $a$ and $b$ the error of simply adding is second order, which is why linearization works. Second, when one of the two is small, the whole series can be summed in closed form, and that sum is the Jacobian of Part 9. Scale both vectors below and compare the three approximations with the exact answer.

$\log_{10}$ error against $\log_{10}$ scale $s$, for $a=s\,\hat a$ and $b = s\,\hat b$. The slopes are 2, 3 and 4: each extra bracket term buys one more order.

6

What to carry forward

ObjectFormulaMeaning
Lie algebra $\mathfrak{so}(3)$$\{[\omega]_\times : \omega\in\mathbb{R}^3\}$tangent space at $I$; skew-symmetric matrices
Hat / vee$\omega^\wedge = [\omega]_\times$, $([\omega]_\times)^\vee = \omega$vector ↔ matrix; $[\omega]_\times v = \omega\times v$
Angular velocity$\dot R = [\omega_s]_\times R = R[\omega_b]_\times$world rate on the left, body rate on the right; $\omega_s = R\omega_b$
Generators$G_i = e_i^\wedge$basis of the algebra
One-parameter subgroup$t\mapsto \exp(t[\omega]_\times)$steady spin at rate $\omega$
Bracket$[a^\wedge, b^\wedge] = (a\times b)^\wedge$failure of two small rotations to commute
BCH$a + b + \tfrac12 a\times b + \cdots$composing in the group, written in the algebra
7

Check your understanding

0/5 answered