PlatformKalmanFilter Class Reference

This class is a convenience class for a holonomic platform using a Kalman filter. More...

#include <MemoryX/libraries/helpers/EarlyVisionHelpers/PlatformKalmanFilter.h>

Public Member Functions

Eigen::Matrix3d getCovariance () const
 Covariance matrix of the current belief of the state.
 
const KalmanFilter & getFilter () const
 
double getOrientation () const
 
const Eigen::Vector3d & getPose () const
 Global pose of the holonomic platform.
 
Eigen::Vector2d getPosition () const
 
 PlatformKalmanFilter (Eigen::Vector2d initialPosition, double initialRotation, double translationSensorStdDev=100.0, double rotationSensorStdDev=0.1, double translationVelocitySensorStdDev=1., double rotationVelocitySensorStdDev=1.)
 PlatformKalmanFilter.
 
void predict (double velX, double velY, double velTheta, const IceUtil::Time &deltaT)
 Performs the predict-step of the Kalman filter.
 
void setFilter (const KalmanFilter &value)
 Change the internal Kalman Filter.
 
void update (double x, double y, double alpha)
 Performs the update-step of the Kalman filter.
 

Protected Member Functions

Eigen::Vector3d inverseTransformPose (const Eigen::Vector4d &pose) const
 
Eigen::Vector4d transformPose (const Eigen::Vector3d &pose) const
 

Protected Attributes

KalmanFilter filter
 
Gaussian motionNoise
 
Eigen::Vector3d pose
 
Gaussian state
 

Detailed Description

This class is a convenience class for a holonomic platform using a Kalman filter.

Constructor & Destructor Documentation

◆ PlatformKalmanFilter()

PlatformKalmanFilter ( Eigen::Vector2d initialPosition,
double initialRotation,
double translationSensorStdDev = 100.0,
double rotationSensorStdDev = 0.1,
double translationVelocitySensorStdDev = 1.,
double rotationVelocitySensorStdDev = 1. )

PlatformKalmanFilter.

Parameters
initialPositionInitial position in mm
initialRotationInitial rotation in rad
translationSensorStdDevStandard deviation of the position sensing in mm
rotationSensorStdDevStandard deviation of the orientation sensing in rad
translationVelocitySensorStdDevStandard deviation of the translation velocity sensing in mm. This value is scaled with the current velocity in the predict step.
rotationVelocitySensorStdDevStandard deviation of the rotation velocity sensing in rad. This value is scaled with the current velocity in the predict step.

Member Function Documentation

◆ getCovariance()

Eigen::Matrix3d getCovariance ( ) const

Covariance matrix of the current belief of the state.

◆ getFilter()

const KalmanFilter & getFilter ( ) const

◆ getOrientation()

double getOrientation ( ) const

◆ getPose()

const Eigen::Vector3d & getPose ( ) const

Global pose of the holonomic platform.

Returns
x,y,rotation

◆ getPosition()

Eigen::Vector2d getPosition ( ) const

◆ inverseTransformPose()

Eigen::Vector3d inverseTransformPose ( const Eigen::Vector4d & pose) const
protected

◆ predict()

void predict ( double velX,
double velY,
double velTheta,
const IceUtil::Time & deltaT )

Performs the predict-step of the Kalman filter.

Parameters
velXtranslational velocity on x-axis of the platform in robot coordinates
velYtranslational velocity on y-axis of the platform in robot coordinates
velThetarotational velocity on z-axis of the platform in robot coordinates
deltaTtimestep between last and current velocity measurement, i.e. between last and current predict() call

◆ setFilter()

void setFilter ( const KalmanFilter & value)

Change the internal Kalman Filter.

Only use if you know what you are doing.

◆ transformPose()

Eigen::Vector4d transformPose ( const Eigen::Vector3d & pose) const
protected

◆ update()

void update ( double x,
double y,
double alpha )

Performs the update-step of the Kalman filter.

Parameters
xX-position of the platform in global coordinates
yY-position of the platform in global coordinates
alphaRotation of the platform in global coordinates

Member Data Documentation

◆ filter

KalmanFilter filter
protected

◆ motionNoise

Gaussian motionNoise
protected

◆ pose

Eigen::Vector3d pose
protected

◆ state

Gaussian state
protected

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