Main MRPT website > C++ reference for MRPT 1.4.0
List of all members | Public Member Functions | Protected Attributes | Friends
octomath::Quaternion Class Reference

Detailed Description

This class represents a Quaternion.

The Unit Quaternion is one possible representation of the attitude of an object in tree-dimensional space.

This Quaternion class is implemented according to Diebel, James. Representing Attitude: Euler Angle, Unit Quaternions, and Rotation Vectors. Stanford University. 2006. - Technical Report.

Definition at line 71 of file Quaternion.h.

#include <mrpt/otherlibs/octomap/math/Quaternion.h>

Public Member Functions

 Quaternion ()
 Default constructor. More...
 
 Quaternion (const Quaternion &other)
 Copy constructor. More...
 
 Quaternion (float u, float x, float y, float z)
 Constructor. More...
 
 Quaternion (const Vector3 &other)
 Constructor. More...
 
 Quaternion (double roll, double pitch, double yaw)
 Constructor from Euler angles. More...
 
 Quaternion (const Vector3 &axis, double angle)
 Constructs a Unit Quaternion from a rotation angle and axis. More...
 
Vector3 toEuler () const
 Conversion to Euler angles. More...
 
void toRotMatrix (std::vector< double > &rot_matrix_3_3) const
 
const float & operator() (unsigned int i) const
 
float & operator() (unsigned int i)
 
float norm () const
 
Quaternion normalized () const
 
Quaternionnormalize ()
 
void operator/= (float x)
 
Quaternionoperator= (const Quaternion &other)
 
bool operator== (const Quaternion &other) const
 
Quaternion operator* (const Quaternion &other) const
 Quaternion multiplication. More...
 
Quaternion operator* (const Vector3 &v) const
 Quaternion multiplication with extended vector. More...
 
Quaternion inv () const
 Inversion. More...
 
Quaternioninv_IP ()
 Inversion. More...
 
Vector3 rotate (const Vector3 &v) const
 Rotate a vector. More...
 
float & u ()
 
float & x ()
 
float & y ()
 
float & z ()
 
const float & u () const
 
const float & x () const
 
const float & y () const
 
const float & z () const
 
std::istream & read (std::istream &s)
 
std::ostream & write (std::ostream &s) const
 
std::istream & readBinary (std::istream &s)
 
std::ostream & writeBinary (std::ostream &s) const
 

Protected Attributes

float data [4]
 

Friends

Quaternion operator* (const Vector3 &v, const Quaternion &q)
 Quaternion multiplication with extended vector. More...
 

Constructor & Destructor Documentation

octomath::Quaternion::Quaternion ( )
inline

Default constructor.

Constructs the (1,0,0,0) Unit Quaternion representing the identity rotation.

Definition at line 81 of file Quaternion.h.

References mrpt::obs::gnss::pitch, and mrpt::obs::gnss::roll.

octomath::Quaternion::Quaternion ( const Quaternion other)

Copy constructor.

octomath::Quaternion::Quaternion ( float  u,
float  x,
float  y,
float  z 
)

Constructor.

Constructs a Quaternion from four single values

octomath::Quaternion::Quaternion ( const Vector3 other)

Constructor.

Parameters
othera vector containing euler angles
octomath::Quaternion::Quaternion ( double  roll,
double  pitch,
double  yaw 
)

Constructor from Euler angles.

Constructs a Unit Quaternion from Euler angles / Tait Bryan angles (in radians) according to the 1-2-3 convention.

Parameters
rollphi/roll angle (rotation about x-axis)
pitchtheta/pitch angle (rotation about y-axis)
yawpsi/yaw angle (rotation about z-axis)
octomath::Quaternion::Quaternion ( const Vector3 axis,
double  angle 
)

Constructs a Unit Quaternion from a rotation angle and axis.

Member Function Documentation

Quaternion octomath::Quaternion::inv ( ) const
inline

Inversion.

Returns
A copy of this Quaterion inverted

Definition at line 171 of file Quaternion.h.

Quaternion& octomath::Quaternion::inv_IP ( )

Inversion.

Inverts this Quaternion

Returns
a reference to this Quaternion
float octomath::Quaternion::norm ( ) const
Quaternion& octomath::Quaternion::normalize ( )
Quaternion octomath::Quaternion::normalized ( ) const
const float& octomath::Quaternion::operator() ( unsigned int  i) const
inline

Definition at line 131 of file Quaternion.h.

float& octomath::Quaternion::operator() ( unsigned int  i)
inline
Quaternion octomath::Quaternion::operator* ( const Quaternion other) const

Quaternion multiplication.

Standard Quaternion multiplication which is not commutative.

Returns
this * other
Quaternion octomath::Quaternion::operator* ( const Vector3 v) const

Quaternion multiplication with extended vector.

Returns
q * (0, v)
void octomath::Quaternion::operator/= ( float  x)
Quaternion& octomath::Quaternion::operator= ( const Quaternion other)
bool octomath::Quaternion::operator== ( const Quaternion other) const
std::istream& octomath::Quaternion::read ( std::istream &  s)
std::istream& octomath::Quaternion::readBinary ( std::istream &  s)
Vector3 octomath::Quaternion::rotate ( const Vector3 v) const

Rotate a vector.

Rotates a vector to the body fixed coordinate system according to the attitude represented by this Quaternion.

Parameters
va vector represented in world coordinates
Returns
v represented in body-fixed coordinates
Vector3 octomath::Quaternion::toEuler ( ) const

Conversion to Euler angles.

Converts the attitude represented by this to Euler angles (roll, pitch, yaw).

void octomath::Quaternion::toRotMatrix ( std::vector< double > &  rot_matrix_3_3) const
float& octomath::Quaternion::u ( )
inline

Definition at line 193 of file Quaternion.h.

const float& octomath::Quaternion::u ( ) const
inline

Definition at line 198 of file Quaternion.h.

std::ostream& octomath::Quaternion::write ( std::ostream &  s) const
std::ostream& octomath::Quaternion::writeBinary ( std::ostream &  s) const
float& octomath::Quaternion::x ( )
inline

Definition at line 194 of file Quaternion.h.

const float& octomath::Quaternion::x ( ) const
inline

Definition at line 199 of file Quaternion.h.

float& octomath::Quaternion::y ( )
inline

Definition at line 195 of file Quaternion.h.

const float& octomath::Quaternion::y ( ) const
inline

Definition at line 200 of file Quaternion.h.

float& octomath::Quaternion::z ( )
inline

Definition at line 196 of file Quaternion.h.

const float& octomath::Quaternion::z ( ) const
inline

Definition at line 201 of file Quaternion.h.

Friends And Related Function Documentation

Quaternion operator* ( const Vector3 v,
const Quaternion q 
)
friend

Quaternion multiplication with extended vector.

Returns
(0, v) * q

Member Data Documentation

float octomath::Quaternion::data[4]
protected

Definition at line 209 of file Quaternion.h.




Page generated by Doxygen 1.8.11 for MRPT 1.4.0 SVN: at Sun Aug 14 23:58:29 UTC 2016