base
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
base::samples::RigidBodyState Struct Reference

#include <RigidBodyState.hpp>

Public Member Functions

 RigidBodyState (bool doInvalidation=true)
 
void setTransform (const Eigen::Affine3d &transform)
 
Eigen::Affine3d getTransform () const
 
void setPose (const base::Pose &pose)
 
base::Pose getPose () const
 
double getYaw () const
 
double getPitch () const
 
double getRoll () const
 
template<int _Options>
 operator Eigen::Transform< double, 3, Eigen::Affine, _Options > () const
 
void initSane ()
 
void invalidate ()
 
void initUnknown ()
 
bool hasValidPosition () const
 
bool hasValidPosition (int idx) const
 
bool hasValidPositionCovariance () const
 
void invalidatePosition ()
 
void invalidatePositionCovariance ()
 
bool hasValidOrientation () const
 
bool hasValidOrientationCovariance () const
 
void invalidateOrientation ()
 
void invalidateOrientationCovariance ()
 
bool hasValidVelocity () const
 
bool hasValidVelocity (int idx) const
 
bool hasValidVelocityCovariance () const
 
void invalidateVelocity ()
 
void invalidateVelocityCovariance ()
 
bool hasValidAngularVelocity () const
 
bool hasValidAngularVelocity (int idx) const
 
bool hasValidAngularVelocityCovariance () const
 
void invalidateAngularVelocity ()
 
void invalidateAngularVelocityCovariance ()
 
void invalidateValues (bool invPos, bool invOri, bool invVel=true, bool invAngVel=true)
 
void invalidateCovariances (bool invPos=true, bool invOri=true, bool invVel=true, bool invAngVel=true)
 

Static Public Member Functions

static RigidBodyState unknown ()
 
static RigidBodyState invalid ()
 
static bool isValidValue (base::Vector3d const &vec)
 
static bool isValidValue (base::Orientation const &ori)
 
static bool isKnownValue (base::Matrix3d const &cov)
 
static bool isValidCovariance (base::Matrix3d const &cov)
 
static bool isValidValue (base::Vector3d const &vec, int dim)
 
static bool isValidCovariance (base::Matrix3d const &cov, int dim)
 
static bool isKnownValue (base::Matrix3d const &cov, int dim)
 
static base::Vector3d invalidValue ()
 
static base::Orientation invalidOrientation ()
 
static base::Matrix3d setValueUnknown ()
 
static base::Matrix3d invalidCovariance ()
 

Public Attributes

base::Time time
 
std::string sourceFrame
 
std::string targetFrame
 
Position position
 
base::Matrix3d cov_position
 
Orientation orientation
 
base::Matrix3d cov_orientation
 
base::Vector3d velocity
 
base::Matrix3d cov_velocity
 
base::Vector3d angular_velocity
 
base::Matrix3d cov_angular_velocity
 

Detailed Description

Representation of the state of a rigid body

This is among other things used to express frame transformations by Rock's transformer

Given a source and target frame, this structure expresses the frame change between these two frames. In effect, it represents the state of the source frame expressed in the target frame.

Per Rock's conventions, you should use a X-forward, right handed coordinate system when assigning frames to bodies (i.e. X=forward, Y=left, Z=up). In addition, world-fixed frames should be aligned to North (North-West-Up, aka NWU)

For instance, if sourceFrame is "body" and targetFrame is "world", then the RigidBodyState object is the state of body in the world frame (usually, the world frame has an arbitrary origin and a North-West-Up orientation).

Constructor & Destructor Documentation

◆ RigidBodyState()

base::samples::RigidBodyState::RigidBodyState ( bool  doInvalidation = true)

Member Function Documentation

◆ getPitch()

double base::samples::RigidBodyState::getPitch ( ) const

◆ getPose()

Pose base::samples::RigidBodyState::getPose ( ) const

◆ getRoll()

double base::samples::RigidBodyState::getRoll ( ) const

◆ getTransform()

Eigen::Affine3d base::samples::RigidBodyState::getTransform ( ) const

◆ getYaw()

double base::samples::RigidBodyState::getYaw ( ) const

◆ hasValidAngularVelocity() [1/2]

bool base::samples::RigidBodyState::hasValidAngularVelocity ( ) const

◆ hasValidAngularVelocity() [2/2]

bool base::samples::RigidBodyState::hasValidAngularVelocity ( int  idx) const

◆ hasValidAngularVelocityCovariance()

bool base::samples::RigidBodyState::hasValidAngularVelocityCovariance ( ) const

◆ hasValidOrientation()

bool base::samples::RigidBodyState::hasValidOrientation ( ) const

◆ hasValidOrientationCovariance()

bool base::samples::RigidBodyState::hasValidOrientationCovariance ( ) const

◆ hasValidPosition() [1/2]

bool base::samples::RigidBodyState::hasValidPosition ( ) const

◆ hasValidPosition() [2/2]

bool base::samples::RigidBodyState::hasValidPosition ( int  idx) const

◆ hasValidPositionCovariance()

bool base::samples::RigidBodyState::hasValidPositionCovariance ( ) const

◆ hasValidVelocity() [1/2]

bool base::samples::RigidBodyState::hasValidVelocity ( ) const

◆ hasValidVelocity() [2/2]

bool base::samples::RigidBodyState::hasValidVelocity ( int  idx) const

◆ hasValidVelocityCovariance()

bool base::samples::RigidBodyState::hasValidVelocityCovariance ( ) const

◆ initSane()

void base::samples::RigidBodyState::initSane ( )

For backward compatibility only. Use invalidate()

◆ initUnknown()

void base::samples::RigidBodyState::initUnknown ( )

Initializes the rigid body state unknown with Zero for the position, velocity and angular velocity, Identity for the orientation and infinity for all covariances.

◆ invalid()

RigidBodyState base::samples::RigidBodyState::invalid ( )
static

◆ invalidate()

void base::samples::RigidBodyState::invalidate ( )

Initializes the rigid body state with NaN for the position, velocity, orientation and angular velocity.

◆ invalidateAngularVelocity()

void base::samples::RigidBodyState::invalidateAngularVelocity ( )

◆ invalidateAngularVelocityCovariance()

void base::samples::RigidBodyState::invalidateAngularVelocityCovariance ( )

◆ invalidateCovariances()

void base::samples::RigidBodyState::invalidateCovariances ( bool  invPos = true,
bool  invOri = true,
bool  invVel = true,
bool  invAngVel = true 
)

◆ invalidateOrientation()

void base::samples::RigidBodyState::invalidateOrientation ( )

◆ invalidateOrientationCovariance()

void base::samples::RigidBodyState::invalidateOrientationCovariance ( )

◆ invalidatePosition()

void base::samples::RigidBodyState::invalidatePosition ( )

◆ invalidatePositionCovariance()

void base::samples::RigidBodyState::invalidatePositionCovariance ( )

◆ invalidateValues()

void base::samples::RigidBodyState::invalidateValues ( bool  invPos,
bool  invOri,
bool  invVel = true,
bool  invAngVel = true 
)

◆ invalidateVelocity()

void base::samples::RigidBodyState::invalidateVelocity ( )

◆ invalidateVelocityCovariance()

void base::samples::RigidBodyState::invalidateVelocityCovariance ( )

◆ invalidCovariance()

Matrix3d base::samples::RigidBodyState::invalidCovariance ( )
static

◆ invalidOrientation()

Orientation base::samples::RigidBodyState::invalidOrientation ( )
static

◆ invalidValue()

Vector3d base::samples::RigidBodyState::invalidValue ( )
static

◆ isKnownValue() [1/2]

bool base::samples::RigidBodyState::isKnownValue ( base::Matrix3d const &  cov)
static

Helper method that checks if the value whose covariance is represented by the given matrix is a known value (not Inf in the diagonal).

◆ isKnownValue() [2/2]

bool base::samples::RigidBodyState::isKnownValue ( base::Matrix3d const &  cov,
int  dim 
)
static

Checks if the dimension of a vector given by a covariance is known.

◆ isValidCovariance() [1/2]

bool base::samples::RigidBodyState::isValidCovariance ( base::Matrix3d const &  cov)
static

Helper method that checks if the covariance represented by the given matrix is valid

◆ isValidCovariance() [2/2]

bool base::samples::RigidBodyState::isValidCovariance ( base::Matrix3d const &  cov,
int  dim 
)
static

Checks if a given dimension of a covariance matrix is valid.

◆ isValidValue() [1/3]

bool base::samples::RigidBodyState::isValidValue ( base::Vector3d const &  vec)
static

Helper method that checks if a value is valid (not NaN anywhere).

◆ isValidValue() [2/3]

bool base::samples::RigidBodyState::isValidValue ( base::Orientation const &  ori)
static

Helper method that checks if an orientation is valid (not NaN anywhere) and that the orientation is an unit quaternion.

◆ isValidValue() [3/3]

bool base::samples::RigidBodyState::isValidValue ( base::Vector3d const &  vec,
int  dim 
)
static

Checks if a given dimension of a vector is valid.

◆ operator Eigen::Transform< double, 3, Eigen::Affine, _Options >()

template<int _Options>
base::samples::RigidBodyState::operator Eigen::Transform< double, 3, Eigen::Affine, _Options > ( ) const
inline

◆ setPose()

void base::samples::RigidBodyState::setPose ( const base::Pose pose)

◆ setTransform()

void base::samples::RigidBodyState::setTransform ( const Eigen::Affine3d transform)

◆ setValueUnknown()

Matrix3d base::samples::RigidBodyState::setValueUnknown ( )
static

◆ unknown()

RigidBodyState base::samples::RigidBodyState::unknown ( )
static

Member Data Documentation

◆ angular_velocity

base::Vector3d base::samples::RigidBodyState::angular_velocity

Angular Velocity of sourceFrame relative to targetFrame, expressed in sourceFrame, as an axis-angle representation

The direction of the vector is the axis, its length the speed

◆ cov_angular_velocity

base::Matrix3d base::samples::RigidBodyState::cov_angular_velocity

Covariance of the angular velocity

◆ cov_orientation

base::Matrix3d base::samples::RigidBodyState::cov_orientation

Covariance matrix of the orientation as an axis/angle manifold in body coordinates

◆ cov_position

base::Matrix3d base::samples::RigidBodyState::cov_position

Covariance matrix of the position

◆ cov_velocity

base::Matrix3d base::samples::RigidBodyState::cov_velocity

Covariance of the velocity

◆ orientation

Orientation base::samples::RigidBodyState::orientation

Orientation of targetFrame expressed in sourceFrame

◆ position

Position base::samples::RigidBodyState::position

Position in m of sourceFrame's origin expressed in targetFrame

◆ sourceFrame

std::string base::samples::RigidBodyState::sourceFrame

Name of the source reference frame

◆ targetFrame

std::string base::samples::RigidBodyState::targetFrame

Name of the target reference frame

◆ time

base::Time base::samples::RigidBodyState::time

◆ velocity

base::Vector3d base::samples::RigidBodyState::velocity

Velocity in m/s of sourceFrame relative to targetFrame, expressed in targetFrame


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