https://github.com/artivis/kalmanif

A small collection of Kalman Filters on Lie groups

https://github.com/artivis/kalmanif

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.7%) to scientific vocabulary

Keywords

cpp17 extended-kalman-filters filtering header-only invariant-extended-kalman-filter kalman-filter kalman-smoother lie-algebra lie-groups manif rauch-tung-striebel robotics state-estimation unscented-kalman-filter
Last synced: 6 months ago · JSON representation

Repository

A small collection of Kalman Filters on Lie groups

Basic Info
  • Host: GitHub
  • Owner: artivis
  • License: mit
  • Language: C++
  • Default Branch: devel
  • Homepage:
  • Size: 482 KB
Statistics
  • Stars: 367
  • Watchers: 16
  • Forks: 44
  • Open Issues: 5
  • Releases: 0
Topics
cpp17 extended-kalman-filters filtering header-only invariant-extended-kalman-filter kalman-filter kalman-smoother lie-algebra lie-groups manif rauch-tung-striebel robotics state-estimation unscented-kalman-filter
Created about 5 years ago · Last pushed almost 3 years ago
Metadata Files
Readme Contributing License

README.md

kalmanif

A small collection of Kalman Filters on Lie groups

GHA <!-- codecov --> GitHub <!-- Documentation -->

Package Summary

kalmanif is a Kalman filter(s) on Lie groups library for state-estimation targeted at robotics applications. It is developed as a header-only C++17 library based on manif.

At the moment, it implements:

  • Extended Kalman Filter (EKF)
  • Square Root Extended Kalman Filter (SEKF)
  • Invariant Extended Kalman Filter (IEKF)
  • Unscented Kalman Filter on manifolds (UKFM)
  • Rauch-Tung-Striebel Smoother*

(*the RTS Smoother is compatible with all filters - ERTS / SERTS / IERTS/ URTS-M)

Together with a few system and measurement models mostly for demo purpose. Other filters/models can and will be added, contributions are welcome.

kalmanif started has a rework of the excellent kalman library by Markus Herb to turn the filtering-based examples in manif into reusable code. The main difference from the kalman library is its integration with the manif library to handle the Lie theory aspects. There are also numerous implementation details that differ and which can't be summarized here.

kalmanif is distributed under the same permissive license as it's inspirational model.

:heavyexclamationmark: kalmanif is very much a work in progress. As such, do not expect it to work out of the box, nor support your application. Do expect its API to change. Headache possible. :heavyexclamationmark:

Details

Quick Start

Checkout the installation guide over here.

Note

Both the IEKF and UKFM filters are implemented in their 'right invariant' flavor. However they are able to handle both 'right' and 'left' measurements.

Tutorials and application demos

We provide some self-contained and self-explained executables implementing some real problems. Their source code is located in kalmanif/examples/. These demos are:

  • demo_se2.cpp: 2D robot localization based on fixed landmarks using SE2 as robot poses. This implements the example V.A in SOLA-18-Lie.
  • demo_se3.cpp: 3D robot localization based on fixed landmarks using SE3 as robot poses. This re-implements the example above but in 3D.
  • demo_se_2_3.cpp: 3D robot localization and linear velocity estimation based on strap-down IMU model and fixed beacons.

Check out the documentation to see how to build them and what are their options.

References

kalmanif is based on several publications, some of which are referenced here.

Contributing

Want to contribute? Great! Check out our contribution guidelines.

Owner

  • Name: Jeremie Deray
  • Login: artivis
  • Kind: user
  • Location: France
  • Company: @CanonicalLtd

Roboticist / Software Developer, ROS(2) / C++ enthusiast.

GitHub Events

Total
  • Watch event: 27
  • Fork event: 3
Last Year
  • Watch event: 27
  • Fork event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 18
  • Total Committers: 1
  • Avg Commits per committer: 18.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
artivis d****e@g****m 18

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 12
  • Total pull requests: 4
  • Average time to close issues: 6 days
  • Average time to close pull requests: about 5 hours
  • Total issue authors: 5
  • Total pull request authors: 1
  • Average comments per issue: 2.58
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • slovak194 (4)
  • joansola (4)
  • Rajat-Arora (1)
  • narutojxl (1)
  • Chris7462 (1)
Pull Request Authors
  • artivis (4)
Top Labels
Issue Labels
question (3)
Pull Request Labels
bug (1) enhancement (1)

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v2 composite