diff --git a/hello_wolf/processor_range_bearing.cpp b/hello_wolf/processor_range_bearing.cpp index ae1d3cc3d0fc2b860a66f7f0a1e454caaadd7b47..d12fa8b159203afac4067e7c87dc12f4857c58cc 100644 --- a/hello_wolf/processor_range_bearing.cpp +++ b/hello_wolf/processor_range_bearing.cpp @@ -100,8 +100,7 @@ void ProcessorRangeBearing::processCapture(CaptureBasePtr _capture) } ProcessorBasePtr ProcessorRangeBearing::create(const std::string& _unique_name, - const ProcessorParamsBasePtr _params, - const SensorBasePtr _sen_ptr) + const ProcessorParamsBasePtr _params) { auto params = std::static_pointer_cast<ProcessorParamsRangeBearing>(_params); diff --git a/hello_wolf/processor_range_bearing.h b/hello_wolf/processor_range_bearing.h index b5337425f2d98a77ea3fee10fd329c5d5609dd3c..4752972086b1473dc33b2bc382773b2f45b051e0 100644 --- a/hello_wolf/processor_range_bearing.h +++ b/hello_wolf/processor_range_bearing.h @@ -51,9 +51,8 @@ class ProcessorRangeBearing : public ProcessorBase // Factory method for high level API static ProcessorBasePtr create(const std::string& _unique_name, - const ProcessorParamsBasePtr _params, - const SensorBasePtr sensor_ptr = nullptr); - WOLF_CREATE_PROCESSOR_AUTO(ProcessorRangeBearing, ProcessorParamsRangeBearing, SensorRangeBearing); + const ProcessorParamsBasePtr _params); + WOLF_CREATE_PROCESSOR_AUTO(ProcessorRangeBearing, ProcessorParamsRangeBearing); protected: // Implementation of pure virtuals from ProcessorBase diff --git a/include/core/processor/autoconf_processor_factory.h b/include/core/processor/autoconf_processor_factory.h index 051b8d8578544f0fb4c195e5e591064b6b6f116f..418f488f9587388361dbfab8d015ad458732454e 100644 --- a/include/core/processor/autoconf_processor_factory.h +++ b/include/core/processor/autoconf_processor_factory.h @@ -167,8 +167,7 @@ namespace wolf typedef Factory<ProcessorBase, const std::string&, - const ParamsServer&, - const SensorBasePtr> AutoConfProcessorFactory; + const ParamsServer&> AutoConfProcessorFactory; template<> inline std::string AutoConfProcessorFactory::getClass() { diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h index 6d0159f7e695ca3f5d09628a5b78b3df553bd004..c940dbf5ffdeed1995138be4e015304b52bc6ec1 100644 --- a/include/core/processor/processor_base.h +++ b/include/core/processor/processor_base.h @@ -30,10 +30,9 @@ namespace wolf { * * ProcessorClass(const SensorClassPtr _sensor, const ProcessorParamsClassPtr _params); */ -#define WOLF_CREATE_PROCESSOR_AUTO(ProcessorClass, ProcessorParamsClass, SensorClass) \ +#define WOLF_CREATE_PROCESSOR_AUTO(ProcessorClass, ProcessorParamsClass) \ static ProcessorBasePtr createAutoConf(const std::string& _unique_name, \ - const ParamsServer& _server, \ - const SensorBasePtr _sensor) \ + const ParamsServer& _server) \ { \ auto params = std::make_shared<ProcessorParamsClass>(_unique_name, _server); \ \ diff --git a/include/core/processor/processor_diff_drive.h b/include/core/processor/processor_diff_drive.h index d1ffd344f06c5788382236eb83b4aaa76167f144..44496732262e024669c7592e51a3fdf7d5cc2277 100644 --- a/include/core/processor/processor_diff_drive.h +++ b/include/core/processor/processor_diff_drive.h @@ -34,8 +34,8 @@ class ProcessorDiffDrive : public ProcessorOdom2D { public: ProcessorDiffDrive(ProcessorParamsDiffDrivePtr _params_motion); - static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr sensor_ptr = nullptr); - static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_ptr = nullptr); + static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params); + static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server); virtual ~ProcessorDiffDrive(); protected: diff --git a/include/core/processor/processor_factory.h b/include/core/processor/processor_factory.h index 8b2fdb2472b99a6eb1271e63e0196a3f0459e699..4b305a83b944b371a36f151175d4d7ef63633d42 100644 --- a/include/core/processor/processor_factory.h +++ b/include/core/processor/processor_factory.h @@ -167,8 +167,7 @@ namespace wolf typedef Factory<ProcessorBase, const std::string&, - const ProcessorParamsBasePtr, - const SensorBasePtr> ProcessorFactory; + const ProcessorParamsBasePtr> ProcessorFactory; template<> inline std::string ProcessorFactory::getClass() { diff --git a/include/core/processor/processor_odom_2D.h b/include/core/processor/processor_odom_2D.h index de53f9fb400df6098785d144d11a9210dab9ebda..7edf655b449898c4744fca827a612ef6bd544461 100644 --- a/include/core/processor/processor_odom_2D.h +++ b/include/core/processor/processor_odom_2D.h @@ -94,8 +94,8 @@ class ProcessorOdom2D : public ProcessorMotion // Factory method public: - static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr sensor_ptr = nullptr); - static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_ptr = nullptr); + static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params); + static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server); }; inline Eigen::VectorXs ProcessorOdom2D::deltaZero() const diff --git a/include/core/processor/processor_odom_3D.h b/include/core/processor/processor_odom_3D.h index 7eab40c33609139afab9e59301c816400bdea95f..35e559a3de2454664d82d932f9fb8ec7474c4d97 100644 --- a/include/core/processor/processor_odom_3D.h +++ b/include/core/processor/processor_odom_3D.h @@ -129,8 +129,7 @@ class ProcessorOdom3D : public ProcessorMotion // Factory method public: static ProcessorBasePtr create(const std::string& _unique_name, - const ProcessorParamsBasePtr _params, - const SensorBasePtr sensor_ptr = nullptr); + const ProcessorParamsBasePtr _params); }; inline Eigen::VectorXs ProcessorOdom3D::deltaZero() const diff --git a/src/problem/problem.cpp b/src/problem/problem.cpp index 9796de853c787ec17f31ab3384e9ab32e1b9837c..f330c67941257173e480400c7e5c8b7ddc6be149 100644 --- a/src/problem/problem.cpp +++ b/src/problem/problem.cpp @@ -177,7 +177,7 @@ ProcessorBasePtr Problem::installProcessor(const std::string& _prc_type, // return ProcessorBasePtr(); } - ProcessorBasePtr prc_ptr = ProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _prc_params, _corresponding_sensor_ptr); + ProcessorBasePtr prc_ptr = ProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _prc_params); prc_ptr->configure(_corresponding_sensor_ptr); prc_ptr->link(_corresponding_sensor_ptr); @@ -218,7 +218,7 @@ ProcessorBasePtr Problem::installProcessor(const std::string& _prc_type, // SensorBasePtr sen_ptr = getSensor(_corresponding_sensor_name); if (sen_ptr == nullptr) throw std::runtime_error("Cannot bind processor. Reason: Sensor \"" + _corresponding_sensor_name + "\" not found. Check sensor name, in must match in sensor and processor!"); - ProcessorBasePtr prc_ptr = AutoConfProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _server, sen_ptr); + ProcessorBasePtr prc_ptr = AutoConfProcessorFactory::get().create(uppercase(_prc_type), _unique_processor_name, _server); prc_ptr->configure(sen_ptr); prc_ptr->link(sen_ptr); diff --git a/src/processor/processor_diff_drive.cpp b/src/processor/processor_diff_drive.cpp index 9552b46457d8e517eea02371a2315592a4ce0c42..f57e54a1d794e360b883116c860478a96360ed35 100644 --- a/src/processor/processor_diff_drive.cpp +++ b/src/processor/processor_diff_drive.cpp @@ -31,18 +31,18 @@ ProcessorDiffDrive::~ProcessorDiffDrive() // } -ProcessorBasePtr ProcessorDiffDrive::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr) +ProcessorBasePtr ProcessorDiffDrive::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params) { - ProcessorDiffDrivePtr prc_ptr; +// ProcessorDiffDrivePtr prc_ptr; - std::shared_ptr<ProcessorParamsDiffDrive> params; - if (_params) - params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params); - else - params = std::make_shared<ProcessorParamsDiffDrive>(); +// std::shared_ptr<ProcessorParamsDiffDrive> params; +// if (_params) + auto params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params); +// else +// params = std::make_shared<ProcessorParamsDiffDrive>(); - prc_ptr = std::make_shared<ProcessorDiffDrive>(params); + auto prc_ptr = std::make_shared<ProcessorDiffDrive>(params); prc_ptr->setName(_unique_name); return prc_ptr; @@ -185,7 +185,7 @@ FactorBasePtr ProcessorDiffDrive::emplaceFactor(FeatureBasePtr _feature, ///////////// FACTORIES /////////////// -ProcessorBasePtr ProcessorDiffDrive::createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_ptr) +ProcessorBasePtr ProcessorDiffDrive::createAutoConf(const std::string& _unique_name, const ParamsServer& _server) { auto params = std::make_shared<ProcessorParamsDiffDrive>(_unique_name, _server); diff --git a/src/processor/processor_odom_2D.cpp b/src/processor/processor_odom_2D.cpp index 9253e23c08ca3b12e296c7c92a825f93ce6ee599..f3835649389f02583605c1290f17cbe081583fa0 100644 --- a/src/processor/processor_odom_2D.cpp +++ b/src/processor/processor_odom_2D.cpp @@ -167,28 +167,23 @@ FeatureBasePtr ProcessorOdom2D::emplaceFeature(CaptureMotionPtr _capture_motion) return key_feature_ptr; } -ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr) +ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params) { + auto params = std::static_pointer_cast<ProcessorParamsOdom2D>(_params); - ProcessorOdom2DPtr prc_ptr; - - std::shared_ptr<ProcessorParamsOdom2D> params; - if (_params) - params = std::static_pointer_cast<ProcessorParamsOdom2D>(_params); - else - params = std::make_shared<ProcessorParamsOdom2D>(); + auto prc_ptr = std::make_shared<ProcessorOdom2D>(params); - prc_ptr = std::make_shared<ProcessorOdom2D>(params); prc_ptr->setName(_unique_name); return prc_ptr; } -ProcessorBasePtr ProcessorOdom2D::createAutoConf(const std::string& _unique_name, const ParamsServer& _server, const SensorBasePtr sensor_ptr) +ProcessorBasePtr ProcessorOdom2D::createAutoConf(const std::string& _unique_name, const ParamsServer& _server) { auto params = std::make_shared<ProcessorParamsOdom2D>(_unique_name, _server); auto prc_ptr = std::make_shared<ProcessorOdom2D>(params); + prc_ptr->setName(_unique_name); return prc_ptr; diff --git a/src/processor/processor_odom_3D.cpp b/src/processor/processor_odom_3D.cpp index 6d60447c261f6244f4bcf7adf38d469a326ef56d..e519b9470cf857e050b4afe8a5af52f66cfba017 100644 --- a/src/processor/processor_odom_3D.cpp +++ b/src/processor/processor_odom_3D.cpp @@ -333,7 +333,7 @@ Motion ProcessorOdom3D::interpolate(const Motion& _ref1, } -ProcessorBasePtr ProcessorOdom3D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params, const SensorBasePtr _sen_ptr) +ProcessorBasePtr ProcessorOdom3D::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params) { // cast inputs to the correct type auto params = std::static_pointer_cast<ProcessorParamsOdom3D>(_params); diff --git a/test/dummy/processor_tracker_feature_dummy.cpp b/test/dummy/processor_tracker_feature_dummy.cpp index 0222ebb5f8cb91bea365c0d3c8249c4392c4a248..d11dcf09f36616d0379945a0bea78a3ad1769b98 100644 --- a/test/dummy/processor_tracker_feature_dummy.cpp +++ b/test/dummy/processor_tracker_feature_dummy.cpp @@ -93,16 +93,16 @@ FactorBasePtr ProcessorTrackerFeatureDummy::emplaceFactor(FeatureBasePtr _featur } ProcessorBasePtr ProcessorTrackerFeatureDummy::create(const std::string& _unique_name, - const ProcessorParamsBasePtr _params, - const SensorBasePtr) + const ProcessorParamsBasePtr _params) { - ProcessorParamsTrackerFeatureDummyPtr params = std::static_pointer_cast<ProcessorParamsTrackerFeatureDummy>(_params); + auto params = std::static_pointer_cast<ProcessorParamsTrackerFeatureDummy>(_params); // if cast failed use default value if (params == nullptr) params = std::make_shared<ProcessorParamsTrackerFeatureDummy>(); - ProcessorTrackerFeatureDummyPtr prc_ptr = std::make_shared<ProcessorTrackerFeatureDummy>(params); + auto prc_ptr = std::make_shared<ProcessorTrackerFeatureDummy>(params); + prc_ptr->setName(_unique_name); return prc_ptr; diff --git a/test/dummy/processor_tracker_feature_dummy.h b/test/dummy/processor_tracker_feature_dummy.h index d4f6dfbcde8fda17e75806ae9b4353afd27497bd..4ba333dfb0bb9ee6009a70781f223efccb316ec6 100644 --- a/test/dummy/processor_tracker_feature_dummy.h +++ b/test/dummy/processor_tracker_feature_dummy.h @@ -105,8 +105,7 @@ class ProcessorTrackerFeatureDummy : public ProcessorTrackerFeature public: static ProcessorBasePtr create(const std::string& _unique_name, - const ProcessorParamsBasePtr _params, - const SensorBasePtr sensor_ptr = nullptr); + const ProcessorParamsBasePtr _params); }; diff --git a/test/gtest_odom_2D.cpp b/test/gtest_odom_2D.cpp index 3c286eb2e2633e54213f0b518d9cbd5694e3205f..31c8dd77ae9ac1df078b4218c3ea2d389757aa42 100644 --- a/test/gtest_odom_2D.cpp +++ b/test/gtest_odom_2D.cpp @@ -205,6 +205,7 @@ TEST(Odom2D, VoteForKfAndSolve) ProcessorBasePtr prc_base = problem->installProcessor("ODOM 2D", "odom", sensor_odom2d, params); ProcessorOdom2DPtr processor_odom2d = std::static_pointer_cast<ProcessorOdom2D>(prc_base); + // NOTE: We integrate and create KFs as follows: // i= 0 1 2 3 4 5 6 // KF -- * -- * -- KF - * -- * -- KF - * diff --git a/test/gtest_processor_diff_drive.cpp b/test/gtest_processor_diff_drive.cpp index f021ba4248e88e85353354abbb52cdee33de7ef0..46f3a9e3299a8074747a4d07d6e9add8fc49e249 100644 --- a/test/gtest_processor_diff_drive.cpp +++ b/test/gtest_processor_diff_drive.cpp @@ -167,7 +167,7 @@ TEST(ProcessorDiffDrive, create) auto params = std::make_shared<ProcessorParamsDiffDrive>(); // processor - auto prc_base = ProcessorDiffDrive::create("prc", params, sen); + auto prc_base = ProcessorDiffDrive::create("prc", params); auto prc = std::static_pointer_cast<ProcessorDiffDrive>(prc_base);