ros2 runtime_error ai_generated partial

message_filters: Dropped messages due to synchronization timeout

ID: ros2/message-filters-sync-drop

Also available as: JSON · Markdown
72%Fix Rate
85%Confidence
3Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
2 active

Root Cause

message_filters TimeSynchronizer drops messages because sensor timestamps don't align within the tolerance window.

generic

Workarounds

  1. 88% success Use ApproximateTimeSynchronizer with appropriate slop for your sensor rates
    ats = ApproximateTimeSynchronizer([sub1, sub2], queue_size=10, slop=0.1)
  2. 85% success Check that all sensors use the same time source (use_sim_time consistency)
    ros2 param get /camera use_sim_time; ros2 param get /lidar use_sim_time
  3. 82% success Increase queue_size if sensors have different publication rates

Dead Ends

Common approaches that don't work:

  1. Set slop (time tolerance) to very large values like 10 seconds 80% fail

    Pairs messages from completely different time instants; fuses stale data producing wrong results

  2. Use exact time synchronizer for hardware sensors 90% fail

    Hardware sensors almost never have exactly matching timestamps; drops all messages