ROS功能包之gmapping(SLAM)

 

gmapping功能包集成了Rao-Blackwellized粒子滤波算法,为开发者隐去了复杂的内部实现

gmapping功能包订阅机器人的深度信息、IMU信息和里程计信息,同时完成一些必要参数的配置,即可创建完成基于概率的二维栅格地图(机器人地图一般分为三种类型:栅格地图,拓扑地图,特征地图)。gmapping功能包基于openslam社区的开源SLAM算法,相关链接:openslam

一、话题和服务

 

 

  名称 类型 描述
话题订阅 tf tf/tfMessage 需要进行激光,用于坐标系、基准和测距的相关框架转换
scan sensor_msgs/LaserScan 激光雷达扫描数据
话题发布 map_metadata nav_msgs / MapMetaData 发布地图Meta数据
map nav_msgs / OccupancyGrid 发布地图栅格数据
〜entropy std_msgs / Float64 发布机器人姿态分布熵的估计
服务 dynamic_map nav_msgs / GetMap 调用此服务以获取地图数据

二、参数

ROS功能包之gmapping(SLAM)

三、坐标变换

  TF变换 描述
必须的TF变换 <scan frame> —> base_link 激光雷达坐标系之间与基坐标系之间的变换,一般由start_transform_publisher发布
base_link —> odom 基坐标系与里程坐标系之间的变换,一般由里程计节点发布
发布的TF变换 map —> odom 地图坐标系与机器人里程计坐标系之间的变换,估计机器人在地图中的位姿