From 7fc1befdca012f92a2b89c3d27f9ac2dc35bb306 Mon Sep 17 00:00:00 2001 From: dellaert Date: Sun, 9 Aug 2015 11:43:26 -0700 Subject: [PATCH] Two different random seeds for better Monte-Carlo --- gtsam/navigation/tests/testImuFactor.cpp | 64 ++++++++---------------- 1 file changed, 20 insertions(+), 44 deletions(-) diff --git a/gtsam/navigation/tests/testImuFactor.cpp b/gtsam/navigation/tests/testImuFactor.cpp index 51aa7c7c5..74265b97e 100644 --- a/gtsam/navigation/tests/testImuFactor.cpp +++ b/gtsam/navigation/tests/testImuFactor.cpp @@ -114,66 +114,47 @@ Vector3 evaluateLogRotation(const Vector3 thetahat, const Vector3 deltatheta) { } // namespace /* ************************************************************************* */ -Matrix9 MonteCarlo(const PreintegratedImuMeasurements& pim, +bool MonteCarlo(const PreintegratedImuMeasurements& pim, const NavState& state, const imuBias::ConstantBias& bias, double dt, const Pose3& body_P_sensor, const Vector3& measuredAcc, - const Vector3& measuredOmega, size_t N = 10, size_t M = 1) { + const Vector3& measuredOmega, size_t N = 10, + size_t M = 1) { // Get mean prediction from "ground truth" measurements PreintegratedImuMeasurements pim1 = pim; - for (size_t k=0;kaccelerometerCovariance, p->gyroscopeCovariance, Z_3x3, true); // MonteCarlo does not sample integration noise - Matrix9 Q = MonteCarlo(pimMC, state1, kZeroBias, dt/10, Pose3(), measuredAcc, - measuredOmega); + EXPECT(MonteCarlo(pimMC, state1, kZeroBias, dt/10, Pose3(), measuredAcc, measuredOmega)); // Check integrated quantities in body frame: gravity measured by IMU is integrated! Vector3 b_deltaP(a * dt22, 0, -g * dt22); @@ -648,8 +624,8 @@ TEST(ImuFactor, ErrorWithBiasesAndSensorBodyDisplacement) { // Get mean prediction from "ground truth" measurements PreintegratedImuMeasurements pim(biasHat, kMeasuredAccCovariance, kMeasuredOmegaCovariance, Z_3x3, true); // MonteCarlo does not sample integration noise - Matrix9 Q = MonteCarlo(pim, NavState(x1, v1), bias, dt, body_P_sensor, - measuredAcc, measuredOmega); + EXPECT(MonteCarlo(pim, NavState(x1, v1), bias, dt, body_P_sensor, + measuredAcc, measuredOmega)); Matrix expected(9,9); expected << @@ -783,8 +759,8 @@ TEST(ImuFactor, PredictArbitrary) { Pose3 x1; Vector3 v1 = Vector3(0, 0, 0); imuBias::ConstantBias bias(Vector3(0, 0, 0), Vector3(0, 0, 0)); - Matrix9 Q = MonteCarlo(pim, NavState(x1, v1), bias, 0.1, Pose3(), - measuredAcc, measuredOmega); + EXPECT(MonteCarlo(pim, NavState(x1, v1), bias, 0.1, Pose3(), + measuredAcc, measuredOmega)); for (int i = 0; i < 1000; ++i) pim.integrateMeasurement(measuredAcc, measuredOmega, dt);