外观
踩坑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
解决办法
- 修正TF树结构,明确base_link为机器人本体坐标系,使用
tf2_ros static_transform_publisher分别发布base_link到odom及base_link到laser的静态变换(初始位姿设为0)。 - 修改rf2o_laser_odometry节点参数,将
odom_topic由默认的/odom_rf2o改为/odom,确保与slam_toolbox期望的输入一致,同时设置publish_tf为True以自动发布odom->base_link动态变换。 - 检查slam_toolbox配置文件
mapper_params_online_async.yaml,确认odom_frame: odom、base_frame: base_link、scan_topic: /scan及mode: mapping参数正确。 - 启动前通过
rqt_graph验证节点连接与话题流向,确保/scan和/odom正确输入至sl…
原问题作者:Ivan Mokiets;采纳答案作者:Ivan Mokiets。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。