gmapping建图功能应用

Reference:《ROS机器人编程与算法指南第二章第七节》

gmapping是ROS中自带的建图功能包,安装ROS时已经默认安装gmapping。若未安装,则可以通过以下命令安装(可将melodic替换成自己的ROS版本)

sudo apt-get install ros-melodic-slam-gmapping

接下来,我们需要下载激光雷达数据集到本地。

下载地址为:

https://github.com/RobInLabUJI/ROS-Stage/blob/master/basic_localization_stage.bag

(如果打不开,则直接在GitHub里面搜索RobInLabUJI,然后在里面找对应的bag包)

接下来:

roscore

然后需要启用重放时的数据中的时间,不是现在的本地时间,而是历史时间。因此我们要告诉ROS系统,使用历史模拟时间:

rosparam set use_sim_time true

运行slam_gmapping功能包,并设置激光雷达的topic为base_scan:

rosrun gmapping slam_gmapping scan:=base_scan

通过rosbag回放激光雷达数据

//在存放激光雷达数据的文件目录下打开命令终端
rosbag play --clock basic_localization_stage.bag

运行Rviz,并选择/map 和 /scan的topic:

rosrun rviz rviz

但运行过程中会出现这个警告:

gmapping建图功能应用

解决方法:

将系统时间重新这样设置:

rosparam set use_sim_time false

(不知道与此命令有无关系,如果该命令执行后还不行,则运行timedatectl set-ntp true)

结果图:

gmapping建图功能应用

上一篇:刷题LeetCode 剑指offer34


下一篇:数据结构篇—包(Bag)