35 class GTSAM_EXPORT
SO3:
public Matrix3,
public LieGroup<SO3, 3> {
53 template<
typename Derived>
54 SO3(
const MatrixBase<Derived>& R) :
59 SO3(
const Eigen::AngleAxisd& angleAxis) :
64 static SO3 AxisAngle(
const Vector3& axis,
double theta);
70 void print(
const std::string& s)
const {
71 std::cout << s << *
this << std::endl;
74 bool equals(
const SO3 & R,
double tol)
const {
89 return this->Matrix3::inverse();
103 static Matrix3 ExpmapDerivative(
const Vector3& omega);
112 static Matrix3 LogmapDerivative(
const Vector3& omega);
114 Matrix3 AdjointMap()
const {
121 return Expmap(omega, H);
144 double theta, sin_theta, one_minus_cos;
146 void init(
bool nearZeroApprox =
false);
150 ExpmapFunctor(
const Vector3& omega,
bool nearZeroApprox =
false);
153 ExpmapFunctor(
const Vector3& axis,
double angle,
bool nearZeroApprox =
false);
167 DexpFunctor(
const Vector3& omega,
bool nearZeroApprox =
false);
175 const Matrix3& dexp()
const {
return dexp_; }
182 Vector3 applyInvDexp(
const Vector3& v,
SO3()
Constructor from AngleAxisd.
Definition: SO3.h:48
Base class and basic functions for Lie types.
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition: Matrix.cpp:140
True SO(3), i.e., 3*3 matrix subgroup We guarantee (all but first) constructors only generate from su...
Definition: SO3.h:35
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition: OptionalJacobian.h:39
Functor implementing Exponential map.
Definition: SO3.h:139
Functor that implements Exponential map and its derivatives.
Definition: SO3.h:160
A CRTP helper class that implements Lie group methods Prerequisites: methods operator*, inverse, and AdjointMap, as well as a ChartAtOrigin struct that will be used to define the manifold Chart To use, simply derive, but also say "using LieGroup<Class,N>::inverse" For derivative math, see doc/math.pdf.
Definition: Lie.h:36
SO3(const MatrixBase< Derived > &R)
Constructor from Eigen Matrix.
Definition: SO3.h:54
typedef and functions to augment Eigen's MatrixXd
Template to create a binary predicate.
Definition: Testable.h:110
SO3 inverse() const
inverse of a rotation = transpose
Definition: SO3.h:88
SO3(const Eigen::AngleAxisd &angleAxis)
Constructor from AngleAxisd.
Definition: SO3.h:59
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition: concepts.h:30
bool equal_with_abs_tol(const Eigen::DenseBase< MATRIX > &A, const Eigen::DenseBase< MATRIX > &B, double tol=1e-9)
equals with a tolerance
Definition: Matrix.h:82
static SO3 identity()
identity rotation for group operation
Definition: SO3.h:83
Both LieGroupTraits and Testable.
Definition: Lie.h:237
Global functions in a separate testing namespace.
Definition: chartTesting.h:28