All Projects → robotology → bayes-filters-lib

robotology / bayes-filters-lib

Licence: BSD-3-Clause License
A flexible, modern, C++ recursive Bayesian estimation library.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to bayes-filters-lib

sf-pkg
Generic Sensor Fusion Package for ROS
Stars: ✭ 28 (-41.67%)
Mutual labels:  particle-filter, kalman-filter
Computer-Vision
Cool Vision projects
Stars: ✭ 51 (+6.25%)
Mutual labels:  particle-filter, kalman-filter
Face-Detection-and-Tracking
Computer Vision model to detect face in the first frame of a video and to continue tracking it in the rest of the video. This is implemented in OpenCV 3.3.0 and Python 2.7
Stars: ✭ 24 (-50%)
Mutual labels:  particle-filter, kalman-filter
Self Driving Car
Udacity Self-Driving Car Engineer Nanodegree projects.
Stars: ✭ 2,103 (+4281.25%)
Mutual labels:  particle-filter, kalman-filter
coursera robotics
Contains coursera robotics specialization assignment codes
Stars: ✭ 65 (+35.42%)
Mutual labels:  particle-filter, kalman-filter
go-estimate
State estimation and filtering algorithms in Go
Stars: ✭ 98 (+104.17%)
Mutual labels:  particle-filter, kalman-filter
DA Tutorial
This is a 'hands-on' tutorial for the RIKEN International School on Data Assimilation (RISDA2018).
Stars: ✭ 23 (-52.08%)
Mutual labels:  particle-filter, kalman-filter
FAST LIO SLAM
LiDAR SLAM = FAST-LIO + Scan Context
Stars: ✭ 183 (+281.25%)
Mutual labels:  kalman-filter
nostromo
BLDC ESC firmware (GPLv3.0)
Stars: ✭ 36 (-25%)
Mutual labels:  kalman-filter
pomp
R package for statistical inference using partially observed Markov processes
Stars: ✭ 88 (+83.33%)
Mutual labels:  particle-filter
lane-detection
Lane detection MATLAB code for Kalman Filter book chapter: Lane Detection
Stars: ✭ 21 (-56.25%)
Mutual labels:  kalman-filter
Deep-Learning
This repo provides projects on deep-learning mainly using Tensorflow 2.0
Stars: ✭ 22 (-54.17%)
Mutual labels:  kalman-filter
KalmanFiltering
A demo for the performace evaluation of different kinds of Kalman filters, including the conventional Kalman filter (KF), the unscented Kalman filter (UKF), the extended Kalman filter (EKF), the embedded/imbedded cubature Kalman filter (ICKF/ECKF), the third-degree cubature Kalman filter (CKF) and the fifth-degree cubature Kalman filter (FCKF).
Stars: ✭ 37 (-22.92%)
Mutual labels:  kalman-filter
robust-kalman
Robust Kalman filter with adaptive noise statistics estimation.
Stars: ✭ 89 (+85.42%)
Mutual labels:  kalman-filter
sensor-fusion
Filters: KF, EKF, UKF || Process Models: CV, CTRV || Measurement Models: Radar, Lidar
Stars: ✭ 96 (+100%)
Mutual labels:  kalman-filter
Kalman.jl
Flexible filtering and smoothing in Julia
Stars: ✭ 62 (+29.17%)
Mutual labels:  kalman-filter
COVID19
Using Kalman Filter to Predict Corona Virus Spread
Stars: ✭ 78 (+62.5%)
Mutual labels:  kalman-filter
SLAM AND PATH PLANNING ALGORITHMS
This repository contains the solutions to all the exercises for the MOOC about SLAM and PATH-PLANNING algorithms given by professor Claus Brenner at Leibniz University. This repository also contains my personal notes, most of them in PDF format, and many vector graphics created by myself to illustrate the theoretical concepts. Hope you enjoy it! :)
Stars: ✭ 107 (+122.92%)
Mutual labels:  particle-filter
kalman-clib
Microcontroller targeted C library for Kalman filtering
Stars: ✭ 43 (-10.42%)
Mutual labels:  kalman-filter
darknet ros
Robotics Operating System Package for Yolo v3 based on darknet with optimized tracking using Kalman Filter and Optical Flow.
Stars: ✭ 51 (+6.25%)
Mutual labels:  kalman-filter

📚 Bayes Filters Library

A flexible, modern, cross-platform C++ recursive Bayesian estimation library.

BayesFilters home Latest Release SemVer ZenHub

Overview

⚠️ About versioning

The project is undergoing heavy development: APIs will be subject to changes quite often. To be able to understand API compatibility during development, the project will follow SemVer specs.

In particular, the library will have zero major version, i.e. 0.MINOR.PATCH, as specified by SemVer spec. 4 and the project will comply with the following rules:

  1. MINOR version increases when API compatibility is broken;
  2. PATCH version increases when functionality are added in a backwards-compatible manner;
  3. Devel branch version adds 100 to PATCH version number, i.e. 0.MINOR.(PATCH+100).
  4. Additional labels for pre-release and build metadata are available as extensions to the 0.MINOR.PATCH format.

📖 Background

The main interest of the present library is estimation, which refers to inferring the values of a set of unknown variables from information provided by a set of noisy measurements whose values depend on such unknown variables. Estimation theory dates back to the work of Gauss on determining the orbit of celestial bodies from their observations. These studies led to the technique known as Least Squares. Over centuries, many other techniques have been proposed in the field of estimation theory, e.g., the Maximum Likelihood, the Maximum a Posteriori and the Minimum Mean Square Error estimation. The Bayesian approach models the quantities to be estimated as random variables characterized by Probability Density Functions (PDFs), and provides an improved estimation of such quantities by conditioning the PDFs on the available noisy measurements. Recursive Bayesian estimation (or Bayesian filtering/filters) are a renowned and well-established probabilistic approach for recursively propagating, in a principled way via a two-step procedure, a PDF of a given time-dependent variable of interest. Popular Bayes filters are the Kalman [1]-[4] and particle filters [5]-[7].

The aim of this library is to provide interfaces and implementations for new and existing recursive Bayesian filters!

🎛 Dependencies

Bayes Filters Library depends on

  • Eigen3 - version >= 3.3 (no beta)

🔨 Build and link the library

Use the following commands to build, install and link the library.

Build

With make facilities:

$ git clone https://github.com/robotology/bayes-filters-lib
$ cd bayes-filters-lib
$ mkdir build && cd build
$ cmake ..
$ make
$ [sudo] make install

With ninja generator:

$ git clone https://github.com/robotology/bayes-filters-lib
$ cd bayes-filters-lib
$ mkdir build && cd build
$ cmake -GNinja ..
$ ninja
$ [sudo] ninja install

You can also generate IDE project (e.g. Visual Studio and Xcode) to use their build tool facilities.

Link

Once the library is installed, you can link it using CMake with as little effort as writing the following line of code in your project CMakeLists.txt:

...
find_package(BayesFilters 0.MINOR.PATCH EXACT REQUIRED)
...
target_link_libraries(<target> BayesFilters::BayesFilters)
...

🔬 Test the library

We have designed some test to run with CMake to see whether everything run smoothly or not. Simply use

$ ctest [-VV]

to run all the tests.

Tests are also a nice starting points to learn how to use the library and how to implement your own filters! Just have a look at them!

📝 API documentaion and example code

Doxygen-generated documentation is available here.

📑 Reference

[1] R. E. Kalman, “A new approach to linear filtering and prediction problems,” Trans. Trans. ASME - Journal of Basic Engineering, vol. 82 (Series D), no. 1, pp. 35– 45, 1960.
[2] R. E. Kalman and R. S. Bucy, “New results in linear filtering and prediction theory,” Trans. ASME - Journal of Basic Engineering, vol. 83 (Series D), no. 1, pp. 95–108, 1961.
[3] L. A. McGee, S. F. Schmidt and G. L. Smith, “Applications of statistical filter theory to the optimal estimation of position and velocity on board a circumlunar vehicle”, NASA Technical Report R-135, Tech. Rep., 1962.
[4] S. J. Julier and J. K. Uhlmann, "Unscented filtering and nonlinear estimation", Proceedings of the IEEE, vol. 92, num. 3, pp. 401-422, 2004.
[5] A. Doucet, N. De Freitas, N. Gordon, Sequential Monte Carlo methods in practice. Springer-Verlag, 2001. [6] M. S. Arulampalam, S. Maskell, N. Gordon and T. Clapp, "A tutorial on particle filters for online nonlinear/non-Gaussian Bayesian tracking." IEEE Transactions on signal processing, vol. 50, num. 2, pp. 174-188, 2002.
[7] N. Gordon, B. Ristic and S. Arulampalam. Beyond the kalman filter: Particle filters for tracking applications. Artech House, Boston, London, 2004.


how-to-export-cpp-library

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].