首先已经默认大家在ubuntu18.04安装了ROS-melodic版本(或者其他版本),没安装的同学可以参考B站古月居ros21讲。
Gmapping源码下载并编译:
-
下载依赖项
//桌面上打开终端
sudo apt-get install libsdl1.2-dev
sudo apt install libsdl-image1.2-dev
-
主目录新建catkin_ws1工作空间文件夹,在catkin_ws1中新建src功能包文件夹
//进入src文件下载gmapping源码
cd ~/catkin_ws/src/
-
下载gmapping源码
1、使用git clone下载
一共需要下载五个功能包,第五个功能包geometry2需要手动下载(手动选择melodic版本下载,默认为noetic版本,会导致编译出错),移动至src路径下。(点击Code下载压缩包)
2、直接使用我下载好的gmapping源码
将下载好的src文件夹替换原来工作空间下创建的空src文件
-
在刚刚建的工作空间中编译
catkin_make
-
配置一下环境变量
//在主目录下打开.bashrc文件(该文件为隐藏文件,按ctrl+h可出现)
//最后一行加上下面路径
source /home/XXX/catkin_ws/devel/setup.bash
运行Gmapping源码:
-
数据集下载
-
运行roscore
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。
-
然后就可以看到在一点点建图了
-
Rviz保存地图
//新建终端输入,保存的地图在主目录下,名为mymap
rosrun map_server map_saver -f mymap