se3::SE3Base< Derived > Class Template Reference

The rigid transform aMb can be seen in two ways: More...

#include <spatial/se3.hpp>

List of all members.

Public Member Functions

Derived_tderived ()
const Derived_tderived () const
const Angular_t & rotation () const
const Linear_t & translation () const
Angular_t & rotation ()
Linear_t & translation ()
void rotation (const Angular_t &R)
void translation (const Linear_t &R)
Matrix4 toHomogeneousMatrix () const
 operator Matrix4 () const
Matrix6 toActionMatrix () const
 operator Matrix6 () const
void disp (std::ostream &os) const
Derived_t operator* (const Derived_t &m2) const
template<typename D >
internal::ActionReturn< D >::Type act (const D &d) const
 ay = aXb.act(by)
template<typename D >
internal::ActionReturn< D >::Type actInv (const D &d) const
 by = aXb.actInv(ay)
Derived_t act (const Derived_t &m2) const
Derived_t actInv (const Derived_t &m2) const
bool operator== (const Derived_t &other) const
bool isApprox (const Derived_t &other) const

Protected Types

typedef Derived Derived_t

Protected Member Functions

 SPATIAL_TYPEDEF_TEMPLATE (Derived_t)

Friends

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

Detailed Description

template<class Derived>
class se3::SE3Base< Derived >

The rigid transform aMb can be seen in two ways:

  • given a point p expressed in frame B by its coordinate vector Bp, aMb computes its coordinates in frame A by Ap = aMb Bp.
  • aMb 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: aMb (x) = aRb*x + aAB where aAB is the vector from origin A to origin B expressed in coordinates A.


Member Typedef Documentation

template<class Derived>
typedef Derived se3::SE3Base< Derived >::Derived_t [protected]

Member Function Documentation

template<class Derived>
template<typename D >
internal::ActionReturn<D>::Type se3::SE3Base< Derived >::act ( const D &  d) const [inline]

ay = aXb.act(by)

template<class Derived>
Derived_t se3::SE3Base< Derived >::act ( const Derived_t m2) const [inline]
template<class Derived>
template<typename D >
internal::ActionReturn<D>::Type se3::SE3Base< Derived >::actInv ( const D &  d) const [inline]

by = aXb.actInv(ay)

template<class Derived>
Derived_t se3::SE3Base< Derived >::actInv ( const Derived_t m2) const [inline]
template<class Derived>
const Derived_t& se3::SE3Base< Derived >::derived ( ) const [inline]
template<class Derived>
void se3::SE3Base< Derived >::disp ( std::ostream &  os) const [inline]
template<class Derived>
bool se3::SE3Base< Derived >::isApprox ( const Derived_t other) const [inline]
template<class Derived>
se3::SE3Base< Derived >::operator Matrix4 ( ) const [inline]
template<class Derived>
se3::SE3Base< Derived >::operator Matrix6 ( ) const [inline]
template<class Derived>
Derived_t se3::SE3Base< Derived >::operator* ( const Derived_t m2) const [inline]
template<class Derived>
bool se3::SE3Base< Derived >::operator== ( const Derived_t other) const [inline]
template<class Derived>
Angular_t& se3::SE3Base< Derived >::rotation ( ) [inline]
template<class Derived>
void se3::SE3Base< Derived >::rotation ( const Angular_t &  R) [inline]
template<class Derived>
se3::SE3Base< Derived >::SPATIAL_TYPEDEF_TEMPLATE ( Derived_t  ) [protected]
template<class Derived>
Matrix4 se3::SE3Base< Derived >::toHomogeneousMatrix ( ) const [inline]
template<class Derived>
Linear_t& se3::SE3Base< Derived >::translation ( ) [inline]
template<class Derived>
void se3::SE3Base< Derived >::translation ( const Linear_t &  R) [inline]

Friends And Related Function Documentation

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