42 using NoiseModelFactor1<Rot2>::evaluateError;
57 measured_(measured), nM_(scale * direction), bias_(bias) {
61 NonlinearFactor::shared_ptr
clone()
const override {
63 NonlinearFactor::shared_ptr(
new MagFactor(*
this)));
71 Matrix H = HR->col(2);
82 Point3 hx = unrotate(nRb, nM_, H) + bias_;
83 return (hx - measured_);
101 using NoiseModelFactor1<Rot3>::evaluateError;
109 measured_(measured), nM_(scale * direction), bias_(bias) {
113 NonlinearFactor::shared_ptr
clone()
const override {
115 NonlinearFactor::shared_ptr(
new MagFactor1(*
this)));
124 return (hx - measured_);
141 using NoiseModelFactor2<Point3, Point3>::evaluateError;
148 measured_(measured), bRn_(nRb.inverse()) {
152 NonlinearFactor::shared_ptr
clone()
const override {
154 NonlinearFactor::shared_ptr(
new MagFactor2(*
this)));
168 return (hx - measured_);
185 using NoiseModelFactor3<double, Unit3, Point3>::evaluateError;
192 measured_(measured), bRn_(nRb.inverse()) {
196 NonlinearFactor::shared_ptr
clone()
const override {
198 NonlinearFactor::shared_ptr(
new MagFactor3(*
this)));
218 *H2 = scale * H * (*H2);
222 return (hx - measured_);
Definition: NonlinearFactor.h:431
Vector evaluateError(const double &scale, const Unit3 &direction, const Point3 &bias, OptionalMatrixType H1, OptionalMatrixType H2, OptionalMatrixType H3) const override
vector of errors
Definition: MagFactor.h:206
MagFactor2(Key key1, Key key2, const Point3 &measured, const Rot3 &nRb, const SharedNoiseModel &model)
Definition: MagFactor.h:145
Vector evaluateError(const Point3 &nM, const Point3 &bias, OptionalMatrixType H1, OptionalMatrixType H2) const override
vector of errors
Definition: MagFactor.h:162
Definition: MagFactor.h:92
Key key() const
Definition: NonlinearFactor.h:582
Definition: NonlinearFactor.h:68
Rot3 is a 3D rotation represented as a rotation matrix if the preprocessor symbol GTSAM_USE_QUATERNIO...
Definition: Rot3.h:58
#define OptionalNone
Definition: NonlinearFactor.h:49
Definition: MagFactor.h:133
Represents a 3D point on a unit sphere.
Definition: Unit3.h:42
Matrix * OptionalMatrixType
Definition: NonlinearFactor.h:55
static Rot3 Yaw(double t)
Positive yaw is to right (as in aircraft heading). See ypr.
Definition: Rot3.h:174
Point3 unrotate(const Point3 &p, OptionalJacobian< 3, 3 > H1={}, OptionalJacobian< 3, 3 > H2={}) const
rotate point from world to rotated frame
Vector evaluateError(const Rot2 &nRb, OptionalMatrixType H) const override
vector of errors
Definition: MagFactor.h:80
Vector evaluateError(const Rot3 &nRb, OptionalMatrixType H) const override
vector of errors
Definition: MagFactor.h:121
MagFactor1(Key key, const Point3 &measured, double scale, const Unit3 &direction, const Point3 &bias, const SharedNoiseModel &model)
Definition: MagFactor.h:105
NonlinearFactor::shared_ptr clone() const override
Definition: MagFactor.h:113
Definition: chartTesting.h:28
NonlinearFactor::shared_ptr clone() const override
Definition: MagFactor.h:196
Non-linear factor base classes.
Definition: MagFactor.h:33
NonlinearFactor::shared_ptr clone() const override
Definition: MagFactor.h:61
Point3 point3(OptionalJacobian< 3, 2 > H={}) const
Return unit-norm Point3.
Vector3 Point3
Definition: Point3.h:38
Point3 rotate(const Point3 &p, OptionalJacobian< 3, 3 > H1={}, OptionalJacobian< 3, 3 > H2={}) const
Definition: MagFactor.h:177
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
NonlinearFactor::shared_ptr clone() const override
Definition: MagFactor.h:152
MagFactor3(Key key1, Key key2, Key key3, const Point3 &measured, const Rot3 &nRb, const SharedNoiseModel &model)
Definition: MagFactor.h:189
noiseModel::Base::shared_ptr SharedNoiseModel
Definition: NoiseModel.h:741
double theta() const
Definition: Rot2.h:186
3D rotation represented as a rotation matrix or quaternion
MagFactor(Key key, const Point3 &measured, double scale, const Unit3 &direction, const Point3 &bias, const SharedNoiseModel &model)
Definition: MagFactor.h:53