gtsam
Loading...
Searching...
No Matches
gtsam::TangentLieGroup< G > Class Template Reference

Detailed Description

template<typename G>
class gtsam::TangentLieGroup< G >

Tangent Lie group TG = G ⋉ 𝔤, with dimension 2 dim(G).

Elements are pairs (g,v), with product (g1,v1)(g2,v2) = (g1 g2, v1 + Ad_g1 v2). This dedicated class exposes the tangent structure directly, allowing its repeated-block Jacobians and adjoints to be assembled without a generic semidirect-action layer. Standard Lie-group operations and their Jacobians are inherited from LieGroup; this class supplies the tangent-group law, charts, adjoints, and specialized kernels.

Inheritance diagram for gtsam::TangentLieGroup< G >:

Public Member Functions

 TangentLieGroup (const G &g, const BaseTangent &v)
 TangentLieGroup (const Base &base)
constexpr size_t dim () const
TangentLieGroup operator* (const TangentLieGroup &other) const
TangentLieGroup inverse () const
TangentLieGroup retract (const TangentVector &xi, ChartJacobian H1={}, ChartJacobian H2={}) const
TangentVector localCoordinates (const TangentLieGroup &other, ChartJacobian H1={}, ChartJacobian H2={}) const
Jacobian AdjointMap () const
void print (const std::string &s="") const
bool equals (const TangentLieGroup &other, double tol=1e-9) const
This between (const This &g) const
This between (const This &g, ChartJacobian H1, ChartJacobian H2={}) const
SOn between (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
This compose (const This &g) const
This compose (const This &g, ChartJacobian H1, ChartJacobian H2={}) const
SOn compose (const SOn &g, DynamicJacobian H1, DynamicJacobian H2) const
This expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
This expmap (const TangentVector &v, ChartJacobian H1, ChartJacobian H2={}) const
 expmap with optional derivatives, when the class provides them
This inverse (ChartJacobian H) const
TangentVector logmap (const This &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
TangentVector logmap (const This &g, ChartJacobian H1, ChartJacobian H2={}) const
 logmap with optional derivatives, when the class provides them
Public Member Functions inherited from gtsam::LieGroup< TangentLieGroup< G >, internal::dimensionProduct(2, traits< G >::dimension)>
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
std::enable_if_t< M !=Eigen::Dynamic, int > dim () const
 Provided fixed dimension in dim() if needed.
const TangentLieGroup< G > & derived () const
TangentLieGroup< G > inverse (ChartJacobian H) const
TangentLieGroup< G > expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
TangentVector logmap (const TangentLieGroup< G > &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
TangentLieGroup< G > retract (const TangentVector &v) const
 retract as required by manifold concept: applies v at *this
TangentVector localCoordinates (const TangentLieGroup< G > &g) const
 localCoordinates as required by manifold concept: finds tangent vector between *this and g

Static Public Member Functions

static TangentLieGroup Identity ()
static TangentLieGroup Expmap (const TangentVector &xi, ChartJacobian H={})
static TangentLieGroup Expmap (const Eigen::Ref< const BaseTangent > &u, const Eigen::Ref< const BaseTangent > &v, SplitJacobian H1={}, SplitJacobian H2={})
static TangentVector Logmap (const TangentLieGroup &p, ChartJacobian H={})
static TangentVector LocalCoordinates (const TangentLieGroup &p, ChartJacobian H={})
static Jacobian adjointMap (const TangentVector &xi)
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
Static Public Member Functions inherited from gtsam::LieGroup< TangentLieGroup< G >, internal::dimensionProduct(2, traits< G >::dimension)>
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static TangentLieGroup< G > Retract (const TangentVector &v)
 Retract at origin: possible in Lie group because it has an identity.
static TangentVector LocalCoordinates (const TangentLieGroup< G > &g)
 LocalCoordinates at origin: possible in Lie group because it has an identity.

Static Public Attributes

static constexpr auto dimension
Static Public Attributes inherited from gtsam::LieGroup< TangentLieGroup< G >, internal::dimensionProduct(2, traits< G >::dimension)>
static constexpr auto dimension

Public Types

using This = TangentLieGroup<G>
using Base = std::pair<G, typename traits<G>::TangentVector>
using LieBase = LieGroup<This, internal::dimensionProduct(2, n)>
using BaseTangent = typename traits<G>::TangentVector
using BaseJacobian = typename traits<G>::Jacobian
using TangentVector = typename LieBase::TangentVector
using Jacobian = typename LieBase::Jacobian
using ChartJacobian = typename LieBase::ChartJacobian
using ChartAtOrigin = internal::ChartAtIdentity<This, dimension>
using SplitJacobian = OptionalJacobian<Eigen::Dynamic, Eigen::Dynamic>
using group_flavor = multiplicative_group_tag
Public Types inherited from gtsam::LieGroup< TangentLieGroup< G >, internal::dimensionProduct(2, traits< G >::dimension)>
typedef OptionalJacobian< N, N > ChartJacobian
typedef Eigen::Matrix< double, N, N > Jacobian
typedef Eigen::Matrix< double, N, 1 > TangentVector

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