gtsam
Loading...
Searching...
No Matches
gtsam::GroupAction< Derived, G, M > Struct Template Reference

Detailed Description

template<typename Derived, typename G, typename M>
struct gtsam::GroupAction< Derived, G, M >

GroupAction CRTP base class.

Defines a group action of a Group G on a Manifold M. Users should derive from this class and implement the operator():

M operator()(const G& g, const M& m, OptionalJacobian<DimM, DimG> Hg = {}, OptionalJacobian<DimM, DimM> Hm = {}) const; (for Left action)

or

M operator()(const M& m, const G& g, OptionalJacobian<DimM, DimM> Hm = {}, OptionalJacobian<DimM, DimG> Hg = {}) const; (for Right action)

For SemidirectLieGroup where M is a vector space (Eigen column vector), provide the static method below so SemidirectLieGroup can derive Expmap and Logmap automatically via the φ₁ kernel:

static Eigen::Matrix<double,DimM,DimM> generator(const TangentVector_G& u);

where generator(u)·h = d/dt φ(expG(t·u), h)|_{t=0} is the infinitesimal generator of the representation (a DimM×DimM matrix, linear in u).

Template Parameters
DerivedThe user's action functor.
GThe group type.
MThe manifold type.

The provided aliases make common derived constructions easier:

  • Orbit(m0) yields g ↦ φ(g, m0)
  • Diffeomorphism(g0) yields m ↦ φ(g0, m) (or φ(m, g0) for right actions)
  • InducedVectorField(g0, f) yields the pushed-forward vector field g0 ⋅ f These are lightweight functors; build them directly where needed.

Public Member Functions

const Derived & derived () const
 Access derived class.

Static Public Attributes

static constexpr int DimG = traits<G>::dimension
static constexpr int DimM = traits<M>::dimension

Public Types

using Group = G
using Manifold = M
using Orbit = group_action::Orbit<Derived>
using Diffeomorphism = group_action::Diffeomorphism<Derived>

Classes

struct  InducedVectorField

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