gtsam
Loading...
Searching...
No Matches
gtsam::SL4 Class Reference
Inheritance diagram for gtsam::SL4:

Matrix Lie Group

using LieAlgebra = Matrix44
static Matrix44 Hat (const Vector &xi)
 Lie algebra coordinates for sl(4) using an orthonormal basis.
static Vector Vee (const Matrix44 &X)

Group

SL4 inverse () const
 inverse transformation
SL4 operator* (const SL4 &other) const
 Group operation.
static SL4 Identity ()
 identity for group operation

Lie Group

Matrix15x15 AdjointMap () const
 Adjoint representation of the tangent space.
static SL4 Expmap (const Vector &xi)
 Exponential map at identity - create an element from canonical coordinates.
static Vector Logmap (const SL4 &p)
 Log map at identity - return the canonical coordinates of this element.

Public Member Functions

Standard Constructors
 SL4 ()
 Default constructor initializes at origin.
 SL4 (const Matrix44 &pose)
 Copy constructor.
 SL4 (const SL4 &pose)=default
SL4 & operator= (const SL4 &pose)=default
void print (const std::string &s="") const
 print with optional string
bool equals (const SL4 &sl4, double tol=1e-9) const
 assert equality up to a tolerance
const Matrix44 & matrix () const
 convert to 4*4 matrix
Public Member Functions inherited from gtsam::MatrixLieGroup< SL4, 15, 4 >
std::enable_if_t< M !=Eigen::Dynamic, int > dim () const
 Provided fixed dimension in dim() if needed.
Eigen::Matrix< double, internal::product(N, N), 1 > vec (OptionalJacobian< internal::product(N, N), D > H={}) const
 Vectorize the matrix representation of a Lie group element.
Jacobian AdjointMap () const
 A generic implementation of AdjointMap for matrix Lie groups.
TangentVector Adjoint (const TangentVector &xi, ChartJacobian H_this={}, ChartJacobian H_xi={}) const
 Adjoint action on a tangent vector.
TangentVector AdjointTranspose (const TangentVector &x, ChartJacobian H_this={}, ChartJacobian H_x={}) const
 Dual Adjoint action on a tangent covector.
Public Member Functions inherited from gtsam::LieGroup< SL4, D >
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 SL4 & derived () const
SL4 inverse (ChartJacobian H) const
SL4 expmap (const TangentVector &v) const
 expmap as required by manifold concept Applies exponential map to v and composes with *this
TangentVector logmap (const SL4 &g) const
 logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g
SL4 retract (const TangentVector &v) const
 retract as required by manifold concept: applies v at *this
TangentVector localCoordinates (const SL4 &g) const
 localCoordinates as required by manifold concept: finds tangent vector between *this and g

Static Public Attributes

static const size_t dimension = 15
Static Public Attributes inherited from gtsam::MatrixLieGroup< SL4, 15, 4 >
static constexpr auto dimension
Static Public Attributes inherited from gtsam::LieGroup< SL4, D >
static constexpr auto dimension

Classes

struct  ChartAtOrigin

Protected Attributes

Matrix44 T_

Additional Inherited Members

Static Public Member Functions inherited from gtsam::MatrixLieGroup< SL4, 15, 4 >
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static Jacobian adjointMap (const TangentVector &xi)
 Lie algebra adjoint map ad_xi, with optional specialization in derived classes.
static TangentVector adjoint (const TangentVector &xi, const TangentVector &y, ChartJacobian Hxi={}, ChartJacobian H_y={})
 Lie algebra action ad_xi(y), with optional Jacobians.
static TangentVector adjointTranspose (const TangentVector &xi, const TangentVector &y, ChartJacobian Hxi={}, ChartJacobian H_y={})
 Dual Lie algebra action ad_xi^T(y), with optional Jacobians.
Static Public Member Functions inherited from gtsam::LieGroup< SL4, D >
static constexpr int Dim ()
 Static method to get the dimension (compile-time or dynamic).
static SL4 Retract (const TangentVector &v)
 Retract at origin: possible in Lie group because it has an identity.
static TangentVector LocalCoordinates (const SL4 &g)
 LocalCoordinates at origin: possible in Lie group because it has an identity.
Public Types inherited from gtsam::MatrixLieGroup< SL4, 15, 4 >
using Base
using ChartJacobian
using Jacobian
using TangentVector
using Vectorized
using VectorizedJacobian
Public Types inherited from gtsam::LieGroup< SL4, D >
typedef OptionalJacobian< N, N > ChartJacobian
typedef Eigen::Matrix< double, N, N > Jacobian
typedef Eigen::Matrix< double, N, 1 > TangentVector

Member Function Documentation

◆ Hat()

Matrix44 gtsam::SL4::Hat ( const Vector & xi)
static

Lie algebra coordinates for sl(4) using an orthonormal basis.

We use the orthogonal vector-space decomposition: sl(4) = so(4) ⊕ sym_off(4) ⊕ diag_traceless(4) where so(4) is skew-symmetric rotations, sym_off is symmetric off-diagonal shears, and diag_traceless is the 3-D traceless diagonal subspace.

Ordering of xi (15x1): [r12 r13 r14 r23 r24 r34 s12 s13 s14 s23 s24 s34 h1 h2 h3]

Basis:

  • r_ij scale (E_ij - E_ji)/sqrt(2): skew-symmetric rotations.
  • s_ij scale (E_ij + E_ji)/sqrt(2): symmetric off-diagonal shears.
  • h1,h2,h3 scale orthonormal traceless diagonals: H1 = (1/sqrt(2)) diag( 1, -1, 0, 0) H2 = (1/sqrt(6)) diag( 1, 1, -2, 0) H3 = (1/sqrt(12)) diag( 1, 1, 1, -3)

The documentation for this class was generated from the following files:
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/geometry/SL4.h
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/geometry/SL4.cpp