smooth
A C++ library for Lie theory
|
Base class for Galielei Lie group types. More...
#include <galilei.hpp>
Public Member Functions | |
Map< SO3< Scalar > > | so3 () |
Access SO(3) part. | |
Map< const SO3< Scalar > > | so3 () const |
Const access SO(3) part. | |
Eigen::Map< Eigen::Vector3< Scalar > > | r3_v () |
Access R3 velocity part. | |
Eigen::Map< const Eigen::Vector3< Scalar > > | r3_v () const |
Const access R3 velocity part. | |
Eigen::Map< Eigen::Vector3< Scalar > > | r3_p () |
Access R3 position part. | |
Eigen::Map< const Eigen::Vector3< Scalar > > | r3_p () const |
Const access R3 position part. | |
Eigen::Map< Eigen::Vector< Scalar, 1 > > | r1_t () |
Access R1 time part. | |
Eigen::Map< const Eigen::Vector< Scalar, 1 > > | r1_t () const |
Const access R1 time part. | |
template<typename EigenDerived > | |
Eigen::Vector4< Scalar > | operator* (const Eigen::MatrixBase< EigenDerived > &v) const |
Tranformation action on (x, y, z, t) space-time vector. | |
template<typename EigenDerived > | |
Eigen::Matrix< Scalar, 4, 10 > | dr_action (const Eigen::MatrixBase< EigenDerived > &v) const |
Jacobian of rotation action w.r.t. group. | |
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 | |
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. | |
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. | |
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 Galielei Lie group types.
Internally represented as \(\mathbb{S}^3 \times \mathbb{R}^3 \times \mathbb{R}^3 \times \mathbb{R} \).
\[ \mathbf{X} = \begin{bmatrix} R & v & p \\ 0 & 1 & t \\ 0 & 0 & 1 \end{bmatrix} \in \mathbb{R}^{5 \times 5} \]
where \(R\) is a 3x3 rotation matrix.
\[ \mathbf{a}^\wedge = \begin{bmatrix} 0 & -\omega_z & \omega_y & b_x & t_x\\ \omega_z & 0 & -\omega_x & b_y & t_y\\ -\omega_y & \omega_x & 0 & b_y & t_y\\ 0 & 0 & 0 & 0 & s\\ 0 & 0 & 0 & 0 & 1\\ \end{bmatrix} \in \mathbb{R}^{5 \times 5} \]
Definition at line 63 of file galilei.hpp.
|
inline |
Jacobian of rotation action w.r.t. group.
\[ \mathrm{d}^r (X v)_X \]
Definition at line 160 of file galilei.hpp.
|
inline |
Tranformation action on (x, y, z, t) space-time vector.
(x, t) -> (R x + v t + p, t + tau)
Definition at line 144 of file galilei.hpp.
|
inline |
Access R1 time part.
Definition at line 124 of file galilei.hpp.
|
inline |
Const access R1 time part.
Definition at line 133 of file galilei.hpp.
|
inline |
Access R3 position part.
Definition at line 107 of file galilei.hpp.
|
inline |
Const access R3 position part.
Definition at line 116 of file galilei.hpp.
|
inline |
Access R3 velocity part.
Definition at line 90 of file galilei.hpp.
|
inline |
Const access R3 velocity part.
Definition at line 99 of file galilei.hpp.
Access SO(3) part.
Definition at line 76 of file galilei.hpp.
Const access SO(3) part.
Definition at line 85 of file galilei.hpp.
GalileiBase< _Derived >::SMOOTH_INHERIT_TYPEDEFS |
Definition at line 71 of file galilei.hpp.