class mola::FrontEndBase

Overview

Virtual interface for SLAM front-ends. More…

#include <FrontEndBase.h>

class FrontEndBase:
    public mola::ExecutableBase,
    private mola::RawDataConsumer
{
public:
    // methods

    virtual void onNewObservation(CObservation::Ptr& o) = 0;
    virtual void initialize_common(const Yaml& cfg);
};

// direct descendants

class G2ODataset;
class LidarOdometry;
class WheelOdometry;

Detailed Documentation

Virtual interface for SLAM front-ends.

Instructions for implementing new front-ends: Raw observations arrive via calls to the virtual method onNewObservation(), which must be implemented. Minimum time should be spent there, just copy the incomming data (smart pointer). Actual processing can be normally done by any of these two ways:

  • Wait until spinOnce() is called, at the rate especified in the yaml file (default=1 Hz), or
  • Use your own logic to enque a task into a worker thread pool (preferred).

Methods

virtual void onNewObservation(CObservation::Ptr& o) = 0

To be called whenever a new observation arrives. It should return as fast as possible, enqueuing the data for processing in another thread.

virtual void initialize_common(const Yaml& cfg)

Loads common parameters for all front-ends. Called by launcher just before initialize().