pinocchio  3.3.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
SE3Base< Derived > Struct Template Reference

Base class for rigid transformation. More...

#include <pinocchio/spatial/se3-base.hpp>

Inheritance diagram for SE3Base< Derived >:
Collaboration diagram for SE3Base< Derived >:

Public Member Functions

template<typename D >
SE3GroupAction< D >::ReturnType act (const D &d) const
 ay = aXb.act(by)
 
template<typename D >
SE3GroupAction< D >::ReturnType actInv (const D &d) const
 by = aXb.actInv(ay)
 
Derived & const_cast_derived () const
 
Derived & derived ()
 
const Derived & derived () const
 
void disp (std::ostream &os) const
 
bool isApprox (const Derived &other, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
 
bool isIdentity (const typename traits< Derived >::Scalar &prec=Eigen::NumTraits< typename traits< Derived >::Scalar >::dummy_precision()) const
 
bool isNormalized (const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
 
void normalize ()
 Normalize *this in such a way the rotation part of *this lies on SO(3).
 
PlainType normalized () const
 
 operator ActionMatrixType () const
 
 operator HomogeneousMatrixType () const
 
bool operator!= (const Derived &other) const
 
SE3GroupAction< Derived >::ReturnType operator* (const Derived &m2) const
 
bool operator== (const Derived &other) const
 
 PINOCCHIO_SE3_TYPEDEF_TPL (Derived)
 
AngularRef rotation ()
 
ConstAngularRef rotation () const
 
void rotation (const AngularType &R)
 
ActionMatrixType toActionMatrix () const
 The action matrix \( {}^aX_b \) of \( {}^aM_b \). More...
 
template<typename Matrix6Like >
void toActionMatrix (const Eigen::MatrixBase< Matrix6Like > &action_matrix) const
 
ActionMatrixType toActionMatrixInverse () const
 The action matrix \( {}^bX_a \) of \( {}^aM_b \). More...
 
template<typename Matrix6Like >
void toActionMatrixInverse (const Eigen::MatrixBase< Matrix6Like > &action_matrix_inverse) const
 
ActionMatrixType toDualActionMatrix () const
 
template<typename Matrix6Like >
void toDualActionMatrix (const Eigen::MatrixBase< Matrix6Like > &dual_action_matrix) const
 
HomogeneousMatrixType toHomogeneousMatrix () const
 
LinearRef translation ()
 
ConstLinearRef translation () const
 
void translation (const LinearType &t)
 

Friends

std::ostream & operator<< (std::ostream &os, const SE3Base< Derived > &X)
 

Additional Inherited Members

- Public Types inherited from NumericalBase< Derived >
typedef traits< Derived >::Scalar Scalar
 

Detailed Description

template<class Derived>
struct pinocchio::SE3Base< Derived >

Base class for rigid transformation.

The rigid transform aMb can be seen in two ways:

  • given a point p expressed in frame B by its coordinate vector \( ^bp \), \( ^aM_b \) computes its coordinates in frame A by \( ^ap = {}^aM_b {}^bp \).
  • \( ^aM_b \) displaces a solid S centered at frame A into the solid centered in B. In particular, the origin of A is displaced at the origin of B: \(^aM_b {}^aA = {}^aB \).

The rigid displacement is stored as a rotation matrix and translation vector by: \( ^aM_b x = {}^aR_b x + {}^aAB \) where \(^aAB\) is the vector from origin A to origin B expressed in coordinates A.

Remarkable identity:
\( {}^aM_c = {}^aM_b {}^bM_c \)

Definition at line 30 of file se3-base.hpp.

Member Function Documentation

◆ isIdentity()

bool isIdentity ( const typename traits< Derived >::Scalar &  prec = Eigen::NumTraits<typename traits<Derived>::Scalar>::dummy_precision()) const
inline
Returns
true if *this is approximately equal to the identity placement, within the precision given by prec.

Definition at line 184 of file se3-base.hpp.

◆ isNormalized()

bool isNormalized ( const Scalar &  prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
inline
Returns
true if the rotational part of *this is a rotation matrix (normalized columns), within the precision given by prec.

Definition at line 195 of file se3-base.hpp.

◆ normalized()

PlainType normalized ( ) const
inline
Returns
a Normalized version of *this, in such a way the rotation part of the returned transformation lies on SO(3).

Definition at line 212 of file se3-base.hpp.

◆ toActionMatrix()

ActionMatrixType toActionMatrix ( ) const
inline

The action matrix \( {}^aX_b \) of \( {}^aM_b \).

With \( {}^aM_b = \left( \begin{array}{cc} R & t \\ 0 & 1 \\ \end{array} \right) \),

\[ {}^aX_b = \left( \begin{array}{cc} R & \hat{t} R \\ 0 & R \\ \end{array} \right) \]

Remarkable identity:
\( {}^a\nu_c = {}^aX_b {}^b\nu_c \)

Definition at line 92 of file se3-base.hpp.

◆ toActionMatrixInverse()

ActionMatrixType toActionMatrixInverse ( ) const
inline

The action matrix \( {}^bX_a \) of \( {}^aM_b \).

See also
toActionMatrix()

Definition at line 111 of file se3-base.hpp.


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