0. 简介
gmapping 是ROS开源社区中较为常用且比较成熟的SLAM算法之一,gmapping可以根据移动机器人里程计数据和激光雷达数据来绘制二维的栅格地图。
运行的要求(两个TF,一个scan):odom、scan到 base_link的TF、激光雷达
传送门1:ROS WIKI
传送门2:Gmapping 源码
传送门3:Gmapping论文
1. 功能包介绍
1.0 订阅的话题
两个TF
<scan frame> → base_link
通常是固定值,由robot_state_publisher定期广播,或 tf static_transform_publisher。
base_link → odom
车体的里程计
雷达scan数据
scan (sensor_msgs/LaserScan)
1.1 发布的主题及服务及TF
话题
map_metadata (nav_msgs/MapMetaData) 地图元数据
map (nav_msgs/OccupancyGrid) 栅格地图数据
~entropy (std_msgs/Float64) 机器人姿态分布熵
服务
dynamic_map (nav_msgs/GetMap) 获取地图数据
TF
map —>odom
1.3 整体框图
2. 配置使用
2.0 二进制安装
sudo apt install ros-<ROS版本>-gmapping
如
sudo apt install ros-noedic-gmapping
2.1 launch文件配置
文件:传送门。
3. 注意事项
- 在提供好scan、odom、雷达与车体的tf后直接launch该文件即可实现建图
- map_update_interval 不要设置的过大,会很卡