Class MulranDataset

Nested Relationships

Nested Types

Inheritance Relationships

Base Types

  • public mola::RawDataSourceBase

  • public mola::OfflineDatasetSource

  • public mola::Dataset_UI

Class Documentation

class MulranDataset : public mola::RawDataSourceBase, public mola::OfflineDatasetSource, public mola::Dataset_UI

RawDataSource from Mulran datasets. Each “sequence” directory contains these sensor streams:

  • lidar: Ouster OS1-64 LIDAR. As mrpt::obs::CObservationPointCloud with XYZIRT channels.

  • gps : Consumer-grade GNSS receiver, as mrpt::obs::CObservationGPS with a message type NMEA GGA (mrpt::obs::gnss::Message_NMEA_GGA). HDOP in that struct is computed as reported standard deviation from the dataset, divided by HDOP_REFERENCE_METERS.

  • radar: Navtech CIR204-H (Not implemented yet).

  • imu : As mrpt::obs::CObservationIMU.

  • Ground truth poses

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.

Expected contents under base_dir directory:

Example base_dir: /mnt/storage/MulRan/ Sequences: KAIST01, KAIST02, etc.

MulRan/
├── KAIST01
│   ├── data_stamp.csv
│   ├── global_pose.csv
│   ├── gps.csv
│   ├── navtech_top_stamp.csv
│   ├── Ouster
│   │   ├── 1561000444390857630.bin
│   │   ├── 1561000444489636410.bin
│   │   ...
│   ├── ouster_front_stamp.csv
│   └── xsens_imu.csv
...

Public Functions

MulranDataset()
~MulranDataset() override = default
virtual void spinOnce() override
inline virtual bool hasGroundTruthTrajectory() const override
inline virtual trajectory_t getGroundTruthTrajectory() const override
mrpt::obs::CObservationPointCloud::Ptr getPointCloud(timestep_t step) const

Direct programmatic access to dataset observations. The return may be nullptr if the given index is not of the requested type.

step is in the range 0 to getGroundTruthTrajectory()-1

mrpt::obs::CObservationGPS::Ptr getGPS(timestep_t step) const
mrpt::obs::CObservationIMU::Ptr getIMU(timestep_t step) const
virtual size_t datasetSize() const override
virtual mrpt::obs::CSensoryFrame::Ptr datasetGetObservations(size_t timestep) const override
inline bool hasGPS() const
inline virtual size_t datasetUI_size() const override
inline virtual size_t datasetUI_lastQueriedTimestep() const override
inline double datasetUI_playback_speed() const override
inline void datasetUI_playback_speed(double speed) override
inline bool datasetUI_paused() const override
inline void datasetUI_paused(bool paused) override
inline virtual void datasetUI_teleport(size_t timestep) override

Public Static Attributes

static constexpr double HDOP_REFERENCE_METERS = 4.5

Protected Functions

virtual void initialize_rds(const Yaml &cfg) override