Template Struct SGal3Base

Inheritance Relationships

Base Type

Struct Documentation

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

The base class of the SGal3 group.

Note

See “All About the Galilean Group SGal(3)” J. Kelly. https://arxiv.org/abs/2312.07555

Public Types

using Rotation = typename internal::traits<_Derived>::Rotation
using Translation = typename internal::traits<_Derived>::Translation
using LinearVelocity = typename internal::traits<_Derived>::LinearVelocity
using Time = Scalar
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 SGal3Base<_Derived>::Scalar, 3, 1> act(const Eigen::MatrixBase<_EigenDerived> &p, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 10>>> J_pout_m, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 3>>> J_pout_p) 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(SGal3Base) public Tangent log (OptJacobianRef J_t_m={}) const

Get the inverse.

Get the SGal3 corresponding Lie algebra element in vector form.

See also

SGal3Tangent.

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

Parameters:
  • m[in] Another SGal3 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> &p, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 10>>> J_pout_m = {}, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 3>>> J_pout_p = {}) const

Get the action.

Parameters:
  • p[in] A 3D point.

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

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

Jacobian adj() const

Get the adjoint matrix of SGal3 at this.

Transformation transform() const

Get the isometry object (double direct isometry).

Note

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

Isometry isometry() const

Get the isometry object (double direct isometry).

Note

T = | R v t| | 1 s| | 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.

Scalar t() const

Get the time.

void normalize()

Normalize the underlying quaternion.

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