diff --git a/src/examples/test_imuPlateform_Offline.cpp b/src/examples/test_imuPlateform_Offline.cpp index 487fac3754c1960e6979cc19fdc87a209fea5e6f..04e27bd4975af1f4839791cc48bcf4acaff815a5 100644 --- a/src/examples/test_imuPlateform_Offline.cpp +++ b/src/examples/test_imuPlateform_Offline.cpp @@ -96,7 +96,7 @@ int main(int argc, char** argv) // SENSOR + PROCESSOR ODOM 3D SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D.yaml"); - ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>(); + ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>(); prc_odom3D_params->max_time_span = 1.9999; prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass prc_odom3D_params->dist_traveled = 1000000000; diff --git a/src/examples/test_imu_constrained0.cpp b/src/examples/test_imu_constrained0.cpp index 185406733ff2d9f5f13520d3a7de08e4c2539952..f5affb647c73cac0b2f5ab29eca4e9ec34b7889c 100644 --- a/src/examples/test_imu_constrained0.cpp +++ b/src/examples/test_imu_constrained0.cpp @@ -118,7 +118,7 @@ int main(int argc, char** argv) // SENSOR + PROCESSOR ODOM 3D SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D_HQ.yaml"); - ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>(); + ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>(); prc_odom3D_params->max_time_span = 20.9999; prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass prc_odom3D_params->dist_traveled = 1000000000; diff --git a/src/processor_odom_3D.cpp b/src/processor_odom_3D.cpp index 70b31a4430236a4c07b4b5430585bebd3c66c40c..38c337fd8e19a0c26bf590ab85b98ab263b5da4b 100644 --- a/src/processor_odom_3D.cpp +++ b/src/processor_odom_3D.cpp @@ -2,12 +2,12 @@ namespace wolf { -ProcessorOdom3D::ProcessorOdom3D(ProcessorOdom3DParamsPtr _params, SensorOdom3DPtr _sensor_ptr) : +ProcessorOdom3D::ProcessorOdom3D(const ProcessorParamsOdom3D& _params, SensorOdom3DPtr _sensor_ptr) : ProcessorMotion("ODOM 3D", 7, 7, 6, 6), - max_time_span_ (_params ? _params ->max_time_span : 1.0 ), - max_buff_length_(_params ? _params ->max_buff_length : 10 ), - dist_traveled_ (_params ? _params ->dist_traveled : 1.0 ), - angle_turned_ (_params ? _params ->angle_turned : 0.5 ), + max_time_span_ ( _params.max_time_span ), + max_buff_length_( _params.max_buff_length ), + dist_traveled_ ( _params.dist_traveled ), + angle_turned_ ( _params.angle_turned ), p1_(nullptr), p2_(nullptr), p_out_(nullptr), q1_(nullptr), q2_(nullptr), q_out_(nullptr) { @@ -261,12 +261,12 @@ Motion ProcessorOdom3D::interpolate(const Motion& _motion_ref, Motion& _motion_s ProcessorBasePtr ProcessorOdom3D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr _sen_ptr) { // cast inputs to the correct type - std::shared_ptr<ProcessorOdom3DParams> prc_odo_params = std::static_pointer_cast<ProcessorOdom3DParams>(_params); + std::shared_ptr<ProcessorParamsOdom3D> prc_odo_params = std::static_pointer_cast<ProcessorParamsOdom3D>(_params); SensorOdom3DPtr sen_odo =std::static_pointer_cast<SensorOdom3D>(_sen_ptr); // construct processor - ProcessorOdom3DPtr prc_odo = std::make_shared<ProcessorOdom3D>(prc_odo_params, sen_odo); + ProcessorOdom3DPtr prc_odo = std::make_shared<ProcessorOdom3D>(*prc_odo_params, sen_odo); // setup processor prc_odo->setName(_unique_name); diff --git a/src/processor_odom_3D.h b/src/processor_odom_3D.h index 0827cd3bdd1b63f4910ab911310f355f52e359e7..1dbbf2ad3658c48cf5cf0bc257ade424d6e1f9b2 100644 --- a/src/processor_odom_3D.h +++ b/src/processor_odom_3D.h @@ -18,25 +18,14 @@ namespace wolf { -WOLF_STRUCT_PTR_TYPEDEFS(ProcessorOdom3DParams); +WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom3D); -struct ProcessorOdom3DParams : public ProcessorParamsBase +struct ProcessorParamsOdom3D : public ProcessorParamsBase { - Scalar max_time_span; - Size max_buff_length; - Scalar dist_traveled; - Scalar angle_turned; - - - ProcessorOdom3DParams() : - max_time_span(0), - max_buff_length(0), - dist_traveled(0), - angle_turned(0) - { - type = "ODOM 3D"; - name = ""; - } + Scalar max_time_span = 1.0; + Size max_buff_length = 10; + Scalar dist_traveled = 1.0; + Scalar angle_turned = 0.5; }; @@ -67,7 +56,7 @@ WOLF_PTR_TYPEDEFS(ProcessorOdom3D); class ProcessorOdom3D : public ProcessorMotion { public: - ProcessorOdom3D(ProcessorOdom3DParamsPtr _params = nullptr, SensorOdom3DPtr _sensor_ptr = nullptr); + ProcessorOdom3D(const ProcessorParamsOdom3D& _params = ProcessorParamsOdom3D(), SensorOdom3DPtr _sensor_ptr = nullptr); virtual ~ProcessorOdom3D(); void setup(SensorOdom3DPtr sen_ptr); diff --git a/src/serialization/cereal/serialization_processor_odom3d_params.h b/src/serialization/cereal/serialization_processor_odom3d_params.h index 06770f759cbcf96ca77faf3d83a2a16f0822db04..9b658a233d1832f914a2986d133ab61207e3ff52 100644 --- a/src/serialization/cereal/serialization_processor_odom3d_params.h +++ b/src/serialization/cereal/serialization_processor_odom3d_params.h @@ -8,7 +8,7 @@ namespace cereal { template <class Archive> -void serialize(Archive& ar, wolf::ProcessorOdom3DParams& o, +void serialize(Archive& ar, wolf::ProcessorParamsOdom3D& o, std::uint32_t const /*version*/) { ar( cereal::make_nvp("ProcessorParamsBase", @@ -22,6 +22,6 @@ void serialize(Archive& ar, wolf::ProcessorOdom3DParams& o, } // namespace cereal -CEREAL_REGISTER_TYPE_WITH_NAME(wolf::ProcessorOdom3DParams, "ProcessorOdom3DParams") +CEREAL_REGISTER_TYPE_WITH_NAME(wolf::ProcessorParamsOdom3D, "ProcessorOdom3DParams") #endif /* _WOLF_SERIALIZATION_CEREAL_PROCESSOR_ODOM3D_PARAMS_H_ */ diff --git a/src/test/gtest_constraint_IMU.cpp b/src/test/gtest_constraint_IMU.cpp index 3accb792b20b23f5f7d5e6b31fbf0a7dfd7fd662..a507efbc0052ddf42863077c639f3448d787cc54 100644 --- a/src/test/gtest_constraint_IMU.cpp +++ b/src/test/gtest_constraint_IMU.cpp @@ -887,7 +887,7 @@ class ConstraintIMU_ODOM_biasTest_Move_NonNullBiasRot : public testing::Test WOLF_TRACE("IMU cov: ", sensor_imu->getNoiseCov().diagonal().transpose()); WOLF_TRACE("ODO cov: ", sensor_odo->getNoiseCov().diagonal().transpose()); - ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>(); + ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>(); prc_odom3D_params->max_time_span = 0.0099; prc_odom3D_params->max_buff_length = 1000; //make it very high so that this condition will not pass prc_odom3D_params->dist_traveled = 1000; @@ -1064,7 +1064,7 @@ class ConstraintIMU_ODOM_biasTest_Move_NonNullBiasRotY : public testing::Test // SENSOR + PROCESSOR ODOM 3D SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D_HQ.yaml"); - ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>(); + ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>(); prc_odom3D_params->max_time_span = 0.9999; prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass prc_odom3D_params->dist_traveled = 1000000000; @@ -1205,7 +1205,7 @@ class ConstraintIMU_ODOM_biasTest_Move_NonNullBiasRotXY : public testing::Test // SENSOR + PROCESSOR ODOM 3D SensorBasePtr sen1_ptr = wolf_problem_ptr_->installSensor("ODOM 3D", "odom", (Vector7s()<<0,0,0,0,0,0,1).finished(), wolf_root + "/src/examples/sensor_odom_3D_HQ.yaml"); - ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorOdom3DParams>(); + ProcessorOdom3DParamsPtr prc_odom3D_params = std::make_shared<ProcessorParamsOdom3D>(); prc_odom3D_params->max_time_span = 0.9999; prc_odom3D_params->max_buff_length = 1000000000; //make it very high so that this condition will not pass prc_odom3D_params->dist_traveled = 1000000000; diff --git a/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp b/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp index ed2aaab3b9b257a708b680db2e38d7b6eb51d592..7a84ef3ffd56301409146ca855e313eef20d79f4 100644 --- a/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp +++ b/src/test/serialization/cereal/gtest_serialization_processor_odom3d_params.cpp @@ -31,7 +31,7 @@ public: const std::string path_to_io = "/tmp/"; - wolf::ProcessorOdom3DParams nb_; + wolf::ProcessorParamsOdom3D nb_; }; TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, @@ -39,7 +39,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, { const std::string filename(path_to_io + "params_odom3d_serialization.xml"); - wolf::ProcessorOdom3DParams nb_save; + wolf::ProcessorParamsOdom3D nb_save; nb_save.name = "NAME2"; //nb_.type = "ODOM 3D"; @@ -51,7 +51,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, ASSERT_NO_THROW( wolf::save( filename, nb_, nb_save, 10 ) ); { - wolf::ProcessorOdom3DParams nb_load; + wolf::ProcessorParamsOdom3D nb_load; ASSERT_NO_THROW( wolf::load( filename, nb_load ) ); @@ -62,7 +62,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, ASSERT_EQ(nb_load.dist_traveled, nb_.dist_traveled); ASSERT_EQ(nb_load.angle_turned, nb_.angle_turned); - wolf::ProcessorOdom3DParams nb_load0, nb_load1; + wolf::ProcessorParamsOdom3D nb_load0, nb_load1; int myint; ASSERT_NO_THROW( wolf::load( filename, nb_load0, nb_load1, myint ) ); @@ -95,7 +95,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, { wolf::ProcessorParamsBasePtr nb = - std::make_shared<wolf::ProcessorOdom3DParams>(nb_); + std::make_shared<wolf::ProcessorParamsOdom3D>(nb_); ASSERT_NO_THROW( wolf::save( filename, nb ) ); } @@ -106,7 +106,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, ASSERT_NO_THROW( wolf::load( filename, nb ) ); wolf::ProcessorOdom3DParamsPtr nb_cast = - std::dynamic_pointer_cast<wolf::ProcessorOdom3DParams>(nb); + std::dynamic_pointer_cast<wolf::ProcessorParamsOdom3D>(nb); ASSERT_TRUE(nb_cast != nullptr); @@ -130,7 +130,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, ASSERT_NO_THROW( wolf::save( filename, nb_ ) ); - wolf::ProcessorOdom3DParams nb_load; + wolf::ProcessorParamsOdom3D nb_load; ASSERT_NO_THROW( wolf::load( filename, nb_load ) ); @@ -153,7 +153,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, { wolf::ProcessorParamsBasePtr nb = - std::make_shared<wolf::ProcessorOdom3DParams>(nb_); + std::make_shared<wolf::ProcessorParamsOdom3D>(nb_); ASSERT_NO_THROW( wolf::save( filename, nb ) ); } @@ -164,7 +164,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, ASSERT_NO_THROW( wolf::load( filename, nb ) ); wolf::ProcessorOdom3DParamsPtr nb_cast = - std::dynamic_pointer_cast<wolf::ProcessorOdom3DParams>(nb); + std::dynamic_pointer_cast<wolf::ProcessorParamsOdom3D>(nb); ASSERT_TRUE(nb_cast != nullptr); @@ -188,7 +188,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, ASSERT_NO_THROW( wolf::save( filename, nb_ ) ); - wolf::ProcessorOdom3DParams nb_load; + wolf::ProcessorParamsOdom3D nb_load; ASSERT_NO_THROW( wolf::load( filename, nb_load ) ); @@ -211,7 +211,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, { wolf::ProcessorParamsBasePtr nb = - std::make_shared<wolf::ProcessorOdom3DParams>(nb_); + std::make_shared<wolf::ProcessorParamsOdom3D>(nb_); ASSERT_NO_THROW( wolf::save( filename, nb ) ); } @@ -222,7 +222,7 @@ TEST_F(WolfTestCerealSerializationProcessorOdom3DParams, ASSERT_NO_THROW( wolf::load( filename, nb ) ); wolf::ProcessorOdom3DParamsPtr nb_cast = - std::dynamic_pointer_cast<wolf::ProcessorOdom3DParams>(nb); + std::dynamic_pointer_cast<wolf::ProcessorParamsOdom3D>(nb); ASSERT_TRUE(nb_cast != nullptr); diff --git a/src/yaml/processor_odom_3D_yaml.cpp b/src/yaml/processor_odom_3D_yaml.cpp index a8fbce5997d01b90abc2340fddb2556f4bfc2f91..450fec00b84ee22c1013640c168260fa229c7c11 100644 --- a/src/yaml/processor_odom_3D_yaml.cpp +++ b/src/yaml/processor_odom_3D_yaml.cpp @@ -34,7 +34,7 @@ static ProcessorParamsBasePtr createProcessorOdom3DParams(const std::string & _f YAML::Node kf_vote = config["keyframe vote"]; - ProcessorOdom3DParamsPtr params = std::make_shared<ProcessorOdom3DParams>(); + ProcessorParamsOdom3DPtr params = std::make_shared<ProcessorParamsOdom3D>(); params->type = processor_type; params->name = processor_name;