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

Organize processors' high level API and document a little

parent 080eaece
No related branches found
No related tags found
1 merge request!313WIP: Resolve "Processor constructors and creators requiring a sensor pointer?"
Pipeline #4161 passed
...@@ -20,7 +20,7 @@ class SensorBase; ...@@ -20,7 +20,7 @@ class SensorBase;
namespace wolf { namespace wolf {
/* /*
* Macro for defining Autoconf processor creator. * Macro for defining Autoconf processor creator for WOLF's high level API.
* *
* Place a call to this macro inside your class declaration (in the processor_class.h file), * Place a call to this macro inside your class declaration (in the processor_class.h file),
* preferably just after the constructors. * preferably just after the constructors.
......
...@@ -34,12 +34,16 @@ class ProcessorDiffDrive : public ProcessorOdom2D ...@@ -34,12 +34,16 @@ 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);
virtual ~ProcessorDiffDrive(); virtual ~ProcessorDiffDrive();
virtual void configure(SensorBasePtr _sensor) override;
// Factory method for high level API
static ProcessorBasePtr create(const std::string& _unique_name,
const ProcessorParamsBasePtr _params);
WOLF_CREATE_PROCESSOR_AUTO(ProcessorDiffDrive, ProcessorParamsDiffDrive);
protected: protected:
virtual void configure(SensorBasePtr _sensor) override; // Motion integration
virtual void computeCurrentDelta(const Eigen::VectorXs& _data, virtual void computeCurrentDelta(const Eigen::VectorXs& _data,
const Eigen::MatrixXs& _data_cov, const Eigen::MatrixXs& _data_cov,
const Eigen::VectorXs& _calib, const Eigen::VectorXs& _calib,
......
...@@ -41,10 +41,14 @@ class ProcessorOdom2D : public ProcessorMotion ...@@ -41,10 +41,14 @@ 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 { };
// Factory method for high level API
static ProcessorBasePtr create(const std::string& _unique_name,
const ProcessorParamsBasePtr _params);
WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom2D, ProcessorParamsOdom2D);
virtual bool voteForKeyFrame() override; virtual bool voteForKeyFrame() override;
protected: protected:
...@@ -93,9 +97,6 @@ class ProcessorOdom2D : public ProcessorMotion ...@@ -93,9 +97,6 @@ class ProcessorOdom2D : public ProcessorMotion
protected: protected:
ProcessorParamsOdom2DPtr params_odom_2D_; ProcessorParamsOdom2DPtr params_odom_2D_;
// Factory method
public:
static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params);
}; };
inline Eigen::VectorXs ProcessorOdom2D::deltaZero() const inline Eigen::VectorXs ProcessorOdom2D::deltaZero() const
......
...@@ -61,11 +61,16 @@ class ProcessorOdom3D : public ProcessorMotion ...@@ -61,11 +61,16 @@ 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;
// Factory method for high level API
static ProcessorBasePtr create(const std::string& _unique_name,
const ProcessorParamsBasePtr _params);
WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom3D, ProcessorParamsOdom3D);
public: public:
// Motion integration
virtual void computeCurrentDelta(const Eigen::VectorXs& _data, virtual void computeCurrentDelta(const Eigen::VectorXs& _data,
const Eigen::MatrixXs& _data_cov, const Eigen::MatrixXs& _data_cov,
const Eigen::VectorXs& _calib, const Eigen::VectorXs& _calib,
...@@ -127,10 +132,6 @@ class ProcessorOdom3D : public ProcessorMotion ...@@ -127,10 +132,6 @@ class ProcessorOdom3D : public ProcessorMotion
Eigen::Map<Eigen::Quaternions> q_out_; Eigen::Map<Eigen::Quaternions> q_out_;
void remap(const Eigen::VectorXs& _x1, const Eigen::VectorXs& _x2, Eigen::VectorXs& _x_out); void remap(const Eigen::VectorXs& _x1, const Eigen::VectorXs& _x2, Eigen::VectorXs& _x_out);
// Factory method
public:
static ProcessorBasePtr create(const std::string& _unique_name,
const ProcessorParamsBasePtr _params);
}; };
inline Eigen::VectorXs ProcessorOdom3D::deltaZero() const inline Eigen::VectorXs ProcessorOdom3D::deltaZero() const
......
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