This library directly implements the algorithm found here. 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.
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}
.
- Add the Extended Kalman Filter (EKF).
- Add the Unscented Kalman Filter (UKF).
- Better testing/test coverage