template struct mrpt::poses::Lie::SO<2>


Traits for SO(2), rotations in R^2 space.

#include <mrpt/poses/Lie/SO.h>

template <>
struct SO<2>
    // typedefs

    typedef mrpt::math::CVectorFixedDouble<DOFs> tangent_vector;
    typedef double type;
    typedef mrpt::math::CMatrixFixed<double, 1, 1> tang2mat_jacob;
    typedef mrpt::math::CMatrixFixed<double, 1, 1> mat2tang_jacob;

    // fields

    static constexpr static size_t DOFs = 1;

    // methods

    static type exp(const tangent_vector& x);
    static tangent_vector log(const type& R);
    static tang2mat_jacob jacob_dexpe_de(const tangent_vector& x);
    static mat2tang_jacob jacob_dlogv_dv(const type& R);


typedef mrpt::math::CMatrixFixed<double, 1, 1> tang2mat_jacob

Type for Jacobian: tangent space to SO(n) matrix.

typedef mrpt::math::CMatrixFixed<double, 1, 1> mat2tang_jacob

Type for Jacobian: SO(n) matrix to tangent space.


static type exp(const tangent_vector& x)

SO(2) exponential map \(x \rightarrow \exp(x^\wedge)\).

  • Input: 1-len vector in Lie algebra so(3)

  • Output: angle for the rotation (radians)

static tangent_vector log(const type& R)

SO(2) logarithm map \(\mathbf{R} \rightarrow \log(\mathbf{R}^\vee)\).

  • Input: rotation angle [radians]

  • Output: 1-len vector in Lie algebra so(2) (with the same value)

static tang2mat_jacob jacob_dexpe_de(const tangent_vector& x)

Jacobian for exp(), the identity matrix [ 1 ]

static mat2tang_jacob jacob_dlogv_dv(const type& R)

Jacobian for log(), the identity matrix [ 1 ]