1 #ifndef __KFD_POS_VEL_ACC_HPP__ 2 #define __KFD_POS_VEL_ACC_HPP__ 5 #include <Eigen/Geometry> 27 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
29 _x(vector_t::Zero()), _pos_w( _x.segment<3>(0) ), _vel_i( _x.segment<3>(3) ),_acc_i(_x.segment<3>(6)) {};
42 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
44 static const unsigned int _POS_MEASUREMENT_SIZE = 3;
45 static const unsigned int _VEL_MEASUREMENT_SIZE = 3;
46 static const unsigned int _POS_DEGREE_OF_FREEDOM = 3;
47 static const unsigned int _VEL_DEGREE_OF_FREEDOM = 3;
63 Eigen::Matrix<double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE>
Q;
75 bool positionObservation( Eigen::Vector3d position, Eigen::Matrix3d covariance,
float reject_position_threshol);
78 bool velocityObservation(Eigen::Vector3d velocity, Eigen::Matrix3d covariance,
float reject_velocity_threshol);
81 bool positionZObservation(
double z,
double error,
double rejection_threshold) ;
84 void setPosition( Eigen::Vector3d position, Eigen::Matrix3d covariance );
91 void predict(Eigen::Vector3d acc,
double dt, Eigen::Matrix<double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE> process_noise);
93 void setRotation(Eigen::Quaterniond R);
98 Eigen::Vector3d getPosition();
101 Eigen::Vector3d getVelocity();
103 Eigen::Vector3d getAccBias();
106 Eigen::Matrix3d getPositionCovariance();
109 Eigen::Matrix3d getVelocityCovariance();
112 Eigen::Matrix3d getAccCovariance();
115 void init(
const Eigen::Matrix<double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE> &P,
const Eigen::Matrix<double,StatePosVelAcc::SIZE,1> &x);
Eigen::Quaterniond getRotation()
Definition: KFD_PosVelAcc.hpp:95
Eigen::Block< vector_t, 3, 1 > _pos_w
Definition: KFD_PosVelAcc.hpp:22
Definition: EKFPosYawBiasT.hpp:11
Eigen::Matrix< double, SIZE, 1 > vector_t
Definition: KFD_PosVelAcc.hpp:18
Eigen::Block< vector_t, 3, 1 > _vel_i
Definition: KFD_PosVelAcc.hpp:23
Eigen::Block< vector_t, 3, 1 > & pos_world()
Definition: KFD_PosVelAcc.hpp:32
Eigen::Block< vector_t, 3, 1 > _acc_i
Definition: KFD_PosVelAcc.hpp:24
Definition: KFD_PosVelAcc.hpp:14
Eigen::Quaterniond R_input_to_world
Definition: KFD_PosVelAcc.hpp:65
Eigen::Vector3d position_world
Definition: KFD_PosVelAcc.hpp:56
vector_t _x
Definition: KFD_PosVelAcc.hpp:21
vector_t & vector()
Definition: KFD_PosVelAcc.hpp:31
Eigen::Matrix< double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE > Q
Definition: KFD_PosVelAcc.hpp:63
static const int SIZE
Definition: KFD_PosVelAcc.hpp:17
Eigen::Block< vector_t, 3, 1 > & vel_world()
Definition: KFD_PosVelAcc.hpp:33
Definition: KFD_PosVelAcc.hpp:38
Eigen::Block< vector_t, 3, 1 > & acc_inertial()
Definition: KFD_PosVelAcc.hpp:34
EIGEN_MAKE_ALIGNED_OPERATOR_NEW StatePosVelAcc()
Definition: KFD_PosVelAcc.hpp:28
KalmanFilter::KF< StatePosVelAcc::SIZE > * filter
Definition: KFD_PosVelAcc.hpp:60
StatePosVelAcc x
Definition: KFD_PosVelAcc.hpp:51
Eigen::Vector3d velocity_world
Definition: KFD_PosVelAcc.hpp:55