2D建图以及导航
2D建图
这里我们采用Gmapping(安装好了的话,直接调到第二部分)
首先已经默认大家在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下载
Gmapping建图功能包是由slam_gmapping 和 openslam_gmapping 两部分组成的,具体网址如下所示:
https://github.com/ros-perception/slam_gmapping
https://github.com/ros-perception/openslam_gmapping
一共需要下载五个功能包,第五个功能包geometry2需要手动下载(手动选择melodic版本下载,默认为noetic版本,会导致编译出错),移动至src路径下。(点击Code下载压缩包)
-
在刚刚建的工作空间中编译
catkin_make
-
配置一下环境变量
//在主目录下打开.bashrc文件(该文件为隐藏文件,按ctrl+h可出现) //最后一行加上下面路径 source /home/XXX/catkin_ws/devel/setup.bash
-
运行Gmapping源码:
数据集下载https://wwm.lanzoul.com/itVF002ans5e
-
运行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
**注:**其实笔者有很多想要总结的东西,但是由于时间和精力的原因,暂时没法按时更新,如果有需要,可以给我留言或者评论,非常愿意和大家一起讨论一起进步!