smooth
A C++ library for Lie theory
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SE3< _Scalar > Class Template Reference

Storage implementation of SE3 Lie group. More...

#include <se3.hpp>

Inheritance diagram for SE3< _Scalar >:
Inheritance graph
[legend]

Public Member Functions

template<typename SO3Derived , typename T3Derived >
 SE3 (const SO3Base< SO3Derived > &so3, const Eigen::MatrixBase< T3Derived > &r3)
 Construct from SO3 and translation.
 
 SE3 (const Eigen::Transform< Scalar, 3, Eigen::Isometry > &t)
 Construct from Eigen transform.
 
- Public Member Functions inherited from SE3Base< SE3< _Scalar > >
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 ()
 Access R3 part.
 
Eigen::Map< const Eigen::Vector3< Scalar > > r3 () const
 Const access R3 part.
 
Eigen::Transform< Scalar, 3, Eigen::Isometry > isometry () const
 Return as 3D Eigen transform.
 
Eigen::Vector3< Scalaroperator* (const Eigen::MatrixBase< EigenDerived > &v) const
 Tranformation action on 3D vector.
 
Eigen::Matrix< Scalar, 3, 6 > dr_action (const Eigen::MatrixBase< EigenDerived > &v) const
 Jacobian of rotation action w.r.t. group.
 
SE2< Scalarproject_se2 () const
 Project to SE2.
 
- Public Member Functions inherited from LieGroupBase< Derived >
template<bool = true>
requires (is_mutable)
autocoeffs () const
 Access underlying storages.
 
const autocoeffs () const
 Const access underlying storages.
 
template<bool = true>
requires (is_mutable)
autodata () const
 Access raw pointer.
 
const autodata () const
 Const access raw pointer.
 
template<typename OtherDerived >
requires (is_mutable && std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
Derivedoperator= (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}} \).
 
template<typename OtherDerived >
requires (std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
bool isApprox (const LieGroupBase< OtherDerived > &o, const Scalar &eps=Eigen::NumTraits< Scalar >::dummy_precision()) const noexcept
 Check if (approximately) equal to other element o.
 
template<typename NewScalar >
CastT< NewScalarcast () const noexcept
 Cast to different scalar type.
 
template<typename OtherDerived >
requires (std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
PlainObject operator* (const LieGroupBase< OtherDerived > &o) const noexcept
 Group binary composition operation.
 
template<typename OtherDerived >
requires (is_mutable && std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
Derivedoperator*= (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.
 
template<typename TangentDerived >
PlainObject operator+ (const Eigen::MatrixBase< TangentDerived > &a) const noexcept
 Right-plus.
 
template<typename TangentDerived >
requires (is_mutable)
Derivedoperator+= (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Inplace right-plus: \( \mathbf{x} \leftarrow \mathbf{x} \circ \exp(\mathbf{a}) \).
 
template<typename OtherDerived >
requires (std::is_same_v<Impl, typename liebase_info<OtherDerived>::Impl>)
Tangent operator- (const LieGroupBase< OtherDerived > &xo) const noexcept
 Right-minus.
 

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.
 
template<typename NewScalar >
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.
 
template<typename TangentDerived >
static PlainObject exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Lie group exponential map.
 
template<typename TangentDerived >
static Matrix hat (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Lie algebra hat map.
 
template<typename MatrixDerived >
static Tangent vee (const Eigen::MatrixBase< MatrixDerived > &A) noexcept
 Lie alebra vee map.
 
template<typename TangentDerived >
static TangentMap ad (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Lie algebra adjoint.
 
template<typename TangentDerived1 , typename TangentDerived2 >
static Tangent lie_bracket (const Eigen::MatrixBase< TangentDerived1 > &a, const Eigen::MatrixBase< TangentDerived2 > &b) noexcept
 Lie algebra bracket.
 
template<typename TangentDerived >
static TangentMap dr_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Right jacobian of the exponential map.
 
template<typename TangentDerived >
static TangentMap dr_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Inverse of right jacobian of the exponential map.
 
template<typename TangentDerived >
static TangentMap dl_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Left jacobian of the exponential map.
 
template<typename TangentDerived >
static TangentMap dl_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Inverse of left jacobian of the exponential map.
 
template<typename TangentDerived >
static Hessian d2r_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Right Hessian of the exponential map.
 
template<typename TangentDerived >
static Hessian d2r_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Right Hessian of the log map.
 
template<typename TangentDerived >
static Hessian d2l_exp (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Left Hessian of the exponential map.
 
template<typename TangentDerived >
static Hessian d2l_expinv (const Eigen::MatrixBase< TangentDerived > &a) noexcept
 Left Hessian of the log map.
 
- Public Attributes inherited from SE3Base< SE3< _Scalar > >
 SMOOTH_INHERIT_TYPEDEFS
 
- Static Public Attributes inherited from LieGroupBase< Derived >
static constexpr int RepSize = Impl::RepSize
 Number of scalars in internal representation.
 
static constexpr int Dof = Impl::Dof
 Degrees of freedom of manifold (equal to tangent space dimension).
 
static constexpr int Dim = Impl::Dim
 Side of Lie group matrix representation.
 
static constexpr bool IsCommutative = Impl::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 = traits::is_mutable
 True if underlying storage supports modification.
 

Detailed Description

template<typename _Scalar>
class SE3< _Scalar >

Storage implementation of SE3 Lie group.

See also
SE3Base for memory layout.

Definition at line 170 of file se3.hpp.

Constructor & Destructor Documentation

◆ SE3() [1/2]

template<typename _Scalar >
SE3< _Scalar >::SE3 ( const SO3Base< SO3Derived > &  so3,
const Eigen::MatrixBase< T3Derived > &  r3 
)
inline

Construct from SO3 and translation.

Parameters
so3orientation component.
r3translation component.

Definition at line 184 of file se3.hpp.

◆ SE3() [2/2]

template<typename _Scalar >
SE3< _Scalar >::SE3 ( const Eigen::Transform< Scalar, 3, Eigen::Isometry > &  t)
inlineexplicit

Construct from Eigen transform.

Definition at line 193 of file se3.hpp.


The documentation for this class was generated from the following file: