Template Struct SE3Base

Inheritance Relationships

Base Type

Struct Documentation

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

The base class of the SE3 group.

Note

See Appendix D 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, 3, Eigen::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 SE3Base<_Derived>::Scalar, 3, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 6>>> 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(SE3Base) public Tangent log (OptJacobianRef J_t_m={}) const

Get the inverse.

Get the SE3 corresponding Lie algebra element in vector form.

See also

SE3Tangent.

Note

See Eqs. (170,176).

Note

This is the log() map in vector form.

Note

See Eq. (173) & Eq. (79,179,180) and following notes.

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

Note

See Eq. (171) and Eqs. (177,178).

Parameters:
  • m[in] Another SE3 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, 6>>> J_vout_m = {}, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 3>>> J_vout_v = {}) const

Rigid motion action on a 3D point.

Note

See Eq. (181) & Eqs. (182,183).

Parameters:
  • v – 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.

Returns:

The transformed 3D point.

Jacobian adj() const

Get the adjoint matrix of SE3 at this.

Note

See Eq. (175).

Transformation transform() const

Get the transformation matrix (3D isometry).

Note

T = | R t | | 0 1 |

Isometry isometry() const

Get the isometry object (Eigen 3D isometry).

Note

T = | R t | | 0 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.

void normalize()

Normalize the underlying quaternion.

void quat(const QuaternionDataType &quaternion)

Set the rotational as a quaternion.

Parameters:

quaternion – a unitary quaternion

template<typename _EigenDerived>
void quat(const Eigen::MatrixBase<_EigenDerived> &quaternion)

Set the rotational as a quaternion.

Parameters:

quaternion – an Eigen::Vector representing a unitary quaternion

void quat(const SO3<Scalar> &so3)

Set the rotational as a so3 object.

Parameters:

so3 – a manif::SO3 object

void translation(const Translation &translation)

Set the translation of the SE3 object.

Parameters:

translation, 3d-vector – representing the translation

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