Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nravic/kalmanrs

A (yet to be) comprehensive Kalman Filter library in Rust
https://github.com/nravic/kalmanrs

kalman-filter nalgebra robotics rust

Last synced: 26 days ago
JSON representation

A (yet to be) comprehensive Kalman Filter library in Rust

Awesome Lists containing this project

README

        

# Kalmanrs - Kalman Filters in Rust

This library directly implements the algorithm found [here](http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf). kalmanrs is built using nalgebra, and is designed to be as dimensionally generic as possible to make it easy to implement in whatever control structure or system you're working with.

## Setup and Usage
Add `kalmanrs` to your Cargo.toml under dependencies.

The design of `kalmanrs` necessitates creating a wrapper for the two structs that comprise a Kalman Filter in `kalmanrs`, `LinearKalman` and `KalmanState`. What allows for dimensional genericity is the macro `kalmanrs` supplies, `lkf_builder`; which implements the predict and update methods for your Kalman Filter.

A self-explanatory example is detailed in `examples/lkf.rs`. An important note to make is that because rust currently does not support parametrization over integer values, dimensions are simulated using types; which are defined in the root module of nalgebra. If you wanted to use a 2x3 dimensional matrix for example, you would have to `use na::{U2, U3}`.

## Todo
- Add the Extended Kalman Filter (EKF).
- Add the Unscented Kalman Filter (UKF).
- Better testing/test coverage