多传感器融合 SLAM LVI-SAM
目录
LVI-SAM 简介
A. 系统概述
B. 视觉惯导系统
C.雷达惯导系统
LVI-SAM 安装编译
编译 LVI-SAM
常见问题
LVI-SAM 工程化建议
LVI-SAM 简介
源码地址:https://github.com/TixiaoShan/LVI-SAM
如无法下载,换用 gitee 版本:https://gitee.com/inf_lee/LVI-SAM
改进版源码地址:https://github.com/Cc19245/LVI-
SAM
-
Easyused
(对于实际的项目部署推荐使用改进版的代码,对于初学者推荐使用原版代码)
gitee 版本:https://gitee.com/cuge1995/LVI-SAM-modified
论文地址:https://github.com/TixiaoShan/LVI-SAM/blob/master/doc/paper.pdf
论文摘要:本文提出了一个紧耦合的雷达视觉惯导 SLAM 系统,可以实时高精度鲁棒的进行
状态估计和建图。LVI-SAM 构建在因子图之上,并且由
两个子系统组成:一个视觉惯导系统
和一个激光惯导系统
。这两个子系统利用紧耦合的方法:视觉惯导的系统利用激光惯导的估
计来辅助
初始化
,并利用激光雷达的测量给视觉特征
提供深度来提升精度
。同时激光惯导系
统利用
视觉惯导的估计值作为初值来做帧的匹配,
利用视觉做
闭环检测
,把检测的结果给激
光惯导系统来做优化。当激光惯导和视觉惯导子系统的一个失败的时候 LVI-SAM 仍然可以
工作,这极大的提升了系统在缺少纹理或者特征场景中的鲁棒性。LVI-SAM 系统在数据集上
进行了测试,取得了很好的效果。
A. 系统概述
系统接受 3D 激光点云、单目图像和 IMU 信息作为输入。VIS 系统接受图像和 IMU 信息,雷
达点云是可选的输入。通过最小化 IMU 和视觉的测量残差来得到视觉里程计。激光里程计
通过最小化检测到的线面特征到特征图的距离得到。特征图保存在一个滑窗中来实时的执
行。最后状态估计问题,可以简化为一个 MAP(最大化后验概率)问题。利用 iSAM2 库来
优化因子图中 IMU 预积分,视觉里程计,激光里程计和闭环的约束的残差。需要注意的是,
LIS 中采用的多传感器图优化旨在减少数据交换并提高系统效率。
B. 视觉惯导系统
视觉惯导的 pipeline 如图所示

视觉特征利用角点检测器,利用 KLT 算法进行跟踪。我们利用视觉里程计对齐激光帧的点云
得到一个稀疏的深度图来得到特征的深度完成视觉惯导初始化。系统在滑窗中执行 BA,其
中状态 X 可以写成:

R 是 SO3 表示旋转矩阵,p 表示位置,v 表示速度,b=[b_a, b_w]是 imu 的偏置。变换矩阵
T 是 SE3 表示从机体坐标系到世界坐标系的变换 。下边将介绍 VIS 的初始化和特征深度估
计。读者们可以读 VINS-Mono 的原文来了解细节。
1)初始化:基于优化的 VIO 系统
由于很强的非线性导致初始化发散
。初始化的质量取决于
两个主要因素:初始化的传感器运动和 IMU 参数的精度。在实际实验中,我们发现 VINS 很
容易在系统速度很小或者匀速的时候初始化失败。这是由于加速度激励不够大导致尺度不可
观。IMU 的参数包含渐变的 bias 和高斯白噪声。
为了改善 VIS 初始化的鲁棒性,本文
利用 LIS 系统来估计系统的状态 X 和 IMU 的偏置 b