Main MRPT website > C++ reference
MRPT logo
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes
mrpt::poses::CPose3D Class Reference

Detailed Description

A class used to store a 3D pose (a 3D translation + a rotation in 3D).

The 6D transformation in SE(3) stored in this class is kept in two separate containers: a 3-array for the translation, and a 3x3 rotation matrix.

This class allows parameterizing 6D poses as a 6-vector: [x y z yaw pitch roll] (read below for the angles convention). Note however, that the yaw/pitch/roll angles are only computed (on-demand and transparently) when the user requests them. Normally, rotations and transformations are always handled via the 3x3 rotation matrix.

Yaw/Pitch/Roll angles are defined as successive rotations around local (dynamic) axes in the Z/Y/X order:

It may be extremely confusing and annoying to find a different criterion also involving the names "yaw, pitch, roll" but regarding rotations around global (static) axes. Fortunately, it's very easy to see (by writing down the product of the three rotation matrices) that both conventions lead to exactly the same numbers. Only, that it's conventional to write the numbers in reverse order. That is, the same rotation can be described equivalently with any of these two parameterizations:

Note
Read also: "A tutorial on SE(3) transformation parameterizations and on-manifold optimization", Jose-Luis Blanco. http://mapir.isa.uma.es/~jlblanco/papers/jlblanco2010geometry3D_techrep.pdf
See also
CPoseOrPoint,CPoint3D, mrpt::math::CQuaternion

Definition at line 97 of file CPose3D.h.

#include <mrpt/poses/CPose3D.h>

Inheritance diagram for mrpt::poses::CPose3D:
Inheritance graph
[legend]

Public Types

enum  { is_3D_val = 1 }
 
enum  { rotation_dimensions = 3 }
 
enum  { is_PDF_val = 0 }
 
typedef CPose3D type_value
 Used to emulate CPosePDF types, for example, in mrpt::graphs::CNetworkOfPoses. More...
 

Public Member Functions

const type_valuegetPoseMean () const
 
type_valuegetPoseMean ()
 
mrpt::utils::CObjectPtr duplicateGetSmartPtr () const
 Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). More...
 
CObject * clone () const
 Cloning interface for smart pointers. More...
 
Constructors
 CPose3D ()
 Default constructor, with all the coordinates set to zero. More...
 
 CPose3D (const double x, const double y, const double z, const double yaw=0, const double pitch=0, const double roll=0)
 Constructor with initilization of the pose; (remember that angles are always given in radians!) More...
 
 CPose3D (const math::CMatrixDouble &m)
 Constructor from a 4x4 homogeneous matrix - the passed matrix can be actually of any size larger than or equal 3x4, since only those first values are used (the last row of a homogeneous 4x4 matrix are always fixed). More...
 
 CPose3D (const math::CMatrixDouble44 &m)
 Constructor from a 4x4 homogeneous matrix: More...
 
template<class MATRIX33 , class VECTOR3 >
 CPose3D (const MATRIX33 &rot, const VECTOR3 &xyz)
 Constructor from a 3x3 rotation matrix and a the translation given as a 3-vector, a 3-array, a CPoint3D or a TPoint3D. More...
 
 CPose3D (const CMatrixDouble33 &rot, const CArrayDouble< 3 > &xyz)
 
 CPose3D (const CPose2D &)
 Constructor from a CPose2D object. More...
 
 CPose3D (const CPoint3D &)
 Constructor from a CPoint3D object. More...
 
 CPose3D (const mrpt::math::TPose3D &)
 Constructor from lightweight object. More...
 
 CPose3D (const mrpt::math::CQuaternionDouble &q, const double x, const double y, const double z)
 Constructor from a quaternion (which only represents the 3D rotation part) and a 3D displacement. More...
 
 CPose3D (const CPose3DQuat &)
 Constructor from a CPose3DQuat. More...
 
 CPose3D (const CPose3DRotVec &p)
 Constructor from a CPose3DRotVec. More...
 
 CPose3D (TConstructorFlags_Poses constructor_dummy_param)
 Fast constructor that leaves all the data uninitialized - call with UNINITIALIZED_POSE as argument. More...
 
 CPose3D (const CArrayDouble< 12 > &vec12)
 Constructor from an array with these 12 elements: [r11 r21 r31 r12 r22 r32 r13 r23 r33 tx ty tz] where r{ij} are the entries of the 3x3 rotation matrix and t{x,y,z} are the 3D translation of the pose. More...
 
Access 3x3 rotation and 4x4 homogeneous matrices
void getHomogeneousMatrix (CMatrixDouble44 &out_HM) const
 Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation). More...
 
CMatrixDouble44 getHomogeneousMatrixVal () const
 
void getRotationMatrix (mrpt::math::CMatrixDouble33 &ROT) const
 Get the 3x3 rotation matrix. More...
 
const mrpt::math::CMatrixDouble33getRotationMatrix () const
 
void setRotationMatrix (const mrpt::math::CMatrixDouble33 &ROT)
 Sets the 3x3 rotation matrix. More...
 
Pose-pose and pose-point compositions and operators
CPose3D operator+ (const CPose3D &b) const
 The operator $ a \oplus b $ is the pose compounding operator. More...
 
CPoint3D operator+ (const CPoint3D &b) const
 The operator $ a \oplus b $ is the pose compounding operator. More...
 
CPoint3D operator+ (const CPoint2D &b) const
 The operator $ a \oplus b $ is the pose compounding operator. More...
 
void sphericalCoordinates (const TPoint3D &point, double &out_range, double &out_yaw, double &out_pitch) const
 Computes the spherical coordinates of a 3D point as seen from the 6D pose specified by this object. More...
 
void composePoint (double lx, double ly, double lz, double &gx, double &gy, double &gz, mrpt::math::CMatrixFixedNumeric< double, 3, 3 > *out_jacobian_df_dpoint=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dpose=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dse3=NULL, bool use_small_rot_approx=false) const
 An alternative, slightly more efficient way of doing $ G = P \oplus L $ with G and L being 3D points and P this 6D pose. More...
 
void composePoint (const TPoint3D local_point, TPoint3D &global_point) const
 An alternative, slightly more efficient way of doing $ G = P \oplus L $ with G and L being 3D points and P this 6D pose. More...
 
void composePoint (const TPoint3D local_point, TPoint2D &global_point) const
 This version of the method assumes that the resulting point has no Z component (use with caution!) More...
 
void composePoint (double lx, double ly, double lz, float &gx, float &gy, float &gz) const
 An alternative, slightly more efficient way of doing $ G = P \oplus L $ with G and L being 3D points and P this 6D pose. More...
 
void inverseComposePoint (const double gx, const double gy, const double gz, double &lx, double &ly, double &lz, mrpt::math::CMatrixFixedNumeric< double, 3, 3 > *out_jacobian_df_dpoint=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dpose=NULL, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dse3=NULL) const
 Computes the 3D point L such as $ L = G \ominus this $. More...
 
void inverseComposePoint (const mrpt::math::TPoint3D &g, mrpt::math::TPoint3D &l) const
 
void inverseComposePoint (const mrpt::math::TPoint2D &g, mrpt::math::TPoint2D &l, const double eps=1e-6) const
 
void composeFrom (const CPose3D &A, const CPose3D &B)
 Makes "this = A (+) B"; this method is slightly more efficient than "this= A + B;" since it avoids the temporary object. More...
 
CPose3Doperator+= (const CPose3D &b)
 Make $ this = this \oplus b $ (b can be "this" without problems) More...
 
void inverseComposeFrom (const CPose3D &A, const CPose3D &B)
 Makes $ this = A \ominus B $ this method is slightly more efficient than "this= A - B;" since it avoids the temporary object. More...
 
CPose3D operator- (const CPose3D &b) const
 Compute $ RET = this \oplus b $. More...
 
void inverse ()
 Convert this pose into its inverse, saving the result in itself. More...
 
void changeCoordinatesReference (const CPose3D &p)
 makes: this = p (+) this More...
 
Access and modify contents
void addComponents (const CPose3D &p)
 Scalar sum of all 6 components: This is diferent from poses composition, which is implemented as "+" operators. More...
 
void normalizeAngles ()
 Rebuild the internal matrix & update the yaw/pitch/roll angles within the ]-PI,PI] range (Must be called after using addComponents) More...
 
void operator*= (const double s)
 Scalar multiplication of x,y,z,yaw,pitch & roll (angles will be wrapped to the ]-pi,pi] interval). More...
 
void setFromValues (const double x0, const double y0, const double z0, const double yaw=0, const double pitch=0, const double roll=0)
 Set the pose from a 3D position (meters) and yaw/pitch/roll angles (radians) - This method recomputes the internal rotation matrix. More...
 
template<typename VECTORLIKE >
void setFromXYZQ (const VECTORLIKE &v, const size_t index_offset=0)
 Set the pose from a 3D position (meters) and a quaternion, stored as [x y z qr qx qy qz] in a 7-element vector. More...
 
void setYawPitchRoll (const double yaw_, const double pitch_, const double roll_)
 Set the 3 angles of the 3D pose (in radians) - This method recomputes the internal rotation coordinates matrix. More...
 
template<class ARRAYORVECTOR >
void setFrom12Vector (const ARRAYORVECTOR &vec12)
 Set pose from an array with these 12 elements: [r11 r21 r31 r12 r22 r32 r13 r23 r33 tx ty tz] where r{ij} are the entries of the 3x3 rotation matrix and t{x,y,z} are the 3D translation of the pose. More...
 
template<class ARRAYORVECTOR >
void getAs12Vector (ARRAYORVECTOR &vec12) const
 Get the pose representation as an array with these 12 elements: [r11 r21 r31 r12 r22 r32 r13 r23 r33 tx ty tz] where r{ij} are the entries of the 3x3 rotation matrix and t{x,y,z} are the 3D translation of the pose. More...
 
void getYawPitchRoll (double &yaw, double &pitch, double &roll) const
 Returns the three angles (yaw, pitch, roll), in radians, from the rotation matrix. More...
 
double yaw () const
 Get the YAW angle (in radians) More...
 
double pitch () const
 Get the PITCH angle (in radians) More...
 
double roll () const
 Get the ROLL angle (in radians) More...
 
void getAsVector (vector_double &v) const
 Returns a 1x6 vector with [x y z yaw pitch roll]. More...
 
void getAsVector (mrpt::math::CArrayDouble< 6 > &v) const
 
void getAsQuaternion (mrpt::math::CQuaternionDouble &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...

 
const double & operator[] (unsigned int i) const
 
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 fromString (const std::string &s)
 Set the current object value from a string generated by 'asString' (eg: "[x y z yaw pitch roll]", angles in deg. More...
 
bool isHorizontal (const double tolerance=0) const
 Return true if the 6D pose represents a Z axis almost exactly vertical (upwards or downwards), with a given tolerance (if set to 0 exact horizontality is tested). More...
 
double distanceEuclidean6D (const CPose3D &o) const
 The euclidean distance between two poses taken as two 6-length vectors (angles in radians). More...
 

Static Public Member Functions

static bool is_3D ()
 
static bool is_PDF ()
 

Public Attributes

CArrayDouble< 3 > m_coords
 The translation vector [x,y,z] access directly or with x(), y(), z() setter/getter methods. More...
 

Static Public Attributes

static const mrpt::utils::TRuntimeClassId classCObject
 
RTTI stuff
static const mrpt::utils::TRuntimeClassId classCSerializable
 

Protected Member Functions

void rebuildRotationMatrix ()
 Rebuild the homog matrix from the angles. More...
 
void updateYawPitchRoll () const
 Updates Yaw/pitch/roll members from the m_ROT. More...
 
CSerializable virtual methods
void writeToStream (mrpt::utils::CStream &out, int *getVersion) const
 Introduces a pure virtual method responsible for writing to a CStream. More...
 
void readFromStream (mrpt::utils::CStream &in, int version)
 Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori. More...
 

Protected Attributes

CMatrixDouble33 m_ROT
 The 3x3 rotation matrix, access with getRotationMatrix(), setRotationMatrix() (It's not safe to set this field as public) More...
 
bool m_ypr_uptodate
 Whether yaw/pitch/roll members are up-to-date since the last rotation matrix update. More...
 
double m_yaw
 
double m_pitch
 
double m_roll
 These variables are updated every time that the object rotation matrix is modified (construction, loading from values, pose composition, etc ) More...
 

RTTI stuff

typedef CPose3DPtr SmartPtr
 
static mrpt::utils::CLASSINIT _init_CPose3D
 
static mrpt::utils::TRuntimeClassId classCPose3D
 
static const mrpt::utils::TRuntimeClassIdclassinfo
 
static const mrpt::utils::TRuntimeClassId_GetBaseClass ()
 
virtual const mrpt::utils::TRuntimeClassIdGetRuntimeClass () const
 Returns information about the class of an object in runtime. More...
 
virtual mrpt::utils::CObjectduplicate () const
 Returns a copy of the object, indepently of its class. More...
 
static mrpt::utils::CObjectCreateObject ()
 
static CPose3DPtr Create ()
 

Lie Algebra methods

void ln (mrpt::math::CArrayDouble< 6 > &out_ln) const
 Take the logarithm of the 3x4 matrix defined by this pose, generating the corresponding vector in the SE(3) Lie Algebra. More...
 
mrpt::math::CArrayDouble< 6 > ln () const
 
void ln_jacob (mrpt::math::CMatrixFixedNumeric< double, 6, 12 > &J) const
 Jacobian of the logarithm of the 3x4 matrix defined by this pose. More...
 
CArrayDouble< 3 > ln_rotation () const
 Take the logarithm of the 3x3 rotation matrix, generating the corresponding vector in the Lie Algebra. More...
 
static CPose3D exp (const mrpt::math::CArrayNumeric< double, 6 > &vect, bool pseudo_exponential=false)
 Exponentiate a Vector in the SE(3) Lie Algebra to generate a new CPose3D (static method). More...
 
static void exp (const mrpt::math::CArrayNumeric< double, 6 > &vect, CPose3D &out_pose, bool pseudo_exponential=false)
 
static CMatrixDouble33 exp_rotation (const mrpt::math::CArrayNumeric< double, 3 > &vect)
 Exponentiate a vector in the Lie algebra to generate a new SO(3) (a 3x3 rotation matrix). More...
 
static void ln_rot_jacob (const CMatrixDouble33 &R, CMatrixFixedNumeric< double, 3, 9 > &M)
 Static function to compute the Jacobian of the SO(3) Logarithm function, evaluated at a given 3x3 rotation matrix R. More...
 

STL-like methods and typedefs

 
enum  { static_size = 6 }
 
typedef double value_type
 The type of the elements. More...
 
typedef double & reference
 
typedef const double & const_reference
 
typedef std::size_t size_type
 
typedef std::ptrdiff_t difference_type
 
static size_type size ()
 
static bool empty ()
 
static size_type max_size ()
 
static void resize (const size_t n)
 
double x () const
 Common members of all points & poses classes. More...
 
double & x ()
 
void x (const double v)
 
double y () const
 
double & y ()
 
void y (const double v)
 
void x_incr (const double v)
 
void y_incr (const double v)
 
double sqrDistanceTo (const CPoseOrPoint< OTHERCLASS > &b) const
 Returns the squared euclidean distance to another pose/point: More...
 
double distanceTo (const CPoseOrPoint< OTHERCLASS > &b) const
 Returns the Euclidean distance to another pose/point: More...
 
double distanceTo (const mrpt::math::TPoint3D &b) const
 Returns the euclidean distance to a 3D point: More...
 
double distance2DToSquare (double ax, double ay) const
 Returns the squared 2D distance from this pose/point to a 2D point (ignores Z, if it exists). More...
 
double distance3DToSquare (double ax, double ay, double az) const
 Returns the squared 3D distance from this pose/point to a 3D point. More...
 
double distance2DTo (double ax, double ay) const
 Returns the 2D distance from this pose/point to a 2D point (ignores Z, if it exists). More...
 
double distance3DTo (double ax, double ay, double az) const
 Returns the 3D distance from this pose/point to a 3D point. More...
 
double norm () const
 Returns the euclidean norm of vector: $ ||\mathbf{x}|| = \sqrt{x^2+y^2+z^2} $. More...
 
vector_double getAsVectorVal () const
 Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation) More...
 
void getInverseHomogeneousMatrix (math::CMatrixDouble44 &out_HM) const
 Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose. More...
 
mrpt::math::CMatrixDouble44 getInverseHomogeneousMatrix () const
 
static bool is3DPoseOrPoint ()
 Return true for poses or points with a Z component, false otherwise. More...
 

Member Typedef Documentation

◆ const_reference

Definition at line 534 of file CPose3D.h.

◆ difference_type

typedef std::ptrdiff_t mrpt::poses::CPose3D::difference_type

Definition at line 536 of file CPose3D.h.

◆ reference

Definition at line 533 of file CPose3D.h.

◆ size_type

typedef std::size_t mrpt::poses::CPose3D::size_type

Definition at line 535 of file CPose3D.h.

◆ SmartPtr

A typedef for the associated smart pointer

Definition at line 100 of file CPose3D.h.

◆ type_value

Used to emulate CPosePDF types, for example, in mrpt::graphs::CNetworkOfPoses.

Definition at line 520 of file CPose3D.h.

◆ value_type

The type of the elements.

Definition at line 532 of file CPose3D.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
is_3D_val 

Definition at line 521 of file CPose3D.h.

◆ anonymous enum

anonymous enum
Enumerator
rotation_dimensions 

Definition at line 523 of file CPose3D.h.

◆ anonymous enum

anonymous enum
Enumerator
is_PDF_val 

Definition at line 524 of file CPose3D.h.

◆ anonymous enum

anonymous enum
Enumerator
static_size 

Definition at line 540 of file CPose3D.h.

Constructor & Destructor Documentation

◆ CPose3D() [1/14]

mrpt::poses::CPose3D::CPose3D ( )

Default constructor, with all the coordinates set to zero.

◆ CPose3D() [2/14]

mrpt::poses::CPose3D::CPose3D ( const double  x,
const double  y,
const double  z,
const double  yaw = 0,
const double  pitch = 0,
const double  roll = 0 
)

Constructor with initilization of the pose; (remember that angles are always given in radians!)

◆ CPose3D() [3/14]

mrpt::poses::CPose3D::CPose3D ( const math::CMatrixDouble m)
explicit

Constructor from a 4x4 homogeneous matrix - the passed matrix can be actually of any size larger than or equal 3x4, since only those first values are used (the last row of a homogeneous 4x4 matrix are always fixed).

◆ CPose3D() [4/14]

mrpt::poses::CPose3D::CPose3D ( const math::CMatrixDouble44 m)
explicit

Constructor from a 4x4 homogeneous matrix:

◆ CPose3D() [5/14]

template<class MATRIX33 , class VECTOR3 >
mrpt::poses::CPose3D::CPose3D ( const MATRIX33 &  rot,
const VECTOR3 &  xyz 
)
inline

Constructor from a 3x3 rotation matrix and a the translation given as a 3-vector, a 3-array, a CPoint3D or a TPoint3D.

Definition at line 134 of file CPose3D.h.

References ASSERT_EQUAL_, and mrpt::mrpt::math::size().

◆ CPose3D() [6/14]

mrpt::poses::CPose3D::CPose3D ( const CMatrixDouble33 rot,
const CArrayDouble< 3 > &  xyz 
)
inline

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

Definition at line 143 of file CPose3D.h.

◆ CPose3D() [7/14]

mrpt::poses::CPose3D::CPose3D ( const CPose2D )

Constructor from a CPose2D object.

◆ CPose3D() [8/14]

mrpt::poses::CPose3D::CPose3D ( const CPoint3D )

Constructor from a CPoint3D object.

◆ CPose3D() [9/14]

mrpt::poses::CPose3D::CPose3D ( const mrpt::math::TPose3D )

Constructor from lightweight object.

◆ CPose3D() [10/14]

mrpt::poses::CPose3D::CPose3D ( const mrpt::math::CQuaternionDouble q,
const double  x,
const double  y,
const double  z 
)

Constructor from a quaternion (which only represents the 3D rotation part) and a 3D displacement.

◆ CPose3D() [11/14]

mrpt::poses::CPose3D::CPose3D ( const CPose3DQuat )

Constructor from a CPose3DQuat.

◆ CPose3D() [12/14]

mrpt::poses::CPose3D::CPose3D ( const CPose3DRotVec p)

Constructor from a CPose3DRotVec.

◆ CPose3D() [13/14]

mrpt::poses::CPose3D::CPose3D ( TConstructorFlags_Poses  constructor_dummy_param)
inline

Fast constructor that leaves all the data uninitialized - call with UNINITIALIZED_POSE as argument.

Definition at line 168 of file CPose3D.h.

◆ CPose3D() [14/14]

mrpt::poses::CPose3D::CPose3D ( const CArrayDouble< 12 > &  vec12)
inlineexplicit

Constructor from an array with these 12 elements: [r11 r21 r31 r12 r22 r32 r13 r23 r33 tx ty tz] where r{ij} are the entries of the 3x3 rotation matrix and t{x,y,z} are the 3D translation of the pose.

See also
setFrom12Vector, getAs12Vector

Definition at line 174 of file CPose3D.h.

Member Function Documentation

◆ _GetBaseClass()

static const mrpt::utils::TRuntimeClassId* mrpt::poses::CPose3D::_GetBaseClass ( )
staticprotected

◆ addComponents()

void mrpt::poses::CPose3D::addComponents ( const CPose3D p)

Scalar sum of all 6 components: This is diferent from poses composition, which is implemented as "+" operators.

See also
normalizeAngles

◆ asString() [1/2]

void mrpt::poses::CPose3D::asString ( std::string &  s) const
inline

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 454 of file CPose3D.h.

References mrpt::mrpt::format(), and RAD2DEG.

◆ asString() [2/2]

std::string mrpt::poses::CPose3D::asString ( ) const
inline

Definition at line 455 of file CPose3D.h.

References asString().

Referenced by asString().

◆ changeCoordinatesReference()

void mrpt::poses::CPose3D::changeCoordinatesReference ( const CPose3D p)
inline

makes: this = p (+) this

Definition at line 316 of file CPose3D.h.

◆ clone()

CObject* mrpt::utils::CObject::clone ( ) const
inlineinherited

Cloning interface for smart pointers.

Definition at line 161 of file CObject.h.

◆ composeFrom()

void mrpt::poses::CPose3D::composeFrom ( const CPose3D A,
const CPose3D B 
)

◆ composePoint() [1/4]

void mrpt::poses::CPose3D::composePoint ( double  lx,
double  ly,
double  lz,
double &  gx,
double &  gy,
double &  gz,
mrpt::math::CMatrixFixedNumeric< double, 3, 3 > *  out_jacobian_df_dpoint = NULL,
mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *  out_jacobian_df_dpose = NULL,
mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *  out_jacobian_df_dse3 = NULL,
bool  use_small_rot_approx = false 
) const

An alternative, slightly more efficient way of doing $ G = P \oplus L $ with G and L being 3D points and P this 6D pose.

If pointers are provided, the corresponding Jacobians are returned. "out_jacobian_df_dse3" stands for the Jacobian with respect to the 6D locally Euclidean vector in the tangent space of SE(3). See this report for mathematical details.

Parameters
Ifset to true, the Jacobian "out_jacobian_df_dpose" uses a fastest linearized appoximation (valid only for small rotations!).

Referenced by mrpt::math::project3D(), mrpt::vision::pinhole::projectPoint_no_distortion(), mrpt::srba::LandmarkRendererBase< landmark_rendering_as_point >::render(), and mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >::render_dl().

◆ composePoint() [2/4]

void mrpt::poses::CPose3D::composePoint ( const TPoint3D  local_point,
TPoint3D global_point 
) const
inline

An alternative, slightly more efficient way of doing $ G = P \oplus L $ with G and L being 3D points and P this 6D pose.

Note
local_point is passed by value to allow global and local point to be the same variable

Definition at line 247 of file CPose3D.h.

References mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.

◆ composePoint() [3/4]

void mrpt::poses::CPose3D::composePoint ( const TPoint3D  local_point,
TPoint2D global_point 
) const
inline

This version of the method assumes that the resulting point has no Z component (use with caution!)

Definition at line 251 of file CPose3D.h.

References mrpt::math::TPoint2D::x, mrpt::math::TPoint3D::x, mrpt::math::TPoint2D::y, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.

◆ composePoint() [4/4]

void mrpt::poses::CPose3D::composePoint ( double  lx,
double  ly,
double  lz,
float &  gx,
float &  gy,
float &  gz 
) const
inline

An alternative, slightly more efficient way of doing $ G = P \oplus L $ with G and L being 3D points and P this 6D pose.

Definition at line 257 of file CPose3D.h.

◆ Create()

static CPose3DPtr mrpt::poses::CPose3D::Create ( )
static

◆ CreateObject()

static mrpt::utils::CObject* mrpt::poses::CPose3D::CreateObject ( )
static

◆ distance2DTo()

double mrpt::poses::CPoseOrPoint< CPose3D >::distance2DTo ( double  ax,
double  ay 
) const
inlineinherited

Returns the 2D distance from this pose/point to a 2D point (ignores Z, if it exists).

Definition at line 191 of file CPoseOrPoint.h.

◆ distance2DToSquare()

double mrpt::poses::CPoseOrPoint< CPose3D >::distance2DToSquare ( double  ax,
double  ay 
) const
inlineinherited

Returns the squared 2D distance from this pose/point to a 2D point (ignores Z, if it exists).

Definition at line 183 of file CPoseOrPoint.h.

◆ distance3DTo()

double mrpt::poses::CPoseOrPoint< CPose3D >::distance3DTo ( double  ax,
double  ay,
double  az 
) const
inlineinherited

Returns the 3D distance from this pose/point to a 3D point.

Definition at line 194 of file CPoseOrPoint.h.

◆ distance3DToSquare()

double mrpt::poses::CPoseOrPoint< CPose3D >::distance3DToSquare ( double  ax,
double  ay,
double  az 
) const
inlineinherited

Returns the squared 3D distance from this pose/point to a 3D point.

Definition at line 186 of file CPoseOrPoint.h.

◆ distanceEuclidean6D()

double mrpt::poses::CPose3D::distanceEuclidean6D ( const CPose3D o) const

The euclidean distance between two poses taken as two 6-length vectors (angles in radians).

◆ distanceTo() [1/2]

double mrpt::poses::CPoseOrPoint< CPose3D >::distanceTo ( const CPoseOrPoint< OTHERCLASS > &  b) const
inlineinherited

Returns the Euclidean distance to another pose/point:

Definition at line 177 of file CPoseOrPoint.h.

◆ distanceTo() [2/2]

double mrpt::poses::CPoseOrPoint< CPose3D >::distanceTo ( const mrpt::math::TPoint3D b) const
inlineinherited

Returns the euclidean distance to a 3D point:

Definition at line 197 of file CPoseOrPoint.h.

◆ duplicate()

virtual mrpt::utils::CObject* mrpt::poses::CPose3D::duplicate ( ) const
virtual

Returns a copy of the object, indepently of its class.

Implements mrpt::utils::CObject.

◆ duplicateGetSmartPtr()

mrpt::utils::CObjectPtr mrpt::utils::CObject::duplicateGetSmartPtr ( ) const
inlineinherited

Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).

Definition at line 158 of file CObject.h.

◆ empty()

static bool mrpt::poses::CPose3D::empty ( )
inlinestatic

Definition at line 542 of file CPose3D.h.

◆ exp() [1/2]

static CPose3D mrpt::poses::CPose3D::exp ( const mrpt::math::CArrayNumeric< double, 6 > &  vect,
bool  pseudo_exponential = false 
)
static

Exponentiate a Vector in the SE(3) Lie Algebra to generate a new CPose3D (static method).

Parameters
pseudo_exponentialIf set to true, XYZ are copied from the first three elements in the vector instead of using the proper Lie Algebra formulas (this is actually the common practice in robotics literature).
Note
Method from TooN (C) Tom Drummond (GNU GPL)

Referenced by mrpt::poses::SE_traits< 3 >::exp(), and mrpt::poses::SE_traits< 3 >::pseudo_exp().

◆ exp() [2/2]

static void mrpt::poses::CPose3D::exp ( const mrpt::math::CArrayNumeric< double, 6 > &  vect,
CPose3D out_pose,
bool  pseudo_exponential = false 
)
static

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

◆ exp_rotation()

static CMatrixDouble33 mrpt::poses::CPose3D::exp_rotation ( const mrpt::math::CArrayNumeric< double, 3 > &  vect)
static

Exponentiate a vector in the Lie algebra to generate a new SO(3) (a 3x3 rotation matrix).

Note
Method from TooN (C) Tom Drummond (GNU GPL)

◆ fromString()

void mrpt::poses::CPose3D::fromString ( const std::string &  s)
inline

Set the current object value from a string generated by 'asString' (eg: "[x y z yaw pitch roll]", angles in deg.

)

See also
asString
Exceptions
std::exceptionOn invalid format

Definition at line 461 of file CPose3D.h.

References ASSERTMSG_, DEG2RAD, mrpt::mrpt::math::size(), and THROW_EXCEPTION.

◆ getAs12Vector()

template<class ARRAYORVECTOR >
void mrpt::poses::CPose3D::getAs12Vector ( ARRAYORVECTOR &  vec12) const
inline

Get the pose representation as an array with these 12 elements: [r11 r21 r31 r12 r22 r32 r13 r23 r33 tx ty tz] where r{ij} are the entries of the 3x3 rotation matrix and t{x,y,z} are the 3D translation of the pose.

See also
setFrom12Vector

Definition at line 398 of file CPose3D.h.

◆ getAsQuaternion()

void mrpt::poses::CPose3D::getAsQuaternion ( mrpt::math::CQuaternionDouble 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).

Referenced by mrpt::math::jacobians::jacob_quat_from_yawpitchroll().

◆ getAsVector() [1/2]

void mrpt::poses::CPose3D::getAsVector ( vector_double v) const

Returns a 1x6 vector with [x y z yaw pitch roll].

◆ getAsVector() [2/2]

void mrpt::poses::CPose3D::getAsVector ( mrpt::math::CArrayDouble< 6 > &  v) const

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

◆ getAsVectorVal()

vector_double mrpt::poses::CPoseOrPoint< CPose3D >::getAsVectorVal ( ) const
inlineinherited

Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation)

Definition at line 206 of file CPoseOrPoint.h.

◆ getHomogeneousMatrix()

void mrpt::poses::CPose3D::getHomogeneousMatrix ( CMatrixDouble44 out_HM) const
inline

Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).

See also
getInverseHomogeneousMatrix, getRotationMatrix

Definition at line 188 of file CPose3D.h.

◆ getHomogeneousMatrixVal()

CMatrixDouble44 mrpt::poses::CPose3D::getHomogeneousMatrixVal ( ) const
inline

Definition at line 195 of file CPose3D.h.

Referenced by mrpt::slam::detail::project3DPointsFromDepthImageInto().

◆ getInverseHomogeneousMatrix() [1/2]

void mrpt::poses::CPoseOrPoint< CPose3D >::getInverseHomogeneousMatrix ( math::CMatrixDouble44 out_HM) const
inlineinherited

Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose.

See also
getHomogeneousMatrix

Definition at line 226 of file CPoseOrPoint.h.

◆ getInverseHomogeneousMatrix() [2/2]

mrpt::math::CMatrixDouble44 mrpt::poses::CPoseOrPoint< CPose3D >::getInverseHomogeneousMatrix ( ) const
inlineinherited

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

Definition at line 233 of file CPoseOrPoint.h.

◆ getPoseMean() [1/2]

const type_value& mrpt::poses::CPose3D::getPoseMean ( ) const
inline

Definition at line 527 of file CPose3D.h.

◆ getPoseMean() [2/2]

type_value& mrpt::poses::CPose3D::getPoseMean ( )
inline

Definition at line 528 of file CPose3D.h.

◆ getRotationMatrix() [1/2]

void mrpt::poses::CPose3D::getRotationMatrix ( mrpt::math::CMatrixDouble33 ROT) const
inline

◆ getRotationMatrix() [2/2]

const mrpt::math::CMatrixDouble33& mrpt::poses::CPose3D::getRotationMatrix ( ) const
inline

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

Definition at line 200 of file CPose3D.h.

◆ GetRuntimeClass()

virtual const mrpt::utils::TRuntimeClassId* mrpt::poses::CPose3D::GetRuntimeClass ( ) const
virtual

Returns information about the class of an object in runtime.

Reimplemented from mrpt::utils::CSerializable.

◆ getYawPitchRoll()

void mrpt::poses::CPose3D::getYawPitchRoll ( double &  yaw,
double &  pitch,
double &  roll 
) const

Returns the three angles (yaw, pitch, roll), in radians, from the rotation matrix.

See also
setFromValues, yaw, pitch, roll

◆ inverse()

void mrpt::poses::CPose3D::inverse ( )

Convert this pose into its inverse, saving the result in itself.

See also
operator-

◆ inverseComposeFrom()

void mrpt::poses::CPose3D::inverseComposeFrom ( const CPose3D A,
const CPose3D B 
)

Makes $ this = A \ominus B $ this method is slightly more efficient than "this= A - B;" since it avoids the temporary object.

Note
A or B can be "this" without problems.
See also
composeFrom, composePoint

Referenced by operator-(), and mrpt::srba::options::sensor_pose_on_robot_se3::pose_robot2sensor().

◆ inverseComposePoint() [1/3]

void mrpt::poses::CPose3D::inverseComposePoint ( const double  gx,
const double  gy,
const double  gz,
double &  lx,
double &  ly,
double &  lz,
mrpt::math::CMatrixFixedNumeric< double, 3, 3 > *  out_jacobian_df_dpoint = NULL,
mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *  out_jacobian_df_dpose = NULL,
mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *  out_jacobian_df_dse3 = NULL 
) const

Computes the 3D point L such as $ L = G \ominus this $.

If pointers are provided, the corresponding Jacobians are returned. "out_jacobian_df_dse3" stands for the Jacobian with respect to the 6D locally Euclidean vector in the tangent space of SE(3). See this report for mathematical details.

See also
composePoint, composeFrom

Referenced by mrpt::vision::pinhole::projectPoint_no_distortion().

◆ inverseComposePoint() [2/3]

void mrpt::poses::CPose3D::inverseComposePoint ( const mrpt::math::TPoint3D g,
mrpt::math::TPoint3D l 
) const
inline

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

Definition at line 275 of file CPose3D.h.

References mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.

◆ inverseComposePoint() [3/3]

void mrpt::poses::CPose3D::inverseComposePoint ( const mrpt::math::TPoint2D g,
mrpt::math::TPoint2D l,
const double  eps = 1e-6 
) const
inline

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

Definition at line 280 of file CPose3D.h.

References nanoflann::abs(), ASSERT_BELOW_, mrpt::math::TPoint2D::x, and mrpt::math::TPoint2D::y.

◆ is3DPoseOrPoint()

static bool mrpt::poses::CPoseOrPoint< CPose3D >::is3DPoseOrPoint ( )
inlinestaticinherited

Return true for poses or points with a Z component, false otherwise.

Definition at line 156 of file CPoseOrPoint.h.

◆ is_3D()

static bool mrpt::poses::CPose3D::is_3D ( )
inlinestatic

Definition at line 522 of file CPose3D.h.

◆ is_PDF()

static bool mrpt::poses::CPose3D::is_PDF ( )
inlinestatic

Definition at line 525 of file CPose3D.h.

◆ isHorizontal()

bool mrpt::poses::CPose3D::isHorizontal ( const double  tolerance = 0) const

Return true if the 6D pose represents a Z axis almost exactly vertical (upwards or downwards), with a given tolerance (if set to 0 exact horizontality is tested).

◆ ln() [1/2]

void mrpt::poses::CPose3D::ln ( mrpt::math::CArrayDouble< 6 > &  out_ln) const

Take the logarithm of the 3x4 matrix defined by this pose, generating the corresponding vector in the SE(3) Lie Algebra.

Note
Method from TooN (C) Tom Drummond (GNU GPL)
See also
ln_jacob

Referenced by mrpt::poses::SE_traits< 3 >::ln().

◆ ln() [2/2]

mrpt::math::CArrayDouble<6> mrpt::poses::CPose3D::ln ( ) const
inline

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

Definition at line 501 of file CPose3D.h.

References ln().

Referenced by ln().

◆ ln_jacob()

void mrpt::poses::CPose3D::ln_jacob ( mrpt::math::CMatrixFixedNumeric< double, 6, 12 > &  J) const

Jacobian of the logarithm of the 3x4 matrix defined by this pose.

Note
Method from TooN (C) Tom Drummond (GNU GPL)
See also
ln

◆ ln_rot_jacob()

static void mrpt::poses::CPose3D::ln_rot_jacob ( const CMatrixDouble33 R,
CMatrixFixedNumeric< double, 3, 9 > &  M 
)
static

Static function to compute the Jacobian of the SO(3) Logarithm function, evaluated at a given 3x3 rotation matrix R.

See also
ln, ln_jacob

◆ ln_rotation()

CArrayDouble<3> mrpt::poses::CPose3D::ln_rotation ( ) const

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

Note
Method from TooN (C) Tom Drummond (GNU GPL)

◆ max_size()

static size_type mrpt::poses::CPose3D::max_size ( )
inlinestatic

Definition at line 543 of file CPose3D.h.

References static_size.

◆ norm()

double mrpt::poses::CPoseOrPoint< CPose3D >::norm ( ) const
inlineinherited

Returns the euclidean norm of vector: $ ||\mathbf{x}|| = \sqrt{x^2+y^2+z^2} $.

Definition at line 200 of file CPoseOrPoint.h.

◆ normalizeAngles()

void mrpt::poses::CPose3D::normalizeAngles ( )

Rebuild the internal matrix & update the yaw/pitch/roll angles within the ]-PI,PI] range (Must be called after using addComponents)

See also
addComponents

◆ operator*=()

void mrpt::poses::CPose3D::operator*= ( const double  s)

Scalar multiplication of x,y,z,yaw,pitch & roll (angles will be wrapped to the ]-pi,pi] interval).

◆ operator+() [1/3]

CPose3D mrpt::poses::CPose3D::operator+ ( const CPose3D b) const
inline

The operator $ a \oplus b $ is the pose compounding operator.

Definition at line 212 of file CPose3D.h.

References composeFrom(), and mrpt::poses::UNINITIALIZED_POSE.

◆ operator+() [2/3]

CPoint3D mrpt::poses::CPose3D::operator+ ( const CPoint3D b) const

The operator $ a \oplus b $ is the pose compounding operator.

◆ operator+() [3/3]

CPoint3D mrpt::poses::CPose3D::operator+ ( const CPoint2D b) const

The operator $ a \oplus b $ is the pose compounding operator.

◆ operator+=()

CPose3D& mrpt::poses::CPose3D::operator+= ( const CPose3D b)
inline

Make $ this = this \oplus b $ (b can be "this" without problems)

Definition at line 292 of file CPose3D.h.

◆ operator-()

CPose3D mrpt::poses::CPose3D::operator- ( const CPose3D b) const
inline

Compute $ RET = this \oplus b $.

Definition at line 305 of file CPose3D.h.

References inverseComposeFrom(), and mrpt::poses::UNINITIALIZED_POSE.

◆ operator[]()

const double& mrpt::poses::CPose3D::operator[] ( unsigned int  i) const
inline

Definition at line 432 of file CPose3D.h.

◆ pitch()

double mrpt::poses::CPose3D::pitch ( ) const
inline

◆ readFromStream()

void mrpt::poses::CPose3D::readFromStream ( mrpt::utils::CStream in,
int  version 
)
protectedvirtual

Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori.

Parameters
inThe input binary stream where the object data must read from.
versionThe version of the object stored in the stream: use this version number in your code to know how to read the incoming data.
Exceptions
std::exceptionOn any error, see CStream::ReadBuffer
See also
CStream

Implements mrpt::utils::CSerializable.

◆ rebuildRotationMatrix()

void mrpt::poses::CPose3D::rebuildRotationMatrix ( )
protected

Rebuild the homog matrix from the angles.

◆ resize()

static void mrpt::poses::CPose3D::resize ( const size_t  n)
inlinestatic

Definition at line 544 of file CPose3D.h.

References mrpt::format(), and static_size.

◆ roll()

double mrpt::poses::CPose3D::roll ( ) const
inline

◆ setFrom12Vector()

template<class ARRAYORVECTOR >
void mrpt::poses::CPose3D::setFrom12Vector ( const ARRAYORVECTOR &  vec12)
inline

Set pose from an array with these 12 elements: [r11 r21 r31 r12 r22 r32 r13 r23 r33 tx ty tz] where r{ij} are the entries of the 3x3 rotation matrix and t{x,y,z} are the 3D translation of the pose.

See also
getAs12Vector

Definition at line 382 of file CPose3D.h.

◆ setFromValues()

void mrpt::poses::CPose3D::setFromValues ( const double  x0,
const double  y0,
const double  z0,
const double  yaw = 0,
const double  pitch = 0,
const double  roll = 0 
)

Set the pose from a 3D position (meters) and yaw/pitch/roll angles (radians) - This method recomputes the internal rotation matrix.

See also
getYawPitchRoll, setYawPitchRoll

◆ setFromXYZQ()

template<typename VECTORLIKE >
void mrpt::poses::CPose3D::setFromXYZQ ( const VECTORLIKE &  v,
const size_t  index_offset = 0 
)
inline

Set the pose from a 3D position (meters) and a quaternion, stored as [x y z qr qx qy qz] in a 7-element vector.

See also
setFromValues, getYawPitchRoll, setYawPitchRoll, CQuaternion, getAsQuaternion

Definition at line 352 of file CPose3D.h.

References ASSERT_ABOVEEQ_.

◆ setRotationMatrix()

void mrpt::poses::CPose3D::setRotationMatrix ( const mrpt::math::CMatrixDouble33 ROT)
inline

Sets the 3x3 rotation matrix.

See also
getRotationMatrix, getHomogeneousMatrix

Definition at line 203 of file CPose3D.h.

◆ setYawPitchRoll()

void mrpt::poses::CPose3D::setYawPitchRoll ( const double  yaw_,
const double  pitch_,
const double  roll_ 
)
inline

Set the 3 angles of the 3D pose (in radians) - This method recomputes the internal rotation coordinates matrix.

See also
getYawPitchRoll, setFromValues

Definition at line 369 of file CPose3D.h.

◆ size()

static size_type mrpt::poses::CPose3D::size ( )
inlinestatic

Definition at line 541 of file CPose3D.h.

References static_size.

◆ sphericalCoordinates()

void mrpt::poses::CPose3D::sphericalCoordinates ( const TPoint3D point,
double &  out_range,
double &  out_yaw,
double &  out_pitch 
) const

Computes the spherical coordinates of a 3D point as seen from the 6D pose specified by this object.

For the coordinate system see the top of this page.

Referenced by mrpt::srba::sensor_model< landmarks::Euclidean3D, observations::RangeBearing_3D >::observe_error().

◆ sqrDistanceTo()

double mrpt::poses::CPoseOrPoint< CPose3D >::sqrDistanceTo ( const CPoseOrPoint< OTHERCLASS > &  b) const
inlineinherited

Returns the squared euclidean distance to another pose/point:

Definition at line 159 of file CPoseOrPoint.h.

◆ updateYawPitchRoll()

void mrpt::poses::CPose3D::updateYawPitchRoll ( ) const
inlineprotected

Updates Yaw/pitch/roll members from the m_ROT.

Definition at line 114 of file CPose3D.h.

◆ writeToStream()

void mrpt::poses::CPose3D::writeToStream ( mrpt::utils::CStream out,
int *  getVersion 
) const
protectedvirtual

Introduces a pure virtual method responsible for writing to a CStream.

This can not be used directly be users, instead use "stream << object;" for writing it to a stream.

Parameters
outThe output binary stream where object must be dumped.
getVersionIf NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data.
Exceptions
std::exceptionOn any error, see CStream::WriteBuffer
See also
CStream

Implements mrpt::utils::CSerializable.

◆ x() [1/3]

double mrpt::poses::CPoseOrPoint< CPose3D >::x ( ) const
inlineinherited

Common members of all points & poses classes.

< Get X coord.

Definition at line 142 of file CPoseOrPoint.h.

◆ x() [2/3]

double& mrpt::poses::CPoseOrPoint< CPose3D >::x ( )
inlineinherited

Definition at line 145 of file CPoseOrPoint.h.

◆ x() [3/3]

void mrpt::poses::CPoseOrPoint< CPose3D >::x ( const double  v)
inlineinherited
Parameters
vSet X coord.

Definition at line 148 of file CPoseOrPoint.h.

◆ x_incr()

void mrpt::poses::CPoseOrPoint< CPose3D >::x_incr ( const double  v)
inlineinherited
Parameters
vX+=v

Definition at line 151 of file CPoseOrPoint.h.

◆ y() [1/3]

double mrpt::poses::CPoseOrPoint< CPose3D >::y ( ) const
inlineinherited

< Get Y coord.

Definition at line 143 of file CPoseOrPoint.h.

◆ y() [2/3]

double& mrpt::poses::CPoseOrPoint< CPose3D >::y ( )
inlineinherited

Definition at line 146 of file CPoseOrPoint.h.

◆ y() [3/3]

void mrpt::poses::CPoseOrPoint< CPose3D >::y ( const double  v)
inlineinherited
Parameters
vSet Y coord.

Definition at line 149 of file CPoseOrPoint.h.

◆ y_incr()

void mrpt::poses::CPoseOrPoint< CPose3D >::y_incr ( const double  v)
inlineinherited
Parameters
vY+=v

Definition at line 152 of file CPoseOrPoint.h.

◆ yaw()

double mrpt::poses::CPose3D::yaw ( ) const
inline

Member Data Documentation

◆ _init_CPose3D

mrpt::utils::CLASSINIT mrpt::poses::CPose3D::_init_CPose3D
staticprotected

Definition at line 100 of file CPose3D.h.

◆ classCObject

const mrpt::utils::TRuntimeClassId mrpt::utils::CObject::classCObject
staticinherited

Definition at line 146 of file CObject.h.

◆ classCPose3D

mrpt::utils::TRuntimeClassId mrpt::poses::CPose3D::classCPose3D
static

Definition at line 100 of file CPose3D.h.

◆ classCSerializable

const mrpt::utils::TRuntimeClassId mrpt::utils::CSerializable::classCSerializable
staticinherited

Definition at line 61 of file CSerializable.h.

◆ classinfo

const mrpt::utils::TRuntimeClassId* mrpt::poses::CPose3D::classinfo
static

Definition at line 100 of file CPose3D.h.

◆ m_coords

CArrayDouble<3> mrpt::poses::CPose3D::m_coords

The translation vector [x,y,z] access directly or with x(), y(), z() setter/getter methods.

Definition at line 103 of file CPose3D.h.

Referenced by mrpt::slam::detail::project3DPointsFromDepthImageInto().

◆ m_pitch

double mrpt::poses::CPose3D::m_pitch
mutableprotected

Definition at line 108 of file CPose3D.h.

◆ m_roll

double mrpt::poses::CPose3D::m_roll
mutableprotected

These variables are updated every time that the object rotation matrix is modified (construction, loading from values, pose composition, etc )

Definition at line 108 of file CPose3D.h.

◆ m_ROT

CMatrixDouble33 mrpt::poses::CPose3D::m_ROT
protected

The 3x3 rotation matrix, access with getRotationMatrix(), setRotationMatrix() (It's not safe to set this field as public)

Definition at line 105 of file CPose3D.h.

◆ m_yaw

double mrpt::poses::CPose3D::m_yaw
mutableprotected

Definition at line 108 of file CPose3D.h.

◆ m_ypr_uptodate

bool mrpt::poses::CPose3D::m_ypr_uptodate
mutableprotected

Whether yaw/pitch/roll members are up-to-date since the last rotation matrix update.

Definition at line 107 of file CPose3D.h.




Page generated by Doxygen 1.8.14 for MRPT 1.0.2 SVN: at lun oct 28 00:52:41 CET 2019 Hosted on:
SourceForge.net Logo