|
gtsam
|
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).
| Derived | The user's action functor. |
| G | The group type. |
| M | The manifold type. |
The provided aliases make common derived constructions easier:
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 |