Class BinFileDataset

Inheritance Relationships

Base Types

  • public mola::OfflineDatasetSource

  • public mola::RawDataSourceBase

  • public mola::Dataset_UI

Class Documentation

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

RawDataSource from a directory of time-ordered .bin LiDAR scan files. Each .bin file is expected to contain a sequence of 4 floats (x, y, z, intensity) for each point, in the standard KITTI format.

Public Functions

BinFileDataset()
~BinFileDataset() override
BinFileDataset(const BinFileDataset&) = delete
BinFileDataset &operator=(const BinFileDataset&) = delete
BinFileDataset(BinFileDataset&&) = delete
BinFileDataset &operator=(BinFileDataset&&) = delete
void initialize_rds(const mrpt::containers::yaml &params) override
virtual size_t datasetSize() const override
virtual mrpt::obs::CSensoryFrame::Ptr datasetGetObservations(size_t timestep) const override
virtual void spinOnce() override
inline virtual bool hasGroundTruthTrajectory() const override
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

Protected Functions

std::shared_ptr<mrpt::obs::CObservationPointCloud> getPointCloud(timestep_t step) const
void load_lidar(timestep_t step) const

Loads and caches a LiDAR scan from disk.

Protected Attributes

std::string bin_dir_

path: Path to the directory with .bin files (Required)

double rate_hz_ = {10.0}

rate_hz: LiDAR sensor rate in Hz (Default: 10.0)

std::vector<std::string> lst_bin_files_
std::vector<double> lst_timestamps_
mutable timestep_t last_used_tim_index_ = 0
bool paused_ = false
double time_warp_scale_ = 1.0
std::optional<size_t> teleport_here_
mutable std::mutex dataset_ui_mtx_
timestep_t replay_next_tim_index_ = 0
std::optional<mrpt::Clock::time_point> last_play_wallclock_time_
double last_dataset_time_ = 0
mutable std::map<timestep_t, mrpt::obs::CObservation::Ptr> read_ahead_lidar_obs_
bool initialized_ = false