pinocchio  3.9.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
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 $.
template<typename Matrix6Like>
void toActionMatrix (const Eigen::MatrixBase< Matrix6Like > &action_matrix) const
ActionMatrixType toActionMatrixInverse () const
 The action matrix $ {}^bX_a $ of $ {}^aM_b $.
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

◆ act()

template<class Derived>
template<typename D>
SE3GroupAction< D >::ReturnType act(const D &d)const
inline

ay = aXb.act(by)

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

◆ actInv()

template<class Derived>
template<typename D>
SE3GroupAction< D >::ReturnType actInv(const D &d)const
inline

by = aXb.actInv(ay)

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

◆ const_cast_derived()

template<class Derived>
Derived & const_cast_derived()const
inline

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

◆ derived() [1/2]

template<class Derived>
Derived & derived()
inline

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

◆ derived() [2/2]

template<class Derived>
const Derived & derived()const
inline

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

◆ disp()

template<class Derived>
void disp(std::ostream &os)const
inline

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

◆ isApprox()

template<class Derived>
bool isApprox(const Derived &other,
const Scalar &prec = Eigen::NumTraits<Scalar>::dummy_precision() ) const
inline

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

◆ isIdentity()

template<class Derived>
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()

template<class Derived>
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.

◆ normalize()

template<class Derived>
void normalize()
inline

Normalize *this in such a way the rotation part of *this lies on SO(3).

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

◆ normalized()

template<class Derived>
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.

◆ operator ActionMatrixType()

template<class Derived>
operator ActionMatrixType()const
inline

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

◆ operator HomogeneousMatrixType()

template<class Derived>
operator HomogeneousMatrixType()const
inline

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

◆ operator!=()

template<class Derived>
bool operator!=(const Derived &other)const
inline

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

◆ operator*()

template<class Derived>
SE3GroupAction< Derived >::ReturnType operator*(const Derived &m2)const
inline

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

◆ operator==()

template<class Derived>
bool operator==(const Derived &other)const
inline

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

◆ rotation() [1/3]

template<class Derived>
AngularRef rotation()
inline

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

◆ rotation() [2/3]

template<class Derived>
ConstAngularRef rotation()const
inline

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

◆ rotation() [3/3]

template<class Derived>
void rotation(const AngularType &R)
inline

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

◆ toActionMatrix() [1/2]

template<class Derived>
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.

◆ toActionMatrix() [2/2]

template<class Derived>
template<typename Matrix6Like>
void toActionMatrix(const Eigen::MatrixBase< Matrix6Like > &action_matrix)const
inline

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

◆ toActionMatrixInverse() [1/2]

template<class Derived>
ActionMatrixType toActionMatrixInverse()const
inline

The action matrix $ {}^bX_a $ of $ {}^aM_b $.

See also
toActionMatrix()

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

◆ toActionMatrixInverse() [2/2]

template<class Derived>
template<typename Matrix6Like>
void toActionMatrixInverse(const Eigen::MatrixBase< Matrix6Like > &action_matrix_inverse)const
inline

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

◆ toDualActionMatrix() [1/2]

template<class Derived>
ActionMatrixType toDualActionMatrix()const
inline

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

◆ toDualActionMatrix() [2/2]

template<class Derived>
template<typename Matrix6Like>
void toDualActionMatrix(const Eigen::MatrixBase< Matrix6Like > &dual_action_matrix)const
inline

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

◆ toHomogeneousMatrix()

template<class Derived>
HomogeneousMatrixType toHomogeneousMatrix()const
inline

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

◆ translation() [1/3]

template<class Derived>
LinearRef translation()
inline

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

◆ translation() [2/3]

template<class Derived>
ConstLinearRef translation()const
inline

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

◆ translation() [3/3]

template<class Derived>
void translation(const LinearType &t)
inline

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

◆ operator<<

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

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


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