建议运行LIO-SAM前,先在电脑上编译运行LeGO-LOAM,很多依赖项都属于继承关系,出现相关问题参考我的另一个博客Ubuntu20.04下的编译与运行LeGO-LOAM【问题解决】,对库的修改自行对照博客,对源码的修改请参照此处。

一、安装依赖项

1.Boost >= 1.65

sudo apt-get install libboost-all-dev

2. CMake >= 3.0

sudo apt-get install cmake

3. gcc大于4.7.3就行

查看版本

gcc --version

之后的依赖(TBB、MKL)是可选安装(Optional prerequisites - used automatically if findable by CMake),我没试过不装这些依赖是什么效果,但应该问题不大。

4. 安装 TBB

sudo apt-get install libtbb-dev

5. 安装 MKL
这一步首先要进入到 root 权限,进入root之后,步骤如下:

sudo bash
 
cd /tmp
 
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
 
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
 
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
 
exit

之后关闭root终端,重开一个终端 :

sudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list
 
sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'

如果是32位系统,还要加上这句,64位跳过
sudo dpkg --add-architecture i386

紧接着:

sudo apt-get update
 
选择安装版本,选比较新的应该问题不大,给的示例是:
sudo apt-get install intel-mkl-2018.2-046
 
我安装的是2020.4-912,也就是:
sudo apt-get install intel-mkl-2020.4-912

二、安装GTSAM

这里需要注意,ubuntu20.04的需要选择GTSAM >= 4.0.3 的版本,否则会报“The “debug” argument must be followed by a library.”之类的错误。目前网上的解决方法都是说注释掉报错的部分,但这种操作本身风险就很大,在之后的cmake 和 install 时又会出现其他错误。因此,只要选择这时间之后的版本基本上都没问题。

三、OpenCV 版本问题

由于20.04自带的是OpenCV4,所以要对LIO-SAM代码做一点改动:
找到utility.h中的:#include<opencv/cv.h>,修改为#include <opencv2/imgproc.hpp>。即可成功编译。

四、pcl问题

C++14环境
错误如下(示例):

主要是让LIO-SAM支持C++14,所以只需要修改下载下来的源码中CMakeList.txt:
修改如下:

set(CMAKE_CXX_FLAGS "-std=c++14")

五、/usr/bin/ld问题

错误如下(示例):

在CMakeLists中加入:

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

六、运行报错

错误如下(实例):

解决办法:在新的终端执行以下指令

sudo apt-get install ros-noetic-fake-localization
sudo apt-get install ros-noetic-robot-localization

七、数据集

lio-sam配套数据集

八、运行效果