Skip to content

feat: information geometry and Riemannian UKF for optimal sigma point placement #52

Description

@manankharwar

Sub-issue of #52.

Background

The space of probability distributions is not flat: it is a curved Riemannian manifold. The metric on this manifold is defined by the Fisher information matrix. The UKF already approximates integration on this manifold using sigma points, but uses Euclidean distances for everything, which introduces errors proportional to manifold curvature.

This is the same mathematical structure used in quantum information theory for quantum state estimation, and in differential geometry for shape analysis.

The idea

Use geodesic distances (shortest paths on the curved manifold) instead of Euclidean distances for:

  1. Sigma point placement: place sigma points along geodesics from the mean, not along Euclidean axes
  2. Measurement weighting: weight sensor updates by Fisher information content, not Euclidean innovation magnitude
  3. Covariance updates: parallel transport the covariance along the geodesic, preserving its geometric meaning

For the rotation components (SO(3) manifold for orientation), this is already partially done via quaternion state. Extending to the full 22-state manifold gives theoretically optimal estimates.

Why novel

There are academic papers on Riemannian UKF (2018-2022) but no implementation in any robotics package. The connection to quantum information makes this genuinely cross-disciplinary. This is the mathematical foundation of why quaternion state is better than Euler state, generalized to the full filter.

References

  • Hauberg et al.: A Geometric Take on Metric Learning (NeurIPS 2012)
  • Bonnabel, Sepulchre: Riemannian Metric and Geometric Mean for UKF (IEEE TAC 2013)
  • Nielsen: An Introduction to Information Geometry (2020)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions