pose_ekf
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
pose_ekf::KFD_PosVelOriAcc Class Reference

#include <KFD_PosVelOriAcc.hpp>

Public Member Functions

 KFD_PosVelOriAcc ()
 
 ~KFD_PosVelOriAcc ()
 
void copyState (const KFD_PosVelOriAcc &kfd)
 
bool positionObservation (Eigen::Vector3d position, Eigen::Matrix3d covariance, float reject_position_threshol)
 
bool velocityObservation (Eigen::Vector3d velocity_body, Eigen::Matrix3d covariance, float reject_velocity_threshol)
 
bool orientationObservation (Eigen::Quaterniond orientation, Eigen::Matrix3d covariance, float reject_orientation_threshol)
 
void setPosition (Eigen::Vector3d position, Eigen::Matrix3d covariance)
 
void setOrientation (Eigen::Quaterniond orientation, Eigen::Matrix3d covariance)
 
void correct_state ()
 
void predict (Eigen::Vector3d acc_intertial, Eigen::Vector3d angular_velocity, double dt, Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE > process_noise)
 
Eigen::Vector3d getPosition ()
 
Eigen::Vector3d getVelocity ()
 
Eigen::Quaterniond getOrientationInertial2World ()
 
Eigen::Matrix3d getPositionCovariance ()
 
Eigen::Matrix3d getVelocityCovariance ()
 
Eigen::Matrix3d getOrientationCovariance ()
 
Eigen::Quaterniond angularCorrection ()
 
void init (const Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE > &P, const Eigen::Matrix< double, StatePosVelOriAcc::SIZE, 1 > &x)
 

Public Attributes

StatePosVelOriAcc x
 
Eigen::Vector3d velocity_inertial
 
Eigen::Vector3d position_world
 
Eigen::Quaterniond R_inertial_2_world
 
KalmanFilter::KF< StatePosVelOriAcc::SIZE > * filter
 
Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZEQ
 

Static Public Attributes

static EIGEN_MAKE_ALIGNED_OPERATOR_NEW const unsigned int _POS_MEASUREMENT_SIZE = 3
 
static const unsigned int _VEL_MEASUREMENT_SIZE = 3
 
static const unsigned int _POS_DEGREE_OF_FREEDOM = 3
 
static const unsigned int _VEL_DEGREE_OF_FREEDOM = 3
 
static const unsigned int _ORI_MEASUREMENT_SIZE = 3
 
static const unsigned int _ORI_DEGREE_OF_FREEDOM = 3
 

Constructor & Destructor Documentation

KFD_PosVelOriAcc::KFD_PosVelOriAcc ( )

CHECK

KFD_PosVelOriAcc::~KFD_PosVelOriAcc ( )

Member Function Documentation

Eigen::Quaterniond KFD_PosVelOriAcc::angularCorrection ( )

get orientation correction calculated by the kalman filter

void KFD_PosVelOriAcc::copyState ( const KFD_PosVelOriAcc kfd)

Copy the Kalman Filter State from KFD

void KFD_PosVelOriAcc::correct_state ( )

The current state estimation will be corrected by the Kalman Filter error calculation than the states in the filter will be reseted.

Eigen::Matrix3d KFD_PosVelOriAcc::getOrientationCovariance ( )

get the Orientation covariance

Eigen::Quaterniond KFD_PosVelOriAcc::getOrientationInertial2World ( )

gets the estimated pose

Eigen::Vector3d KFD_PosVelOriAcc::getPosition ( )

gets the estimated position

Eigen::Matrix3d KFD_PosVelOriAcc::getPositionCovariance ( )

get the Position covariance

Eigen::Vector3d KFD_PosVelOriAcc::getVelocity ( )

gets the estimated velocity

Eigen::Matrix3d KFD_PosVelOriAcc::getVelocityCovariance ( )

get the Velocity covariance

void KFD_PosVelOriAcc::init ( const Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE > &  P,
const Eigen::Matrix< double, StatePosVelOriAcc::SIZE, 1 > &  x 
)

set the inital values for state x and covariance P

configurarion hook

bool KFD_PosVelOriAcc::orientationObservation ( Eigen::Quaterniond  orientation,
Eigen::Matrix3d  covariance,
float  reject_orientation_threshol 
)

A 3D orientation observation

bool KFD_PosVelOriAcc::positionObservation ( Eigen::Vector3d  position,
Eigen::Matrix3d  covariance,
float  reject_position_threshol 
)

A 3D position observation

void KFD_PosVelOriAcc::predict ( Eigen::Vector3d  acc_intertial,
Eigen::Vector3d  angular_velocity,
double  dt,
Eigen::Matrix< double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE process_noise 
)

input acc and angular velocity data to the filter updating the kalman filter and pose estimation

Angular change calculation

Inertial Navigation

Kalman Filter

void KFD_PosVelOriAcc::setOrientation ( Eigen::Quaterniond  orientation,
Eigen::Matrix3d  covariance 
)

set orientation

void KFD_PosVelOriAcc::setPosition ( Eigen::Vector3d  position,
Eigen::Matrix3d  covariance 
)

set the position

bool KFD_PosVelOriAcc::velocityObservation ( Eigen::Vector3d  velocity_body,
Eigen::Matrix3d  covariance,
float  reject_velocity_threshol 
)

A 3D velocity observation

Member Data Documentation

const unsigned int pose_ekf::KFD_PosVelOriAcc::_ORI_DEGREE_OF_FREEDOM = 3
static
const unsigned int pose_ekf::KFD_PosVelOriAcc::_ORI_MEASUREMENT_SIZE = 3
static
const unsigned int pose_ekf::KFD_PosVelOriAcc::_POS_DEGREE_OF_FREEDOM = 3
static
EIGEN_MAKE_ALIGNED_OPERATOR_NEW const unsigned int pose_ekf::KFD_PosVelOriAcc::_POS_MEASUREMENT_SIZE = 3
static

ensure alignment for eigen vector types

const unsigned int pose_ekf::KFD_PosVelOriAcc::_VEL_DEGREE_OF_FREEDOM = 3
static
const unsigned int pose_ekf::KFD_PosVelOriAcc::_VEL_MEASUREMENT_SIZE = 3
static
KalmanFilter::KF<StatePosVelOriAcc::SIZE>* pose_ekf::KFD_PosVelOriAcc::filter

Instance of the Extended Kalman filter

Eigen::Vector3d pose_ekf::KFD_PosVelOriAcc::position_world
Eigen::Matrix<double, StatePosVelOriAcc::SIZE, StatePosVelOriAcc::SIZE> pose_ekf::KFD_PosVelOriAcc::Q

process noise

Eigen::Quaterniond pose_ekf::KFD_PosVelOriAcc::R_inertial_2_world
Eigen::Vector3d pose_ekf::KFD_PosVelOriAcc::velocity_inertial

covariance matrix estimated position, velocityand orientation

StatePosVelOriAcc pose_ekf::KFD_PosVelOriAcc::x

state estimate


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