zl程序教程

您现在的位置是:首页 >  系统

当前栏目

ubuntu 18.04 Melodic+gmapping环境搭建

Ubuntu 环境 搭建 18.04
2023-09-27 14:20:14 时间

一、安装依赖项及创建工作空间


sudo apt-get install libsdl1.2-dev
sudo apt install libsdl-image1.2-dev
  • 主目录新建catkin_ws工作空间文件夹,在catkin_ws中新建src功能包文件夹

//进入src文件下载gmapping源码
cd ~/catkin_ws/src/

 二、下载源码

一共需要下载五个功能包,第五个功能包geometry2需要手动下载(手动选择melodic版本下载,默认为noetic版本,会导致编译出错),移动至src路径下。(点击Code下载压缩包)

源码下载太慢,可以直接使用以下链接进行下载:

src.zip - 蓝奏云

下载后,解压将五个文件夹复制到创建的工作空间src的文件夹下

三、编译工作空间

cd ~/catkin_ws
catkin_make
编译完成后后添加环境变量
//在主目录下打开.bashrc文件(该文件为隐藏文件,按ctrl+h可出现)
//最后一行加上下面路径
source devel/setup.bash

四、下载数据集跑例程

4.1 数据集下载

链接:laserdata.zip - 蓝奏云 

4.2 测试

打开第一个终端

roscore

重新打开一个终端,设置为读取仿真时间,即让系统知道现在要运行的是数据集

 rosparam set use_sim_time true

在数据集文件夹下打开终端,然后查看一下话题

 rostopic list


在数据集所在文件夹下打开新终端,读取base_scan话题,这个不开的话,不能在rviz里边读取话题里的信息,就看不到地图

 rosrun gmapping slam_gmapping scan:=base_scan


在数据集所在文件夹下新开终端,对数据集进行play,如果需要运行其他数据集,就修改数据集名字

 rosbag play --clock basic_localization_stage_indexed.bag


新建终端打开rviz
 

rviz


如果以上均正确,则rviz里边的Global Status:ok前边会显示绿色的√,如果为红色错误或黄色警告,可能就是base_scan那步运行有错误。然后选择add,选择by topic,选择map。 

然后就可以看到在一点点建图了

将创建好的地图进行保存,打开新的终端;

//新建终端输入,保存的地图在主目录下,名为mymap
rosrun map_server map_saver -f mymap

.pgm是一个图像文件 

.yaml文件 

参考的博文:

ubuntu 18.04 Melodic下载gmapping源码并编译运行数据集建图_马微微?!的博客-CSDN博客_gmapping数据集

五、非源码安装的方法

sudo apt-get install ros-melodic-gmapping       #根据您ROS的版本,自行更改即可

要想知道安装包安装在哪里,可以使用下面的命令: 

 关于gmapping 算法功能包中的话题和服务如下图所示:

 从上图可以看出,gmapping需要订阅机器人关节变换话题/tf激光雷达扫描数据话题/scan,将会发布栅格地图话题/map

关于/tf又分为两个部分,gmapping功能包中的TF变换如下图所示:

image-20200927095435992

六、Gammping原理解析 

    Gmapping是基于滤波SLAM框架的常用开源SLAM算法。基于RBpf粒子滤波算法,即将定位和建图过程分离,先进行定位再进行建图。在RBpf算法上做了两个主要的改进:改进提议分布选择性重采样;

    Gmapping有效利用了车轮里程计信息,这也是Gmapping对激光雷达频率要求低的原因:里程计可以提供机器人的位姿先验。而Hector和Cartographer的设计初衷不是为了解决平面移动机器人定位和建图,Hector主要用于救灾等地面不平坦的情况,因此无法使用里程计。而Cartographer是用于手持激光雷达完成SLAM过程,也就没有里程计可以用

七、gmapping源码解析较优秀的博文

gmapping 算法流程整理_ppipp1109的博客-CSDN博客_gmapping算法流程