Skip to content
Snippets Groups Projects
Commit daf06121 authored by Joan Solà Ortega's avatar Joan Solà Ortega
Browse files

format

parent f9071d2f
No related branches found
No related tags found
1 merge request!303Hello wolf autoconf
Pipeline #3970 passed
...@@ -22,19 +22,19 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsRangeBearing); ...@@ -22,19 +22,19 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsRangeBearing);
struct ProcessorParamsRangeBearing : public ProcessorParamsBase struct ProcessorParamsRangeBearing : public ProcessorParamsBase
{ {
// We do not need special parameters, but in case you need they should be defined here. // We do not need special parameters, but in case you need they should be defined here.
ProcessorParamsRangeBearing() ProcessorParamsRangeBearing()
{ {
//DEFINED FOR COMPATIBILITY PURPOSES. TO BE REMOVED IN THE FUTURE. //DEFINED FOR COMPATIBILITY PURPOSES. TO BE REMOVED IN THE FUTURE.
} }
ProcessorParamsRangeBearing(std::string _unique_name, const paramsServer& _server): ProcessorParamsRangeBearing(std::string _unique_name, const paramsServer& _server) :
ProcessorParamsBase(_unique_name, _server) ProcessorParamsBase(_unique_name, _server)
{ {
// //
} }
std::string print() std::string print()
{ {
return "\n" + ProcessorParamsBase::print(); return "\n" + ProcessorParamsBase::print();
} }
}; };
using namespace Eigen; using namespace Eigen;
......
...@@ -21,18 +21,19 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom2D); ...@@ -21,18 +21,19 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsOdom2D);
struct ProcessorParamsOdom2D : public ProcessorParamsMotion struct ProcessorParamsOdom2D : public ProcessorParamsMotion
{ {
Scalar cov_det = 1.0; // 1 rad^2 Scalar cov_det = 1.0; // 1 rad^2
ProcessorParamsOdom2D() = default; ProcessorParamsOdom2D() = default;
ProcessorParamsOdom2D(std::string _unique_name, const wolf::paramsServer & _server): ProcessorParamsOdom2D(std::string _unique_name, const wolf::paramsServer & _server) :
ProcessorParamsMotion(_unique_name, _server) ProcessorParamsMotion(_unique_name, _server)
{ {
cov_det = _server.getParam<Scalar>(_unique_name + "/cov_det", "1.0"); cov_det = _server.getParam<Scalar>(_unique_name + "/cov_det", "1.0");
} }
std::string print() std::string print()
{ {
return "\n" + ProcessorParamsMotion::print() + "cov_det: " + std::to_string(cov_det) + "\n"; return "\n" + ProcessorParamsMotion::print() + "cov_det: " + std::to_string(cov_det) + "\n";
} }
}; };
class ProcessorOdom2D : public ProcessorMotion class ProcessorOdom2D : public ProcessorMotion
{ {
public: public:
......
...@@ -2,30 +2,38 @@ ...@@ -2,30 +2,38 @@
#define PARAMS_SERVER_HPP #define PARAMS_SERVER_HPP
#include "core/utils/converter.h" #include "core/utils/converter.h"
//#include "core/yaml/parser_yaml.hpp"
#include <vector> #include <vector>
#include <regex> #include <regex>
#include <map> #include <map>
namespace wolf{ namespace wolf{
class paramsServer{ class paramsServer{
struct ParamsInitSensor{ struct ParamsInitSensor{
std::string _type; std::string _type;
std::string _name; std::string _name;
}; };
struct ParamsInitProcessor{ struct ParamsInitProcessor{
std::string _type; std::string _type;
std::string _name; std::string _name;
std::string _name_assoc_sensor; std::string _name_assoc_sensor;
}; };
std::map<std::string, std::string> _params; std::map<std::string, std::string> _params;
std::map<std::string,ParamsInitSensor> _paramsSens; std::map<std::string,ParamsInitSensor> _paramsSens;
std::map<std::string,ParamsInitProcessor> _paramsProc; std::map<std::string,ParamsInitProcessor> _paramsProc;
public:
public:
paramsServer(){ paramsServer(){
_params = std::map<std::string, std::string>(); _params = std::map<std::string, std::string>();
_paramsSens = std::map<std::string,ParamsInitSensor>(); _paramsSens = std::map<std::string,ParamsInitSensor>();
_paramsProc = std::map<std::string,ParamsInitProcessor>(); _paramsProc = std::map<std::string,ParamsInitProcessor>();
} }
paramsServer(std::map<std::string, std::string> params, paramsServer(std::map<std::string, std::string> params,
std::vector<std::array<std::string,2>> sensors, std::vector<std::array<std::string,2>> sensors,
std::vector<std::array<std::string,3>> procs){ std::vector<std::array<std::string,3>> procs){
...@@ -41,24 +49,37 @@ public: ...@@ -41,24 +49,37 @@ public:
_paramsProc.insert(std::pair<std::string,ParamsInitProcessor>(it.at(1), pProcs)); _paramsProc.insert(std::pair<std::string,ParamsInitProcessor>(it.at(1), pProcs));
} }
} }
// paramsServer(std::string _file)
// {
// parserYAML parser = parserYAML(_file);
// parser.parse();
// paramsServer(parser.getParams(), parser.sensorsSerialization(), parser.processorsSerialization());
// }
~paramsServer(){ ~paramsServer(){
// //
} }
void print(){ void print(){
for(auto it : _params) for(auto it : _params)
std::cout << it.first << "~~" << it.second << std::endl; std::cout << it.first << "~~" << it.second << std::endl;
} }
void addInitParamsSensor(std::string type, std::string name){ void addInitParamsSensor(std::string type, std::string name){
ParamsInitSensor params = {type, name}; ParamsInitSensor params = {type, name};
_paramsSens.insert(std::pair<std::string, ParamsInitSensor>(type + "/" + name + "/", params)); _paramsSens.insert(std::pair<std::string, ParamsInitSensor>(type + "/" + name + "/", params));
} }
void addInitParamsProcessor(std::string type, std::string name, std::string name_assoc_sensor){ void addInitParamsProcessor(std::string type, std::string name, std::string name_assoc_sensor){
ParamsInitProcessor params = {type, name, name_assoc_sensor}; ParamsInitProcessor params = {type, name, name_assoc_sensor};
_paramsProc.insert(std::pair<std::string, ParamsInitProcessor>(type + "/" + name + "/", params)); _paramsProc.insert(std::pair<std::string, ParamsInitProcessor>(type + "/" + name + "/", params));
} }
void addParam(std::string key, std::string value){ void 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>(key, value));
} }
template<typename T> template<typename T>
T getParam(std::string key, std::string def_value) const { T getParam(std::string key, std::string def_value) const {
if(_params.find(key) != _params.end()){ if(_params.find(key) != _params.end()){
...@@ -67,6 +88,7 @@ public: ...@@ -67,6 +88,7 @@ public:
return converter<T>::convert(def_value); return converter<T>::convert(def_value);
} }
} }
template<typename T> template<typename T>
T getParam(std::string key) const { T getParam(std::string key) const {
if(_params.find(key) != _params.end()){ if(_params.find(key) != _params.end()){
...@@ -75,16 +97,20 @@ public: ...@@ -75,16 +97,20 @@ public:
throw std::runtime_error("The following key: '" + key + "' has not been found in the parameters server and no default value was provided."); throw std::runtime_error("The following key: '" + key + "' has not been found in the parameters server and no default value was provided.");
} }
} }
std::vector<ParamsInitSensor> getSensors(){ std::vector<ParamsInitSensor> getSensors(){
std::vector<ParamsInitSensor> rtn = std::vector<ParamsInitSensor>(); std::vector<ParamsInitSensor> rtn = std::vector<ParamsInitSensor>();
std::transform(this->_paramsSens.begin(), this->_paramsSens.end(), back_inserter(rtn), [](const std::pair<std::string,ParamsInitSensor> v){return v.second;}); std::transform(this->_paramsSens.begin(), this->_paramsSens.end(), back_inserter(rtn), [](const std::pair<std::string,ParamsInitSensor> v){return v.second;});
return rtn; return rtn;
} }
std::vector<ParamsInitProcessor> getProcessors(){ std::vector<ParamsInitProcessor> getProcessors(){
std::vector<ParamsInitProcessor> rtn = std::vector<ParamsInitProcessor>(); std::vector<ParamsInitProcessor> rtn = std::vector<ParamsInitProcessor>();
std::transform(this->_paramsProc.begin(), this->_paramsProc.end(), back_inserter(rtn), [](const std::pair<std::string,ParamsInitProcessor> v){return v.second;}); std::transform(this->_paramsProc.begin(), this->_paramsProc.end(), back_inserter(rtn), [](const std::pair<std::string,ParamsInitProcessor> v){return v.second;});
return rtn; return rtn;
} }
}; };
} }
#endif
\ No newline at end of file #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment