Skip to content
Snippets Groups Projects
Commit a86bb561 authored by Médéric Fourmy's avatar Médéric Fourmy
Browse files

Solved most bugs, matrix is not a covariance left

parent b88641e5
No related branches found
No related tags found
No related merge requests found
...@@ -112,19 +112,19 @@ class FactorInertialKinematics_ZeroMvt : public testing::Test ...@@ -112,19 +112,19 @@ class FactorInertialKinematics_ZeroMvt : public testing::Test
KF0->getV()->fix(); KF0->getV()->fix();
Eigen::Vector3d zero3; zero3 << 0,0,0; Eigen::Vector3d zero3; zero3 << 0,0,0;
Eigen::Vector3d zero6; zero6 << zero3, zero3; Eigen::Vector6d zero6; zero6 << zero3, zero3;
StateBlockPtr sbc; sbc->setState(zero3); StateBlockPtr sbc = std::make_shared<StateBlock>(zero3);
StateBlockPtr sbd; sbd->setState(zero3); StateBlockPtr sbd = std::make_shared<StateBlock>(zero3);
StateBlockPtr sbL; sbL->setState(zero3); StateBlockPtr sbL = std::make_shared<StateBlock>(zero3);
StateBlockPtr sbb; sbb->setState(zero3); StateBlockPtr sbb = std::make_shared<StateBlock>(zero3);
StateBlockPtr sbbimu; sbbimu->setState(zero6); StateBlockPtr sbbimu = std::make_shared<StateBlock>(zero6);
KF0->addStateBlock("C", sbc); KF0->addStateBlock("C", sbc); problem->notifyStateBlock(sbc,ADD);
KF0->addStateBlock("D", sbd); KF0->addStateBlock("D", sbd); problem->notifyStateBlock(sbd,ADD);
KF0->addStateBlock("L", sbL); KF0->addStateBlock("L", sbL); problem->notifyStateBlock(sbL,ADD);
KF0->addStateBlock("B", sbb); KF0->addStateBlock("B", sbb); problem->notifyStateBlock(sbb,ADD);
std::cout << KF0->getStateBlock("L")->getState().conjugate() << std::endl; std::cout << KF0->getStateBlock("L")->getState() << std::endl;
// =============== SET KIN MEASUREMENT AND COVARIANCE // =============== SET KIN MEASUREMENT AND COVARIANCE
// Measurements // Measurements
...@@ -145,15 +145,20 @@ class FactorInertialKinematics_ZeroMvt : public testing::Test ...@@ -145,15 +145,20 @@ class FactorInertialKinematics_ZeroMvt : public testing::Test
Eigen::Matrix3d Qw; Qw.setIdentity(); Eigen::Matrix3d Qw; Qw.setIdentity();
Eigen::Matrix9d Qkin = computeKinCov(Qp, Qv, Qw, pBC_meas-bias_p, w_meas-bias_w); Eigen::Matrix9d Qkin = computeKinCov(Qp, Qv, Qw, pBC_meas-bias_p, w_meas-bias_w);
std::cout << "Qp\n" << Qp << std::endl;
std::cout << "Qv\n" << Qv << std::endl;
std::cout << "Qw\n" << Qw << std::endl;
std::cout << "Qkin\n" << Qkin << std::endl;
// =============== CREATE CAPURE/FEATURE/FACTOR // =============== CREATE CAPURE/FEATURE/FACTOR
Eigen::Vector9d meas; meas << pBC_meas, vBC_meas, w_meas; Eigen::Vector9d meas; meas << pBC_meas, vBC_meas, w_meas;
CaptureBasePtr cap = CaptureBase::emplace<CaptureBase>(KF0, "CaptureInertialKinematics", t, nullptr); CaptureBasePtr cap = CaptureBase::emplace<CaptureBase>(KF0, "CaptureInertialKinematics", t, nullptr);
auto feat = FeatureBase::emplace<FeatureInertialKinematics>(cap, meas, Qkin, Iq, Lq, FeatureBase::UncertaintyType::UNCERTAINTY_IS_COVARIANCE); // auto feat = FeatureBase::emplace<FeatureInertialKinematics>(cap, meas, Qkin, Iq, Lq, FeatureBase::UncertaintyType::UNCERTAINTY_IS_COVARIANCE);
auto feat_in = std::static_pointer_cast<FeatureInertialKinematics>(feat); // auto feat_in = std::static_pointer_cast<FeatureInertialKinematics>(feat);
sbbimu->fix(); // sbbimu->fix();
auto fac = FactorBase::emplace<FactorInertialKinematics>(feat, feat, sbbimu); // auto fac = FactorBase::emplace<FactorInertialKinematics>(feat, feat, sbbimu);
} }
...@@ -161,12 +166,13 @@ class FactorInertialKinematics_ZeroMvt : public testing::Test ...@@ -161,12 +166,13 @@ class FactorInertialKinematics_ZeroMvt : public testing::Test
}; };
TEST_F(FactorInertialKinematics_ZeroMvt,RandomName) TEST_F(FactorInertialKinematics_ZeroMvt,ZeroMvt)
{ {
problem->print(3,0,1,1); problem->print(3,0,1,1);
std::cout << "SOLVING" << std::endl; std::cout << "SOLVING" << std::endl;
// std::string report = ceres_manager->solve(SolverManager::ReportVerbosity::BRIEF); // 0: nothing, 1: BriefReport, 2: FullReport; // std::string report = ceres_manager->solve(SolverManager::ReportVerbosity::BRIEF); // 0: nothing, 1: BriefReport, 2: FullReport;
ASSERT_MATRIX_APPROX(KF0->getState(), KF0->getState(), 1e-5); // ASSERT_MATRIX_APPROX(KF0->getState(), KF0->getState(), 1e-5);
ASSERT_TRUE(true);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment