Better test, with 2nd order integration
parent
11d0ad0d78
commit
2007391987
|
@ -758,26 +758,43 @@ TEST(ImuFactor, ErrorWithBiasesAndSensorBodyDisplacement) {
|
||||||
ImuFactor::PreintegratedMeasurements pim(
|
ImuFactor::PreintegratedMeasurements pim(
|
||||||
imuBias::ConstantBias(Vector3(0.2, 0.0, 0.0), Vector3(0.0, 0.0, 0.0)),
|
imuBias::ConstantBias(Vector3(0.2, 0.0, 0.0), Vector3(0.0, 0.0, 0.0)),
|
||||||
kMeasuredAccCovariance, kMeasuredOmegaCovariance,
|
kMeasuredAccCovariance, kMeasuredOmegaCovariance,
|
||||||
kIntegrationErrorCovariance);
|
kIntegrationErrorCovariance, true);
|
||||||
|
|
||||||
pim.integrateMeasurement(measuredAcc, measuredOmega, deltaT);
|
pim.integrateMeasurement(measuredAcc, measuredOmega, deltaT, body_P_sensor);
|
||||||
Matrix expected(9,9);
|
Matrix expected(9,9);
|
||||||
expected <<
|
expected <<
|
||||||
0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,//
|
0.0026, 0.0, 0.0, 0.005, 0.0, 0.0, 0.0, 0.0, 0.0,//
|
||||||
0.0, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,//
|
0.0, 0.0026, 0.0, 0.0, 0.005, 0.0, 0.0, 0.0, 0.0,//
|
||||||
0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,//
|
0.0, 0.0, 0.0026, 0.0, 0.0, 0.005, 0.0, 0.0, 0.0,//
|
||||||
0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0,//
|
0.005, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0,//
|
||||||
0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0,//
|
0.0, 0.005, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0,//
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0,//
|
0.0, 0.0, 0.005, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0,//
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0290687976, 0.0, 0.0,//
|
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0290780477, 0.0, 9.23468723e-05,//
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0290687976, 0.0,//
|
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0290688208, 4.62505461e-06,//
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03;
|
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.23468723e-05, 4.62505461e-06, 0.0299907267;
|
||||||
EXPECT(assert_equal(expected, pim.preintMeasCov(), 1e-7));
|
EXPECT(assert_equal(expected, pim.preintMeasCov(), 1e-6));
|
||||||
|
|
||||||
// Create factor
|
// Create factor
|
||||||
ImuFactor factor(X(1), V(1), X(2), V(2), B(1), pim, kGravity,
|
ImuFactor factor(X(1), V(1), X(2), V(2), B(1), pim, kGravity,
|
||||||
kNonZeroOmegaCoriolis);
|
kNonZeroOmegaCoriolis);
|
||||||
|
|
||||||
|
// Predict
|
||||||
|
Pose3 actual_x2;
|
||||||
|
Vector3 actual_v2;
|
||||||
|
ImuFactor::Predict(x1, v1, actual_x2, actual_v2, bias, factor.preintegratedMeasurements(),
|
||||||
|
kGravity, kZeroOmegaCoriolis);
|
||||||
|
|
||||||
|
// Regression test with
|
||||||
|
Rot3 expectedR( //
|
||||||
|
0.456795409, -0.888128414, 0.0506544554, //
|
||||||
|
0.889548908, 0.45563417, -0.0331699173, //
|
||||||
|
0.00637924528, 0.0602114814, 0.998165258);
|
||||||
|
Point3 expectedT(5.30373101, 0.768972495, -49.9942188);
|
||||||
|
Vector3 expected_v2(0.107462014, -0.46205501, 0.0115624037);
|
||||||
|
Pose3 expected_x2(expectedR, expectedT);
|
||||||
|
EXPECT(assert_equal(expected_x2, actual_x2, 1e-7));
|
||||||
|
EXPECT(assert_equal(Vector(expected_v2), actual_v2, 1e-7));
|
||||||
|
|
||||||
Values values;
|
Values values;
|
||||||
values.insert(X(1), x1);
|
values.insert(X(1), x1);
|
||||||
values.insert(V(1), v1);
|
values.insert(V(1), v1);
|
||||||
|
|
Loading…
Reference in New Issue