A 3D pose, with a 3D translation and a rotation in 3D parameterized in rotation-vector form (equivalent to axis-angle).
The 6D transformation in SE(3) stored in this class is kept in two separate containers: a 3-array for the rotation vector, and a 3-array for the translation.
For a complete descriptionan of Points/Poses, see mrpt::poses::CPoseOrPoint, or refer to the 2D/3D Geometry tutorial online.
There are Lie algebra methods: exp and ln (see the methods for documentation).
Definition at line 41 of file CPose3DRotVec.h.
#include <mrpt/poses/CPose3DRotVec.h>
Public Types | |
enum | { is_3D_val = 1 } |
enum | { rotation_dimensions = 3 } |
enum | { is_PDF_val = 0 } |
typedef CPose3DRotVec | type_value |
Used to emulate CPosePDF types, for example, in mrpt::graphs::CNetworkOfPoses. More... | |
Public Member Functions | |
void * | operator new (size_t size) |
void * | operator new[] (size_t size) |
void | operator delete (void *ptr) throw () |
void | operator delete[] (void *ptr) throw () |
void | operator delete (void *memory, void *ptr) throw () |
void * | operator new (size_t size, const std::nothrow_t &) throw () |
void | operator delete (void *ptr, const std::nothrow_t &) throw () |
const type_value & | getPoseMean () const |
type_value & | getPoseMean () |
void | setToNaN () MRPT_OVERRIDE |
Set all data fields to quiet NaN. More... | |
virtual mxArray * | writeToMatlab () const |
Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More... | |
CObject * | clone () const |
Cloning interface for smart pointers. More... | |
Constructors | |
CPose3DRotVec () | |
Default constructor, with all the coordinates set to zero. More... | |
CPose3DRotVec (TConstructorFlags_Poses constructor_dummy_param) | |
Fast constructor that leaves all the data uninitialized - call with UNINITIALIZED_POSE as argument. More... | |
CPose3DRotVec (const double vx, const double vy, const double vz, const double x, const double y, const double z) | |
Constructor with initilization of the pose. More... | |
CPose3DRotVec (const mrpt::math::CArrayDouble< 6 > &v) | |
Constructor with initilization of the pose from a vector [w1 w2 w3 x y z]. More... | |
CPose3DRotVec (const CPose3DRotVec &o) | |
Copy constructor. More... | |
CPose3DRotVec (const math::CMatrixDouble44 &m) | |
Constructor from a 4x4 homogeneous matrix: More... | |
CPose3DRotVec (const CPose3D &m) | |
Constructor from a CPose3D object. More... | |
CPose3DRotVec (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... | |
CPose3DRotVec (const double *vec6) | |
Constructor from an array with these 6 elements: [w1 w2 w3 x y z] 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 (mrpt::math::CMatrixDouble44 &out_HM) const |
Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation). More... | |
mrpt::math::CMatrixDouble44 | getHomogeneousMatrixVal () const |
void | getRotationMatrix (mrpt::math::CMatrixDouble33 &ROT) const |
Get the 3x3 rotation matrix. More... | |
const mrpt::math::CMatrixDouble33 | getRotationMatrix () const |
Pose-pose and pose-point compositions and operators | |
CPose3DRotVec | operator+ (const CPose3DRotVec &b) const |
The operator is the pose compounding operator. More... | |
CPoint3D | operator+ (const CPoint3D &b) const |
The operator is the pose compounding operator. More... | |
CPoint3D | operator+ (const CPoint2D &b) const |
The operator is the pose compounding operator. More... | |
void | setFromTransformationMatrix (const mrpt::math::CMatrixDouble44 &m) |
void | setFromXYZAndAngles (const double x, const double y, const double z, const double yaw=0, const double pitch=0, const double roll=0) |
void | sphericalCoordinates (const mrpt::math::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) const |
An alternative, slightly more efficient way of doing with G and L being 3D points and P this 6D pose. More... | |
void | composePoint (const mrpt::math::TPoint3D local_point, mrpt::math::TPoint3D &global_point) const |
An alternative, slightly more efficient way of doing 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) const |
Computes the 3D point L such as . More... | |
void | composeFrom (const CPose3DRotVec &A, const CPose3DRotVec &B, mrpt::math::CMatrixFixedNumeric< double, 6, 6 > *out_jacobian_drvtC_drvtA=NULL, mrpt::math::CMatrixFixedNumeric< double, 6, 6 > *out_jacobian_drvtC_drvtB=NULL) |
Makes "this = A (+) B"; this method is slightly more efficient than "this= A + B;" since it avoids the temporary object. More... | |
void | toQuatXYZ (CPose3DQuat &q) const |
Convert this RVT into a quaternion + XYZ. More... | |
CPose3DRotVec & | operator+= (const CPose3DRotVec &b) |
Make (b can be "this" without problems) More... | |
CPose3DRotVec & | operator= (const CPose3DRotVec &o) |
Copy operator. More... | |
void | inverseComposeFrom (const CPose3DRotVec &A, const CPose3DRotVec &B) |
Makes this method is slightly more efficient than "this= A - B;" since it avoids the temporary object. More... | |
CPose3DRotVec | operator- (const CPose3DRotVec &b) const |
Compute . More... | |
void | inverse () |
Convert this pose into its inverse, saving the result in itself. More... | |
CPose3DRotVec | getInverse () const |
Compute the inverse of this pose and return the result. More... | |
void | changeCoordinatesReference (const CPose3DRotVec &p) |
makes: this = p (+) this More... | |
Access and modify contents | |
double | rx () const |
double | ry () const |
double | rz () const |
double & | rx () |
double & | ry () |
double & | rz () |
void | addComponents (const CPose3DRotVec &p) |
Scalar sum of all 6 components: This is diferent from poses composition, which is implemented as "+" operators. More... | |
void | operator*= (const double s) |
Scalar multiplication of x,y,z,vx,vy,vz. More... | |
mrpt::math::CArrayDouble< 3 > | rotVecFromRotMat (const math::CMatrixDouble44 &m) |
Create a vector with 3 components according to the input transformation matrix (only the rotation will be taken into account) More... | |
void | setFromValues (const double x0, const double y0, const double z0, const double vx, const double vy, const double vz) |
Set the pose from a 3D position (meters) and yaw/pitch/roll angles (radians) - This method recomputes the internal rotation matrix. More... | |
template<class ARRAYORVECTOR > | |
void | setFrom6Vector (const ARRAYORVECTOR &vec6) |
Set pose from an array with these 6 elements: [x y z vx vy vz] where v{xyz} is the rotation vector and {xyz} the 3D translation of the pose. More... | |
template<class ARRAYORVECTOR > | |
void | getAs6Vector (ARRAYORVECTOR &vec6) const |
Gets pose as an array with these 6 elements: [x y z vx vy vz] where v{xyz} is the rotation vector and {xyz} the 3D translation of the pose The target vector MUST ALREADY have space for 6 elements (i.e. More... | |
template<class ARRAYORVECTOR > | |
void | getAsVector (ARRAYORVECTOR &v) const |
Like getAs6Vector() but for dynamic size vectors (required by base class CPoseOrPoint) More... | |
const double & | operator[] (unsigned int i) const |
double & | operator[] (unsigned int i) |
void | asString (std::string &s) const |
Returns a human-readable textual representation of the object: "[x y z rx ry rz]". 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... | |
RTTI classes and functions | |
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... | |
Static Public Member Functions | |
static void * | operator new (size_t size, void *ptr) |
static bool | is_3D () |
static bool | is_PDF () |
Public Attributes | |
mrpt::math::CArrayDouble< 3 > | m_coords |
The translation vector [x,y,z]. More... | |
mrpt::math::CArrayDouble< 3 > | m_rotvec |
The rotation vector [vx,vy,vz]. More... | |
Static Public Attributes | |
static const mrpt::utils::TRuntimeClassId | classCObject |
RTTI stuff | |
static const mrpt::utils::TRuntimeClassId | classCSerializable |
Protected Member Functions | |
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... | |
RTTI stuff | |
typedef CPose3DRotVecPtr | Ptr |
typedef CPose3DRotVecPtr | ConstPtr |
static mrpt::utils::CLASSINIT | _init_CPose3DRotVec |
static mrpt::utils::TRuntimeClassId | classCPose3DRotVec |
static const mrpt::utils::TRuntimeClassId * | classinfo |
static const mrpt::utils::TRuntimeClassId * | _GetBaseClass () |
virtual const mrpt::utils::TRuntimeClassId * | GetRuntimeClass () const |
Returns information about the class of an object in runtime. More... | |
virtual mrpt::utils::CObject * | duplicate () const |
Returns a copy of the object, indepently of its class. More... | |
static mrpt::utils::CObject * | CreateObject () |
static CPose3DRotVecPtr | 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< 3 > | ln_rotation () const |
Take the logarithm of the 3x3 rotation matrix part of this pose, generating the corresponding vector in the Lie Algebra. More... | |
static CPose3DRotVec | exp (const mrpt::math::CArrayDouble< 6 > &vect) |
Exponentiate a Vector in the SE(3) Lie Algebra to generate a new CPose3DRotVec (static method). 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: . More... | |
mrpt::math::CVectorDouble | getAsVectorVal () const |
Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation) More... | |
void | getInverseHomogeneousMatrix (mrpt::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... | |
typedef const double& mrpt::poses::CPose3DRotVec::const_reference |
Definition at line 394 of file CPose3DRotVec.h.
typedef CPose3DRotVecPtr mrpt::poses::CPose3DRotVec::ConstPtr |
Definition at line 44 of file CPose3DRotVec.h.
Definition at line 396 of file CPose3DRotVec.h.
typedef CPose3DRotVecPtr mrpt::poses::CPose3DRotVec::Ptr |
A typedef for the associated smart pointer
Definition at line 44 of file CPose3DRotVec.h.
typedef double& mrpt::poses::CPose3DRotVec::reference |
Definition at line 393 of file CPose3DRotVec.h.
typedef std::size_t mrpt::poses::CPose3DRotVec::size_type |
Definition at line 395 of file CPose3DRotVec.h.
Used to emulate CPosePDF types, for example, in mrpt::graphs::CNetworkOfPoses.
Definition at line 378 of file CPose3DRotVec.h.
typedef double mrpt::poses::CPose3DRotVec::value_type |
The type of the elements.
Definition at line 392 of file CPose3DRotVec.h.
anonymous enum |
Enumerator | |
---|---|
is_3D_val |
Definition at line 379 of file CPose3DRotVec.h.
anonymous enum |
Enumerator | |
---|---|
rotation_dimensions |
Definition at line 381 of file CPose3DRotVec.h.
anonymous enum |
Enumerator | |
---|---|
is_PDF_val |
Definition at line 382 of file CPose3DRotVec.h.
anonymous enum |
Enumerator | |
---|---|
static_size |
Definition at line 400 of file CPose3DRotVec.h.
|
inline |
Default constructor, with all the coordinates set to zero.
Definition at line 54 of file CPose3DRotVec.h.
|
inline |
Fast constructor that leaves all the data uninitialized - call with UNINITIALIZED_POSE as argument.
Definition at line 60 of file CPose3DRotVec.h.
References MRPT_UNUSED_PARAM.
|
inline |
Constructor with initilization of the pose.
Definition at line 65 of file CPose3DRotVec.h.
|
inline |
Constructor with initilization of the pose from a vector [w1 w2 w3 x y z].
Definition at line 71 of file CPose3DRotVec.h.
|
inline |
|
explicit |
Constructor from a 4x4 homogeneous matrix:
Definition at line 35 of file CPose3DRotVec.cpp.
|
explicit |
Constructor from a CPose3D object.
Definition at line 44 of file CPose3DRotVec.cpp.
References mrpt::poses::CPose3D::getHomogeneousMatrix(), R, mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::x(), and mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::y().
CPose3DRotVec::CPose3DRotVec | ( | 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.
Definition at line 55 of file CPose3DRotVec.cpp.
|
inlineexplicit |
Constructor from an array with these 6 elements: [w1 w2 w3 x y z] where r{ij} are the entries of the 3x3 rotation matrix and t{x,y,z} are the 3D translation of the pose.
Definition at line 96 of file CPose3DRotVec.h.
|
staticprotected |
|
inline |
Scalar sum of all 6 components: This is diferent from poses composition, which is implemented as "+" operators.
Definition at line 257 of file CPose3DRotVec.h.
|
inline |
Returns a human-readable textual representation of the object: "[x y z rx ry rz]".
Definition at line 346 of file CPose3DRotVec.h.
References mrpt::mrpt::format().
|
inline |
|
inline |
makes: this = p (+) this
Definition at line 240 of file CPose3DRotVec.h.
|
inlineinherited |
void CPose3DRotVec::composeFrom | ( | const CPose3DRotVec & | A, |
const CPose3DRotVec & | B, | ||
mrpt::math::CMatrixFixedNumeric< double, 6, 6 > * | out_jacobian_drvtC_drvtA = NULL , |
||
mrpt::math::CMatrixFixedNumeric< double, 6, 6 > * | out_jacobian_drvtC_drvtB = NULL |
||
) |
Makes "this = A (+) B"; this method is slightly more efficient than "this= A + B;" since it avoids the temporary object.
Definition at line 293 of file CPose3DRotVec.cpp.
References mrpt::obs::gnss::a1, mrpt::obs::gnss::a2, getRotationMatrix(), mrpt::poses::CPose3D::ln_rotation(), m_coords, mrpt::poses::CPose3DQuat::m_quat, m_rotvec, MRPT_ALIGN16, mrpt::poses::CPose3D::setRotationMatrix(), mrpt::math::skew_symmetric3(), mrpt::math::skew_symmetric3_neg(), toQuatXYZ(), and mrpt::poses::UNINITIALIZED_POSE.
Referenced by operator+().
void CPose3DRotVec::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 |
||
) | const |
An alternative, slightly more efficient way of doing with G and L being 3D points and P this 6D pose.
If pointers are provided, the corresponding Jacobians are returned. See this report for mathematical details.
Definition at line 166 of file CPose3DRotVec.cpp.
References MRPT_TODO, and THROW_EXCEPTION.
Referenced by inverseComposePoint().
|
inline |
An alternative, slightly more efficient way of doing with G and L being 3D points and P this 6D pose.
Definition at line 178 of file CPose3DRotVec.h.
References mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
|
static |
|
static |
|
inlineinherited |
Returns the 2D distance from this pose/point to a 2D point (ignores Z, if it exists).
Definition at line 165 of file CPoseOrPoint.h.
|
inlineinherited |
Returns the squared 2D distance from this pose/point to a 2D point (ignores Z, if it exists).
Definition at line 156 of file CPoseOrPoint.h.
|
inlineinherited |
Returns the 3D distance from this pose/point to a 3D point.
Definition at line 168 of file CPoseOrPoint.h.
|
inlineinherited |
Returns the squared 3D distance from this pose/point to a 3D point.
Definition at line 159 of file CPoseOrPoint.h.
|
inlineinherited |
Returns the Euclidean distance to another pose/point:
Definition at line 150 of file CPoseOrPoint.h.
|
inlineinherited |
Returns the euclidean distance to a 3D point:
Definition at line 171 of file CPoseOrPoint.h.
|
virtual |
Returns a copy of the object, indepently of its class.
Implements mrpt::utils::CObject.
|
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 162 of file CObject.h.
References mrpt::utils::CObjectPtr.
Referenced by mrpt::obs::CRawlog::addActions(), mrpt::slam::CIncrementalMapPartitioner::addMapFrame(), and mrpt::obs::CRawlog::addObservations().
|
inlinestatic |
Definition at line 402 of file CPose3DRotVec.h.
|
static |
Exponentiate a Vector in the SE(3) Lie Algebra to generate a new CPose3DRotVec (static method).
Exponentiate a Vector in the SE3 Lie Algebra to generate a new CPose3DRotVec.
Definition at line 536 of file CPose3DRotVec.cpp.
|
inline |
Set the current object value from a string generated by 'asString' (eg: "[x y z yaw pitch roll]", angles in deg.
)
std::exception | On invalid format |
Definition at line 353 of file CPose3DRotVec.h.
References ASSERTMSG_, mrpt::mrpt::math::size(), and THROW_EXCEPTION.
|
inline |
Gets pose as an array with these 6 elements: [x y z vx vy vz] where v{xyz} is the rotation vector and {xyz} the 3D translation of the pose The target vector MUST ALREADY have space for 6 elements (i.e.
no .resize() method will be called).
Definition at line 304 of file CPose3DRotVec.h.
|
inline |
Like getAs6Vector() but for dynamic size vectors (required by base class CPoseOrPoint)
Definition at line 312 of file CPose3DRotVec.h.
|
inlineinherited |
Return the pose or point as a 1xN vector with all the components (see derived classes for each implementation)
Definition at line 181 of file CPoseOrPoint.h.
|
inline |
Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).
Definition at line 110 of file CPose3DRotVec.h.
Referenced by inverseComposeFrom().
|
inline |
Definition at line 118 of file CPose3DRotVec.h.
Referenced by Pose3DRotVecTests::test_compose().
CPose3DRotVec CPose3DRotVec::getInverse | ( | ) | const |
Compute the inverse of this pose and return the result.
Definition at line 482 of file CPose3DRotVec.cpp.
References setFromTransformationMatrix(), mrpt::math::UNINITIALIZED_MATRIX, and mrpt::poses::UNINITIALIZED_POSE.
|
inlineinherited |
Returns the corresponding 4x4 inverse homogeneous transformation matrix for this point or pose.
Definition at line 201 of file CPoseOrPoint.h.
|
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 208 of file CPoseOrPoint.h.
|
inline |
Definition at line 385 of file CPose3DRotVec.h.
|
inline |
Definition at line 386 of file CPose3DRotVec.h.
void CPose3DRotVec::getRotationMatrix | ( | mrpt::math::CMatrixDouble33 & | ROT | ) | const |
Get the 3x3 rotation matrix.
Definition at line 129 of file CPose3DRotVec.cpp.
References mrpt::poses::CPose3D::exp_rotation().
Referenced by composeFrom().
|
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 123 of file CPose3DRotVec.h.
References getRotationMatrix(), and mrpt::math::UNINITIALIZED_MATRIX.
Referenced by getRotationMatrix().
|
virtual |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::utils::CSerializable.
void CPose3DRotVec::inverse | ( | ) |
Convert this pose into its inverse, saving the result in itself.
Definition at line 474 of file CPose3DRotVec.cpp.
References mrpt::math::UNINITIALIZED_MATRIX.
void CPose3DRotVec::inverseComposeFrom | ( | const CPose3DRotVec & | A, |
const CPose3DRotVec & | B | ||
) |
Makes this method is slightly more efficient than "this= A - B;" since it avoids the temporary object.
Definition at line 496 of file CPose3DRotVec.cpp.
References getHomogeneousMatrix(), mrpt::poses::CPoseOrPoint< DERIVEDCLASS >::getInverseHomogeneousMatrix(), and mrpt::math::UNINITIALIZED_MATRIX.
Referenced by operator-().
void CPose3DRotVec::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 |
||
) | const |
Computes the 3D point L such as .
If pointers are provided, the corresponding Jacobians are returned. See this report for mathematical details.
Definition at line 524 of file CPose3DRotVec.cpp.
References composePoint(), MRPT_TODO, and MRPT_UNUSED_PARAM.
|
inlinestaticinherited |
Return true for poses or points with a Z component, false otherwise.
Definition at line 127 of file CPoseOrPoint.h.
|
inlinestatic |
Definition at line 380 of file CPose3DRotVec.h.
|
inlinestatic |
Definition at line 383 of file CPose3DRotVec.h.
void CPose3DRotVec::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.
Take the logarithm of the 3x4 matrix defined by this pose, generating the corresponding vector in the SE3 Lie Algebra.
Definition at line 551 of file CPose3DRotVec.cpp.
CArrayDouble< 3 > CPose3DRotVec::ln_rotation | ( | ) | const |
Take the logarithm of the 3x3 rotation matrix part of this pose, generating the corresponding vector in the Lie Algebra.
Take the logarithm of the 3x3 rotation matrix, generating the corresponding vector in the Lie Algebra.
Definition at line 543 of file CPose3DRotVec.cpp.
|
inlinestatic |
Definition at line 403 of file CPose3DRotVec.h.
References static_size.
|
inlineinherited |
Returns the euclidean norm of vector: .
Definition at line 174 of file CPoseOrPoint.h.
Definition at line 44 of file CPose3DRotVec.h.
Definition at line 44 of file CPose3DRotVec.h.
|
inline |
Definition at line 44 of file CPose3DRotVec.h.
Definition at line 44 of file CPose3DRotVec.h.
Definition at line 44 of file CPose3DRotVec.h.
|
inline |
Definition at line 44 of file CPose3DRotVec.h.
|
inline |
Definition at line 44 of file CPose3DRotVec.h.
|
inline |
Definition at line 44 of file CPose3DRotVec.h.
|
inline |
Scalar multiplication of x,y,z,vx,vy,vz.
Definition at line 263 of file CPose3DRotVec.h.
|
inline |
The operator is the pose compounding operator.
Definition at line 132 of file CPose3DRotVec.h.
References composeFrom(), and mrpt::poses::UNINITIALIZED_POSE.
The operator is the pose compounding operator.
Definition at line 220 of file CPose3DRotVec.cpp.
References mrpt::poses::CPoint3D::m_coords.
The operator is the pose compounding operator.
Definition at line 235 of file CPose3DRotVec.cpp.
References mrpt::poses::CPoint3D::m_coords.
|
inline |
Make (b can be "this" without problems)
Definition at line 205 of file CPose3DRotVec.h.
|
inline |
Compute .
Definition at line 226 of file CPose3DRotVec.h.
References inverseComposeFrom(), and mrpt::poses::UNINITIALIZED_POSE.
|
inline |
|
inline |
Definition at line 314 of file CPose3DRotVec.h.
|
inline |
Definition at line 328 of file CPose3DRotVec.h.
|
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.
in | The input binary stream where the object data must read from. |
version | The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. |
std::exception | On any error, see CStream::ReadBuffer |
Implements mrpt::utils::CSerializable.
Definition at line 84 of file CPose3DRotVec.cpp.
References MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION, and version.
|
inlinestatic |
Definition at line 404 of file CPose3DRotVec.h.
References mrpt::format(), and static_size.
CArrayDouble< 3 > CPose3DRotVec::rotVecFromRotMat | ( | const math::CMatrixDouble44 & | m | ) |
Create a vector with 3 components according to the input transformation matrix (only the rotation will be taken into account)
Definition at line 106 of file CPose3DRotVec.cpp.
References mrpt::poses::CPose3D::ln_rotation().
|
inline |
Definition at line 248 of file CPose3DRotVec.h.
|
inline |
Definition at line 252 of file CPose3DRotVec.h.
|
inline |
Definition at line 249 of file CPose3DRotVec.h.
|
inline |
Definition at line 253 of file CPose3DRotVec.h.
|
inline |
Definition at line 250 of file CPose3DRotVec.h.
|
inline |
Definition at line 254 of file CPose3DRotVec.h.
|
inline |
Set pose from an array with these 6 elements: [x y z vx vy vz] where v{xyz} is the rotation vector and {xyz} the 3D translation of the pose.
Definition at line 292 of file CPose3DRotVec.h.
|
inline |
Definition at line 145 of file CPose3DRotVec.h.
Referenced by getInverse().
|
inline |
Set the pose from a 3D position (meters) and yaw/pitch/roll angles (radians) - This method recomputes the internal rotation matrix.
Definition at line 275 of file CPose3DRotVec.h.
void CPose3DRotVec::setFromXYZAndAngles | ( | const double | x, |
const double | y, | ||
const double | z, | ||
const double | yaw = 0 , |
||
const double | pitch = 0 , |
||
const double | roll = 0 |
||
) |
Definition at line 97 of file CPose3DRotVec.cpp.
References mrpt::poses::CPose3D::ln_rotation(), mrpt::poses::CPose3D::m_coords, mrpt::obs::gnss::pitch, and mrpt::obs::gnss::roll.
Referenced by Pose3DRotVecTests::test_compose().
|
virtual |
Set all data fields to quiet NaN.
Implements mrpt::poses::CPoseOrPoint< CPose3DRotVec >.
Definition at line 557 of file CPose3DRotVec.cpp.
|
inlinestatic |
Definition at line 401 of file CPose3DRotVec.h.
References static_size.
void CPose3DRotVec::sphericalCoordinates | ( | const mrpt::math::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 mrpt::poses::CPose3D
Definition at line 139 of file CPose3DRotVec.cpp.
References local, mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
|
inlineinherited |
Returns the squared euclidean distance to another pose/point:
Definition at line 130 of file CPoseOrPoint.h.
void CPose3DRotVec::toQuatXYZ | ( | CPose3DQuat & | q | ) | const |
Convert this RVT into a quaternion + XYZ.
Definition at line 250 of file CPose3DRotVec.cpp.
Referenced by composeFrom().
|
inlinevirtualinherited |
Introduces a pure virtual method responsible for writing to a mxArray
Matlab object, typically a MATLAB struct
whose contents are documented in each derived class.
mxArray
(caller is responsible of memory freeing) or NULL is class does not support conversion to MATLAB. Definition at line 79 of file CSerializable.h.
|
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.
out | The output binary stream where object must be dumped. |
getVersion | If 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. |
std::exception | On any error, see CStream::WriteBuffer |
Implements mrpt::utils::CSerializable.
Definition at line 70 of file CPose3DRotVec.cpp.
References version.
|
inlineinherited |
Common members of all points & poses classes.
< Get X coord.
Definition at line 113 of file CPoseOrPoint.h.
|
inlineinherited |
Definition at line 116 of file CPoseOrPoint.h.
|
inlineinherited |
v | Set X coord. |
Definition at line 119 of file CPoseOrPoint.h.
|
inlineinherited |
v | X+=v |
Definition at line 122 of file CPoseOrPoint.h.
|
inlineinherited |
< Get Y coord.
Definition at line 114 of file CPoseOrPoint.h.
|
inlineinherited |
Definition at line 117 of file CPoseOrPoint.h.
|
inlineinherited |
v | Set Y coord. |
Definition at line 120 of file CPoseOrPoint.h.
|
inlineinherited |
v | Y+=v |
Definition at line 123 of file CPoseOrPoint.h.
|
staticprotected |
Definition at line 44 of file CPose3DRotVec.h.
|
staticinherited |
|
static |
Definition at line 44 of file CPose3DRotVec.h.
|
staticinherited |
Definition at line 42 of file CSerializable.h.
|
static |
Definition at line 44 of file CPose3DRotVec.h.
mrpt::math::CArrayDouble<3> mrpt::poses::CPose3DRotVec::m_coords |
The translation vector [x,y,z].
Definition at line 47 of file CPose3DRotVec.h.
Referenced by composeFrom(), CPose3DRotVec(), mrpt::poses::operator!=(), operator=(), and mrpt::poses::operator==().
mrpt::math::CArrayDouble<3> mrpt::poses::CPose3DRotVec::m_rotvec |
The rotation vector [vx,vy,vz].
Definition at line 48 of file CPose3DRotVec.h.
Referenced by composeFrom(), mrpt::poses::CPose3D::CPose3D(), CPose3DRotVec(), mrpt::poses::operator!=(), operator=(), and mrpt::poses::operator==().
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |