diff --git a/test/dummy/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h index 8a1c6e72cb733460655c31ee9f1705024d79c14a..3adda695e214671e4e8f1e1c6193ff48c642b516 100644 --- a/test/dummy/processor_tracker_feature_dummy.h +++ b/test/dummy/processor_tracker_feature_dummy.h @@ -32,6 +32,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature { protected: unsigned int n_tracks_lost_; ///< number of tracks lost each time track is called (the first ones) + unsigned int dim_; ///< dimension of the problem public: ProcessorTrackerFeatureDummy(const YAML::Node& _params); @@ -40,7 +41,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature // Factory method for high level API WOLF_PROCESSOR_CREATE(ProcessorTrackerFeatureDummy); - void configure(SensorBasePtr _sensor) override{}; + void configure(SensorBasePtr _sensor) override {}; /** \brief Track provided features in \b _capture * \param _features_in input list of features in \b last to track @@ -166,8 +167,12 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature }; inline ProcessorTrackerFeatureDummy::ProcessorTrackerFeatureDummy(const YAML::Node& _params) - : ProcessorTrackerFeature("ProcessorTrackerFeatureDummy", {{'P', "StatePoint2d"}, {'O', "StateAngle"}}, _params), - n_tracks_lost_(_params["n_tracks_lost"].as<unsigned int>()) + : ProcessorTrackerFeature("ProcessorTrackerFeatureDummy", + {{'P', _params["dimension"].as<unsigned int>() == 2 ? "StatePoint2d" : "StatePoint3d"}, + {'O', _params["dimension"].as<unsigned int>() == 2 ? "StateAngle" : "StateQuaternion"}}, + _params), + n_tracks_lost_(_params["n_tracks_lost"].as<unsigned int>()), + dim_(_params["dimension"].as<unsigned int>()) { // } diff --git a/test/dummy/schema/ProcessorTrackerFeatureDummy.schema b/test/dummy/schema/ProcessorTrackerFeatureDummy.schema index 9d0cc884ff0cc94e76adee4ea6bbee56718056e2..66510885bf4ff646bea2364b1755cc8edccc81b0 100644 --- a/test/dummy/schema/ProcessorTrackerFeatureDummy.schema +++ b/test/dummy/schema/ProcessorTrackerFeatureDummy.schema @@ -2,4 +2,9 @@ follow: ProcessorTrackerFeature.schema n_tracks_lost: _mandatory: true _type: unsigned int - _doc: dummy parameter. \ No newline at end of file + _doc: dummy parameter. +dimension: + _mandatory: true + _type: unsigned int + _doc: dimension of the problem representation. + _options: [2, 3] \ No newline at end of file diff --git a/test/gtest_problem.cpp b/test/gtest_problem.cpp index 407ed00f982bc232a3a8570834aa31ed8f5cc08a..8e728971610bac32e950bf4b2614994ad1d9501c 100644 --- a/test/gtest_problem.cpp +++ b/test/gtest_problem.cpp @@ -69,7 +69,7 @@ TEST(Problem, Installers) SensorBasePtr S = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d.yaml", {wolf_dir}); // install processor tracker (dummy installation under an Odometry sensor -- it's OK for this test) - auto pt = P->installProcessor(S, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir}); + auto pt = P->installProcessor(S, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_3d.yaml", {wolf_dir}); // check motion processor IS NOT set ASSERT_TRUE(P->getMotionProviderMap().empty()); @@ -252,7 +252,7 @@ TEST(Problem, StateBlocks) SensorBasePtr Sm = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d.yaml", {wolf_dir}); ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd)2); - auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir}); + auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_3d.yaml", {wolf_dir}); auto pm = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_odom_3d.yaml", {wolf_dir}); // 2 state blocks, estimated @@ -310,7 +310,7 @@ TEST(Problem, Covariances) SensorBasePtr Sm = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d.yaml", {wolf_dir}); SensorBasePtr St = P->installSensor(wolf_dir + "/test/yaml/sensor_odom_3d_other.yaml", {wolf_dir}); - auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir}); + auto pt = P->installProcessor(Sm, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_3d.yaml", {wolf_dir}); auto pm = P->installProcessor(St, wolf_dir + "/test/yaml/processor_odom_3d.yaml", {wolf_dir}); // 4 state blocks, estimated @@ -758,6 +758,6 @@ TEST(Problem, transform) int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); - // testing::GTEST_FLAG(filter) = "Problem.autoSetupNoMap"; + // testing::GTEST_FLAG(filter) = "Problem.Installers"; return RUN_ALL_TESTS(); } diff --git a/test/gtest_processor_base.cpp b/test/gtest_processor_base.cpp index 94786ce69179e1c459ba664047353229aec565b5..867f3af2f67fba0dc72351029d5c86666634d956 100644 --- a/test/gtest_processor_base.cpp +++ b/test/gtest_processor_base.cpp @@ -47,7 +47,7 @@ TEST(ProcessorBase, MotionProvider) // Install tracker (sensor and processor) auto sens_trk = problem->installSensor(wolf_dir + "/test/yaml/sensor_dummy_2d.yaml", {wolf_dir}); auto proc_trk = - problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir}); + problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_2d.yaml", {wolf_dir}); // Install odometer (sensor and processor) auto sens_odo = problem->installSensor(wolf_dir + "/test/yaml/sensor_odom_2d.yaml", {wolf_dir}); @@ -67,7 +67,7 @@ TEST(ProcessorBase, KeyFrameCallback) // Install tracker (sensor and processor) auto sens_trk = problem->installSensor(wolf_dir + "/test/yaml/sensor_dummy_2d.yaml", {wolf_dir}); auto proc_trk = - problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir}); + problem->installProcessor(sens_trk, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_2d.yaml", {wolf_dir}); proc_trk->setVotingActive(false); // Install odometer (sensor and processor) diff --git a/test/gtest_processor_tracker_feature_dummy.cpp b/test/gtest_processor_tracker_feature_dummy.cpp index bf68d7ffaf11352a7899482a7a6ca2e622732557..c378efea8c132f08768df6501a07b2879d1baa0c 100644 --- a/test/gtest_processor_tracker_feature_dummy.cpp +++ b/test/gtest_processor_tracker_feature_dummy.cpp @@ -48,7 +48,7 @@ class ProcessorTrackerFeatureDummyTest : public testing::Test // Install processor processor = std::static_pointer_cast<ProcessorTrackerFeatureDummy>(problem->installProcessor( - sensor, wolf_dir + "/test/yaml/processor_tracker_feature_dummy.yaml", {wolf_dir})); + sensor, wolf_dir + "/test/yaml/processor_tracker_feature_dummy_2d.yaml", {wolf_dir})); } }; diff --git a/test/yaml/processor_tracker_feature_dummy.yaml b/test/yaml/processor_tracker_feature_dummy_2d.yaml similarity index 95% rename from test/yaml/processor_tracker_feature_dummy.yaml rename to test/yaml/processor_tracker_feature_dummy_2d.yaml index 4139a42cd48cac30a4c8fd981a09ca925cb3508f..0ed4af7d16e1be033a0afe3c479b83b4f4a78490 100644 --- a/test/yaml/processor_tracker_feature_dummy.yaml +++ b/test/yaml/processor_tracker_feature_dummy_2d.yaml @@ -3,6 +3,7 @@ type: ProcessorTrackerFeatureDummy plugin: core sensor_name: whatever +dimension: 2 time_tolerance: 0.25 keyframe_vote: voting_active: true diff --git a/test/yaml/processor_tracker_feature_dummy_3d.yaml b/test/yaml/processor_tracker_feature_dummy_3d.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2cbdfdee3d1c613ce1441c3f020c947ec7bb4fcd --- /dev/null +++ b/test/yaml/processor_tracker_feature_dummy_3d.yaml @@ -0,0 +1,13 @@ +name: cool dummy processor +type: ProcessorTrackerFeatureDummy +plugin: core +sensor_name: whatever + +dimension: 3 +time_tolerance: 0.25 +keyframe_vote: + voting_active: true + min_features_for_keyframe: 7 +apply_loss_function: false +max_new_features: 10 +n_tracks_lost: 1 \ No newline at end of file diff --git a/test/yaml/processor_tracker_two_processors_1.yaml b/test/yaml/processor_tracker_two_processors_1.yaml index 20b3c02571eefd1032d0d4e86019f4150d3927eb..0620d88d7729e7d6eee98e2b6f8f26b4cdd0e5f9 100644 --- a/test/yaml/processor_tracker_two_processors_1.yaml +++ b/test/yaml/processor_tracker_two_processors_1.yaml @@ -3,6 +3,7 @@ type: ProcessorTrackerFeatureDummy plugin: core sensor_name: whatever +dimension: 2 time_tolerance: 0.5 keyframe_vote: voting_active: true diff --git a/test/yaml/processor_tracker_two_processors_2.yaml b/test/yaml/processor_tracker_two_processors_2.yaml index b2ad07b9cd52362a0010b04135498f96ea21733d..4f1a075084346ce0355dbe7b9483cfb72aa1fb33 100644 --- a/test/yaml/processor_tracker_two_processors_2.yaml +++ b/test/yaml/processor_tracker_two_processors_2.yaml @@ -3,6 +3,7 @@ type: ProcessorTrackerFeatureDummy plugin: core sensor_name: whatever +dimension: 2 time_tolerance: 0.5 keyframe_vote: voting_active: true