Template Struct SE3Base¶
Defined in File SE3_base.h
Inheritance Relationships¶
Base Type¶
public manif::LieGroupBase< _Derived >
(Template Struct LieGroupBase)
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 Isometry = Eigen::Transform<Scalar, 3, Eigen::Isometry>¶
-
using QuaternionDataType = Eigen::Quaternion<Scalar>¶
Public Functions
-
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
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.
-
Transformation transform() const¶
Get the transformation matrix (3D isometry).
Note
T = | R t | | 0 1 |
-
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
-
using Isometry = Eigen::Transform<Scalar, 3, Eigen::Isometry>¶