Template Struct SO3Base¶
Defined in File SO3_base.h
Inheritance Relationships¶
Base Type¶
public manif::LieGroupBase< _Derived >
(Template Struct LieGroupBase)
Struct Documentation¶
-
template<typename _Derived>
struct SO3Base : public manif::LieGroupBase<_Derived>¶ The base class of the SO3 group.
Note
See Appendix B of the paper.
Public Types
-
using QuaternionDataType = Eigen::Quaternion<Scalar>¶
Public Functions
-
template<typename _EigenDerived>
Eigen::Matrix<typename SO3Base<_Derived>::Scalar, 3, 1> act(const Eigen::MatrixBase<_EigenDerived> &v, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 3>>> 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(SO3Base) public Tangent log (OptJacobianRef J_t_m={}) const
Get the inverse of this.
Get the SO3 corresponding Lie algebra element in vector form.
See also
Note
q^-1 = q*. See Eq. (140).
Note
This is the log() map in vector form.
Note
See Eq. (133) & Eq. (144).
- 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 SO3 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 SO3 element.
Note
Quaternion product.
Note
See Eqs. (141,142).
- Parameters:
m – [in] Another SO3 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, 3>>> J_vout_m = {}, tl::optional<Eigen::Ref<Eigen::Matrix<Scalar, 3, 3>>> J_vout_v = {}) const¶ Rotation action on a 3-vector.
Note
See Eq (136), Eqs. (150,151)
- Parameters:
v – A 2-vector.
-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 rotated 3-vector.
-
Transformation transform() const¶
Get the transformation matrix (3D isometry).
Note
T = | R 0 | | 0 1 |
-
Scalar x() const¶
Get the x component of the quaternion.
-
Scalar y() const¶
Get the y component of the quaternion.
-
Scalar z() const¶
Get the z component of the quaternion.
-
Scalar w() const¶
Get the w component of the quaternion.
-
QuaternionDataType quat() const¶
Get quaternion.
-
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
-
using QuaternionDataType = Eigen::Quaternion<Scalar>¶