diff --git a/CMakeLists.txt b/CMakeLists.txt index d7de1cdfc1c79a7f853c38f0fb77dbe9afe1b35b..df643606ede38ae1bc66b832a40e37499c35ffe5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,6 +84,7 @@ FIND_PACKAGE(spdlog REQUIRED CONFIG) if(${EIGEN3_VERSION_STRING} VERSION_LESS 3.3) message(FATAL_ERROR "Wolf requires Eigen >= 3.3. Found Eigen ${EIGEN3_VERSION_STRING}") endif() +FIND_PACKAGE(yaml-cpp REQUIRED CONFIG) FIND_PACKAGE(yaml-schema-cpp REQUIRED CONFIG) # ============ config.h ============ @@ -231,7 +232,7 @@ SET(HDRS_UTILS include/${PROJECT_NAME}/utils/graph_search.h include/${PROJECT_NAME}/utils/loader.h include/${PROJECT_NAME}/utils/logging.h - include/${PROJECT_NAME}/utils/params_server.h + # include/${PROJECT_NAME}/utils/params_server.h include/${PROJECT_NAME}/utils/singleton.h include/${PROJECT_NAME}/utils/utils_gtest.h include/${PROJECT_NAME}/utils/converter_utils.h @@ -328,7 +329,7 @@ SET(SRCS_UTILS src/utils/converter_utils.cpp src/utils/graph_search.cpp src/utils/loader.cpp - src/utils/params_server.cpp + # src/utils/params_server.cpp ) SET(SRCS_YAML src/yaml/parser_yaml.cpp @@ -395,6 +396,7 @@ endif() #Link the created libraries #============================================================= TARGET_LINK_LIBRARIES(${PLUGIN_NAME} PUBLIC ${CMAKE_THREAD_LIBS_INIT} dl) +TARGET_LINK_LIBRARIES(${PLUGIN_NAME} PUBLIC yaml-cpp) TARGET_LINK_LIBRARIES(${PLUGIN_NAME} PUBLIC yaml-schema-cpp) TARGET_LINK_LIBRARIES(${PLUGIN_NAME} PUBLIC Eigen3::Eigen) TARGET_LINK_LIBRARIES(${PLUGIN_NAME} PUBLIC spdlog::spdlog) diff --git a/demos/hello_wolf/processor_range_bearing.h b/demos/hello_wolf/processor_range_bearing.h index 516876ce75f0b6c8f0229b87c4b71619d3a2c2c1..452bbd653063980d216bcc38e58c06c8c3599511 100644 --- a/demos/hello_wolf/processor_range_bearing.h +++ b/demos/hello_wolf/processor_range_bearing.h @@ -39,8 +39,8 @@ struct ParamsProcessorRangeBearing : public ParamsProcessorBase { //DEFINED FOR COMPATIBILITY PURPOSES. TO BE REMOVED IN THE FUTURE. } - ParamsProcessorRangeBearing(std::string _unique_name, const ParamsServer& _server) : - ParamsProcessorBase(_unique_name, _server) + ParamsProcessorRangeBearing(const YAML::Node& _n) : + ParamsProcessorBase(_n) { // } diff --git a/demos/hello_wolf/sensor_range_bearing.cpp b/demos/hello_wolf/sensor_range_bearing.cpp index 9b680a9777a4c8c1cfd603001c64c9f68f40350a..07dc0c31e2238542af54c6507984263dbec6c3db 100644 --- a/demos/hello_wolf/sensor_range_bearing.cpp +++ b/demos/hello_wolf/sensor_range_bearing.cpp @@ -19,33 +19,16 @@ // along with this program. If not, see <http://www.gnu.org/licenses/>. // //--------LICENSE_END-------- -/* - * SensorRangeBearing.cpp - * - * Created on: Nov 30, 2017 - * Author: jsola - */ #include "sensor_range_bearing.h" namespace wolf{ WOLF_PTR_TYPEDEFS(SensorRangeBearing); -SensorRangeBearing::SensorRangeBearing(const std::string& _unique_name, - const SizeEigen& _dim, +SensorRangeBearing::SensorRangeBearing(const SizeEigen& _dim, ParamsSensorRangeBearingPtr _params, const Priors& _priors) : - SensorBase("SensorRangeBearing",_unique_name, _dim, _params, _priors), - params_rb_(_params) -{ - assert(_dim == 2 && "SensorRangeBearing only for 2D"); -} - -SensorRangeBearing::SensorRangeBearing(const std::string& _unique_name, - const SizeEigen& _dim, - ParamsSensorRangeBearingPtr _params, - const ParamsServer& _server) : - SensorBase("SensorRangeBearing",_unique_name, _dim, _params, _server), + SensorBase("SensorRangeBearing", _dim, _params, _priors), params_rb_(_params) { assert(_dim == 2 && "SensorRangeBearing only for 2D"); diff --git a/demos/hello_wolf/sensor_range_bearing.h b/demos/hello_wolf/sensor_range_bearing.h index 263b5813a76781d59ccd881b3d389e1abbe1bea7..f111fff790358225eedd080fd032d8e8f2fab287 100644 --- a/demos/hello_wolf/sensor_range_bearing.h +++ b/demos/hello_wolf/sensor_range_bearing.h @@ -22,7 +22,7 @@ #pragma once #include "core/sensor/sensor_base.h" -#include "core/utils/params_server.h" +#include "yaml-cpp/yaml.h" namespace wolf { @@ -34,11 +34,11 @@ struct ParamsSensorRangeBearing : public ParamsSensorBase double noise_bearing_degrees_std = 0.5; ParamsSensorRangeBearing() = default; - ParamsSensorRangeBearing(std::string _unique_name, const ParamsServer& _server): - ParamsSensorBase(_unique_name, _server) + ParamsSensorRangeBearing(const YAML::Node& _n): + ParamsSensorBase(_n) { - noise_range_metres_std = _server.getParam<double>(prefix + _unique_name + "/noise_range_metres_std"); - noise_bearing_degrees_std = _server.getParam<double>(prefix + _unique_name + "/noise_bearing_degrees_std"); + noise_range_metres_std = _n["noise_range_metres_std"].as<double>(); + noise_bearing_degrees_std = _n["noise_bearing_degrees_std"].as<double>(); } std::string print() const { @@ -56,14 +56,9 @@ class SensorRangeBearing : public SensorBase ParamsSensorRangeBearingPtr params_rb_; public: - SensorRangeBearing(const std::string& _unique_name, - const SizeEigen& _dim, + SensorRangeBearing(const SizeEigen& _dim, ParamsSensorRangeBearingPtr _params, const Priors& _priors); - SensorRangeBearing(const std::string& _unique_name, - const SizeEigen& _dim, - ParamsSensorRangeBearingPtr _params, - const ParamsServer& _server); WOLF_SENSOR_CREATE(SensorRangeBearing, ParamsSensorRangeBearing); ~SensorRangeBearing() override; diff --git a/include/core/ceres_wrapper/solver_ceres.h b/include/core/ceres_wrapper/solver_ceres.h index ed7269333147655487ae83e2e0e4b24485028165..af87fd75c35d4da3892aed21476375dfe0b04783 100644 --- a/include/core/ceres_wrapper/solver_ceres.h +++ b/include/core/ceres_wrapper/solver_ceres.h @@ -28,7 +28,7 @@ //wolf includes #include "core/solver/solver_manager.h" -#include "core/utils/params_server.h" +#include "yaml-cpp/yaml.h" namespace ceres { typedef std::shared_ptr<CostFunction> CostFunctionPtr; diff --git a/include/core/map/factory_map.h b/include/core/map/factory_map.h index b5203917e48731bc4fc80ed63e967615e348b518..43ba8ad739df48abc5feb531823414f19ab57eb3 100644 --- a/include/core/map/factory_map.h +++ b/include/core/map/factory_map.h @@ -28,7 +28,6 @@ class MapBase; // wolf #include "core/common/factory.h" -#include "core/utils/params_server.h" // Yaml #include "yaml-cpp/yaml.h" diff --git a/include/core/problem/problem.h b/include/core/problem/problem.h index 8fdfc1ffe4c0e16a0808d03756845620622d9629..2a779c07e150cbb295cb7140767ad485128d141d 100644 --- a/include/core/problem/problem.h +++ b/include/core/problem/problem.h @@ -37,7 +37,6 @@ class Loader; //wolf includes #include "core/common/wolf.h" -#include "core/utils/params_server.h" #include "core/frame/frame_base.h" #include "core/state_block/prior.h" #include "core/state_block/state_block.h" diff --git a/include/core/sensor/sensor_odom.h b/include/core/sensor/sensor_odom.h index e8957d561a3cd3fd3a9ffced54169d745dd20d44..94dea3c13079eeeef8c407bc24b867fcf9ddfe3d 100644 --- a/include/core/sensor/sensor_odom.h +++ b/include/core/sensor/sensor_odom.h @@ -23,7 +23,7 @@ //wolf includes #include "core/sensor/sensor_base.h" -#include "core/utils/params_server.h" +#include "yaml-cpp/yaml.h" namespace wolf { diff --git a/include/core/sensor/sensor_pose.h b/include/core/sensor/sensor_pose.h index 86f8386d81e48c59a76c893a2d1b260c370d23f3..c5ecbc516c730ad0ff79b9c7d9fbfd613993544f 100644 --- a/include/core/sensor/sensor_pose.h +++ b/include/core/sensor/sensor_pose.h @@ -23,7 +23,7 @@ //wolf includes #include "core/sensor/sensor_base.h" -#include "core/utils/params_server.h" +#include "yaml-cpp/yaml.h" namespace wolf { diff --git a/src/state_block/prior.cpp b/src/state_block/prior.cpp index dbe10672f8552159b714f5f32737e51e8fb9104a..098855b99b94d515612a39a46c40dfa5932e875e 100644 --- a/src/state_block/prior.cpp +++ b/src/state_block/prior.cpp @@ -39,6 +39,7 @@ Prior::Prior(const std::string& _type, Prior::Prior(const YAML::Node& prior_node) { + type_ = prior_node["type"].as<std::string>(); state_ = prior_node["state"].as<Eigen::VectorXd>(); mode_ = prior_node["mode"].as<std::string>(); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index df10a34dc114442afe99e803faa5ce8021513d7c..82337923b4397fb4e35a6e0c11231b69917e21f7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -44,7 +44,7 @@ wolf_add_gtest(gtest_converter gtest_converter.cpp) wolf_add_gtest(gtest_factor_base gtest_factor_base.cpp) # FactorAutodiff class test -wolf_add_gtest(gtest_factor_autodiff gtest_factor_autodiff.cpp) +# wolf_add_gtest(gtest_factor_autodiff gtest_factor_autodiff.cpp) # Factory test wolf_add_gtest(gtest_factory gtest_factory.cpp) @@ -55,8 +55,8 @@ wolf_add_gtest(gtest_factory_state_block gtest_factory_state_block.cpp) target_link_libraries(gtest_factory_state_block PUBLIC dummy) # Node Emplace test -wolf_add_gtest(gtest_emplace gtest_emplace.cpp) -target_link_libraries(gtest_emplace PUBLIC dummy) +# wolf_add_gtest(gtest_emplace gtest_emplace.cpp) +# target_link_libraries(gtest_emplace PUBLIC dummy) # FeatureBase classes test wolf_add_gtest(gtest_feature_base gtest_feature_base.cpp) @@ -71,7 +71,7 @@ wolf_add_gtest(gtest_graph_search gtest_graph_search.cpp) wolf_add_gtest(gtest_has_state_blocks gtest_has_state_blocks.cpp) # IsMotion classes test -wolf_add_gtest(gtest_motion_provider gtest_motion_provider.cpp) +# wolf_add_gtest(gtest_motion_provider gtest_motion_provider.cpp) # LocalParametrizationXxx classes test wolf_add_gtest(gtest_local_param gtest_local_param.cpp) @@ -83,17 +83,17 @@ wolf_add_gtest(gtest_logging gtest_logging.cpp) wolf_add_gtest(gtest_motion_buffer gtest_motion_buffer.cpp) # Parameters server -wolf_add_gtest(gtest_param_server gtest_param_server.cpp) +# wolf_add_gtest(gtest_param_server gtest_param_server.cpp) # Parameters server wolf_add_gtest(gtest_prior gtest_prior.cpp) # YAML parser -wolf_add_gtest(gtest_parser_yaml gtest_parser_yaml.cpp) +# wolf_add_gtest(gtest_parser_yaml gtest_parser_yaml.cpp) # Problem class test -wolf_add_gtest(gtest_problem gtest_problem.cpp) -target_link_libraries(gtest_problem PUBLIC dummy) +# wolf_add_gtest(gtest_problem gtest_problem.cpp) +# target_link_libraries(gtest_problem PUBLIC dummy) # ProcessorBase class test wolf_add_gtest(gtest_processor_base gtest_processor_base.cpp) @@ -112,7 +112,7 @@ wolf_add_gtest(gtest_SE3 gtest_SE3.cpp) wolf_add_gtest(gtest_SE2 gtest_SE2.cpp) # SensorBase test -wolf_add_gtest(gtest_sensor_base gtest_sensor_base.cpp) +# wolf_add_gtest(gtest_sensor_base gtest_sensor_base.cpp) # shared_from_this test wolf_add_gtest(gtest_shared_from_this gtest_shared_from_this.cpp) @@ -143,99 +143,99 @@ wolf_add_gtest(gtest_tree_manager gtest_tree_manager.cpp) # ------- Now Derived classes ---------- -# FactorAbs(P/O/V) classes test -wolf_add_gtest(gtest_factor_absolute gtest_factor_absolute.cpp) +# # FactorAbs(P/O/V) classes test +# wolf_add_gtest(gtest_factor_absolute gtest_factor_absolute.cpp) -# FactorAutodiffDistance3d test -wolf_add_gtest(gtest_factor_autodiff_distance_3d gtest_factor_autodiff_distance_3d.cpp) +# # FactorAutodiffDistance3d test +# wolf_add_gtest(gtest_factor_autodiff_distance_3d gtest_factor_autodiff_distance_3d.cpp) -# FactorBlockDifference class test -wolf_add_gtest(gtest_factor_block_difference gtest_factor_block_difference.cpp) +# # FactorBlockDifference class test +# wolf_add_gtest(gtest_factor_block_difference gtest_factor_block_difference.cpp) -# FactorDiffDrive class test -wolf_add_gtest(gtest_factor_diff_drive gtest_factor_diff_drive.cpp) +# # FactorDiffDrive class test +# wolf_add_gtest(gtest_factor_diff_drive gtest_factor_diff_drive.cpp) -# FactorOdom2dAutodiff class test -wolf_add_gtest(gtest_factor_odom_2d_autodiff gtest_factor_odom_2d_autodiff.cpp) +# # FactorOdom2dAutodiff class test +# wolf_add_gtest(gtest_factor_odom_2d_autodiff gtest_factor_odom_2d_autodiff.cpp) -# FactorPose2d class test -wolf_add_gtest(gtest_factor_pose_2d gtest_factor_pose_2d.cpp) +# # FactorPose2d class test +# wolf_add_gtest(gtest_factor_pose_2d gtest_factor_pose_2d.cpp) -# FactorPose3d class test -wolf_add_gtest(gtest_factor_pose_3d gtest_factor_pose_3d.cpp) +# # FactorPose3d class test +# wolf_add_gtest(gtest_factor_pose_3d gtest_factor_pose_3d.cpp) -# FactorRelativePose2d class test -wolf_add_gtest(gtest_factor_relative_pose_2d gtest_factor_relative_pose_2d.cpp) +# # FactorRelativePose2d class test +# wolf_add_gtest(gtest_factor_relative_pose_2d gtest_factor_relative_pose_2d.cpp) -# FactorRelativePose2dWithExtrinsics class test -wolf_add_gtest(gtest_factor_relative_pose_2d_with_extrinsics gtest_factor_relative_pose_2d_with_extrinsics.cpp) +# # FactorRelativePose2dWithExtrinsics class test +# wolf_add_gtest(gtest_factor_relative_pose_2d_with_extrinsics gtest_factor_relative_pose_2d_with_extrinsics.cpp) -# FactorRelativePose3d class test -wolf_add_gtest(gtest_factor_relative_pose_3d gtest_factor_relative_pose_3d.cpp) +# # FactorRelativePose3d class test +# wolf_add_gtest(gtest_factor_relative_pose_3d gtest_factor_relative_pose_3d.cpp) -# FactorRelativePose3dWithExtrinsics class test -wolf_add_gtest(gtest_factor_relative_pose_3d_with_extrinsics gtest_factor_relative_pose_3d_with_extrinsics.cpp) +# # FactorRelativePose3dWithExtrinsics class test +# wolf_add_gtest(gtest_factor_relative_pose_3d_with_extrinsics gtest_factor_relative_pose_3d_with_extrinsics.cpp) -# FactorVelocityLocalDirection3d class test -wolf_add_gtest(gtest_factor_velocity_local_direction_3d gtest_factor_velocity_local_direction_3d.cpp) +# # FactorVelocityLocalDirection3d class test +# wolf_add_gtest(gtest_factor_velocity_local_direction_3d gtest_factor_velocity_local_direction_3d.cpp) -# MakePosDef function test -wolf_add_gtest(gtest_make_posdef gtest_make_posdef.cpp) +# # MakePosDef function test +# wolf_add_gtest(gtest_make_posdef gtest_make_posdef.cpp) -# Map yaml save/load test -wolf_add_gtest(gtest_map_yaml gtest_map_yaml.cpp) +# # Map yaml save/load test +# wolf_add_gtest(gtest_map_yaml gtest_map_yaml.cpp) -# Parameter prior test -wolf_add_gtest(gtest_param_prior gtest_param_prior.cpp) +# # Parameter prior test +# wolf_add_gtest(gtest_param_prior gtest_param_prior.cpp) -# ProcessorFixedWingModel class test -wolf_add_gtest(gtest_processor_fixed_wing_model gtest_processor_fixed_wing_model.cpp) +# # ProcessorFixedWingModel class test +# wolf_add_gtest(gtest_processor_fixed_wing_model gtest_processor_fixed_wing_model.cpp) -# ProcessorDiffDrive class test -wolf_add_gtest(gtest_processor_diff_drive gtest_processor_diff_drive.cpp) +# # ProcessorDiffDrive class test +# wolf_add_gtest(gtest_processor_diff_drive gtest_processor_diff_drive.cpp) -# ProcessorLoopClosure class test -wolf_add_gtest(gtest_processor_loop_closure gtest_processor_loop_closure.cpp) +# # ProcessorLoopClosure class test +# wolf_add_gtest(gtest_processor_loop_closure gtest_processor_loop_closure.cpp) -# ProcessorMotion in 2d -wolf_add_gtest(gtest_odom_2d gtest_odom_2d.cpp) +# # ProcessorMotion in 2d +# wolf_add_gtest(gtest_odom_2d gtest_odom_2d.cpp) -# ProcessorOdom3d class test -wolf_add_gtest(gtest_processor_odom_3d gtest_processor_odom_3d.cpp) +# # ProcessorOdom3d class test +# wolf_add_gtest(gtest_processor_odom_3d gtest_processor_odom_3d.cpp) -# FactorPose3dWithExtrinsics class test -wolf_add_gtest(gtest_processor_and_factor_pose_3d_with_extrinsics gtest_processor_and_factor_pose_3d_with_extrinsics.cpp) +# # FactorPose3dWithExtrinsics class test +# wolf_add_gtest(gtest_processor_and_factor_pose_3d_with_extrinsics gtest_processor_and_factor_pose_3d_with_extrinsics.cpp) -# ProcessorTrackerFeatureDummy class test -wolf_add_gtest(gtest_processor_tracker_feature_dummy gtest_processor_tracker_feature_dummy.cpp) -target_link_libraries(gtest_processor_tracker_feature_dummy PUBLIC dummy) +# # ProcessorTrackerFeatureDummy class test +# wolf_add_gtest(gtest_processor_tracker_feature_dummy gtest_processor_tracker_feature_dummy.cpp) +# target_link_libraries(gtest_processor_tracker_feature_dummy PUBLIC dummy) -# ProcessorTrackerLandmarkDummy class test -wolf_add_gtest(gtest_processor_tracker_landmark_dummy gtest_processor_tracker_landmark_dummy.cpp) -target_link_libraries(gtest_processor_tracker_landmark_dummy PUBLIC dummy) +# # ProcessorTrackerLandmarkDummy class test +# wolf_add_gtest(gtest_processor_tracker_landmark_dummy gtest_processor_tracker_landmark_dummy.cpp) +# target_link_libraries(gtest_processor_tracker_landmark_dummy PUBLIC dummy) -# SensorDiffDriveSelfcalib class test -wolf_add_gtest(gtest_sensor_diff_drive gtest_sensor_diff_drive.cpp) +# # SensorDiffDriveSelfcalib class test +# wolf_add_gtest(gtest_sensor_diff_drive gtest_sensor_diff_drive.cpp) -# SensorOdom class test -wolf_add_gtest(gtest_sensor_odom gtest_sensor_odom.cpp) +# # SensorOdom class test +# wolf_add_gtest(gtest_sensor_odom gtest_sensor_odom.cpp) -# SensorPose class test -wolf_add_gtest(gtest_sensor_pose gtest_sensor_pose.cpp) +# # SensorPose class test +# wolf_add_gtest(gtest_sensor_pose gtest_sensor_pose.cpp) -IF (Ceres_FOUND) - # SolverCeres test - wolf_add_gtest(gtest_solver_ceres gtest_solver_ceres.cpp) +# IF (Ceres_FOUND) +# # SolverCeres test +# wolf_add_gtest(gtest_solver_ceres gtest_solver_ceres.cpp) - # SolverCeresMultithread test - wolf_add_gtest(gtest_solver_ceres_multithread gtest_solver_ceres_multithread.cpp) -ENDIF(Ceres_FOUND) +# # SolverCeresMultithread test +# wolf_add_gtest(gtest_solver_ceres_multithread gtest_solver_ceres_multithread.cpp) +# ENDIF(Ceres_FOUND) -# TreeManagerSlidingWindow class test -wolf_add_gtest(gtest_tree_manager_sliding_window gtest_tree_manager_sliding_window.cpp) +# # TreeManagerSlidingWindow class test +# wolf_add_gtest(gtest_tree_manager_sliding_window gtest_tree_manager_sliding_window.cpp) -# TreeManagerSlidingWindowDualRate class test -wolf_add_gtest(gtest_tree_manager_sliding_window_dual_rate gtest_tree_manager_sliding_window_dual_rate.cpp) +# # TreeManagerSlidingWindowDualRate class test +# wolf_add_gtest(gtest_tree_manager_sliding_window_dual_rate gtest_tree_manager_sliding_window_dual_rate.cpp) -# yaml conversions -wolf_add_gtest(gtest_yaml_conversions gtest_yaml_conversions.cpp) +# # yaml conversions +# wolf_add_gtest(gtest_yaml_conversions gtest_yaml_conversions.cpp) diff --git a/test/dummy/dummy_object.h b/test/dummy/dummy_object.h index c1000ee41128bcb00c0aa257014e32f1e2b72dd5..d79e6f6831126935da4f836f1077db5072ecd381 100644 --- a/test/dummy/dummy_object.h +++ b/test/dummy/dummy_object.h @@ -25,7 +25,6 @@ * WOLF includes * **************************/ #include "core/common/wolf.h" -#include <core/utils/params_server.h> #include "factory_dummy_object.h" namespace wolf { @@ -43,13 +42,12 @@ WOLF_PTR_TYPEDEFS(DummyObject); * DummyObjectClass(const std::string& _unique_name, * const ParamsServer& _server); */ -#define WOLF_DUMMY_OBJECT_CREATE(DummyObjectClass) \ -static DummyObjectPtr create(const std::string& _unique_name, \ - const ParamsServer& _server) \ -{ \ - DummyObjectPtr sub = std::make_shared<DummyObjectClass>(_unique_name, _server); \ - return sub; \ -} \ +#define WOLF_DUMMY_OBJECT_CREATE(DummyObjectClass) \ +static DummyObjectPtr create(const std::string& _unique_name) \ +{ \ + DummyObjectPtr sub = std::make_shared<DummyObjectClass>(_unique_name); \ + return sub; \ +} \ class DummyObject { @@ -60,8 +58,7 @@ class DummyObject std::string topic_; public: - DummyObject(const std::string& _unique_name, - const ParamsServer& _server) : + DummyObject(const std::string& _unique_name) : prefix_("ROS DummyObject/" + _unique_name), name_(_unique_name) { @@ -75,20 +72,8 @@ class DummyObject std::string getName() const; virtual void print() const = 0; - - protected: - - template<typename T> - T getParamWithDefault(const ParamsServer &_server, - const std::string &_param_name, - const T _default_value) const; }; -// inline std::string DummyObject::getTopic() const -// { -// return topic_; -// } - inline std::string DummyObject::getName() const { return name_; diff --git a/test/dummy/dummy_object_derived.cpp b/test/dummy/dummy_object_derived.cpp index 4bd2b708743baaa712987e0c2eb32ebc238c604d..8a07fa98bb5877d6b3edfd4a1b82266048b8c953 100644 --- a/test/dummy/dummy_object_derived.cpp +++ b/test/dummy/dummy_object_derived.cpp @@ -24,9 +24,8 @@ namespace wolf { -DummyObjectDerived::DummyObjectDerived(const std::string& _unique_name, - const ParamsServer& _server) ://, - DummyObject(_unique_name, _server) +DummyObjectDerived::DummyObjectDerived(const std::string& _unique_name) ://, + DummyObject(_unique_name) { } diff --git a/test/dummy/dummy_object_derived.h b/test/dummy/dummy_object_derived.h index b611dab32e79f877043d14aa9145a284868e627d..bd2b38e3027afaef728fa9b297d740356a22aca7 100644 --- a/test/dummy/dummy_object_derived.h +++ b/test/dummy/dummy_object_derived.h @@ -33,8 +33,7 @@ namespace wolf { class DummyObjectDerived : public DummyObject { public: - DummyObjectDerived(const std::string& _unique_name, - const ParamsServer& _server); + DummyObjectDerived(const std::string& _unique_name); WOLF_DUMMY_OBJECT_CREATE(DummyObjectDerived); void print() const override; diff --git a/test/dummy/factory_dummy_object.h b/test/dummy/factory_dummy_object.h index 88e15e0b3641a23ab358101dbed5511a2cf6f167..145ced54972a3b16cc042f519995a284df1d5e42 100644 --- a/test/dummy/factory_dummy_object.h +++ b/test/dummy/factory_dummy_object.h @@ -23,15 +23,13 @@ // wolf #include <core/common/factory.h> -#include <core/utils/params_server.h> namespace wolf { class DummyObject; typedef Factory<DummyObject, - const std::string&, - const ParamsServer&> FactoryDummyObject; + const std::string&> FactoryDummyObject; template<> inline std::string FactoryDummyObject::getClass() const { diff --git a/test/gtest_capture_base.cpp b/test/gtest_capture_base.cpp index 893236d5a42e0f45f53f390bbfd79577eabe3ee9..e8ba8dcd0b4cf39c5730c81cdb4f13182486b784 100644 --- a/test/gtest_capture_base.cpp +++ b/test/gtest_capture_base.cpp @@ -19,12 +19,6 @@ // along with this program. If not, see <http://www.gnu.org/licenses/>. // //--------LICENSE_END-------- -/* - * gtest_capture_base.cpp - * - * Created on: Apr 11, 2017 - * Author: jsola - */ #include "core/utils/utils_gtest.h" @@ -49,7 +43,7 @@ TEST(CaptureBase, ConstructorNoSensor) TEST(CaptureBase, ConstructorWithSensor) { - SensorBasePtr S = FactorySensorYaml::create("SensorOdom", "sensor_1", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + SensorBasePtr S = FactorySensorYaml::create("SensorOdom", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml", {wolf_root}); CaptureBasePtr C(std::make_shared<CaptureBase>("DUMMY", 1.5, S)); // timestamp = 1.5 ASSERT_EQ(C->getTimeStamp(), 1.5); ASSERT_FALSE(C->getFrame()); @@ -59,7 +53,7 @@ TEST(CaptureBase, ConstructorWithSensor) TEST(CaptureBase, Static_sensor_params) { - SensorBasePtr S = FactorySensorYaml::create("SensorOdom", "sensor_1", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + SensorBasePtr S = FactorySensorYaml::create("SensorOdom", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml", {wolf_root}); CaptureBasePtr C(std::make_shared<CaptureBase>("DUMMY", 1.5, S)); // timestamp = 1.5 // query capture blocks @@ -70,7 +64,7 @@ TEST(CaptureBase, Static_sensor_params) TEST(CaptureBase, Dynamic_sensor_params) { - SensorBasePtr S = FactorySensorYaml::create("SensorDiffDrive", "sensor_1", 2, wolf_root + "/test/yaml/sensor_diff_drive_dynamic.yaml"); + SensorBasePtr S = FactorySensorYaml::create("SensorDiffDrive", 2, wolf_root + "/test/yaml/sensor_diff_drive_dynamic.yaml", {wolf_root}); StateBlockPtr p(std::make_shared<StateBlock>(2)); StateBlockPtr o(std::make_shared<StateAngle>() ); StateBlockPtr i(std::make_shared<StateBlock>(3)); @@ -102,7 +96,7 @@ TEST(CaptureBase, print) TEST(CaptureBase, process) { - SensorBasePtr S = FactorySensorYaml::create("SensorOdom", "sensor_1", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + SensorBasePtr S = FactorySensorYaml::create("SensorOdom", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml", {wolf_root}); CaptureBasePtr C(std::make_shared<CaptureBase>("DUMMY", 1.5, nullptr)); ASSERT_DEATH({C->process();},""); // No sensor in the capture should fail C->setSensor(S); diff --git a/test/gtest_factory.cpp b/test/gtest_factory.cpp index 9e891659916011d79b4b719de92f6a57b3075850..dfc52dc279a0bd89a0c906e227ca6470c10a74fa 100644 --- a/test/gtest_factory.cpp +++ b/test/gtest_factory.cpp @@ -23,8 +23,7 @@ #include "dummy/factory_dummy_object.h" #include "dummy/dummy_object.h" #include "dummy/dummy_object_derived.h" -#include "core/yaml/parser_yaml.h" -#include "core/utils/params_server.h" +#include "yaml-cpp/yaml.h" using namespace wolf; @@ -32,29 +31,23 @@ std::string wolf_root = _WOLF_ROOT_DIR; TEST(TestFactory, DummyObjectFactory) { - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/params_basic.yaml"); - ParamsServer server = ParamsServer(parser.getParams()); - - auto object = FactoryDummyObject::create("DummyObjectDerived","ACoolDummyObject", server); + auto object = FactoryDummyObject::create("DummyObjectDerived","ACoolDummyObject"); object->getName(); object->print(); // FORCE LOADING - DummyObjectDerived obj_derived = DummyObjectDerived("AnotherCoolDummyObject", server); + DummyObjectDerived obj_derived = DummyObjectDerived("AnotherCoolDummyObject"); } TEST(TestFactory, isCreatorRegistered) { - ParserYaml parser = ParserYaml("test/yaml/params_basic.yaml", wolf_root); - ParamsServer server = ParamsServer(parser.getParams()); - bool object_creator_registered = FactoryDummyObject::isCreatorRegistered("DummyObjectDerived"); ASSERT_TRUE(object_creator_registered); // FORCE LOADING - DummyObjectDerived obj_derived = DummyObjectDerived("AnotherCoolDummyObject", server); + DummyObjectDerived obj_derived = DummyObjectDerived("AnotherCoolDummyObject"); } int main(int argc, char **argv) diff --git a/test/gtest_frame_base.cpp b/test/gtest_frame_base.cpp index 7d82e020710bae62b9f7bb6950b338cfa1fa39f2..111c8e5f60e9b7258054325981423d9503505a21 100644 --- a/test/gtest_frame_base.cpp +++ b/test/gtest_frame_base.cpp @@ -19,12 +19,6 @@ // along with this program. If not, see <http://www.gnu.org/licenses/>. // //--------LICENSE_END-------- -/* - * gtest_frame_base.cpp - * - * Created on: Nov 15, 2016 - * Author: jsola - */ #include "core/utils/utils_gtest.h" @@ -72,7 +66,7 @@ TEST(FrameBase, LinksBasic) ASSERT_FALSE(F->getTrajectory()); ASSERT_FALSE(F->getProblem()); - auto S = FactorySensorYaml::create("SensorOdom", "odometer", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + auto S = FactorySensorYaml::create("SensorOdom", 2, wolf_root + "/test/yaml/sensor_odom_2d.yaml", {wolf_root}); ASSERT_FALSE(F->getCaptureOf(S)); ASSERT_TRUE(F->getCaptureList().empty()); ASSERT_TRUE(F->getConstrainedByList().empty()); @@ -84,7 +78,7 @@ TEST(FrameBase, LinksToTree) // Problem with 2 frames and one motion factor between them ProblemPtr P = Problem::create("PO", 2); TrajectoryBasePtr T = P->getTrajectory(); - auto S = P->installSensor("SensorOdom", "odometer", wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + auto S = P->installSensor("SensorOdom", wolf_root + "/test/yaml/sensor_odom_2d.yaml", {wolf_root}); auto F1 = FrameBase::emplace<FrameBase>(T, 1, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); auto F2 = FrameBase::emplace<FrameBase>(T, 2, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); auto C = CaptureBase::emplace<CaptureMotion>(F1, "CaptureMotion", 1, S, Vector3d::Zero(), nullptr); @@ -135,7 +129,7 @@ TEST(FrameBase, Frames) // Problem with 10 frames ProblemPtr P = Problem::create("PO", 2); TrajectoryBasePtr T = P->getTrajectory(); - auto S = P->installSensor("SensorOdom", "odometer", wolf_root + "/test/yaml/sensor_odom_2d.yaml"); + auto S = P->installSensor("SensorOdom", wolf_root + "/test/yaml/sensor_odom_2d.yaml", {wolf_root}); auto F0 = FrameBase::emplace<FrameBase>(T, 0, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); auto F1 = FrameBase::emplace<FrameBase>(T, 1, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); auto F2 = FrameBase::emplace<FrameBase>(T, 2, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); diff --git a/test/gtest_prior.cpp b/test/gtest_prior.cpp index fc2ed8b46598f96cfc396a9ebf81e4ef1efa6e9e..bcccda4a4f446732a8cfd3c33dcb944985559c61 100644 --- a/test/gtest_prior.cpp +++ b/test/gtest_prior.cpp @@ -23,8 +23,7 @@ #include "core/utils/utils_gtest.h" #include "core/common/wolf.h" #include "core/state_block/prior.h" -#include "core/yaml/parser_yaml.h" -#include "core/utils/params_server.h" +#include "core/common/params_base.h" // toString using namespace wolf; using namespace Eigen; @@ -336,10 +335,9 @@ TEST(Prior, StateQuaternion) testPriors(setups_death, false); } -TEST(Prior, ParamsServer) +TEST(Prior, YamlNode) { - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/params_prior.yaml", true); - ParamsServer server = ParamsServer(parser.getParams()); + YAML::Node input_node = YAML::LoadFile(wolf_root + "/test/yaml/params_prior.yaml"); std::vector<std::string> keys({"P","O"}); std::vector<int> dims({2,3}); @@ -366,7 +364,7 @@ TEST(Prior, ParamsServer) std::string prefix = key + "_" + toString(dim) + "D_" + mode + (dynamic ? "_dynamic" : "") + (drift ? "_drift" : ""); WOLF_INFO("Creating prior from prefix ", prefix); - auto P = Prior(prefix, key, server); + auto P = Prior(input_node[prefix]); // Checks ASSERT_EQ(P.getMode(), mode); @@ -403,7 +401,7 @@ TEST(Prior, ParamsServer) std::string prefix = "I_" + mode + (dynamic ? "_dynamic" : "") + (drift ? "_drift" : ""); WOLF_INFO("Creating prior from prefix ", prefix); - auto P = Prior(prefix, "StateBlock", server); + auto P = Prior(input_node[prefix]); ASSERT_EQ(P.getMode(), mode); ASSERT_EQ(P.isDynamic(), dynamic); ASSERT_MATRIX_APPROX(P.getState(),p_state,wolf::Constants::EPS); @@ -420,8 +418,7 @@ TEST(Prior, ParamsServer) TEST(Prior, ParamsServerWrong) { - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/params_prior_wrong.yaml", true); - ParamsServer server = ParamsServer(parser.getParams()); + YAML::Node input_node = YAML::LoadFile(wolf_root + "/test/yaml/params_prior_wrong.yaml"); std::vector<std::string> keys({"P","O"}); std::vector<int> dims({2,3}); @@ -443,7 +440,7 @@ TEST(Prior, ParamsServerWrong) std::string prefix = key + "_" + toString(dim) + "D_" + mode + (dynamic ? "_dynamic" : "") + (drift ? "_drift" : ""); WOLF_INFO("Creating prior from prefix ", prefix); - ASSERT_THROW(auto P = Prior(prefix, key, server),std::runtime_error); + ASSERT_THROW(auto P = Prior(input_node[prefix]),std::runtime_error); } // I @@ -457,7 +454,7 @@ TEST(Prior, ParamsServerWrong) std::string prefix = "I_" + mode + (dynamic ? "_dynamic" : "") + (drift ? "_drift" : ""); WOLF_INFO("Creating prior from prefix ", prefix); - ASSERT_THROW(auto P = Prior(prefix, "StateBlock", server),std::runtime_error); + ASSERT_THROW(auto P = Prior(input_node[prefix]),std::runtime_error); } } diff --git a/test/gtest_processor_base.cpp b/test/gtest_processor_base.cpp index 58d13348145372cff58688b8df43d8a864ea4fbd..e71a0a1e75d5992c8b1b39d2d77eda60db0259e0 100644 --- a/test/gtest_processor_base.cpp +++ b/test/gtest_processor_base.cpp @@ -62,20 +62,22 @@ TEST(ProcessorBase, MotionProvider) // Install tracker (sensor and processor) auto sens_trk = problem->installSensor("SensorDummy", - "dummy_sensor", - wolf_root + "/test/yaml/sensor_tests/sensor_PO_2D_fix.yaml"); - auto proc_trk = problem->installProcessor("ProcessorTrackerFeatureDummy", "dummy", sens_trk); + wolf_root + "/test/yaml/sensor_tests/sensor_PO_2D_fix.yaml", + {wolf_root}); + auto proc_trk_params = make_shared<ParamsProcessorTrackerFeatureDummy>(); + proc_trk_params->name = "proc tracker"; + auto proc_trk = problem->installProcessor("ProcessorTrackerFeatureDummy", sens_trk, proc_trk_params); // Install odometer (sensor and processor) - SensorBasePtr sens_odo = problem->installSensor("SensorOdom", - "odometer", - wolf_root + "/test/yaml/sensor_odom_2d.yaml"); - ParamsProcessorOdom2dPtr proc_odo_params = make_shared<ParamsProcessorOdom2d>(); + auto sens_odo = problem->installSensor("SensorOdom", + wolf_root + "/test/yaml/sensor_odom_2d.yaml", + {wolf_root}); + auto proc_odo_params = make_shared<ParamsProcessorOdom2d>(); proc_odo_params->time_tolerance = dt/2; - ProcessorBasePtr proc_odo = problem->installProcessor("ProcessorOdom2d", - "odom processor", - sens_odo, - proc_odo_params); + proc_odo_params->name = "odom processor"; + auto proc_odo = problem->installProcessor("ProcessorOdom2d", + sens_odo, + proc_odo_params); ASSERT_FALSE(proc_trk->isMotionProvider()); ASSERT_TRUE (proc_odo->isMotionProvider()); @@ -100,17 +102,22 @@ TEST(ProcessorBase, KeyFrameCallback) // Install tracker (sensor and processor) auto sens_trk = problem->installSensor("SensorDummy", - "dummy_sensor", - wolf_root + "/test/yaml/sensor_tests/sensor_PO_2D_fix.yaml"); + wolf_root + "/test/yaml/sensor_tests/sensor_PO_2D_fix.yaml", + {wolf_root}); auto proc_trk_params = make_shared<ParamsProcessorTrackerFeatureDummy>(); - proc_trk_params->time_tolerance = dt/2; - auto proc_trk = problem->installProcessor("ProcessorTrackerFeatureDummy", "dummy", sens_trk, proc_trk_params); + proc_trk_params->name = "proc tracker"; + auto proc_trk = problem->installProcessor("ProcessorTrackerFeatureDummy", sens_trk, proc_trk_params); // Install odometer (sensor and processor) - SensorBasePtr sens_odo = problem->installSensor("SensorOdom", "odometer", wolf_root + "/test/yaml/sensor_odom_2d.yaml"); - ParamsProcessorOdom2dPtr proc_odo_params = make_shared<ParamsProcessorOdom2d>(); + auto sens_odo = problem->installSensor("SensorOdom", + wolf_root + "/test/yaml/sensor_odom_2d.yaml", + {wolf_root}); + auto proc_odo_params = make_shared<ParamsProcessorOdom2d>(); proc_odo_params->time_tolerance = dt/2; - ProcessorBasePtr proc_odo = problem->installProcessor("ProcessorOdom2d", "odom processor", sens_odo, proc_odo_params); + proc_odo_params->name = "odom processor"; + auto proc_odo = problem->installProcessor("ProcessorOdom2d", + sens_odo, + proc_odo_params); std::cout << "sensor & processor created and added to wolf problem" << std::endl; diff --git a/test/gtest_processor_motion.cpp b/test/gtest_processor_motion.cpp index e09d93e7c737cdc6be91297ce07a68d2b6fe4280..9e9e278c3301e0dd6fb2b3787f82c7044c92d769 100644 --- a/test/gtest_processor_motion.cpp +++ b/test/gtest_processor_motion.cpp @@ -19,12 +19,6 @@ // along with this program. If not, see <http://www.gnu.org/licenses/>. // //--------LICENSE_END-------- -/* - * gtest_processor_motion.cpp - * - * Created on: Sep 27, 2017 - * Author: jsola - */ #include "core/utils/utils_gtest.h" @@ -75,7 +69,9 @@ class ProcessorMotion_test : public testing::Test{ dt = 1.0; problem = Problem::create("PO", 2); - sensor = static_pointer_cast<SensorOdom>(problem->installSensor("SensorOdom", "odom", wolf_root + "/test/yaml/sensor_odom_2d.yaml")); + sensor = static_pointer_cast<SensorOdom>(problem->installSensor("SensorOdom", + wolf_root + "/test/yaml/sensor_odom_2d.yaml", + {wolf_root})); ParamsProcessorOdom2dPtr params(std::make_shared<ParamsProcessorOdom2d>()); params->time_tolerance = 0.5; params->dist_traveled = 100; diff --git a/test/gtest_sensor_base.cpp b/test/gtest_sensor_base.cpp index 22bf01d1139c6d96c1c8e273ad03df5aa7cef7fe..46dee21fc84b18e9f778cdbd00354223eb1c1682 100644 --- a/test/gtest_sensor_base.cpp +++ b/test/gtest_sensor_base.cpp @@ -22,13 +22,13 @@ #include "core/sensor/sensor_base.h" #include "core/utils/utils_gtest.h" -#include "core/yaml/parser_yaml.h" -#include "core/utils/params_server.h" #include "dummy/sensor_dummy.h" #include "dummy/sensor_dummy_poia.h" +#include "yaml-schema-cpp/yaml_server.hpp" using namespace wolf; using namespace Eigen; +using namespace yaml_schema_cpp; std::string wolf_root = _WOLF_ROOT_DIR; @@ -375,124 +375,6 @@ TEST(SensorBase, makeshared_priors_POIA_wrong) std::runtime_error); } -////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////// CONSTRUCTOR WITH PARAM SERVER and KEY_TYPES //////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////// -TEST(SensorBase, makeshared_server_PO) -{ - std::vector<int> dims({2, 3}); - 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}); - - VectorXd p_state(4), o_state(4), po_std(4), i_state(5), i_std(5); - p_state << 1, 2, 3, 4; - o_state << 1, 0, 0, 0; - po_std << 0.1, 0.2, 0.3, 0.4; - i_state << 1, 2, 3, 4, 5; - i_std << 0.1, 0.2, 0.3, 0.4, 0.5; - - // P & O - for (auto dim : dims) - 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_PO_" + - toString(dim) + - "D_" + - mode + - (dynamic ? "_dynamic" : "") + - (drift ? "_drift" : "") + - (wrong ? "_wrong" : ""); - - // Yaml parser - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/sensor_tests/" + name + ".yaml", true); - ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_1"); - - WOLF_INFO("Creating sensor from ", name, ".yaml"); - - // CORRECT YAML - if (not wrong) - { - auto params = std::make_shared<ParamsSensorDummy>("sensor_1", server); - auto S = std::make_shared<SensorDummy>("sensor_1", dim, params, server); - - auto p_size = dim; - auto o_size = dim == 2 ? 1 : 4; - auto p_size_std = mode == "factor" ? dim : 0; - auto o_size_std = mode == "factor" ? (dim == 2 ? 1 : 3) : 0; - auto p_size_std_drift = drift ? dim : 0; - auto o_size_std_drift = drift ? (dim == 2 ? 1 : 3) : 0; - - // noise - ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), - noise_cov_dummy, - Constants::EPS); - - // factors - ASSERT_EQ(S->getPriorFeatures().size(), mode == "factor" ? 2 : 0); - - // check - checkSensor(S, 'P', p_state.head(p_size), mode == "fix", po_std.head(p_size_std), dynamic, po_std.head(p_size_std_drift)); - checkSensor(S, 'O', o_state.head(o_size), mode == "fix", po_std.head(o_size_std), dynamic, po_std.head(o_size_std_drift)); - } - // INCORRECT YAML - else - { - ASSERT_THROW(std::make_shared<SensorDummy>("sensor_1", dim, - std::make_shared<ParamsSensorDummy>("sensor_1", server), - server),std::runtime_error); - } - } - - // POIA - 3D - CORRECT YAML - { - // Yaml parser - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D.yaml", true); - ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_1"); - server.print(); - - WOLF_INFO("Creating sensor from sensor_POIA_3D.yaml"); - - auto params = std::make_shared<ParamsSensorDummyPoia>("sensor_1", server); - auto S = std::make_shared<SensorDummyPoia>("sensor_1", 3, params, server); - - // noise - ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), - noise_cov_dummy, - Constants::EPS); - - // factors - ASSERT_EQ(S->getPriorFeatures().size(), 2); - - // check - checkSensor(S, 'P', p_state.head(3), false, po_std.head(3), true, vector0); - checkSensor(S, 'O', o_state.head(4), true, vector0, false, vector0); - checkSensor(S, 'I', i_state, false, vector0, true, i_std); - checkSensor(S, 'A', o_state.head(4), false, po_std.head(3), true, po_std.head(3)); - } - // POIA - 3D - INCORRECT YAML - { - // Yaml parser - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D_wrong.yaml", true); - ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_1"); - - WOLF_INFO("Creating sensor from sensor_POIA_3D_wrong.yaml"); - - ASSERT_THROW(std::make_shared<SensorDummyPoia>("sensor_1", 3, - std::make_shared<ParamsSensorDummyPoia>("sensor_1", server), - server), - std::runtime_error); - } -} - ////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////// FactorySensor /////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -529,16 +411,17 @@ TEST(SensorBase, factory) (dynamic ? "_dynamic" : "") + (drift ? "_drift" : "") + (wrong ? "_wrong" : ""); - // Yaml parser - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/sensor_tests/" + name + ".yaml", true); - ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_1"); + // Yaml server + YamlServer server({wolf_root}, wolf_root + "/test/yaml/sensor_tests/" + name + ".yaml"); WOLF_INFO("Creating sensor from ", name, ".yaml"); + ASSERT_EQ(server.validate("SensorDummy"), not wrong); + // CORRECT YAML if (not wrong) { - auto S = FactorySensor::create("SensorDummy", "sensor_1", dim, server); + auto S = FactorySensor::create("SensorDummy", dim, server.getNode()); auto p_size = dim; auto o_size = dim == 2 ? 1 : 4; @@ -562,7 +445,7 @@ TEST(SensorBase, factory) // INCORRECT YAML else { - ASSERT_THROW(FactorySensor::create("SensorDummy", "sensor_1", dim, server),std::runtime_error); + ASSERT_THROW(FactorySensor::create("SensorDummy", dim, server.getNode()),std::runtime_error); } } @@ -570,13 +453,11 @@ TEST(SensorBase, factory) { WOLF_INFO("Creating sensor from name sensor_POIA_3D.yaml"); - // Yaml parser - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D.yaml", true); - ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_1"); - server.print(); + // Yaml server + YamlServer server({wolf_root}, wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D.yaml"); // create sensor - auto S = FactorySensor::create("SensorDummyPoia","sensor_1", 3, server); + auto S = FactorySensor::create("SensorDummyPoia", 3, server.getNode()); // noise ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), @@ -596,12 +477,11 @@ TEST(SensorBase, factory) { WOLF_INFO("Creating sensor from name sensor_POIA_3D_wrong.yaml"); - // Yaml parser - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D_wrong.yaml", true); - ParamsServer server = ParamsServer(parser.getParams(), "/sensor/sensor_1"); + // Yaml server + YamlServer server({wolf_root}, wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D_wrong.yaml"); // create sensor - ASSERT_THROW(FactorySensor::create("SensorDummyPoia", "sensor_1", 3, server),std::runtime_error); + ASSERT_THROW(FactorySensor::create("SensorDummyPoia", 3, server.getNode()),std::runtime_error); } } @@ -650,7 +530,7 @@ TEST(SensorBase, factory_yaml) // CORRECT YAML if (not wrong) { - auto S = FactorySensorYaml::create("SensorDummy", "sensor_1", dim, yaml_filepath); + auto S = FactorySensorYaml::create("SensorDummy", dim, yaml_filepath, {wolf_root}); auto p_size = dim; auto o_size = dim == 2 ? 1 : 4; @@ -674,7 +554,7 @@ TEST(SensorBase, factory_yaml) // INCORRECT YAML else { - ASSERT_THROW(FactorySensorYaml::create("SensorDummy", "sensor_1", dim, yaml_filepath),std::runtime_error); + ASSERT_THROW(FactorySensorYaml::create("SensorDummy", dim, yaml_filepath, {wolf_root}),std::runtime_error); } } @@ -684,9 +564,9 @@ TEST(SensorBase, factory_yaml) // create sensor auto S = FactorySensorYaml::create("SensorDummyPoia", - "sensor_1", 3, - wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D.yaml"); + wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D.yaml", + {wolf_root}); // noise ASSERT_MATRIX_APPROX(S->computeNoiseCov(vector0), @@ -708,9 +588,9 @@ TEST(SensorBase, factory_yaml) // create sensor ASSERT_THROW(FactorySensorYaml::create("SensorDummyPoia", - "sensor_1", 3, - wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D_wrong.yaml"), + wolf_root + "/test/yaml/sensor_tests/sensor_POIA_3D_wrong.yaml", + {wolf_root}), std::runtime_error); } } @@ -723,10 +603,11 @@ TEST(SensorBase, factory_yaml) TEST(SensorBase, factory_priors_POfix2D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 2, params, + auto S = FactorySensorPriors::create("SensorDummy", 2, params, Priors({{'P',Prior("P", p_state_2D)}, //default "fix", not dynamic {'O',Prior("O", o_state_2D)}})); @@ -742,10 +623,11 @@ TEST(SensorBase, factory_priors_POfix2D) TEST(SensorBase, factory_priors_POfix3D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 3, params, + auto S = FactorySensorPriors::create("SensorDummy", 3, params, Priors({{'P',Prior("P", p_state_3D)}, //default "fix", not dynamic {'O',Prior("O", o_state_3D)}})); @@ -764,10 +646,11 @@ TEST(SensorBase, factory_priors_POfix3D) TEST(SensorBase, factory_priors_POinitial_guess2D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 2, params, + auto S = FactorySensorPriors::create("SensorDummy", 2, params, Priors({{'P',Prior("P", p_state_2D, "initial_guess")}, {'O',Prior("O", o_state_2D, "initial_guess")}})); @@ -786,10 +669,11 @@ TEST(SensorBase, factory_priors_POinitial_guess2D) TEST(SensorBase, factory_priors_POinitial_guess3D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 3, params, + auto S = FactorySensorPriors::create("SensorDummy", 3, params, Priors({{'P',Prior("P", p_state_3D, "initial_guess")}, {'O',Prior("O", o_state_3D, "initial_guess")}})); @@ -808,10 +692,11 @@ TEST(SensorBase, factory_priors_POinitial_guess3D) TEST(SensorBase, factory_priors_POfactor2D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 2, params, + auto S = FactorySensorPriors::create("SensorDummy", 2, params, Priors({{'P',Prior("P", p_state_2D, "factor", p_std_2D)}, {'O',Prior("O", o_state_2D, "factor", o_std_2D)}})); @@ -830,10 +715,11 @@ TEST(SensorBase, factory_priors_POfactor2D) TEST(SensorBase, factory_priors_POfactor3D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 3, params, + auto S = FactorySensorPriors::create("SensorDummy", 3, params, Priors({{'P',Prior("P", p_state_3D, "factor", p_std_3D)}, {'O',Prior("O", o_state_3D, "factor", o_std_3D)}})); @@ -852,10 +738,11 @@ TEST(SensorBase, factory_priors_POfactor3D) TEST(SensorBase, factory_priors_POinitial_guess_dynamic2D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 2, params, + auto S = FactorySensorPriors::create("SensorDummy", 2, params, Priors({{'P',Prior("P", p_state_2D, "initial_guess", vector0, true)}, {'O',Prior("O", o_state_2D, "initial_guess", vector0, true)}})); @@ -874,10 +761,11 @@ TEST(SensorBase, factory_priors_POinitial_guess_dynamic2D) TEST(SensorBase, factory_priors_POinitial_guess_dynamic3D) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 3, params, + auto S = FactorySensorPriors::create("SensorDummy", 3, params, Priors({{'P',Prior("P", p_state_3D, "initial_guess", vector0, true)}, {'O',Prior("O", o_state_3D, "initial_guess", vector0, true)}})); @@ -896,10 +784,11 @@ TEST(SensorBase, factory_priors_POinitial_guess_dynamic3D) TEST(SensorBase, factory_priors_POinitial_guess_dynamic2D_drift) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 2, params, + auto S = FactorySensorPriors::create("SensorDummy", 2, params, Priors({{'P',Prior("P", p_state_2D, "initial_guess", vector0, true, p_std_2D)}, {'O',Prior("O", o_state_2D, "initial_guess", vector0, true, o_std_2D)}})); @@ -918,10 +807,11 @@ TEST(SensorBase, factory_priors_POinitial_guess_dynamic2D_drift) TEST(SensorBase, factory_priors_POinitial_guess_dynamic3D_drift) { auto params = std::make_shared<ParamsSensorDummy>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; - auto S = FactorySensorPriors::create("SensorDummy","sensor1", 3, params, + auto S = FactorySensorPriors::create("SensorDummy", 3, params, Priors({{'P',Prior("P", p_state_3D, "initial_guess", vector0, true, p_std_3D)}, {'O',Prior("O", o_state_3D, "initial_guess", vector0, true, o_std_3D)}})); @@ -940,12 +830,13 @@ TEST(SensorBase, factory_priors_POinitial_guess_dynamic3D_drift) TEST(SensorBase, factory_priors_POIA_mixed) { auto params = std::make_shared<ParamsSensorDummyPoia>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; VectorXd i_state_3D = VectorXd::Random(5); - auto S = FactorySensorPriors::create("SensorDummyPoia","sensor1", 3, params, + auto S = FactorySensorPriors::create("SensorDummyPoia", 3, params, Priors({{'P',Prior("P", p_state_3D, "fix", vector0, true)}, {'O',Prior("O", o_state_3D, "factor", o_std_3D, true, o_std_3D)}, {'I',Prior("StateBlock", i_state_3D, "initial_guess")}, @@ -968,13 +859,14 @@ TEST(SensorBase, factory_priors_POIA_mixed) TEST(SensorBase, factory_priors_POIA_wrong) { auto params = std::make_shared<ParamsSensorDummyPoia>(); + params->name = "sensor1"; params->noise_p_std = noise_p_std; params->noise_o_std = noise_o_std; VectorXd i_state_3D = VectorXd::Random(5); // missing I - ASSERT_THROW(FactorySensorPriors::create("SensorDummyPoia","sensor1", 3, params, + ASSERT_THROW(FactorySensorPriors::create("SensorDummyPoia", 3, params, Priors({{'P',Prior("P", p_state_3D, "fix", vector0, true)}, {'O',Prior("O", o_state_3D, "factor", o_std_3D, true, o_std_3D)}, //{'I',Prior("StateBlock", i_state_3D, "initial_guess")}, @@ -982,7 +874,7 @@ TEST(SensorBase, factory_priors_POIA_wrong) std::runtime_error); // missing A - ASSERT_THROW(FactorySensorPriors::create("SensorDummyPoia","sensor1", 3, params, + ASSERT_THROW(FactorySensorPriors::create("SensorDummyPoia", 3, params, Priors({{'P',Prior("P", p_state_3D, "fix", vector0, true)}, {'O',Prior("O", o_state_3D, "factor", o_std_3D, true, o_std_3D)}, {'I',Prior("StateBlock", i_state_3D, "initial_guess")}, @@ -990,7 +882,7 @@ TEST(SensorBase, factory_priors_POIA_wrong) std::runtime_error); // wrong A type (expected StateQuaternion) - ASSERT_THROW(FactorySensorPriors::create("SensorDummyPoia","sensor1", 3, params, + ASSERT_THROW(FactorySensorPriors::create("SensorDummyPoia", 3, params, Priors({{'P',Prior("P", p_state_3D, "fix", vector0, true)}, {'O',Prior("O", o_state_3D, "factor", o_std_3D, true, o_std_3D)}, {'I',Prior("StateBlock", i_state_3D, "initial_guess")}, diff --git a/test/gtest_sensor_odom.cpp b/test/gtest_sensor_odom.cpp index e58b353f301c86f2d3c866a8da1ff94744b0a27f..f3349edfbdc682efa42e32cc2f7884056c172a2e 100644 --- a/test/gtest_sensor_odom.cpp +++ b/test/gtest_sensor_odom.cpp @@ -24,7 +24,6 @@ #include "core/sensor/factory_sensor.h" #include "core/utils/utils_gtest.h" #include "core/yaml/parser_yaml.h" -#include "core/utils/params_server.h" using namespace wolf; using namespace Eigen; diff --git a/test/gtest_tree_manager.cpp b/test/gtest_tree_manager.cpp index 1ae353d9f48bf49466b77eb3cf1c3f7150718919..c77181e037bda6da8c7982ad60ea7f49acf6b679 100644 --- a/test/gtest_tree_manager.cpp +++ b/test/gtest_tree_manager.cpp @@ -24,7 +24,6 @@ #include "core/problem/problem.h" #include "core/tree_manager/factory_tree_manager.h" #include "dummy/tree_manager_dummy.h" -#include "core/yaml/parser_yaml.h" using namespace wolf; using namespace Eigen; @@ -61,14 +60,15 @@ TEST(TreeManager, createParams) ASSERT_EQ(P->getTreeManager(), GM); } -TEST(TreeManager, createParamServer) +TEST(TreeManager, createNode) { ProblemPtr P = Problem::create("PO", 2); - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/params_tree_manager1.yaml"); - ParamsServer server = ParamsServer(parser.getParams()); + auto yaml_server = yaml_schema_cpp::YamlServer({wolf_root + "/schemas"}, + wolf_root + "/test/yaml/params_tree_manager1.yaml"); + ASSERT_TRUE(yaml_server.validate("TreeManagerDummy")); - auto GM = TreeManagerDummy::create(server); + auto GM = TreeManagerDummy::create(yaml_server.getNode()); ASSERT_TRUE(std::dynamic_pointer_cast<TreeManagerDummy>(GM) != nullptr); @@ -82,7 +82,7 @@ TEST(TreeManager, createYaml) { ProblemPtr P = Problem::create("PO", 2); - auto GM = TreeManagerDummy::create(wolf_root + "/test/yaml/tree_manager_dummy.yaml"); + auto GM = TreeManagerDummy::create(wolf_root + "/test/yaml/tree_manager_dummy.yaml", {wolf_root + "/schemas"}); ASSERT_TRUE(std::dynamic_pointer_cast<TreeManagerDummy>(GM) != nullptr); @@ -92,13 +92,13 @@ TEST(TreeManager, createYaml) ASSERT_EQ(P->getTreeManager(), GM); } -TEST(TreeManager, Factory) +TEST(TreeManager, FactoryParams) { ProblemPtr P = Problem::create("PO", 2); auto ParamsGM = std::make_shared<ParamsTreeManagerBase>(); - auto GM = FactoryTreeManager::create("TreeManagerDummy",ParamsGM); + auto GM = FactoryTreeManagerParams::create("TreeManagerDummy",ParamsGM); ASSERT_TRUE(std::dynamic_pointer_cast<TreeManagerDummy>(GM) != nullptr); @@ -108,14 +108,15 @@ TEST(TreeManager, Factory) ASSERT_EQ(P->getTreeManager(), GM); } -TEST(TreeManager, FactoryParamServer) +TEST(TreeManager, FactoryParam) { ProblemPtr P = Problem::create("PO", 2); - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/params_tree_manager1.yaml"); - ParamsServer server = ParamsServer(parser.getParams()); + auto yaml_server = yaml_schema_cpp::YamlServer({wolf_root + "/schemas"}, + wolf_root + "/test/yaml/params_tree_manager1.yaml"); + ASSERT_TRUE(yaml_server.validate("TreeManagerDummy")); - auto GM = FactoryTreeManagerServer::create("TreeManagerDummy", server); + auto GM = FactoryTreeManager::create("TreeManagerDummy", yaml_server.getNode()); ASSERT_TRUE(std::dynamic_pointer_cast<TreeManagerDummy>(GM) != nullptr); @@ -129,7 +130,9 @@ TEST(TreeManager, FactoryYaml) { ProblemPtr P = Problem::create("PO", 2); - auto GM = FactoryTreeManagerYaml::create("TreeManagerDummy", wolf_root + "/test/yaml/tree_manager_dummy.yaml"); + auto GM = FactoryTreeManagerYaml::create("TreeManagerDummy", + wolf_root + "/test/yaml/tree_manager_dummy.yaml", + {wolf_root + "/schemas"}); ASSERT_TRUE(std::dynamic_pointer_cast<TreeManagerDummy>(GM) != nullptr); @@ -141,11 +144,7 @@ TEST(TreeManager, FactoryYaml) TEST(TreeManager, autoConf) { - - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/params_tree_manager1.yaml"); - ParamsServer server = ParamsServer(parser.getParams()); - - ProblemPtr P = Problem::autoSetup(server); + ProblemPtr P = Problem::autoSetup(wolf_root + "/test/yaml/params_tree_manager1.yaml", {wolf_root + "/schemas"}); P->applyPriorOptions(0); ASSERT_TRUE(std::dynamic_pointer_cast<TreeManagerDummy>(P->getTreeManager()) != nullptr); @@ -154,10 +153,7 @@ TEST(TreeManager, autoConf) TEST(TreeManager, autoConfNone) { - ParserYaml parser = ParserYaml(wolf_root + "/test/yaml/params_tree_manager2.yaml"); - ParamsServer server = ParamsServer(parser.getParams()); - - ProblemPtr P = Problem::autoSetup(server); + ProblemPtr P = Problem::autoSetup(wolf_root + "/test/yaml/params_tree_manager2.yaml", {wolf_root + "/schemas"}); P->applyPriorOptions(0); ASSERT_TRUE(P->getTreeManager() == nullptr); // params_tree_manager2.yaml problem/tree_manager/type: None diff --git a/test/yaml/params_prior.yaml b/test/yaml/params_prior.yaml index eea5d70f1b1738291f2961d6fbabe61e0f1fa20f..dbdc6c608c75f3c8a62d96034a5fb825aba3f3e5 100644 --- a/test/yaml/params_prior.yaml +++ b/test/yaml/params_prior.yaml @@ -1,33 +1,39 @@ # P in 2D P_2D_initial_guess: + type: StatePoint2d mode: initial_guess state: [1, 2] dynamic: false P_2D_fix: + type: StatePoint2d mode: fix state: [1, 2] dynamic: false P_2D_factor: + type: StatePoint2d mode: factor state: [1, 2] noise_std: [0.1, 0.2] dynamic: false P_2D_initial_guess_dynamic_drift: + type: StatePoint2d mode: initial_guess state: [1, 2] dynamic: true drift_std: [0.1, 0.2] P_2D_fix_dynamic_drift: + type: StatePoint2d mode: fix state: [1, 2] dynamic: true drift_std: [0.1, 0.2] P_2D_factor_dynamic_drift: + type: StatePoint2d mode: factor state: [1, 2] noise_std: [0.1, 0.2] @@ -35,16 +41,19 @@ P_2D_factor_dynamic_drift: drift_std: [0.1, 0.2] P_2D_initial_guess_dynamic: + type: StatePoint2d mode: initial_guess state: [1, 2] dynamic: true P_2D_fix_dynamic: + type: StatePoint2d mode: fix state: [1, 2] dynamic: true P_2D_factor_dynamic: + type: StatePoint2d mode: factor state: [1, 2] noise_std: [0.1, 0.2] @@ -52,34 +61,40 @@ P_2D_factor_dynamic: # P in 3D P_3D_initial_guess: + type: StatePoint3d mode: initial_guess state: [1, 2, 3] dynamic: false P_3D_fix: + type: StatePoint3d mode: fix state: [1, 2, 3] dynamic: false P_3D_factor: + type: StatePoint3d mode: factor state: [1, 2, 3] noise_std: [0.1, 0.2, 0.3] dynamic: false P_3D_initial_guess_dynamic_drift: + type: StatePoint3d mode: initial_guess state: [1, 2, 3] dynamic: true drift_std: [0.1, 0.2, 0.3] P_3D_fix_dynamic_drift: + type: StatePoint3d mode: fix state: [1, 2, 3] dynamic: true drift_std: [0.1, 0.2, 0.3] P_3D_factor_dynamic_drift: + type: StatePoint3d mode: factor state: [1, 2, 3] noise_std: [0.1, 0.2, 0.3] @@ -87,16 +102,19 @@ P_3D_factor_dynamic_drift: drift_std: [0.1, 0.2, 0.3] P_3D_initial_guess_dynamic: + type: StatePoint3d mode: initial_guess state: [1, 2, 3] dynamic: true P_3D_fix_dynamic: + type: StatePoint3d mode: fix state: [1, 2, 3] dynamic: true P_3D_factor_dynamic: + type: StatePoint3d mode: factor state: [1, 2, 3] noise_std: [0.1, 0.2, 0.3] @@ -104,34 +122,40 @@ P_3D_factor_dynamic: # O in 2D O_2D_initial_guess: + type: StateAngle mode: initial_guess state: [1] dynamic: false O_2D_fix: + type: StateAngle mode: fix state: [1] dynamic: false O_2D_factor: + type: StateAngle mode: factor state: [1] noise_std: [0.1] dynamic: false O_2D_initial_guess_dynamic_drift: + type: StateAngle mode: initial_guess state: [1] dynamic: true drift_std: [0.1] O_2D_fix_dynamic_drift: + type: StateAngle mode: fix state: [1] dynamic: true drift_std: [0.1] O_2D_factor_dynamic_drift: + type: StateAngle mode: factor state: [1] noise_std: [0.1] @@ -139,16 +163,19 @@ O_2D_factor_dynamic_drift: drift_std: [0.1] O_2D_initial_guess_dynamic: + type: StateAngle mode: initial_guess state: [1] dynamic: true O_2D_fix_dynamic: + type: StateAngle mode: fix state: [1] dynamic: true O_2D_factor_dynamic: + type: StateAngle mode: factor state: [1] noise_std: [0.1] @@ -156,34 +183,40 @@ O_2D_factor_dynamic: # O in 3D O_3D_initial_guess: + type: StateQuaternion mode: initial_guess state: [1, 0, 0, 0] dynamic: false O_3D_fix: + type: StateQuaternion mode: fix state: [1, 0, 0, 0] dynamic: false O_3D_factor: + type: StateQuaternion mode: factor state: [1, 0, 0, 0] noise_std: [0.1, 0.2, 0.3] dynamic: false O_3D_initial_guess_dynamic_drift: + type: StateQuaternion mode: initial_guess state: [1, 0, 0, 0] dynamic: true drift_std: [0.1, 0.2, 0.3] O_3D_fix_dynamic_drift: + type: StateQuaternion mode: fix state: [1, 0, 0, 0] dynamic: true drift_std: [0.1, 0.2, 0.3] O_3D_factor_dynamic_drift: + type: StateQuaternion mode: factor state: [1, 0, 0, 0] noise_std: [0.1, 0.2, 0.3] @@ -191,16 +224,19 @@ O_3D_factor_dynamic_drift: drift_std: [0.1, 0.2, 0.3] O_3D_initial_guess_dynamic: + type: StateQuaternion mode: initial_guess state: [1, 0, 0, 0] dynamic: true O_3D_fix_dynamic: + type: StateQuaternion mode: fix state: [1, 0, 0, 0] dynamic: true O_3D_factor_dynamic: + type: StateQuaternion mode: factor state: [1, 0, 0, 0] noise_std: [0.1, 0.2, 0.3] @@ -208,34 +244,40 @@ O_3D_factor_dynamic: # I I_initial_guess: + type: StateParam4 mode: initial_guess state: [1, 2, 3, 4] dynamic: false I_fix: + type: StateParam4 mode: fix state: [1, 2, 3, 4] dynamic: false I_factor: + type: StateParam4 mode: factor state: [1, 2, 3, 4] noise_std: [0.1, 0.2, 0.3, 0.4] dynamic: false I_initial_guess_dynamic_drift: + type: StateParam4 mode: initial_guess state: [1, 2, 3, 4] dynamic: true drift_std: [0.1, 0.2, 0.3, 0.4] I_fix_dynamic_drift: + type: StateParam4 mode: fix state: [1, 2, 3, 4] dynamic: true drift_std: [0.1, 0.2, 0.3, 0.4] I_factor_dynamic_drift: + type: StateParam4 mode: factor state: [1, 2, 3, 4] noise_std: [0.1, 0.2, 0.3, 0.4] @@ -243,16 +285,19 @@ I_factor_dynamic_drift: drift_std: [0.1, 0.2, 0.3, 0.4] I_initial_guess_dynamic: + type: StateParam4 mode: initial_guess state: [1, 2, 3, 4] dynamic: true I_fix_dynamic: + type: StateParam4 mode: fix state: [1, 2, 3, 4] dynamic: true I_factor_dynamic: + type: StateParam4 mode: factor state: [1, 2, 3, 4] noise_std: [0.1, 0.2, 0.3, 0.4] diff --git a/test/yaml/params_prior_wrong.yaml b/test/yaml/params_prior_wrong.yaml index afdaa97e76af653b6674fb7c62fa49fd5d514676..c3b2a43eb6d829d4567d1ff51a19872dde0e6a6f 100644 --- a/test/yaml/params_prior_wrong.yaml +++ b/test/yaml/params_prior_wrong.yaml @@ -1,49 +1,58 @@ # P in _2D_ P_2D_initial_guess: + type: StatePoint2d mode: initial_guess #state: [1, 2] # missing dynamic: false P_2D_fix: + type: StatePoint2d mode: fix #state: [1, 2] # missing dynamic: false P_2D_factor: + type: StatePoint2d mode: factor state: [1, 2] noise_std: [0.1, 0.2, 0.3] # wrong size dynamic: false P_2D_initial_guess_dynamic: + type: StatePoint2d mode: initial_guess state: [1, 2] #dynamic: true #missing P_2D_fix_dynamic: + type: StatePoint2d mode: fix state: [1] # wrong size dynamic: true P_2D_factor_dynamic: + type: StatePoint2d mode: factor state: [1, 2] #noise_std: [0.1, 0.2] # missing dynamic: true P_2D_initial_guess_dynamic_drift: + type: StatePoint2d mode: initial_guess state: [1, 2] dynamic: true drift_std: [0.1, 0.2, 0.3] # wrong size P_2D_fix_dynamic_drift: + type: StatePoint2d mode: fix state: [1, 2] dynamic: true drift_std: [0.1] # wrong size P_2D_factor_dynamic_drift: + type: StatePoint2d mode: factor state: [1, 2] #noise_std: [0.1, 0.2] # missing @@ -52,32 +61,38 @@ P_2D_factor_dynamic_drift: # P in _3D_ P_3D_initial_guess: + type: StatePoint3d #mode: initial_guess # missing state: [1, 2, 3] dynamic: false P_3D_fix: + type: StatePoint3d mode: fix state: [1, 2, 3, 4] # wrong size dynamic: false P_3D_factor: + type: StatePoint3d mode: factor state: [1, 2, 3] noise_std: [0.1, 0.2] # wrong size dynamic: false P_3D_initial_guess_dynamic: + type: StatePoint3d mode: initial_guess state: [1, 2, 3, 4] # wrong size dynamic: true P_3D_fix_dynamic: + type: StatePoint3d mode: fix state: [1, 2, 3] # dynamic: true # missing P_3D_factor_dynamic: + type: StatePoint3d mode: factor state: [1, 2, 3] noise_std: [0.1, 0.2] # wrong size @@ -85,18 +100,21 @@ P_3D_factor_dynamic: drift_std: [0.1, 0.2, 0.3] P_3D_initial_guess_dynamic_drift: + type: StatePoint3d mode: initial_guess state: [1, 2, 3] dynamic: true drift_std: [0.1, 0.2] # wrong size P_3D_fix_dynamic_drift: + type: StatePoint3d #mode: fix state: [1, 2, 3] dynamic: true drift_std: [0.1, 0.2] P_3D_factor_dynamic_drift: + type: StatePoint3d mode: factor state: [1, 2, 3] noise_std: [0.1, 0.2] # wrong size @@ -105,50 +123,59 @@ P_3D_factor_dynamic_drift: # O in _2D_ O_2D_initial_guess: + type: StateAngle mode: initial_guess state: [1, 2] # wrong size dynamic: false O_2D_fix: + type: StateAngle mode: fix state: [1] #dynamic: false # missing O_2D_factor: + type: StateAngle mode: factor state: [1] noise_std: [0.1, 0.2] # wrong size dynamic: false O_2D_initial_guess_dynamic: + type: StateAngle mode: initial_guess state: [1, 2] #wrong size dynamic: true O_2D_fix_dynamic: + type: StateAngle mode: fix state: [1 2] # wrong size dynamic: true O_2D_factor_dynamic: + type: StateAngle mode: factor state: [1] noise_std: [0.1 0.2] # wrong size dynamic: true O_2D_initial_guess_dynamic_drift: + type: StateAngle mode: initial_guess state: [1] dynamic: true drift_std: [0.1, 0.2] # wrong size O_2D_fix_dynamic_drift: + type: StateAngle mode: fix state: [1 2] # wrong size dynamic: true drift_std: [0.1] O_2D_factor_dynamic_drift: + type: StateAngle mode: factor state: [1] noise_std: [0.1 0.2] # wrong size @@ -157,50 +184,59 @@ O_2D_factor_dynamic_drift: # O in _3D_ O_3D_initial_guess: + type: StateQuaternion mode: initial_guess #state: [1, 0, 0, 0] # missing dynamic: false O_3D_fix: + type: StateQuaternion mode: fix state: [1, 0, 0, 0] #dynamic: false # missing O_3D_factor: + type: StateQuaternion mode: factor state: [1, 0, 0, 0] noise_std: [0.1, 0.2] # wrong size dynamic: false O_3D_initial_guess_dynamic: + type: StateQuaternion mode: initial_guess state: [1, 0, 0] # wrong size dynamic: true O_3D_fix_dynamic: + type: StateQuaternion mode: fix state: [1, 0, 0, 0] #dynamic: true O_3D_factor_dynamic: + type: StateQuaternion mode: factor state: [1, 0, 0, 0] noise_std: [0.1, 0.2, 0.3, 0.4] # wrong size dynamic: true O_3D_initial_guess_dynamic_drift: + type: StateQuaternion mode: initial_guess state: [1, 0, 0] # wrong size dynamic: true drift_std: [0.1, 0.2, 0.3] O_3D_fix_dynamic_drift: + type: StateQuaternion mode: fix state: [1, 0, 0, 0] dynamic: true drift_std: [0.1, 0.2, 0.3, 0.4] #wrong size O_3D_factor_dynamic_drift: + type: StateQuaternion mode: factor state: [1, 0, 0, 0] noise_std: [0.1, 0.2, 0.3] @@ -209,50 +245,59 @@ O_3D_factor_dynamic_drift: # I I_initial_guess: + type: StateParam4 #mode: initial_guess # missing state: [1, 2, 3, 4] dynamic: false I_fix: + type: StateParam4 mode: fix #state: [1, 2, 3, 4] # missing dynamic: false I_factor: + type: StateParam4 mode: factor state: [1, 2, 3, 4] noise_std: [0.1, 0.2, 0.3] # wrong size dynamic: false I_initial_guess_dynamic: + type: StateParam4 #mode: initial_guess # missing state: [1, 2, 3, 4] dynamic: true I_fix_dynamic: + type: StateParam4 mode: fix state: [] # wrong size dynamic: true I_factor_dynamic: + type: StateParam4 mode: factor state: [1, 2, 3, 4] noise_std: [0.1, 0.2, 0.3] # wrong size dynamic: true I_initial_guess_dynamic_drift: + type: StateParam4 mode: initial_guess state: [1, 2, 3, 4] dynamic: true drift_std: [0.1, 0.2, 0.3] # wrong size I_fix_dynamic_drift: + type: StateParam4 mode: fix state: [1, 2, 3] # wrong size dynamic: true drift_std: [0.1, 0.2, 0.3, 0.4] I_factor_dynamic_drift: + type: StateParam4 mode: factor state: [1, 2, 3, 4] noise_std: [0.1, 0.2, 0.3] # wrong size