MIRA
Classes | Typedefs | Functions
Transformation Module


For detailed information see Transformation Framework. More...

Collaboration diagram for Transformation Module:

Classes

class  RigidTransform< T, D >
 This class represents an affine transformation that supports a translation followed by a rotation (a so called rigid transform). More...
 
class  RigidTransformCov< T, D >
 This class represents an affine transformation that supports a translation followed by a rotation (a so called rigid transform). More...
 
class  RigidTransformBase< T, D, TRotation, TransformDerived >
 Implementation of RigidTransforms with different dimensionality D. More...
 
class  RigidTransform< T, 2 >
 Specialization of RigidTransform for 2 dimensions. More...
 
class  RigidTransformCov< T, 2 >
 
Specialization of RigidTransformCov for 2 dimensions. More...
 
class  RigidTransform< T, 3 >
 Specialization of RigidTransform for 3 dimensions. More...
 
class  RigidTransformCov< T, 3 >
 
Specialization of RigidTransformCov for 3 dimensions. More...
 
class  TransformerBase
 Base class for Transformer to decouple base functionality that is type independent from type dependent Transformer class template. More...
 
struct  TransformDesc
 Describes a path of transformations through the transformation tree. More...
 
class  GenericTransformer< TNode >
 A generic transformer base class that can be used with different types of actual transformation nodes. More...
 
class  Transformer< T, D, TTransform >
 A full features transformer class based on GenericTransformer. More...
 
class  AbstractTransformerNode
 Abstract base class where all other different types of transformation nodes must be derived from. More...
 
class  TransformerNode< StorageTransform >
 Basic reference implementation of an AbstractTransformerNode that stores the transformation data internally in a StampedDataQueue that allows to query the transformation at specific time stamps. More...
 
class  FrameworkTransformerNode
 
class  FrameworkTransformer
 

Typedefs

typedef RigidTransform< float, 2 > Pose2
 A 2D pose consisting of a translation and rotation. More...
 
typedef RigidTransform< float, 3 > Pose3
 A 3D pose consisting of a translation and rotation. More...
 
typedef RigidTransformCov< float, 2 > PoseCov2
 A 2D pose with covariance consisting of a translation and rotation. More...
 
typedef RigidTransformCov< float, 3 > PoseCov3
 A 3D pose with covariance consisting of a translation and rotation. More...
 
typedef PoseVectorTrait< Pose2 >::VectorType Pose2Vector
 Vector of Pose2. More...
 
typedef PoseVectorTrait< Pose3 >::VectorType Pose3Vector
 Vector of Pose3. More...
 
typedef PoseVectorTrait< PoseCov2 >::VectorType PoseCov2Vector
 Vector of PoseCov2. More...
 
typedef PoseVectorTrait< PoseCov3 >::VectorType PoseCov3Vector
 Vector of PoseCov3. More...
 
typedef RigidTransform< float, 2 > RigidTransform2f
 Typedef for 2D float transform. More...
 
typedef RigidTransform< float, 3 > RigidTransform3f
 Typedef for 3D float transform. More...
 
typedef RigidTransform< double, 2 > RigidTransform2d
 Typedef for 2D double transform. More...
 
typedef RigidTransform< double, 3 > RigidTransform3d
 Typedef for 3D double transform. More...
 
typedef RigidTransformCov< float, 2 > RigidTransformCov2f
 Typedef for 2D float transform with covariance. More...
 
typedef RigidTransformCov< float, 3 > RigidTransformCov3f
 Typedef for 3D float transform with covariance. More...
 
typedef RigidTransformCov< double, 2 > RigidTransformCov2d
 Typedef for 2D double transform with covariance. More...
 
typedef RigidTransformCov< double, 3 > RigidTransformCov3d
 Typedef for 3D double transform with covariance. More...
 
typedef Transformer< float, 2 > Transformer2f
 Typedef for a transformer with 2D floating point transforms. More...
 
typedef Transformer< float, 3 > Transformer3f
 Typedef for a transformer with 3D floating point transforms. More...
 
typedef Transformer< double, 2 > Transformer2d
 Typedef for a transformer with 2D double precision transforms. More...
 
typedef Transformer< double, 3 > Transformer3d
 Typedef for a transformer with 3D double precision transforms. More...
 
typedef Transformer< float, 2, RigidTransformCovTransformerCov2f
 Typedef for a transformer with 2D floating point transforms and covariance. More...
 
typedef Transformer< float, 3, RigidTransformCovTransformerCov3f
 Typedef for a transformer with 3D floating point transforms and covariance. More...
 
typedef Transformer< double, 2, RigidTransformCovTransformerCov2d
 Typedef for a transformer with 2D double precision transforms and covariance. More...
 
typedef Transformer< double, 3, RigidTransformCovTransformerCov3d
 Typedef for a transformer with 3D double precision transforms and covariance. More...
 

Functions

template<typename T , int D, typename S >
RigidTransform< T, D > lerp (const RigidTransform< T, D > &t1, const RigidTransform< T, D > &t2, S alpha)
 Linearly interpolates between two transformations and returns the interpolated transform. More...
 
template<typename T , int D, typename S >
RigidTransformCov< T, D > lerp (const RigidTransformCov< T, D > &t1, const RigidTransformCov< T, D > &t2, S alpha)
 Linearly interpolates between two transformations and returns the interpolated transform. More...
 
template<typename TargetTransform , typename OtherT , int OtherD>
TargetTransform transform_cast (const RigidTransform< OtherT, OtherD > &other)
 Casts a RigidTransform or RigidTransformCov to a RigidTransform of a different type. More...
 
template<typename TargetTransform , typename OtherT , int OtherD>
TargetTransform transform_cast (const RigidTransformCov< OtherT, OtherD > &other)
 Casts a RigidTransformCov to a RigidTransform of a different type. More...
 

Detailed Description


For detailed information see Transformation Framework.

Typedef Documentation

◆ Pose2

typedef RigidTransform<float,2> Pose2

A 2D pose consisting of a translation and rotation.

◆ Pose3

typedef RigidTransform<float,3> Pose3

A 3D pose consisting of a translation and rotation.

◆ PoseCov2

typedef RigidTransformCov<float,2> PoseCov2

A 2D pose with covariance consisting of a translation and rotation.

◆ PoseCov3

typedef RigidTransformCov<float,3> PoseCov3

A 3D pose with covariance consisting of a translation and rotation.

◆ Pose2Vector

typedef PoseVectorTrait<Pose2>::VectorType Pose2Vector

Vector of Pose2.

◆ Pose3Vector

typedef PoseVectorTrait<Pose3>::VectorType Pose3Vector

Vector of Pose3.

◆ PoseCov2Vector

typedef PoseVectorTrait<PoseCov2>::VectorType PoseCov2Vector

Vector of PoseCov2.

◆ PoseCov3Vector

typedef PoseVectorTrait<PoseCov3>::VectorType PoseCov3Vector

Vector of PoseCov3.

◆ RigidTransform2f

typedef RigidTransform<float,2> RigidTransform2f

Typedef for 2D float transform.

◆ RigidTransform3f

typedef RigidTransform<float,3> RigidTransform3f

Typedef for 3D float transform.

◆ RigidTransform2d

typedef RigidTransform<double,2> RigidTransform2d

Typedef for 2D double transform.

◆ RigidTransform3d

typedef RigidTransform<double,3> RigidTransform3d

Typedef for 3D double transform.

◆ RigidTransformCov2f

Typedef for 2D float transform with covariance.

◆ RigidTransformCov3f

Typedef for 3D float transform with covariance.

◆ RigidTransformCov2d

Typedef for 2D double transform with covariance.

◆ RigidTransformCov3d

Typedef for 3D double transform with covariance.

◆ Transformer2f

typedef Transformer<float, 2> Transformer2f

Typedef for a transformer with 2D floating point transforms.

◆ Transformer3f

typedef Transformer<float, 3> Transformer3f

Typedef for a transformer with 3D floating point transforms.

◆ Transformer2d

typedef Transformer<double, 2> Transformer2d

Typedef for a transformer with 2D double precision transforms.

◆ Transformer3d

typedef Transformer<double, 3> Transformer3d

Typedef for a transformer with 3D double precision transforms.

◆ TransformerCov2f

Typedef for a transformer with 2D floating point transforms and covariance.

◆ TransformerCov3f

Typedef for a transformer with 3D floating point transforms and covariance.

◆ TransformerCov2d

Typedef for a transformer with 2D double precision transforms and covariance.

◆ TransformerCov3d

Typedef for a transformer with 3D double precision transforms and covariance.

Function Documentation

◆ lerp() [1/2]

RigidTransform<T, D> mira::lerp ( const RigidTransform< T, D > &  t1,
const RigidTransform< T, D > &  t2,
alpha 
)

Linearly interpolates between two transformations and returns the interpolated transform.

The rotational part is interpolated using spherical linear interpolation (slerp), the translational part is interpolated linearly (lerp).

◆ lerp() [2/2]

RigidTransformCov<T, D> mira::lerp ( const RigidTransformCov< T, D > &  t1,
const RigidTransformCov< T, D > &  t2,
alpha 
)

Linearly interpolates between two transformations and returns the interpolated transform.

The rotational part is interpolated using spherical linear interpolation (slerp), the translational part is interpolated linearly (lerp). The covariance matrix is interpolated linearly (lerp).

◆ transform_cast() [1/2]

TargetTransform mira::transform_cast ( const RigidTransform< OtherT, OtherD > &  other)

Casts a RigidTransform or RigidTransformCov to a RigidTransform of a different type.

The following conversions are possible:

  • change of value type float/double
  • change of dimensionality, e.g. from RigidTransform2f to RigidTransform3f. When converting from 2D to 3D, the additional z-coordinate and the two additional Euler angles are set to 0, the covariance matrix is also extended with 0 values. When converting from 3D to 2D, the z-coordinate and the last 2 Euler angles are omitted.
  • change of associated covariance, e.g. from RigidTransformCov2f to RigidTransform2f (omitting covariance), or vice versa. A newly created covariance matrix is initialized with 0 values.

◆ transform_cast() [2/2]

TargetTransform mira::transform_cast ( const RigidTransformCov< OtherT, OtherD > &  other)

Casts a RigidTransformCov to a RigidTransform of a different type.

The following conversions are possible:

  • change of value type float/double
  • change of dimensionality, e.g. from RigidTransform2f to RigidTransform3f. When converting from 2D to 3D, the additional z-coordinate and the two additional Euler angles are set to 0, the covariance matrix is also extended with 0 values. When converting from 3D to 2D, the z-coordinate and the last 2 Euler angles are omitted.
  • change of associated covariance, e.g. from RigidTransformCov2f to RigidTransform2f.