Unscented Kalman Filtering on (Parallelizable) Manifolds

About

UKF-M, for Unscented Kalman Filtering on (Parallelizable) Manifolds, is a novel methodology for implementing unscented Kalman filters both on manifolds and Lie groups. Beyond filtering performances, the main advantages of the approach are its versatility, as the method applies to numerous state estimation problems, and its simplicity of implementation for practitioners which are not necessarily familiar with manifolds and Lie groups.

This repo contains two independent Python and Matlab implementations - we recommend Python - for quickly implementing and testing the approach. If you use this project for your research, please cite:

@article{brossard2019Code,
    author={Martin Brossard and Axel Barrau and Silvère Bonnabel},
    title={{A Code for Unscented Kalman Filtering on Manifolds (UKF-M)}},
    year={2019},
}

Download

The repo contains tutorials, documentation and can be downloaded from https://github.com/CAOR-MINES-ParisTech/ukfm.

The paper A Code for Unscented Kalman Filtering on Manifolds (UKF-M) related to this code is available at this url.

Getting Started

1. Download the latest source code from GitHub (see Installation).

2. Follow the Tutorial for an introduction to the methodology.

The rest of the documentation is build on the Python code. For the Matlab user, see here.

Examples

Below is a list of examples from which the unscented Kalman filter on parallelizable manifolds has been implemented:

  • 2D robot localization (both for introduction on simulated data and on real data).

  • 3D Attitude estimation with an Inertial Measurement Unit (IMU) equipped with gyros, accelerometers and magnetometers.

  • 3D inertial navigation on flat Earth with observations of known landmarks.

  • 2D Simultaneous Localization And Mapping (SLAM).

  • IMU-GNSS sensor-fusion for a vehicle on the KITTI dataset.

  • Spherical pendulum example, where the state lives on the 2-sphere manifold.

See more details in the Examples Section.

Support

Please, use the GitHub issue tracker for questions, bug reports, feature requests/additions, etc.

Acknowledgments

The library was written by Martin Brossard ^, Axel Barrau ^ and Silvère Bonnabel ^.

^ MINES ParisTech , PSL Research University, Centre for Robotics, 60 Boulevard Saint-Michel, 75006 Paris, France.