minikalman-rs

Fixed- and floating-point Kalman filters for resource-constrained environments, written in Rust.

MIT License

Downloads
6K
Stars
6
minikalman-rs - 0.6.0 Latest Release

Published by sunsided 4 months ago

To add minikalman/0.6.0 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.6.0"

To install the latest version, run

cargo add minikalman

Breaking Changes

Changed

  • #31: The Regular and Extended Kalman Filter types were split, renamed and moved into separate modules. RegularKalman and ExtendedKalman now only provide their respective functionalities.

Fixed

  • #32: Process noise is now separated into direct process noise, acting directly on the state transition, and control process noise, acting only on control inputs through the control matrix.

Pull Requests

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/v0.5.0...v0.6.0

minikalman-rs - 0.5.0

Published by sunsided 4 months ago

To add minikalman/0.5.0 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.5.0"

To install the latest version, run

cargo add minikalman

Breaking Changes

This release reworks the construction of Kalman Filters on both no_std using macros, but adds
builder support for std and alloc targets. Extended Kalman Filters are now available as well.

Added

  • #10: Builder types were added for Kalman filters, control inputs and observations. The KalmanFilterBuilder type serves as a simple entry point on alloc crate features.
  • #21: Added the functions make_identity, make_scalar, make_comatrix and set_diagonal_to_scalar for square matrices.
  • #25: Added support for Extended Kalman Filters.
  • #28: micromath is now an optional dependency again.

Changed

  • #9: Data ownership was reworked: Filters, control inputs and measurements/observations are now backed by a generic buffer type that can operate on stack- or heap allocated arrays, immutable and mutable references. Some features are gated behind the alloc crate feature.
  • Types were remodeled into new modules in order to arrange them in a slightly more logical way.
  • #18: "Inputs" naming was changed to "Control" to align more closely with common usages of Kalman filters.
  • #20: "Measurements" naming was changed to "Observation" in places where it aligns with common usages of Kalman filters. In addition, type name ambiguity between process and measurement noise covariance was reduced.

Removed

  • The create_buffer_X macros were removed from the crate due to their relatively complicated use.

Internal

  • #8: The repository was restructured into a Cargo workspace to allow for easier handling of cross-compilation examples.
  • #27: Added an EKF example with radar measurements of a moving object.

Pull Requests

minikalman-rs - 0.4.0

Published by sunsided 5 months ago

To add minikalman/0.4.0 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.4.0"

To install the latest version, run

cargo add minikalman

Changes

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/v0.3.0...v0.4.0

Added

  • Added the libm crate feature for libm support.
  • Added the float crate feature to enable f32 and f64 built-in support.

Removed

  • Removed the no_std crate feature in favor of the std feature (disabled by default).

Pull Requests

minikalman-rs - v0.3.0

Published by sunsided 5 months ago

To add minikalman/0.3.0 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.3.0"

To install the latest version, run

cargo add minikalman

Changes

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/v0.2.3...v0.3.0

Added

  • Added support for fixed-point values via the fixed crate.

Changed

  • The macros, matrix, filter and measurement structs are now generic on the data type. If no type is provided, it defaults to f32.

Removed

  • The dependency on micromath was removed due to the generic type implementations.

Pull Requests

minikalman-rs - 0.2.3

Published by sunsided 5 months ago

To add minikalman/0.2.3 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.2.3"

To install the latest version, run

cargo add minikalman

Changes

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/v0.2.2...v0.2.3

Internal

  • Improved documentation of Kalman and Measurement structs.
minikalman-rs - v0.2.2

Published by sunsided 5 months ago

To add minikalman/0.2.2 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.2.2"

To install the latest version, run

cargo add minikalman

Changes

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/v0.2.1...v0.2.2

Internal

  • Added usage examples to macro documentation.

Removed

  • Removed duplicate create_buffer_P_temp and create_buffer_BQ_temp macros in favor of create_buffer_temp_P and create_buffer_temp_BQ.
minikalman-rs - v0.2.1

Published by sunsided 5 months ago

To add minikalman/0.2.1 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.2.1"

To install the latest version, run

cargo add minikalman

Changes

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/v0.2.0...v0.2.1

Internal

  • Conditionally enable docsrs feature gate when building documentation on docs.rs.
minikalman-rs - 0.2.0

Published by sunsided 5 months ago

To add minikalman/0.2.0 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.2.0"

To install the latest version, run

cargo add minikalman

Changes

Internal

  • Remove requirement to specify either std or no_std crate feature. If no_std is not specified, std is now implied. This resolves builds on docs.rs and quirks when using the crate.
  • Some documentation hyperlinks were now corrected.

Auto-generated changelog

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/v0.1.0...v0.2.0

minikalman-rs - 0.1.0

Published by sunsided 5 months ago

To add minikalman/0.1.0 to your project, run

cargo add [email protected]

or use

[dependencies]
minikalman = "0.1.0"

To install the latest version, run

cargo add minikalman

Changes

This release mainly improves on ensuring cross-platform builds, reporting code coverage and covering some additional cases with tests. In addition, the version was raised from 0.0.x to 0.1.0 to be a bit less intimidating.

Internal

  • Set MSRV to 1.70.0 and Rust Edition to 2021.
  • Added CI/CD cross-platform builds, code coverage and ensure examples and benchmarks build correctly.
  • Remove dependency on stdint crate unless explicitly enabled with the stdint crate feature. This should unblock builds on Windows.

Auto-generated changelog

New Contributors

Full Changelog: https://github.com/sunsided/minikalman-rs/compare/0.0.2...v0.1.0

Package Rankings
Badges
Extracted from project README
Crates.io Crates.io docs.rs codecov