51 int numberOfTimeSteps = 1000;
52 const double processNoiseSigma = 1;
53 const double accelerometerNoiseSigma = 1;
54 const double gpsNoiseSigma = 1;
72 for (
int k = 0; k < 3; k++) {
87 for (
int k = 1; k <= numberOfTimeSteps; ++k) {
93 for (
int m = 0; m < 3; m++) {
94 state[m] += dt * (state[m + 3] + 0.5 * dt * processNoise[m]);
97 for (
int m = 0; m < 3; m++) {
98 state[m + 3] += dt * processNoise[m];
102 Vector3d accelerometerMeasurement;
103 for (
int m = 0; m < 3; m++) {
104 accelerometerMeasurement[m] =
109 Vector3d gpsMeasurement;
110 for (
int m = 0; m < 3; m++) {
134 vPrevSet.insert(vPrev);
137 lastStateNode = stateNode;
150 cerr <<
"number of vertices:" << optimizer.
vertices().size() << endl;
151 cerr <<
"number of edges:" << optimizer.
edges().size() << endl;
155 cout <<
"state=\n" << state << endl;
158 for (
int k = 0; k < numberOfTimeSteps; k++)
160 cout <<
"computed estimate " << k <<
"\n"
167 .find((std::max)(numberOfTimeSteps - 2, 0))
172 .find((std::max)(numberOfTimeSteps - 1, 0))
175 cout <<
"v1=\n" << v1 << endl;
176 cout <<
"v2=\n" << v2 << endl;
177 cout <<
"delta state=\n" << v2 - v1 << endl;