All notable changes to this project will be documented in this file. This project uses Semantic Versioning.
- Added
copy_to
andcopy_from
to matrix trait.
- The
copy
matrix operation is now deprecated in favor ofcopy_to
.
0.6.0 - 2024-06-22
Note: This release contains breaking changes.
- #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.
- #31:
The Regular and Extended Kalman Filter types were split, renamed and moved into separate modules.
RegularKalman
andExtendedKalman
now only provide their respective functionalities.
0.5.0 - 2024-06-20
Note: This release contains major breaking changes.
- #10:
Builder types were added for Kalman filters, control inputs and observations. The
KalmanFilterBuilder
type serves as a simple entry point onalloc
crate features. - #21:
Added the functions
make_identity
,make_scalar
,make_comatrix
andset_diagonal_to_scalar
for square matrices. - #25: Added support for Extended Kalman Filters.
- #28:
micromath
is now an optional dependency again.
- #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.
- The
create_buffer_X
macros were removed from the crate due to their relatively complicated use.
- #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.
0.4.0 - 2024-06-07
- #7:
Added the
libm
crate feature for libm support. - #7:
Added the
float
crate feature to enablef32
andf64
built-in support.
- Removed the
no_std
crate feature in favor of thestd
feature (disabled by default).
- #7: Add an example project for STM32F303 cross-compilation.
- Added CI/CD spell-checks and pre-commit hooks.
0.3.0 - 2024-06-04
- #5:
The macros, matrix, filter and measurement structs are now generic on the data type.
If no type is provided, it defaults to
f32
.
- The dependency on
micromath
was removed due to the generic type implementations.
0.2.3 - 2024-06-03
- Improved documentation of
Kalman
andMeasurement
structs.
0.2.2 - 2024-06-03
- Added usage examples to macro documentation.
- Removed duplicate
create_buffer_P_temp
andcreate_buffer_BQ_temp
macros in favor ofcreate_buffer_temp_P
andcreate_buffer_temp_BQ
.
0.2.1 - 2024-06-03
- Conditionally enable
docsrs
feature gate when building documentation on docs.rs.
0.2.0 - 2024-06-03
- Remove requirement to specify either
std
orno_std
crate feature. Ifno_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.
0.1.0 - 2024-06-03
- Set MSRV to
1.70.0
and Rust Edition to2021
. - 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.
0.0.2 - 2023-07-11
- Initial release as a port from the kalman-clib library.