From 24bc07a24624f194f6651efc96b1b6aedd82e0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaquim=20Casals=20Bu=C3=B1uel?= <jcasals@iri.upc.edu> Date: Wed, 30 Jan 2019 15:29:48 +0100 Subject: [PATCH] Fixed parsing yaml with unique name --- hello_plugin/parser_yaml.hpp | 6 ++++-- hello_wolf/processor_range_bearing.cpp | 4 ++-- src/processor/processor_odom_2D.cpp | 15 +++++++-------- src/sensor/sensor_odom_2D.cpp | 6 +++--- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/hello_plugin/parser_yaml.hpp b/hello_plugin/parser_yaml.hpp index ade8b47dd..455561e01 100644 --- a/hello_plugin/parser_yaml.hpp +++ b/hello_plugin/parser_yaml.hpp @@ -205,11 +205,13 @@ void parserYAML::parse(){ this->parseFirstLevel(this->_file); for(auto it : _paramsSens){ vector<string> tags = vector<string>(); - this->walkTreeR(it.n , tags , it._type + "/" + it._name); + // this->walkTreeR(it.n , tags , it._type + "/" + it._name); + this->walkTreeR(it.n , tags , it._name); } for(auto it : _paramsProc){ vector<string> tags = vector<string>(); - this->walkTreeR(it.n , tags , it._type + "/" + it._name); + // this->walkTreeR(it.n , tags , it._type + "/" + it._name); + this->walkTreeR(it.n , tags , it._name); } } map<string, string> parserYAML::fetchAsMap(YAML::Node n){ diff --git a/hello_wolf/processor_range_bearing.cpp b/hello_wolf/processor_range_bearing.cpp index c6e1b8fba..470405c20 100644 --- a/hello_wolf/processor_range_bearing.cpp +++ b/hello_wolf/processor_range_bearing.cpp @@ -116,8 +116,8 @@ ProcessorBasePtr ProcessorRangeBearing::createNew(const std::string& _unique_nam { SensorRangeBearingPtr sensor_rb = std::static_pointer_cast<SensorRangeBearing>(_sensor_ptr); ProcessorParamsRangeBearingPtr params = std::make_shared<ProcessorParamsRangeBearing>(); - params->voting_active = _server.getParam<bool>("voting_active", "false"); - params->time_tolerance = _server.getParam<double>("time_tolerance", "0.01"); + params->voting_active = _server.getParam<bool>(_unique_name + "/voting_active", "false"); + params->time_tolerance = _server.getParam<double>(_unique_name + "/time_tolerance", "0.01"); // construct processor ProcessorRangeBearingPtr prc = std::make_shared<ProcessorRangeBearing>(sensor_rb, params); diff --git a/src/processor/processor_odom_2D.cpp b/src/processor/processor_odom_2D.cpp index eb17c030e..a0f584296 100644 --- a/src/processor/processor_odom_2D.cpp +++ b/src/processor/processor_odom_2D.cpp @@ -196,14 +196,13 @@ ProcessorBasePtr ProcessorOdom2D::createNew(const std::string& _unique_name, con std::shared_ptr<ProcessorParamsOdom2D> params; params = std::make_shared<ProcessorParamsOdom2D>(); - - params->voting_active = _server.getParam<bool>("voting_active", "true"); - params->time_tolerance = _server.getParam<double>("time_tolerance", "0.1"); - params->max_time_span = _server.getParam<double>("max_time_span", "999"); - params->dist_traveled = _server.getParam<double>("dist_traveled", "0.95"); // Will make KFs automatically every 1m displacement - params->angle_turned = _server.getParam<double>("angle_turned", "999"); - params->cov_det = _server.getParam<double>("cov_det", "999"); - params->unmeasured_perturbation_std = _server.getParam<double>("unmeasured_perturbation_std", "0.0001"); + params->voting_active = _server.getParam<bool>(_unique_name + "/voting_active", "true"); + params->time_tolerance = _server.getParam<double>(_unique_name + "/time_tolerance", "0.1"); + params->max_time_span = _server.getParam<double>(_unique_name + "/max_time_span", "999"); + params->dist_traveled = _server.getParam<double>(_unique_name + "/dist_traveled", "0.95"); // Will make KFs automatically every 1m displacement + params->angle_turned = _server.getParam<double>(_unique_name + "/angle_turned", "999"); + params->cov_det = _server.getParam<double>(_unique_name + "/cov_det", "999"); + params->unmeasured_perturbation_std = _server.getParam<double>(_unique_name + "/unmeasured_perturbation_std", "0.0001"); prc_ptr = std::make_shared<ProcessorOdom2D>(params); prc_ptr->setName(_unique_name); diff --git a/src/sensor/sensor_odom_2D.cpp b/src/sensor/sensor_odom_2D.cpp index 092479c1b..ac9e1bf77 100644 --- a/src/sensor/sensor_odom_2D.cpp +++ b/src/sensor/sensor_odom_2D.cpp @@ -69,12 +69,12 @@ SensorBasePtr SensorOdom2D::create(const std::string& _unique_name, const Eigen: SensorBasePtr SensorOdom2D::createNew(const std::string& _unique_name, const paramsServer& _server) { // Eigen::VectorXs _extrinsics_po = Eigen::Vector3s(0,0,0); - Eigen::VectorXs _extrinsics_po = _server.getParam<Eigen::VectorXs>("ODOM 2D/"+ _unique_name + "/extrinsic/pos", "[0,0,0]"); + Eigen::VectorXs _extrinsics_po = _server.getParam<Eigen::VectorXs>(_unique_name + "/extrinsic/pos", "[0,0,0]"); assert(_extrinsics_po.size() == 3 && "Bad extrinsics vector length. Should be 3 for 2D."); SensorOdom2DPtr odo; IntrinsicsOdom2D params; - params.k_disp_to_disp = _server.getParam<double>("ODOM 2D/"+ _unique_name + "/intrinsic/k_disp_to_disp", "1"); - params.k_rot_to_rot = _server.getParam<double>("ODOM 2D/"+ _unique_name + "/intrinsic/k_rot_to_rot", "1"); + params.k_disp_to_disp = _server.getParam<double>(_unique_name + "/intrinsic/k_disp_to_disp", "1"); + params.k_rot_to_rot = _server.getParam<double>(_unique_name + "/intrinsic/k_rot_to_rot", "1"); odo = std::make_shared<SensorOdom2D>(_extrinsics_po, params); odo->setName(_unique_name); return odo; -- GitLab