LVI-SAM代码复现、调试与运行

一、LVI-SAM介绍

        LVI-SAM是Tixiao Shan的最新力作,Tixiao Shan是Lego-loam和Lio-sam的作者,LVI-SAM是Tixiao Shan最新开源的基于视觉-激光-惯导里程计SLAM框架,结合了Lio-sam和Vins-Mono的视觉-激光-惯导融合的SLAM框架。

LVI-SAM系统框架

        文章主要工作:

  • 实现了一个激光-视觉-惯性的紧耦合系统(单目相机和16线激光雷达),通过因子图实现多传感器的融合,全局优化和回环检测;
  • 通过故障检测机制,避免了单一子系统故障,导致系统不能使用的情况,提高了系统的鲁棒性;
  • 利用不同的数据集进行了验证。 

        源码开源地址:LVI-SAM

 二、安装依赖

        电脑配置:

Ubuntu 18.04 + ROS Melodic + GTSAM 4.1.0 + CERES 1.14.0

        在编译该功能包之前,我们需要先安装相关依赖功能。

2.1 安装ROS

        根据自己的Ubuntu版本安装对应的ROS版本,18.04对应ROS melodic。具体安装过程不多做介绍,可参考ROS wiki官网教程.或者检索其他文章。

2.2 安装GTSAM

git clone https://github.com/borglab/gtsam.git

mkdir build && cd build

cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF .. //直接cmake可能会报错

sudo make install -j4

2.3 安装Ceres

git clone https://github.com/ceres-solver/ceres-solver.git

mkdir build && cd build

cmake ..

sudo make install -j4

        如果报错,可能是因为缺少相关依赖:

sudo apt-get install -y libgoogle-glog-dev
sudo apt-get install -y libatlas-base-dev

        安装完之后重复Ceres的安装过程。

三、创建工作空间并下载源码编译

         源码开源地址:LVI-SAM

mkdir ~/catkin_ws/src

cd ~/catkin_ws/src

git clone https://github.com/TixiaoShan/LVI-SAM.git

        解压到当前文件夹

cd ..

catkin_make -j4

四、运行数据集

4.1 下载数据集

        示例数据Google网盘链接:https://drive.google.com/drive/folders/1q2NZnsgNmezFemoxhHnrDnp1JV_bqrgV?usp=sharing

        为了方便下载,已转移其中两个数据集至百度网盘,有需要可以使用下方链接获取:

链接: https://pan.baidu.com/s/1yD1d0f0LmRrVrJY2c78X0Q 提取码: v9ds

 4.2 启动程序运行数据集:

//启动LVI-SAM建图节点
roslaunch lvi_sam run.launch

//启动LVI-SAM建图节点
rosbag play handheld.bag

        如果出现报错:[run.launch] is neither a launch file in package [lvi_sam] nor is [lvi_sam] a launch file name.

         运行如下代码,再次重复启动LVI-SAM建图节点和启动LVI-SAM建图节点的操作。

source devel/setup.bash

        如果运行rviz界面是这样的:

         并且终端出现报错:

[mapOptmization-7] process has died [pid 14493, exit code 127, cmd
/home/zard/catkin_ws/devel/lib/lego_loam/mapOptmization __name:=mapOptmization __log:
=/home/zard/.ros/log/922c7a94-0354-11ed-951b-8d0be314719f/mapOptmization-7.log].

        lvi_sam_imuPreintegration进程被杀死,lvi_sam_mapOptmization进程被杀死。

         原因是未安装 libmetis 库,通过安装libparmetis-dev修复它重新运行即可:

sudo apt-get install libparmetis-dev

        运行成功截图:

        查看handheld.bag的信息:

rosbag info handheld.bag

猜你喜欢

转载自blog.csdn.net/weixin_50578602/article/details/127503204