1、简介
gmapping基于RBpf粒子滤波算法,即将定位和建图过程分离,先进行定位再进行建图。在RBpf粒子滤波算法上做了两个改进,改进提议分布和选择性重采样。
2、优缺点
(1)、优点:实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。
(2)、缺点:构建大地图时所需内存和计算量都会增加。因此不适合构建大场景地图,并且没有回环闭合检测,可能造成地图错位。
3、输入与输出
(1)、输入:深度信息(雷达或深度摄像机)、IMU信息、里程计信息
(2)、输出:栅格地图(map)
4、ROS中使用
(1)、话题(常用)
订阅:scan(激光雷达扫描数据)、tf(用于激光雷达坐标系、基坐标系、里程计坐标系之间转换)
发布:map(地图栅格数据)、map_metadata(地图Meta数据)
(2)、服务
dynamic_map,获取地图数据。
5、坐标系名称
(1)、base_link:机器人基坐标系,可以理解成是机器人的中心(质心)
(2)、map:地图坐标系
(3)、odom:里程计坐标系
(4)、laser:雷达坐标系
6、tf坐标变换
(1)、laser->base_link:激光雷达坐标系与基坐标系之间的变换,静态坐标变换,可由robot_state_publisher或者static_transform_publisher发布,这是必须的tf变换。
(2)、base_link->odom:地图坐标系与机器人里程计坐标系之间的变换,也就是告诉机器人,现在在地图的姿态(可以理解成“头朝向哪个方向”),一般由里程计节点发布。这是必须的tf变换。
(3)、map->odom:地图坐标系与机器人里程计坐标系之间的变换,告诉机器人现在在地图上哪个位置。这是gmapping这个节点发布的tf变换。
参考网址:gmapping - ROS Wiki