A class used to store a 2D pose.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle.
For a complete description of Points/Poses, see mrpt::poses::CPoseOrPoint, or refer to the 2D/3D Geometry tutorial in the wiki.
#include <mrpt/poses/CPose2D.h>
Public Types | |
enum | { is_3D_val = 0 } |
enum | { rotation_dimensions = 2 } |
enum | { is_PDF_val = 0 } |
typedef CPose2D | type_value |
Used to emulate CPosePDF types, for example, in CNetworkOfPoses. | |
Public Member Functions | |
CPose2D () | |
Default constructor (all coordinates to 0) | |
CPose2D (const double x, const double y, const double phi) | |
Constructor from an initial value of the pose. | |
CPose2D (const CPoint2D &) | |
Constructor from a CPoint2D object. | |
CPose2D (const CPose3D &) | |
Aproximation!! Avoid its use, since information is lost. | |
CPose2D (const mrpt::math::TPose2D &) | |
Constructor from lightweight object. | |
CPose2D (const CPoint3D &) | |
Constructor from CPoint3D with information loss. | |
CPose2D (TConstructorFlags_Poses constructor_dummy_param) | |
Fast constructor that leaves all the data uninitialized - call with UNINITIALIZED_POSE as argument. | |
const double & | phi () const |
Get the phi angle of the 2D pose (in radians) | |
double & | phi () |
void | phi (double angle) |
Set the phi angle of the 2D pose (in radians) | |
void | phi_incr (const double Aphi) |
Increment the PHI angle (without checking the 2 PI range, call normalizePhi is needed) | |
void | getAsVector (vector_double &v) const |
Returns a 1x3 vector with [x y phi]. | |
void | getHomogeneousMatrix (CMatrixDouble44 &out_HM) const |
Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation). | |
CPose2D | operator+ (const CPose2D &D) const |
The operator ![]() | |
void | composeFrom (const CPose2D &A, const CPose2D &B) |
Makes ![]() | |
CPose3D | operator+ (const CPose3D &D) const |
The operator ![]() | |
CPoint2D | operator+ (const CPoint2D &u) const |
The operator ![]() | |
void | composePoint (double lx, double ly, double &gx, double &gy) const |
An alternative, slightly more efficient way of doing ![]() | |
CPoint3D | operator+ (const CPoint3D &u) const |
The operator ![]() | |
void | inverseComposeFrom (const CPose2D &A, const CPose2D &B) |
Makes ![]() | |
CPose2D | operator- (const CPose2D &b) const |
Compute ![]() | |
void | AddComponents (CPose2D &p) |
Scalar sum of components: This is diferent from poses composition, which is implemented as "+" operators in "CPose" derived classes. | |
void | operator*= (const double s) |
Scalar multiplication. | |
CPose2D & | operator+= (const CPose2D &b) |
Make ![]() | |
void | normalizePhi () |
Forces "phi" to be in the range [-pi,pi];. | |
void | asString (std::string &s) const |
Returns a human-readable textual representation of the object (eg: "[x y yaw]", yaw in degrees) | |
std::string | asString () const |
void | fromString (const std::string &s) |
Set the current object value from a string generated by 'asString' (eg: "[0.02 1.04 -0.8]" ) | |
const double & | operator[] (unsigned int i) const |
double & | operator[] (unsigned int i) |
void | changeCoordinatesReference (const CPose2D &p) |
makes: this = p (+) this | |
Static Public Member Functions | |
static bool | is_3D () |
static bool | is_PDF () |
Public Attributes | |
mrpt::math::CArrayDouble< 2 > | m_coords |
[x,y] | |
Protected Attributes | |
double | m_phi |
The orientation of the pose, in radians. | |
RTTI stuff | |
typedef CPose2DPtr | SmartPtr |
static mrpt::utils::CLASSINIT | _init_CPose2D |
static mrpt::utils::TRuntimeClassId | classCPose2D |
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. | |
virtual mrpt::utils::CObject * | duplicate () const |
Returns a copy of the object, indepently of its class. | |
static mrpt::utils::CObject * | CreateObject () |
static CPose2DPtr | Create () |
STL-like methods and typedefs | |
enum | { static_size = 3 } |
typedef double | value_type |
The type of the elements. | |
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) |
typedef const double& mrpt::poses::CPose2D::const_reference |
typedef std::ptrdiff_t mrpt::poses::CPose2D::difference_type |
typedef double& mrpt::poses::CPose2D::reference |
typedef std::size_t mrpt::poses::CPose2D::size_type |
Used to emulate CPosePDF types, for example, in CNetworkOfPoses.
typedef double mrpt::poses::CPose2D::value_type |
mrpt::poses::CPose2D::CPose2D | ( | ) |
Default constructor (all coordinates to 0)
mrpt::poses::CPose2D::CPose2D | ( | const double | x, |
const double | y, | ||
const double | phi | ||
) |
Constructor from an initial value of the pose.
mrpt::poses::CPose2D::CPose2D | ( | const CPose3D & | ) | [explicit] |
Aproximation!! Avoid its use, since information is lost.
mrpt::poses::CPose2D::CPose2D | ( | const mrpt::math::TPose2D & | ) |
Constructor from lightweight object.
mrpt::poses::CPose2D::CPose2D | ( | const CPoint3D & | ) | [explicit] |
Constructor from CPoint3D with information loss.
mrpt::poses::CPose2D::CPose2D | ( | TConstructorFlags_Poses | constructor_dummy_param | ) | [inline] |
static const mrpt::utils::TRuntimeClassId* mrpt::poses::CPose2D::_GetBaseClass | ( | ) | [static, protected] |
Reimplemented from mrpt::utils::CSerializable.
void mrpt::poses::CPose2D::AddComponents | ( | CPose2D & | p | ) |
Scalar sum of components: This is diferent from poses composition, which is implemented as "+" operators in "CPose" derived classes.
void mrpt::poses::CPose2D::asString | ( | std::string & | s | ) | const [inline] |
Returns a human-readable textual representation of the object (eg: "[x y yaw]", yaw in degrees)
Definition at line 165 of file CPose2D.h.
References mrpt::format(), mrpt::utils::RAD2DEG(), and internal::y.
std::string mrpt::poses::CPose2D::asString | ( | ) | const [inline] |
void mrpt::poses::CPose2D::changeCoordinatesReference | ( | const CPose2D & | p | ) | [inline] |
Makes .
void mrpt::poses::CPose2D::composePoint | ( | double | lx, |
double | ly, | ||
double & | gx, | ||
double & | gy | ||
) | const |
An alternative, slightly more efficient way of doing with G and L being 2D points and P this 2D pose.
static CPose2DPtr mrpt::poses::CPose2D::Create | ( | ) | [static] |
static mrpt::utils::CObject* mrpt::poses::CPose2D::CreateObject | ( | ) | [static] |
virtual mrpt::utils::CObject* mrpt::poses::CPose2D::duplicate | ( | ) | const [virtual] |
Returns a copy of the object, indepently of its class.
Implements mrpt::utils::CObject.
static bool mrpt::poses::CPose2D::empty | ( | ) | [inline, static] |
void mrpt::poses::CPose2D::fromString | ( | const std::string & | s | ) | [inline] |
Set the current object value from a string generated by 'asString' (eg: "[0.02 1.04 -0.8]" )
std::exception | On invalid format |
Definition at line 172 of file CPose2D.h.
References ASSERTMSG_, mrpt::utils::DEG2RAD(), mrpt::math::size(), THROW_EXCEPTION, and internal::y.
void mrpt::poses::CPose2D::getAsVector | ( | vector_double & | v | ) | const |
Returns a 1x3 vector with [x y phi].
void mrpt::poses::CPose2D::getHomogeneousMatrix | ( | CMatrixDouble44 & | out_HM | ) | const |
Returns the corresponding 4x4 homogeneous transformation matrix for the point(translation) or pose (translation+orientation).
virtual const mrpt::utils::TRuntimeClassId* mrpt::poses::CPose2D::GetRuntimeClass | ( | ) | const [virtual] |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::utils::CSerializable.
Makes this method is slightly more efficient than "this= A - B;" since it avoids the temporary object.
Referenced by operator-().
static bool mrpt::poses::CPose2D::is_3D | ( | ) | [inline, static] |
static bool mrpt::poses::CPose2D::is_PDF | ( | ) | [inline, static] |
static size_type mrpt::poses::CPose2D::max_size | ( | ) | [inline, static] |
Definition at line 226 of file CPose2D.h.
References static_size.
void mrpt::poses::CPose2D::normalizePhi | ( | ) |
Forces "phi" to be in the range [-pi,pi];.
void mrpt::poses::CPose2D::operator*= | ( | const double | s | ) |
Scalar multiplication.
The operator is the pose/point compounding operator.
The operator is the pose/point compounding operator.
The operator is the pose compounding operator.
The operator is the pose compounding operator.
Compute .
Definition at line 135 of file CPose2D.h.
References inverseComposeFrom(), and mrpt::poses::UNINITIALIZED_POSE.
double& mrpt::poses::CPose2D::operator[] | ( | unsigned int | i | ) | [inline] |
const double& mrpt::poses::CPose2D::operator[] | ( | unsigned int | i | ) | const [inline] |
void mrpt::poses::CPose2D::phi | ( | double | angle | ) | [inline] |
const double& mrpt::poses::CPose2D::phi | ( | ) | const [inline] |
Get the phi angle of the 2D pose (in radians)
Definition at line 87 of file CPose2D.h.
Referenced by mrpt::poses::SE_traits< 2 >::exp(), mrpt::poses::CRobot2DPoseEstimator::getLatestRobotPose(), and mrpt::poses::SE_traits< 2 >::ln().
double& mrpt::poses::CPose2D::phi | ( | ) | [inline] |
void mrpt::poses::CPose2D::phi_incr | ( | const double | Aphi | ) | [inline] |
static void mrpt::poses::CPose2D::resize | ( | const size_t | n | ) | [inline, static] |
Definition at line 227 of file CPose2D.h.
References mrpt::format(), and static_size.
static size_type mrpt::poses::CPose2D::size | ( | ) | [inline, static] |
Definition at line 224 of file CPose2D.h.
References static_size.
mrpt::utils::CLASSINIT mrpt::poses::CPose2D::_init_CPose2D [static, protected] |
const mrpt::utils::TRuntimeClassId* mrpt::poses::CPose2D::classinfo [static] |
double mrpt::poses::CPose2D::m_phi [protected] |
Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN: at Sat Mar 26 06:16:28 UTC 2011 |