1 #ifndef __KFD_POS_VEL_HPP__ 2 #define __KFD_POS_VEL_HPP__ 5 #include <Eigen/Geometry> 25 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
27 _x(vector_t::Zero()), _pos_w( _x.segment<3>(0) ), _vel_i( _x.segment<3>(3) ) {};
40 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
42 static const unsigned int _POS_MEASUREMENT_SIZE = 3;
43 static const unsigned int _VEL_MEASUREMENT_SIZE = 3;
44 static const unsigned int _POS_DEGREE_OF_FREEDOM = 3;
45 static const unsigned int _VEL_DEGREE_OF_FREEDOM = 3;
57 Eigen::Matrix<double, StatePosVel::SIZE, StatePosVel::SIZE>
Q;
67 bool positionObservation( Eigen::Vector3d position, Eigen::Matrix3d covariance,
float reject_position_threshol);
70 bool velocityObservation(Eigen::Vector3d velocity, Eigen::Matrix3d covariance,
float reject_velocity_threshol);
73 bool positionZObservation(
double z,
double error,
double rejection_threshold) ;
76 void setPosition( Eigen::Vector3d position, Eigen::Matrix3d covariance );
79 void setVelocity( Eigen::Vector3d velocity, Eigen::Matrix3d covariance );
82 void predict(Eigen::Quaterniond R_body_2_world,
double dt, Eigen::Matrix<double, StatePosVel::SIZE, StatePosVel::SIZE> process_noise);
85 Eigen::Vector3d getPosition();
88 Eigen::Vector3d getVelocity();
91 Eigen::Matrix3d getPositionCovariance();
94 Eigen::Matrix3d getVelocityCovariance();
97 void init(
const Eigen::Matrix<double, StatePosVel::SIZE, StatePosVel::SIZE> &P,
const Eigen::Matrix<double,StatePosVel::SIZE,1> &x);
Definition: KFD_PosVel.hpp:12
Eigen::Block< vector_t, 3, 1 > _vel_i
Definition: KFD_PosVel.hpp:21
static const int SIZE
Definition: KFD_PosVel.hpp:15
Definition: KFD_PosVel.hpp:36
Definition: EKFPosYawBiasT.hpp:11
Eigen::Matrix< double, StatePosVel::SIZE, StatePosVel::SIZE > Q
Definition: KFD_PosVel.hpp:57
StatePosVel x
Definition: KFD_PosVel.hpp:49
Boost_DIR Bsymbolic functions z
Definition: CMakeCache.txt:72
vector_t & vector()
Definition: KFD_PosVel.hpp:29
KalmanFilter::KF< StatePosVel::SIZE > * filter
Definition: KFD_PosVel.hpp:54
Eigen::Block< vector_t, 3, 1 > & pos_world()
Definition: KFD_PosVel.hpp:30
Eigen::Block< vector_t, 3, 1 > & vel_body()
Definition: KFD_PosVel.hpp:31
EIGEN_MAKE_ALIGNED_OPERATOR_NEW StatePosVel()
Definition: KFD_PosVel.hpp:26
Eigen::Matrix< double, SIZE, 1 > vector_t
Definition: KFD_PosVel.hpp:16
Definition: KalmanFilter.hpp:13
Eigen::Block< vector_t, 3, 1 > _pos_w
Definition: KFD_PosVel.hpp:20
vector_t _x
Definition: KFD_PosVel.hpp:19