diff --git a/include/bodydynamics/factor/factor_force_torque.h b/include/bodydynamics/factor/factor_force_torque.h index c04ecaa5b08a38b6a2306cc1a15ee159b475002d..39ccacc20bc6086214f4963cb1fa1e4572f2da60 100644 --- a/include/bodydynamics/factor/factor_force_torque.h +++ b/include/bodydynamics/factor/factor_force_torque.h @@ -36,11 +36,6 @@ class FactorForceTorque : public FactorAutodiff<FactorForceTorque, 9, 3,3,3, 3,3 ~FactorForceTorque() override { /* nothing */ } - std::string getTopology() const override - { - return std::string("GEOM"); - } - /* _ck : COM position in world frame, time k _cdk : COM velocity in world frame, time k @@ -97,6 +92,7 @@ FactorForceTorque::FactorForceTorque( bool _apply_loss_function, FactorStatus _status) : FactorAutodiff("FactorForceTorque", + TOP_GEOM, _feat, _frame_other, // _frame_other_ptr nullptr, // _capture_other_ptr diff --git a/include/bodydynamics/factor/factor_force_torque_preint.h b/include/bodydynamics/factor/factor_force_torque_preint.h index 3e8cb94b105315c86d4d1e9adcc0a9055b7c0f8f..05b2e571fa5f59a9f328adcfd53c82d7501662de 100644 --- a/include/bodydynamics/factor/factor_force_torque_preint.h +++ b/include/bodydynamics/factor/factor_force_torque_preint.h @@ -28,11 +28,6 @@ class FactorForceTorquePreint : public FactorAutodiff<FactorForceTorquePreint, 1 ~FactorForceTorquePreint() override = default; - std::string getTopology() const override - { - return std::string("MOTION"); - } - /** \brief : compute the residual from the state blocks being iterated by the solver. -> computes the expected measurement -> corrects actual measurement with new bias @@ -122,6 +117,7 @@ inline FactorForceTorquePreint::FactorForceTorquePreint( FactorStatus _status) : FactorAutodiff<FactorForceTorquePreint, 12, 3,3,3,4,3,6, 3,3,3,4>( "FactorForceTorquePreint", + TOP_MOTION, _ftr_ptr, _cap_origin_ptr->getFrame(), _cap_origin_ptr, diff --git a/include/bodydynamics/factor/factor_inertial_kinematics.h b/include/bodydynamics/factor/factor_inertial_kinematics.h index 734309b3034beaf5f76bcb0bf8cf4e742c28c740..0352a13bf2b4e5ae27b1c309d1a7b8fdb560c97e 100644 --- a/include/bodydynamics/factor/factor_inertial_kinematics.h +++ b/include/bodydynamics/factor/factor_inertial_kinematics.h @@ -27,11 +27,6 @@ class FactorInertialKinematics : public FactorAutodiff<FactorInertialKinematics, ~FactorInertialKinematics() override { /* nothing */ } - std::string getTopology() const override - { - return std::string("GEOM"); - } - // to keep track of the imu bias, not the standard way to proceed StateBlockPtr sb_bias_imu_; @@ -75,6 +70,7 @@ FactorInertialKinematics::FactorInertialKinematics( bool _apply_loss_function, FactorStatus _status) : FactorAutodiff("FactorInertialKinematics", + TOP_GEOM, _feat, nullptr, // _frame_other_ptr nullptr, // _capture_other_ptr diff --git a/include/bodydynamics/factor/factor_point_feet_nomove.h b/include/bodydynamics/factor/factor_point_feet_nomove.h index 7e4d3ff1dd1285c52faf6d62db96daa0274d398c..a9897ec348bedce98ba502895253cc068630e530 100644 --- a/include/bodydynamics/factor/factor_point_feet_nomove.h +++ b/include/bodydynamics/factor/factor_point_feet_nomove.h @@ -42,11 +42,6 @@ class FactorPointFeetNomove : public FactorAutodiff<FactorPointFeetNomove, ~FactorPointFeetNomove() override { /* nothing */ } - std::string getTopology() const override - { - return std::string("GEOM"); - } - /* Factor state blocks: _pb: W_p_WB -> base position in world frame @@ -79,6 +74,7 @@ FactorPointFeetNomove::FactorPointFeetNomove( bool _apply_loss_function, FactorStatus _status) : FactorAutodiff("FactorPointFeetNomove", + TOP_GEOM, _ftr_current_ptr, _frame_past_ptr, // _frame_other_ptr nullptr, // _capture_other_ptr diff --git a/include/bodydynamics/processor/processor_point_feet_nomove.h b/include/bodydynamics/processor/processor_point_feet_nomove.h index 06ec45e8b7c0f543edb6bcb8c89b54d0561753b7..b1be5f547e0721c3783a26b765cf8c66a43b44d3 100644 --- a/include/bodydynamics/processor/processor_point_feet_nomove.h +++ b/include/bodydynamics/processor/processor_point_feet_nomove.h @@ -20,7 +20,7 @@ struct ParamsProcessorPointFeetNomove : public ParamsProcessorBase { } ~ParamsProcessorPointFeetNomove() override = default; - std::string print() const + std::string print() const override { return "\n" + ParamsProcessorBase::print() + "\n"; } diff --git a/test/gtest_factor_force_torque.cpp b/test/gtest_factor_force_torque.cpp index 2a8ef4179695edba64fe2447f3179330637dc8de..12de186211a52c91ccbb85b087311556b9ebf359 100644 --- a/test/gtest_factor_force_torque.cpp +++ b/test/gtest_factor_force_torque.cpp @@ -56,7 +56,7 @@ FactorInertialKinematics_2KF_1v_bfix,ZeroMvt: // ODOM3d #include "core/capture/capture_pose.h" #include "core/feature/feature_pose.h" -#include "core/factor/factor_odom_3d.h" +#include "core/factor/factor_relative_pose_3d.h" #include <Eigen/Eigenvalues> @@ -516,7 +516,7 @@ class FactorInertialKinematics_2KF_ForceX_Odom3d : public FactorInertialKinemati CaptureBasePtr cap_pose_base = CaptureBase::emplace<CapturePose>(KFB_, tB_, nullptr, pose_A_B, rel_pose_cov); FeatureBasePtr ftr_pose_base = FeatureBase::emplace<FeaturePose>(cap_pose_base, pose_A_B, rel_pose_cov); - FactorBase::emplace<FactorOdom3d>(ftr_pose_base, ftr_pose_base, KFA_, nullptr, false); + FactorBase::emplace<FactorRelativePose3d>(ftr_pose_base, ftr_pose_base, KFA_, nullptr, false, TOP_MOTION); // With Odom3d the bias on relative base COM position is observable, we unfix the KFB state block CIKB_->getStateBlock('I')->unfix(); diff --git a/test/gtest_processor_force_torque_preint.cpp b/test/gtest_processor_force_torque_preint.cpp index 287b9525096e5a83f680611acb351b0648874c87..4c8d6ebedc692c824ba17bfa41c6a852e1831415 100644 --- a/test/gtest_processor_force_torque_preint.cpp +++ b/test/gtest_processor_force_torque_preint.cpp @@ -24,7 +24,7 @@ #include <core/capture/capture_pose.h> #include <core/feature/feature_base.h> #include <core/factor/factor_block_absolute.h> -#include <core/factor/factor_odom_3d.h> +#include <core/factor/factor_relative_pose_3d.h> // IMU #include "imu/sensor/sensor_imu.h" @@ -273,7 +273,7 @@ public: KF2_ = problem_->getTrajectory()->getLastFrame(); CaptureBasePtr cap_pose_base = CaptureBase::emplace<CapturePose>(KF2_, KF2_->getTimeStamp(), nullptr, prev_pose_curr_, rel_pose_cov); FeatureBasePtr ftr_odom3d_base = FeatureBase::emplace<FeaturePose>(cap_pose_base, prev_pose_curr_, rel_pose_cov); - FactorBase::emplace<FactorOdom3d>(ftr_odom3d_base, ftr_odom3d_base, KF1_, nullptr, false); + FactorBase::emplace<FactorRelativePose3d>(ftr_odom3d_base, ftr_odom3d_base, KF1_, nullptr, false, TOP_MOTION); //////////////////////////////////////////// // Add absolute factor on Imu biases to simulate a fix()