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

Left or right: the same numbers, different moves

Body frame versus world frame

🎯 Goal: see that $X\operatorname{Exp}(\tau)$ and $\operatorname{Exp}(\tau)X$ are different poses, and that a converted perturbation $\operatorname{Ad}_X\tau$ on the left reproduces the right one exactly.

A right perturbation, $X\oplus\tau = X\operatorname{Exp}(\tau)$, is expressed in the local (body) frame: "move $0.6$ forward, where forward is wherever I am facing". A left perturbation, $\tau\oplus X = \operatorname{Exp}(\tau)X$, is expressed in the global (world) frame: "move $0.6$ along world $x$, and turn about the world origin". With the same six (or three) numbers these differ. They agree only when there is a vector that, placed on the left, does the same job as $\tau$ on the right:

$$ X\operatorname{Exp}(\tau) = \operatorname{Exp}(\operatorname{Ad}_X\tau)\,X \quad\Longleftrightarrow\quad \operatorname{Ad}_X\tau = \bigl(X\,\tau^\wedge X^{-1}\bigr)^\vee. $$

Drag the robot and set a perturbation. Blue applies it on the right, magenta dashed applies the same numbers on the left, and the hollow outline applies $\operatorname{Ad}_X\tau$ on the left, landing exactly on blue.

X (drag) X·Exp(τ) Exp(τ)·X Exp(AdXτ)·X
2

The adjoint of SO(3) is the rotation itself

Re-expressing an axis in another frame

🎯 Goal: derive $\operatorname{Ad}_R = R$ in one line, and see it as "rotate the rotation axis into the world frame".

Conjugating a skew matrix by a rotation rotates the vector inside it, $R[\tau]_\times R^\top = [R\tau]_\times$. (Check it on any vector: both sides map $v$ to $R(\tau\times R^\top v) = (R\tau)\times v$.) Exponentiating both sides:

$$ R\operatorname{Exp}(\tau)R^\top = \operatorname{Exp}(R\tau) \quad\Longrightarrow\quad \operatorname{Ad}_R = R. $$

A small rotation about a body-frame axis $\tau$ is the same as a small rotation about the world-frame axis $R\tau$. That is the relation $\omega_s = R\,\omega_b$ from Part 4, now seen as an adjoint. In the demo, the body axis (drawn attached to the body) and its world image $R\tau$ produce the same final orientation.

τ as a body axis → R·Exp(τ) R τ as a world axis → Exp(Rτ)·R τ misused as a world axis
3

The adjoint of SE(3) and the lever arm

A body rotation is a world rotation plus a world translation

🎯 Goal: read the $6\times6$ adjoint of a pose block by block, and see its off-diagonal block as the lever-arm effect: turning about an axis far from the origin moves you.

For $T = (R, t)$ and $\tau = (\rho, \phi)$, conjugation gives

$$ \operatorname{Ad}_T = \begin{bmatrix} R & [t]_\times R\\ 0 & R\end{bmatrix}, \qquad \operatorname{Ad}_T\begin{pmatrix}\rho\\ \phi\end{pmatrix} = \begin{pmatrix} R\rho + t\times R\phi \\ R\phi\end{pmatrix}. $$

The rotation part transforms like $SO(3)$: $\phi_{\text{world}} = R\phi$. The translation part picks up $t\times R\phi$. A body spinning in place at a point $t$ away from the world origin, seen as a world-frame twist, is a rotation about an axis through the origin plus a translation $t\times\omega$ that keeps the body where it is. It is the same arithmetic as a wrench and its lever arm. Slide the body away from the origin and watch the world twist gain a translational part, although the body twist is pure rotation.

The body spins about its own vertical axis (body twist: $\rho=0$, $\phi$ along body $z$). The magenta arrow is the translational part $t\times R\phi$ of the equivalent world twist; the ghost poses are $\operatorname{Exp}(s\operatorname{Ad}_T\tau)\,T$ for several $s$. Drag to orbit.

4

Adjoint identities, checked

A homomorphism and its derivative

🎯 Goal: know the handful of identities the adjoint satisfies, and see that its derivative, the small adjoint $\operatorname{ad}$, is the Lie bracket in matrix form.

The adjoint is a group homomorphism into matrices: it respects products and inverses. Its derivative at the identity is the small adjoint $\operatorname{ad}_a$, the matrix of "bracket with $a$". For $SO(3)$ that is $\operatorname{ad}_a = [a]_\times$. For $SE(3)$ it is a $6\times6$ block matrix:

$$ \operatorname{Ad}_{XY} = \operatorname{Ad}_X\operatorname{Ad}_Y,\quad \operatorname{Ad}_{X^{-1}} = \operatorname{Ad}_X^{-1},\quad \operatorname{ad}_a b = [a,b],\quad \operatorname{Ad}_{\operatorname{Exp}(a)} = \exp(\operatorname{ad}_a),\quad \operatorname{ad}_{(\rho,\phi)} = \begin{bmatrix}[\phi]_\times & [\rho]_\times\\ 0 & [\phi]_\times\end{bmatrix}. $$

The last identity is the bridge to Part 9: the Jacobians of Exp are power series in $\operatorname{ad}$. The button below draws random poses and twists and checks each identity numerically on $SE(3)$.

5

Conventions you will meet

What a "delta" means in each library

🎯 Goal: before combining a Jacobian or a covariance from two sources, check which side it perturbs on and in which order its tangent coordinates are stored.

Two questions settle almost every convention mismatch. Does the perturbation compose on the right (body frame) or the left (world frame)? Does the tangent vector list translation or rotation first? The table summarises common choices; always confirm against the documentation of the version you use.

SourcePose tangent orderDefault perturbation
Solà, Deray & Atchuthan, "A micro Lie theory" / manif$(\rho, \theta)$: translation firstright, $X\operatorname{Exp}(\tau)$; left versions also given
Barfoot, State Estimation for Robotics$(\rho, \phi)$: translation firstleft, $\operatorname{Exp}(\epsilon^\wedge)\bar T$
GTSAM Pose3$(\omega, v)$: rotation firstright, $T\operatorname{Exp}(\xi)$
Sophus SE3$(\upsilon, \omega)$: translation firstprovides Exp, Log and group products; the side you perturb on is your choice (its Dx_this_mul_exp_x_at_0 helper is the right-perturbation derivative)
Ceres QuaternionManifoldrotation onlyleft, $\operatorname{Exp}(\delta)\,q$, with $\delta$ a half-angle vector
This series$(\rho, \phi)$: translation firstright, unless stated

Converting between them is mechanical. A right-perturbation Jacobian $J_r$ becomes a left one by $J_l = J_r\operatorname{Ad}_X^{-1}$, a covariance by $\Sigma_l = \operatorname{Ad}_X\Sigma_r\operatorname{Ad}_X^\top$ (Part 11), and a reordering of the tangent is a permutation matrix applied on both sides.

6

Check your understanding

0/5 answered