机器人之Gmappinng

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. 注意事项

  1. 在提供好scan、odom、雷达与车体的tf后直接launch该文件即可实现建图
  2. map_update_interval 不要设置的过大,会很卡

版权声明:本文为weixin_44229819原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。