35 typedef std::shared_ptr<This> shared_ptr;
48 Base(model, i, j), measured_(measured) {
67 typedef std::shared_ptr<This> shared_ptr;
80 Base(model, b1, i, b2, j), measured_(measured) {
88 if (H1 || H2 || H3 || H4) {
90 Matrix D_pose_g_base1, D_pose_g_pose;
91 Pose2 pose_g = base1.compose(pose, D_pose_g_base1, D_pose_g_pose);
92 Matrix D_point_g_base2, D_point_g_point;
95 Matrix D_e_pose_g, D_e_point_g;
98 *H1 = D_e_pose_g * D_pose_g_base1;
100 *H2 = D_e_pose_g * D_pose_g_pose;
102 *H3 = D_e_point_g * D_point_g_base2;
104 *H4 = D_e_point_g * D_point_g_point;
105 return d - measured_;
107 Pose2 pose_g = base1.compose(pose);
110 return d - measured_;
123 typedef std::shared_ptr<This> shared_ptr;
136 Base(model, b1, i, b2, j), measured_(measured) {
144 if (H1 || H2 || H3 || H4) {
146 Matrix D_pose1_g_base1, D_pose1_g_pose1;
147 Pose2 pose1_g = base1.compose(pose1, D_pose1_g_base1, D_pose1_g_pose1);
148 Matrix D_pose2_g_base2, D_pose2_g_pose2;
149 Pose2 pose2_g = base2.compose(pose2, D_pose2_g_base2, D_pose2_g_pose2);
150 Matrix D_e_pose1_g, D_e_pose2_g;
151 Pose2 d = pose1_g.between(pose2_g, D_e_pose1_g, D_e_pose2_g);
152 Matrix3 localJacobian;
154 measured_.localCoordinates(d,
nullptr, localJacobian);
155 if (H1) *H1 = localJacobian * D_e_pose1_g * D_pose1_g_base1;
156 if (H2) *H2 = localJacobian * D_e_pose1_g * D_pose1_g_pose1;
157 if (H3) *H3 = localJacobian * D_e_pose2_g * D_pose2_g_base2;
158 if (H4) *H4 = localJacobian * D_e_pose2_g * D_pose2_g_pose2;
161 Pose2 pose1_g = base1.compose(pose1);
162 Pose2 pose2_g = base2.compose(pose2);
163 Pose2 d = pose1_g.between(pose2_g);
Base class for noise model factors with N variables.
Non-linear factor base classes.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
Matrix * OptionalMatrixType
This typedef will be used everywhere boost::optional<Matrix&> reference was used previously.
Definition NonlinearFactor.h:57
NoiseModelFactorT< Vector, ValueTypes... > NoiseModelFactorN
Noise model factor with N value types and dynamic-sized error vector.
Definition NoiseModelFactorN.h:561
Vector2 Point2
As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point2 to Vector2...
Definition Point2.h:32
noiseModel::Base::shared_ptr SharedNoiseModel
Aliases.
Definition NoiseModel.h:846
std::uint64_t Key
Integer nonlinear key type.
Definition types.h:43
TangentVector localCoordinates(const Class &g) const
localCoordinates as required by manifold concept: finds tangent vector between *this and g
Definition Lie.h:226
A 2D pose (Point2,Rot2).
Definition Pose2.h:39
Point2 transformFrom(const Point2 &point, OptionalJacobian< 2, 3 > Dpose={}, OptionalJacobian< 2, 2 > Dpoint={}) const
Return point coordinates in global frame.
Definition Pose2.cpp:257
Point2 transformTo(const Point2 &point, OptionalJacobian< 2, 3 > Dpose={}, OptionalJacobian< 2, 2 > Dpoint={}) const
Return point coordinates in pose coordinate frame.
Definition Pose2.cpp:238
NoiseModelFactorT()
Definition NoiseModelFactorN.h:257
virtual Vector2 evaluateError(const ValueTypes &... x, OptionalMatrixTypeT< ValueTypes >... H) const=0
double error(const Values &c) const override
Calculate the error of the factor.
Definition NonlinearFactor.cpp:146
Vector2 evaluateError(const Pose2 &pose, const Point2 &point, OptionalMatrixType H1, OptionalMatrixType H2) const override
Evaluate measurement error h(x)-z.
Definition TSAMFactors.h:52
DeltaFactor(Key i, Key j, const Point2 &measured, const SharedNoiseModel &model)
Constructor.
Definition TSAMFactors.h:46
DeltaFactorBase(Key b1, Key i, Key b2, Key j, const Point2 &measured, const SharedNoiseModel &model)
Constructor.
Definition TSAMFactors.h:78
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:84
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:140
OdometryFactorBase(Key b1, Key i, Key b2, Key j, const Pose2 &measured, const SharedNoiseModel &model)
Constructor.
Definition TSAMFactors.h:134