Cookie Consent by Free Privacy Policy Generator Appendix A5 — The Sub-Riemannian Exponential Map of SE(2) | Igor Moiseev
Lab › Geometry of Seeing › Appendix A5

Appendix A5 — The Sub-Riemannian Exponential Map of SE(2)

How initial-costate parameters $(c, \omega_0, \phi_0)$ generate every SE(2) geodesic from the origin; what conjugate, cut, and Maxwell points are; why the elastica mirror pair first ties after one curvature period $4K(k^2)$ while the free SR cut fires at half a pendulum period, $2K(k^2)$. Bridges Parts 1–2 to Parts 3–4.

By Igor Moiseev · 5 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)
  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) ← you are here
What this appendix is for
Parts 3 and 4 of the series discuss the cut locus and the Maxwell strata of the SE(2) sub-Riemannian problem. This appendix builds the object both rest on: the SR exponential map. It also makes precise the difference between the matrix exponential of Appendix A1 and this SR exponential — they are different functions on the same manifold. The interactive figures borrow the geodesic-family visualisation directly from the elliptic project's Dubins–visual-cortex example; the Maxwell-pair and conjugate-locus figures formalise what that figure was already showing.

Two exponential maps, both relevant

Lie-group $\exp$ (Appendix A1):

\[\exp_{\mathrm{group}}: \mathfrak{se}(2) \to \mathrm{SE}(2), \qquad X \mapsto \exp(X) \cdot e.\]

The 1-parameter subgroups $t \mapsto \exp(tX) \cdot e$ would be the geodesics of a bi-invariant Riemannian metric — but Appendix A1 showed $\mathrm{SE}(2)$ carries no such metric (its adjoint action is non-compact). They remain the natural “group-straight” curves on $\mathrm{SE}(2)$; they are certainly not the geodesics of the sub-Riemannian (SR) metric of Part 1’s primary-visual-cortex (V1) model.

Sub-Riemannian $\mathrm{Exp}$:

\[\mathrm{Exp}: \mathfrak{se}(2)^{\ast} \times \mathbb R_{\geq 0} \to \mathrm{SE}(2), \qquad (\mu_0, t) \mapsto g(t),\]

where $g(t)$ is the SR geodesic with initial costate $\mu_0 = (h_1^0, h_2^0, h_3^0) \in \mathfrak{se}(2)^{\ast}$ on the unit-Hamiltonian surface $h_1^2 + h_2^2 = 1$. This is the map that generates “Petitot’s family of candidate completion paths” from a fixed lifted state. When we say “exponential map” in Parts 3–4 we always mean this one.

Two parametrisations of the same costate space are convenient:

The exponential map is a smooth map $\mathrm{Exp}T : \mathfrak{se}(2)^{\ast}{c=1} \to \mathrm{SE}(2)$ at each time $T$; it is generically a local diffeomorphism but has degeneracies — that is the whole story of cut/conjugate analysis.

Closed-form geodesic endpoints

Two closed forms live here, one per horizontal problem — and this appendix keeps them apart (Part 2, Appendix A3).

The elastica sister curve (pinned $u_1 \equiv 1$; the smooth family every figure in this series integrates). With heading $\theta(s) = 2\arcsin(k\,\mathrm{sn}(s\mid k^2))$,

\[\boxed{\;x(s) \;=\; 2E(\mathrm{am}(s\mid k^2)\mid k^2) - s,\;}\] \[\boxed{\;y(s) \;=\; 2k\bigl(1 - \mathrm{cn}(s\mid k^2)\bigr).\;}\]

The free SR geodesics (Moiseev–Sachkov 2010, §3; Sachkov 2011, eqs. 24–28). In elliptic coordinates $(\varphi, k)$ on $C_1$ with $\varphi_t = \varphi + t$, e.g.

\[y_t \;=\; \tfrac{1}{k}\bigl[\,\mathrm{sn}\,\varphi\,(\mathrm{dn}\,\varphi - \mathrm{dn}\,\varphi_t) - \mathrm{cn}\,\varphi\,\bigl(t + E(\varphi) - E(\varphi_t)\bigr)\bigr],\]

with matching expressions for $x_t$ and $\sin\theta_t$ — still nothing but $\mathrm{sn}, \mathrm{cn}, \mathrm{dn}$ and incomplete elliptic integrals, but a different curve: its plane projection has curvature $-\cot(\gamma_t/2)$ and generic cusps wherever the forward speed changes sign. No numerical ODE integration is needed for either family.

Three takeaways:

  1. $\mathrm{Exp}_T(\mu_0)$ is a transcendental but explicit function of $T$ and the initial costate. Compute every entry with two elliptic12 calls and one ellipj call.
  2. Periodic curvature is not necessarily a closed curve. Since $\mathrm{cn},\mathrm{sn}$ are $4K(k^2)$-periodic, the elastica curvature and tangent repeat after $4K(k^2)$, but $(x,y)$ generally acquires a translational drift. Closure requires the additional condition that this net displacement vanish; the figure-eight modulus is a special case.
  3. The exponential map is not injective. Different $(c, \omega_0, \phi_0)$ can land at the same $g(T)$. When two distinct costates produce the same end with the same $T$, that endpoint is a Maxwell point, and the corresponding $T$ is its Maxwell time.
pinned elastica endpoint from origin
Figure A5.1. The elastica sister curve for $s \in [0, T]$ — the smooth family ($\kappa = 2k\,\mathrm{cn}$) that stands in for the free SR geodesics throughout the series' figures (the true SR projections are their cuspidal cousins; §Closed-form above). The blue, red, green colour scheme matches Part 1 Figure 4 — and indeed this figure is the same one, lifted to a more controllable form. As $k \to 1^-$ the inflectional family's period $4K(k^2)$ diverges (Appendix A4) and the curve approaches the borderline elastica on bounded intervals; for $k > 1$ (non-inflectional) the curvature is one-signed with spatial period $T = 2K(m)$ (a closed circle only in the $m \to 0$ limit). The endpoint dot is the endpoint of the selected pinned elastica at $T$. It is not the value of the free-SR exponential map unless the free reconstruction is used.

Conjugate points and Jacobi fields

A Jacobi field along a geodesic $\gamma : [0, T] \to G$ is a variational vector field \(J(s) \in T_{\gamma(s)} G\) obtained by varying $\gamma$ through nearby geodesics with the same $\gamma(0)$:

\[J(s) \;=\; \tfrac{\partial}{\partial\varepsilon}\Big|_{\varepsilon=0} \gamma_\varepsilon(s),\]

where \(\gamma_\varepsilon\) is a 1-parameter family of geodesics with $\gamma_0 = \gamma$.

A point $\gamma(t^{\ast})$ is a conjugate point to $\gamma(0)$ if a non-trivial Jacobi field with $J(0) = 0$ also has $J(t^{\ast}) = 0$. Equivalently, $t^{\ast}$ is the first time the differential of the SR exponential map becomes singular:

\[\det d_{\mu_0}\!\mathrm{Exp}_{t^{\ast}} \;=\; 0.\]

The relevance: past the first conjugate point, the geodesic stops being a local length-minimiser. Any sufficiently small perturbation produces a strictly shorter horizontal curve. This is the SR analogue of the classical Riemannian Morse-theoretic statement.

For SE(2), Sachkov’s analysis (2011, Thms 2.1–2.6) shows something stronger and cleaner than a bound:

Cut and Maxwell points

A cut point is the first $t$ at which $\gamma$ stops being globally length-minimising — i.e. there is some other horizontal curve from $\gamma(0)$ to $\gamma(t)$ with strictly smaller SR length. By definition, the cut time satisfies \(t_{\mathrm{cut}} \leq t_{\mathrm{conj}}\) (losing local optimality is at least as hard as losing global).

A Maxwell point is a point where two distinct geodesics from $\gamma(0)$ meet with equal SR length. These come from discrete symmetries of the problem: the pendulum carries the reflection group ${\mathrm{Id}, \varepsilon^1, \dots, \varepsilon^7} \cong (\mathbb Z_2)^3$ of Moiseev–Sachkov (2010) — generated by time reversal, the sign flip $\varphi \to -\varphi$, and the shift $\varphi \to \varphi + 2\pi$ — and the fixed-point sets of these reflections on the exponential map are the Maxwell strata.

For sufficiently symmetric SR problems (and SE(2) is one of them),

\[\boxed{\;t_{\mathrm{cut}} \;=\; t_{\mathrm{Maxwell}}^{(1)},\;}\]

i.e. the cut time equals the first Maxwell time $\mathfrak t(\lambda)$ of this group. Characterising the Maxwell strata is the work of Moiseev–Sachkov (2010, arXiv:0807.4731); the equality — and with it the full optimal synthesis — is Sachkov (2011, arXiv:0903.0727).

For the inflectional family with modulus $k$ the value is strikingly simple:

\[t_{\mathrm{cut}}(k) \;=\; \mathfrak t(\lambda) \;=\; 2K(k^2),\]

half a pendulum period — while the smooth elastica sister family first ties with its own mirror image only after a full curvature period, $s = 4K(k^2)$ (the coincidence Figure A5.2 plays with). The elliptic clock $K(k^2)$ runs both problems; how the half-versus-full period split arises is the heart of Parts 3–4.

γ_A: κ = +2k·cn — γ_B: κ = −2k·cn — coincidence requires y_A(s) = 0
Figure A5.2. The σ-symmetric pair: two pinned elastica $\gamma_A, \gamma_B$ leaving the origin with curvatures $\pm 2k\,\mathrm{cn}(s\mid k^2)$ respectively. By the $y \to -y$ reflection symmetry of the pendulum equation, $\gamma_B(s) = (x_A(s),\, -y_A(s),\, -\theta_A(s))$ — they trace mirror-image curves. As SE(2) configurations, they coincide exactly when $y_A(s) = 0$ and $\theta_A(s) \equiv 0 \pmod{2\pi}$. The right panel plots $|\gamma_A(s) - \gamma_B(s)|$ over $s \in [0, T]$; its first zero crossing (red marker, if any) is the first Maxwell time of this pair. Because $y_A(s) = 2k\bigl(1 - \mathrm{cn}(s\mid k^2)\bigr) \ge 0$ returns to zero only at $s = 4K(k^2)$ (and its multiples), the pair first re-coincides in full — position and heading — at $s = 4K(k^2)$, for every $k$: the first Maxwell coincidence of the elastica sister family — the smooth curves this figure integrates. (For the free SR problem the same symmetry machinery gives a cut at $2K(k^2)$, half this value; §Cut above.) At the special "figure-eight" modulus $k_0 \approx 0.909$ (root of $2E(k^2) = K(k^2)$) that shared endpoint sits back at the origin, so the closed curve is itself a single self-crossing lemniscate; for other $k$ the two curves still meet at $s = 4K(k^2)$, just away from the origin.

How a wavefront forms from a family of geodesics

Fix $T$ and vary the initial costate over a 1-parameter slice of the unit-energy surface — concretely, signed initial curvature $k \in [-0.95, 0.95]$ in $\kappa(s) = 2k\,\mathrm{cn}(s\mid k^2)$. Each $k$ launches a distinct geodesic from the origin. The set of positions reached at exact arc length $T$ — one position per geodesic — is the wavefront at time $T$:

\[\mathcal W_T \;:=\; \bigl\{\,(x(T;k),\; y(T;k)) : k \in [-0.95, 0.95]\,\bigr\} \;\subset\; \mathbb R^2.\]

It is a continuous curve in the plane (because $k \mapsto $ trajectory is continuous), and as $T$ grows it sweeps outward. At small $T$ — since every geodesic leaves the origin heading the same way and curves only gently — the wavefront is a short, almost-straight arc near $(T, 0)$, transverse to the launch direction. As $T$ approaches the elastica mirror-tie time $T_{\mathrm M} = 4K(k^2)$, neighbouring trajectories begin to converge and the wavefront develops cusps — these are the projections of conjugate points, where $d\mathrm{Exp}_T$ becomes singular.

Visually, this looks remarkably like the SR analogue of the Riemannian caustic — the bright curves you see at the bottom of a coffee cup when light reflects. The same mathematics: failure of the exponential map to be locally surjective along a critical curve.

Faint trajectories sweep $k \in [-0.95, 0.95]$; the bold curve is $\mathcal W_T$
Figure A5.3. A wavefront forming. 39 trajectories, one per signed modulus $k$, are drawn in faint blue (forward-curving, $k > 0$) and faint red ($k < 0$) up to the current arc length $T$. The thick coloured curve passing through their endpoints is the wavefront $\mathcal W_T$ at that $T$. Three lighter "ghost" wavefronts at $T/4, T/2, 3T/4$ (toggleable) show how $\mathcal W_T$ moves outward and reshapes as time grows. Slide $T$ forward and watch:
  1. at small $T$ the wavefront is a short arc near $(T, 0)$;
  2. at $T \approx \pi$ it lengthens and starts to flatten;
  3. around $T \approx 2\pi$ — the smallest period $4K(0)$ in the swept family (the near-straight $k \to 0$ curves) — the first cusps appear at the corners of the wavefront: the first conjugate points of the elastica problem (red rings) — the free SR inflectional geodesics have none (Sachkov 2011, Thm 2.1);
  4. as $T$ grows the wavefront self-intersects: those crossings are the Maxwell stratum drawn in Figure A5.2.
Press play to animate $T$ continuously. The four-fold astroid-like cusp pattern is the plane caustic of the elastica family — Euler's elastic problem does develop conjugate points, even though the free SR inflectional geodesics never do.

Connection to the elliptic project

Figure A5.1 is, modulo cosmetics, the same family of curves as “Geodesic family from a fixed base point” in the elliptic project’s Dubins-visual-cortex page. The two visualisations share the same integration routine (integrateElastica in elliptic-core.js) and the same colour palette. The difference is that this appendix interprets the curves as the SR exponential map, isolates the Maxwell pair, and draws the conjugate locus as a wavefront — the structures Parts 3 and 4 of the blog series develop.

The Dubins-back-wheel cuspidal trajectories of the elliptic project ( parking-style curves with cusps) are also relevant here: they are projections of SE(2) geodesics in the regime where the rear-axle forward velocity changes sign. The cusps in those trajectories are the geometric analogue of the wavefront cusps in Figure A5.3 — only the rear-axle parametrisation makes them visible.

Code

# Generate the mirror pair for the pinned inflectional elastica problem.
# This is the 4K elastica tie, not the 2K first Maxwell/cut event of free SR.
import numpy as np
from elliptic import ellipj, ellipticK

def inflectional_elastica(k, sign, T, N=1500):
    """Compute one member (sign = ±1) of the pinned mirror pair."""
    m = k * k
    s = np.linspace(0, T, N)
    sn, cn, dn = ellipj(s, m)   # vectorised
    # Heading half-angle: sin(θ/2) = k·sn(s|m), so θ = 2·arcsin(k·sn).
    # Curvature κ = dθ/ds = 2k·cn·dn / sqrt(1 − k²sn²) = 2k·cn  (since dn = sqrt).
    kappa = sign * 2 * k * cn * dn / np.sqrt(1 - k * k * sn * sn)
    theta = np.zeros_like(s)
    x = np.zeros_like(s)
    y = np.zeros_like(s)
    # Cumulative trapezoidal
    dt = T / (N - 1)
    for i in range(1, N):
        thmid = theta[i-1] + 0.5 * kappa[i-1] * dt
        x[i] = x[i-1] + np.cos(thmid) * dt
        y[i] = y[i-1] + np.sin(thmid) * dt
        theta[i] = theta[i-1] + kappa[i-1] * dt
    return x, y, theta

k = 0.55
omega0 = 1.0
T_maxwell = 4 * ellipticK(k * k) / omega0   # elastica mirror-pair tie (SR cut is 2K)
print(f"elastica mirror-tie time T₁ = 4K(k²)/ω₀ = {T_maxwell:.4f}")

# Two pinned extremals with opposite curvature.
xA, yA, thA = inflectional_elastica(k, +1, T_maxwell)
xB, yB, thB = inflectional_elastica(k, -1, T_maxwell)

err = np.hypot(xA[-1] - xB[-1], yA[-1] - yB[-1])
print(f"|γA(T₁) − γB(T₁)|  =  {err:.2e}")     # should be ≲ 1e-6
# Conjugate time of the ELASTICA family (schematic scale, one curvature period).
# NB: the free SR inflectional geodesics have NO conjugate points at all
# (Sachkov 2011, Thm 2.1) — this heuristic applies to the elastica sister
# problem, where conjugate points do occur on the 4K scale.
def conjugate_scale_elastica(k):
    """Heuristic scale (one curvature period), not a closed form."""
    return 4 * ellipticK(k * k)

for k in (0.1, 0.3, 0.5, 0.7, 0.9, 0.95):
    print(f"k = {k:4.2f}:  ~T_conj(elastica) = {conjugate_scale_elastica(k):.4f}")

What we covered, and where Parts 3–4 go next

The SR exponential map of $\mathrm{SE}(2)$ takes initial costates to group endpoints; its closed form involves Jacobi elliptic functions and incomplete elliptic integrals. Conjugate points mark the loss of local optimality; cut points mark the loss of global optimality. Maxwell points are the symmetric mechanism by which optimality fails — two distinct geodesics meeting with the same SR length. For the inflectional family the free SR cut fires at $2K(k^2)$ — half a pendulum period — while the smooth elastica sister pair first ties at $4K(k^2)$, one full curvature period: the same elliptic clock, two problems.

What Parts 3 and 4 of the blog series do with it:

The five appendices A1–A5 supply every prerequisite: Lie groups (A1), distributions and contact structures (A2), the Pontryagin Maximum Principle and Lie–Poisson reduction (A3), Jacobi elliptic functions and the arithmetic–geometric mean (A4), and the SR exponential map (A5). With them in hand, Parts 1 and 2 should read fluently, and Parts 3 and 4 become approachable.

References

  1. I. Moiseev & Yu. L. Sachkov (2010). "Maxwell strata in sub-Riemannian problem on the group of motions of a plane." ESAIM: COCV 16(2): 380–399. arXiv:0807.4731.
  2. 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. Closed-form geodesic endpoints — eqs. (24)–(28).
  3. Yu. L. Sachkov (2010). "Conjugate and cut time in the sub-Riemannian problem on the group of motions of a plane." ESAIM: COCV 16(4): 1018–1039.
  4. A. A. Agrachev, Yu. L. Sachkov (2004). Control Theory from the Geometric Viewpoint. Springer. Chapter 16 develops the SR exponential map abstractly; SE(2) is the headline worked example.
  5. R. Montgomery (2002). A Tour of Subriemannian Geometries, Their Geodesics and Applications. AMS. Maxwell strata, conjugate-and-cut analysis for Heisenberg-style examples.
  6. Elliptic project — Dubins / Visual Cortex example: the geodesic family in Figure A5.1 is the same family rendered there.
  7. Elliptic project — Dubins back wheel example: cuspidal SE(2) trajectories arising in the same problem under reverse-allowed parametrisation.