ROS2 OmniGraph | Can't visualize lidar when there is a rotation rate

Hi,

We have a ROS2 Publish Laser Scan node. We found that in case we set the Rotation Rate, when trying to visualize it in rviz2 we get the following error (repeated endless times):

[bash-21] 1666626946.927442130 [rviz2] [ERROR] Lookup would require extrapolation into the future.  Requested time 6.274777 but the latest data is at time 6.266667, when looking up transform from frame [base_lidar_link] to frame [map]

We have made sure that use_sim_time = true, and that the clock is published. After hours of trying to fix it, we found this post: LaserScan not visualized in rviz - #4 by hoanggiang, and removing rotation rate fixed the issue for us.

The problem is that this doesn’t simulate our real lidar, which doesn’t publish full scans each time.

After looking a little into OgnROS2PublishLaserScan.cpp, it seems like this can be caused due to time_increment been set when rotation rate exists (it is always set, it will just be 0 if there is no rotation rate). Now since the stamp property on the LaserScan message is set to now, if you set time_increment on the LaserScan, it causes the ranges to be in a future time. As it takes time_increment * range_index + stamp.