From a70dd2e4ec96d6990c744d7bfe10d9345ea1d2c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu> Date: Wed, 25 May 2022 14:41:33 +0200 Subject: [PATCH] FactorySensor & FactorySensorYaml same yaml --- include/core/sensor/sensor_base.h | 2 +- include/core/utils/params_server.h | 8 +- src/problem/problem.cpp | 8 +- src/utils/params_server.cpp | 23 +- test/gtest_sensor_base.cpp | 61 +++- test/gtest_sensor_odom_2d.cpp | 338 ++++++++++++------ test/yaml/sensor_base/sensor_POIA_3D.yaml | 23 ++ .../sensor_base/sensor_POIA_3D_wrong.yaml | 23 ++ .../yaml/sensor_base/sensor_PO_2D_factor.yaml | 13 + .../sensor_PO_2D_factor_dynamic.yaml | 13 + .../sensor_PO_2D_factor_dynamic_drift.yaml | 15 + ...nsor_PO_2D_factor_dynamic_drift_wrong.yaml | 15 + .../sensor_PO_2D_factor_dynamic_wrong.yaml | 13 + .../sensor_PO_2D_factor_wrong.yaml | 13 + test/yaml/sensor_base/sensor_PO_2D_fix.yaml | 11 + .../sensor_base/sensor_PO_2D_fix_dynamic.yaml | 11 + .../sensor_PO_2D_fix_dynamic_drift.yaml | 13 + .../sensor_PO_2D_fix_dynamic_drift_wrong.yaml | 13 + .../sensor_PO_2D_fix_dynamic_wrong.yaml | 11 + .../sensor_base/sensor_PO_2D_fix_wrong.yaml | 11 + .../sensor_PO_2D_initial_guess.yaml | 11 + .../sensor_PO_2D_initial_guess_dynamic.yaml | 11 + ...sor_PO_2D_initial_guess_dynamic_drift.yaml | 13 + ..._2D_initial_guess_dynamic_drift_wrong.yaml | 13 + ...sor_PO_2D_initial_guess_dynamic_wrong.yaml | 11 + .../sensor_PO_2D_initial_guess_wrong.yaml | 11 + .../yaml/sensor_base/sensor_PO_3D_factor.yaml | 13 + .../sensor_PO_3D_factor_dynamic.yaml | 13 + .../sensor_PO_3D_factor_dynamic_drift.yaml | 15 + ...nsor_PO_3D_factor_dynamic_drift_wrong.yaml | 15 + .../sensor_PO_3D_factor_dynamic_wrong.yaml | 13 + .../sensor_PO_3D_factor_wrong.yaml | 13 + test/yaml/sensor_base/sensor_PO_3D_fix.yaml | 11 + .../sensor_base/sensor_PO_3D_fix_dynamic.yaml | 11 + .../sensor_PO_3D_fix_dynamic_drift.yaml | 13 + .../sensor_PO_3D_fix_dynamic_drift_wrong.yaml | 13 + .../sensor_PO_3D_fix_dynamic_wrong.yaml | 11 + .../sensor_base/sensor_PO_3D_fix_wrong.yaml | 11 + .../sensor_PO_3D_initial_guess.yaml | 11 + .../sensor_PO_3D_initial_guess_dynamic.yaml | 11 + ...sor_PO_3D_initial_guess_dynamic_drift.yaml | 13 + ..._3D_initial_guess_dynamic_drift_wrong.yaml | 13 + ...sor_PO_3D_initial_guess_dynamic_wrong.yaml | 11 + .../sensor_PO_3D_initial_guess_wrong.yaml | 11 + .../sensor_all.yaml} | 0 test/yaml/sensor_base/sensor_dummy.yaml | 24 ++ test/yaml/sensor_base/sensor_dummy_wrong.yaml | 24 ++ test/yaml/sensor_dummy.yaml | 52 --- test/yaml/sensor_odom_2d.yaml | 316 ---------------- test/yaml/sensor_odom_2d/sensor_odom_2d.yaml | 14 + .../sensor_odom_2d/sensor_odom_2d_factor.yaml | 14 + .../sensor_odom_2d_factor_dynamic.yaml | 14 + .../sensor_odom_2d_factor_dynamic_drift.yaml | 16 + ...or_odom_2d_factor_dynamic_drift_wrong.yaml | 16 + .../sensor_odom_2d_factor_dynamic_wrong.yaml | 14 + .../sensor_odom_2d_factor_wrong.yaml | 14 + .../sensor_odom_2d/sensor_odom_2d_fix.yaml | 12 + .../sensor_odom_2d_fix_dynamic.yaml | 12 + .../sensor_odom_2d_fix_dynamic_drift.yaml | 14 + ...ensor_odom_2d_fix_dynamic_drift_wrong.yaml | 14 + .../sensor_odom_2d_fix_dynamic_wrong.yaml | 12 + .../sensor_odom_2d_fix_wrong.yaml | 12 + .../sensor_odom_2d_initial_guess.yaml | 12 + .../sensor_odom_2d_initial_guess_dynamic.yaml | 12 + ...r_odom_2d_initial_guess_dynamic_drift.yaml | 14 + ..._2d_initial_guess_dynamic_drift_wrong.yaml | 14 + ...r_odom_2d_initial_guess_dynamic_wrong.yaml | 12 + .../sensor_odom_2d_initial_guess_wrong.yaml | 12 + .../sensor_odom_2d/sensor_odom_2d_wrong.yaml | 13 + 69 files changed, 1116 insertions(+), 497 deletions(-) create mode 100644 test/yaml/sensor_base/sensor_POIA_3D.yaml create mode 100644 test/yaml/sensor_base/sensor_POIA_3D_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_factor.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_factor_dynamic.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_factor_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_fix.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_fix_dynamic.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_fix_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_initial_guess.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_2D_initial_guess_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_factor.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_factor_dynamic.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_factor_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_fix.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_fix_dynamic.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_fix_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_initial_guess.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_base/sensor_PO_3D_initial_guess_wrong.yaml rename test/yaml/{sensor_base.yaml => sensor_base/sensor_all.yaml} (100%) create mode 100644 test/yaml/sensor_base/sensor_dummy.yaml create mode 100644 test/yaml/sensor_base/sensor_dummy_wrong.yaml delete mode 100644 test/yaml/sensor_dummy.yaml delete mode 100644 test/yaml/sensor_odom_2d.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_factor.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_factor_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_fix.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_fix_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_wrong.yaml create mode 100644 test/yaml/sensor_odom_2d/sensor_odom_2d_wrong.yaml diff --git a/include/core/sensor/sensor_base.h b/include/core/sensor/sensor_base.h index 5f55b72dd..48eddca9f 100644 --- a/include/core/sensor/sensor_base.h +++ b/include/core/sensor/sensor_base.h @@ -71,7 +71,7 @@ static SensorBasePtr create(const std::string& _unique_name, SizeEigen _dim, con { \ auto parser = ParserYaml(_yaml_filepath, "", true); \ \ - auto server = ParamsServer(parser.getParams()); \ + auto server = ParamsServer(parser.getParams(), "sensor/" + _unique_name); \ \ auto params = std::make_shared<ParamsSensorClass>(_unique_name, server); \ \ diff --git a/include/core/utils/params_server.h b/include/core/utils/params_server.h index b1562a906..2ca64f4cc 100644 --- a/include/core/utils/params_server.h +++ b/include/core/utils/params_server.h @@ -39,12 +39,13 @@ class ParamsServer { private: + std::string global_prefix_; std::map<std::string, std::string> params_; public: - ParamsServer(); - ParamsServer(std::map<std::string, std::string> _params); + ParamsServer(const std::string& _global_prefix = ""); + ParamsServer(std::map<std::string, std::string> _params, const std::string& _global_prefix = ""); ~ParamsServer() { // @@ -62,11 +63,10 @@ class ParamsServer T getParam(std::string _key) const { if(params_.count(_key)) - return converter<T>::convert(params_.find(_key)->second); + return converter<T>::convert(params_.at(_key)); else throw MissingValueException("The following key: '" + _key + "' has not been found in the parameters server."); } - }; template<typename Derived> diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp index dc064e6b7..f624a36df 100644 --- a/src/problem/problem.cpp +++ b/src/problem/problem.cpp @@ -223,12 +223,11 @@ SensorBasePtr Problem::installSensor(const std::string& _sen_type, // SensorBasePtr Problem::installSensor(const std::string& _sen_type, // const std::string& _unique_sensor_name, // const Eigen::VectorXd& _extrinsics, // - const std::string& _intrinsics_filename) + const std::string& _params_yaml_filename) { - - if (_intrinsics_filename != "") + if (_params_yaml_filename != "") { - assert(file_exists(_intrinsics_filename) && "Cannot install sensor: intrinsics' YAML file does not exist."); + assert(file_exists(_params_yaml_filename) && "Cannot install sensor: intrinsics' YAML file does not exist."); //ParamsSensorBasePtr intr_ptr = FactoryParamsSensor::create(_sen_type, _intrinsics_filename); return installSensor(_sen_type, _unique_sensor_name, _extrinsics, ParamsSensorBasePtr()); } @@ -241,7 +240,6 @@ SensorBasePtr Problem::installSensor(const std::string& _sen_type, // const std::string& _unique_sensor_name, // const ParamsServer& _server) { - //ParamsSensorBasePtr params = FactoryParamsSensor::create(_sen_type, _unique_sensor_name, _server); SensorBasePtr sen_ptr = FactorySensor::create(_sen_type, _unique_sensor_name, dim_, _server); sen_ptr->link(getHardware()); return sen_ptr; diff --git a/src/utils/params_server.cpp b/src/utils/params_server.cpp index b8f2475bd..249dabd38 100644 --- a/src/utils/params_server.cpp +++ b/src/utils/params_server.cpp @@ -24,13 +24,21 @@ namespace wolf { -ParamsServer::ParamsServer() +ParamsServer::ParamsServer(const std::string& _global_prefix) : + ParamsServer::ParamsServer(std::map<std::string, std::string>{}, _global_prefix) { - params_ = std::map<std::string, std::string>(); } -ParamsServer::ParamsServer(std::map<std::string, std::string> _params) -{ - params_ = _params; +ParamsServer::ParamsServer(std::map<std::string, std::string> _params, const std::string& _global_prefix) : + global_prefix_(_global_prefix) +{ + if (not global_prefix_.empty()) + { + if (global_prefix_.front() == '/') + global_prefix_.erase(0,1); + if (global_prefix_.back() != '/') + global_prefix_.push_back('/'); + } + addParams(_params); } void ParamsServer::print() @@ -41,12 +49,13 @@ void ParamsServer::print() void ParamsServer::addParam(std::string _key, std::string _value) { - params_.insert(std::pair<std::string, std::string>(_key, _value)); + params_.insert(std::pair<std::string, std::string>(global_prefix_ + _key, _value)); } void ParamsServer::addParams(std::map<std::string, std::string> _params) { - params_.insert(_params.begin(), _params.end()); + for (auto param_pair : _params) + addParam(param_pair.first, param_pair.second); } std::string toString(bool _arg) diff --git a/test/gtest_sensor_base.cpp b/test/gtest_sensor_base.cpp index 76a9a0d42..06e1430b2 100644 --- a/test/gtest_sensor_base.cpp +++ b/test/gtest_sensor_base.cpp @@ -344,11 +344,8 @@ TEST(SensorBase, POI_mixed) } // CONSTRUCTOR WITH PARAM SERVER and KEY_TYPES -TEST(SensorBase, server) +TEST(SensorBase, server_PO) { - ParserYaml parser = ParserYaml("test/yaml/sensor_base.yaml", wolf_root, true); - ParamsServer server = ParamsServer(parser.getParams()); - std::vector<int> dims({2, 3}); std::vector<std::string> modes({"fix", "initial_guess", "factor"}); std::vector<bool> dynamics({false, true}); @@ -369,8 +366,14 @@ TEST(SensorBase, server) if (not dynamic and drift) continue; - // CORRECT YAML std::string name = "sensor_PO_" + to_string(dim) + "D_" + mode + (dynamic ? "_dynamic" : "") + (drift ? "_drift" : ""); + + // Yaml parser + ParserYaml parser = ParserYaml("test/yaml/sensor_base/" + name + ".yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "/sensor/" + name); + server.print(); + + // CORRECT YAML WOLF_INFO("Creating sensor from name ", name); auto params = std::make_shared<ParamsSensorBase>(name, server); @@ -401,6 +404,19 @@ TEST(SensorBase, server) std::make_shared<ParamsSensorBase>(name + "_wrong", server), server),std::runtime_error); } +} + +TEST(SensorBase, server_POIA) +{ + VectorXd p_state(4), o_state(4), po_std(4); + p_state << 1, 2, 3, 4; + o_state << 1, 0, 0, 0; + po_std << 0.1, 0.2, 0.3, 0.4; + + // Yaml parser + ParserYaml parser = ParserYaml("test/yaml/sensor_base/sensor_POIA_3D.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_POIA_3D"); + server.print(); // POIA - 3D - CORRECT YAML WOLF_INFO("Creating sensor from name sensor_POIA_3D"); @@ -422,6 +438,13 @@ TEST(SensorBase, server) checkSensor(S, 'O', o_state.head(4), true, vector0, false, vector0); checkSensor(S, 'I', p_state.head(4), false, vector0, true, po_std.head(4)); checkSensor(S, 'A', o_state.head(4), false, po_std.head(3), true, po_std.head(3)); +} + +TEST(SensorBase, server_POIA_wrong) +{ + // Yaml parser + ParserYaml parser = ParserYaml("test/yaml/sensor_base/sensor_POIA_3D_wrong.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_POIA_3D_wrong"); // POIA - 3D - INCORRECT YAML WOLF_INFO("Creating sensor from name sensor_POIA_3D_wrong"); @@ -437,8 +460,8 @@ TEST(SensorBase, server) // DUMMY CLASS TEST(SensorBase, dummy_make_shared) { - ParserYaml parser = ParserYaml("test/yaml/sensor_dummy.yaml", wolf_root, true); - ParamsServer server = ParamsServer(parser.getParams()); + ParserYaml parser = ParserYaml("test/yaml/sensor_base/sensor_dummy.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_dummy_1"); VectorXd p_state(4), o_state(4), po_std(4); p_state << 1, 2, 3, 4; @@ -463,7 +486,12 @@ TEST(SensorBase, dummy_make_shared) checkSensor(S, 'O', o_state.head(4), true, vector0, false, vector0); checkSensor(S, 'I', p_state.head(4), false, vector0, true, po_std.head(4)); checkSensor(S, 'A', o_state.head(4), false, po_std.head(3), true, po_std.head(3)); +} +TEST(SensorBase, dummy_make_shared_wrong) +{ + ParserYaml parser = ParserYaml("test/yaml/sensor_base/sensor_dummy_wrong.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_dummy_1_wrong"); // POIA - 3D - INCORRECT YAML WOLF_INFO("Creating sensor from name sensor_dummy_1_wrong"); @@ -481,8 +509,8 @@ TEST(SensorBase, dummy_factory) o_state << 1, 0, 0, 0; po_std << 0.1, 0.2, 0.3, 0.4; - ParserYaml parser = ParserYaml("test/yaml/sensor_dummy.yaml", wolf_root, true); - ParamsServer server = ParamsServer(parser.getParams()); + ParserYaml parser = ParserYaml("test/yaml/sensor_base/sensor_dummy.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_dummy_1"); // POIA - 3D - CORRECT YAML WOLF_INFO("Creating sensor from name sensor_dummy_1"); @@ -501,7 +529,12 @@ TEST(SensorBase, dummy_factory) checkSensor(S, 'O', o_state.head(4), true, vector0, false, vector0); checkSensor(S, 'I', p_state.head(4), false, vector0, true, po_std.head(4)); checkSensor(S, 'A', o_state.head(4), false, po_std.head(3), true, po_std.head(3)); +} +TEST(SensorBase, dummy_factory_wrong) +{ + ParserYaml parser = ParserYaml("test/yaml/sensor_base/sensor_dummy_wrong.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_dummy_1_wrong"); // POIA - 3D - INCORRECT YAML WOLF_INFO("Creating sensor from name sensor_dummy_1_wrong"); @@ -520,7 +553,10 @@ TEST(SensorBase, dummy_factory_yaml) // POIA - 3D - CORRECT YAML WOLF_INFO("Creating sensor from name sensor_dummy_1"); - auto S = FactorySensorYaml::create("SensorDummy", "sensor_dummy_1", 3, wolf_root + "/test/yaml/sensor_dummy.yaml"); + auto S = FactorySensorYaml::create("SensorDummy", + "sensor_dummy_1", + 3, + wolf_root + "/test/yaml/sensor_base/sensor_dummy.yaml"); // noise ASSERT_MATRIX_APPROX(S->getNoiseStd(), po_std.head<2>(), Constants::EPS); @@ -538,7 +574,10 @@ TEST(SensorBase, dummy_factory_yaml) // POIA - 3D - INCORRECT YAML WOLF_INFO("Creating sensor from name sensor_dummy_1_wrong"); - ASSERT_THROW(FactorySensorYaml::create("SensorDummy", "sensor_dummy_1_wrong", 3, wolf_root + "/test/yaml/sensor_dummy.yaml"), + ASSERT_THROW(FactorySensorYaml::create("SensorDummy", + "sensor_dummy_1_wrong", + 3, + wolf_root + "/test/yaml/sensor_base/sensor_dummy_wrong.yaml"), std::runtime_error); } diff --git a/test/gtest_sensor_odom_2d.cpp b/test/gtest_sensor_odom_2d.cpp index c8a072fc1..8fdaf0907 100644 --- a/test/gtest_sensor_odom_2d.cpp +++ b/test/gtest_sensor_odom_2d.cpp @@ -43,23 +43,26 @@ Matrix2d noise_cov = noise_std.cwiseAbs2().asDiagonal(); double k_disp_to_disp = 0.5; double k_rot_to_rot = 0.8; -void checkSensorOdom2d(SensorOdom2dPtr S, - const Vector2d& _p_state, - const Vector1d& _o_state, - bool _p_fixed, - bool _o_fixed, - const VectorXd& _p_noise_std, - const VectorXd& _o_noise_std, - bool _p_dynamic, - bool _o_dynamic, - const VectorXd& _p_drift_std, - const VectorXd& _o_drift_std) +void checkSensorOdom2d(SensorBasePtr S_base, + const Vector2d& _p_state, + const Vector1d& _o_state, + bool _p_fixed, + bool _o_fixed, + const VectorXd& _p_noise_std, + const VectorXd& _o_noise_std, + bool _p_dynamic, + bool _o_dynamic, + const VectorXd& _p_drift_std, + const VectorXd& _o_drift_std) { MatrixXd p_noise_cov = _p_noise_std.cwiseAbs2().asDiagonal(); MatrixXd o_noise_cov = _o_noise_std.cwiseAbs2().asDiagonal(); MatrixXd p_drift_cov = _p_drift_std.cwiseAbs2().asDiagonal(); MatrixXd o_drift_cov = _o_drift_std.cwiseAbs2().asDiagonal(); + // cast + SensorOdom2dPtr S = std::dynamic_pointer_cast<SensorOdom2d>(S_base); + ASSERT_TRUE(S!=nullptr); // params ASSERT_NEAR(S->getDispVarToDispNoiseFactor(), k_disp_to_disp, Constants::EPS); ASSERT_NEAR(S->getRotVarToRotNoiseFactor(), k_rot_to_rot, Constants::EPS); @@ -200,7 +203,7 @@ TEST(SensorOdom2d, initial_guess_dynamic_drift) } // mixed -TEST(SensorOdom2d, POI_mixed) +TEST(SensorOdom2d, mixed) { auto params = std::make_shared<ParamsSensorOdom2d>(); params->noise_std = noise_std; @@ -217,123 +220,256 @@ TEST(SensorOdom2d, POI_mixed) // CONSTRUCTOR WITH PARAM SERVER and KEY_TYPES TEST(SensorOdom2d, server) { - ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d.yaml", wolf_root, true); - ParamsServer server = ParamsServer(parser.getParams()); - std::vector<std::string> modes({"fix", "initial_guess", "factor"}); std::vector<bool> dynamics({false, true}); std::vector<bool> drifts({false, true}); + std::vector<bool> wrongs({false, true}); // P & O for (auto mode : modes) for (auto dynamic : dynamics) for (auto drift : drifts) - { - // nonsense combination - if (not dynamic and drift) - continue; - - // CORRECT YAML - std::string name = "sensor_" + mode + (dynamic ? "_dynamic" : "") + (drift ? "_drift" : ""); - WOLF_INFO("Creating sensor from name ", name); - - auto params = std::make_shared<ParamsSensorOdom2d>(name, server); - auto S = std::make_shared<SensorOdom2d>(name, 2, params, server); - - auto p_size_std = mode == "factor" ? 2 : 0; - auto o_size_std = mode == "factor" ? 1 : 0; - auto p_size_std_drift = drift ? 2 : 0; - auto o_size_std_drift = drift ? 1 : 0; - - // check - checkSensorOdom2d(S, p_state, o_state, - mode == "fix", mode == "fix", - p_std.head(p_size_std), o_std.head(o_size_std), - dynamic, dynamic, - p_std.head(p_size_std_drift), o_std.head(o_size_std_drift)); - - // INCORRECT YAML - WOLF_INFO("Creating sensor from name ", name + "_wrong"); - ASSERT_THROW(std::make_shared<SensorOdom2d>(name + "_wrong", 2, - std::make_shared<ParamsSensorOdom2d>(name + "_wrong", server), - server), - std::runtime_error); - } + for (auto wrong : wrongs) + { + // nonsense combination + if (not dynamic and drift) + continue; + + // Yaml parser + std::string name = "sensor_odom_2d_" + + mode + + (dynamic ? "_dynamic" : "") + + (drift ? "_drift" : "") + + (wrong ? "_wrong" : ""); + ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d/" + name + ".yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/" + name); + + WOLF_INFO("Creating sensor from name ", name); + + // CORRECT YAML + if (not wrong) + { + auto params = std::make_shared<ParamsSensorOdom2d>(name, server); + auto S = std::make_shared<SensorOdom2d>(name, 2, params, server); + + auto p_size_std = mode == "factor" ? 2 : 0; + auto o_size_std = mode == "factor" ? 1 : 0; + auto p_size_std_drift = drift ? 2 : 0; + auto o_size_std_drift = drift ? 1 : 0; + + // check + checkSensorOdom2d(S, p_state, o_state, + mode == "fix", mode == "fix", + p_std.head(p_size_std), o_std.head(o_size_std), + dynamic, dynamic, + p_std.head(p_size_std_drift), o_std.head(o_size_std_drift)); + } + // INCORRECT YAML + else + { + ASSERT_THROW(std::make_shared<SensorOdom2d>(name + "_wrong", 2, + std::make_shared<ParamsSensorOdom2d>(name + "_wrong", server), + server), + std::runtime_error); + } + } // MIXED - CORRECT YAML - WOLF_INFO("Creating sensor from name sensor_mixed"); - - auto params = std::make_shared<ParamsSensorOdom2d>("sensor_mixed", server); - auto S = std::make_shared<SensorOdom2d>("sensor_mixed", 2, params, server); - - // check - checkSensorOdom2d(S, - p_state, o_state, - false, true, - p_std, vector0, - true, false, - p_std, vector0); + { + WOLF_INFO("Creating sensor from name sensor_mixed"); + + // Yaml parser + ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d/sensor_odom_2d.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_mixed"); + + auto params = std::make_shared<ParamsSensorOdom2d>("sensor_mixed", server); + auto S = std::make_shared<SensorOdom2d>("sensor_mixed", 2, params, server); + + // check + checkSensorOdom2d(S, + p_state, o_state, + false, true, + p_std, vector0, + true, false, + p_std, vector0); + } // MIXED - INCORRECT YAML - WOLF_INFO("Creating sensor from name sensor_mixed_wrong"); + { + WOLF_INFO("Creating sensor from name sensor_mixed_wrong"); + + // Yaml parser + ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d/sensor_odom_2d_wrong.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_mixed_wrong"); - ASSERT_THROW(std::make_shared<SensorOdom2d>("sensor_mixed_wrong", 2, - std::make_shared<ParamsSensorOdom2d>("sensor_mixed_wrong", server), - server), - std::runtime_error); + ASSERT_THROW(std::make_shared<SensorOdom2d>("sensor_mixed_wrong", 2, + std::make_shared<ParamsSensorOdom2d>("sensor_mixed_wrong", server), + server), + std::runtime_error); + } } TEST(SensorOdom2d, factory) { - ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d.yaml", wolf_root, true); - ParamsServer server = ParamsServer(parser.getParams()); + std::vector<std::string> modes({"fix", "initial_guess", "factor"}); + std::vector<bool> dynamics({false, true}); + std::vector<bool> drifts({false, true}); + std::vector<bool> wrongs({false, true}); + + // P & O + for (auto mode : modes) + for (auto dynamic : dynamics) + for (auto drift : drifts) + for (auto wrong : wrongs) + { + // nonsense combination + if (not dynamic and drift) + continue; + + // Yaml parser + std::string name = "sensor_odom_2d_" + + mode + + (dynamic ? "_dynamic" : "") + + (drift ? "_drift" : "") + + (wrong ? "_wrong" : ""); + ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d/" + name + ".yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/" + name); + + WOLF_INFO("Creating sensor from name ", name); + + // CORRECT YAML + if (not wrong) + { + auto S = FactorySensor::create("SensorOdom2d", name, 2, server); + + auto p_size_std = mode == "factor" ? 2 : 0; + auto o_size_std = mode == "factor" ? 1 : 0; + auto p_size_std_drift = drift ? 2 : 0; + auto o_size_std_drift = drift ? 1 : 0; + + // check + checkSensorOdom2d(S, p_state, o_state, + mode == "fix", mode == "fix", + p_std.head(p_size_std), o_std.head(o_size_std), + dynamic, dynamic, + p_std.head(p_size_std_drift), o_std.head(o_size_std_drift)); + } + // INCORRECT YAML + else + { + ASSERT_THROW(FactorySensor::create("SensorOdom2d", name, 2, server), + std::runtime_error); + } + } - // CORRECT YAML - WOLF_INFO("Creating sensor from name sensor_mixed"); + // MIXED - CORRECT YAML + { + WOLF_INFO("Creating sensor from name sensor_mixed"); - auto S = FactorySensor::create("SensorOdom2d", "sensor_mixed", 2, server); + // Yaml parser + ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d/sensor_odom_2d.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_mixed"); - SensorOdom2dPtr S_odom = std::dynamic_pointer_cast<SensorOdom2d>(S); + auto S = FactorySensor::create("SensorOdom2d", "sensor_mixed", 2, server); - // checks - ASSERT_TRUE(S_odom != nullptr); - checkSensorOdom2d(S_odom, - p_state, o_state, - false, true, - p_std, vector0, - true, false, - p_std, vector0); - - // INCORRECT YAML - WOLF_INFO("Creating sensor from name sensor_mixed_wrong"); - - ASSERT_THROW(FactorySensor::create("SensorOdom2d", "sensor_mixed_wrong", 2, server), - std::runtime_error); + // check + checkSensorOdom2d(S, + p_state, o_state, + false, true, + p_std, vector0, + true, false, + p_std, vector0); + } + + // MIXED - INCORRECT YAML + { + WOLF_INFO("Creating sensor from name sensor_mixed_wrong"); + + // Yaml parser + ParserYaml parser = ParserYaml("test/yaml/sensor_odom_2d/sensor_odom_2d_wrong.yaml", wolf_root, true); + ParamsServer server = ParamsServer(parser.getParams(), "sensor/sensor_mixed_wrong"); + + ASSERT_THROW(FactorySensor::create("SensorOdom2d", "sensor_mixed_wrong", 2, server), + std::runtime_error); + } } TEST(SensorOdom2d, factory_yaml) { - // CORRECT YAML - WOLF_INFO("Creating sensor from name sensor_mixed"); + std::vector<std::string> modes({"fix", "initial_guess", "factor"}); + std::vector<bool> dynamics({false, true}); + std::vector<bool> drifts({false, true}); + std::vector<bool> wrongs({false, true}); - auto S = FactorySensorYaml::create("SensorOdom2d", "sensor_mixed", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + // P & O + for (auto mode : modes) + for (auto dynamic : dynamics) + for (auto drift : drifts) + for (auto wrong : wrongs) + { + // nonsense combination + if (not dynamic and drift) + continue; + + std::string name = "sensor_odom_2d_" + + mode + + (dynamic ? "_dynamic" : "") + + (drift ? "_drift" : "") + + (wrong ? "_wrong" : ""); + + WOLF_INFO("Creating sensor from name ", name); + + // CORRECT YAML + if (not wrong) + { + auto S = FactorySensorYaml::create("SensorOdom2d", name, 2, + wolf_root + "/test/yaml/sensor_odom_2d/" + name + ".yaml"); + + auto p_size_std = mode == "factor" ? 2 : 0; + auto o_size_std = mode == "factor" ? 1 : 0; + auto p_size_std_drift = drift ? 2 : 0; + auto o_size_std_drift = drift ? 1 : 0; + + // check + checkSensorOdom2d(S, p_state, o_state, + mode == "fix", mode == "fix", + p_std.head(p_size_std), o_std.head(o_size_std), + dynamic, dynamic, + p_std.head(p_size_std_drift), o_std.head(o_size_std_drift)); + } + // INCORRECT YAML + else + { + ASSERT_THROW(FactorySensorYaml::create("SensorOdom2d", name, 2, + wolf_root + "/test/yaml/sensor_odom_2d/" + name + ".yaml"), + std::runtime_error); + } + } + + // MIXED - CORRECT YAML + { + WOLF_INFO("Creating sensor from name sensor_mixed"); + + auto S = FactorySensorYaml::create("SensorOdom2d", "sensor_mixed", 2, + wolf_root + "/test/yaml/sensor_odom_2d/sensor_odom_2d.yaml"); + + // check + checkSensorOdom2d(S, + p_state, o_state, + false, true, + p_std, vector0, + true, false, + p_std, vector0); + } - SensorOdom2dPtr S_odom = std::dynamic_pointer_cast<SensorOdom2d>(S); + // MIXED - INCORRECT YAML + { + WOLF_INFO("Creating sensor from name sensor_mixed_wrong"); - // checks - ASSERT_TRUE(S_odom != nullptr); - checkSensorOdom2d(S_odom, - p_state, o_state, - false, true, - p_std, vector0, - true, false, - p_std, vector0); - - // INCORRECT YAML - WOLF_INFO("Creating sensor from name sensor_mixed_wrong"); - - ASSERT_THROW(FactorySensorYaml::create("SensorOdom2d", "sensor_mixed_wrong", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml"), - std::runtime_error); + ASSERT_THROW(FactorySensorYaml::create("SensorOdom2d", "sensor_mixed_wrong", 2, + wolf_root + "/test/yaml/sensor_odom_2d/sensor_odom_2d_wrong.yaml"), + std::runtime_error); + } } int main(int argc, char **argv) diff --git a/test/yaml/sensor_base/sensor_POIA_3D.yaml b/test/yaml/sensor_base/sensor_POIA_3D.yaml new file mode 100644 index 000000000..4c04f54c5 --- /dev/null +++ b/test/yaml/sensor_base/sensor_POIA_3D.yaml @@ -0,0 +1,23 @@ +# sensor_POIA_3D: +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: false + I: + mode: initial_guess + state: [1, 2, 3, 4] + dynamic: true + drift_std: [0.1, 0.2, 0.3, 0.4] + A: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_POIA_3D_wrong.yaml b/test/yaml/sensor_base/sensor_POIA_3D_wrong.yaml new file mode 100644 index 000000000..cd811547a --- /dev/null +++ b/test/yaml/sensor_base/sensor_POIA_3D_wrong.yaml @@ -0,0 +1,23 @@ +# sensor_POIA_3D_wrong: +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: false + I: + mode: initial_guess + state: [1, 2, 3, 4] + dynamic: true + drift_std: [0.1, 0.2, 0.3, 0.4] + # A: + # mode: factor + # state: [1, 0, 0, 0] + # noise_std: [0.1, 0.2, 0.3] + # dynamic: true + # drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_factor.yaml b/test/yaml/sensor_base/sensor_PO_2D_factor.yaml new file mode 100644 index 000000000..497085eb8 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_factor.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_factor: +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: false + O: + mode: factor + state: [1] + noise_std: [0.1] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic.yaml b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic.yaml new file mode 100644 index 000000000..889d53245 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_factor_dynamic: +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: true + O: + mode: factor + state: [1] + noise_std: [0.1] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift.yaml b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift.yaml new file mode 100644 index 000000000..733ec88fb --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift.yaml @@ -0,0 +1,15 @@ +# sensor_PO_2D_factor_dynamic_drift: +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: factor + state: [1] + noise_std: [0.1] + dynamic: true + drift_std: [0.1] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..a1d4e79eb --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_drift_wrong.yaml @@ -0,0 +1,15 @@ +# sensor_PO_2D_factor_dynamic_drift_wrong: +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: true + drift_std: [0.1] #wrong size + O: + mode: factor + state: [1] + noise_std: [0.1] + dynamic: true + drift_std: [0.1] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_wrong.yaml new file mode 100644 index 000000000..d28cb5f1e --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_factor_dynamic_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_factor_dynamic_wrong: +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2, 0.3] #wrong size + dynamic: true + O: + mode: factor + state: [1] + noise_std: [0.1] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_factor_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_factor_wrong.yaml new file mode 100644 index 000000000..c02f9dfbc --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_factor_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_factor_wrong: +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: false + O: + mode: factor + #state: [1] #missing + noise_std: [0.1] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_fix.yaml b/test/yaml/sensor_base/sensor_PO_2D_fix.yaml new file mode 100644 index 000000000..8d9e96627 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_fix.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_fix: +states: + P: + mode: fix + state: [1, 2] + dynamic: false + O: + mode: fix + state: [1] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic.yaml b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic.yaml new file mode 100644 index 000000000..a20af82a3 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_fix_dynamic: +states: + P: + mode: fix + state: [1, 2] + dynamic: true + O: + mode: fix + state: [1] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift.yaml b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift.yaml new file mode 100644 index 000000000..410281dbe --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_fix_dynamic_drift: +states: + P: + mode: fix + state: [1, 2] + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: fix + state: [1] + dynamic: true + drift_std: [0.1] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..2da413660 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_drift_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_fix_dynamic_drift_wrong: +states: + P: + mode: fix + state: [1, 2] + dynamic: true + drift_std: [0.1, 0.2, 0.3] #wrong size + O: + mode: fix + state: [1] + dynamic: true + drift_std: [0.1] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_wrong.yaml new file mode 100644 index 000000000..27affb496 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_fix_dynamic_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_fix_dynamic_wrong: +states: + P: + mode: fix + state: [1, 2, 3] # wrong size + dynamic: true + O: + mode: fix + state: [1] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_fix_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_fix_wrong.yaml new file mode 100644 index 000000000..10179eae0 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_fix_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_fix_wrong: +states: + P: + mode: fix + state: [1, 2] + #dynamic: false #missing + O: + mode: fix + state: [1] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_initial_guess.yaml b/test/yaml/sensor_base/sensor_PO_2D_initial_guess.yaml new file mode 100644 index 000000000..901364dfb --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_initial_guess.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_initial_guess: +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: false + O: + mode: initial_guess + state: [1] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic.yaml b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic.yaml new file mode 100644 index 000000000..0bfebd5b4 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_initial_guess_dynamic: +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: true + O: + mode: initial_guess + state: [1] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift.yaml b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift.yaml new file mode 100644 index 000000000..ec021b9d4 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_initial_guess_dynamic_drift: +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: initial_guess + state: [1] + dynamic: true + drift_std: [0.1] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..9e8a172f9 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_drift_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_2D_initial_guess_dynamic_drift_wrong: +states: + P: + mode: initial_guess + state: [1] #wrong size + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: initial_guess + state: [1] + dynamic: true + drift_std: [0.1] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_wrong.yaml new file mode 100644 index 000000000..b4e4c44be --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_dynamic_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_initial_guess_dynamic_wrong: +states: + # P: #missing + # mode: initial_guess + # state: [1, 2] + # dynamic: true + O: + mode: initial_guess + state: [1] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_2D_initial_guess_wrong.yaml b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_wrong.yaml new file mode 100644 index 000000000..cb55b4446 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_2D_initial_guess_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_2D_initial_guess_wrong: +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: false + O: + #mode: initial_guess #missing + state: [1] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_factor.yaml b/test/yaml/sensor_base/sensor_PO_3D_factor.yaml new file mode 100644 index 000000000..665ac5cd2 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_factor.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_factor: +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: false + O: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic.yaml b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic.yaml new file mode 100644 index 000000000..b1fc18e12 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_factor_dynamic: +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + O: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift.yaml b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift.yaml new file mode 100644 index 000000000..f016ed4fd --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift.yaml @@ -0,0 +1,15 @@ +# sensor_PO_3D_factor_dynamic_drift: +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] + O: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..89a3409d9 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_drift_wrong.yaml @@ -0,0 +1,15 @@ +# sensor_PO_3D_factor_dynamic_drift_wrong: +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] + O: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3, 0.4] #wrong size + dynamic: true + drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_wrong.yaml new file mode 100644 index 000000000..d2da5482d --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_factor_dynamic_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_factor_dynamic_wrong: +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + O: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3, 0.4] # wrong size + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_factor_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_factor_wrong.yaml new file mode 100644 index 000000000..05bdc260a --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_factor_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_factor_wrong: +states: + P: + mode: factor + state: [1, 2, 3] + #noise_std: [0.1, 0.2, 0.3] #missing + dynamic: false + O: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_fix.yaml b/test/yaml/sensor_base/sensor_PO_3D_fix.yaml new file mode 100644 index 000000000..a9e833381 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_fix.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_fix: +states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic.yaml b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic.yaml new file mode 100644 index 000000000..a49037896 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_fix_dynamic: +states: + P: + mode: fix + state: [1, 2, 3] + dynamic: true + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift.yaml b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift.yaml new file mode 100644 index 000000000..23f5848b9 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_fix_dynamic_drift: +states: + P: + mode: fix + state: [1, 2, 3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: true + drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..58df603f7 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_drift_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_fix_dynamic_drift_wrong: +states: + P: + mode: fix + state: [1, 2, 3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] + O: + mode: fix + state: [1, 0, 0, 0] + #dynamic: true #missing + drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_wrong.yaml new file mode 100644 index 000000000..dd89b3f6c --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_fix_dynamic_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_fix_dynamic_wrong: +states: + P: + mode: fix + state: [1, 2, 3] + dynamic: true + O: + mode: fix + state: [1, 0, 0, 1] # not normalized + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_fix_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_fix_wrong.yaml new file mode 100644 index 000000000..498ecdd9e --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_fix_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_fix_wrong: +states: + P: + mode: fix + state: [1, 2, 3] + dynamic: false + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: false +#noise_std: [0.1, 0.2] #missing \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_initial_guess.yaml b/test/yaml/sensor_base/sensor_PO_3D_initial_guess.yaml new file mode 100644 index 000000000..9ad6891fb --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_initial_guess.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_initial_guess: +states: + P: + mode: initial_guess + state: [1, 2, 3] + dynamic: false + O: + mode: initial_guess + state: [1, 0, 0, 0] + dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic.yaml b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic.yaml new file mode 100644 index 000000000..1cf0568a8 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_initial_guess_dynamic: +states: + P: + mode: initial_guess + state: [1, 2, 3] + dynamic: true + O: + mode: initial_guess + state: [1, 0, 0, 0] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift.yaml b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift.yaml new file mode 100644 index 000000000..bbc3b2558 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_initial_guess_dynamic_drift: +states: + P: + mode: initial_guess + state: [1, 2, 3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] + O: + mode: initial_guess + state: [1, 0, 0, 0] + dynamic: true + drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..7c96eb4b4 --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_drift_wrong.yaml @@ -0,0 +1,13 @@ +# sensor_PO_3D_initial_guess_dynamic_drift_wrong: +states: + P: + mode: initial_guess + state: [1, 2, 3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] + O: + #mode: initial_guess #missing + state: [1, 0, 0, 0] + dynamic: true + drift_std: [0.1, 0.2, 0.3] +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_wrong.yaml new file mode 100644 index 000000000..41d218bea --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_dynamic_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_initial_guess_dynamic_wrong: +states: + P: + mode: initial_guess + state: [1, 2] # wrong size + dynamic: true + O: + mode: initial_guess + state: [1, 0, 0, 0] + dynamic: true +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_PO_3D_initial_guess_wrong.yaml b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_wrong.yaml new file mode 100644 index 000000000..243de825b --- /dev/null +++ b/test/yaml/sensor_base/sensor_PO_3D_initial_guess_wrong.yaml @@ -0,0 +1,11 @@ +# sensor_PO_3D_initial_guess_wrong: +states: + P: + mode: initial_guess + state: [1, 2, 3] + dynamic: false + # O: #missing + # mode: initial_guess + # state: [1, 0, 0, 0] + # dynamic: false +noise_std: [0.1, 0.2] \ No newline at end of file diff --git a/test/yaml/sensor_base.yaml b/test/yaml/sensor_base/sensor_all.yaml similarity index 100% rename from test/yaml/sensor_base.yaml rename to test/yaml/sensor_base/sensor_all.yaml diff --git a/test/yaml/sensor_base/sensor_dummy.yaml b/test/yaml/sensor_base/sensor_dummy.yaml new file mode 100644 index 000000000..6e1111173 --- /dev/null +++ b/test/yaml/sensor_base/sensor_dummy.yaml @@ -0,0 +1,24 @@ +param1: 1.2 +param2: 3 +noise_std: [0.1, 0.2] +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: false + I: + mode: initial_guess + state: [1, 2, 3, 4] + dynamic: true + drift_std: [0.1, 0.2, 0.3, 0.4] + A: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] \ No newline at end of file diff --git a/test/yaml/sensor_base/sensor_dummy_wrong.yaml b/test/yaml/sensor_base/sensor_dummy_wrong.yaml new file mode 100644 index 000000000..89467b4cf --- /dev/null +++ b/test/yaml/sensor_base/sensor_dummy_wrong.yaml @@ -0,0 +1,24 @@ +param1: 1.2 +param2: 3 +noise_std: [0.1, 0.2] +states: + P: + mode: factor + state: [1, 2, 3] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + O: + mode: fix + state: [1, 0, 0, 0] + dynamic: false + # I: + # mode: initial_guess + # state: [1, 2, 3, 4] + # dynamic: true + # drift_std: [0.1, 0.2, 0.3, 0.4] + A: + mode: factor + state: [1, 0, 0, 0] + noise_std: [0.1, 0.2, 0.3] + dynamic: true + drift_std: [0.1, 0.2, 0.3] \ No newline at end of file diff --git a/test/yaml/sensor_dummy.yaml b/test/yaml/sensor_dummy.yaml deleted file mode 100644 index 6fb39c70f..000000000 --- a/test/yaml/sensor_dummy.yaml +++ /dev/null @@ -1,52 +0,0 @@ -sensor: - sensor_dummy_1: - param1: 1.2 - param2: 3 - noise_std: [0.1, 0.2] - states: - P: - mode: factor - state: [1, 2, 3] - noise_std: [0.1, 0.2, 0.3] - dynamic: true - O: - mode: fix - state: [1, 0, 0, 0] - dynamic: false - I: - mode: initial_guess - state: [1, 2, 3, 4] - dynamic: true - drift_std: [0.1, 0.2, 0.3, 0.4] - A: - mode: factor - state: [1, 0, 0, 0] - noise_std: [0.1, 0.2, 0.3] - dynamic: true - drift_std: [0.1, 0.2, 0.3] - - sensor_dummy_1_wrong: - param1: 1.2 - param2: 3 - noise_std: [0.1, 0.2] - states: - P: - mode: factor - state: [1, 2, 3] - noise_std: [0.1, 0.2, 0.3] - dynamic: true - O: - mode: fix - state: [1, 0, 0, 0] - dynamic: false - # I: - # mode: initial_guess - # state: [1, 2, 3, 4] - # dynamic: true - # drift_std: [0.1, 0.2, 0.3, 0.4] - A: - mode: factor - state: [1, 0, 0, 0] - noise_std: [0.1, 0.2, 0.3] - dynamic: true - drift_std: [0.1, 0.2, 0.3] \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d.yaml b/test/yaml/sensor_odom_2d.yaml deleted file mode 100644 index 079c3022c..000000000 --- a/test/yaml/sensor_odom_2d.yaml +++ /dev/null @@ -1,316 +0,0 @@ -sensor: - - ############################################################################################# - ########################################## CORRECT ########################################## - ############################################################################################# - - sensor_fix: - states: - P: - mode: fix - state: [1, 2] - dynamic: false - O: - mode: fix - state: [3] - dynamic: false - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_initial_guess: - states: - P: - mode: initial_guess - state: [1, 2] - dynamic: false - O: - mode: initial_guess - state: [3] - dynamic: false - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_factor: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2] - dynamic: false - O: - mode: factor - state: [3] - noise_std: [0.3] - dynamic: false - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_fix_dynamic: - states: - P: - mode: fix - state: [1, 2] - dynamic: true - O: - mode: fix - state: [3] - dynamic: true - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_initial_guess_dynamic: - states: - P: - mode: initial_guess - state: [1, 2] - dynamic: true - O: - mode: initial_guess - state: [3] - dynamic: true - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_factor_dynamic: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2] - dynamic: true - O: - mode: factor - state: [3] - noise_std: [0.3] - dynamic: true - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_fix_dynamic_drift: - states: - P: - mode: fix - state: [1, 2] - dynamic: true - drift_std: [0.1, 0.2] - O: - mode: fix - state: [3] - dynamic: true - drift_std: [0.3] - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_initial_guess_dynamic_drift: - states: - P: - mode: initial_guess - state: [1, 2] - dynamic: true - drift_std: [0.1, 0.2] - O: - mode: initial_guess - state: [3] - dynamic: true - drift_std: [0.3] - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_factor_dynamic_drift: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2] - dynamic: true - drift_std: [0.1, 0.2] - O: - mode: factor - state: [3] - noise_std: [0.3] - dynamic: true - drift_std: [0.3] - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_mixed: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2] - dynamic: true - drift_std: [0.1, 0.2] - O: - mode: fix - state: [3] - dynamic: false - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - ############################################################################################# - ######################################### INCORRECT ######################################### - ############################################################################################# - - sensor_fix_wrong: - states: - P: - mode: fix - state: [1, 2] - #dynamic: false #missing - O: - mode: fix - state: [3] - dynamic: false - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_initial_guess_wrong: - states: - P: - mode: initial_guess - state: [1, 2] - dynamic: false - O: - mode: initial_guess - state: [3] - dynamic: false - noise_std: [0.1, 0.2] - #k_disp_to_disp: 0.5 #missing - k_rot_to_rot: 0.8 - - sensor_factor_wrong: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2] - dynamic: false - O: - mode: factor - #state: [3] #missing - noise_std: [0.3] - dynamic: false - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_fix_dynamic_wrong: - states: - P: - mode: fix - state: [1, 2, 3] # wrong size - dynamic: true - O: - mode: fix - state: [3] - dynamic: true - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_initial_guess_dynamic_wrong: - states: - # P: #missing - # mode: initial_guess - # state: [1, 2] - # dynamic: true - O: - mode: initial_guess - state: [3] - dynamic: true - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_factor_dynamic_wrong: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2, 0.3] #wrong size - dynamic: true - O: - mode: factor - state: [3] - noise_std: [0.3] - dynamic: true - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_fix_dynamic_drift_wrong: - states: - P: - mode: fix - state: [1, 2] - dynamic: true - drift_std: [0.1, 0.2, 0.3] #wrong size - O: - mode: fix - state: [3] - dynamic: true - drift_std: [0.3] - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_initial_guess_dynamic_drift_wrong: - states: - P: - mode: initial_guess - state: [3] # wrong size - dynamic: true - drift_std: [0.1, 0.2] - O: - mode: initial_guess - state: [3] - dynamic: true - drift_std: [0.3] - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_factor_dynamic_drift_wrong: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2] - dynamic: true - drift_std: [0.3] # wrong size - O: - mode: factor - state: [3] - noise_std: [0.3] - dynamic: true - drift_std: [0.3] - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 - - sensor_mixed_wrong: - states: - P: - mode: factor - state: [1, 2] - noise_std: [0.1, 0.2, 0.3] # wrong size - dynamic: true - O: - mode: fix - state: [3] - dynamic: false - noise_std: [0.1, 0.2] - k_disp_to_disp: 0.5 - k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d.yaml new file mode 100644 index 000000000..42777646e --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: fix + state: [3] + dynamic: false +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_factor.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor.yaml new file mode 100644 index 000000000..25318d527 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: false + O: + mode: factor + state: [3] + noise_std: [0.3] + dynamic: false +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic.yaml new file mode 100644 index 000000000..05b7c5cb1 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: true + O: + mode: factor + state: [3] + noise_std: [0.3] + dynamic: true +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift.yaml new file mode 100644 index 000000000..76d8a9222 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift.yaml @@ -0,0 +1,16 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: factor + state: [3] + noise_std: [0.3] + dynamic: true + drift_std: [0.3] +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..b2c4971c1 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_drift_wrong.yaml @@ -0,0 +1,16 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: true + drift_std: [0.3] # wrong size + O: + mode: factor + state: [3] + noise_std: [0.3] + dynamic: true + drift_std: [0.3] +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_wrong.yaml new file mode 100644 index 000000000..7095775fa --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_dynamic_wrong.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2, 0.3] #wrong size + dynamic: true + O: + mode: factor + state: [3] + noise_std: [0.3] + dynamic: true +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_wrong.yaml new file mode 100644 index 000000000..b8a86c874 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_factor_wrong.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2] + dynamic: false + O: + mode: factor + #state: [3] #missing + noise_std: [0.3] + dynamic: false +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_fix.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix.yaml new file mode 100644 index 000000000..16adc66ac --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix.yaml @@ -0,0 +1,12 @@ +states: + P: + mode: fix + state: [1, 2] + dynamic: false + O: + mode: fix + state: [3] + dynamic: false +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic.yaml new file mode 100644 index 000000000..fd24b509f --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic.yaml @@ -0,0 +1,12 @@ +states: + P: + mode: fix + state: [1, 2] + dynamic: true + O: + mode: fix + state: [3] + dynamic: true +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift.yaml new file mode 100644 index 000000000..a4b81b490 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: fix + state: [1, 2] + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: fix + state: [3] + dynamic: true + drift_std: [0.3] +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..0c5beb28c --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_drift_wrong.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: fix + state: [1, 2] + dynamic: true + drift_std: [0.1, 0.2, 0.3] #wrong size + O: + mode: fix + state: [3] + dynamic: true + drift_std: [0.3] +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_wrong.yaml new file mode 100644 index 000000000..ca9746a49 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_dynamic_wrong.yaml @@ -0,0 +1,12 @@ +states: + P: + mode: fix + state: [1, 2, 3] # wrong size + dynamic: true + O: + mode: fix + state: [3] + dynamic: true +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_wrong.yaml new file mode 100644 index 000000000..d927120f2 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_fix_wrong.yaml @@ -0,0 +1,12 @@ +states: + P: + mode: fix + state: [1, 2] + #dynamic: false #missing + O: + mode: fix + state: [3] + dynamic: false +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess.yaml new file mode 100644 index 000000000..7d8038b84 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess.yaml @@ -0,0 +1,12 @@ +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: false + O: + mode: initial_guess + state: [3] + dynamic: false +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic.yaml new file mode 100644 index 000000000..547c9ea89 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic.yaml @@ -0,0 +1,12 @@ +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: true + O: + mode: initial_guess + state: [3] + dynamic: true +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift.yaml new file mode 100644 index 000000000..693e91bc2 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: initial_guess + state: [3] + dynamic: true + drift_std: [0.3] +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift_wrong.yaml new file mode 100644 index 000000000..49d6a56c2 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_drift_wrong.yaml @@ -0,0 +1,14 @@ +states: + P: + mode: initial_guess + state: [3] # wrong size + dynamic: true + drift_std: [0.1, 0.2] + O: + mode: initial_guess + state: [3] + dynamic: true + drift_std: [0.3] +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_wrong.yaml new file mode 100644 index 000000000..4dcf14f13 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_dynamic_wrong.yaml @@ -0,0 +1,12 @@ +states: + # P: #missing + # mode: initial_guess + # state: [1, 2] + # dynamic: true + O: + mode: initial_guess + state: [3] + dynamic: true +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_wrong.yaml new file mode 100644 index 000000000..d6e901058 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_initial_guess_wrong.yaml @@ -0,0 +1,12 @@ +states: + P: + mode: initial_guess + state: [1, 2] + dynamic: false + O: + mode: initial_guess + state: [3] + dynamic: false +noise_std: [0.1, 0.2] +#k_disp_to_disp: 0.5 #missing +k_rot_to_rot: 0.8 \ No newline at end of file diff --git a/test/yaml/sensor_odom_2d/sensor_odom_2d_wrong.yaml b/test/yaml/sensor_odom_2d/sensor_odom_2d_wrong.yaml new file mode 100644 index 000000000..7b1023e84 --- /dev/null +++ b/test/yaml/sensor_odom_2d/sensor_odom_2d_wrong.yaml @@ -0,0 +1,13 @@ +states: + P: + mode: factor + state: [1, 2] + noise_std: [0.1, 0.2, 0.3] # wrong size + dynamic: true + O: + mode: fix + state: [3] + dynamic: false +noise_std: [0.1, 0.2] +k_disp_to_disp: 0.5 +k_rot_to_rot: 0.8 \ No newline at end of file -- GitLab