Template Struct SE_2_3Base¶
Defined in File SE_2_3_base.h
Inheritance Relationships¶
Base Type¶
public manif::LieGroupBase< _Derived >
(Template Struct LieGroupBase)
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 Transformation = Eigen::Matrix<Scalar, 5, 5>¶
-
using Isometry = Eigen::Matrix<Scalar, 5, 5>¶
Double direct spatial isometry
-
using QuaternionDataType = Eigen::Quaternion<Scalar>¶
Public Functions
-
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
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.
-
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|
-
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.
-
using Transformation = Eigen::Matrix<Scalar, 5, 5>¶