Skip to content

Class inertialsim::geometry::ExtendedPose

ClassList > inertialsim > geometry > ExtendedPose

Pose plus velocity.More...

  • #include <extended_pose.h>

Inherits the following classes: inertialsim::geometry::MatrixLieGroup

Public Types

Type Name
typedef MatrixLieGroup< ExtendedPose, 5, 9 > 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
std::tuple< Rotation, Translation, Vector > AsApv () const
Return the attitude, position, and velocity.
const Rotation & AsAttitude () const
Return the attitude component of the ExtendedPose instance.
const Translation & AsPosition () const
Return the position component of the ExtendedPose instance.
const Vector & AsVelocity () const
Return the velocity component of the ExtendedPose instance.
std::tuple< Vector3D, Vector3D, Vector3D > Error (const ExtendedPose & reference) const
Calculate error compared to a reference pose.
const Rotation & attitude () const
The attitude component of the pose.
int num_poses () const
The number of extended poses stored in the instance.
const Translation & position () const
The position component of the pose.
const Vector & velocity () const
The velocity component of the pose.

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
ExtendedPose FromApv (const Rotation & attitude, const Translation & position, const Vector & velocity, const std::optional< Timestamps > & time=std::nullopt)
Construct from attitude, position, and velocity.
ExtendedPose FromApv (const RotationMatrixArray & rotation_matrices, const Vector3D & position_xyz, const Vector3D & velocity_xyz, const std::optional< Timestamps > & time=std::nullopt, bool orthonormalize=false)
Construct from rotation matrices, position, and velocity 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

Type Name
ExtendedPose ()
Default constructor.
ExtendedPose (const Rotation & attitude, const Translation & position, const Vector & velocity, const std::optional< Timestamps > & time=std::nullopt)
Construct from attitude, position, and velocity.

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

ExtendedPose behaves similarly to Pose with the addition of velocity. Represents elements of the SE2(3) Lie group.

Public Types Documentation

typedef Base

using inertialsim::geometry::ExtendedPose::Base =  MatrixLieGroup<ExtendedPose, 5, 9>;

Public Functions Documentation

function AsApv

Return the attitude, position, and velocity.

inline std::tuple< Rotation , Translation , Vector > inertialsim::geometry::ExtendedPose::AsApv () const

See additional documentation at FromApv.

Returns:

Tuple containing:


function AsAttitude

Return the attitude component of the ExtendedPose instance.

inline const  Rotation & inertialsim::geometry::ExtendedPose::AsAttitude () const

Returns:

Rotation instance.


function AsPosition

Return the position component of the ExtendedPose instance.

inline const  Translation & inertialsim::geometry::ExtendedPose::AsPosition () const

Returns:

Translation instance.


function AsVelocity

Return the velocity component of the ExtendedPose instance.

inline const  Vector & inertialsim::geometry::ExtendedPose::AsVelocity () const

Returns:

Vector instance.


function Error

Calculate error compared to a reference pose.

inline std::tuple< Vector3D , Vector3D , Vector3D > inertialsim::geometry::ExtendedPose::Error (
    const  ExtendedPose & reference
) const

Returns the error in the current pose when compared to a reference input. Error is defined as self - reference.

Parameters:

  • reference Reference (or truth) pose to compare.

Returns:

Tuple containing:

  • Attitude error
  • Position error
  • Velocity error

function attitude

The attitude component of the pose.

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

Returns:

Attitude (rotation) component.


function num_poses

The number of extended poses stored in the instance.

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

Returns:

Number of poses.


function position

The position component of the pose.

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

Returns:

Position (translation) component.


function velocity

The velocity component of the pose.

inline const  Vector & inertialsim::geometry::ExtendedPose::velocity () const

Returns:

Velocity component.


Public Static Functions Documentation

function FromApv [1/2]

Construct from attitude, position, and velocity.

static inline ExtendedPose inertialsim::geometry::ExtendedPose::FromApv (
    const  Rotation & attitude,
    const  Translation & position,
    const  Vector & velocity,
    const std::optional< Timestamps > & time=std::nullopt
) 

Attitude is also known as orientation. The inputs must be compatible (dimension, time, etc.) or an exception is raised.

Parameters:

  • attitude Rotation instance.
  • position Translation instance.
  • velocity Vector instance.
  • time Optional array of unique, strictly increasing times corresponding to each input. Ignored if inputs are single elements.

Returns:

ExtendedPose instance.


function FromApv [2/2]

Construct from rotation matrices, position, and velocity vectors.

static inline ExtendedPose inertialsim::geometry::ExtendedPose::FromApv (
    const  RotationMatrixArray & rotation_matrices,
    const  Vector3D & position_xyz,
    const  Vector3D & velocity_xyz,
    const std::optional< Timestamps > & time=std::nullopt,
    bool orthonormalize=false
) 

Attitude is also known as orientation. The inputs must be compatible (dimension, time, etc.) or an exception is raised.

Parameters:

  • rotation_matrices Array of rotation matrices.
  • position_xyz Position vectors (3xN matrix).
  • velocity_xyz Velocity vectors (3xN matrix).
  • time Optional array of unique, strictly increasing times corresponding to each input.
  • orthonormalize If the attitude input is an array, whether to enforce orthonormality. Ignored otherwise.

Returns:

ExtendedPose instance.


Protected Functions Documentation

function ExtendedPose [1/2]

Default constructor.

inline inertialsim::geometry::ExtendedPose::ExtendedPose () 


function ExtendedPose [2/2]

Construct from attitude, position, and velocity.

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

Parameters:



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