MROB
Public Member Functions | Protected Attributes | List of all members
mrob::SO3 Class Reference

Public Member Functions

 SO3 (const Mat3 &R=Mat3::Identity())
 
 SO3 (const Mat31 &w)
 
 SO3 (const SO3 &R)
 
template<typename OtherDerived >
 SO3 (const Eigen::MatrixBase< OtherDerived > &rhs)
 
SO3operator= (const SO3 &rhs)
 
SO3 operator* (const SO3 &rhs) const
 
SO3 mul (const SO3 &rhs) const
 
void update_lhs (const Mat31 &dw)
 
void update_rhs (const Mat31 &dw)
 
void exp (const Mat3 &w_hat)
 
Mat3 ln (double *o=nullptr) const
 
Mat31 ln_vee () const
 
SO3 inv (void) const
 
Mat3 adj () const
 
Mat3 R () const
 
Mat3 & ref2R ()
 
double distance (const SO3 &rhs) const
 
void print (void) const
 
void print_lie (void) const
 
std::string toString () const
 Generates string representation of the SO3 object. More...
 

Protected Attributes

Mat3 R_
 

Constructor & Destructor Documentation

◆ SO3() [1/4]

SO3::SO3 ( const Mat3 &  R = Mat3::Identity())

Constructor from a Matrix transformation

◆ SO3() [2/4]

SO3::SO3 ( const Mat31 &  w)

Constructor, requires the Lie algebra w so3 representing the rotation around the identity, by default generates R = exp(0^) = I

◆ SO3() [3/4]

SO3::SO3 ( const SO3 R)

Constructor from an SO3 transformation

◆ SO3() [4/4]

template<typename OtherDerived >
SO3::SO3 ( const Eigen::MatrixBase< OtherDerived > &  rhs)

This constructor allows to construct from Eigen expressions Eigen suggestion: TopicCustomizingEigen.html

Member Function Documentation

◆ adj()

Mat3 SO3::adj ( ) const

Adjoint: Adj_w = R

◆ exp()

void SO3::exp ( const Mat3 &  w_hat)

Exponential mapping of a skew symetric matrix in so3. The Rodrigues formula provides an exact solution to the Taylor expansion of exp(A) = I + A + c2*A^2 + ... exp(A) = I + c1*w^ + c2*(w^)^2, where o = norm(w), c1 =sin(o)/o and c2 = (1 - cos(o))/o^2

◆ inv()

SO3 SO3::inv ( void  ) const

Inverse: R^-1 = R'

◆ ln()

Mat3 SO3::ln ( double *  o = nullptr) const

Logarithmic mapping from SO3 to a skew-symetric matrix in so3 o = |acos(0.5*(tr(R)-1))| w^ = o / (2sin(o))*(R-R^T)

Special cases for 0 and +-pi

◆ ln_vee()

Mat31 SO3::ln_vee ( ) const

Logarithm of R and then the vee operator to get the coordinates w of the Lie Algebra

◆ mul()

SO3 SO3::mul ( const SO3 rhs) const

multiplication function

◆ operator*()

SO3 SO3::operator* ( const SO3 rhs) const

This method allows you to Multiply SO3 expressions

◆ operator=()

SO3 & SO3::operator= ( const SO3 rhs)

This method allows you to assign Eigen expressions to SO3

◆ R()

Mat3 SO3::R ( ) const

R method returns the matrix 3x3 of the SO3 rotation

◆ ref2R()

Mat3 & SO3::ref2R ( )

ref to R method returns the reference to modify R

◆ toString()

std::string SO3::toString ( ) const

Generates string representation of the SO3 object.

Returns
std::string object to print

◆ update_lhs()

void SO3::update_lhs ( const Mat31 &  dw)

This is our default way to update transformations Updates the current transformation with the incremental dw so3 R'=exp(dw^)*R

◆ update_rhs()

void SO3::update_rhs ( const Mat31 &  dw)

Updates the current transformation with the incremental dw so3 R'=R*exp(dw^)


The documentation for this class was generated from the following files: