ROS2 Humble环境下使用Slam Toolbox在线异步SLAM时遭遇队列满与时间戳错误问题求助
我目前在ROS2 Humble环境下搭配Ouster激光雷达做开发,用Ouster官方提供的ROS2容器来发布激光扫描话题。最近尝试运行Slam Toolbox的在线异步SLAM功能,执行命令:
ros2 launch slam_toolbox online_async_launch.py
但遇到了如下错误:
[async_slam_toolbox_node-1] [INFO] [1743355473.858619647] [slam_toolbox]: Message Filter dropping message: frame 'os_lidar' at time 404.359 for reason 'discarding message because the queue is full'
我尝试过增大缓冲区大小,但问题并没有解决。查资料后推测这可能是TF变换相关的问题,我已经检查过TF树的结构,看起来是符合预期的;而且在RVIZ中把固定坐标系设置为baselink时,激光扫描数据也能正常显示出来。
后来我尝试了一个临时方案:重新订阅原激光扫描话题,以更低的频率重新发布到一个新的扫描话题,但这时又出现了时间戳相关的错误:
[async_slam_toolbox_node-1] [INFO] [1743355498.853598783] [slam_toolbox]: Message Filter dropping message: frame 'os_lidar' at time 429.457 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
现在我有点摸不着头绪,真心希望能得到大家的帮助!
备注:内容来源于stack exchange,提问作者Niko

