class UnaryFactor: public NoiseModelFactor1 { double mx_, my_; ///< X and Y measurements public: UnaryFactor(Key j, double x, double y, const SharedNoiseModel& model): NoiseModelFactor1(model, j), mx_(x), my_(y) {} Vector evaluateError(const Pose2& q, boost::optional H = boost::none) const { if (H) (*H) = (Matrix(2,3)<< 1.0,0.0,0.0, 0.0,1.0,0.0).finished(); return (Vector(2) << q.x() - mx_, q.y() - my_).finished(); } };