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

Use macro for all processor::createAutoConf

parent 17e2b3d4
No related branches found
No related tags found
1 merge request!313WIP: Resolve "Processor constructors and creators requiring a sensor pointer?"
...@@ -34,8 +34,8 @@ class ProcessorDiffDrive : public ProcessorOdom2D ...@@ -34,8 +34,8 @@ class ProcessorDiffDrive : public ProcessorOdom2D
{ {
public: public:
ProcessorDiffDrive(ProcessorParamsDiffDrivePtr _params_motion); ProcessorDiffDrive(ProcessorParamsDiffDrivePtr _params_motion);
WOLF_CREATE_PROCESSOR_AUTO(ProcessorDiffDrive, ProcessorParamsDiffDrive);
static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params); static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params);
static ProcessorBasePtr createAutoConf(const std::string& _unique_name, const ParamsServer& _server);
virtual ~ProcessorDiffDrive(); virtual ~ProcessorDiffDrive();
protected: protected:
......
...@@ -41,6 +41,7 @@ class ProcessorOdom2D : public ProcessorMotion ...@@ -41,6 +41,7 @@ class ProcessorOdom2D : public ProcessorMotion
{ {
public: public:
ProcessorOdom2D(ProcessorParamsOdom2DPtr _params); ProcessorOdom2D(ProcessorParamsOdom2DPtr _params);
WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom2D, ProcessorParamsOdom2D);
virtual ~ProcessorOdom2D(); virtual ~ProcessorOdom2D();
virtual void configure(SensorBasePtr _sensor) override { }; virtual void configure(SensorBasePtr _sensor) override { };
...@@ -95,7 +96,6 @@ class ProcessorOdom2D : public ProcessorMotion ...@@ -95,7 +96,6 @@ class ProcessorOdom2D : public ProcessorMotion
// Factory method // Factory method
public: public:
static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params); 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 inline Eigen::VectorXs ProcessorOdom2D::deltaZero() const
......
...@@ -61,6 +61,7 @@ class ProcessorOdom3D : public ProcessorMotion ...@@ -61,6 +61,7 @@ class ProcessorOdom3D : public ProcessorMotion
{ {
public: public:
ProcessorOdom3D(ProcessorParamsOdom3DPtr _params); ProcessorOdom3D(ProcessorParamsOdom3DPtr _params);
WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom3D, ProcessorParamsOdom3D);
virtual ~ProcessorOdom3D(); virtual ~ProcessorOdom3D();
virtual void configure(SensorBasePtr _sensor) override; virtual void configure(SensorBasePtr _sensor) override;
......
...@@ -19,7 +19,7 @@ namespace wolf ...@@ -19,7 +19,7 @@ namespace wolf
ProcessorDiffDrive::ProcessorDiffDrive(const ProcessorParamsDiffDrivePtr _params) : ProcessorDiffDrive::ProcessorDiffDrive(const ProcessorParamsDiffDrivePtr _params) :
ProcessorOdom2D(_params), ProcessorOdom2D(_params),
params_prc_diff_drv_selfcal_(_params), params_prc_diff_drv_selfcal_(_params),
radians_per_tick_(0.0) // This params needs further initialization. See this->configure(sensor). radians_per_tick_(0.0) // This param needs further initialization. See this->configure(sensor).
{ {
setType("DIFF DRIVE"); // overwrite odom2D setting setType("DIFF DRIVE"); // overwrite odom2D setting
calib_size_ = 3; // overwrite odom2D setting calib_size_ = 3; // overwrite odom2D setting
...@@ -33,16 +33,10 @@ ProcessorDiffDrive::~ProcessorDiffDrive() ...@@ -33,16 +33,10 @@ ProcessorDiffDrive::~ProcessorDiffDrive()
ProcessorBasePtr ProcessorDiffDrive::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params) ProcessorBasePtr ProcessorDiffDrive::create(const std::string& _unique_name, const ProcessorParamsBasePtr _params)
{ {
auto params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params);
// ProcessorDiffDrivePtr prc_ptr;
// std::shared_ptr<ProcessorParamsDiffDrive> params;
// if (_params)
auto params = std::static_pointer_cast<ProcessorParamsDiffDrive>(_params);
// else
// params = std::make_shared<ProcessorParamsDiffDrive>();
auto prc_ptr = std::make_shared<ProcessorDiffDrive>(params); auto prc_ptr = std::make_shared<ProcessorDiffDrive>(params);
prc_ptr->setName(_unique_name); prc_ptr->setName(_unique_name);
return prc_ptr; return prc_ptr;
...@@ -183,17 +177,6 @@ FactorBasePtr ProcessorDiffDrive::emplaceFactor(FeatureBasePtr _feature, ...@@ -183,17 +177,6 @@ FactorBasePtr ProcessorDiffDrive::emplaceFactor(FeatureBasePtr _feature,
return fac_odom; return fac_odom;
} }
///////////// FACTORIES ///////////////
ProcessorBasePtr ProcessorDiffDrive::createAutoConf(const std::string& _unique_name, const ParamsServer& _server)
{
auto params = std::make_shared<ProcessorParamsDiffDrive>(_unique_name, _server);
auto prc_ptr = std::make_shared<ProcessorDiffDrive>(params);
prc_ptr->setName(_unique_name);
return prc_ptr;
}
} /* namespace wolf */ } /* namespace wolf */
......
...@@ -178,16 +178,6 @@ ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const ...@@ -178,16 +178,6 @@ ProcessorBasePtr ProcessorOdom2D::create(const std::string& _unique_name, const
return prc_ptr; return prc_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;
}
} /* namespace wolf */ } /* namespace wolf */
......
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