namespace mrpt::poses

Classes for 2D/3D geometry representation, both of single values and probability density distributions (PDFs) in many forms.

namespace poses {

// namespaces

namespace mrpt::poses::Lie;
namespace mrpt::poses::detail;
namespace mrpt::poses::internal;

// typedefs

typedef mrpt::bayes::CParticleFilterData<mrpt::math::TPose3D, mrpt::bayes::particle_storage_mode::VALUE> PFDataTPose3D;
typedef mrpt::bayes::CParticleFilterData<mrpt::math::TPose2D, mrpt::bayes::particle_storage_mode::VALUE> PFDataTPose2D;
typedef std::map<std::string, mrpt::poses::CPose3D> SensorToPoseMap;

// enums

enum FrameLookUpStatus;
enum TConstructorFlags_Poses;
enum TInterpolatorMethod;

// classes

template <class DERIVEDCLASS, std::size_t DIM>
class CPoint;

class CPoint2D;
class CPoint2DPDF;
class CPoint2DPDFGaussian;
class CPoint3D;
class CPointPDF;
class CPointPDFGaussian;
class CPointPDFParticles;
class CPointPDFSOG;

template <class DERIVEDCLASS, std::size_t DIM>
class CPose;

class CPose2D;

template <class T>
class CPose2DGridTemplate;

class CPose2DInterpolator;
class CPose3D;

template <class T>
class CPose3DGridTemplate;

class CPose3DInterpolator;
class CPose3DPDF;
class CPose3DPDFGaussian;
class CPose3DPDFGaussianInf;
class CPose3DPDFGrid;
class CPose3DPDFParticles;
class CPose3DPDFSOG;
class CPose3DQuat;
class CPose3DQuatPDF;
class CPose3DQuatPDFGaussian;
class CPose3DQuatPDFGaussianInf;

template <int DIM>
class CPoseInterpolatorBase;

template <class DERIVEDCLASS, std::size_t DIM>
class CPoseOrPoint;

class CPosePDF;
class CPosePDFGaussian;
class CPosePDFGaussianInf;
class CPosePDFGrid;
class CPosePDFParticles;
class CPosePDFSOG;
class CPoseRandomSampler;
class CPoses2DSequence;
class CPoses3DSequence;
class CRobot2DPoseEstimator;

template <int DIM>
class FrameTransformer;

template <int DIM>
class FrameTransformerInterface;

template <>
class SE_average<3>;

template <>
class SE_average<2>;

template <size_t DOF>
class SE_average;

template <size_t DOF>
class SO_average;

template <>
class SO_average<2>;

template <>
class SO_average<3>;

// global functions

template <class DERIVEDCLASS, std::size_t DIM>
bool operator < (
    const CPoint<DERIVEDCLASS, DIM>& a,
    const CPoint<DERIVEDCLASS, DIM>& b
    );

template <class DERIVEDCLASS, std::size_t DIM>
bool operator == (
    const CPoint<DERIVEDCLASS, DIM>& p1,
    const CPoint<DERIVEDCLASS, DIM>& p2
    );

template <class DERIVEDCLASS, std::size_t DIM>
bool operator != (
    const CPoint<DERIVEDCLASS, DIM>& p1,
    const CPoint<DERIVEDCLASS, DIM>& p2
    );

std::ostream& operator << (std::ostream& o, const CPoint2D& p);
std::ostream& operator << (std::ostream& o, const CPoint3D& p);
std::ostream& operator << (std::ostream& o, const CPose2D& p);
CPose2D operator - (const CPose2D& p);
mrpt::math::TPoint2D operator + (const CPose2D& pose, const mrpt::math::TPoint2D& pnt);

bool operator == (
    const CPose2D& p1,
    const CPose2D& p2
    );

bool operator != (
    const CPose2D& p1,
    const CPose2D& p2
    );

std::ostream& operator << (std::ostream& o, const CPose3D& p);
CPose3D operator - (const CPose3D& p);

bool operator == (
    const CPose3D& p1,
    const CPose3D& p2
    );

bool operator != (
    const CPose3D& p1,
    const CPose3D& p2
    );

CPose3DPDFGaussian operator + (const CPose3DPDFGaussian& x, const CPose3DPDFGaussian& u);
CPose3DPDFGaussian operator - (const CPose3DPDFGaussian& x, const CPose3DPDFGaussian& u);
std::ostream& operator << (std::ostream& out, const CPose3DPDFGaussian& obj);

bool operator == (
    const CPose3DPDFGaussian& p1,
    const CPose3DPDFGaussian& p2
    );

bool operator == (
    const CPose3DPDFGaussianInf& p1,
    const CPose3DPDFGaussianInf& p2
    );

CPose3DPDFGaussianInf operator + (const CPose3DPDFGaussianInf& x, const CPose3DPDFGaussianInf& u);
CPose3DPDFGaussianInf operator - (const CPose3DPDFGaussianInf& x, const CPose3DPDFGaussianInf& u);
std::ostream& operator << (std::ostream& out, const CPose3DPDFGaussianInf& obj);
std::ostream& operator << (std::ostream& o, const CPose3DQuat& p);
CPose3DQuat operator - (const CPose3DQuat& p);
CPoint3D operator - (const CPoint3D& G, const CPose3DQuat& p);
mrpt::math::TPoint3D operator - (const mrpt::math::TPoint3D& G, const CPose3DQuat& p);

bool operator == (
    const CPose3DQuat& p1,
    const CPose3DQuat& p2
    );

bool operator != (
    const CPose3DQuat& p1,
    const CPose3DQuat& p2
    );

bool operator == (
    const CPose3DQuatPDFGaussian& p1,
    const CPose3DQuatPDFGaussian& p2
    );

CPose3DQuatPDFGaussian operator + (const CPose3DQuatPDFGaussian& x, const CPose3DQuatPDFGaussian& u);
CPose3DQuatPDFGaussian operator - (const CPose3DQuatPDFGaussian& x, const CPose3DQuatPDFGaussian& u);
std::ostream& operator << (std::ostream& out, const CPose3DQuatPDFGaussian& obj);

bool operator == (
    const CPose3DQuatPDFGaussianInf& p1,
    const CPose3DQuatPDFGaussianInf& p2
    );

CPose3DQuatPDFGaussianInf operator + (const CPose3DQuatPDFGaussianInf& x, const CPose3DQuatPDFGaussianInf& u);
CPose3DQuatPDFGaussianInf operator - (const CPose3DQuatPDFGaussianInf& x, const CPose3DQuatPDFGaussianInf& u);
std::ostream& operator << (std::ostream& out, const CPose3DQuatPDFGaussianInf& obj);
CPosePDFGaussian operator + (const CPosePDFGaussian& a, const CPosePDFGaussian& b);
CPosePDFGaussian operator - (const CPosePDFGaussian& a, const CPosePDFGaussian& b);
std::ostream& operator << (std::ostream& out, const CPosePDFGaussian& obj);
poses::CPosePDFGaussian operator + (const mrpt::poses::CPose2D& A, const mrpt::poses::CPosePDFGaussian& B);

bool operator == (
    const CPosePDFGaussian& p1,
    const CPosePDFGaussian& p2
    );

bool operator == (
    const CPosePDFGaussianInf& p1,
    const CPosePDFGaussianInf& p2
    );

CPosePDFGaussianInf operator + (const CPosePDFGaussianInf& a, const CPosePDFGaussianInf& b);
CPosePDFGaussianInf operator - (const CPosePDFGaussianInf& a, const CPosePDFGaussianInf& b);
poses::CPosePDFGaussianInf operator + (const mrpt::poses::CPose2D& A, const mrpt::poses::CPosePDFGaussianInf& B);
std::ostream& operator << (std::ostream& out, const CPosePDFGaussianInf& obj);
void registerAllClasses_mrpt_poses();
SensorToPoseMap sensor_poses_from_yaml(const mrpt::containers::yaml& d, const std::string& referenceFrame = "base_link");
SensorToPoseMap sensor_poses_from_yaml_file(const std::string& filename, const std::string& referenceFrame = "base_link");

} // namespace poses

Global Functions

template <class DERIVEDCLASS, std::size_t DIM>
bool operator < (
    const CPoint<DERIVEDCLASS, DIM>& a,
    const CPoint<DERIVEDCLASS, DIM>& b
    )

Used by STL algorithms.

std::ostream& operator << (std::ostream& o, const CPoint2D& p)

Dumps a point as a string (x,y)

std::ostream& operator << (std::ostream& o, const CPoint3D& p)

Dumps a point as a string (x,y,z)

std::ostream& operator << (std::ostream& o, const CPose2D& p)

Textual output stream function.

CPose2D operator - (const CPose2D& p)

Unary - operator: return the inverse pose “-p” (Note that is NOT the same than a pose with negative x y phi)

See also:

CPose2D::inverse()

mrpt::math::TPoint2D operator + (const CPose2D& pose, const mrpt::math::TPoint2D& pnt)

Compose a 2D point from a new coordinate base given by a 2D pose.

std::ostream& operator << (std::ostream& o, const CPose3D& p)

Textual output stream function.

CPose3D operator - (const CPose3D& p)

Unary - operator: return the inverse pose “-p” (Note that is NOT the same than a pose with negative x y z yaw pitch roll)

CPose3DPDFGaussian operator + (const CPose3DPDFGaussian& x, const CPose3DPDFGaussian& u)

Pose composition for two 3D pose Gaussians.

See also:

CPose3DPDFGaussian::operator +=

CPose3DPDFGaussian operator - (const CPose3DPDFGaussian& x, const CPose3DPDFGaussian& u)

Pose composition for two 3D pose Gaussians.

See also:

CPose3DPDFGaussian::operator -=

std::ostream& operator << (std::ostream& out, const CPose3DPDFGaussian& obj)

Dumps the mean and covariance matrix to a text stream.

CPose3DPDFGaussianInf operator + (const CPose3DPDFGaussianInf& x, const CPose3DPDFGaussianInf& u)

Pose composition for two 3D pose Gaussians.

See also:

CPose3DPDFGaussian::operator +=

CPose3DPDFGaussianInf operator - (const CPose3DPDFGaussianInf& x, const CPose3DPDFGaussianInf& u)

Pose composition for two 3D pose Gaussians.

See also:

CPose3DPDFGaussianInf::operator -=

std::ostream& operator << (std::ostream& out, const CPose3DPDFGaussianInf& obj)

Dumps the mean and covariance matrix to a text stream.

std::ostream& operator << (std::ostream& o, const CPose3DQuat& p)

Textual output stream function.

CPose3DQuat operator - (const CPose3DQuat& p)

Unary - operator: return the inverse pose “-p” (Note that is NOT the same than a pose with all its arguments multiplied by “-1”)

CPoint3D operator - (const CPoint3D& G, const CPose3DQuat& p)

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

See also:

inverseComposePoint

mrpt::math::TPoint3D operator - (const mrpt::math::TPoint3D& G, const CPose3DQuat& p)

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

See also:

inverseComposePoint

CPose3DQuatPDFGaussian operator + (const CPose3DQuatPDFGaussian& x, const CPose3DQuatPDFGaussian& u)

Pose composition for two 3D pose Gaussians.

See also:

CPose3DQuatPDFGaussian::operator +=

CPose3DQuatPDFGaussian operator - (const CPose3DQuatPDFGaussian& x, const CPose3DQuatPDFGaussian& u)

Inverse pose composition for two 3D pose Gaussians.

See also:

CPose3DQuatPDFGaussian::operator -=

std::ostream& operator << (std::ostream& out, const CPose3DQuatPDFGaussian& obj)

Dumps the mean and covariance matrix to a text stream.

CPose3DQuatPDFGaussianInf operator + (const CPose3DQuatPDFGaussianInf& x, const CPose3DQuatPDFGaussianInf& u)

Pose composition for two 3D pose Gaussians.

See also:

CPose3DQuatPDFGaussianInf::operator +=

CPose3DQuatPDFGaussianInf operator - (const CPose3DQuatPDFGaussianInf& x, const CPose3DQuatPDFGaussianInf& u)

Inverse pose composition for two 3D pose Gaussians.

See also:

CPose3DQuatPDFGaussianInf::operator -=

std::ostream& operator << (std::ostream& out, const CPose3DQuatPDFGaussianInf& obj)

Dumps the mean and covariance matrix to a text stream.

CPosePDFGaussian operator + (const CPosePDFGaussian& a, const CPosePDFGaussian& b)

Pose compose operator: RES = A (+) B , computing both the mean and the covariance.

CPosePDFGaussian operator - (const CPosePDFGaussian& a, const CPosePDFGaussian& b)

Pose inverse compose operator: RES = A (-) B , computing both the mean and the covariance.

std::ostream& operator << (std::ostream& out, const CPosePDFGaussian& obj)

Dumps the mean and covariance matrix to a text stream.

poses::CPosePDFGaussian operator + (const mrpt::poses::CPose2D& A, const mrpt::poses::CPosePDFGaussian& B)

Returns the Gaussian distribution of \(\mathbf{C}\), for \(\mathbf{C} = \mathbf{A} \oplus \mathbf{B}\).

CPosePDFGaussianInf operator + (const CPosePDFGaussianInf& a, const CPosePDFGaussianInf& b)

Pose compose operator: RES = A (+) B , computing both the mean and the covariance.

CPosePDFGaussianInf operator - (const CPosePDFGaussianInf& a, const CPosePDFGaussianInf& b)

Pose inverse compose operator: RES = A (-) B , computing both the mean and the covariance.

poses::CPosePDFGaussianInf operator + (const mrpt::poses::CPose2D& A, const mrpt::poses::CPosePDFGaussianInf& B)

Returns the Gaussian distribution of \(\mathbf{C}\), for \(\mathbf{C} = \mathbf{A} \oplus \mathbf{B}\).

std::ostream& operator << (std::ostream& out, const CPosePDFGaussianInf& obj)

Dumps the mean and covariance matrix to a text stream.