pose_ekf
Public Member Functions | Public Attributes | List of all members
KalmanFilter::KF< SIZE > Class Template Reference

#include <KalmanFilter.hpp>

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW KF ()
 
 ~KF ()
 
void predictionDiscrete (Eigen::Matrix< double, SIZE, SIZE > F, Eigen::Matrix< double, SIZE, SIZE > Q, double dt)
 
template<unsigned int INPUT_SIZE>
void prediction (Eigen::Matrix< double, INPUT_SIZE, 1 > u, Eigen::Matrix< double, SIZE, INPUT_SIZE > B, Eigen::Matrix< double, SIZE, SIZE > F, Eigen::Matrix< double, SIZE, SIZE > Q)
 
template<unsigned int MEASUREMENT_SIZE>
void correction (Eigen::Matrix< double, MEASUREMENT_SIZE, 1 > p, Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE > H, Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE > R)
 
template<unsigned int MEASUREMENT_SIZE>
Eigen::Matrix< double, MEASUREMENT_SIZE, 1 > innovation (Eigen::Matrix< double, MEASUREMENT_SIZE, 1 > p, Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE > H)
 
template<unsigned int MEASUREMENT_SIZE>
Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE > innovationCovariance (Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE > H, Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE > R)
 
template<unsigned int MEASUREMENT_SIZE>
void update (Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE > H, Eigen::Matrix< double, SIZE, MEASUREMENT_SIZE > K, Eigen::Matrix< double, MEASUREMENT_SIZE, 1 > y)
 
template<unsigned int MEASUREMENT_SIZE>
Eigen::Matrix< double, SIZE, MEASUREMENT_SIZE > gain (Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE > H, Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE > S)
 
template<unsigned int MEASUREMENT_SIZE, unsigned int DEGREE_OF_FREEDOM>
bool correctionChiSquare (const Eigen::Matrix< double, MEASUREMENT_SIZE, 1 > &p, const Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE > &R, const Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE > &H, float chi_square_reject_threshold)
 

Public Attributes

Eigen::Matrix< double, SIZE, 1 > x
 
Eigen::Matrix< double, SIZE, SIZE > P
 
pose_ekf::ChiSquaredchi_square
 

Constructor & Destructor Documentation

template<unsigned int SIZE>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW KalmanFilter::KF< SIZE >::KF ( )
inline

what is this line

template<unsigned int SIZE>
KalmanFilter::KF< SIZE >::~KF ( )
inline

Member Function Documentation

template<unsigned int SIZE>
template<unsigned int MEASUREMENT_SIZE>
void KalmanFilter::KF< SIZE >::correction ( Eigen::Matrix< double, MEASUREMENT_SIZE, 1 >  p,
Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE >  H,
Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE >  R 
)
inline

correction step, p - observation H - observation function R - measurement noise covariance matrix

template<unsigned int SIZE>
template<unsigned int MEASUREMENT_SIZE, unsigned int DEGREE_OF_FREEDOM>
bool KalmanFilter::KF< SIZE >::correctionChiSquare ( const Eigen::Matrix< double, MEASUREMENT_SIZE, 1 > &  p,
const Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE > &  R,
const Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE > &  H,
float  chi_square_reject_threshold 
)
inline

Applies the Kalman Filter correction using a chi_square method to reject bad observation samples p - Observation R - observation noise H - how state is translated into observation chi_square_reject_threshold - threashold for the rejection (0 = no rejection) return bool - if the observation was rejected or not.

template<unsigned int SIZE>
template<unsigned int MEASUREMENT_SIZE>
Eigen::Matrix<double, SIZE, MEASUREMENT_SIZE> KalmanFilter::KF< SIZE >::gain ( Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE >  H,
Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE >  S 
)
inline

calculates the gain J_H - jacobian observation model

template<unsigned int SIZE>
template<unsigned int MEASUREMENT_SIZE>
Eigen::Matrix<double, MEASUREMENT_SIZE, 1> KalmanFilter::KF< SIZE >::innovation ( Eigen::Matrix< double, MEASUREMENT_SIZE, 1 >  p,
Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE >  H 
)
inline
template<unsigned int SIZE>
template<unsigned int MEASUREMENT_SIZE>
Eigen::Matrix<double, MEASUREMENT_SIZE, MEASUREMENT_SIZE> KalmanFilter::KF< SIZE >::innovationCovariance ( Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE >  H,
Eigen::Matrix< double, MEASUREMENT_SIZE, MEASUREMENT_SIZE >  R 
)
inline

innovation covariance step, p - observation h - observation model function H - observation model R - measurement noise covariance matrix

template<unsigned int SIZE>
template<unsigned int INPUT_SIZE>
void KalmanFilter::KF< SIZE >::prediction ( Eigen::Matrix< double, INPUT_SIZE, 1 >  u,
Eigen::Matrix< double, SIZE, INPUT_SIZE >  B,
Eigen::Matrix< double, SIZE, SIZE >  F,
Eigen::Matrix< double, SIZE, SIZE >  Q 
)
inline

update step u - Input B - relation between input and state F - state transition Q - process noise covariance matrix,

template<unsigned int SIZE>
void KalmanFilter::KF< SIZE >::predictionDiscrete ( Eigen::Matrix< double, SIZE, SIZE >  F,
Eigen::Matrix< double, SIZE, SIZE >  Q,
double  dt 
)
inline

prediction step F - state transition Q - process noise covariance matrix, dt - discrete time time step

template<unsigned int SIZE>
template<unsigned int MEASUREMENT_SIZE>
void KalmanFilter::KF< SIZE >::update ( Eigen::Matrix< double, MEASUREMENT_SIZE, SIZE >  H,
Eigen::Matrix< double, SIZE, MEASUREMENT_SIZE >  K,
Eigen::Matrix< double, MEASUREMENT_SIZE, 1 >  y 
)
inline

update step, H - observation model y - innovation K - gain

Member Data Documentation

template<unsigned int SIZE>
pose_ekf::ChiSquared* KalmanFilter::KF< SIZE >::chi_square

fault detection libary

template<unsigned int SIZE>
Eigen::Matrix<double, SIZE, SIZE> KalmanFilter::KF< SIZE >::P

covariance matrix

template<unsigned int SIZE>
Eigen::Matrix<double,SIZE,1> KalmanFilter::KF< SIZE >::x

do i need to declare the size as dynamic ? state estimate


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