ubuntu 16.04 kinetic下载gmapping源码编译运行数据集并画图详细步骤笔记

ubuntu 16.04 kinetic下载gmapping源码并编译运行数据集,画图详细步骤笔记

在ubuntu中运行mapping后,我们就要对gmapping做优化。本人也不算是专门研究gmapping的,帮助一个朋友做一下,自己就做一个小笔记吧~(其实就是整理一下很多人的笔记)
  1. 首先你需要有一个ubuntu 16.04系统,本人是安装了其他的ubuntu版本,安装之后联网那块有问题,然后重新安装了,本人用的是这个重装的教程,第一个安装过程也差不多,只是不需要删除那一步,里边还有自己制作ubuntu系统盘的过程,需要的自取。链接:https://blog.csdn.net/WILLIAMMMS/article/details/80781006
  2. ubuntu16.04安装Ros(kinetic版本),链接:https://www.cnblogs.com/longronglang/p/11386522.html?from=singlemessage&isappinstalled=0
    (2020.3.19更新小注:如果安装双系统出现Failed to open \EFI\BOOT\mmx64.efi,然后自动关机,就需要把u盘里的BOOT文件夹下的grubx64.efi改为mmx64.efi,然后重新安装。)
    注: 在这个过程中可以让系统自动挑选最好的源,一般来说清华大学、华为、搜狐的源比较好用(本人用的是华为的源,顺利安装)。

gmapping源码下载并编译:

  • 下载依赖项:

     sudo apt-get install libsdl1.2-dev
     sudo apt install libsdl-image1.2-dev
    
  • 建立一个工作空间,并进入工作空间内的src文件夹

     cd ~/catkin_ws/src/
    
  • 使用git clone源码:

    git clone https://github.com/ros-perception/openslam_gmapping.git
    git clone https://github.com/ros-perception/slam_gmapping.git
    git clone https://github.com/ros-planning/navigation.git
    git clone https://github.com/ros/geometry2.git
    git clone https://github.com/ros-planning/navigation_msgs.git
    
  • 在刚刚建的工作空间中编译:(本人的:/catkin_ws1)

     catkin_make
    
  • 此处可能会报错(若无报错,请忽略这步)

    报错1:CMake Error at geometry2/tf2_bullet/CMakeLists.txt:11 (find_package): By not providing “Findbullet.cmake” in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by “bullet”, but CMake did not find one.
    解决步骤:安装一下依赖项

      sudo apt-get install libbullet-dev
    

    然后重新编译

     catkin_make
    
  • 重新编译后可能会有新的错误(若无报错,请忽略这步)

    报错1:Invoking “make -j8 -l8” falled 或者关于c++标准的问题
    解决步骤:打开工作空间下的src/文件下的CmakeLists.txt文件。此步骤需要使用sudo权限

     sudo regit CmakeLists.txt
    

    在文件中加入以下一行代码(加入c++标准)

     set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )
    

    然后重新编译

     catkin_make
    

    显示编译完成。

    运行gmapping:

  • 数据集下载(百度网盘)
    链接:https://pan.baidu.com/s/1yFdkmxZSRVZHYKA1lYgFFw#list/path=%2F

  • 运行roscore

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

     rosparam set use_sim_time true
    
  • 此处最好配置一下运行环境,不配置的话有可能会报错找不到gmapping

     source ~/catkin_ws/devel/setup.bash
    
  • 在数据集文件夹下打开终端,然后查看一下话题

     rostopic list
    
  • 话题结果显示如下:
    ubuntu 16.04 kinetic下载gmapping源码编译运行数据集并画图详细步骤笔记_第1张图片

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

     rosrun gmapping slam_gmapping scan:=base_scan
    
  • 再在数据集所在文件夹下新开终端,对数据集进行play,如果需要运行其他数据集,就修改数据集名字basic_localization_stage_indexed.bag成你自己的。

     rosbag play --clock basic_localization_stage_indexed.bag
    

    或者

     rosbag play  basic_localization_stage_indexed.bag
    

    咱也不知道为啥第一次用上边的可以运行,第二次之后要用去掉 --clock 才能运行。

  • 正确运行后便会读取数据集信息运行,找个图片看一下吧
    ubuntu 16.04 kinetic下载gmapping源码编译运行数据集并画图详细步骤笔记_第2张图片
    在rosrun gmapping slam_gmapping scan:=base_scan终端也会有输出信息。

  • 下面就用rviz来看一下gmapping建的图吧

     rviz
    
  • 如果以上均正确,则rviz里边的Global Status:ok前边会显示绿色的,如果为红色错误或黄色警告,可能就是base_scan那步运行有错误。
    然后选择add,选择by topic,选择map。
    ubuntu 16.04 kinetic下载gmapping源码编译运行数据集并画图详细步骤笔记_第3张图片

  • 然后就可以看到gmapping在一点一点地建地图了。
    ubuntu 16.04 kinetic下载gmapping源码编译运行数据集并画图详细步骤笔记_第4张图片

  • 到此结束!

  • :之前还试过直接使用sudo apt-get install ros-kinetic-slam-gmapping命令直接下载安装,安装之后可以运行,但是地图不是一点一点建出来的,是一打开就是完整的地图,然后想在ubuntu中找源代码,但是实在找不到,放弃了, 就下载了源码,按以上步骤重新下载编译运行。

  • 欢迎各位大神和小伙伴补充讨论!
    ---------------------更新-------------------------------------------2020.3.6----------------------
    参考链接:https://blog.csdn.net/l0409044222/article/details/54380926/

  • Rviz保存地图
    (1)安装map-server

    sudo apt-get install ros-indigo-map-server
    

    (2)保存地图

    rosrun map_server map_saver -f mymap
    

你可能感兴趣的:(ubuntu 16.04 kinetic下载gmapping源码编译运行数据集并画图详细步骤笔记)