Lie theory formula sheet
Everything from the series in one place, with the conventions stated once. The tangent vector of a pose lists translation first, $\tau = (\rho, \phi)$. Perturbations are on the right, $X\oplus\tau = X\operatorname{Exp}(\tau)$, unless marked left. All Jacobians are tangent-space Jacobians (Part 9). Throughout, $\theta = \lVert\phi\rVert$ and $[\cdot]_\times$ is the skew-symmetric (hat) matrix. The calculator at the bottom evaluates every formula for an input you choose, and checks it against a numerical derivative.
Rules for any Lie group
| Plus / minus (right) | $X\oplus\tau = X\operatorname{Exp}(\tau)$, $\quad Y\ominus X = \operatorname{Log}(X^{-1}Y)$ |
| Plus / minus (left) | $\tau\oplus X = \operatorname{Exp}(\tau)X$, $\quad Y\ominus X = \operatorname{Log}(YX^{-1})$ |
| Adjoint | $X\operatorname{Exp}(\tau) = \operatorname{Exp}(\operatorname{Ad}_X\tau)X$, $\quad \operatorname{Ad}_{XY} = \operatorname{Ad}_X\operatorname{Ad}_Y$, $\quad \operatorname{Ad}_{X^{-1}} = \operatorname{Ad}_X^{-1}$ |
| Exp Jacobians | $\operatorname{Exp}(\tau+\delta)\approx\operatorname{Exp}(\tau)\operatorname{Exp}(J_r(\tau)\delta) \approx \operatorname{Exp}(J_l(\tau)\delta)\operatorname{Exp}(\tau)$, $\quad J_l(\tau) = J_r(-\tau) = \operatorname{Ad}_{\operatorname{Exp}\tau}J_r(\tau)$ |
| Log Jacobian | $\operatorname{Log}(\operatorname{Exp}(\tau)\operatorname{Exp}(\delta))\approx\tau + J_r^{-1}(\tau)\,\delta$ |
| BCH | $\operatorname{Log}(\operatorname{Exp}a\operatorname{Exp}b) = a + b + \tfrac12[a,b] + \tfrac1{12}([a,[a,b]] + [b,[b,a]]) + \cdots$ |
| Elementary Jacobians | $\partial X^{-1}/\partial X = -\operatorname{Ad}_X$; $\quad \partial(XY)/\partial X = \operatorname{Ad}_Y^{-1}$; $\quad \partial(XY)/\partial Y = I$; $\quad \partial\operatorname{Log}X/\partial X = J_r^{-1}(\operatorname{Log}X)$; $\quad \partial(Y\ominus X)/\partial X = -J_l^{-1}(\tau)$, $\partial(Y\ominus X)/\partial Y = J_r^{-1}(\tau)$ with $\tau = Y\ominus X$ |
| Chain rule | $\dfrac{\partial f(g(X))}{\partial X} = \dfrac{\partial f}{\partial g}\dfrac{\partial g}{\partial X}$ |
| Covariance | $X = \bar X\operatorname{Exp}(\varepsilon)$, $\varepsilon\sim\mathcal{N}(0,\Sigma)$; $\quad\Sigma_{f(X)} \approx J\Sigma J^\top$; $\quad \Sigma_{\text{left}} = \operatorname{Ad}_{\bar X}\Sigma_{\text{right}}\operatorname{Ad}_{\bar X}^\top$ |
| Motion model | $X_{k+1} = X_k\operatorname{Exp}(u+n)$: $\ \Sigma_{k+1} = \operatorname{Ad}^{-1}_{\operatorname{Exp}u}\Sigma_k\operatorname{Ad}^{-\top}_{\operatorname{Exp}u} + J_r(u)QJ_r(u)^\top$ |
| Gauss–Newton step | $(\sum J_i^\top J_i)\,\delta = -\sum J_i^\top r_i$, $\quad X\leftarrow X\oplus\delta$ |
SO(2): planar rotations
| Element | $R(\theta) = \begin{bmatrix}\cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\end{bmatrix}$, or $z = e^{i\theta}$; dimension 1 |
| Hat / vee | $\theta^\wedge = \theta E$, $E = \begin{bmatrix}0&-1\\1&0\end{bmatrix}$, $E^2 = -I$ |
| Exp / Log | $\operatorname{Exp}(\theta) = R(\theta)$; $\quad\operatorname{Log}(R) = \operatorname{atan2}(R_{21}, R_{11})\in(-\pi,\pi]$ |
| Plus / minus | angle addition and subtraction, wrapped into $(-\pi,\pi]$ |
| Ad, $J_r$, $J_l$ | all equal to $1$ (commutative group) |
| Action | $\partial(Rp)/\partial\theta = R\,E\,p$, $\quad\partial(Rp)/\partial p = R$ |
SO(3): 3D rotations
| Element | $R\in\mathbb{R}^{3\times3}$, $R^\top R = I$, $\det R = 1$; dimension 3 |
| Hat / vee | $[\phi]_\times = \begin{bmatrix}0&-\phi_3&\phi_2\\ \phi_3&0&-\phi_1\\ -\phi_2&\phi_1&0\end{bmatrix}$, $\quad[\phi]_\times v = \phi\times v$, $\quad[a,b] = a\times b$ |
| Exp | $I + \dfrac{\sin\theta}{\theta}[\phi]_\times + \dfrac{1-\cos\theta}{\theta^2}[\phi]_\times^2$ (small $\theta$: $I + [\phi]_\times + \tfrac12[\phi]_\times^2$) |
| Log | $\theta = \operatorname{atan2}\bigl(\tfrac12\lVert(R-R^\top)^\vee\rVert,\ \tfrac12(\operatorname{tr}R-1)\bigr)$, $\ \phi = \dfrac{\theta}{2\sin\theta}(R-R^\top)^\vee$; near $\theta=0$ use $\tfrac12+\theta^2/12$; near $\pi$ read $k$ from $kk^\top = \dfrac{\operatorname{sym}R - \cos\theta\,I}{1-\cos\theta}$ |
| Adjoint | $\operatorname{Ad}_R = R$ |
| $J_r$ | $I - \dfrac{1-\cos\theta}{\theta^2}[\phi]_\times + \dfrac{\theta-\sin\theta}{\theta^3}[\phi]_\times^2$ (small $\theta$: $I - \tfrac12[\phi]_\times + \tfrac16[\phi]_\times^2$) |
| $J_r^{-1}$ | $I + \tfrac12[\phi]_\times + \Bigl(\dfrac1{\theta^2} - \dfrac{1+\cos\theta}{2\theta\sin\theta}\Bigr)[\phi]_\times^2$ (small $\theta$: coefficient $\tfrac1{12}$) |
| $J_l$, $J_l^{-1}$ | $J_l(\phi) = J_r(-\phi) = R\,J_r(\phi)$, $\quad J_l^{-1}(\phi) = J_r^{-1}(-\phi)$ |
| Action | $\partial(Rp)/\partial\delta = -R[p]_\times$ (right), $\ -[Rp]_\times$ (left); $\quad\partial(Rp)/\partial p = R$ |
| Kinematics | $\dot R = R[\omega_b]_\times = [\omega_s]_\times R$, $\ \omega_s = R\,\omega_b$; exact step $R\leftarrow R\operatorname{Exp}(\omega_b\Delta t)$ |
| Quaternion | $q = (\cos\tfrac\theta2, \sin\tfrac\theta2\,\hat\phi)$; $\ q$ and $-q$ are the same rotation; $\ v' = qvq^*$ |
| Distances | geodesic $\lVert\operatorname{Log}(R_1^\top R_2)\rVert$; chordal $\lVert R_1 - R_2\rVert_F = 2\sqrt2\sin(\theta/2)$ |
SE(2): planar poses
| Element | $T = \begin{bmatrix}R(\theta) & t\\ 0 & 1\end{bmatrix}$; $\tau = (\rho_1,\rho_2,\theta)$; dimension 3 |
| Hat | $\tau^\wedge = \begin{bmatrix}\theta E & \rho\\ 0 & 0\end{bmatrix}$ |
| Exp | $\begin{bmatrix}R(\theta) & V(\theta)\rho\\ 0 & 1\end{bmatrix}$, $\quad V(\theta) = \dfrac1\theta\begin{bmatrix}\sin\theta & -(1-\cos\theta)\\ 1-\cos\theta & \sin\theta\end{bmatrix}$ |
| Log | $\theta = \operatorname{atan2}(R_{21},R_{11})$, $\ \rho = V(\theta)^{-1}t$ |
| Inverse | $T^{-1} = \begin{bmatrix}R^\top & -R^\top t\\ 0 & 1\end{bmatrix}$ |
| Adjoint | $\operatorname{Ad}_T = \begin{bmatrix} R & -E\,t\\ 0 & 1\end{bmatrix}$ (i.e. last column $(t_2, -t_1, 1)$) |
| $J_r$ | $\begin{bmatrix}\frac{\sin\theta}{\theta} & \frac{1-\cos\theta}{\theta} & \frac{\theta\rho_1-\rho_2+\rho_2\cos\theta-\rho_1\sin\theta}{\theta^2}\\ \frac{\cos\theta-1}{\theta} & \frac{\sin\theta}{\theta} & \frac{\rho_1+\theta\rho_2-\rho_1\cos\theta-\rho_2\sin\theta}{\theta^2}\\ 0&0&1\end{bmatrix}$ |
| $J_l$ | $\begin{bmatrix}\frac{\sin\theta}{\theta} & \frac{\cos\theta-1}{\theta} & \frac{\theta\rho_1+\rho_2-\rho_2\cos\theta-\rho_1\sin\theta}{\theta^2}\\ \frac{1-\cos\theta}{\theta} & \frac{\sin\theta}{\theta} & \frac{-\rho_1+\theta\rho_2+\rho_1\cos\theta-\rho_2\sin\theta}{\theta^2}\\ 0&0&1\end{bmatrix}$ |
| Action | $\partial(Tp)/\partial\tau = \bigl[\,R\ \ R\,E\,p\,\bigr]$ $(2\times3)$ |
SE(3): rigid-body poses
| Element | $T = \begin{bmatrix}R & t\\ 0^\top & 1\end{bmatrix}$; $\tau = (\rho,\phi)\in\mathbb{R}^6$; dimension 6 |
| Hat | $\tau^\wedge = \begin{bmatrix}[\phi]_\times & \rho\\ 0^\top & 0\end{bmatrix}$ |
| Exp | $\begin{bmatrix}\operatorname{Exp}(\phi) & V(\phi)\rho\\ 0^\top & 1\end{bmatrix}$, $\quad V(\phi) = J_l^{SO(3)}(\phi)$ |
| Log | $\phi = \operatorname{Log}(R)$, $\ \rho = J_l^{-1}(\phi)\,t$ |
| Screw | axis $\hat\phi$ through $q = \phi\times\rho/\theta^2$, pitch $h = \phi\cdot\rho/\theta^2$ |
| Adjoint | $\operatorname{Ad}_T = \begin{bmatrix}R & [t]_\times R\\ 0 & R\end{bmatrix}$; $\quad\operatorname{ad}_\tau = \begin{bmatrix}[\phi]_\times & [\rho]_\times\\ 0 & [\phi]_\times\end{bmatrix}$ |
| $J_l$, $J_r$ | $J_l(\tau) = \begin{bmatrix}J_l(\phi) & Q(\rho,\phi)\\ 0 & J_l(\phi)\end{bmatrix}$, $\quad J_r(\tau) = J_l(-\tau)$ |
| $Q(\rho,\phi)$ | $\tfrac12 P + c_1(\Phi P + P\Phi + \Phi P\Phi) + c_2(\Phi^2P + P\Phi^2 - 3\Phi P\Phi) + c_3(\Phi P\Phi^2 + \Phi^2P\Phi)$, with $P = [\rho]_\times$, $\Phi = [\phi]_\times$, $c_1 = \frac{\theta-\sin\theta}{\theta^3}$, $c_2 = \frac{\theta^2+2\cos\theta-2}{2\theta^4}$, $c_3 = \frac{2\theta-3\sin\theta+\theta\cos\theta}{2\theta^5}$ |
| Action | $\partial(Tp)/\partial\tau = \bigl[\,R\ \ -R[p]_\times\,\bigr]$ (right); $\ \partial(T^{-1}p)/\partial\tau = \bigl[\,-I\ \ [T^{-1}p]_\times\,\bigr]$ |
Conventions to check
Pose3. Reorder with a permutation on both sides of Jacobians and covariances.Calculator
Evaluate any formula above
Choose a group and a tangent vector. The calculator evaluates Exp, Log (and the round trip), the adjoint of $\operatorname{Exp}(\tau)$, and both Jacobians. It also compares $J_r$ with a central-difference estimate, so you can use it to check your own implementation's numbers.