gtsam
Loading...
Searching...
No Matches
gtsam::LieGroup< Class, N > Struct Template Reference

Detailed Description

template<class Class, int N>
struct gtsam::LieGroup< Class, N >

A CRTP helper class that implements Lie group methods Prerequisites: methods operator*, inverse, and AdjointMap, as well as a ChartAtOrigin struct that will be used to define the manifold Chart To use, simply derive, but also say "using LieGroup<Class,N>::inverse" For derivative math, see doc/math.pdf.

Inheritance diagram for gtsam::LieGroup< Class, N >:

Public Member Functions

template<int M = N>
std::enable_if_t< M !=Eigen::Dynamic, int > dim () const
 Provided fixed dimension in dim() if needed.
const Class & derived () const
Class compose (const Class &g) const
Class between (const Class &g) const
Class compose (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
Class between (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
Class inverse (ChartJacobian H) const
Class expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
TangentVector logmap (const Class &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
template<class C = Class, class = internal::ExpmapWithJacobian<C, TangentVector, ChartJacobian>>
Class expmap (const TangentVector &v, ChartJacobian H1, ChartJacobian H2={}) const
 expmap with optional derivatives, when the class provides them
template<class C = Class, class = internal::LogmapWithJacobian<C, ChartJacobian>>
TangentVector logmap (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
 logmap with optional derivatives, when the class provides them
Class retract (const TangentVector &v) const
 retract as required by manifold concept: applies v at *this
TangentVector localCoordinates (const Class &g) const
 localCoordinates as required by manifold concept: finds tangent vector between *this and g
template<class C = Class, class = decltype(C::ChartAtOrigin::Retract( std::declval<const TangentVector&>(), std::declval<ChartJacobian>()))>
Class retract (const TangentVector &v, ChartJacobian H1, ChartJacobian H2={}) const
 retract with optional derivatives, when the chart provides them
template<class C = Class, class = decltype(C::ChartAtOrigin::Local( std::declval<const C&>(), std::declval<ChartJacobian>()))>
TangentVector localCoordinates (const Class &g, ChartJacobian H1, ChartJacobian H2={}) const
 localCoordinates with optional derivatives, when the chart provides them
SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
GTSAM_EXPORT SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const

Static Public Member Functions

static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static Class Retract (const TangentVector &v)
 Retract at origin: possible in Lie group because it has an identity.
static TangentVector LocalCoordinates (const Class &g)
 LocalCoordinates at origin: possible in Lie group because it has an identity.
template<class C = Class, class = decltype(C::ChartAtOrigin::Retract( std::declval<const TangentVector&>(), std::declval<ChartJacobian>()))>
static Class Retract (const TangentVector &v, ChartJacobian H)
 Retract at origin with optional derivative, when the chart provides it.
template<class C = Class, class = decltype(C::ChartAtOrigin::Local( std::declval<const C&>(), std::declval<ChartJacobian>()))>
static TangentVector LocalCoordinates (const Class &g, ChartJacobian H)
 LocalCoordinates at origin with optional derivative, when provided.

Static Public Attributes

static constexpr auto dimension = N

Public Types

typedef OptionalJacobian< N, N > ChartJacobian
typedef Eigen::Matrix< double, N, N > Jacobian
typedef Eigen::Matrix< double, N, 1 > TangentVector

The documentation for this struct was generated from the following file:
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/base/Lie.h