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

#include <KFD_PosVelAcc.hpp>

Public Member Functions

 KFD_PosVelAcc ()
 
 ~KFD_PosVelAcc ()
 
void copyState (const KFD_PosVelAcc &kfd)
 
bool positionObservation (Eigen::Vector3d position, Eigen::Matrix3d covariance, float reject_position_threshol)
 
bool velocityObservation (Eigen::Vector3d velocity, Eigen::Matrix3d covariance, float reject_velocity_threshol)
 
bool positionZObservation (double z, double error, double rejection_threshold)
 
void setPosition (Eigen::Vector3d position, Eigen::Matrix3d covariance)
 
void correct_state ()
 
void predict (Eigen::Vector3d acc, double dt, Eigen::Matrix< double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE > process_noise)
 
void setRotation (Eigen::Quaterniond R)
 
Eigen::Quaterniond getRotation ()
 
Eigen::Vector3d getPosition ()
 
Eigen::Vector3d getVelocity ()
 
Eigen::Vector3d getAccBias ()
 
Eigen::Matrix3d getPositionCovariance ()
 
Eigen::Matrix3d getVelocityCovariance ()
 
Eigen::Matrix3d getAccCovariance ()
 
void init (const Eigen::Matrix< double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE > &P, const Eigen::Matrix< double, StatePosVelAcc::SIZE, 1 > &x)
 

Public Attributes

StatePosVelAcc x
 
Eigen::Vector3d velocity_world
 
Eigen::Vector3d position_world
 
KalmanFilter::KF
< StatePosVelAcc::SIZE > * 
filter
 
Eigen::Matrix< double,
StatePosVelAcc::SIZE,
StatePosVelAcc::SIZE
Q
 
Eigen::Quaterniond R_input_to_world
 

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
 

Constructor & Destructor Documentation

KFD_PosVelAcc::KFD_PosVelAcc ( )

CHECK

KFD_PosVelAcc::~KFD_PosVelAcc ( )

Member Function Documentation

void KFD_PosVelAcc::copyState ( const KFD_PosVelAcc kfd)

Copy the Kalman Filter State from KFD

void KFD_PosVelAcc::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::Vector3d KFD_PosVelAcc::getAccBias ( )
Eigen::Matrix3d KFD_PosVelAcc::getAccCovariance ( )

get the Acceleration covariance

Eigen::Vector3d KFD_PosVelAcc::getPosition ( )

gets the estimated position

Eigen::Matrix3d KFD_PosVelAcc::getPositionCovariance ( )

get the Position covariance

Eigen::Quaterniond pose_ekf::KFD_PosVelAcc::getRotation ( )
inline
Eigen::Vector3d KFD_PosVelAcc::getVelocity ( )

gets the estimated velocity

Eigen::Matrix3d KFD_PosVelAcc::getVelocityCovariance ( )

get the Velocity covariance

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

set the inital values for state x and covariance P

configurarion hook

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

A 3D position observation

bool KFD_PosVelAcc::positionZObservation ( double  z,
double  error,
double  rejection_threshold 
)

A z position observation

void KFD_PosVelAcc::predict ( Eigen::Vector3d  acc,
double  dt,
Eigen::Matrix< double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE process_noise 
)

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

Inertial Navigation

Kalman Filter

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

set the position

void KFD_PosVelAcc::setRotation ( Eigen::Quaterniond  R)
bool KFD_PosVelAcc::velocityObservation ( Eigen::Vector3d  velocity,
Eigen::Matrix3d  covariance,
float  reject_velocity_threshol 
)

A 3D velocity observation

Member Data Documentation

const unsigned int pose_ekf::KFD_PosVelAcc::_POS_DEGREE_OF_FREEDOM = 3
static
EIGEN_MAKE_ALIGNED_OPERATOR_NEW const unsigned int pose_ekf::KFD_PosVelAcc::_POS_MEASUREMENT_SIZE = 3
static

ensure alignment for eigen vector types

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

Instance of the Extended Kalman filter

Eigen::Vector3d pose_ekf::KFD_PosVelAcc::position_world
Eigen::Matrix<double, StatePosVelAcc::SIZE, StatePosVelAcc::SIZE> pose_ekf::KFD_PosVelAcc::Q

process noise

Eigen::Quaterniond pose_ekf::KFD_PosVelAcc::R_input_to_world
Eigen::Vector3d pose_ekf::KFD_PosVelAcc::velocity_world

estimated position, velocity

StatePosVelAcc pose_ekf::KFD_PosVelAcc::x

state estimate


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