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

#include <iteratedextendedkalmanfilter.h>

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

Classes

struct  MeasUpdateVariablesIExt
 

Public Member Functions

void AllocateMeasModelIExt (const vector< unsigned int > &meas_dimensions)
 Function to allocate memory needed during the measurement update,. More...
 
void AllocateMeasModelIExt (const unsigned int &meas_dimensions)
 Function to allocate memory needed during the measurement update. More...
 
 IteratedExtendedKalmanFilter (Gaussian *prior, unsigned int nr_it=1, InnovationCheck *innov=NULL)
 
virtual ~IteratedExtendedKalmanFilter ()
 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...
 

Private Attributes

Matrix _F
 
ColumnVector _innovation
 
InnovationCheck_innovationChecker
 pointer to InnovationCheck (to end the iterations if the innovation is too small) More...
 
ColumnVector _J
 
std::map< unsigned int, MeasUpdateVariablesIExt_mapMeasUpdateVariablesIExt
 
std::map< unsigned int, MeasUpdateVariablesIExt >::iterator _mapMeasUpdateVariablesIExt_it
 
unsigned int _nr_iterations
 number of iterations for iterated extended kalman filter More...
 
SymmetricMatrix _P_Matrix
 
SymmetricMatrix _Q
 
Matrix _S_i
 
ColumnVector _x
 
ColumnVector _x_i
 
ColumnVector _x_i_prev
 

Additional Inherited Members

- 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 Iterated Extended Kalman Filters.

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

See also
KalmanFilter

Definition at line 40 of file iteratedextendedkalmanfilter.h.

Constructor & Destructor Documentation

◆ IteratedExtendedKalmanFilter()

BFL::IteratedExtendedKalmanFilter::IteratedExtendedKalmanFilter ( Gaussian prior,
unsigned int  nr_it = 1,
InnovationCheck innov = NULL 
)

Constructor

Precondition
you created the prior
Parameters
priorpointer to the Monte Carlo Pdf prior density
nr_itthe number of iterations in one update
innovpointer to InnovationCheck (to end the iterations of the innovation is too small)

Definition at line 31 of file iteratedextendedkalmanfilter.cpp.

◆ ~IteratedExtendedKalmanFilter()

BFL::IteratedExtendedKalmanFilter::~IteratedExtendedKalmanFilter ( )
virtual

Destructor.

Definition at line 45 of file iteratedextendedkalmanfilter.cpp.

Member Function Documentation

◆ AllocateMeasModelIExt() [1/2]

void BFL::IteratedExtendedKalmanFilter::AllocateMeasModelIExt ( const vector< unsigned int > &  meas_dimensions)

Function to allocate memory needed during the measurement update,.

Definition at line 49 of file iteratedextendedkalmanfilter.cpp.

◆ AllocateMeasModelIExt() [2/2]

void BFL::IteratedExtendedKalmanFilter::AllocateMeasModelIExt ( const unsigned int &  meas_dimensions)

Function to allocate memory needed during the measurement update.

Definition at line 67 of file iteratedextendedkalmanfilter.cpp.

◆ MeasUpdate()

void BFL::IteratedExtendedKalmanFilter::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 99 of file iteratedextendedkalmanfilter.cpp.

◆ SysUpdate()

void BFL::IteratedExtendedKalmanFilter::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 80 of file iteratedextendedkalmanfilter.cpp.

Member Data Documentation

◆ _F

Matrix BFL::IteratedExtendedKalmanFilter::_F
private

Definition at line 102 of file iteratedextendedkalmanfilter.h.

◆ _innovation

ColumnVector BFL::IteratedExtendedKalmanFilter::_innovation
private

Definition at line 101 of file iteratedextendedkalmanfilter.h.

◆ _innovationChecker

InnovationCheck* BFL::IteratedExtendedKalmanFilter::_innovationChecker
private

pointer to InnovationCheck (to end the iterations if the innovation is too small)

Definition at line 79 of file iteratedextendedkalmanfilter.h.

◆ _J

ColumnVector BFL::IteratedExtendedKalmanFilter::_J
private

Definition at line 100 of file iteratedextendedkalmanfilter.h.

◆ _mapMeasUpdateVariablesIExt

std::map<unsigned int, MeasUpdateVariablesIExt> BFL::IteratedExtendedKalmanFilter::_mapMeasUpdateVariablesIExt
private

Definition at line 106 of file iteratedextendedkalmanfilter.h.

◆ _mapMeasUpdateVariablesIExt_it

std::map<unsigned int, MeasUpdateVariablesIExt>::iterator BFL::IteratedExtendedKalmanFilter::_mapMeasUpdateVariablesIExt_it
private

Definition at line 107 of file iteratedextendedkalmanfilter.h.

◆ _nr_iterations

unsigned int BFL::IteratedExtendedKalmanFilter::_nr_iterations
private

number of iterations for iterated extended kalman filter

Definition at line 77 of file iteratedextendedkalmanfilter.h.

◆ _P_Matrix

SymmetricMatrix BFL::IteratedExtendedKalmanFilter::_P_Matrix
private

Definition at line 104 of file iteratedextendedkalmanfilter.h.

◆ _Q

SymmetricMatrix BFL::IteratedExtendedKalmanFilter::_Q
private

Definition at line 103 of file iteratedextendedkalmanfilter.h.

◆ _S_i

Matrix BFL::IteratedExtendedKalmanFilter::_S_i
private

Definition at line 105 of file iteratedextendedkalmanfilter.h.

◆ _x

ColumnVector BFL::IteratedExtendedKalmanFilter::_x
private

Definition at line 97 of file iteratedextendedkalmanfilter.h.

◆ _x_i

ColumnVector BFL::IteratedExtendedKalmanFilter::_x_i
private

Definition at line 98 of file iteratedextendedkalmanfilter.h.

◆ _x_i_prev

ColumnVector BFL::IteratedExtendedKalmanFilter::_x_i_prev
private

Definition at line 99 of file iteratedextendedkalmanfilter.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