Simulation vs. real time

Goal

MOLA modules should be agnostic to whether sensory inputs come from live sensors or offline datasets, including potential actions like pause/resume and changing the playback rate.

This enables easy debugging of sensor front-end modules and SLAM back-ends, as well as unit testing of complex SLAM algorithms on slow machines, e.g. in build farms.

Rules to follow

  • Never use the system clock for anything related to SLAM, determining key-frame selection, etc.

  • Only rely on the timestamp associated to input observation objects. In particular, since any input sensory piece of data should be represented as a class derived from mrpt::obs::CObservation, use its field mrpt::obs::CObservation::timestamp as the actual time at which the data was grabbed by the robot.