PoseManifoldGaussian Struct Reference

A "gaussian" distribution in pose space (i.e. More...

#include <RobotAPI/libraries/ArmarXObjects/PoseManifoldGaussian.h>

Classes

struct  Ellipsoid
 

Public Member Functions

Ellipsoid getPositionEllipsoid () const
 Get the parameters of a 3D ellipsoid illustrating this gaussian.
 
Eigen::AngleAxisf getScaledRotationAxis (int index, bool global=false) const
 Get a column of the pure orientational covariance matrix as axis-angle rotation.
 
PoseManifoldGaussian getTransformed (const Eigen::Matrix4f &fromFrame, const Eigen::Matrix4f &toFrame) const
 Transform this gaussian from one base coordinate system to another one.
 
PoseManifoldGaussian getTransformed (const Eigen::Matrix4f &transform) const
 Transform this gaussian by the given transform (e.g.
 
Eigen::Block< Eigen::Matrix< float, 6, 6 >, 3, 3 > orientationCovariance ()
 Get the pure orientational part of the covariance matrix.
 
Eigen::Block< const Eigen::Matrix< float, 6, 6 >, 3, 3 > orientationCovariance () const
 
Eigen::Block< Eigen::Matrix< float, 6, 6 >, 3, 3 > positionCovariance ()
 Get the pure positional part of the covariance matrix.
 
Eigen::Block< const Eigen::Matrix< float, 6, 6 >, 3, 3 > positionCovariance () const
 

Public Attributes

Eigen::Matrix< float, 6, 6 > covariance = Eigen::Matrix<float, 6, 6>::Identity()
 The covariance matrix.
 
Eigen::Matrix4f mean = Eigen::Matrix4f::Identity()
 The mean (i.e. a pose).
 

Detailed Description

A "gaussian" distribution in pose space (i.e.

pose manifold).

The mean is a specific pose, represented as 4x4 homogeneous matrix.

The covariance is a 6 x 6 covariance matrix. The first 3 dimensions represent the position (translation) part, the second 3 dimensions represent the orientation (rotation) part. A column of the pure orientational part (lower right 3 x 3 matrix) is a scaled rotation axis, i.e. rotation axis whose norm is the rotation angle (in this case the "angle variance").

Note that the lower left and upper right 3x3 parts of the covariance matrix can be non-zero.

Member Function Documentation

◆ getPositionEllipsoid()

PoseManifoldGaussian::Ellipsoid getPositionEllipsoid ( ) const

Get the parameters of a 3D ellipsoid illustrating this gaussian.

◆ getScaledRotationAxis()

Eigen::AngleAxisf getScaledRotationAxis ( int index,
bool global = false ) const

Get a column of the pure orientational covariance matrix as axis-angle rotation.

Parameters
indexThe column's index.
globalIf true, rotate the axis by the mean orientation.
Returns

◆ getTransformed() [1/2]

PoseManifoldGaussian getTransformed ( const Eigen::Matrix4f & fromFrame,
const Eigen::Matrix4f & toFrame ) const

Transform this gaussian from one base coordinate system to another one.

Parameters
fromFrameThe original (current) base coordinate system' pose.
toFrameThe new base coordinate system' pose.
Returns
The same gaussian in thenew coordinate system.

◆ getTransformed() [2/2]

PoseManifoldGaussian getTransformed ( const Eigen::Matrix4f & transform) const

Transform this gaussian by the given transform (e.g.

to another frame).

Parameters
transformThe transform to apply.
Returns
The transformed gaussian.

◆ orientationCovariance() [1/2]

Eigen::Block< Eigen::Matrix< float, 6, 6 >, 3, 3 > orientationCovariance ( )
inline

Get the pure orientational part of the covariance matrix.

◆ orientationCovariance() [2/2]

Eigen::Block< const Eigen::Matrix< float, 6, 6 >, 3, 3 > orientationCovariance ( ) const
inline

◆ positionCovariance() [1/2]

Eigen::Block< Eigen::Matrix< float, 6, 6 >, 3, 3 > positionCovariance ( )
inline

Get the pure positional part of the covariance matrix.

◆ positionCovariance() [2/2]

Eigen::Block< const Eigen::Matrix< float, 6, 6 >, 3, 3 > positionCovariance ( ) const
inline

Member Data Documentation

◆ covariance

Eigen::Matrix<float, 6, 6> covariance = Eigen::Matrix<float, 6, 6>::Identity()

The covariance matrix.

◆ mean

Eigen::Matrix4f mean = Eigen::Matrix4f::Identity()

The mean (i.e. a pose).


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