Extended Kalman Filter (EKF) sensor implementation. More...
#include <Kalman.h>
Public Member Functions | |
KalmanSensorEkf (const KalmanSensorEkf &k) | |
KalmanSensorEkf (int _n, int _m) | |
~KalmanSensorEkf () | |
Public Member Functions inherited from alvar::KalmanSensor | |
KalmanSensor (const KalmanSensor &k) | |
Copy constructor. More... | |
KalmanSensor (int n, int _m) | |
Constructor. More... | |
virtual void | update_K (CvMat *P_pred) |
Method for updating the Kalman gain. This is called from predict_update() of Kalman. More... | |
virtual void | update_P (CvMat *P_pred, CvMat *P) |
Method for updating the error covariance matrix describing the accuracy of the state estimate. This is called from predict_update() of Kalman. More... | |
~KalmanSensor () | |
Destructor. More... | |
Public Member Functions inherited from alvar::KalmanSensorCore | |
int | get_m () |
Accessor for m. More... | |
int | get_n () |
Accessor for n. More... | |
KalmanSensorCore (const KalmanSensorCore &k) | |
Copy constructor. More... | |
KalmanSensorCore (int _n, int _m) | |
Constructor. More... | |
~KalmanSensorCore () | |
Destructor. More... | |
Protected Member Functions | |
virtual void | h (CvMat *x_pred, CvMat *_z_pred)=0 |
virtual void | update_H (CvMat *x_pred) |
Method for updating how the Kalman state vector is mapped into this sensor's measurements vector. This is called from predict_update() of Kalman. Please override this method if you want this mapping to change on the run (e.g. based on time?). More... | |
virtual void | update_x (CvMat *x_pred, CvMat *x) |
Method for updating the state estimate x This is called from predict_update() of Kalman. In KalmanSensorCore and in KalmanSensor this update is made linearly but KalmanSensorEkf will override this method to use unlinear estimation. More... | |
Protected Attributes | |
CvMat * | delta |
CvMat * | x_minus |
CvMat * | x_plus |
CvMat * | z_tmp1 |
CvMat * | z_tmp2 |
Protected Attributes inherited from alvar::KalmanSensor | |
CvMat * | P_tmp |
CvMat * | R_tmp |
Protected Attributes inherited from alvar::KalmanSensorCore | |
CvMat * | H_trans |
int | m |
int | n |
CvMat * | x_gain |
CvMat * | z_pred |
CvMat * | z_residual |
Additional Inherited Members | |
Public Attributes inherited from alvar::KalmanSensor | |
CvMat * | R |
The covariance matrix for the observation noise. More... | |
Public Attributes inherited from alvar::KalmanSensorCore | |
CvMat * | H |
The matrix (m*n) mapping Kalman state vector into this sensor's measurements vector. More... | |
CvMat * | K |
The matrix (n*m) containing Kalman gain (something between 0 and H^-1). In this core-implementation we assume this to be precalculated. In KalmanSensor this is updated using update_K . More... | |
CvMat * | z |
Latest measurement vector (m*1) More... | |
Extended Kalman Filter (EKF) sensor implementation.
Please override the pure virtual h() with the desired unlinear function. By default the upate_H calculates the Jacobian numerically, if you want other approach override also the update_H()
alvar::KalmanSensorEkf::KalmanSensorEkf | ( | const KalmanSensorEkf & | k | ) |
Definition at line 229 of file Kalman.cpp.
alvar::KalmanSensorEkf::KalmanSensorEkf | ( | int | _n, |
int | _m | ||
) |
Definition at line 237 of file Kalman.cpp.
alvar::KalmanSensorEkf::~KalmanSensorEkf | ( | ) |
Definition at line 245 of file Kalman.cpp.
|
protectedpure virtual |
Implemented in KalmanSensorOwn.
|
protectedvirtual |
Method for updating how the Kalman state vector is mapped into this sensor's measurements vector. This is called from predict_update() of Kalman. Please override this method if you want this mapping to change on the run (e.g. based on time?).
Reimplemented from alvar::KalmanSensor.
Definition at line 200 of file Kalman.cpp.
|
protectedvirtual |
Method for updating the state estimate x This is called from predict_update() of Kalman. In KalmanSensorCore and in KalmanSensor this update is made linearly but KalmanSensorEkf will override this method to use unlinear estimation.
Reimplemented from alvar::KalmanSensorCore.
Definition at line 221 of file Kalman.cpp.