9 #ifndef MRPT_SE3_TRAITS_H 10 #define MRPT_SE3_TRAITS_H 32 enum { VECTOR_SIZE = 6 };
50 static void pseudo_ln(
const CPose3D &P, array_t &
x);
57 static void jacobian_dP1DP2inv_depsilon(
60 matrix_VxV_t *df_de2);
68 static void jacobian_dDinvP1invP2_depsilon(
70 matrix_VxV_t* df_de1, matrix_VxV_t* df_de2);
77 enum { VECTOR_SIZE = 3 };
103 static void jacobian_dP1DP2inv_depsilon(
105 matrix_VxV_t *df_de1,
106 matrix_VxV_t *df_de2);
114 static void jacobian_dDinvP1invP2_depsilon(
116 matrix_VxV_t* df_de1, matrix_VxV_t* df_de2);
static void exp(const array_t &x, CPose3D &P)
Exponential map in SE(3), with XYZ different from the first three values of "x".
double x() const
Common members of all points & poses classes.
mrpt::math::CMatrixFixedNumeric< double, VECTOR_SIZE, VECTOR_SIZE > matrix_VxV_t
mrpt::math::CArrayDouble< VECTOR_SIZE > array_t
static void ln(const CPose2D &P, array_t &x)
Logarithm map in SE(2)
static void ln(const CPose3D &P, array_t &x)
Logarithm map in SE(3)
mrpt::math::CMatrixFixedNumeric< double, VECTOR_SIZE, VECTOR_SIZE > matrix_VxV_t
A numeric matrix of compile-time fixed size.
static void exp(const array_t &x, CPose2D &P)
Exponential map in SE(2)
mrpt::math::TPoint2D point_t
mrpt::math::CArrayDouble< VECTOR_SIZE > array_t
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
struct BASE_IMPEXP SE_traits
A helper class for SE(2) and SE(3) geometry-related transformations, on-manifold optimization Jacobia...
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
const double & phi() const
Get the phi angle of the 2D pose (in radians)
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).
static void pseudo_exp(const array_t &x, CPose3D &P)
Pseudo-Exponential map in SE(3), with XYZ copied from the first three values of "x".
A partial specialization of CArrayNumeric for double numbers.
mrpt::math::TPose3D lightweight_pose_t
static void pseudo_ln(const CPose2D &P, array_t &x)
A pseudo-Logarithm map in SE(2), where the output = [X,Y, Ln(ROT)], that is, the normal SO(2) logarit...
static void pseudo_exp(const array_t &x, CPose2D &P)
Pseudo-Exponential map in SE(2), in this case identical to exp()
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...
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).
mrpt::math::TPoint3D point_t
mrpt::math::TPose2D lightweight_pose_t