Expand description
Manifold representations for optimization on non-Euclidean spaces.
This module provides manifold representations commonly used in computer vision and robotics:
- SE(3): Special Euclidean group (rigid body transformations)
- SO(3): Special Orthogonal group (rotations)
- Sim(3): Similarity transformations (rotation + translation + scale)
- SGal(3): Special Galilean group (rotation + translation + velocity + time)
- SE_2(3): Extended Special Euclidean group (rotation + translation + velocity)
- SE(2): Rigid transformations in 2D
- SO(2): Rotations in 2D
| Lie group M,° | size | dim | X ∈ M | Constraint | T_E M | T_X M | Exp(T) | Comp. | Action |
|---|---|---|---|---|---|---|---|---|---|
| n-D vector | Rⁿ,+ | n | n | v ∈ Rⁿ | v-v | =0 | v ∈ Rⁿ | v ∈ Rⁿ | |
| Circle | S¹,. | 2 | 1 | z ∈ C | z*z = 1 | iθ ∈ iR | θ ∈ R | z = exp(iθ) | z₁z₂ |
| Rotation | SO(2),. | 4 | 1 | R | RᵀR = I | [θ]x ∈ so(2) | [θ] ∈ R² | R = exp([θ]x) | R₁R₂ |
| Rigid motion | SE(2),. | 9 | 3 | M = [R t; 0 1] | RᵀR = I | [v̂] ∈ se(2) | [v̂] ∈ R³ | Exp([v̂]) | M₁M₂ |
| 3-sphere | S³,. | 4 | 3 | q ∈ H | q*q = 1 | θ/2 ∈ Hp | θ ∈ R³ | q = exp(uθ/2) | q₁q₂ |
| Rotation | SO(3),. | 9 | 3 | R | RᵀR = I | [θ]x ∈ so(3) | [θ] ∈ R³ | R = exp([θ]x) | R₁R₂ |
| Rigid motion | SE(3),. | 16 | 6 | M = [R t; 0 1] | RᵀR = I | [v̂] ∈ se(3) | [v̂] ∈ R⁶ | Exp([v̂]) | M₁M₂ |
| Similarity | Sim(3),. | 16 | 7 | M = [sR t; 0 1] | RᵀR=I, s>0 | [v̂] ∈ sim(3) | [ρ,θ,σ] ∈ R⁷ | Exp([v̂]) | M₁M₂ |
| Galilean | SGal(3),. | 25 | 10 | (R,t,v,s) | RᵀR = I | [v̂] ∈ sgal(3) | [ρ,ν,θ,s] ∈ R¹⁰ | Exp([v̂]) | M₁M₂ |
| Extended pose | SE_2(3),. | 25 | 9 | (R,t,v) | RᵀR = I | [v̂] ∈ se_2_3 | [ρ,θ,ν] ∈ R⁹ | Exp([v̂]) | M₁M₂ |
The design is inspired by the manif C++ library and provides:
- Analytic Jacobian computations for all operations
- Right and left perturbation models
- Composition and inverse operations
- Exponential and logarithmic maps
- Tangent space operations
§Mathematical Background
This module implements Lie group theory for robotics applications. Each manifold represents a Lie group with its associated tangent space (Lie algebra). Operations are differentiated with respect to perturbations on the local tangent space.
Modules§
- rn
- Rn - n-dimensional Euclidean Space
- se2
- SE(2) - Special Euclidean Group in 2D
- se3
- SE(3) - Special Euclidean Group in 3D
- se23
- SE_2(3) - Extended Special Euclidean Group (Rotation + Translation + Velocity)
- sgal3
- SGal(3) - Special Galilean Group
- sim3
- Sim(3) - Similarity Transformations in 3D
- so2
- SO(2) - Special Orthogonal Group in 2D
- so3
- SO3 - Special Orthogonal Group in 3D
Enums§
- Manifold
Error - Errors that can occur during manifold operations.
- Manifold
Type
Constants§
- SMALL_
ANGLE_ THRESHOLD - Threshold for switching between exact formulas and Taylor approximations in small-angle computations.
Traits§
- Interpolatable
- Trait for Lie groups that support interpolation.
- LieGroup
- Core trait for Lie group operations.
- Tangent
- Trait for Lie algebra operations.
Type Aliases§
- Manifold
Result - Result type for manifold operations.