30 std::cout << s <<
"EssentialMatrixConstraint(" << keyFormatter(this->
key1())
31 <<
"," << keyFormatter(this->
key2()) <<
")\n";
46 const Pose3&
p2, boost::optional<Matrix&> Hp1,
47 boost::optional<Matrix&> Hp2)
const {
55 (Hp1 || Hp2) ? boost::optional<Matrix&>(D_hx_1P2) : boost::none);
60 const Matrix& D_1P2_p1 = *Hp1;
62 *Hp1 = D_hx_1P2 * D_1P2_p1;
66 const Matrix& D_1P2_p2 = *Hp2;
68 *Hp2 = D_hx_1P2 * D_1P2_p2;
GTSAM_EXPORT void print(const std::string &s="") const
print with optional string
bool equals(const EssentialMatrix &other, double tol=1e-8) const
assert equality up to a tolerance
bool equals(const NonlinearFactor &f, double tol=1e-9) const override
Vector5 localCoordinates(const EssentialMatrix &other) const
Compute the coordinates in the tangent space.
void print(const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override
Vector evaluateError(const Pose3 &p1, const Pose3 &p2, boost::optional< Matrix & > Hp1=boost::none, boost::optional< Matrix & > Hp2=boost::none) const override
bool equals(const NonlinearFactor &expected, double tol=1e-9) const override
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Array< double, 1, 3 > e(1./3., 0.5, 2.)
SharedNoiseModel noiseModel_
static GTSAM_EXPORT EssentialMatrix FromPose3(const Pose3 &_1P2_, OptionalJacobian< 5, 6 > H=boost::none)
Named constructor converting a Pose3 with scale to EssentialMatrix (no scale)
Class between(const Class &g) const
EssentialMatrix measuredE_