Hi,
Thanks for your hard work on Apollo. I am running on the latest master branch. Attempting to run any module which is dependent on a tranform, the log gets spammed with the following messages (as an example from the trafficlight detection):
E0624 13:49:16.454233 27757 trafficlights_perception_component.cc:959] [perception] error occurred in calc distance to stop line
E0624 13:49:16.454594 27746 trafficlights_perception_component.cc:689] [perception] Can not find transform. 1561376582.880242 frame_id: world child_frame_id: novatel Error info: Lookup would require extrapolation into the future. Requested time 1561376582880241920 but the latest data is at time 1561376582849434880, when looking up transform from frame [novatel] to frame [world]
E0624 13:49:16.454610 27746 trafficlights_perception_component.cc:652] [perception] get pose from tf failed, child_frame_id: novatel
The requested time is about 30ms in the future. Is there a way to handle such a case, i.e. to return the latest available transform?
Once every 2 seconds or so, the delays align in such a way, that a valid transform can be found. This can be observed by looking at the delay timers in dreamview, they reset back to 0 every few seconds and then count up when this error occurs.
In case anybody reaches the same problem:
I have managed to fix this problem by increasing the lidar_query_tf_offset (which is given in milliseconds) in modules/perception/production/conf/perception/lidar/velodyne128_segmentation_conf.pb.txt to an appropriate value. This leads to the perception using slightly older transforms, but assuming that this is a sync problem, this is a reasonable solution to the problem.
Most helpful comment
In case anybody reaches the same problem:
I have managed to fix this problem by increasing the lidar_query_tf_offset (which is given in milliseconds) in modules/perception/production/conf/perception/lidar/velodyne128_segmentation_conf.pb.txt to an appropriate value. This leads to the perception using slightly older transforms, but assuming that this is a sync problem, this is a reasonable solution to the problem.