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

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-05-06-robotics-se-100390
> 频道：pitfalls | 更新日期：2026-05-06 | 标签：auto, stackexchange, ros2
> 核心摘要：slam_toolbox因TF树不完整导致消息过滤器丢包，补全odom至base_link的TF变换后解决。

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

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[[slam_toolbox]: Message Filter dropping message: for reason 'discarding message because the queue is full'](https://robotics.stackexchange.com/questions/100390/slam-toolbox-message-filter-dropping-message-for-reason-discarding-message)（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 -&gt; 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 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #100390：[slam_toolbox]: Message Filter dropping message: for reason 'discarding message because the queue is full'](https://robotics.stackexchange.com/questions/100390/slam-toolbox-message-filter-dropping-message-for-reason-discarding-message)