Skip to content

Time offset calibration

Time offset calibration determines the time required to bring different sensor observations into temporal alignment.

Time offset calibration encompasses two adjustments in one offset number:

  • Sensor A actual capture time to sensor A timestamp
  • Sensor A timestamp to reference sensor timestamp

The time offset for each sensor is the amount of time that when added to the header timestamp synchronizes the sensor measurements with the other sensors:

corrected_timestamp = header_timestamp + time_offset

Why time offsets matter

When a robot is moving, every sensor is capturing data from a slightly different position at every moment. Even a small 10 ms timing error between a lidar point and a global-shutter camera means the robot moved between the lidar point capture and image capture time.

At 1 m/s walking pace, 10 ms of error equals 1 cm of positional uncertainty for every lidar point projected into camera space. At 10 m/s highway speeds, the same 10 ms produces 10 cm of error.

For applications that fuse lidar and camera data (object detection, lane keeping, semantic mapping) the timing misalingment manifests as ghosting, misaligned projections, and reduced detection confidence. For IMU-based motion estimation, uncorrected timing errors corrupt the integration of angular velocity and acceleration, degrading odometry.

What causes time offsets

Common sources:

  • Driver buffering: sensor drivers often batch data before publishing to the ROS topic. The header timestamp may reflect when the batch of data was published, not when each individual measurement was captured.
  • Trigger latency: camera exposure triggers have variable latency depending on the sensor’s firmware and the interface (USB, GigE, MIPI).
  • Clock domains: each sensor often has its own internal clock. Even with hardware synchronization these clocks often have a fixed offset.
  • Rolling shutter offset: rolling shutter cameras expose each row at a slightly different time. The header timestamp typically represents the center of exposure, but the actual exposure time varies by row. See Calibration results — readout time for how to compute per-row exposure time.

How Calibration Anywhere measures time offsets

Calibration Anywhere estimates time offsets by analyzing the correlation between sensor observations of shared scene features across time. Because the sensors observe the same physical geometry from a moving platform, the temporal alignment between sensors can be inferred from the consistency of those observations. Sensors that are well-aligned in time produce geometrically consistent measurements; sensors with time offset errors produce systematic inconsistencies that increase with robot speed.

For time offsets to be estimated, all sensors must be reporting timestamps in the same time domain and be synchronized within roughly 500 ms of each other. Precise hardware synchronization such as PTP is not required.

Output format

See Calibration results - Time offsets.