diff --git a/test/gtest_problem.cpp b/test/gtest_problem.cpp index 11517881f579e721a213b9a4dc4346521f1bdfcc..14b925af6fd32af5a95420a74822399a57d10e4b 100644 --- a/test/gtest_problem.cpp +++ b/test/gtest_problem.cpp @@ -6,7 +6,7 @@ */ #include "core/utils/utils_gtest.h" -#include "core/utils/logging.h" +//#include "core/utils/logging.h" #include "core/problem/problem.h" #include "core/sensor/sensor_base.h" @@ -109,9 +109,9 @@ TEST(Problem, SetOrigin_PO_2d) // Eigen::VectorXd x0(3); x0 << 1,2,3; VectorComposite x0(Vector3d(1,2,3), "PO", {2,1}); // Eigen::MatrixXd P0(Eigen::MatrixXd::Identity(3,3) * 0.1); // P0 is 0.1*Id - VectorComposite P0(Vector3d(sqrt(0.1),sqrt(0.1),sqrt(0.1)), "PO", {2,1}); + VectorComposite s0(Vector3d(sqrt(0.1),sqrt(0.1),sqrt(0.1)), "PO", {2,1}); - P->setPriorFactor(x0, P0, t0, 1.0); + P->setPriorFactor(x0, s0, t0, 1.0); P->print(4,1,1,1); @@ -125,8 +125,8 @@ TEST(Problem, SetOrigin_PO_2d) TrajectoryBasePtr T = P->getTrajectory(); FrameBasePtr F = P->getLastFrame(); CaptureBasePtr C = F->getCaptureList().front(); - FeatureBasePtr fp = C->getFeatureList().front(); - FeatureBasePtr fo = C->getFeatureList().back(); + FeatureBasePtr fo = C->getFeatureList().front(); + FeatureBasePtr fp = C->getFeatureList().back(); FactorBasePtrList fac_list; F->getFactorList(fac_list); @@ -148,8 +148,20 @@ TEST(Problem, SetOrigin_PO_2d) ASSERT_FALSE(fac->getFeatureOther()); } auto x0_vector = x0.vector("PO"); - auto P0_vector = P0.vector("PO"); - auto P0_matrix = (P0_vector.array() * P0_vector.array()).matrix(); + auto s0_vector = s0.vector("PO"); + MatrixXd P0_matrix = (s0_vector.array() * s0_vector.array()).matrix().asDiagonal(); + + WOLF_DEBUG("x0 ", x0); + WOLF_DEBUG("x0_vector ", x0_vector.transpose()); + WOLF_DEBUG("s0 ", s0); + WOLF_DEBUG("s0_vector ", s0_vector.transpose()); + WOLF_DEBUG("P0_matrix ", P0_matrix); + WOLF_DEBUG("fp meas ", fp->getMeasurement().transpose()); + WOLF_DEBUG("fp cova ", fp->getMeasurementCovariance()); + WOLF_DEBUG("fo meas ", fo->getMeasurement().transpose()); + WOLF_DEBUG("fo cova ", fo->getMeasurementCovariance()); + + // check that the Feature measurement and covariance are the ones provided ASSERT_MATRIX_APPROX(x0_vector.head<2>(), fp->getMeasurement(), Constants::EPS_SMALL ); ASSERT_MATRIX_APPROX(x0_vector.tail<1>(), fo->getMeasurement(), Constants::EPS_SMALL ); @@ -167,9 +179,9 @@ TEST(Problem, SetOrigin_PO_3d) VectorComposite x0(vec7, "PO", {3,4}); // Eigen::MatrixXd P0(6,6); P0.setIdentity(); P0 *= 0.1; // P0 is 0.1*Id Eigen::VectorXd vec6(6); vec6 << sqrt(0.1), sqrt(0.1), sqrt(0.1), sqrt(0.1), sqrt(0.1), sqrt(0.1); - VectorComposite P0(vec6, "PO", {3,3}); + VectorComposite s0(vec6, "PO", {3,3}); - P->setPriorFactor(x0, P0, t0, 1.0); + P->setPriorFactor(x0, s0, t0, 1.0); // check that no sensor has been added ASSERT_EQ(P->getHardware()->getSensorList().size(), (SizeStd) 0); @@ -181,8 +193,8 @@ TEST(Problem, SetOrigin_PO_3d) TrajectoryBasePtr T = P->getTrajectory(); FrameBasePtr F = P->getLastFrame(); CaptureBasePtr C = F->getCaptureList().front(); - FeatureBasePtr fp = C->getFeatureList().front(); - FeatureBasePtr fo = C->getFeatureList().back(); + FeatureBasePtr fo = C->getFeatureList().front(); + FeatureBasePtr fp = C->getFeatureList().back(); FactorBasePtrList fac_list; F->getFactorList(fac_list); @@ -205,8 +217,8 @@ TEST(Problem, SetOrigin_PO_3d) } auto x0_vector = x0.vector("PO"); - auto P0_vector = P0.vector("PO"); - auto P0_matrix = (P0_vector.array() * P0_vector.array()).matrix(); + auto s0_vector = s0.vector("PO"); + MatrixXd P0_matrix = (s0_vector.array() * s0_vector.array()).matrix().asDiagonal(); // check that the Feature measurement and covariance are the ones provided ASSERT_MATRIX_APPROX(x0_vector.head<3>(), fp->getMeasurement(), Constants::EPS_SMALL ); ASSERT_MATRIX_APPROX(x0_vector.tail<4>(), fo->getMeasurement(), Constants::EPS_SMALL );