Some context on spaces and tangent spaces can also be found on here.

Robotics state estimation is basically calculus on curved surfaces.
The set of rotation matrices SO(3) and rigid transforms SE(3) are Groups, not Vector Spaces.

The Manifold and The Tangent Space

manifold_tangent_viz.png

Imagine a sphere (Manifold M). If you stand on the north pole, the flat plane touching your feet is the Tangent Space (TxM).

We do optimization (adding Δx) in the flat Tangent Space, then project back to the Manifold.

The Maps

  1. Hat Operator ():
    Converts 6x1 vector ξ to 4x4 matrix representation.
ξ=[ρϕ]R6[[ϕ]×ρ00]se(3)
  1. Exponential Map (exp):
    Projects tangent vector onto the manifold.
T=exp(ξ)

Physically: If you move with constant velocity twist ξ for 1 second, you end up at pose T.

  1. Logarithm Map (ln):
    Projects manifold element back to tangent space.
ξ=ln(T)

The "Box Plus" Operator ()

Since we can't do T+δ, we define a generalized addition.
There are two conventions. Stick to one!!! I prefer the Right Multiplication convention (used in g2o, GTSAM).

TξTexp(ξ)

This means: "Start at frame T, then apply a small local perturbation ξ in T's frame."

The Adjoint (AdT)

Sometimes you have a twist defined in the World frame, but you need to apply it in the Body frame. The Adjoint map transforms tangent vectors between coordinate frames.

exp((AdTξ))=Texp(ξ)T1

For SE(3):

AdT=[R[t]×R0R]6×6

Jacobians on Lie Groups

When we linearize measurement functions, we need the derivative with respect to the Lie Algebra perturbation.

(Tp)ξ

We treat ξ as a small perturbation near 0.

limδξ0exp(δξ)TpTpδξ

Typical Jacobians you will see:

  1. Rotation of a point: (Rp)ϕ=[Rp]×
  2. Inverse pose: (T1)T=AdT1