Template Struct SE_2_3Base

Inheritance Relationships

Base Type

Struct Documentation

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

The base class of the SE_2_3 group.

Note

See Appendix A2 in the paper “The Invariant Extended Kalman filter as a stable

observer”. However, note that the serialization used in that paper is different from that defined below The paper uses a

SE_2_3 definition as, X = |R v p| | 1 | | 1| with a vector space serialization as (w, a, v) Instead, here we define the SE_2_3 to be, X = |R p v| | 1 | | 1| with a vector space serialization as (v, w, a)

Public Types

using Rotation = typename internal::traits<_Derived>::Rotation
using Translation = typename internal::traits<_Derived>::Translation
using LinearVelocity = typename internal::traits<_Derived>::LinearVelocity
using Transformation = Eigen::Matrix<Scalar, 5, 5>
using Isometry = Eigen::Matrix<Scalar, 5, 5>

Double direct spatial isometry

using QuaternionDataType = Eigen::Quaternion<Scalar>

Public Functions

inline Eigen::Map<const SO3<Scalar>> asSO3() const
inline Eigen::Map<SO3<Scalar>> asSO3()
template<typename _EigenDerived>
Eigen::Matrix<typename SE_2_3Base<_Derived>::Scalar, 3, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 9>>> J_vout_m, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 3>>> 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(SE_2_3Base) public Tangent log (OptJacobianRef J_t_m={}) const

Get the inverse.

Get the SE_2_3 corresponding Lie algebra element in vector form.

See also

SE_2_3Tangent.

Note

This is the log() map in vector form.

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 SE_2_3 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 SE_2_3 element.

Parameters:
  • m[in] Another SE_2_3 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, 3, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 9>>> J_vout_m = {}, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 3>>> J_vout_v = {}) const

Get the action of the underlying SE(3) element on a 3d point.

Note

this method by default returns a rigid motion action on 3d points and does not take into account the embedded linear velocity of total SE_2(3) element

Parameters:
  • v[in] A 3D 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.

Jacobian adj() const

Get the adjoint matrix of SE_2_3 at this.

Transformation transform() const

Get the isometry object (double direct isometry).

Note

T = | R t v| | 1 | | 1|

Isometry isometry() const

Get the isometry object (double direct isometry).

Note

T = | R t v| | 1 | | 1|

Rotation rotation() const

Get the rotational part of this as a rotation matrix.

QuaternionDataType quat() const

Get the rotational part of this as a quaternion.

Translation translation() const

Get the translational part in vector form.

Scalar x() const

Get the x component of the translational part.

Scalar y() const

Get the y component of translational part.

Scalar z() const

Get the z component of translational part.

LinearVelocity linearVelocity() const

Get the linear velocity part in vector form.

Scalar vx() const

Get the x component of the linear velocity part.

Scalar vy() const

Get the y component of linear velocity part.

Scalar vz() const

Get the z component of linear velocity part.

void normalize()

Normalize the underlying quaternion.

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