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. More...
 
const KalmanFiltergetFilter () const
 
double getOrientation () const
 
const Eigen::Vector3d & getPose () const
 Global pose of the holonomic platform. More...
 
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. More...
 
void predict (double velX, double velY, double velTheta, const IceUtil::Time &deltaT)
 Performs the predict-step of the Kalman filter. More...
 
void setFilter (const KalmanFilter &value)
 Change the internal Kalman Filter. More...
 
void update (double x, double y, double alpha)
 Performs the update-step of the Kalman filter. More...
 

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.

Definition at line 36 of file PlatformKalmanFilter.h.

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.

Definition at line 29 of file PlatformKalmanFilter.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ getCovariance()

Eigen::Matrix3d getCovariance ( ) const

Covariance matrix of the current belief of the state.

Definition at line 109 of file PlatformKalmanFilter.cpp.

+ Here is the call graph for this function:

◆ getFilter()

const KalmanFilter & getFilter ( ) const

Definition at line 117 of file PlatformKalmanFilter.cpp.

◆ getOrientation()

double getOrientation ( ) const

Definition at line 104 of file PlatformKalmanFilter.cpp.

◆ getPose()

const Eigen::Vector3d & getPose ( ) const

Global pose of the holonomic platform.

Returns
x,y,rotation

Definition at line 94 of file PlatformKalmanFilter.cpp.

◆ getPosition()

Eigen::Vector2d getPosition ( ) const

Definition at line 99 of file PlatformKalmanFilter.cpp.

◆ inverseTransformPose()

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

Definition at line 137 of file PlatformKalmanFilter.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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

Definition at line 58 of file PlatformKalmanFilter.cpp.

+ Here is the call graph for this function:

◆ setFilter()

void setFilter ( const KalmanFilter value)

Change the internal Kalman Filter.

Only use if you know what you are doing.

Definition at line 122 of file PlatformKalmanFilter.cpp.

+ Here is the call graph for this function:

◆ transformPose()

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

Definition at line 128 of file PlatformKalmanFilter.cpp.

+ Here is the caller graph for this function:

◆ 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

Definition at line 84 of file PlatformKalmanFilter.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ filter

KalmanFilter filter
protected

Definition at line 93 of file PlatformKalmanFilter.h.

◆ motionNoise

Gaussian motionNoise
protected

Definition at line 95 of file PlatformKalmanFilter.h.

◆ pose

Eigen::Vector3d pose
protected

Definition at line 96 of file PlatformKalmanFilter.h.

◆ state

Gaussian state
protected

Definition at line 94 of file PlatformKalmanFilter.h.


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