1 #ifndef __KFD_POS_VEL_ORI_ACC_HPP__
2 #define __KFD_POS_VEL_ORI_ACC_HPP__
5 #include <Eigen/Geometry>
17 static const int SIZE = 15;
25 Eigen::Block<vector_t, 3, 1>
_or_w;
26 Eigen::Block<vector_t, 3, 1>
_w_i;
29 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
37 Eigen::Block<vector_t, 3, 1>&
or_w() {
return _or_w;}
45 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
72 Eigen::Matrix<double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE>
Q;
83 bool positionObservation( Eigen::Vector3d position, Eigen::Matrix3d covariance,
float reject_position_threshol);
86 bool velocityObservation(Eigen::Vector3d velocity_body, Eigen::Matrix3d covariance,
float reject_velocity_threshol);
89 bool orientationObservation( Eigen::Quaterniond orientation, Eigen::Matrix3d covariance,
float reject_orientation_threshol);
92 void setPosition( Eigen::Vector3d position, Eigen::Matrix3d covariance );
95 void setOrientation( Eigen::Quaterniond orientation, Eigen::Matrix3d covariance );
102 void predict(Eigen::Vector3d acc_intertial, Eigen::Vector3d angular_velocity,
double dt,Eigen::Matrix<double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE> process_noise);
126 void init(
const Eigen::Matrix<double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE> &P,
const Eigen::Matrix<double,StatePosVelOriAcc::SIZE,1> &
x);
bool orientationObservation(Eigen::Quaterniond orientation, Eigen::Matrix3d covariance, float reject_orientation_threshol)
Definition: KFD_PosVelOriAcc.cpp:144
Eigen::Block< vector_t, 3, 1 > & pos_world()
Definition: KFD_PosVelOriAcc.hpp:34
void setPosition(Eigen::Vector3d position, Eigen::Matrix3d covariance)
Definition: KFD_PosVelOriAcc.cpp:162
Eigen::Block< vector_t, 3, 1 > & vel_inertial()
Definition: KFD_PosVelOriAcc.hpp:35
static const unsigned int _VEL_MEASUREMENT_SIZE
Definition: KFD_PosVelOriAcc.hpp:48
static EIGEN_MAKE_ALIGNED_OPERATOR_NEW const unsigned int _POS_MEASUREMENT_SIZE
Definition: KFD_PosVelOriAcc.hpp:47
vector_t _x
Definition: KFD_PosVelOriAcc.hpp:21
bool positionObservation(Eigen::Vector3d position, Eigen::Matrix3d covariance, float reject_position_threshol)
Definition: KFD_PosVelOriAcc.cpp:104
Eigen::Matrix3d getPositionCovariance()
Definition: KFD_PosVelOriAcc.cpp:237
Eigen::Block< vector_t, 3, 1 > _acc_i
Definition: KFD_PosVelOriAcc.hpp:24
Eigen::Block< vector_t, 3, 1 > _vel_i
Definition: KFD_PosVelOriAcc.hpp:23
Eigen::Quaterniond angularCorrection()
Definition: KFD_PosVelOriAcc.cpp:252
void copyState(const KFD_PosVelOriAcc &kfd)
Definition: KFD_PosVelOriAcc.cpp:209
Eigen::Matrix< double, SIZE, 1 > vector_t
Definition: KFD_PosVelOriAcc.hpp:18
Eigen::Block< vector_t, 3, 1 > & or_w()
Definition: KFD_PosVelOriAcc.hpp:37
Definition: KFD_PosVelOriAcc.hpp:14
static const unsigned int _ORI_DEGREE_OF_FREEDOM
Definition: KFD_PosVelOriAcc.hpp:52
Eigen::Block< vector_t, 3, 1 > & acc_inertial()
Definition: KFD_PosVelOriAcc.hpp:36
void init(const Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE > &P, const Eigen::Matrix< double, StatePosVelOriAcc::SIZE, 1 > &x)
Definition: KFD_PosVelOriAcc.cpp:263
static const unsigned int _POS_DEGREE_OF_FREEDOM
Definition: KFD_PosVelOriAcc.hpp:49
void setOrientation(Eigen::Quaterniond orientation, Eigen::Matrix3d covariance)
Definition: KFD_PosVelOriAcc.cpp:176
Eigen::Matrix3d getOrientationCovariance()
Definition: KFD_PosVelOriAcc.cpp:247
static const int SIZE
Definition: KFD_PosVelOriAcc.hpp:17
Eigen::Quaterniond getOrientationInertial2World()
Definition: KFD_PosVelOriAcc.cpp:232
Eigen::Vector3d velocity_inertial
Definition: KFD_PosVelOriAcc.hpp:62
Eigen::Vector3d getVelocity()
Definition: KFD_PosVelOriAcc.cpp:227
Eigen::Block< vector_t, 3, 1 > _pos_w
Definition: KFD_PosVelOriAcc.hpp:22
Eigen::Vector3d getPosition()
Definition: KFD_PosVelOriAcc.cpp:222
Eigen::Vector3d position_world
Definition: KFD_PosVelOriAcc.hpp:63
Eigen::Block< vector_t, 3, 1 > _or_w
Definition: KFD_PosVelOriAcc.hpp:25
Eigen::Matrix3d getVelocityCovariance()
Definition: KFD_PosVelOriAcc.cpp:242
~KFD_PosVelOriAcc()
Definition: KFD_PosVelOriAcc.cpp:19
EIGEN_MAKE_ALIGNED_OPERATOR_NEW StatePosVelOriAcc()
Definition: KFD_PosVelOriAcc.hpp:30
Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE > Q
Definition: KFD_PosVelOriAcc.hpp:72
Eigen::Block< vector_t, 3, 1 > _w_i
Definition: KFD_PosVelOriAcc.hpp:26
KFD_PosVelOriAcc()
Definition: KFD_PosVelOriAcc.cpp:10
Definition: KFD_PosVelOriAcc.hpp:41
bool velocityObservation(Eigen::Vector3d velocity_body, Eigen::Matrix3d covariance, float reject_velocity_threshol)
Definition: KFD_PosVelOriAcc.cpp:124
Definition: KalmanFilter.hpp:13
StatePosVelOriAcc x
Definition: KFD_PosVelOriAcc.hpp:55
void correct_state()
Definition: KFD_PosVelOriAcc.cpp:191
KalmanFilter::KF< StatePosVelOriAcc::SIZE > * filter
Definition: KFD_PosVelOriAcc.hpp:69
vector_t & vector()
Definition: KFD_PosVelOriAcc.hpp:33
void predict(Eigen::Vector3d acc_intertial, Eigen::Vector3d angular_velocity, double dt, Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE > process_noise)
Definition: KFD_PosVelOriAcc.cpp:25
Eigen::Block< vector_t, 3, 1 > & angular_velocity_inertial()
Definition: KFD_PosVelOriAcc.hpp:38
static const unsigned int _VEL_DEGREE_OF_FREEDOM
Definition: KFD_PosVelOriAcc.hpp:50
Eigen::Quaterniond R_inertial_2_world
Definition: KFD_PosVelOriAcc.hpp:64
static const unsigned int _ORI_MEASUREMENT_SIZE
Definition: KFD_PosVelOriAcc.hpp:51