gtsam  4.0.0 gtsam
gtsam::SO3 Class Reference

## Detailed Description

True SO(3), i.e., 3*3 matrix subgroup We guarantee (all but first) constructors only generate from sub-manifold.

However, round-off errors in repeated composition could move off it...

Inheritance diagram for gtsam::SO3:

## Constructors

SO3 ()
Constructor from AngleAxisd.

template<typename Derived >
SO3 (const MatrixBase< Derived > &R)
Constructor from Eigen Matrix.

SO3 (const Eigen::AngleAxisd &angleAxis)
Constructor from AngleAxisd.

static SO3 AxisAngle (const Vector3 &axis, double theta)
Static, named constructor TODO think about relation with above.

## Group

SO3 inverse () const
inverse of a rotation = transpose

static SO3 identity ()
identity rotation for group operation

## Lie Group

Matrix3 AdjointMap () const

static SO3 Expmap (const Vector3 &omega, ChartJacobian H=boost::none)
Exponential map at identity - create a rotation from canonical coordinates $$[R_x,R_y,R_z]$$ using Rodrigues' formula.

static Matrix3 ExpmapDerivative (const Vector3 &omega)
Derivative of Expmap.

static Vector3 Logmap (const SO3 &R, ChartJacobian H=boost::none)
Log map at identity - returns the canonical coordinates $$[R_x,R_y,R_z]$$ of this rotation.

static Matrix3 LogmapDerivative (const Vector3 &omega)
Derivative of Logmap. More...

## Public Member Functions

Testable
void print (const std::string &s) const

bool equals (const SO3 &R, double tol) const

Public Member Functions inherited from gtsam::LieGroup< SO3, 3 >
BOOST_STATIC_ASSERT_MSG (N !=Eigen::Dynamic, "LieGroup not yet specialized for dynamically sized types.")

const SO3derived () const

SO3 compose (const SO3 &g) const

SO3 compose (const SO3 &g, ChartJacobian H1, ChartJacobian H2=boost::none) const

SO3 between (const SO3 &g) const

SO3 between (const SO3 &g, ChartJacobian H1, ChartJacobian H2=boost::none) const

SO3 inverse (ChartJacobian H) const

SO3 expmap (const TangentVector &v) const
expmap as required by manifold concept Applies exponential map to v and composes with *this

SO3 expmap (const TangentVector &v, ChartJacobian H1, ChartJacobian H2=boost::none) const
expmap with optional derivatives

TangentVector logmap (const SO3 &g) const
logmap as required by manifold concept Applies logarithmic map to group element that takes *this to g

TangentVector logmap (const SO3 &g, ChartJacobian H1, ChartJacobian H2=boost::none) const
logmap with optional derivatives

SO3 retract (const TangentVector &v) const
retract as required by manifold concept: applies v at *this

SO3 retract (const TangentVector &v, ChartJacobian H1, ChartJacobian H2=boost::none) const
retract with optional derivatives

TangentVector localCoordinates (const SO3 &g) const
localCoordinates as required by manifold concept: finds tangent vector between *this and g

TangentVector localCoordinates (const SO3 &g, ChartJacobian H1, ChartJacobian H2=boost::none) const
localCoordinates with optional derivatives

## Public Types

enum  { dimension = 3 }

Public Types inherited from gtsam::LieGroup< SO3, 3 >
enum

typedef OptionalJacobian< N, N > ChartJacobian

typedef Eigen::Matrix< double, N, N > Jacobian

typedef Eigen::Matrix< double, N, 1 > TangentVector

## Classes

struct  ChartAtOrigin

## Additional Inherited Members

Static Public Member Functions inherited from gtsam::LieGroup< SO3, 3 >
static SO3 Retract (const TangentVector &v)
Retract at origin: possible in Lie group because it has an identity.

static SO3 Retract (const TangentVector &v, ChartJacobian H)
Retract at origin with optional derivative.

static TangentVector LocalCoordinates (const SO3 &g)
LocalCoordinates at origin: possible in Lie group because it has an identity.

static TangentVector LocalCoordinates (const SO3 &g, ChartJacobian H)
LocalCoordinates at origin with optional derivative.

## ◆ LogmapDerivative()

 Matrix3 gtsam::SO3::LogmapDerivative ( const Vector3 & omega )
static

Derivative of Logmap.

Right Jacobian for Log map in SO(3) - equation (10.86) and following equations in G.S. Chirikjian, "Stochastic Models, Information Theory, and Lie Groups", Volume 2, 2008. logmap( Rhat * expmap(omega) ) \approx logmap( Rhat ) + Jrinv * omega where Jrinv = LogmapDerivative(omega); This maps a perturbation on the manifold (expmap(omega)) to a perturbation in the tangent space (Jrinv * omega)

The documentation for this class was generated from the following files:
• /Users/dellaert/git/gtsam/gtsam/geometry/SO3.h
• /Users/dellaert/git/gtsam/gtsam/geometry/SO3.cpp