Skip to content

Class inertialsim::geometry::Pose

ClassList > inertialsim > geometry > Pose

Rigid body pose (position and orientation). More...

  • #include <pose.h>

Inherits the following classes: inertialsim::geometry::RigidTransformBase

Public Types inherited from inertialsim::geometry::RigidTransformBase

See inertialsim::geometry::RigidTransformBase

Type Name
typedef MatrixLieGroup< Derived, 4, 6 > Base

Public Types inherited from inertialsim::geometry::MatrixLieGroup

See inertialsim::geometry::MatrixLieGroup

Type Name
typedef Eigen::Matrix< Scalar, AlgebraDimension, Eigen::Dynamic > AlgebraArray
Array of algebra elements.
typedef Eigen::Matrix< Scalar, AlgebraDimension, 1 > AlgebraElement
Algebra element type (vector).
typedef std::vector< GroupElement > GroupArray
Array of group elements.
typedef Eigen::Matrix< Scalar, GroupDimension, GroupDimension > GroupElement
Group element type (square matrix).
typedef Eigen::Matrix< Scalar, AlgebraDimension, AlgebraDimension > JacobianMatrix
Jacobian matrix (algebra to algebra).
typedef std::vector< JacobianMatrix > JacobianMatrixArray
Array of Jacobian matrices.

Public Functions

Type Name
Rotation AsAttitude () const
Return the attitude component.
Translation AsPosition () const
Return the position component.
Pose (const Rotation & attitude, const Translation & position, const std::optional< Timestamps > & time=std::nullopt)
Construct from rotation and translation.
const Rotation & attitude () const
Get the attitude (rotation) component.
int num_poses () const
Number of poses stored.
const Translation & position () const
Get the position (translation) component.

Public Functions inherited from inertialsim::geometry::RigidTransformBase

See inertialsim::geometry::RigidTransformBase

Type Name
TransformMatrixArray AsHomogeneousMatrix () const
Return homogeneous transform matrices.
const Rotation & AsRotation () const
Return rotation component.
std::pair< Rotation, Translation > AsRotationTranslation () const
Return rotation and translation components.
const Translation & AsTranslation () const
Return translation component.
std::tuple< Vector3D, Vector3D > Error (const RigidTransformBase< OtherDerived > & reference) const
Calculate error compared to a reference transform.
int num_transforms () const
Number of transforms stored.

Public Functions inherited from inertialsim::geometry::MatrixLieGroup

See inertialsim::geometry::MatrixLieGroup

Type Name
Vector3D Apply (const Vector3D & vectors) const
Apply the group action to an array of vectors.
Derived Interpolate (const Timestamps & interp_time, Interpolator method=Interpolator::LINEAR) const
Interpolate at given times.
Derived Inverse () const
Invert an instance.
Derived Slice (int start, int end) const
Get a slice of elements.
AlgebraArray TimeDerivative (int order=1, int accuracy=4, const std::string & side="right") const
Compute time derivative using finite differences.
int num_elements () const
Number of elements stored in the instance.
Derived operator* (const Derived & rhs) const
Compose elements of the group.
Derived operator[] (int index) const
Get a single element by index.
const std::optional< Timestamps > & time () const
Time array corresponding to each element.
virtual ~MatrixLieGroup () = default

Public Static Functions

Type Name
Pose FromAttitudePosition (const Rotation & attitude, const Translation & position, const std::optional< Timestamps > & time=std::nullopt)
Construct from attitude and position.
Pose FromAttitudePosition (RotationMatrixArray & attitude, const Vector3D & position, const std::optional< Timestamps > & time=std::nullopt, bool orthonormalize=false)
Construct from rotation matrices and position vectors.

Public Static Functions inherited from inertialsim::geometry::RigidTransformBase

See inertialsim::geometry::RigidTransformBase

Type Name
Derived FromHomogeneousMatrix (const TransformMatrixArray & matrices, const std::optional< Timestamps > & time=std::nullopt, bool orthonormalize=false)
Construct a RigidTransform from homogeneous transform matrices.
Derived FromRotationTranslation (const Rotation & rotation, const Translation & translation, const std::optional< Timestamps > & time=std::nullopt)
Construct a RigidTransform from rotation and translation.
Derived FromRotationTranslation (const RotationMatrixArray & matrix, const Vector3D & xyz, const std::optional< Timestamps > & time=std::nullopt, bool orthonormalize=false)
Construct from rotation matrices and translation vectors.

Public Static Functions inherited from inertialsim::geometry::MatrixLieGroup

See inertialsim::geometry::MatrixLieGroup

Type Name
Derived Compose (const std::vector< Derived > & instances)
Compose a sequence of instances (first to last).
Derived FromIdentity (int num_elements=1)
Create identity elements.
Derived FromRandom (int num_elements=1, std::optional< Eigen::numext::uint64_t > seed=std::nullopt)
Create random elements.

Protected Functions inherited from inertialsim::geometry::RigidTransformBase

See inertialsim::geometry::RigidTransformBase

Type Name
RigidTransformBase ()
Default constructor.
RigidTransformBase (const Rotation & rotation, const Translation & translation, const std::optional< Timestamps > & time=std::nullopt)
Construct from rotation and translation.

Protected Functions inherited from inertialsim::geometry::MatrixLieGroup

See inertialsim::geometry::MatrixLieGroup

Type Name
AlgebraArray AsAlgebra () const
Get the algebra elements.
GroupArray AsGroup () const
Get the group elements.
MatrixLieGroup (const std::optional< Timestamps > & time=std::nullopt)
Constructor.
int num_times () const

Protected Static Functions inherited from inertialsim::geometry::MatrixLieGroup

See inertialsim::geometry::MatrixLieGroup

Type Name
GroupElement Exp (const AlgebraElement & vector)
Exponential map from algebra to group.
Derived FromAlgebra (const AlgebraArray & elements, const std::optional< Timestamps > & time)
Create instance from algebra elements.
Derived FromGroup (const GroupArray & elements, const std::optional< Timestamps > & time)
Create instance from group elements.
JacobianMatrixArray Jacobian (const AlgebraArray & algebra, const std::string & side="left", bool inverse=false)
Calculate the Jacobian of the exponential map.
AlgebraElement Log (const GroupElement & element)
Logarithm map from group to algebra.

Detailed Description

Pose is an alias for RigidTransform with additional convenience attributes. It adds additional convenience attributes and methods specific to robot pose representation (attitude and position terminology).

Poses can be constructed from a rotation and translation (R, t) or from a homogeneous transform matrix: [[R, t], [0, 1]]. Use the From* methods to construct an instance.

Public Functions Documentation

function AsAttitude

Return the attitude component.

inline Rotation inertialsim::geometry::Pose::AsAttitude () const

Returns:

Rotation instance.


function AsPosition

Return the position component.

inline Translation inertialsim::geometry::Pose::AsPosition () const

Returns:

Translation instance.


function Pose

Construct from rotation and translation.

inline inertialsim::geometry::Pose::Pose (
    const  Rotation & attitude,
    const  Translation & position,
    const std::optional< Timestamps > & time=std::nullopt
) 

Parameters:


function attitude

Get the attitude (rotation) component.

inline const  Rotation & inertialsim::geometry::Pose::attitude () const


function num_poses

Number of poses stored.

inline int inertialsim::geometry::Pose::num_poses () const


function position

Get the position (translation) component.

inline const  Translation & inertialsim::geometry::Pose::position () const


Public Static Functions Documentation

function FromAttitudePosition [1/2]

Construct from attitude and position.

static inline Pose inertialsim::geometry::Pose::FromAttitudePosition (
    const  Rotation & attitude,
    const  Translation & position,
    const std::optional< Timestamps > & time=std::nullopt
) 

Parameters:

  • attitude Rotation instance.
  • position Translation instance.
  • time Optional time array (ignored if attitude has time).

Returns:

Pose instance.


function FromAttitudePosition [2/2]

Construct from rotation matrices and position vectors.

static inline Pose inertialsim::geometry::Pose::FromAttitudePosition (
    RotationMatrixArray & attitude,
    const  Vector3D & position,
    const std::optional< Timestamps > & time=std::nullopt,
    bool orthonormalize=false
) 

Parameters:

  • rotation_matrices Vector of 3x3 rotation matrices.
  • position_xyz Position coordinates (3xN).
  • time Optional time array.
  • orthonormalize If true, enforce orthonormality.

Returns:

Pose instance.


Friends Documentation

friend INS

class inertialsim::geometry::Pose::INS (
    sensors::INS
) 


The documentation for this class was generated from the following file cpp/include/inertialsim/geometry/pose.h