odometry
Public Member Functions | Public Attributes | List of all members
odometry::Skid4Odometry Class Reference

Class which provides a simple wheel (skid steering) odometry from asguard. More...

#include <Odometry.hpp>

Inheritance diagram for odometry::Skid4Odometry:
odometry::SkidOdometry odometry::Gaussian3D odometry::Sampling3D odometry::Sampling2D

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW Skid4Odometry (const Configuration &config, double wheelRadiusAvg, double trackWidth, double wheelBase)
 default constructor for wheel odometry class More...
 
void update (const BodyState &bs, const Eigen::Quaterniond &orientation)
 update method which is called for each new measurement More...
 
Eigen::Matrix3d getPositionError ()
 Provide the error covariance matrix for the current pose delta. More...
 
Eigen::Matrix3d getOrientationError ()
 provide the orientation covariance matrix for the current pose delta More...
 
Matrix6d getPoseError ()
 
Eigen::Vector3d getTranslation ()
 
Eigen::Vector3d getVelocity ()
 
Eigen::Vector3d getAngularVelocity ()
 
Eigen::Matrix3d getVelocityError ()
 
double getDeltaYaw ()
 
- Public Member Functions inherited from odometry::SkidOdometry
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SkidOdometry (const Configuration &config, double wheelRadiusAvg, double trackWidth, double wheelBase, const std::vector< std::string > &leftWheelNames, const std::vector< std::string > &rightWheelNames)
 default constructor for wheel odometry class More...
 
 SkidOdometry (const Configuration &config, double wheelRadiusAvg, double trackWidth, double wheelBase, const std::vector< std::string > &leftWheelNames, const std::vector< std::string > &rightWheelNames, const std::vector< std::string > &leftSteeringNames, const std::vector< std::string > &rightSteeringNames)
 Advanced constructor for wheel odometry class. More...
 
void update (Eigen::Vector2d diff, const Eigen::Quaterniond &orientation)
 update method which is called for each new measurement More...
 
void update (double d, const Eigen::Quaterniond &orientation)
 update method which is called for each new measurement More...
 
void update (const base::samples::Joints &js, const Eigen::Quaterniond &orientation)
 update method which is called for each new measurement More...
 
void update (const base::samples::Joints &jsw, const base::samples::Joints &jss, const Eigen::Quaterniond &orientation)
 update method which is called for each new measurement More...
 
base::Pose getPoseDelta ()
 provides the mean of the change in pose between the last two update calls More...
 
Matrix6d getPoseError ()
 
base::Pose getPoseDeltaSample ()
 get a 3d pose sample based on the current state of the odometry More...
 
base::Pose2D getPoseDeltaSample2D ()
 provide a 2d pose sample based on the current state of the odometry More...
 
- Public Member Functions inherited from odometry::Gaussian3D
virtual ~Gaussian3D ()
 
base::Matrix6d getPoseError ()
 
- Public Member Functions inherited from odometry::Sampling3D
virtual ~Sampling3D ()
 
- Public Member Functions inherited from odometry::Sampling2D
virtual ~Sampling2D ()
 

Public Attributes

State< BodyStatestate
 

Additional Inherited Members

- Public Types inherited from odometry::SkidOdometry
typedef base::Matrix6d Matrix6d
 
typedef base::Vector6d Vector6d
 
- Protected Member Functions inherited from odometry::SkidOdometry
double getTranslation (const std::vector< std::string > &actuatorNames)
 
double getRotation (const std::vector< std::string > &actuatorNames)
 
- Protected Attributes inherited from odometry::SkidOdometry
Configuration config
 
double wheelRadiusAvg
 
double trackWidth
 
double wheelBase
 
GaussianSamplingPose3D sampling
 
Eigen::Quaterniond orientation
 
Eigen::Quaterniond prevOrientation
 
base::Pose pose
 
State< base::samples::Joints > jointState
 
State< base::samples::Joints > steeringJointState
 
std::vector< std::string > leftWheelNames
 
std::vector< std::string > rightWheelNames
 
std::vector< std::string > leftSteeringNames
 
std::vector< std::string > rightSteeringNames
 

Detailed Description

Class which provides a simple wheel (skid steering) odometry from asguard.

class is based on a simple skid steering model, where the change in orientation is provided by an IMU, so effectively only the translation comes from a change in wheel position.

Note
currently this class is specific to asguard, but can be made generic quite easily.

Constructor & Destructor Documentation

Skid4Odometry::Skid4Odometry ( const Configuration config,
double  wheelRadiusAvg,
double  trackWidth,
double  wheelBase 
)

default constructor for wheel odometry class

Parameters
configodometry configuration class, mainly setting the error matrix
asguardConfigconfiguration of the asguard body model

Member Function Documentation

Eigen::Vector3d Skid4Odometry::getAngularVelocity ( )
double Skid4Odometry::getDeltaYaw ( )
Eigen::Matrix3d Skid4Odometry::getOrientationError ( )
virtual

provide the orientation covariance matrix for the current pose delta

Returns
orientation error covariance as 3 matrix as axis/angle of rotation

Reimplemented from odometry::SkidOdometry.

base::Matrix6d Skid4Odometry::getPoseError ( )
Eigen::Matrix3d Skid4Odometry::getPositionError ( )
virtual

Provide the error covariance matrix for the current pose delta.

Returns
position error covariance as 3 matrix

Reimplemented from odometry::SkidOdometry.

Eigen::Vector3d Skid4Odometry::getTranslation ( )
Eigen::Vector3d Skid4Odometry::getVelocity ( )
Eigen::Matrix3d Skid4Odometry::getVelocityError ( )
void Skid4Odometry::update ( const BodyState bs,
const Eigen::Quaterniond &  orientation 
)

update method which is called for each new measurement

Parameters
bsencodes the change in wheel positions of the asgaurd
orientationbody to world rotation provided by an IMU

Member Data Documentation

State<BodyState> odometry::Skid4Odometry::state

helper member to store the current and previous bodystates


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