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::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

◆ getAngularVelocity()

Eigen::Vector3d Skid4Odometry::getAngularVelocity ( )

◆ getDeltaYaw()

double Skid4Odometry::getDeltaYaw ( )

◆ getOrientationError()

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.

◆ getPoseError()

base::Matrix6d Skid4Odometry::getPoseError ( )

◆ getPositionError()

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.

◆ getTranslation()

Eigen::Vector3d Skid4Odometry::getTranslation ( )

◆ getVelocity()

Eigen::Vector3d Skid4Odometry::getVelocity ( )

◆ getVelocityError()

Eigen::Matrix3d Skid4Odometry::getVelocityError ( )

◆ update()

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

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: