一:前言介绍
LVI-SAM是Tixiao Shan的最新力作,Tixiao Shan是Lego-loam(基于激光雷达里程计的SLAM框架)和Lio-sam(基于惯性-雷达紧耦合的SLAM框架)的作者,LVI-SAM是Tixiao Shan最新开源的基于视觉-激光-惯导里程计SLAM框架,作为结合Lio-sam和Vins-Mono的视觉-激光-惯导融合的SLAM框架,很值得学习一波。
二:代码和数据下载
作者的代码、论文、数据集和环境搭建教程都放在Github里面,讲解的很清楚,如果搭建过Lio-sam的小伙伴,应该能很快搭建并跑通数据集。
放一波Github的网址:https://github.com/TixiaoShan/LVI-SAM
数据集可以在以下网址下载,需要科学上网,
https://drive.google.com/drive/folders/1q2NZnsgNmezFemoxhHnrDnp1JV_bqrgV?usp=sharing
如果没有科学上网,这边有百度云链接。
链接:https://pan.baidu.com/s/1KdE-jrFIpMa-pR2nf7_aMApan.baidu.com
提取码:2m17
三.环境配置和搭建
运行环境:ROS(Tested with kinetic and melodic)
依赖1:下载GTSAM(也可以在github里面直接下载)
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
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j4
依赖2:下载Ceres(也可以在github里面直接下载)
sudo apt-get install -y libgoogle-glog-dev
sudo apt-get install -y libatlas-base-dev
wget -O ~/Downloads/ceres.zip https://github.com/ceres-solver/ceres-solver/archive/1.14.0.zip
cd ~/Downloads/ && unzip ceres.zip -d ~/Downloads/
cd ~/Downloads/ceres-solver-1.14.0
mkdir ceres-bin && cd ceres-bin
cmake ..
sudo make install -j4
下载源代码:(也可以在github里面直接下载)
cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LVI-SAM.git cd ..
catkin_make
解决编译报错的问题:
1.安装Ceres 出现Can't find Google Log (glog). 需要安装glog,
https://github.com/google/glog/releases/tag/v0.4.0
先从Github下载源码,然后解压进入文件夹,命令行敲下:
mkdir build
cd build
cmake ..
sudo make install -j4
然后重新编译ceres,发现编译通过了。
2.编译LVI-SAM源码出现错误:GTSAM was built against a different version of Eigen.
因为GTSAM的eigen版本跟系统版本冲突了,需要修改GTSAM的eigen依赖库的版本,改为系统的eigen。
在CMakeLists.txt文件中if(GTSAM_USE_SYSTEM_EIGEN)前面添加如下代码:
set(GTSAM_USE_SYSTEM_EIGEN ON),重新编译就可以了。
四.跑数据集
rosbag play handheld.bag
roslaunch lvi_sam run.launch
效果如下: