class mola::ParisLucoDataset

Overview

RawDataSource from Paris Luco Dataset.

Dataset available from: https://github.com/jedeschaud/ct_icp

The LiDAR sensor is a HDL-32, recording data at the Luxembourg Garden (Paris).

Point clouds are published as mrpt::obs::CObservationPointCloud with clouds of types mrpt::maps::CPointsMapXYZIRT, with these populated fields:

  • XYZ

  • I : Intensity, range [0.0 - 1.0?]

  • T : Time of each point, in range [-0.05, 0.05] seconds (scan rate=10 Hz), such that “t=0” (the observation/scan timestamp) corresponds to the moment the scanner is facing forward.

  • R : ring_id (0-31). It was not provided by the original dataset, but it is reconstructed from point elevation data in this package.

Expected contents under base_dir directory:

Example base_dir : /mnt/storage/ParisLuco/ Sequence: 00 (this dataset only has one sequence?)

ParisLuco
└── 00
    ├── frames
       ├── frame_00000.ply
       ├── frame_00001.ply
       ...
    └── gt_traj_lidar.txt
...
#include <ParisLucoDataset.h>

class ParisLucoDataset:
    public mola::RawDataSourceBase,
    public mola::OfflineDatasetSource,
    public mola::Dataset_UI
{
public:
    // methods

    virtual void spinOnce();
    virtual bool hasGroundTruthTrajectory() const;
    virtual trajectory_t getGroundTruthTrajectory() const;
    virtual size_t datasetSize() const;
    virtual mrpt::obs::CSensoryFrame::Ptr datasetGetObservations(size_t timestep) const;
    virtual size_t datasetUI_size() const;
    virtual size_t datasetUI_lastQueriedTimestep() const;
    virtual double datasetUI_playback_speed() const;
    virtual void datasetUI_playback_speed(double speed);
    virtual bool datasetUI_paused() const;
    virtual void datasetUI_paused(bool paused);
    virtual void datasetUI_teleport(size_t timestep);
};

Inherited Members

public:
    // structs

    struct SensorViewerImpl;

    // methods

    virtual void initialize(const Yaml& cfg) = 0;
    virtual size_t datasetSize() const = 0;
    virtual mrpt::obs::CSensoryFrame::Ptr datasetGetObservations(size_t timestep) const = 0;
    virtual bool hasGroundTruthTrajectory() const;
    virtual trajectory_t getGroundTruthTrajectory() const;
    virtual size_t datasetUI_size() const = 0;
    virtual size_t datasetUI_lastQueriedTimestep() const = 0;
    virtual double datasetUI_playback_speed() const = 0;
    virtual void datasetUI_playback_speed(double speed) = 0;
    virtual bool datasetUI_paused() const = 0;
    virtual void datasetUI_paused(bool paused) = 0;
    virtual void datasetUI_teleport(size_t timestep) = 0;

Methods

virtual void spinOnce()

Runs any required action on a timely manner

virtual bool hasGroundTruthTrajectory() const

Returns true if a groundtruth is available for the vehicle trajectory.

See also:

getGroundTruthTrajectory()

virtual trajectory_t getGroundTruthTrajectory() const

If hasGroundTruthTrajectory() returns true, this returns the dataset groundtruth for the vehicle trajectory.

Note that timestamps for datasets are not wall-clock time (“now”), but old timestamps of when original observations were grabbed.

See also:

hasGroundTruthTrajectory()

virtual size_t datasetSize() const

Number of different time steps available to call getObservations()

virtual mrpt::obs::CSensoryFrame::Ptr datasetGetObservations(size_t timestep) const

Returns the set of observations available for the given time step.

virtual size_t datasetUI_size() const

Number of different time steps available to call getObservations()

virtual size_t datasetUI_lastQueriedTimestep() const

Returns the latest requested observation, range [0, datasetSize()]

virtual void datasetUI_teleport(size_t timestep)

Forces continue replaying in this moment in time