gtsam
Loading...
Searching...
No Matches
gtsam::traits< Rot2 > Struct Reference
Inheritance diagram for gtsam::traits< Rot2 >:

Static Public Member Functions

template<int D = 1>
static Matrix QcqpValue (const Rot2 &value)
 Return a matrix-valued QCQP variable for Rot2.
template<int D = 1>
static std::vector< std::pair< Matrix, double > > QcqpConstraints ()
 Return row-space QCQP equality constraints A, b such that trace(x_i' A x_i) = b[j].
template<int D>
static Rot2 FromQcqpValue (const Matrix &X)
 Project a D=1 minimal vector or canonical 2-by-D lift back to Rot2.
Static Public Member Functions inherited from gtsam::internal::MatrixLieGroupTraits< Rot2, N >
static LieAlgebra Hat (const TangentVector &v)
static TangentVector Vee (const LieAlgebra &X)
static Eigen::Matrix< double, product(N, N), 1 > Vec (const Rot2 &m, OptionalJacobian< product(N, N), LieGroupTraits< Rot2 >::dimension > H={})
 Vectorize the matrix representation of a Lie group element.
static TangentVector AdjointTranspose (const Rot2 &m, const TangentVector &x, ChartJacobian Hm={}, ChartJacobian Hx={})
static TangentVector Adjoint (const Rot2 &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< Rot2 >
static TangentVector Logmap (const Rot2 &m)
static Rot2 Expmap (const TangentVector &v)
static Rot2 Compose (const Rot2 &m1, const Rot2 &m2, ChartJacobian H1={}, ChartJacobian H2={})
static Rot2 Between (const Rot2 &m1, const Rot2 &m2, ChartJacobian H1={}, ChartJacobian H2={})
static Rot2 Inverse (const Rot2 &m, ChartJacobian H={})
static Eigen::Matrix< double, dimension, dimension > AdjointMap (const Rot2 &m)
static Rot2 Identity ()
Static Public Member Functions inherited from gtsam::internal::ManifoldTraits< Rot2 >
static TangentVector Local (const Rot2 &origin, const Rot2 &other)
static Rot2 Retract (const Rot2 &origin, const TangentVector &v)
Static Public Member Functions inherited from gtsam::internal::GetDimensionImpl< Rot2, Rot2::dimension >
static size_t GetDimension (const Rot2 &m)
Static Public Member Functions inherited from gtsam::Testable< Rot2 >
static void Print (const Rot2 &m, const std::string &str="")
static bool Equals (const Rot2 &m1, const Rot2 &m2, double tol=1e-8)

Static Public Attributes

static constexpr int QcqpVectorDim = 3
 Dimension of the D=1 homogenized QCQP vector [h, cos(theta), sin(theta)].
static constexpr auto dimension
Static Public Attributes inherited from gtsam::internal::ManifoldTraits< Rot2 >
static constexpr auto dimension

Additional Inherited Members

Public Member Functions inherited from gtsam::internal::ManifoldTraits< Rot2 >
 GTSAM_CONCEPT_ASSERT (HasManifoldPrereqs< Rot2 >)
Public Member Functions inherited from gtsam::Testable< Rot2 >
 GTSAM_CONCEPT_ASSERT (HasTestablePrereqs< Rot2 >)
Public Types inherited from gtsam::internal::MatrixLieGroupTraits< Rot2, N >
using LieAlgebra
using TangentVector
using Jacobian
using ChartJacobian
Public Types inherited from gtsam::internal::LieGroupTraits< Rot2 >
typedef OptionalJacobian< dimension, dimension > ChartJacobian
typedef Rot2 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< Rot2 >
typedef Rot2 ManifoldType
typedef manifold_tag structure_category
typedef Eigen::Matrix< double, dimension, 1 > TangentVector
typedef OptionalJacobian< dimension, dimension > ChartJacobian

Member Function Documentation

◆ FromQcqpValue()

template<int D>
Rot2 gtsam::traits< Rot2 >::FromQcqpValue ( const Matrix & X)
inlinestatic

Project a D=1 minimal vector or canonical 2-by-D lift back to Rot2.

Matrix-form QCQP solutions have a right-O(D) gauge, making this leading-block projection gauge-dependent unless the caller has first chosen a gauge. Matrix-form X must be exactly 2-by-D.

◆ QcqpConstraints()

template<int D = 1>
std::vector< std::pair< Matrix, double > > gtsam::traits< Rot2 >::QcqpConstraints ( )
inlinestatic

Return row-space QCQP equality constraints A, b such that trace(x_i' A x_i) = b[j].

For D=1 these fix h^2=1 and impose the unit-circle constraint c^2+s^2=1. For D>=2 the same 2-by-2 constraints enforce row orthonormality. The matrix constraints enforce XX'=I, not determinant +1; square D=2 variables therefore admit both components of O(2).

◆ QcqpValue()

template<int D = 1>
Matrix gtsam::traits< Rot2 >::QcqpValue ( const Rot2 & value)
inlinestatic

Return a matrix-valued QCQP variable for Rot2.

D=1 uses the minimal homogeneous representation [1, cos(theta), sin(theta)]', yielding a 3-by-1 matrix. The remaining matrix entries are recovered from the exact linear identities r01=-r10 and r11=r00. D>=2 returns [R', 0] as a 2-by-D row-orthonormal matrix. These matrix variables form a Stiefel relaxation with a common right-O(D) gauge.


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