You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从SLAM算法的gmapping包中获取机器人位姿估计数据?

gmapping位姿估计获取与校验方法

1. 位姿数据获取路径

gmapping的位姿估计有两种常用获取方式:

  • 路径1:通过/tf话题获取
    gmapping运行时会发布map坐标系到odom坐标系的TF变换,用于修正底盘里程计的漂移。你需要的机器人全局位姿是map坐标系到base_link坐标系的变换,由TF树自动拼接得到(map → odom → base_link,其中odom→base_link由底盘里程计节点发布)。
  • 路径2:直接订阅gmapping输出的位姿话题
    gmapping默认会发布私有话题/slam_gmapping/pose,消息类型为geometry_msgs/PoseWithCovarianceStamped,直接输出base_link在map坐标系下的位姿数据,包含xyz坐标和xyzw四元数,和你获取的真值格式完全匹配,更适合直接做偏差比对。

2. 对应坐标系说明

gmapping输出的位姿对应的是机器人基坐标系base_link,而非base_scan、imu_link等传感器坐标系。你和真值比对前需要确认真值数据的坐标系是否也为base_link,如果真值为其他传感器坐标系,需要先通过静态TF变换做坐标校准,避免出现固定系统偏差。

3. 终端打印位姿的方法

打印/slam_gmapping/pose话题位姿

直接用rostopic工具即可,命令如下:

rostopic echo /slam_gmapping/pose

打印TF树中map到base_link的位姿变换

用tf自带的tf_echo工具即可,命令如下:

rosrun tf tf_echo map base_link

输出会同时显示平移量、四元数、RPY角度,你可以直接提取和真值格式匹配的字段。

内容的提问来源于stack exchange,提问作者AmirulJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:39:05