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" 87 _S_Matrix(meas_dimension,meas_dimension)
88 , _K(state_dimension,meas_dimension)
89 , _innov(meas_dimension)
90 , _postHT(state_dimension,meas_dimension)
113 void PostSigmaSet(
const MatrixWrapper::SymmetricMatrix& s);
116 void PostMuSet(
const MatrixWrapper::ColumnVector& c);
122 void CalculateSysUpdate(
const MatrixWrapper::ColumnVector& J,
const MatrixWrapper::Matrix& F,
const MatrixWrapper::SymmetricMatrix& Q);
130 void CalculateMeasUpdate(
const MatrixWrapper::ColumnVector& z,
const MatrixWrapper::ColumnVector& Z,
const MatrixWrapper::Matrix& H,
const MatrixWrapper::SymmetricMatrix& R);
139 const MatrixWrapper::ColumnVector& u) = 0;
154 const MatrixWrapper::ColumnVector& z,
155 const MatrixWrapper::ColumnVector& s) = 0;
158 const MatrixWrapper::ColumnVector& u,
160 const MatrixWrapper::ColumnVector& z,
161 const MatrixWrapper::ColumnVector& s);
169 #endif // __KALMAN_FILTER__
Abstract class representing an interface for Bayesian Filters.
void PostMuSet(const MatrixWrapper::ColumnVector &c)
Set expected value of posterior estimate.
virtual ~KalmanFilter()
Destructor.
std::map< unsigned int, MeasUpdateVariables >::iterator _mapMeasUpdateVariables_it
Class representing Gaussian (or normal density)
void PostSigmaSet(const MatrixWrapper::SymmetricMatrix &s)
Set covariance of posterior estimate.
KalmanFilter(Gaussian *prior)
Constructor.
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.
MeasUpdateVariables(unsigned int meas_dimension, unsigned int state_dimension)
Class representing the family of all Kalman Filters (EKF, IEKF, ...)
virtual Gaussian * PostGet()
Get Posterior density.
void CalculateSysUpdate(const MatrixWrapper::ColumnVector &J, const MatrixWrapper::Matrix &F, const MatrixWrapper::SymmetricMatrix &Q)
std::map< unsigned int, MeasUpdateVariables > _mapMeasUpdateVariables
virtual void SysUpdate(SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u)=0
System Update.
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 AllocateMeasModel(const vector< unsigned int > &meas_dimensions)
Function to allocate memory needed during the measurement update,.
SymmetricMatrix _Sigma_new