Ubuntu 16.04 lio_sam运行环境配置

搭建成功环境:

ubuntu16.04

pcl1.9.0

gtsam 4.0.2

一 pcl1.9.0安装

电脑原来安装的是1.7的版本,网上的一些人说,1.7版本最后不能呢个成功运行,需要1.8以上的版本,所以先卸载之前的pcl版本,然后重新安装1.9.

(1)卸载不满足条件的pcl版本

sudo apt-get remove libpcl1.7
sudo apt-get remove libpcl-*

(2)PCL依赖库安装

sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui 
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common  
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev 
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre

注意:很多朋友应该都是换了清华、中科大、阿里等源,如果update不能成功完成的话,可以更换成UBUNTU最原始的源。(我突然遇到了这个情况,换成原来的源就解决了)。

(3)源码下载

github下载地址:pcl-1.9.0

Ubuntu 16.04 lio_sam运行环境配置_第1张图片

 下载tar.gz版本的

 (4)编译

将安装包放在home下

1.先解压安装包

tar -zxvf pcl-pcl-1.9.0.tar.gz 

2.进入到安装包

cd pcl-pcl-1.9.0
mkdir build
cd build

3.编译

cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4
sudo make install

时间较长,耐心等待.

二 gtsam安装

lio-slam源码中是使用4.0.2的版本安装的.

(1)下载

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build

编译之前需要提前修改下eigen3一个版本的使用问题,在gtsam-4.0.2/CMakeList.txt中接近300行左右的地方.如下图所示,在if(GTSAM_USE_SYSTEM_EIGEN)前加上
set(GTSAM_USE_SYSTEM_EIGEN on)Ubuntu 16.04 lio_sam运行环境配置_第2张图片

 然后在进行编译.接着前面在创建了build文件夹进入到build文件夹中.

cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
make -j4
sudo make install

三 ros相关依赖

sudo apt-get install -y ros-kinetic-navigation
sudo apt-get install -y ros-kinetic-robot-localization
sudo apt-get install -y ros-kinetic-robot-state-publisher

四 下载lio源码编译

cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make

注意:我这里编译过程中在百分之95时报错,很奇怪的一个错,然后在网上找到亮一个解决方法:

/usr/bin/ld: cannot find -lBoost::timer
collect2: error: ld returned 1 exit status
LIO-SAM-master/CMakeFiles/lio_sam_imuPreintegration.dir/build.make:759: recipe for target '/home/kyle/ros/kyle_ws/devel/lib/lio_sam/lio_sam_imuPreintegration' failed
make[2]: *** [/home/kyle/ros/kyle_ws/devel/lib/lio_sam/lio_sam_imuPreintegration] Error 1
CMakeFiles/Makefile2:10000: recipe for target 'LIO-SAM-master/CMakeFiles/lio_sam_imuPreintegration.dir/all' failed
make[1]: *** [LIO-SAM-master/CMakeFiles/lio_sam_imuPreintegration.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

解决方法:

修改lio中CMakeLists.txt中:

find_package(OpenMP REQUIRED)
find_package(PCL REQUIRED QUIET)
find_package(OpenCV REQUIRED QUIET)
find_package(GTSAM REQUIRED QUIET)

修改为:

find_package(OpenMP REQUIRED)
find_package(GTSAM REQUIRED QUIET)
find_package(PCL REQUIRED)
find_package(OpenCV REQUIRED)

结果竟然莫名其妙的编译成功,然后下了官网两个数据集试验了其中不需要修改配置的park数据集,下过如下:

roslaunch lio_sam run.launch
rosbag play park.bag

笔记本配置一般,3倍速播放直接点云飘飞了.

 这里简单记录一下我整个编译过程

上述可能在其他环境下会出现很多其他问题,我之前在自己配置好点的台式上搭建了一次,很多问题,gtsam4.0.0,4.0.2,4.0.3三个版本我都试过,还安装了MKL.但是最后即使编译成功后,运行代码依赖有两个节点报错,自己也莫名其妙的,然后换上了笔记本,结果就成功了...

后续会尝试自己录数据集验证一下...

参考文献:

LIO-SAM编译问题_m0_38144614的博客-CSDN博客

ubuntu16.04 运行LIO-SLAM_wyy13273181006的博客-CSDN博客

GitHub - TixiaoShan/LIO-SAM: LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping

你可能感兴趣的:(slam,linux,c++,slam)