Template Struct SE2Base

Inheritance Relationships

Base Type

Struct Documentation

template<typename _Derived>
struct SE2Base : public manif::LieGroupBase<_Derived>

The base class of the SE2 group.

Note

See Appendix C of the paper.

Public Types

using Rotation = typename internal::traits<_Derived>::Rotation
using Translation = typename internal::traits<_Derived>::Translation
using Transformation = typename internal::traits<_Derived>::Transformation
using Isometry = Eigen::Transform<Scalar, 2, Eigen::Isometry>

Public Functions

template<typename _EigenDerived>
Eigen::Matrix<typename SE2Base<_Derived>::Scalar, 2, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 3>>> J_vout_m, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 2>>> J_vout_v) const
DataType &coeffs()

Access the underlying data by const reference.

const DataType &coeffs() const

Access the underlying data by const reference.

Protected Functions

MANIF_DEFAULT_CONSTRUCTOR(SE2Base) public Tangent log (OptJacobianRef J_t_m={}) const

Get the inverse of this.

Get the SE2 corresponding Lie algebra element in vector form.

See also

SE2Tangent.

Note

See Eqs. (154, 160).

Note

This is the log() map in vector form.

Note

See Eqs. (157, 158).

Parameters:
  • -optional-[out] J_minv_m Jacobian of the inverse wrt this.

  • -optional-[out] J_t_m Jacobian of the tangent wrt to this.

Returns:

The SE2 tangent of this.

MANIF_DEPRECATED Tangent lift (OptJacobianRef J_t_m={}) const

This function is deprecated. Please considere using log instead.

template<typename _DerivedOther>
LieGroup compose(const LieGroupBase<_DerivedOther> &m, OptJacobianRef J_mc_ma = {}, OptJacobianRef J_mc_mb = {}) const

Composition of this and another SE2 element.

Note

See Eq. (155) & Eqs. (161,162).

Parameters:
  • m[in] Another SE2 element.

  • -optional-[out] J_mc_ma Jacobian of the composition wrt this.

  • -optional-[out] J_mc_mb Jacobian of the composition wrt m.

Returns:

The composition of ‘this . m’.

template<typename _EigenDerived>
Eigen::Matrix<Scalar, 2, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 3>>> J_vout_m = {}, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 2, 2>>> J_vout_v = {}) const

Rigid motion action on a 2D point.

Note

See Eq. (165) & Eqs. (166,167).

Parameters:
  • v – A 2D point.

  • -optional-[out] J_vout_m The Jacobian of the new object wrt this.

  • -optional-[out] J_vout_v The Jacobian of the new object wrt input object.

Returns:

The transformed 2D point.

Jacobian adj() const

Get the adjoint matrix of SE2 at this.

Note

See Eq. (159).

Transformation transform() const

Get the transformation matrix (2D isometry).

Note

T = | R t | | 0 1 |

Isometry isometry() const

Get the isometry object (Eigen 2D isometry).

Note

T = | R t | | 0 1 |

Rotation rotation() const

Get the rotational part of this as a rotation matrix.

Translation translation() const

Get the translational part of this as a vector.

Scalar real() const

Get the real part of the underlying complex number representing the rotational part.

Scalar imag() const

Get the imaginary part of the underlying complex number representing the rotational part.

Scalar angle() const

Get the angle (rad.) of the rotational part.

Scalar x() const

Get the x component of the translational part.

Scalar y() const

Get the y component of the translational part.

void normalize()

Normalize the underlying complex number.

inline _Derived &derived() & noexcept
inline const _Derived &derived() const & noexcept