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 | 调用此服务以获取地图数据 |
二、参数
三、坐标变换
TF变换 | 描述 | |
必须的TF变换 | <scan frame> —> base_link | 激光雷达坐标系之间与基坐标系之间的变换,一般由start_transform_publisher发布 |
base_link —> odom | 基坐标系与里程坐标系之间的变换,一般由里程计节点发布 | |
发布的TF变换 | map —> odom | 地图坐标系与机器人里程计坐标系之间的变换,估计机器人在地图中的位姿 |