pose_estimation
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
pose_estimation::PoseUKF Class Reference

#include <PoseUKF.hpp>

Inheritance diagram for pose_estimation::PoseUKF:
pose_estimation::UnscentedKalmanFilter< PoseWithVelocity >

Public Member Functions

 PoseUKF (const State &initial_state, const Covariance &state_cov)
 
virtual ~PoseUKF ()
 
void integrateMeasurement (const PositionMeasurement &measurement)
 
void integrateMeasurement (const XYMeasurement &measurement)
 
void integrateMeasurement (const ZMeasurement &measurement)
 
void integrateMeasurement (const OrientationMeasurement &measurement)
 
void integrateMeasurement (const VelocityMeasurement &measurement)
 
void integrateMeasurement (const XYVelocityMeasurement &measurement)
 
void integrateMeasurement (const ZVelocityMeasurement &measurement)
 
void integrateMeasurement (const XVelYawVelMeasurement &measurement)
 
void integrateMeasurement (const AngularVelocityMeasurement &measurement)
 
void integrateMeasurement (const AccelerationMeasurement &measurement)
 
- Public Member Functions inherited from pose_estimation::UnscentedKalmanFilter< PoseWithVelocity >
 UnscentedKalmanFilter ()
 
virtual ~UnscentedKalmanFilter ()
 
void initializeFilter (const State &initial_state, const Covariance &state_cov)
 
bool getCurrentState (State &state, Covariance &state_cov) const
 
bool getCurrentState (State &state) const
 
void predictionStepFromSampleTime (const base::Time &sample_time)
 
void predictionStep (double delta_t)
 
unsigned getStateSize () const
 
bool isInitialized () const
 
const CovariancegetProcessNoiseCovariance () const
 
void setProcessNoiseCovariance (const Covariance &noise_cov)
 
const base::Time & getLastMeasurementTime () const
 
void setLastMeasurementTime (const base::Time &last_measurement_time)
 
double getMaxTimeDelta () const
 
void setMaxTimeDelta (double max_time_delta)
 
double getMinTimeDelta () const
 
void setMinTimeDelta (double min_time_delta)
 

Protected Member Functions

virtual void predictionStepImpl (const double delta)
 
- Protected Member Functions inherited from pose_estimation::UnscentedKalmanFilter< PoseWithVelocity >
void checkMeasurment (const Eigen::Matrix< scalar_type, DIM, 1 > &mu, const Eigen::Matrix< scalar_type, DIM, DIM > &cov) const
 

Protected Attributes

AccelerationMeasurement acceleration
 
- Protected Attributes inherited from pose_estimation::UnscentedKalmanFilter< PoseWithVelocity >
boost::shared_ptr< MTK_UKFukf
 
Covariance process_noise_cov
 
base::Time last_measurement_time
 
double max_time_delta
 
double min_time_delta
 

Additional Inherited Members

- Public Types inherited from pose_estimation::UnscentedKalmanFilter< PoseWithVelocity >
enum  
 
typedef PoseWithVelocity State
 
typedef ukfom::mtkwrap< PoseWithVelocity > WState
 
typedef ukfom::ukf< WStateMTK_UKF
 
typedef MTK_UKF::cov Covariance
 

Detailed Description

This filter integrates various linear and angular position and velocity measurements into a 12D pose and velocity state. It is simple to use and doesn't need much configurations. But since its model is limited to the propagation of accelerations and velocities into poses its accuracy will be limited as well, however for a lot of cases sufficient.

Constructor & Destructor Documentation

pose_estimation::PoseUKF::PoseUKF ( const State initial_state,
const Covariance state_cov 
)
virtual pose_estimation::PoseUKF::~PoseUKF ( )
inlinevirtual

Member Function Documentation

void pose_estimation::PoseUKF::integrateMeasurement ( const PositionMeasurement &  measurement)

Integrates a 3D position measurement. Body in navigation frame in m.

void pose_estimation::PoseUKF::integrateMeasurement ( const XYMeasurement &  measurement)

Integrates a 2D position measurement. XY of body in navigation frame in m.

void pose_estimation::PoseUKF::integrateMeasurement ( const ZMeasurement &  measurement)

Integrates a 1D position measurement. Z of body in navigation frame in m.

void pose_estimation::PoseUKF::integrateMeasurement ( const OrientationMeasurement &  measurement)

Integrates a 3D orientation measurement. As axis-angle representation of body in navigation frame.

void pose_estimation::PoseUKF::integrateMeasurement ( const VelocityMeasurement &  measurement)

Integrates a 3D linear velocity measurement. Velocity of body in m/s.

void pose_estimation::PoseUKF::integrateMeasurement ( const XYVelocityMeasurement &  measurement)

Integrates a 2D linear velocity measurement. XY velocity of body in m/s.

void pose_estimation::PoseUKF::integrateMeasurement ( const ZVelocityMeasurement &  measurement)

Integrates a 1D linear velocity measurement. Z velocity of body in m/s.

void pose_estimation::PoseUKF::integrateMeasurement ( const XVelYawVelMeasurement &  measurement)

Integrates a 2D linear and angular velocity measurement. X velocity of body in m/s and yaw velocity of body in rad/s.

void pose_estimation::PoseUKF::integrateMeasurement ( const AngularVelocityMeasurement &  measurement)

Integrates the 3D rotation rates. As angular velocity vector of the body in rad/s.

void pose_estimation::PoseUKF::integrateMeasurement ( const AccelerationMeasurement &  measurement)

Sets the current acceleration of the body in m/s^2. Note that this is not integrated but propagated in the prediction step to the velocity. As soon as this is used it should be updated continuously.

void pose_estimation::PoseUKF::predictionStepImpl ( const double  delta)
protectedvirtual

Member Data Documentation

AccelerationMeasurement pose_estimation::PoseUKF::acceleration
protected

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