[mrpt-bayes]

Bayesian filtering algorithms

Library mrpt-bayes

This C++ library is part of MRPT and can be installed in Debian-based systems with:

sudo apt install libmrpt-bayes-dev

Read also how to import MRPT into your CMake scripts.

Refer to classes in the namespace mrpt::bayes and these examples:

Kalman filters

A generic, templatized Kalman filter implementation (includes EKF,IEKF and in the future, UKF), which only requires from the programmer to provide the system models and (optinally) the Jacobians.

See mrpt::bayes::CKalmanFilterCapable.

Particle filters

A set of helper classes and functions to perform particle filtering. In this case the algorithms are not as generic as in Kalman filtering, but the classes serve to organize and unify the interface of different PF algorithms in MRPT.

See mrpt::bayes::CParticleFilter.

Library contents

// namespaces

namespace mrpt::bayes;
    namespace mrpt::bayes::detail;

// enums

enum mrpt::bayes::TKFMethod;
enum mrpt::bayes::particle_storage_mode;

// structs

template <class Derived, class particle_list_t>
struct mrpt::bayes::CParticleFilterDataImpl;

template <class T, particle_storage_mode STORAGE>
struct mrpt::bayes::CProbabilityParticle;

struct mrpt::bayes::TKF_options;

// classes

template <
    size_t VEH_SIZE,
    size_t OBS_SIZE,
    size_t FEAT_SIZE,
    size_t ACT_SIZE,
    typename KFTYPE = double
    >
class mrpt::bayes::CKalmanFilterCapable;

class mrpt::bayes::CParticleFilter;
class mrpt::bayes::CParticleFilterCapable;

template <
    class T,
    particle_storage_mode STORAGE = particle_storage_mode::POINTER
    >
class mrpt::bayes::CParticleFilterData;

template <
    class TStateSpace,
    mrpt::bayes::particle_storage_mode STORAGE = mrpt::bayes::particle_storage_mode::POINTER
    >
class mrpt::bayes::CRejectionSamplingCapable;

// global functions

void mrpt::bayes::registerAllClasses_mrpt_bayes();

Global Functions

void mrpt::bayes::registerAllClasses_mrpt_bayes()

Forces manual RTTI registration of all serializable classes in this namespace.

Should never be required to be explicitly called by users, except if building MRPT as a static library.