#include <se2.h>
Public Member Functions | |
SE2 () | |
template<class A> | |
SE2 (const SO2< Precision > &R, const Vector< 2, Precision, A > &T) | |
template<int S, class P, class A> | |
SE2 (const Vector< S, P, A > &v) | |
SO2< Precision > & | get_rotation () |
const SO2< Precision > & | get_rotation () const |
Vector< 2, Precision > & | get_translation () |
const Vector< 2, Precision > & | get_translation () const |
Vector< 3, Precision > | ln () const |
SE2 | inverse () const |
SE2 | operator * (const SE2 &rhs) const |
SE2 & | operator *= (const SE2 &rhs) |
template<typename Accessor> | |
Vector< 3, Precision > | adjoint (const Vector< 3, Precision, Accessor > &vect) const |
template<typename Accessor> | |
Matrix< 3, 3, Precision > | adjoint (const Matrix< 3, 3, Precision, Accessor > &M) const |
Static Public Member Functions | |
template<int S, typename P, typename A> | |
static SE2 | exp (const Vector< S, P, A > &vect) |
static Vector< 3, Precision > | ln (const SE2 &se2) |
static Matrix< 3, 3, Precision > | generator (int i) |
Related Functions | |
(Note that these are not member functions.) | |
template<class Precision> | |
std::ostream & | operator<< (std::ostream &os, const SE2< Precision > &rhs) |
template<class Precision> | |
std::istream & | operator>> (std::istream &is, SE2< Precision > &rhs) |
template<int S, typename P, typename PV, typename A> | |
Vector< 3, typename Internal::MultiplyType < P, PV >::type > | operator * (const SE2< P > &lhs, const Vector< S, PV, A > &rhs) |
template<typename P, typename PV, typename A> | |
Vector< 2, typename Internal::MultiplyType < P, PV >::type > | operator * (const SE2< P > &lhs, const Vector< 2, PV, A > &rhs) |
template<int S, typename P, typename PV, typename A> | |
Vector< 3, typename Internal::MultiplyType < PV, P >::type > | operator * (const Vector< S, PV, A > &lhs, const SE2< P > &rhs) |
template<int R, int Cols, typename PM, typename A, typename P> | |
Matrix< 3, Cols, typename Internal::MultiplyType < P, PM >::type > | operator * (const SE2< P > &lhs, const Matrix< R, Cols, PM, A > &rhs) |
template<int Rows, int C, typename PM, typename A, typename P> | |
Matrix< Rows, 3, typename Internal::MultiplyType < PM, P >::type > | operator * (const Matrix< Rows, C, PM, A > &lhs, const SE2< P > &rhs) |
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 SE2. These can be parameterised with three numbers (in the space of the Lie Algebra). In this class, the first two parameters are a translation vector while the third is the amount of rotation in the plane as for SO2.
Default constructor. Initialises the the rotation to zero (the identity) and the translation to zero.
Returns the rotation part of the transformation as a SO2.
Vector<2, Precision>& TooN::SE2< Precision >::get_translation | ( | ) |
Returns the translation part of the transformation as a Vector.
Vector< 3, Precision > TooN::SE2< Precision >::ln | ( | const SE2< Precision > & | se2 | ) | [static] |
Take the logarithm of the matrix, generating the corresponding vector in the Lie Algebra.
See the Detailed Description for details of this vector.
compute the inverse of the transformation
SE2& TooN::SE2< Precision >::operator *= | ( | const SE2< Precision > & | rhs | ) |
Self right-multiply by another SE2 (concatenate the two transformations).
rhs | The multipier |
static Matrix<3,3, Precision> TooN::SE2< Precision >::generator | ( | int | i | ) | [static] |
returns the generators for the Lie group.
These are a set of matrices that form a basis for the vector space of the Lie algebra. 0 is translation in x 1 is translation in y 2 is rotation in the plane
Vector<3, Precision> TooN::SE2< Precision >::adjoint | ( | const Vector< 3, Precision, Accessor > & | vect | ) | const |
transfers a vector in the Lie algebra, from one coord frame to another so that exp(adjoint(vect)) = (*this) * exp(vect) * (this->inverse())
std::ostream & operator<< | ( | std::ostream & | os, | |
const SE2< Precision > & | rhs | |||
) | [related] |
Write an SE2 to a stream.
std::istream & operator>> | ( | std::istream & | is, | |
SE2< Precision > & | rhs | |||
) | [related] |
Read an SE2 from a stream.
Vector< 3, typename Internal::MultiplyType< P, PV >::type > operator * | ( | const SE2< P > & | lhs, | |
const Vector< S, PV, A > & | rhs | |||
) | [related] |
Right-multiply with a Vector<3>.
Vector< 2, typename Internal::MultiplyType< P, PV >::type > operator * | ( | const SE2< P > & | lhs, | |
const Vector< 2, PV, A > & | rhs | |||
) | [related] |
Right-multiply with a Vector<2> (special case, extended to be a homogeneous vector).
Vector< 3, typename Internal::MultiplyType< PV, P >::type > operator * | ( | const Vector< S, PV, A > & | lhs, | |
const SE2< P > & | rhs | |||
) | [related] |
Left-multiply with a Vector<3>.
Matrix< 3, Cols, typename Internal::MultiplyType< P, PM >::type > operator * | ( | const SE2< P > & | lhs, | |
const Matrix< R, Cols, PM, A > & | rhs | |||
) | [related] |
Right-multiply with a Matrix<3>.
Matrix< Rows, 3, typename Internal::MultiplyType< PM, P >::type > operator * | ( | const Matrix< Rows, C, PM, A > & | lhs, | |
const SE2< P > & | rhs | |||
) | [related] |
Left-multiply with a Matrix<3>.