由于研一上学期LIO-SAM算法一直出问题没有跑通,今天特意又跑了一下,记录了一下跑通的全过程:

一、安装依赖

  • Boost >= 1.65 
  • sudo apt-get install libboost-all-dev
  • CMake >= 3.0 
  • sudo apt-get install cmake
  •  gcc 4.7.3 on Linux.一般都有,查下版本,大于4.7.3就行。

  • gcc --version
    

        之后依赖安装TBB、MKL(可选):

  • 安装TBB:

  • sudo apt-get install libtbb-dev
  • 安装MKL(可选):

  • 由于资源库失效,这里选择忽略安装,不影响后续运行。

安装完这些依赖后我们开始下一步。

二、安装GTSAM

这里需要注意,由于我的ubuntu是20.04版本,所以我安装的GTSAM 4.0.0-alpha2,大家安装4.0.2或者4.0.3即可。

这里提供直接下载安装包的下载连接:

Releases · borglab/gtsam · GitHub 可以选择自己需要的版本,每个版本的最后都有Assets,可以直接下载安装包(.zip或者.tar.gz)。

解压后运行下述代码(由于没有安装MKL,所以按照下述代码来):

#!bash
$ cd gtsam-1.X.X #自己的GTSAM目录
$ mkdir build
$ cd build
$ cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_WITH_EIGEN_MKL=OFF -DGTSAM_WITH_EIGEN_MKL_OPENMP=OFF ..
$ make check
$ sudo make install

至此,GTSAM安装完毕。

三、LIO-SAM

创作工作空间,下载LIO-SAM代码:

cd ~/lio-sam/src  #这里工作空间的名字可以自己修改
git clone https://github.com/TixiaoShan/LIO-SAM.git

编译之前需要避开三个坑!

1.OpenCV 版本问题

  • 找到utility.h中的:#include<opencv/cv.h>,修改为#include <opencv2/imgproc.hpp>

2.pcl问题

  • 为了让LIO-SAM支持C++14,需要修改下LIO-SAM文件夹下的CMakeList.txt文件:
  • 修改如下:
set(CMAKE_CXX_FLAGS "-std=c++14") #将c++11改为c++14

3./usr/bin/ld问题

  • 同样在刚刚打开的CMakeLists文件中加入下述代码:
find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

至此三个坑成功避开,接下来在你的工作空间下打开终端编译LIO-SAM:

catkin_make

运行lanuch文件:

roslaunch lio_sam run.launch

如果不出问题的话效果如下:

四、LIO-SAM可跑数据集

这里提供一些LIO-SAM可直接跑的数据集,大家可自行下载:

https://drive.google.com/drive/folders/1gJHwfdHCRdjP7vuT556pv8atqrCJPbUq

五、后续我遇到的几个问题

这里我再总结几个我在跑算法过程中遇见的小问题:

1.问题1

  • 对于这个问题,我也搞了很久,可以试一下下述代码,大概就是opt/ros/noetic/lib/下缺少文件libmetis.so,所以要从usr/local/lib/中copy过来,当然不同电脑这个目录下不一定有libmetis.so文件,大家可以自己去目录下查找一下看有没有:
cd /usr/local/lib/
sudo cp libmetis.so /opt/ros/noetic/lib/

2.问题2

运行LIO-SAM并play数据集bag包后出现如下情况,并且效果漂移:

这个我也没搞清楚什么原因,但是我调整params.yaml旋转矩阵后,便最后稳定了下来:

主要把extrinsicRot的矩阵改为了单位矩阵,没有再漂移,大家可以调一下试一下效果。

总的来说,我遇见的坑与问题全都总结在了这篇博客中,如果有不对的地方或者更好的方法,还请批评改正!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐