Main MRPT website > C++ reference for MRPT 1.9.9
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes
mrpt::math::TPose3D Struct Reference

Detailed Description

Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).

Allows coordinate access using [] operator.

See also
mrpt::poses::CPose3D

Definition at line 603 of file lightweight_geom_data.h.

#include <mrpt/math/lightweight_geom_data.h>

Inheritance diagram for mrpt::math::TPose3D:
Inheritance graph

Public Types

enum  { static_size = 6 }
 

Public Member Functions

 TPose3D (const TPoint2D &p)
 Implicit constructor from TPoint2D. More...
 
 TPose3D (const TPose2D &p)
 Implicit constructor from TPose2D. More...
 
 TPose3D (const TPoint3D &p)
 Implicit constructor from TPoint3D. More...
 
constexpr TPose3D (double _x, double _y, double _z, double _yaw, double _pitch, double _roll)
 Constructor from coordinates. More...
 
 TPose3D ()
 Default fast constructor. More...
 
double & operator[] (size_t i)
 Coordinate access using operator[]. More...
 
constexpr const double & operator[] (size_t i) const
 Coordinate access using operator[]. More...
 
double norm () const
 Pose's spatial coordinates norm. More...
 
void getAsVector (std::vector< double > &v) const
 Gets the pose as a vector of doubles. More...
 
void asString (std::string &s) const
 Returns a human-readable textual representation of the object (eg: "[x y z yaw pitch roll]", angles in degrees.) More...
 
std::string asString () const
 
void getAsQuaternion (mrpt::math::CQuaternion< double > &q, mrpt::math::CMatrixFixedNumeric< double, 4, 3 > *out_dq_dr=NULL) const
 Returns the quaternion associated to the rotation of this object (NOTE: XYZ translation is ignored)

\[ \mathbf{q} = \left( \begin{array}{c} \cos (\phi /2) \cos (\theta /2) \cos (\psi /2) + \sin (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \sin (\phi /2) \cos (\theta /2) \cos (\psi /2) - \cos (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \sin (\theta /2) \cos (\psi /2) + \sin (\phi /2) \cos (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \cos (\theta /2) \sin (\psi /2) - \sin (\phi /2) \sin (\theta /2) \cos (\psi /2) \\ \end{array}\right) \]

With : $ \phi = roll $, $ \theta = pitch $ and $ \psi = yaw $. More...

 
void composePoint (const TPoint3D l, TPoint3D &g) const
 
void inverseComposePoint (const TPoint3D g, TPoint3D &l) const
 
void composePose (const TPose3D other, TPose3D &result) const
 
void getRotationMatrix (mrpt::math::CMatrixDouble33 &R) const
 
void getHomogeneousMatrix (mrpt::math::CMatrixDouble44 &HG) const
 
void getInverseHomogeneousMatrix (mrpt::math::CMatrixDouble44 &HG) const
 
void fromHomogeneousMatrix (const mrpt::math::CMatrixDouble44 &HG)
 
void fromString (const std::string &s)
 Set the current object value from a string generated by 'asString' (eg: "[0.02 1.04 -0.8]" ) More...
 

Static Public Member Functions

static void SO3_to_yaw_pitch_roll (const mrpt::math::CMatrixDouble33 &R, double &yaw, double &pitch, double &roll)
 
static size_t size ()
 

Public Attributes

double x
 X,Y,Z, coords. More...
 
double y
 
double z
 
double yaw
 Yaw coordinate (rotation angle over Z axis). More...
 
double pitch
 Pitch coordinate (rotation angle over Y axis). More...
 
double roll
 Roll coordinate (rotation angle over X coordinate). More...
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
static_size 

Definition at line 605 of file lightweight_geom_data.h.

Constructor & Destructor Documentation

◆ TPose3D() [1/5]

mrpt::math::TPose3D::TPose3D ( const TPoint2D p)

Implicit constructor from TPoint2D.

Zeroes all the unprovided information.

See also
TPoint2D

Definition at line 202 of file lightweight_geom_data.cpp.

◆ TPose3D() [2/5]

mrpt::math::TPose3D::TPose3D ( const TPose2D p)

Implicit constructor from TPose2D.

Gets the yaw from the 2D pose's phi, zeroing all the unprovided information.

See also
TPose2D

Definition at line 206 of file lightweight_geom_data.cpp.

◆ TPose3D() [3/5]

mrpt::math::TPose3D::TPose3D ( const TPoint3D p)

Implicit constructor from TPoint3D.

Zeroes angular information.

See also
TPoint3D

Definition at line 210 of file lightweight_geom_data.cpp.

◆ TPose3D() [4/5]

constexpr mrpt::math::TPose3D::TPose3D ( double  _x,
double  _y,
double  _z,
double  _yaw,
double  _pitch,
double  _roll 
)
inline

Constructor from coordinates.

Definition at line 636 of file lightweight_geom_data.h.

◆ TPose3D() [5/5]

mrpt::math::TPose3D::TPose3D ( )
inline

Default fast constructor.

Initializes to garbage.

Definition at line 645 of file lightweight_geom_data.h.

Member Function Documentation

◆ asString() [1/2]

void mrpt::math::TPose3D::asString ( std::string s) const

Returns a human-readable textual representation of the object (eg: "[x y z yaw pitch roll]", angles in degrees.)

See also
fromString

Definition at line 214 of file lightweight_geom_data.cpp.

References mrpt::format(), pitch, mrpt::RAD2DEG(), roll, and yaw.

Referenced by TEST().

◆ asString() [2/2]

std::string mrpt::math::TPose3D::asString ( ) const
inline

Definition at line 710 of file lightweight_geom_data.h.

◆ composePoint()

void mrpt::math::TPose3D::composePoint ( const TPoint3D  l,
TPoint3D g 
) const

◆ composePose()

void mrpt::math::TPose3D::composePose ( const TPose3D  other,
TPose3D result 
) const

Definition at line 371 of file lightweight_geom_data.cpp.

References fromHomogeneousMatrix(), and getHomogeneousMatrix().

◆ fromHomogeneousMatrix()

void mrpt::math::TPose3D::fromHomogeneousMatrix ( const mrpt::math::CMatrixDouble44 HG)

◆ fromString()

void mrpt::math::TPose3D::fromString ( const std::string s)

Set the current object value from a string generated by 'asString' (eg: "[0.02 1.04 -0.8]" )

See also
asString
Exceptions
std::exceptionOn invalid format

Definition at line 395 of file lightweight_geom_data.cpp.

References ASSERTMSG_, mrpt::DEG2RAD(), pitch, roll, THROW_EXCEPTION, and yaw.

◆ getAsQuaternion()

void mrpt::math::TPose3D::getAsQuaternion ( mrpt::math::CQuaternion< double > &  q,
mrpt::math::CMatrixFixedNumeric< double, 4, 3 > *  out_dq_dr = NULL 
) const

Returns the quaternion associated to the rotation of this object (NOTE: XYZ translation is ignored)

\[ \mathbf{q} = \left( \begin{array}{c} \cos (\phi /2) \cos (\theta /2) \cos (\psi /2) + \sin (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \sin (\phi /2) \cos (\theta /2) \cos (\psi /2) - \cos (\phi /2) \sin (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \sin (\theta /2) \cos (\psi /2) + \sin (\phi /2) \cos (\theta /2) \sin (\psi /2) \\ \cos (\phi /2) \cos (\theta /2) \sin (\psi /2) - \sin (\phi /2) \sin (\theta /2) \cos (\psi /2) \\ \end{array}\right) \]

With : $ \phi = roll $, $ \theta = pitch $ and $ \psi = yaw $.

Parameters
out_dq_drIf provided, the 4x3 Jacobian of the transformation will be computed and stored here. It's the Jacobian of the transformation from (yaw pitch roll) to (qr qx qy qz).

Definition at line 220 of file lightweight_geom_data.cpp.

References mrpt::math::CMatrixFixedNumeric< T, NROWS, NCOLS >::loadFromArray(), MRPT_MAX_ALIGN_BYTES, pitch, roll, and yaw.

Referenced by mrpt::poses::CPose3D::getAsQuaternion(), mrpt::math::slerp(), and mrpt::math::slerp_ypr().

◆ getAsVector()

void mrpt::math::TPose3D::getAsVector ( std::vector< double > &  v) const
inline

Gets the pose as a vector of doubles.

Definition at line 695 of file lightweight_geom_data.h.

References pitch, roll, x, y, yaw, and z.

◆ getHomogeneousMatrix()

void mrpt::math::TPose3D::getHomogeneousMatrix ( mrpt::math::CMatrixDouble44 HG) const

◆ getInverseHomogeneousMatrix()

void mrpt::math::TPose3D::getInverseHomogeneousMatrix ( mrpt::math::CMatrixDouble44 HG) const

◆ getRotationMatrix()

void mrpt::math::TPose3D::getRotationMatrix ( mrpt::math::CMatrixDouble33 R) const

◆ inverseComposePoint()

void mrpt::math::TPose3D::inverseComposePoint ( const TPoint3D  g,
TPoint3D l 
) const

Definition at line 269 of file lightweight_geom_data.cpp.

References getInverseHomogeneousMatrix().

◆ norm()

double mrpt::math::TPose3D::norm ( ) const
inline

Pose's spatial coordinates norm.

Definition at line 691 of file lightweight_geom_data.h.

References mrpt::square().

◆ operator[]() [1/2]

double& mrpt::math::TPose3D::operator[] ( size_t  i)
inline

Coordinate access using operator[].

Order: x,y,z,yaw,pitch,roll

Definition at line 647 of file lightweight_geom_data.h.

References pitch, roll, x, y, yaw, and z.

◆ operator[]() [2/2]

constexpr const double& mrpt::math::TPose3D::operator[] ( size_t  i) const
inline

Coordinate access using operator[].

Order: x,y,z,yaw,pitch,roll

Definition at line 668 of file lightweight_geom_data.h.

References pitch, roll, x, y, yaw, and z.

◆ size()

static size_t mrpt::math::TPose3D::size ( )
inlinestatic

◆ SO3_to_yaw_pitch_roll()

void mrpt::math::TPose3D::SO3_to_yaw_pitch_roll ( const mrpt::math::CMatrixDouble33 R,
double &  yaw,
double &  pitch,
double &  roll 
)
static

Definition at line 300 of file lightweight_geom_data.cpp.

References ASSERTDEBMSG_, pitch, R, roll, mrpt::square(), and yaw.

Referenced by fromHomogeneousMatrix().

Member Data Documentation

◆ pitch

double mrpt::math::TPose3D::pitch

◆ roll

double mrpt::math::TPose3D::roll

◆ x

double mrpt::math::TPose3D::x

◆ y

double mrpt::math::TPose3D::y

◆ yaw

double mrpt::math::TPose3D::yaw

◆ z

double mrpt::math::TPose3D::z



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at lun oct 28 00:14:14 CET 2019