34 typedef std::shared_ptr<This> shared_ptr;
47 Base(model, i, j), measured_(measured) {
65 typedef std::shared_ptr<This> shared_ptr;
78 Base(model, b1, i, b2, j), measured_(measured) {
86 if (H1 || H2 || H3 || H4) {
88 Matrix D_pose_g_base1, D_pose_g_pose;
89 Pose2 pose_g = base1.compose(pose, D_pose_g_base1, D_pose_g_pose);
90 Matrix D_point_g_base2, D_point_g_point;
93 Matrix D_e_pose_g, D_e_point_g;
96 *H1 = D_e_pose_g * D_pose_g_base1;
98 *H2 = D_e_pose_g * D_pose_g_pose;
100 *H3 = D_e_point_g * D_point_g_base2;
102 *H4 = D_e_point_g * D_point_g_point;
103 return d - measured_;
105 Pose2 pose_g = base1.compose(pose);
108 return d - measured_;
121 typedef std::shared_ptr<This> shared_ptr;
134 Base(model, b1, i, b2, j), measured_(measured) {
142 if (H1 || H2 || H3 || H4) {
144 Matrix D_pose1_g_base1, D_pose1_g_pose1;
145 Pose2 pose1_g = base1.compose(pose1, D_pose1_g_base1, D_pose1_g_pose1);
146 Matrix D_pose2_g_base2, D_pose2_g_pose2;
147 Pose2 pose2_g = base2.compose(pose2, D_pose2_g_base2, D_pose2_g_pose2);
148 Matrix D_e_pose1_g, D_e_pose2_g;
149 Pose2 d = pose1_g.between(pose2_g, D_e_pose1_g, D_e_pose2_g);
151 *H1 = D_e_pose1_g * D_pose1_g_base1;
153 *H2 = D_e_pose1_g * D_pose1_g_pose1;
155 *H3 = D_e_pose2_g * D_pose2_g_base2;
157 *H4 = D_e_pose2_g * D_pose2_g_pose2;
160 Pose2 pose1_g = base1.compose(pose1);
161 Pose2 pose2_g = base2.compose(pose2);
162 Pose2 d = pose1_g.between(pose2_g);
GTSAM_EXPORT Point2 transformFrom(const Point2 &point, OptionalJacobian< 2, 3 > Dpose={}, OptionalJacobian< 2, 2 > Dpoint={}) const
Vector evaluateError(const Pose2 &pose, const Point2 &point, OptionalMatrixType H1, OptionalMatrixType H2) const override
Evaluate measurement error h(x)-z.
Definition: TSAMFactors.h:51
Definition: NonlinearFactor.h:431
Definition: TSAMFactors.h:29
Vector2 Point2
Definition: Point2.h:32
virtual Vector evaluateError(const ValueTypes &... x, OptionalMatrixTypeT< ValueTypes >... H) const=0
Vector evaluateError(const Pose2 &base1, const Pose2 &pose1, const Pose2 &base2, const Pose2 &pose2, OptionalMatrixType H1, OptionalMatrixType H2, OptionalMatrixType H3, OptionalMatrixType H4) const override
Evaluate measurement error h(x)-z.
Definition: TSAMFactors.h:138
Definition: TSAMFactors.h:116
TangentVector localCoordinates(const Class &g) const
localCoordinates as required by manifold concept: finds tangent vector between *this and g ...
Definition: Lie.h:136
Matrix * OptionalMatrixType
Definition: NonlinearFactor.h:55
Definition: TSAMFactors.h:60
Definition: chartTesting.h:28
OdometryFactorBase(Key b1, Key i, Key b2, Key j, const Pose2 &measured, const SharedNoiseModel &model)
Constructor.
Definition: TSAMFactors.h:132
Non-linear factor base classes.
GTSAM_EXPORT Point2 transformTo(const Point2 &point, OptionalJacobian< 2, 3 > Dpose={}, OptionalJacobian< 2, 2 > Dpoint={}) const
DeltaFactorBase(Key b1, Key i, Key b2, Key j, const Point2 &measured, const SharedNoiseModel &model)
Constructor.
Definition: TSAMFactors.h:76
Vector evaluateError(const Pose2 &base1, const Pose2 &pose, const Pose2 &base2, const Point2 &point, OptionalMatrixType H1, OptionalMatrixType H2, OptionalMatrixType H3, OptionalMatrixType H4) const override
Evaluate measurement error h(x)-z.
Definition: TSAMFactors.h:82
DeltaFactor(Key i, Key j, const Point2 &measured, const SharedNoiseModel &model)
Constructor.
Definition: TSAMFactors.h:45
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
noiseModel::Base::shared_ptr SharedNoiseModel
Definition: NoiseModel.h:741