Skip to content

踩坑Robotics Stack Exchange5 个月前

slam_toolbox报错queue is full因缺失odom到base_link的TF变换 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:[slam_toolbox]: Message Filter dropping message: for reason 'discarding message because the queue is full'(Robotics Stack Exchange #100390)

状态:已解决

问题 ​

在ROS2 Galactic下使用slam_toolbox回放bag建图时,节点持续报错Message Filter dropping message: frame 'laser_frame' ... discarding message because the queue is full。RVIZ2无地图显示,rqt-graph异常。

环境 ​

OS: Ubuntu 20.04; CPU: i5-8250U; GPU: MX130; RAM: 8GB; ROS2 Galactic; slam_toolbox online_sync_launch.py; 数据源为录制的Odometry与LaserScan bag文件。

解决办法 ​

  1. 检查TF树完整性,确认是否存在odom -> base_link变换,该变换缺失是导致Message Filter队列满并丢包的直接原因。
  2. 编写脚本订阅/odom话题,将其转换为对应的TF变换并发布到/tf话题,确保slam_toolbox能获取完整TF链。
  3. 在播放bag文件时同步运行该转换脚本,或预先将转换后的/tf数据录制进新bag文件中再回放。
  4. 验证rqt_graph中TF连接正常且slam_toolbox不再报queue is full警告,RVIZ2成功生成地图。

原问题作者:JehanJay;采纳答案作者:Steve Macenski。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #100390:[slam_toolbox]: Message Filter dropping message: for reason 'discarding message because the queue is full'访问 2026-10-27