class mola::LidarOdometry

Overview

LIDAR-inertial odometry based on ICP against a local metric map model.

#include <LidarOdometry.h>

class LidarOdometry:
    public mola::FrontEndBase,
    public mola::LocalizationSourceBase,
    public mola::MapSourceBase
{
public:
    // enums

    enum AlignKind;

    // structs

    struct ICP_Input;
    struct ICP_Output;
    struct MethodState;
    struct Parameters;
    struct StateUI;

    // fields

    Parameters params_;

    // methods

    virtual void initialize_frontend(const Yaml& cfg);
    virtual void spinOnce();
    virtual void onNewObservation(const CObservation::Ptr& o);
    void reset();
    bool isBusy() const;
    mrpt::poses::CPose3DInterpolator estimatedTrajectory() const;
    mrpt::maps::CSimpleMap reconstructedMap() const;
    void saveEstimatedTrajectoryToFile() const;
    void saveReconstructedMapToFile() const;
};

Inherited Members

public:
    // typedefs

    typedef std::function<void(const LocalizationUpdate&)> localization_updates_callback_t;
    typedef std::function<void(const MapUpdate&)> map_updates_callback_t;

    // structs

    struct LocalizationUpdate;
    struct MapUpdate;

    // methods

    virtual void initialize(const Yaml& cfg) = 0;
    virtual void onNewObservation(const CObservation::Ptr& o) = 0;
    virtual void initialize(const Yaml& cfg);
    void subscribeToLocalizationUpdates(const localization_updates_callback_t& callback);
    void subscribeToMapUpdates(const map_updates_callback_t& callback);

Fields

Parameters params_

Algorithm parameters

Methods

virtual void initialize_frontend(const Yaml& cfg)

Loads children specific parameters

virtual void spinOnce()

Runs any required action on a timely manner

virtual void onNewObservation(const CObservation::Ptr& o)

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

void reset()

Re-initializes the odometry system. It effectively calls initialize() once again with the same parameters that were used the first time.

mrpt::poses::CPose3DInterpolator estimatedTrajectory() const

Returns a copy of the estimated trajectory, with timestamps for each lidar observation. Multi-thread safe to call.

mrpt::maps::CSimpleMap reconstructedMap() const

Returns a copy of the estimated simplemap. Multi-thread safe to call.