安装依赖
- 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就行。
之后的依赖(TBB、MKL)是可选安装(Optional prerequisites - used automatically if findable by CMake),我没试过不装这些依赖是什么效果,但应该问题不大。
2023.11.16更新:
有很多同学反应MKL装不上,原因是GPG key失效了,同时官网上也没有其他的安装方法(主要是不想折腾)。然后,我在GTSAM的项目下找到了这样一句话:
Optional dependent libraries:
- If TBB is installed and detectable by CMake GTSAM will use it automatically. Ensure that CMake prints "Use Intel TBB : Yes". To disable the use of TBB, disable the CMake flag
GTSAM_WITH_TBB
(enabled by default) by providing the argument-DGTSAM_WITH_TBB=OFF
tocmake
. On Ubuntu, TBB may be installed from the Ubuntu repositories, and for other platforms it may be downloaded from GitHub - oneapi-src/oneTBB: oneAPI Threading Building Blocks (oneTBB)- GTSAM may be configured to use MKL by toggling
GTSAM_WITH_EIGEN_MKL
andGTSAM_WITH_EIGEN_MKL_OPENMP
toON
; however, best performance is usually achieved with MKL disabled. We therefore advise you to benchmark your problem before using MKL.
意思是说,这MKL装不装无所谓,装了还可能影响执行效率(但是我没试过,实测MKL并不影响GTSAM的使用,可以不装!)。如果装不上就别装了,直接跳过这一步。在cmake的时候加上MKL=OFF相关的指令就行了(之后会有说明)。
- 安装 TBB(官网说是可选安装,但是TBB的安装还是比较简单的,建议安装)。
-
sudo apt-get install libtbb-dev
安装 MKL。(GPG key已失效,如果想安装的话可以到官网自己摸索一下,安装成功了记得反馈,传送门:https://www.intel.com/content/www/us/en/developer/articles/guide/installing-free-libraries-and-python-apt-repo.html)
安装GTSAM
Clone源码或者直接下载安装包:
这里提供直接下载安装包的下载连接:
Releases · borglab/gtsam · GitHub 可以选择自己需要的版本,每个版本的最后都有Assets,可以直接下载安装包(.zip或者.tar.gz)。
这里需要注意,ubuntu20.04需要选择GTSAM >= 4.0.3 的版本,否则会报“The "debug" argument must be followed by a library.”之类的错误。目前网上的解决方法都是说注释掉报错的部分,但这种操作本身风险就很大,在之后的cmake 和 install 时又会出现其他错误。而我查阅了GTSAM中的issue,发现这个错误在2020年6月(18 Jun)的更新中已经得到了解决。因此,只要选择这时间之后的版本基本上都没问题。
之后的步骤按照官网的指引基本上没问题,这里我复制粘贴一下:
#!bash
$ cd gtsam-1.X.X #替换成自己的目录
$ mkdir build
$ cd build
$ cmake ..
$ make check
$ sudo make install
这是一般的安装过程,若之后要运行LIO-SAM则cmake步骤要稍微调整,如下所示:
#!bash
$ cd gtsam-1.X.X #替换成自己的目录
$ mkdir build
$ cd build
$ cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
$ make check
$ sudo make install
这里需要注意,如果你没有安装MKL,需要在上面cmake时加上以下参数,也就是:
cmake -GTSAM_WITH_EIGEN_MKL=OFF -DGTSAM_WITH_EIGEN_MKL_OPENMP=OFF ..
如果要运行LIO-SAM还要加上-DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF,也就是:
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_WITH_EIGEN_MKL=OFF -DGTSAM_WITH_EIGEN_MKL_OPENMP=OFF ..
如果你连TBB也没有安装,那就自己再加上 -DGTSAM_WITH_TBB=OFF就行了。
至此,Ubuntu20.04 系统安装 GTSAM 4.0.3 完成。
LIO-SAM
创建工作空间,下载代码
cd ~/liosam_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
如果是安装了opencv4的同学,需要修改源码:
在 LIO-SAM-master/include/utility.h 中修改 #include <opencv/cv.h> 为 #include <opencv2/imgproc.hpp>
在 LIO-SAM-master/CMakeList.txt 中将 set(CMAKE_CXX_FLAGS "-std=c++11") 修改为set(CMAKE_CXX_STANDARD 14)
catkin_make
运行launch文件
roslaunch lio_sam run.launch
播放rosbag
rosbag play your-bag.bag -r 3