Ubuntu20.04编译运行LIO-SAM
论文地址:LIO-SAM
源码地址:LIO-SAM code
LIO-SAM在ubuntu16.04和ubuntu18.04上编译比较顺利,但是20.04有诸多差异导致出现问题,现记录如下:
1.下载源码
建议直接下载源码编译,不要用其他的版本。
2.依赖库
- ros-noetic
参考其他blog
ros安装完成后,再安装定位包
sudo apt-get install ros-noetic-fake-localization
sudo apt-get install ros-noetic-robot-localization
- 其他依赖库
我本地的依赖库版本,其他的版本可能也可以。
boost1.71
Eigen3
pcl1.10
flann1.9
opencv4.3
GTSAM-4.2a7
sudo apt install libboost-all-dev #1.71
sudo apt install libflann-dev #1.9
pcl-1.10 #使用源码编译安装
opencv-4.3 #使用源码编译安装
gtsam-4.2a7 #使用源码编译安装
3.编译
3.1 CMakeLists.txt和源码上的修改
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-std=c++14")
src->include->utility.h:18
// #include <opencv/cv.h>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc.hpp>
3.2 遇到的问题及解决
- 问题1.flann和opencv冲突问题
/usr/include/flann/util/serialization.h:56:33: required from ‘static void flann::serialization::Serializer<T>::save(OutputArchive&, const T&) [with OutputArchive = flann::serialization::SaveArchive; T = flann::LshIndex<flann::L2_Simple<float> >]’
/usr/include/flann/util/serialization.h:316:28: required from ‘Archive& flann::serialization::O