21 #ifndef __KALMAN_FILTER__ 22 #define __KALMAN_FILTER__ 25 #include "../pdf/gaussian.h" 26 #include "../model/analyticmeasurementmodel_gaussianuncertainty.h" 27 #include "../model/analyticsystemmodel_gaussianuncertainty.h" 79 struct MeasUpdateVariables
85 MeasUpdateVariables() {};
86 MeasUpdateVariables(
unsigned int meas_dimension,
unsigned int state_dimension):
87 _S_Matrix(meas_dimension,meas_dimension)
88 , _K(state_dimension,meas_dimension)
89 , _innov(meas_dimension)
90 , _postHT(state_dimension,meas_dimension)
97 SymmetricMatrix _Sigma_new;
99 Matrix _Sigma_temp_par;
103 std::map<unsigned int, MeasUpdateVariables> _mapMeasUpdateVariables;
104 std::map<unsigned int, MeasUpdateVariables>::iterator _mapMeasUpdateVariables_it;
173 #endif // __KALMAN_FILTER__
KalmanFilter(Gaussian *prior)
Constructor.
Abstract class representing an interface for Bayesian Filters.
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.
void PostSigmaSet(const MatrixWrapper::SymmetricMatrix &s)
Set covariance of posterior estimate.
void AllocateMeasModel(const vector< unsigned int > &meas_dimensions)
Function to allocate memory needed during the measurement update,.
virtual ~KalmanFilter()
Destructor.
virtual Gaussian * PostGet()
Get Posterior density.
Class representing Gaussian (or normal density)
Wrapper class for ColumnVectors (Boost implementation)
virtual void SysUpdate(SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u)=0
System Update.
void CalculateSysUpdate(const MatrixWrapper::ColumnVector &J, const MatrixWrapper::Matrix &F, const MatrixWrapper::SymmetricMatrix &Q)
Implementation of Matrixwrapper using Boost.
Class representing the family of all Kalman Filters (EKF, IEKF, ...)
void CalculateMeasUpdate(const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &Z, const MatrixWrapper::Matrix &H, const MatrixWrapper::SymmetricMatrix &R)
virtual void MeasUpdate(MeasurementModel< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > *const measmodel, const MatrixWrapper::ColumnVector &z, const MatrixWrapper::ColumnVector &s)=0
Measurement Update (overloaded)
void PostMuSet(const MatrixWrapper::ColumnVector &c)
Set expected value of posterior estimate.