Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/nravic/kalmanrs
- Owner: nravic
- Created: 2019-12-19T21:54:47.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-30T01:39:14.000Z (over 2 years ago)
- Last Synced: 2024-12-29T04:29:18.194Z (about 1 month ago)
- Topics: kalman-filter, nalgebra, robotics, rust
- Language: Rust
- Size: 9.77 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-rust-list - nravic/kalmanrs
- awesome-rust-list - nravic/kalmanrs
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