22 #include <gtsam/geometry/Unit3.h> 50 using NoiseModelFactor2<Point3, Point3>::evaluateError;
57 : Base(noiseModel, a, b), measured_w_aZb_(w_aZb.
point3()) {}
74 const Point3 dir = Tb - Ta;
75 Matrix33 H_predicted_dir;
76 const Point3 predicted =
normalize(dir, H1 || H2 ? &H_predicted_dir :
nullptr);
77 if (H1) *H1 = -H_predicted_dir;
78 if (H2) *H2 = H_predicted_dir;
79 return predicted - measured_w_aZb_;
83 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 84 friend class boost::serialization::access;
85 template <
class ARCHIVE>
86 void serialize(ARCHIVE& ar,
const unsigned int ) {
87 ar& boost::serialization::make_nvp(
88 "Base", boost::serialization::base_object<Base>(*
this));
GTSAM_EXPORT Point3 normalize(const Point3 &p, OptionalJacobian< 3, 3 > H={})
normalize, with optional Jacobian
Definition: NonlinearFactor.h:431
std::string serialize(const T &input)
serializes to a string
Definition: serialization.h:113
TranslationFactor()
default constructor
Definition: TranslationFactor.h:53
Represents a 3D point on a unit sphere.
Definition: Unit3.h:42
const SharedNoiseModel & noiseModel() const
access to the noise model
Definition: NonlinearFactor.h:245
Definition: TranslationFactor.h:42
Matrix * OptionalMatrixType
Definition: NonlinearFactor.h:55
Definition: chartTesting.h:28
Non-linear factor base classes.
Point3 point3(OptionalJacobian< 3, 2 > H={}) const
Return unit-norm Point3.
Vector3 Point3
Definition: Point3.h:38
Vector evaluateError(const Point3 &Ta, const Point3 &Tb, OptionalMatrixType H1, OptionalMatrixType H2) const override
Caclulate error: (norm(Tb - Ta) - measurement) where Tb and Ta are Point3 translations and measuremen...
Definition: TranslationFactor.h:70
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
noiseModel::Base::shared_ptr SharedNoiseModel
Definition: NoiseModel.h:741