40 using namespace gtsam;
46 return X.translation(
H);
53 Pose2 X0(0.0, 0.0, 0.0);
54 Matrix3
P0 = Matrix3::Identity() * 0.1;
61 Matrix3
Q = (
Vector3(0.05, 0.05, 0.001)).asDiagonal();
62 Matrix2
R = I_2x2 * 0.01;
67 Pose2 U1(1.0, 1.0, 0.5), U2(1.0, 1.0, 0.0);
81 TransformP << 0, 0, 1, 1, 0, 0, 0, 1, 0;
85 cout <<
"\nInitialization:\n";
86 cout <<
"X0: " << ekf.
state() << endl;
87 cout <<
"P0: " << TransformP * ekf.
covariance() * TransformP.transpose()
92 cout <<
"\nFirst Prediction:\n";
93 cout <<
"X: " << ekf.
state() << endl;
94 cout <<
"P: " << TransformP * ekf.
covariance() * TransformP.transpose()
99 cout <<
"\nFirst Update:\n";
100 cout <<
"X: " << ekf.
state() << endl;
101 cout <<
"P: " << TransformP * ekf.
covariance() * TransformP.transpose()
106 cout <<
"\nSecond Prediction:\n";
107 cout <<
"X: " << ekf.
state() << endl;
108 cout <<
"P: " << TransformP * ekf.
covariance() * TransformP.transpose()
113 cout <<
"\nSecond Update:\n";
114 cout <<
"X: " << ekf.
state() << endl;
115 cout <<
"P: " << TransformP * ekf.
covariance() * TransformP.transpose()