14 using namespace gtsam;
34 Matrix numericalH1 = numericalDerivative21<Vector3,Rot3,Rot3>(
35 boost::function<Vector(const Rot3&, const Rot3&)>(boost::bind(
37 boost::none)), R1, R2, 1
e-5);
40 Matrix numericalH2 = numericalDerivative22<Vector3,Rot3,Rot3>(
41 boost::function<Vector(const Rot3&, const Rot3&)>(boost::bind(
43 boost::none)), R1, R2, 1
e-5);
static int runAllTests(TestResult &result)
Some functions to compute numerical derivatives.
Rot3 inverse() const
inverse of a rotation
static Rot3 Rodrigues(const Vector3 &w)
#define EXPECT(condition)
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Q R1(Eigen::AngleAxisd(1, Q_z_axis))
bool assert_equal(const Matrix &expected, const Matrix &actual, double tol)
static Vector3 Logmap(const Rot3 &R, OptionalJacobian< 3, 3 > H=boost::none)
Class between(const Class &g) const
TEST(LPInitSolver, InfiniteLoopSingleVar)
Vector evaluateError(const T &p1, const T &p2, boost::optional< Matrix & > H1=boost::none, boost::optional< Matrix & > H2=boost::none) const override
evaluate error, returns vector of errors size of tangent space
Q R2(Eigen::AngleAxisd(2, Vector3(0, 1, 0)))
3D rotation represented as a rotation matrix or quaternion
All noise models live in the noiseModel namespace.