gtsam
Loading...
Searching...
No Matches
gtsam::traits< Pose3 > Struct Reference

Detailed Description

Add the Pose3-specific operations used by the generic QCQP conversion code.

template <> struct traits<Pose3> specializes GTSAM's generic traits<T> interface for T=Pose3. Its static methods are called directly through the traits type. The member-template parameter D is the QCQP variable's column count, and if constexpr (D == 1) selects this exact homogenized vector formulation at compile time.

The lift discards the fixed last row [0, 0, 0, 1] of the Pose3 matrix and stores the first three entries of each column consecutively:

x = [1, r00, r10, r20, r01, r11, r21, r02, r12, r22, tx, ty, tz]'.

Eigen's segment<3>(start) selects three consecutive entries of x, while T.col(column).head<3>() selects the retained part of one matrix column. QcqpConstraints returns the symmetric matrices A and scalars b for the ten equations x' A x = b. Their translation rows and columns are zero, so these equations constrain only the embedded SO(3) rotation.

Inheritance diagram for gtsam::traits< Pose3 >:

Static Public Member Functions

template<int D = 1>
static Matrix QcqpValue (const Pose3 &value)
 Return the D=1 homogenized QCQP variable x = [1, vec(R), tx, ty, tz] in column-major order.
template<int D = 1>
static std::vector< std::pair< Matrix, double > > QcqpConstraints ()
 Return the ten D=1 lifted SE(3) manifold constraints A, b such that trace(x' A x) = b.
template<int D>
static Pose3 FromQcqpValue (const Matrix &X)
 Project a D=1 homogenized QCQP vector back to Pose3.
Static Public Member Functions inherited from gtsam::internal::MatrixLieGroupTraits< Pose3, N >
static LieAlgebra Hat (const TangentVector &v)
static TangentVector Vee (const LieAlgebra &X)
static Eigen::Matrix< double, product(N, N), 1 > Vec (const Pose3 &m, OptionalJacobian< product(N, N), LieGroupTraits< Pose3 >::dimension > H={})
 Vectorize the matrix representation of a Lie group element.
static TangentVector AdjointTranspose (const Pose3 &m, const TangentVector &x, ChartJacobian Hm={}, ChartJacobian Hx={})
static TangentVector Adjoint (const Pose3 &m, const TangentVector &x, ChartJacobian Hm={}, ChartJacobian Hx={})
static Jacobian adjointMap (const TangentVector &xi)
static TangentVector adjoint (const TangentVector &xi, const TangentVector &y, ChartJacobian Hxi={}, ChartJacobian H_y={})
static TangentVector adjointTranspose (const TangentVector &xi, const TangentVector &y, ChartJacobian Hxi={}, ChartJacobian H_y={})
Static Public Member Functions inherited from gtsam::internal::LieGroupTraits< Pose3 >
static TangentVector Logmap (const Pose3 &m)
static Pose3 Expmap (const TangentVector &v)
static Pose3 Compose (const Pose3 &m1, const Pose3 &m2, ChartJacobian H1={}, ChartJacobian H2={})
static Pose3 Between (const Pose3 &m1, const Pose3 &m2, ChartJacobian H1={}, ChartJacobian H2={})
static Pose3 Inverse (const Pose3 &m, ChartJacobian H={})
static Eigen::Matrix< double, dimension, dimension > AdjointMap (const Pose3 &m)
static Pose3 Identity ()
Static Public Member Functions inherited from gtsam::internal::ManifoldTraits< Pose3 >
static TangentVector Local (const Pose3 &origin, const Pose3 &other)
static Pose3 Retract (const Pose3 &origin, const TangentVector &v)
Static Public Member Functions inherited from gtsam::internal::GetDimensionImpl< Pose3, Pose3::dimension >
static size_t GetDimension (const Pose3 &m)
Static Public Member Functions inherited from gtsam::Testable< Pose3 >
static void Print (const Pose3 &m, const std::string &str="")
static bool Equals (const Pose3 &m1, const Pose3 &m2, double tol=1e-8)

Static Public Attributes

static constexpr int QcqpVectorDim = 13
 Dimension of the D=1 homogenized QCQP vector.
static constexpr auto dimension
Static Public Attributes inherited from gtsam::internal::ManifoldTraits< Pose3 >
static constexpr auto dimension

Additional Inherited Members

Public Member Functions inherited from gtsam::internal::ManifoldTraits< Pose3 >
 GTSAM_CONCEPT_ASSERT (HasManifoldPrereqs< Pose3 >)
Public Member Functions inherited from gtsam::Testable< Pose3 >
 GTSAM_CONCEPT_ASSERT (HasTestablePrereqs< Pose3 >)
Public Types inherited from gtsam::internal::MatrixLieGroupTraits< Pose3, N >
using LieAlgebra
using TangentVector
using Jacobian
using ChartJacobian
Public Types inherited from gtsam::internal::LieGroupTraits< Pose3 >
typedef OptionalJacobian< dimension, dimension > ChartJacobian
typedef Pose3 ManifoldType
typedef Eigen::Matrix< double, dimension, 1 > TangentVector
using Manifold
using structure_category
using group_flavor
using Jacobian
Public Types inherited from gtsam::internal::ManifoldTraits< Pose3 >
typedef Pose3 ManifoldType
typedef manifold_tag structure_category
typedef Eigen::Matrix< double, dimension, 1 > TangentVector
typedef OptionalJacobian< dimension, dimension > ChartJacobian

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