|
smooth
A C++ library for Lie theory
|
Base class for SE_k(3) Lie group types. More...
#include <se_k_3.hpp>

Public Member Functions | |
| Map< SO3< Scalar > > | so3 () |
| Access SO(3) part. | |
| Map< const SO3< Scalar > > | so3 () const |
| Const access SO(3) part. | |
| template<int Ksel> requires (is_mutable && Ksel < K) | |
| Eigen::Map< Eigen::Vector3< Scalar > > | r3 () |
| Access R3 parts. | |
| Eigen::Map< Eigen::Vector3< Scalar > > | r3 (int k) |
| Access R3 parts. | |
| template<int Ksel> requires (Ksel < K) | |
| Eigen::Map< const Eigen::Vector3< Scalar > > | r3 () const |
| Const access R3 parts. | |
| Eigen::Map< const Eigen::Vector3< Scalar > > | r3 (int k) const |
| Const access R3 parts. | |
Public Member Functions inherited from LieGroupBase< _Derived > | |
| auto & | coeffs () const |
| Access underlying storages. | |
| const auto & | coeffs () const |
| Const access underlying storages. | |
| auto * | data () const |
| Access raw pointer. | |
| const auto * | data () const |
| Const access raw pointer. | |
| _Derived & | operator= (const LieGroupBase< OtherDerived > &o) noexcept |
| Eigen::Index | dof () const noexcept |
| Dynamic size (degrees of freedom). | |
| void | setIdentity () noexcept |
| Set to group identity element. | |
| void | setRandom () noexcept |
| Set to a random element. | |
| Matrix | matrix () const noexcept |
| Return as matrix Lie group element in \( \mathbb{R}^{\mathtt{dim} \times \mathtt{dim}}
\). | |
| bool | isApprox (const LieGroupBase< OtherDerived > &o, const Scalar &eps=Eigen::NumTraits< Scalar >::dummy_precision()) const noexcept |
Check if (approximately) equal to other element o. | |
| CastT< NewScalar > | cast () const noexcept |
| Cast to different scalar type. | |
| PlainObject | operator* (const LieGroupBase< OtherDerived > &o) const noexcept |
| Group binary composition operation. | |
| _Derived & | operator*= (const LieGroupBase< OtherDerived > &o) noexcept |
| Inplace group binary composition operation. | |
| PlainObject | inverse () const noexcept |
| Group inverse operation. | |
| Tangent | log () const noexcept |
| Lie group logarithm. | |
| TangentMap | Ad () const noexcept |
| Lie group adjoint. | |
| PlainObject | operator+ (const Eigen::MatrixBase< TangentDerived > &a) const noexcept |
| Right-plus. | |
| _Derived & | operator+= (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Inplace right-plus: \( \mathbf{x} \leftarrow \mathbf{x} \circ \exp(\mathbf{a}) \). | |
| Tangent | operator- (const LieGroupBase< OtherDerived > &xo) const noexcept |
| Right-minus. | |
Public Attributes | |
| SMOOTH_INHERIT_TYPEDEFS | |
Static Public Attributes | |
| static constexpr auto | K = Impl::K |
| Number of R3 variables. | |
Static Public Attributes inherited from LieGroupBase< _Derived > | |
| static constexpr int | RepSize |
| Number of scalars in internal representation. | |
| static constexpr int | Dof |
| Degrees of freedom of manifold (equal to tangent space dimension). | |
| static constexpr int | Dim |
| Side of Lie group matrix representation. | |
| static constexpr bool | IsCommutative |
| Commutativity of group. A commutative group has a zero Lie bracket. | |
Additional Inherited Members | |
Public Types inherited from LieGroupBase< _Derived > | |
| using | Scalar = typename traits::Scalar |
| Scalar type. | |
| using | Matrix = Eigen::Matrix< Scalar, Dim, Dim > |
| Lie group matrix type. | |
| using | Tangent = Eigen::Matrix< Scalar, Dof, 1 > |
| Lie group parameterized tangent type. | |
| using | TangentMap = Eigen::Matrix< Scalar, Dof, Dof > |
| Matrix representing map between tangent elements. | |
| using | Hessian = Eigen::Matrix< Scalar, Dof, Dof *Dof > |
| Plain return type with different scalar. | |
| using | CastT = typename traits::template PlainObject< NewScalar > |
| Plain return type with different scalar. | |
| using | PlainObject = CastT< Scalar > |
| Plain return type. | |
Static Public Member Functions inherited from LieGroupBase< _Derived > | |
| static PlainObject | Identity () noexcept |
| Construct the identity element. | |
| static PlainObject | Random () noexcept |
| Construct a random element. | |
| static PlainObject | exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Lie group exponential map. | |
| static Matrix | hat (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Lie algebra hat map. | |
| static Tangent | vee (const Eigen::MatrixBase< MatrixDerived > &A) noexcept |
| Lie alebra vee map. | |
| static TangentMap | ad (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Lie algebra adjoint. | |
| static Tangent | lie_bracket (const Eigen::MatrixBase< TangentDerived1 > &a, const Eigen::MatrixBase< TangentDerived2 > &b) noexcept |
| Lie algebra bracket. | |
| static TangentMap | dr_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Right jacobian of the exponential map. | |
| static TangentMap | dr_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Inverse of right jacobian of the exponential map. | |
| static TangentMap | dl_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Left jacobian of the exponential map. | |
| static TangentMap | dl_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Inverse of left jacobian of the exponential map. | |
| static Hessian | d2r_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Right Hessian of the exponential map. | |
| static Hessian | d2r_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Right Hessian of the log map. | |
| static Hessian | d2l_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Left Hessian of the exponential map. | |
| static Hessian | d2l_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept |
| Left Hessian of the log map. | |
Protected Types inherited from LieGroupBase< _Derived > | |
| using | traits = liebase_info< _Derived > |
| CRTP traits. | |
| using | Impl = typename traits::Impl |
| Group-specific Lie group implementation. | |
Static Protected Attributes inherited from LieGroupBase< _Derived > | |
| static constexpr bool | is_mutable |
| True if underlying storage supports modification. | |
Base class for SE_k(3) Lie group types.
Internally represented as \(\mathbb{S}^3 \times (\mathbb{R}^3)^k\).
\[ \mathbf{X} = \begin{bmatrix} R & P_1 & ... & P_k \\ 0 & 1 & ... & 0 \\ \vdots 0 & 0 & ... & 1 \\ \end{bmatrix} \in \mathbb{R}^{3+k \times 3+k} \]
where \(R\) is a 3x3 rotation matrix and \( P_k = [x_k, y_k, z_k]^T \).
\[ \mathbf{a}^\wedge = \begin{bmatrix} 0 & -\omega_z & \omega_y & u_1 & ... & u_k \\ \omega_z & 0 & -\omega_x & v_1 & ... & v_k \\ -\omega_y & \omega_x & 0 & w_1 & ... & w_k \\ 0 & 0 & 0 & 0 & ... & 0 \\ \vdots 0 & 0 & 0 & 0 & ... & 0 \\ \end{bmatrix} \in \mathbb{R}^{3+k \times 3+k} \]
Definition at line 65 of file se_k_3.hpp.
|
inline |
|
inline |
Const access R3 parts.
| Ksel | select part |
Definition at line 128 of file se_k_3.hpp.
|
inline |
|
inline |
Access SO(3) part.
Definition at line 84 of file se_k_3.hpp.
Const access SO(3) part.
Definition at line 93 of file se_k_3.hpp.
Number of R3 variables.
Definition at line 79 of file se_k_3.hpp.
| SE_K_3Base< _Derived >::SMOOTH_INHERIT_TYPEDEFS |
Definition at line 74 of file se_k_3.hpp.