Skip to content

[Usage]: Kalman Filtering #776

@FrancoisCarouge

Description

@FrancoisCarouge

Organization Type

Individual Developer

Organization Name (Optional)

FrancoisCarouge/Kalman

Primary Domain/Industry

Research & Development

Other Domain (if selected above)

No response

Project Stage

Development

Development Team Size

Small team (2-5)

Use Case Description

We use the mp-units facilities as one of the strong types in our Kalman filter tests and samples. The usage demonstrates how the library is compatible with typed linear algebra backends with the level of safeties, ergonomics, and facilities of the mp-units library. [GitHub]

Example of the estimate uncertainty update of a one-dimension position, velocity, acceleration Kalman filter with mp-units and Eigen:

// Update the estimate uncertainty of a Kalman filter:
p = (i - k * h) * p * t(i - k * h) + k * r * t(k);

std::println("{}", p);
// [[8.92 m²,      5.95 m²/s,    1.98 m²/s²],
//  [5.95 m²/s,  503.98 m²/s², 334.67 m²/s³],
//  [1.98 m²/s², 334.67 m²/s³, 444.91 m²/s⁴]]

Features Used

  • Basic quantity arithmetic (addition, subtraction, multiplication, division)
  • Unit conversions (m to km, s to h, etc.)
  • Dimensional analysis and compile-time validation
  • Custom units and dimensions
  • Quantity points
  • Text formatting and I/O
  • C++ modules support
  • Interoperability with other libraries
  • SI unit system
  • Other unit systems (CGS, Imperial, etc.)
  • Natural units
  • Freestanding mode

Key Benefits Experienced

  • Guaranteed compile-time correctness usage of the library API: the end-user developer receives immediate feedback in case of misuse of the API.
  • The formatting, printing of the filter states with the unit elevates the usage and troubleshooting experience of the end-user developer.

Impact on Your Project

Very helpful - Significant improvements

Usage Permissions

  • You can use our testimonial in documentation and presentations
  • You can mention our organization name publicly

Metadata

Metadata

Assignees

Labels

usage experienceUsage experience story from our form

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions