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
is NOT a rotation matrix. - You cannot take a derivative directly on the matrix.
The Manifold and The Tangent Space

Imagine a sphere (Manifold
- Manifold:
. Curved, 4x4 matrices. - Tangent Space:
. Flat, 6x1 vectors.
We do optimization (adding
The Maps
- Hat Operator
:
Converts 6x1 vectorto 4x4 matrix representation.
- Exponential Map (
):
Projects tangent vector onto the manifold.
Physically: If you move with constant velocity twist
- Logarithm Map (
):
Projects manifold element back to tangent space.
The "Box Plus" Operator ( )
Since we can't do
There are two conventions. Stick to one!!! I prefer the Right Multiplication convention (used in g2o, GTSAM).
This means: "Start at frame T, then apply a small local perturbation
The Adjoint ( )
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.
For
Jacobians on Lie Groups
When we linearize measurement functions, we need the derivative with respect to the Lie Algebra perturbation.
We treat
Typical Jacobians you will see:
- Rotation of a point:
- Inverse pose: