39 boost::shared_ptr<Matrix> G_;
42 using Rot =
typename std::conditional<d == 2, Rot2, Rot3>::type;
53 const boost::shared_ptr<Matrix> &G =
nullptr);
61 print(
const std::string &s,
62 const KeyFormatter &keyFormatter = DefaultKeyFormatter)
const override;
66 double tol = 1e-9)
const override;
75 evaluateError(
const SOn &Q1,
const SOn &Q2,
76 boost::optional<Matrix &> H1 = boost::none,
77 boost::optional<Matrix &> H2 = boost::none)
const override;
82 void fillJacobians(
const Matrix &M1,
const Matrix &M2,
83 boost::optional<Matrix &> H1,
84 boost::optional<Matrix &> H2)
const;
N*N matrix representation of SO(N).
3D rotation represented as a rotation matrix or quaternion
Non-linear factor base classes.
Global functions in a separate testing namespace.
Definition: chartTesting.h:28
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition: Matrix.cpp:155
noiseModel::Base::shared_ptr SharedNoiseModel
Note, deliberately not in noiseModel namespace.
Definition: NoiseModel.h:736
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:69
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:35
Template to create a binary predicate.
Definition: Testable.h:111
Manifold of special orthogonal rotation matrices SO<N>.
Definition: SOn.h:50
Nonlinear factor base class.
Definition: NonlinearFactor.h:43
A convenient base class for creating your own NoiseModelFactor with 2 variables.
Definition: NonlinearFactor.h:369
ShonanFactor is a BetweenFactor that moves in SO(p), but will land on the SO(d) sub-manifold of SO(p)...
Definition: ShonanFactor.h:36