Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BFL::ExtendedKalmanFilter Class Reference

#include <extendedkalmanfilter.h>

Inheritance diagram for BFL::ExtendedKalmanFilter:
Inheritance graph
[legend]

Classes

struct  MeasUpdateVariablesExt
 

Public Member Functions

void AllocateMeasModelExt (const vector< unsigned int > &meas_dimensions)
 Function to allocate memory needed during the measurement update,. More...
 
void AllocateMeasModelExt (const unsigned int &meas_dimensions)
 Function to allocate memory needed during the measurement update. More...
 
 ExtendedKalmanFilter (Gaussian *prior)
 
virtual ~ExtendedKalmanFilter ()
 Destructor. More...
 
- Public Member Functions inherited from BFL::KalmanFilter
void AllocateMeasModel (const vector< unsigned int > &meas_dimensions)
 Function to allocate memory needed during the measurement update,. More...
 
void AllocateMeasModel (const unsigned int &meas_dimensions)
 Function to allocate memory needed during the measurement update. More...
 
 KalmanFilter (Gaussian *prior)
 Constructor. More...
 
virtual GaussianPostGet ()
 Get Posterior density. More...
 
virtual ~KalmanFilter ()
 Destructor. More...
 
- Public Member Functions inherited from BFL::Filter< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector >
 Filter (Pdf< MatrixWrapper::ColumnVector > *prior)
 Constructor. More...
 
 Filter (const Filter< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > &filt)
 copy constructor More...
 
virtual void Reset (Pdf< MatrixWrapper::ColumnVector > *prior)
 Reset Filter. More...
 
int TimeStepGet () const
 Get current time. More...
 
virtual bool Update (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u, MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &s)
 Full Update (system with inputs/sensing params) More...
 
virtual bool Update (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &s)
 Full Update (system without inputs, with sensing params) More...
 
virtual bool Update (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z)
 Full Update (system without inputs/sensing params) More...
 
virtual bool Update (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u, MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z)
 Full Update (system with inputs, without sensing params) More...
 
virtual bool Update (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u)
 System Update (system with inputs) More...
 
virtual bool Update (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel)
 System Update (system without inputs) More...
 
virtual bool Update (MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &s)
 Measurement Update (system with "sensing params") More...
 
virtual bool Update (MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z)
 Measurement Update (system without "sensing params") More...
 
virtual ~Filter ()
 destructor More...
 

Protected Member Functions

virtual void MeasUpdate (MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &s)
 Measurement Update (overloaded) More...
 
virtual void SysUpdate (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u)
 System Update. More...
 
- Protected Member Functions inherited from BFL::KalmanFilter
void CalculateMeasUpdate (const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &Z, const MatrixWrapper::Matrix &H, const MatrixWrapper::SymmetricMatrix &R)
 
void CalculateSysUpdate (const MatrixWrapper::ColumnVector &J, const MatrixWrapper::Matrix &F, const MatrixWrapper::SymmetricMatrix &Q)
 
void PostMuSet (const MatrixWrapper::ColumnVector &c)
 Set expected value of posterior estimate. More...
 
void PostSigmaSet (const MatrixWrapper::SymmetricMatrix &s)
 Set covariance of posterior estimate. More...
 
virtual bool UpdateInternal (SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u, MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &s)
 Actual implementation of Update, varies along filters. More...
 

Protected Attributes

Matrix _F
 
ColumnVector _J
 
std::map< unsigned int, MeasUpdateVariablesExt_mapMeasUpdateVariablesExt
 
std::map< unsigned int, MeasUpdateVariablesExt >::iterator _mapMeasUpdateVariablesExt_it
 
SymmetricMatrix _Q
 
ColumnVector _x
 
- Protected Attributes inherited from BFL::KalmanFilter
Matrix _K
 
std::map< unsigned int, MeasUpdateVariables_mapMeasUpdateVariables
 
std::map< unsigned int, MeasUpdateVariables >::iterator _mapMeasUpdateVariables_it
 
ColumnVector _Mu_new
 
SymmetricMatrix _Sigma_new
 
Matrix _Sigma_temp
 
Matrix _Sigma_temp_par
 
Matrix _SMatrix
 
- Protected Attributes inherited from BFL::Filter< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector >
Pdf< MatrixWrapper::ColumnVector > * _post
 Pointer to the Posterior Pdf. More...
 
Pdf< MatrixWrapper::ColumnVector > * _prior
 prior Pdf More...
 
int _timestep
 Represents the current timestep of the filter. More...
 

Detailed Description

This is a class implementing the Kalman Filter (KF) class for Extended Kalman Filters.

The System- and MeasurementUpdate equasions are not linear, and will be approximated by local linearisations.

See also
KalmanFilter
Note
that if the system/measurement model that you pass to the update calls is not analytical with additive gaussian noise, you will get rubbish results

Definition at line 43 of file extendedkalmanfilter.h.

Constructor & Destructor Documentation

◆ ExtendedKalmanFilter()

BFL::ExtendedKalmanFilter::ExtendedKalmanFilter ( Gaussian prior)

Constructor

Precondition
you created the prior
Parameters
priorpointer to the Gaussian prior density

Definition at line 32 of file extendedkalmanfilter.cpp.

◆ ~ExtendedKalmanFilter()

BFL::ExtendedKalmanFilter::~ExtendedKalmanFilter ( )
virtual

Destructor.

Definition at line 40 of file extendedkalmanfilter.cpp.

Member Function Documentation

◆ AllocateMeasModelExt() [1/2]

void BFL::ExtendedKalmanFilter::AllocateMeasModelExt ( const vector< unsigned int > &  meas_dimensions)

Function to allocate memory needed during the measurement update,.

Definition at line 44 of file extendedkalmanfilter.cpp.

◆ AllocateMeasModelExt() [2/2]

void BFL::ExtendedKalmanFilter::AllocateMeasModelExt ( const unsigned int &  meas_dimensions)

Function to allocate memory needed during the measurement update.

Definition at line 62 of file extendedkalmanfilter.cpp.

◆ MeasUpdate()

void BFL::ExtendedKalmanFilter::MeasUpdate ( MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const  measmodel,
const MatrixWrapper::ColumnVector &  z,
const MatrixWrapper::ColumnVector &  s 
)
protectedvirtual

Measurement Update (overloaded)

Update the filter's Posterior density using the sensor measurements, an input and the measurement model. This method is used when the measurements depend on the inputs too (doesn't happen very often, does it?) BEWARE: the first time the measurment update is called with a new size of measurement, new allocations are done

Parameters
measmodelpointer to the measurement model the filter should use
zsensor measurement
sinput to the system (must be of the same type as u for now, since this was not yet implemented in ConditionalPdf

Implements BFL::KalmanFilter.

Definition at line 87 of file extendedkalmanfilter.cpp.

◆ SysUpdate()

void BFL::ExtendedKalmanFilter::SysUpdate ( SystemModel< MatrixWrapper::ColumnVector > *const  sysmodel,
const MatrixWrapper::ColumnVector &  u 
)
protectedvirtual

System Update.

Update the filter's Posterior density using the deterministic inputs to the system and the system model

Parameters
sysmodelpointer to the system model the filter should use
uinput to the system

Implements BFL::KalmanFilter.

Definition at line 75 of file extendedkalmanfilter.cpp.

Member Data Documentation

◆ _F

Matrix BFL::ExtendedKalmanFilter::_F
protected

Definition at line 92 of file extendedkalmanfilter.h.

◆ _J

ColumnVector BFL::ExtendedKalmanFilter::_J
protected

Definition at line 91 of file extendedkalmanfilter.h.

◆ _mapMeasUpdateVariablesExt

std::map<unsigned int, MeasUpdateVariablesExt> BFL::ExtendedKalmanFilter::_mapMeasUpdateVariablesExt
protected

Definition at line 94 of file extendedkalmanfilter.h.

◆ _mapMeasUpdateVariablesExt_it

std::map<unsigned int, MeasUpdateVariablesExt>::iterator BFL::ExtendedKalmanFilter::_mapMeasUpdateVariablesExt_it
protected

Definition at line 95 of file extendedkalmanfilter.h.

◆ _Q

SymmetricMatrix BFL::ExtendedKalmanFilter::_Q
protected

Definition at line 93 of file extendedkalmanfilter.h.

◆ _x

ColumnVector BFL::ExtendedKalmanFilter::_x
protected

Definition at line 90 of file extendedkalmanfilter.h.


The documentation for this class was generated from the following files:


bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Mon Feb 28 2022 21:56:34