Skip to content

robinAZERTY/bayesian_filters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bayesian filters

Overview

This library currently includes an Extended Kalman Filter (EKF) developed alongside a linear algebra library. Both are designed to be lightweight and efficient, making them ideal for use on embedded platforms. They are also intended to be independent of any external libraries.

Classe(s) architecture

Classes diagram

Time efficiency

The duration of prediction and update steps in the Extended Kalman Filter (EKF) is analyzed below. To do this, time measurements were taken for several problem sizes, varying the number of states (X_DIM), the number of control inputs (U_DIM) and the dimension of the measurement vector (Z_DIM). Speed tests ran on ESP32 with numerical jacobian's computation enabled. This gives an idea of the maximum frequency at which this class can operate for a given problem's size.

Efficiency The complexity of the EKF is obviously O(n^3). For more details, see the ekf_complexity_analysis where coefficients are stored and can be used to predict the time needed (in micros second) for a given problem size.

Usage

This library is ideal for anyone learning how filters work in C++ on embedded platforms. The current release includes foundational an Extended Kalman filter, using this linear algebra library.

Documentation

The documentation of classes is available on this page.

Current State

The library is still under development. The EKF has been tested and should be functional, as verified using UNITY. Refer to the test section for details about the testing process, and check the latest test coverage report for an overview of the current coverage.

Roadmap

  • Implement EKF
  • Implement 1 dimensional tests for EKF
  • Implement n dimensional tests for EKF
  • Implement performance tests for EKF
  • write documentation for EKF
  • write examples for EKF
  • docusaurus instead of doxygen

Do the same for UKF and particle filter.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Developer's Note

I'm a student working on this library out of curiosity and a desire to learn about matrix computations and state estimators. Through this project, I aim to deepen my understanding of these concepts, particularly in the context of embedded systems.


Note: This README was partially translated from French to English with the assistance of ChatGPT.

About

This library currently includes an Extended Kalman Filter.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors