9 #ifndef MRPT_SE3_TRAITS_H 10 #define MRPT_SE3_TRAITS_H 33 constexpr
static size_t VECTOR_SIZE = 6;
61 static void pseudo_ln(
const CPose3D& P, array_t&
x);
72 static void jacobian_dP1DP2inv_depsilon(
73 const CPose3D& P1DP2inv, matrix_VxV_t* df_de1, matrix_VxV_t* df_de2);
84 static void jacobian_dDinvP1invP2_depsilon(
86 matrix_VxV_t* df_de1, matrix_VxV_t* df_de2);
94 constexpr
static size_t VECTOR_SIZE = 3;
135 static void jacobian_dP1DP2inv_depsilon(
136 const CPose2D& P1DP2inv, matrix_VxV_t* df_de1, matrix_VxV_t* df_de2);
147 static void jacobian_dDinvP1invP2_depsilon(
149 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.
CArrayNumeric is an array for numeric types supporting several mathematical operations (actually...
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)
A numeric matrix of compile-time fixed size.
static void exp(const array_t &x, CPose2D &P)
Exponential map in SE(2)
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
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)
A helper class for SE(2) and SE(3) geometry-related transformations, on-manifold optimization Jacobia...
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".
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).