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;
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.
......
......@@ -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,
......
......@@ -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
......
......@@ -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
......
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