Cookie Consent by Free Privacy Policy Generator Appendix A1 — Lie Groups, Lie Algebras, and the Exponential Map of SE(2) | Igor Moiseev
Lab › Geometry of Seeing › Appendix A1

Appendix A1 — Lie Groups, Lie Algebras, and the Exponential Map of SE(2)

What "left-invariant vector field" really means, why the Lie bracket of two vector fields is the same thing as the matrix commutator, and why $\exp(tX)$ generates a 1-parameter subgroup. Everything Part 1 used about SE(2), derived from scratch.

By Igor Moiseev · 1 May 2026 · arXiv:0807.4731 · with Yu. L. Sachkov
Geometry of Seeing
  1. The Visual Cortex as a Contact Manifold
  2. Euler's Elastica and Jacobi Elliptic Functions
  3. Maxwell Strata: When Optimal Paths Fork
  4. The Open Problem: Exact Cut Time on SE(2)
Appendices — Theory Background
  1. A1. Lie Groups, Lie Algebras, and the Exponential Map of SE(2) ← you are here
  2. A2. Distributions, Frobenius, and Contact Geometry
  3. A3. Calculus of Variations and the Pontryagin Maximum Principle
  4. A4. Jacobi Elliptic Functions, Elliptic Integrals, and the AGM
  5. A5. The Sub-Riemannian Exponential Map of SE(2)
What this appendix is for
Part 1 of the series uses the language of Lie groups and Lie algebras as if it were standard furniture: $\mathrm{SE}(2)$, $\mathfrak{se}(2)$, left-invariant vector fields $X_1 = \cos\theta\,\partial_x + \sin\theta\,\partial_y$, the bracket $[X_1, X_2] = -X_3$, the exponential map. This appendix builds those objects from scratch. Read it once and Part 1 becomes a calmer text. All three figures below are powered by the same $\mathrm{SE}(2)$ matrix exponential routine that the elliptic project uses to draw the Dubins-car parking trajectories.

A Lie group is a smooth manifold that is also a group

A Lie group $G$ is a set carrying two compatible structures:

Compatibility means: multiplication $(g, h) \mapsto gh$ and inversion $g \mapsto g^{-1}$ are smooth maps. That is the whole definition.

Examples that come up in the series:

$G$ Description Dim
$(\mathbb R, +)$ additive line 1
$S^1 \cong \mathrm{SO}(2)$ unit complex numbers, rotations of the plane 1
$\mathrm{SO}(3)$ rotations of $\mathbb R^3$ 3
$\mathrm{SE}(2) = \mathbb R^2 \rtimes \mathrm{SO}(2)$ rigid motions of the plane 3
$\mathrm{GL}_n(\mathbb R)$ invertible $n\times n$ matrices $n^2$

Two facts you can take for granted in what follows: every closed subgroup of $\mathrm{GL}_n(\mathbb R)$ is automatically a smooth manifold (Cartan), and all the Lie groups we meet in the series sit inside some $\mathrm{GL}_n$ as matrices. So “Lie group” means matrix group for our purposes, and every abstract construction has a concrete matrix incarnation.

SE(2) as a $3\times 3$ matrix group

A configuration of $\mathrm{SE}(2)$ is a triple $(x, y, \theta)$: a translation $(x, y) \in \mathbb R^2$ followed by a rotation by $\theta \in S^1$. The corresponding matrix is

\[g(x, y, \theta) \;=\; \begin{pmatrix} \cos\theta & -\sin\theta & x \\ \sin\theta & \cos\theta & y \\ 0 & 0 & 1 \end{pmatrix}\;\in\;\mathrm{GL}_3(\mathbb R).\]

Acting on a column $(p_x, p_y, 1)^\top$ produces the rotated-and-translated point. The product of two such matrices is again of the same form (try it): $\mathrm{SE}(2)$ is closed under multiplication. The identity is at $x = y = \theta = 0$. The inverse is

\[g(x, y, \theta)^{-1} \;=\; g\!\bigl(-x\cos\theta - y\sin\theta,\;\; x\sin\theta - y\cos\theta,\;\; -\theta\bigr).\]

Composition is not commutative: rotating then translating is not the same as translating then rotating. Lie-group non-commutativity is the entire reason the Lie bracket has anything to say.

The Lie algebra $\mathfrak g = T_e G$

The Lie algebra of $G$ is the tangent space at the identity:

\[\mathfrak g \;:=\; T_e G.\]

For a matrix group it is concretely a vector space of $n\times n$ matrices. A curve $\gamma: (-\varepsilon, \varepsilon) \to G$ with $\gamma(0) = e$ has $\gamma’(0) \in \mathfrak g$. Differentiating $g(\varepsilon\, a, \varepsilon\, b, \varepsilon\, c)$ at $\varepsilon = 0$ in the three coordinate directions gives

\[E_1 = \begin{pmatrix} 0&0&1 \\ 0&0&0 \\ 0&0&0 \end{pmatrix},\;\; E_2 = \begin{pmatrix} 0&0&0 \\ 0&0&1 \\ 0&0&0 \end{pmatrix},\;\; E_3 = \begin{pmatrix} 0&-1&0 \\ 1&0&0 \\ 0&0&0 \end{pmatrix},\]

a basis of $\mathfrak{se}(2)$. $E_1$ is “translate in $x$”, $E_2$ is “translate in $y$”, $E_3$ is “rotate in place”.

Left-invariant vector fields

There is a canonical way to push any algebra element $E \in \mathfrak g$ around the group: at any $g \in G$ define

\[\widetilde E(g) \;:=\; (dL_g)_e (E),\]

where $L_g(h) = gh$ is left-multiplication. $\widetilde E(g)$ is the pushforward of $E$ to the tangent space at $g$ along the left-translation. The vector fields obtained this way are the left-invariant vector fields; they satisfy $\widetilde E(gh) = (dL_g)_h \widetilde E(h)$, i.e. they look the same in every left-translated frame.

Computing the pushforwards in the chart $(x, y, \theta)$ is mechanical: $L_g(x’, y’, \theta’) = (\,x + x’\cos\theta - y’\sin\theta,\;\; y + x’\sin\theta + y’\cos\theta,\;\; \theta + \theta’)$. Following Part 1’s index convention — $X_1$ forward, $X_2$ rotation, $X_3$ sideways — the three basis fields are

\[\boxed{\; X_1 = (dL_g)_e E_1 = \cos\theta\,\partial_x + \sin\theta\,\partial_y, \quad X_2 = (dL_g)_e E_3 = \partial_\theta, \quad X_3 = (dL_g)_e E_2 = -\sin\theta\,\partial_x + \cos\theta\,\partial_y .\;}\]

Note the index shuffle: $X_2$ comes from the rotation generator $E_3$ and $X_3$ from the translation generator $E_2$, because Part 1 numbers the frame (forward, rotation, sideways) while the $E$-basis is numbered (translate-$x$, translate-$y$, rotate).

These are the same three vector fields Part 1 §3 introduced. Now you know where they come from: they are the basis of $\mathfrak{se}(2)$, translated across the group by the differential of left-multiplication. This is not connection-dependent parallel transport. Declaring them orthonormal is exactly how Part 1 puts its left-invariant metric on $\mathrm{SE}(2)$.

Same $(a_1, a_2, a_3)$ — two different groups, two different orbits
Figure A1.1 — same algebra, two different groups. The three sliders pick a Lie-algebra element with coefficients $(a_1, a_2, a_3)$. We then plot the 1-parameter subgroup $t \mapsto \exp(tX) \cdot \text{(base point)}$ for $t \in [-3, 3]$ in two separate groups driven by the same coefficients. Left panel (blue tint) — $\mathrm{SE}(2)$, the group of rigid motions of the plane. $X = a_1 X_1 + a_2 X_2 + a_3 X_3$ where $X_1 = $ forward translation, $X_2 = $ rotation, $X_3 = $ sideways translation. Pure $a_2$ → rotation in place (the trace is a point at the origin); pure $a_1$ → straight line; combined → screw motion projecting to a circle. The 3-D state $(x, y, \theta)$ is shown by the planar trace plus a frame at $t = 0$. The "missing" $X_3$ direction is rendered as a thin orange line — non-horizontal in the contact-bundle sense. Right panel (purple tint) — $\mathrm{SO}(3)$, the group of rotations of $\mathbb R^3$. $X = a_1 L_x + a_2 L_y + a_3 L_z$, so the orbit on the unit sphere $S^2$ from $p_0 = (1/\sqrt 2, 0, 1/\sqrt 2)$ is the great circle around the axis $\hat n = (a_1, a_2, a_3)/|a|$. These are not the same picture. The brackets differ: $\mathfrak{se}(2)$ has $[E_1, E_2] = 0$ but $[E_3, E_1] = E_2$; $\mathfrak{so}(3)$ has $[L_x, L_y] = L_z$ cyclically. Same coefficient triple, different group, different orbit shape — the point of "Lie algebra" is precisely that this encoding into a coefficient triple plus a bracket table is what determines the group.

The Lie bracket, three ways

Three definitions, all equivalent; switch among them as convenient.

(i) Matrix commutator. For $X, Y \in \mathfrak g \subset \mathrm{Mat}_n$,

\[[X, Y] \;:=\; XY - YX.\]

Multiplying out the $3\times 3$ matrices for the $\mathfrak{se}(2)$ basis yields the structure constants:

\[[E_1, E_2] = 0, \qquad [E_3, E_1] = E_2, \qquad [E_3, E_2] = -E_1.\]

The two translations commute (translations always do, regardless of axis), while rotation does not commute with either translation — that is the non-triviality of $\mathrm{SE}(2)$.

One matrix multiplication worth doing. Since $E_3$ infinitesimally rotates the plane and $E_1$ translates along $x$,

\[E_3E_1=E_2,\qquad E_1E_3=0,\qquad [E_3,E_1]=E_2.\]

Read this operationally: “rotate a tiny $x$-translation, then undo the operations in the opposite order” leaves a tiny $y$-translation. The bracket is not a mysterious new force; it is the first non-cancelling term in changing the order of two familiar motions.

Two warnings worth absorbing.

(ii) Vector-field commutator. For two vector fields acting on smooth functions $f$,

\[([X, Y] f)(g) \;:=\; X(Y f)(g) - Y(X f)(g).\]

This is again a vector field: the second-order pieces cancel, leaving a first-order operator. Compute in the chart $(x, y, \theta)$:

\[X_1(X_2 f) - X_2(X_1 f) \;=\; (\cos\theta\,\partial_x + \sin\theta\,\partial_y)(\partial_\theta f) - \partial_\theta\bigl((\cos\theta\,\partial_x + \sin\theta\,\partial_y) f\bigr).\]

The cross-terms give

\[[X_1, X_2] f \;=\; -(\partial_\theta\cos\theta)\partial_x f - (\partial_\theta\sin\theta)\partial_y f \;=\; \sin\theta\,\partial_x f - \cos\theta\,\partial_y f \;=\; -X_3 f.\]

So $[X_1, X_2] = -X_3$ as left-invariant vector fields — the same sign Part 1 carries. (Writing it the other way round, $[X_2, X_1] = +X_3$, is the only freedom here; it is a bookkeeping choice, not a real one.) Either way the bracket is non-zero and points along $X_3$, the missing sideways direction.

(iii) Closing-defect interpretation. Flow along $X$ for time $\varepsilon$, then along $Y$ for time $\varepsilon$, then back along $X$, then back along $Y$. In a commutative world the loop closes; here it doesn’t, and the residual is

\[\Phi^Y_{-\varepsilon} \circ \Phi^X_{-\varepsilon} \circ \Phi^Y_{\varepsilon} \circ \Phi^X_{\varepsilon}\,(g) \;=\; g + \varepsilon^2 [X, Y]_g + O(\varepsilon^3).\]

For the primary visual cortex (V1) this is the four-step manoeuvre Part 1 §3.4 illustrated: two hops of “slide along your orientation” interleaved with two hops of “rotate the orientation” produce a sideways nudge of order $\varepsilon^2$. The Lie bracket is exactly the leading coefficient of that nudge.

4-leg loop $+\varepsilon X, +\varepsilon Y, -\varepsilon X, -\varepsilon Y$ — same algebra coefficients, different groups
Figure A1.2 — closing-defect on two different groups. The same 4-leg loop pattern (a forward step, a turning step, a forward un-step, a turning un-step) is applied on $\mathrm{SE}(2)$ (top-left, blue tint) and on $\mathrm{SO}(3)$ (bottom-left, purple tint), driven by the same $\varepsilon$. $\mathrm{SE}(2)$ (top-left) — flow legs are $+\varepsilon X_1$ (forward), $+\varepsilon X_2$ (rotation), $-\varepsilon X_1$, $-\varepsilon X_2$. In a commutative world the loop returns to the origin; here it lands at a tiny offset of order $\varepsilon^2$ in the $X_3$ direction (the missing sideways direction of the V1 cortex story in Part 1). The dashed grey arrow shows the actual gap; the orange arrow is the prediction $\varepsilon^2 \cdot [X_1, X_2]_e = -\varepsilon^2 X_3$. $\mathrm{SO}(3)$ (bottom-left) — flow legs are $R_x(\varepsilon), R_y(\varepsilon), R_x(-\varepsilon), R_y(-\varepsilon)$ acting on $p_0 = (1/\sqrt 2, 0, 1/\sqrt 2)$. The closing-defect is approximately $-\varepsilon^2 L_z \cdot p_0$ — a rotation about the $z$-axis at order $\varepsilon^2$. Both panels auto-zoom so the loop is always visually readable. Right panel. log–log of the closing-defect magnitude vs $\varepsilon$, sweeping $\varepsilon \in [10^{-3}, 1]$, for both groups. Blue traces (SE(2)) and purple traces (SO(3)) overlap on slope $\approx 2$ — the leading bracket order is universal. Toggle the $O(\varepsilon^3)$ residuals: after subtracting the predicted $\varepsilon^2 [X, Y]$ term, the orange (SE(2)) and pink (SO(3)) residuals fall on slope $\approx 3$ — the next Baker–Campbell–Hausdorff (BCH) contribution, also universal. Two grey reference lines have slopes 2 and 3 exactly; the four data traces all track them. Punchline: the algebra determines the leading order; the group determines the geometric meaning of the $X_3$ that pops out at $\varepsilon^2$ — $\hat z$-rotation in $\mathrm{SO}(3)$, sideways translation in $\mathrm{SE}(2)$.

The exponential map

For matrix groups the exponential map $\exp : \mathfrak g \to G$ is the literal matrix exponential

\[\exp(X) \;=\; \sum_{n=0}^{\infty} \frac{X^n}{n!}.\]

It does two things at once:

  1. Generates 1-parameter subgroups. The curve $t \mapsto \exp(tX)$ is a smooth homomorphism $(\mathbb R, +) \to G$. It is the unique solution of $\dot g(t) = X \cdot g(t)$ with $g(0) = e$ in the matrix group, i.e. the integral curve of the right-invariant vector field associated to $X$.
  2. Linearises the group near $e$. $d\exp_0 = \mathrm{id}_{\mathfrak g}$, so $\exp$ is a local diffeomorphism near the origin. It is not a global diffeomorphism: for SE(2) the exponential map is surjective but not injective, and we will need to be careful in Appendix A5 when we talk about the sub-Riemannian (SR) exponential map (which is a different beast).

For SE(2), $\exp(t(a_1 E_1 + a_2 E_2 + a_3 E_3))$ has a closed form. Write $X = T + \omega E_3$ with $T = a_1 E_1 + a_2 E_2$ (translation part) and $\omega = a_3$ (rotation rate). Then

\[\exp(tX) \;=\; \begin{pmatrix} \cos(\omega t) & -\sin(\omega t) & b_1(t)\\ \sin(\omega t) & \cos(\omega t) & b_2(t)\\ 0 & 0 & 1 \end{pmatrix},\]

where the translation vector $b(t) = (b_1, b_2)$ is

\[b(t) = \tfrac{1}{\omega}\bigl(\sin(\omega t)\,a_1 + (\cos(\omega t) - 1)\,a_2,\; -(\cos(\omega t) - 1)\,a_1 + \sin(\omega t)\,a_2\bigr)\]

for $\omega \neq 0$, and $b(t) = (a_1 t, a_2 t)$ for $\omega = 0$. Trace this through Figure A1.1: $\omega = 0$ gives a straight line, $\omega \neq 0$ gives a circle whose centre is offset from the origin by the screw “axis” $a / \omega$.

1-parameter subgroups and bi-invariant geodesics

On a group that carries a bi-invariant metric — one invariant under both left and right translation — the geodesics through $e$ are exactly the 1-parameter subgroups $t \mapsto \exp(tX)$. Compact groups and $\mathbb R^n$ have such metrics; $\mathrm{SE}(2)$ does not — its adjoint action is non-compact, which is the standard obstruction. So even a Riemannian story on $\mathrm{SE}(2)$ would not make $\exp(tX)$ geodesic. Part 1 goes further still: its metric is sub-Riemannian, left-invariant but not right-invariant, and its geodesics are not $\exp(tX)$ at all — their plane projections are generically cuspidal curves, siblings of Euler’s elastica (Part 2 and Appendix A3 keep the two families apart). Appendix A5 explains how the SR exponential map differs from this group exponential.

Adjoint and coadjoint actions

The group acts on its Lie algebra by conjugation:

\[\mathrm{Ad}_g : \mathfrak g \to \mathfrak g, \qquad \mathrm{Ad}_g(X) \;:=\; g X g^{-1}.\]

Differentiating at $g = e$ recovers the bracket: \(\frac{d}{dt}\bigr|_{t=0} \mathrm{Ad}_{\exp(tX)}(Y) = [X, Y] =: \mathrm{ad}_X(Y)\).

The coadjoint action is the dual: $\mathrm{Ad}^{\ast}g : \mathfrak g^{\ast} \to \mathfrak g^{\ast}$, $\langle \mathrm{Ad}^{\ast}_g(\mu), Y\rangle := \langle \mu, \mathrm{Ad}{g^{-1}}(Y)\rangle$. The orbits of $\mathrm{Ad}^{\ast}$ on $\mathfrak g^{\ast}$ are called coadjoint orbits, and they are symplectic manifolds — the Kirillov–Kostant–Souriau theorem.

For $\mathrm{SE}(2)$, parametrise $\mathfrak{se}(2)^{\ast}$ by $(h_1, h_2, h_3)$ in the basis dual to ${E_1, E_2, E_3}$. The coadjoint orbits are

\[\mathcal O_c \;:=\; \{(h_1, h_2, h_3) : h_1^2 + h_2^2 = c\},\]

i.e. vertical cylinders in $(h_1, h_2, h_3)$-space (plus a degenerate 1-point orbit at $h_1 = h_2 = 0$ for each value of $h_3$). Part 2 §1 discovered this structure organically. A caution on indices: Part 2 labels the costate in the left-invariant frame ${X_1, X_2, X_3}$, so its $(h_1, h_2, h_3)$ are this appendix’s $(h_1, h_3, h_2)$. In the $E$-basis the costate stays on a fixed coadjoint cylinder $h_1^2 + h_2^2 = c$ — the Casimir is conserved — while the SR Hamiltonian $\mathcal H = \tfrac12(h_1^2 + h_3^2)$ drives it around that cylinder. Appendix A3 derives the flow from the Pontryagin Maximum Principle (PMP).

Coadjoint orbit $\mathcal O_c$ on $\mathfrak{se}(2)^{\ast}$
Figure A1.3. The coadjoint orbits of $\mathrm{SE}(2)$ are cylinders $h_1^2 + h_2^2 = c$ in the dual space $\mathfrak{se}(2)^{\ast}$. The slider $c$ sets the cylinder radius; $h_3$ runs along its axis. Every Lie–Poisson flow — in particular the SR Hamiltonian flow of Part 2, derived in Appendix A3 — is confined to one such cylinder, because the Casimir $h_1^2 + h_2^2$ is conserved. The blue curve shows a sample trajectory riding the chosen orbit. This is a symplectic structure visualised: cylinders for the non-trivial orbits, pinched-off points along the axis $h_1 = h_2 = 0$ for the degenerate ones.

The Baker–Campbell–Hausdorff series

For two non-commuting algebra elements, the Baker–Campbell–Hausdorff (BCH) formula expresses $\log(\exp X \cdot \exp Y)$ as a series in iterated brackets:

\[\exp X \cdot \exp Y \;=\; \exp\!\Bigl(X + Y + \tfrac12 [X, Y] + \tfrac{1}{12}[X, [X, Y]] + \tfrac{1}{12}[Y, [Y, X]] + \cdots\Bigr).\]

The leading non-commutative correction is exactly $\tfrac12 [X, Y]$. Two points to remember:

Connection to the elliptic project

Every figure on this page integrates the SE(2) ordinary differential equation (ODE) $\dot g = g \cdot \xi(t)$ using the exact same midpoint-rule helper that the moiseevigor/elliptic project ships in examples/dubins-back-wheel/app.js. When $\xi(t) = (a_1, a_2, a_3)$ is constant you get the 1-parameter subgroups of Figure A1.1; when $\xi(t)$ is the heading-driven control of the pinned ($u_1 \equiv 1$) problem of Part 2 you get Euler’s elastica; when $\xi(t)$ is the free Pontryagin extremal control and its forward component changes sign you get exactly the cuspidal parking trajectory shown in that example. The same matrix exponential drives all three.

Code

# Matrix exponential of an se(2) element — closed form.
# Identical to the formula used in moiseevigor/elliptic/se2.py.
import numpy as np

def exp_se2(a1, a2, a3, t=1.0):
    """Return the 3x3 SE(2) matrix exp(t * (a1 E1 + a2 E2 + a3 E3))."""
    om = a3 * t
    if abs(om) < 1e-12:
        # Pure translation limit
        b1, b2 = a1 * t, a2 * t
        c, s = 1.0, 0.0
    else:
        c, s = np.cos(om), np.sin(om)
        # Translation vector b(t) = (sin/om · a + (cos-1)/om · J·a)
        b1 = ( s * a1 + (c - 1) * a2) / a3
        b2 = (-(c - 1) * a1 + s * a2) / a3
    return np.array([[c, -s, b1],
                     [s,  c, b2],
                     [0,  0, 1.0]])

# Verify [E1, E2] = 0  and  [E3, E1] = E2  in matrix form
E1 = np.array([[0,0,1],[0,0,0],[0,0,0]], float)
E2 = np.array([[0,0,0],[0,0,1],[0,0,0]], float)
E3 = np.array([[0,-1,0],[1,0,0],[0,0,0]], float)
def comm(A, B): return A @ B - B @ A
assert np.allclose(comm(E1, E2), 0)
assert np.allclose(comm(E3, E1), E2)
assert np.allclose(comm(E3, E2), -E1)

What we covered, and what comes next

A Lie group is a manifold-with-group-law. Its Lie algebra is the tangent space at the identity, encoded either as matrices in $\mathrm{Mat}_n$ or as left-invariant vector fields on $G$. The bracket measures non-commutativity in three equivalent ways (matrix commutator, vector-field commutator, infinitesimal closing-defect of a 4-leg loop). The exponential map turns algebra elements into 1-parameter subgroups. The coadjoint orbits of $\mathrm{SE}(2)$ are cylinders, and the SR Hamiltonian flow lives on them.

Appendix A2 will use this language to give the right definition of a contact structure and prove Chow–Rashevskii. Appendix A3 will derive the Lie–Poisson equations $\dot h_1 = h_2 h_3, \dot h_2 = -h_1 h_3, \dot h_3 = -h_1 h_2$ — the equations Part 2 §1 asserts without proof — directly from the Pontryagin Maximum Principle.

References

  1. M. Spivak (1979). A Comprehensive Introduction to Differential Geometry, Vol. 1. Publish or Perish. Chapters 5–6 for manifolds and Lie groups.
  2. B. C. Hall (2015). Lie Groups, Lie Algebras, and Representations: An Elementary Introduction. Springer GTM 222. Matrix-Lie-group perspective; ideal companion to this appendix.
  3. V. I. Arnold (1989). Mathematical Methods of Classical Mechanics. Springer GTM 60. Appendix 2 covers Lie groups, coadjoint orbits, and Lie–Poisson dynamics with the lightest possible touch.
  4. A. A. Kirillov (2004). Lectures on the Orbit Method. AMS GSM 64. Coadjoint orbits as symplectic leaves; the SE(2) example is worked explicitly.
  5. Yu. L. Sachkov (2011). "Cut locus and optimal synthesis in the sub-Riemannian problem on the group of motions of a plane." ESAIM: COCV 17(2): 293–321. arXiv:0903.0727. Uses every concept of this appendix.
  6. moiseevigor/elliptic — Jacobi elliptic functions, complete and incomplete integrals, and the SE(2) exponential routine used in all three figures of this appendix.