D · Interactive tool · Module 07
Sensor Time Synchronization Simulator
Change timestamp offsets, rates, delays and jitter for a camera, a LiDAR and an IMU and watch the timeline, the pairing by stamp and the effect on localisation.
Preliminary engineering guidance. Results depend on the assumptions listed below and on simplified models. Verify with manufacturer datasheets and a test on your own hardware before committing to a design.
Largest stamp difference ApproximateTime-style pairing accepts.
Timeline (1 s window)
Result
Assumptions and limitations
- Four different things are simulated and reported separately: clock offset (the stamp differs from the true sampling time), measurement synchronisation (pairing frames by stamp), transport latency (arrival − sampling time) and processing delay (added to the same latency here).
- True time is when the world was sampled. Stamp = true time + your offset. Arrival = true time + delay + a uniform random jitter in [0, jitter] (+ the sweep time for the LiDAR). Messages are dropped independently with the probability you set. A fixed seed makes every run repeatable.
- LiDAR: the true time and the stamp refer to the start of the sweep; the message cannot arrive before the sweep ends (1/rate later). Motion distortion inside the sweep (deskewing) is not simulated; only whether IMU data covering the sweep has arrived.
- Pairing: each LiDAR scan takes the camera frame with the nearest stamp inside the slop (ties go to the earlier frame). This mimics the idea of an approximate-time synchronizer, not its exact queue and policy implementation in ROS 2
message_filters. - Localisation effects are first-order estimates: position error = speed × time error; heading error = turn rate × time error; image shift = fx·tan(turn rate × time error) with fx = 450 px. They show the scale of the problem, not what a particular estimator will do.
- Constant speed and turn rate are assumed; real motion changes during the error interval.
- Messages are generated for a fixed 10-second run; the last scan, which ends after the run, is not judged for IMU coverage.
References
- Module 07: Sensor Time Synchronization & Latency Engineering. The ROS 2
message_filterssynchronizer policies are described in the ROS 2 documentation (not re-fetched in this build environment).