diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h index c940dbf5ffdeed1995138be4e015304b52bc6ec1..da7089c17e3d854b31014cdda3b318dea47037f2 100644 --- a/include/core/processor/processor_base.h +++ b/include/core/processor/processor_base.h @@ -20,7 +20,7 @@ class SensorBase; 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), * preferably just after the constructors. diff --git a/include/core/processor/processor_diff_drive.h b/include/core/processor/processor_diff_drive.h index 98e7bfaa308e1a9c9d53efb19f3c047e62952ba8..297ce7a38c139387aac80a987137ee61bb18202f 100644 --- a/include/core/processor/processor_diff_drive.h +++ b/include/core/processor/processor_diff_drive.h @@ -34,12 +34,16 @@ class ProcessorDiffDrive : public ProcessorOdom2D { public: ProcessorDiffDrive(ProcessorParamsDiffDrivePtr _params_motion); - WOLF_CREATE_PROCESSOR_AUTO(ProcessorDiffDrive, ProcessorParamsDiffDrive); - static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params); 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: - virtual void configure(SensorBasePtr _sensor) override; + // Motion integration virtual void computeCurrentDelta(const Eigen::VectorXs& _data, const Eigen::MatrixXs& _data_cov, const Eigen::VectorXs& _calib, diff --git a/include/core/processor/processor_odom_2D.h b/include/core/processor/processor_odom_2D.h index e62f7a19bd8428fab07a3686f7d08de590af7b27..9d9c8096a6c5af7b641e7885d6a41d28175e123b 100644 --- a/include/core/processor/processor_odom_2D.h +++ b/include/core/processor/processor_odom_2D.h @@ -41,10 +41,14 @@ class ProcessorOdom2D : public ProcessorMotion { public: ProcessorOdom2D(ProcessorParamsOdom2DPtr _params); - WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom2D, ProcessorParamsOdom2D); virtual ~ProcessorOdom2D(); 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; protected: @@ -93,9 +97,6 @@ class ProcessorOdom2D : public ProcessorMotion protected: ProcessorParamsOdom2DPtr params_odom_2D_; - // Factory method - public: - static ProcessorBasePtr create(const std::string& _unique_name, const ProcessorParamsBasePtr _params); }; 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 98bd95e4aec489c1d22ade5ec94689e0614f2762..ce97160321f22053f926c959089fa2444d300000 100644 --- a/include/core/processor/processor_odom_3D.h +++ b/include/core/processor/processor_odom_3D.h @@ -61,11 +61,16 @@ class ProcessorOdom3D : public ProcessorMotion { public: ProcessorOdom3D(ProcessorParamsOdom3DPtr _params); - WOLF_CREATE_PROCESSOR_AUTO(ProcessorOdom3D, ProcessorParamsOdom3D); virtual ~ProcessorOdom3D(); 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: + // Motion integration virtual void computeCurrentDelta(const Eigen::VectorXs& _data, const Eigen::MatrixXs& _data_cov, const Eigen::VectorXs& _calib, @@ -127,10 +132,6 @@ class ProcessorOdom3D : public ProcessorMotion Eigen::Map<Eigen::Quaternions> q_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