# adskalman-rs
[](https://crates.io/crates/adskalman)
[](https://docs.rs/adskalman/)
[](https://crates.io/crates/adskalman)
[](https://github.com/strawlab/adskalman-rs/actions?query=branch%3Amain)
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](https://nalgebra.org) 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](https://docs.rs/log/) 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](code_of_conduct.md).
## License
Licensed under either of these:
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
https://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
https://opensource.org/licenses/MIT)