Skip to content

踩坑Robotics Stack Exchange2024-11-21

slam_toolbox /map话题为空且TF树构建错误导致建图失败 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:SLAM_TOOLBOX , topic /map is empty(Robotics Stack Exchange #111488)

状态:已解决

问题 ​

在ROS2 Humble下运行slam_toolbox时,/map话题无数据输出,无法建立map->odom动态变换。此前曾报Message Filter dropping message queue full错误,虽补全TF树但建图仍失败。原因是误将激光雷达当作机器人本体,导致base_link与odom间缺乏正确的动态关联,且rf2o_laser_odometry发布的里程计话题名与slam_toolbox配置不一致。

环境 ​

ROS2 Humble, Raspberry Pi 4, RPLIDAR A1, slam_toolbox (online_async), sllidar_ros2, rf2o_laser_odometry

解决办法 ​

  1. 修正TF树结构,明确base_link为机器人本体坐标系,使用tf2_ros static_transform_publisher分别发布base_link到odom及base_link到laser的静态变换(初始位姿设为0)。
  2. 修改rf2o_laser_odometry节点参数,将odom_topic由默认的/odom_rf2o改为/odom,确保与slam_toolbox期望的输入一致,同时设置publish_tf为True以自动发布odom->base_link动态变换。
  3. 检查slam_toolbox配置文件mapper_params_online_async.yaml,确认odom_frame: odom、base_frame: base_link、scan_topic: /scan及mode: mapping参数正确。
  4. 启动前通过rqt_graph验证节点连接与话题流向,确保/scan和/odom正确输入至sl…

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

来源

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

  1. Robotics Stack Exchange #111488:SLAM_TOOLBOX , topic /map is empty访问 2026-10-27