TooN: SE3< Precision > Class Template Reference

TooN 2.0.0-beta8

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | Related Functions
SE3< Precision > Class Template Reference
Transformation matrices

Represent a three-dimensional Euclidean transformation (a rotation and a translation). More...

`#include <se3.h>`

List of all members.

## Public Member Functions
| SE3 ()
template<int S, typename P , typename A >
| SE3 (const SO3< Precision > &R, const Vector< S, P, A > &T)
template<int S, typename P , typename A >
| SE3 (const Vector< S, P, A > &v)
template<class IP , int S, typename P , typename A >
| SE3 (const Operator< Internal::Identity< IP > > &, const Vector< S, P, A > &T)
SO3< Precision > & | get_rotation ()
const SO3< Precision > & | get_rotation () const
Vector< 3, Precision > & | get_translation ()
const Vector< 3, Precision > & | get_translation () const
Vector< 6, Precision > | ln () const
SE3 | inverse () const
template<typename P >
SE3 & | operator*= (const SE3< P > &rhs)
template<typename P >
SE3< typename Internal::MultiplyType < Precision, P >::type > | operator* (const SE3< P > &rhs) const
SE3 & | left_multiply_by (const SE3 &left)
template<int S, typename P2 , typename Accessor >
Vector< 6, Precision > | adjoint (const Vector< S, P2, Accessor > &vect) const
template<int S, typename P2 , typename Accessor >
Vector< 6, Precision > | trinvadjoint (const Vector< S, P2, Accessor > &vect) const
template<int R, int C, typename P2 , typename Accessor >
Matrix< 6, 6, Precision > | adjoint (const Matrix< R, C, P2, Accessor > &M) const
template<int R, int C, typename P2 , typename Accessor >
Matrix< 6, 6, Precision > | trinvadjoint (const Matrix< R, C, P2, Accessor > &M) const
template<int S, typename P , typename VA >
SE3< Precision > | exp (const Vector< S, P, VA > &mu)
## Static Public Member Functions
template<int S, typename P , typename A >
static SE3 | exp (const Vector< S, P, A > &vect)
static Vector< 6, Precision > | ln (const SE3 &se3)
static Matrix< 4, 4, Precision > | generator (int i)
template<typename Base >
static Vector< 4, Precision > | generator_field (int i, const Vector< 4, Precision, Base > &pos)
## Related Functions
(Note that these are not member functions.)
template<typename Precision >
std::ostream & | operator<< (std::ostream &os, const SE3< Precision > &rhs)
template<int S, typename PV , typename A , typename P >
Vector< 4, typename Internal::MultiplyType< P, PV > ::type > | operator* (const SE3< P > &lhs, const Vector< S, PV, A > &rhs)
template<typename PV , typename A , typename P >
Vector< 3, typename Internal::MultiplyType< P, PV > ::type > | operator* (const SE3< P > &lhs, const Vector< 3, PV, A > &rhs)
template<int S, typename PV , typename A , typename P >
Vector< 4, typename Internal::MultiplyType< P, PV > ::type > | operator* (const Vector< S, PV, A > &lhs, const SE3< P > &rhs)
template<int R, int Cols, typename PM , typename A , typename P >
Matrix< 4, Cols, typename Internal::MultiplyType< P, PM > ::type > | operator* (const SE3< P > &lhs, const Matrix< R, Cols, PM, A > &rhs)
template<int Rows, int C, typename PM , typename A , typename P >
Matrix< Rows, 4, typename Internal::MultiplyType< PM, P > ::type > | operator* (const Matrix< Rows, C, PM, A > &lhs, const SE3< P > &rhs)

## Detailed Description

### template<typename Precision = DefaultPrecision>
class TooN::SE3< Precision >

Represent a three-dimensional Euclidean transformation (a rotation and a translation).

This can be represented by a matrix operating on a homogeneous co-ordinate, so that a vector is transformed to a new location by

This transformation is a member of the Special Euclidean Lie group SE3. These can be parameterised six numbers (in the space of the Lie Algebra). In this class, the first three parameters are a translation vector while the second three are a rotation vector, whose direction is the axis of rotation and length the amount of rotation (in radians), as for SO3

## Member Function Documentation

const SO3<Precision>& get_rotation | ( |  | ) | const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

const Vector<3, Precision>& get_translation | ( |  | ) | const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

static SE3 exp | ( | const Vector< S, P, A > & | vect | ) | `[static]`

Exponentiate a Vector in the Lie Algebra to generate a new SE3.

See the Detailed Description for details of this vector.

Parameters:

  vect | The Vector to exponentiate

static Vector<6, Precision> ln | ( | const SE3< Precision > & | se3 | ) | `[static]`

Take the logarithm of the matrix, generating the corresponding vector in the Lie Algebra.

See the Detailed Description for details of this vector.

Vector<6, Precision> ln | ( |  | ) | const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Referenced by SE3< P >::ln().

SE3& operator*= | ( | const SE3< P > & | rhs | ) |

Right-multiply by another SE3 (concatenate the two transformations)

Parameters:

  rhs | The multipier

SE3<typename Internal::MultiplyType<Precision, P>::type> operator* | ( | const SE3< P > & | rhs | ) | const

Right-multiply by another SE3 (concatenate the two transformations)

Parameters:

  rhs | The multipier

Vector< 6, Precision > adjoint | ( | const Vector< S, P2, Accessor > & | vect | ) | const

Transfer a matrix in the Lie Algebra from one co-ordinate frame to another.

This is the operation such that for a matrix ,

Parameters:

  M | The Matrix to transfer

References Vector< Size, Precision, Base >::size().

Matrix< 6, 6, Precision > adjoint | ( | const Matrix< R, C, P2, Accessor > & | M | ) | const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

References Matrix< Rows, Cols, Precision, Layout >::num_cols(), Matrix< Rows, Cols, Precision, Layout >::num_rows(), and Matrix< Rows, Cols, Precision, Layout >::T().

Matrix< 6, 6, Precision > trinvadjoint | ( | const Matrix< R, C, P2, Accessor > & | M | ) | const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

References Matrix< Rows, Cols, Precision, Layout >::num_cols(), Matrix< Rows, Cols, Precision, Layout >::num_rows(), and Matrix< Rows, Cols, Precision, Layout >::T().

## Friends And Related Function Documentation

std::ostream & operator<< | ( | std::ostream & | os,
|  | const SE3< Precision > & | rhs
| ) |  | `[related]`

Write an SE3 to a stream.

Vector< 4, typename Internal::MultiplyType< P, PV >::type > operator* | ( | const SE3< P > & | lhs,
|  | const Vector< S, PV, A > & | rhs
| ) |  | `[related]`

Right-multiply by a Vector.

Vector< 3, typename Internal::MultiplyType< P, PV >::type > operator* | ( | const SE3< P > & | lhs,
|  | const Vector< 3, PV, A > & | rhs
| ) |  | `[related]`

Right-multiply by a Vector.

References SE3< Precision >::get_rotation(), and SE3< Precision >::get_translation().

Vector< 4, typename Internal::MultiplyType< P, PV >::type > operator* | ( | const Vector< S, PV, A > & | lhs,
|  | const SE3< P > & | rhs
| ) |  | `[related]`

Left-multiply by a Vector.

Matrix< 4, Cols, typename Internal::MultiplyType< P, PM >::type > operator* | ( | const SE3< P > & | lhs,
|  | const Matrix< R, Cols, PM, A > & | rhs
| ) |  | `[related]`

Right-multiply by a Matrix.

Matrix< Rows, 4, typename Internal::MultiplyType< PM, P >::type > operator* | ( | const Matrix< Rows, C, PM, A > & | lhs,
|  | const SE3< P > & | rhs
| ) |  | `[related]`

Left-multiply by a Matrix.