54 template<
typename Derived>
55 SO3(
const MatrixBase<Derived>& R) :
60 SO3(
const Eigen::AngleAxisd& angleAxis) :
71 void print(
const std::string& s)
const;
73 bool equals(
const SO3 & R,
double tol)
const {
88 return this->Matrix3::inverse();
99 static SO3 Expmap(
const Vector3& omega, ChartJacobian H = boost::none);
108 static Vector3
Logmap(
const SO3& R, ChartJacobian H = boost::none);
113 Matrix3 AdjointMap()
const {
143 double theta, sin_theta, one_minus_cos;
145 void init(
bool nearZeroApprox =
false);
149 ExpmapFunctor(
const Vector3& omega,
bool nearZeroApprox =
false);
152 ExpmapFunctor(
const Vector3& axis,
double angle,
bool nearZeroApprox =
false);
166 DexpFunctor(
const Vector3& omega,
bool nearZeroApprox =
false);
174 const Matrix3& dexp()
const {
return dexp_; }
181 Vector3 applyInvDexp(
const Vector3& v,
static SO3 identity()
identity rotation for group operation
Definition: SO3.h:82
Functor that implements Exponential map and its derivatives.
Definition: SO3.h:159
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 Vector3 Logmap(const SO3 &R, ChartJacobian H=boost::none)
Log map at identity - returns the canonical coordinates of this rotation.
Definition: SO3.cpp:139
Both LieGroupTraits and Testable.
Definition: Lie.h:237
Template to create a binary predicate.
Definition: Testable.h:110
Functor implementing Exponential map.
Definition: SO3.h:138
OptionalJacobian is an Eigen::Ref like class that can take be constructed using either a fixed size o...
Definition: OptionalJacobian.h:39
A CRTP helper class that implements Lie group methods Prerequisites: methods operator*,...
Definition: Lie.h:36
SO3()
Constructor from AngleAxisd.
Definition: SO3.h:49
SO3 inverse() const
inverse of a rotation = transpose
Definition: SO3.h:87
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition: concepts.h:30
SO3(const Eigen::AngleAxisd &angleAxis)
Constructor from AngleAxisd.
Definition: SO3.h:60
True SO(3), i.e., 3*3 matrix subgroup We guarantee (all but first) constructors only generate from su...
Definition: SO3.h:36
static SO3 AxisAngle(const Vector3 &axis, double theta)
Static, named constructor TODO think about relation with above.
Definition: SO3.cpp:115
Global functions in a separate testing namespace.
Definition: chartTesting.h:28
SO3(const MatrixBase< Derived > &R)
Constructor from Eigen Matrix.
Definition: SO3.h:55
typedef and functions to augment Eigen's MatrixXd
Base class and basic functions for Lie types.
static Matrix3 LogmapDerivative(const Vector3 &omega)
Derivative of Logmap.
Definition: SO3.cpp:182
static SO3 Expmap(const Vector3 &omega, ChartJacobian H=boost::none)
Exponential map at identity - create a rotation from canonical coordinates using Rodrigues' formula.
Definition: SO3.cpp:125
static Matrix3 ExpmapDerivative(const Vector3 &omega)
Derivative of Expmap.
Definition: SO3.cpp:134