|
|
| 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
|
|
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.
|
|
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 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 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.
|
|
using | Base |
|
using | ChartJacobian |
|
using | Jacobian |
|
using | TangentVector |
|
using | Vectorized |
|
using | VectorizedJacobian |
|
typedef OptionalJacobian< N, N > | ChartJacobian |
|
typedef Eigen::Matrix< double, N, N > | Jacobian |
|
typedef Eigen::Matrix< double, N, 1 > | TangentVector |
| 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)