#kalman-filter #kalman #linear-algebra #smoothing #bayesian #state #embedded-devices

no-std adskalman

Kalman filter and Rauch-Tung-Striebel smoothing implementation using nalgebra, no_std

20 releases (breaking)

0.16.0 Aug 4, 2024
0.15.1 Feb 1, 2024
0.15.0 Jan 16, 2023
0.14.0 May 2, 2022
0.2.0 May 8, 2020

#175 in Algorithms

Download history 201/week @ 2024-08-17 232/week @ 2024-08-24 243/week @ 2024-08-31 275/week @ 2024-09-07 122/week @ 2024-09-14 233/week @ 2024-09-21 251/week @ 2024-09-28 272/week @ 2024-10-05 283/week @ 2024-10-12 412/week @ 2024-10-19 601/week @ 2024-10-26 469/week @ 2024-11-02 361/week @ 2024-11-09 298/week @ 2024-11-16 303/week @ 2024-11-23 767/week @ 2024-11-30

1,816 downloads per month

MIT/Apache

28KB
378 lines

adskalman-rs

Crates.io Documentation Crate License build

Kalman filter and Rauch-Tung-Striebel smoothing implementation.

  • Includes various methods of computing the covariance matrix on the update step.
  • Estimates state of arbitrary dimensions using observations of arbitrary dimension.
  • Types are checked at compile time.
  • Uses nalgebra for linear algebra.
  • Supports no_std operation to run on embedded devices.

disabling log::trace in release builds

To support debugging, adskalman extensively uses the log::trace!() macro. You probably do not want this in your release builds. Therefore, in your top-level application crate, you may want to use the release_max_level_debug feature for the log crate like so:

[dependencies]
log = { version = "0.4", features = ["release_max_level_debug"] }

See the log documentation for more information.

Running the examples

There are several examples in the examples/ directory, which is its own crate. Run them like so:

cd examples
cargo run --bin online_tracking

Code of conduct

Anyone who interacts with this software in any space, including but not limited to this GitHub repository, must follow our code of conduct.

License

Licensed under either of these:

Dependencies

~3MB
~65K SLoC