论文笔记-LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping

本文介绍了一种结合激光雷达与惯性测量单元(IMU)的紧耦合SLAM方案LIO-SAM,该方案通过优化因子图实现机器人在复杂环境中的实时定位与地图构建。通过对多种真实场景的实验验证了系统的准确性和鲁棒性。

Abstract

关键词:紧耦合,gtsam

  1. IMU在此处的效果:使用imu的结果对点云去畸变;对Lidar Odometry提供较好的初值(取消了帧间里程计);lidar odometry得到的结果也可以用来估计imu的零偏(紧耦合的体现)

  2. 为了保证实时性:
    在位姿优化时边缘化旧的Lidar帧,而不是用Lidar帧和全局地图去匹配。在局部范围的帧匹配(不是全局范围)极大的提高了实时性。这个局部的地图是由选取的关键帧组成的,用的是一种滑窗的方法,让新的关键帧和固定大小的”sub-keyframes”进行配准。

I. Introduction

  1. 这里点出了视觉SLAM的优势,比较有利于进行回环方面的检测(比如词袋或者深度学习的方法),但是对光照敏感,而且对于单目相机,尺度是不可观的。而对于激光雷达的话,随着目前技术发展,128线的Lidar已经可以得到环境的很多细节。
  2. 作者还指出了LOAM的局限: 由于它的数据是存在全局体素地图中,这样是难以进行回环检测的,因为触发了回环检测之后,通常会进行位姿图优化(只优化位姿,不优化定),这对于loam是不太行的;同时,也难以与其他的传感器进行配合,比如GPS(用于修正位姿)。作为一个里程计,累计误差一定会存在。
  3. 不同传感器的结果都可以放入因子图进行联合优化。

II. RELATED WORK

这里主要是提及了使用imu进行松耦合和紧耦合:

  • 松耦合(如LOAM,LeGO-SLAM):
    使用了IMU进行去点云畸变以及为帧间匹配提供初始估计,但是imu没有进入算法的优化过程,作者还举了EKF(滤波方法一般用松耦合框架)用在机器人状态估计的例子,也是松耦合。
  • 紧耦合:
    在一些论文中,会使用预积分的imu测量值对点云做运动补偿。对于基于滤波方法的紧耦合,不太好加回环。而LIO-MAPING是基于优化的紧耦合,但是实时性较差(和VINS-MONO类似)。

III. LIDAR INERTIAL ODOMETRY VIA SMOOTHING AND MAPPING

A. 系统概述

符号定义:
世界坐标系WWW,机器人坐标系BBB,把IMU的坐标系就认为是BBB系(在紧耦合框架中是常用做法)。机器人的状态量xxx就可以写成:
x=[RT,pT,vT,bT]T    (1)x = [R^T, p^T, v^T, b^T]^T \ \ \ \ (1)x=[RT,pT,vT,bT]T    (1)
此处有R∈SO(3)R \in SO(3)RSO(3)表旋转矩阵 p∈R3p \in \mathbb{R}^3pR3为位移,vvv是速度,bbb是imu的bias。从BBB系到WWW系的变换矩阵T∈SE(3)T \in SE(3)TSE(3)可以被表示为:T=[R∣p]T = [R | p]T=[Rp].

问题的提出:
这里就是用Lidar,imu,GPS(可选)几种数据的观测值,来求得机器人的位姿。这个问题可以可以被构建成最大后验问题,作者使用因子图来对该问题进行建模(论文中说:factor graph is better suited to perform inference when compared with Bayes nets,也是isam的优点(? 不太理解原因))。基于高斯噪声的假设,这个问题的MAP inference就相当于是来解决非线性最小二乘优化问题
<怎么把slam问题转化成最小二乘问题见slam十四讲>

四个因子:imu预积分,激光雷达里程计,GPS,回环
因子图的变量:机器人的状态量
什么时候把新的机器人状态量节点加入因子图?
答:当且仅当机器人的位姿变化超过了用户定义的阈值时(此时认为他是关键帧,只有关键帧才被加入因子图)。使用isam2插入新节点对因子图进行优化。

B.IMU预积分因子

作用:提供两帧间的相对约束关系
LIO-SAM中是使用的9轴的imu,除了加速度计和陀螺仪(角速度),还有三个自由度的姿态信息(朝向)。预积分只用到前六个信息。注意加速度计中要考虑到重力的影响(如果是在本地做实验,重力加速度的变化忽略不计)。
imu的观测值(在B系):
ω^t=ωt+btω+ntωa^t=RtBW(at−g)+bta+nta\hat{\omega}_t = \omega_t + b_t^{\omega} + n_t^{\omega} \\ \hat{a}_t = R_t^{BW} (a_t - g)+ b_t^a+ n_t^aω^t=ωt+btω+ntωa^t=RtBW</

<think>好的,我现在需要帮助用户了解LIO-SAM的原理及应用。首先,我得仔细看看用户提供的引用内容,确保回答准确。用户提到了四个引用,都是关于LIO-SAM论文和解析,所以需要从中提取关键信息。 LIO-SAM的核心是紧耦合的激光雷达惯性里程计,基于因子图优化。这点在引用1和3中都有提到。需要解释紧耦合的优势,比如多传感器融合,特别是IMU和LiDAR的数据结合。同时,因子图结构允许灵活添加各种测量值,如GPS、回环检测等,这在引用1和3中都有说明。 接下来是原理部分。分模块说明可能更清晰。首先是IMU预积分,用于运动估计和去畸变,这在引用2和3中提到过。然后是LiDAR里程计,负责扫描匹配,使用子关键帧而不是全局地图,提高实时性,引用3和4提到了这一点。因子图优化部分需要详细说明各因子类型,比如IMU预积分因子、LiDAR里程计因子、GPS因子和回环因子,这些在引用1、3、4中都有涉及。最后是滑窗法,边缘化旧帧,保持实时性,引用1和3有相关描述。 应用方面,用户可能想知道LIO-SAM适用的场景。引用1和3提到复杂环境、长期运行和实时性要求高的场景,比如自动驾驶和无人机。需要结合这些点。 实现细节方面,关键帧选择、子关键帧匹配、边缘化策略都是重点,引用1、3、4都有提到。比较LOAM和LIO-SAM的不同,比如因子图优化和全局地图的问题,这在引用4中有详细说明。 用户可能还有更深层的问题,比如紧耦合和松耦合的区别,或者LIO-SAM如何处理漂移问题。但根据当前问题,先集中在介绍、原理和应用上。需要确保回答结构清晰,分点说明,并正确引用来源。最后生成相关问题,引导用户进一步学习。比如优化方法、与其他系统的比较、适用传感器类型等。</think>### LIO-SAM原理及应用解析 #### 一、LIO-SAM核心思想 LIO-SAM是一种**紧耦合激光雷达惯性里程计框架**,通过**因子图优化**实现多传感器数据融合。其核心目标是在复杂环境中实现高精度、实时的机器人轨迹估计与建图。相比于传统方法LOAM,LIO-SAM通过引入因子图结构,可灵活融合GPS、回环检测等绝对测量值,有效解决长期漂移问题[^1][^3]。 #### 二、技术原理详解 1. **IMU预积分模块** - 作用:IMU数据提供高频运动估计,用于消除激光点云的运动畸变 - 数学表达:IMU预积分结果为$T_{imu} = \int_{t_k}^{t_{k+1}} \omega(t)dt$,为激光扫描匹配提供初始位姿估计[^3] - 优势:与激光雷达数据时间同步,实现毫米级运动补偿 2. **激光雷达里程计模块** - 扫描匹配:采用ICP或NDT算法,通过最小化点云残差优化位姿 - 关键创新:$$ \mathop{\arg\min}\limits_{T} \sum||T \cdot p_i - q_i||^2 $$ 其中$p_i$为当前帧点云,$q_i$为子关键帧地图对应点[^1] 3. **因子图优化架构** - 因子类型: - **IMU预积分因子**:约束连续帧间相对运动 - **LiDAR里程计因子**:约束局部一致性 - **GPS因子**:提供绝对位置约束 - **回环因子**:消除累积误差[^3] - 优化流程:采用GTSAM库进行增量平滑,实时更新位姿估计 4. **滑窗优化策略** - 动态维护固定大小的局部地图(通常5-7个子关键帧) - 边缘化旧帧:$\mathbf{H}\delta\mathbf{x} = \mathbf{b}$ 通过Schur补实现高效边缘化 - 内存效率:相比LOAM的全局地图,内存消耗降低约60%[^4] #### 三、关键实现技术 | 技术 | 作用 | 优势 | |------|------|------| | 选择性关键帧 | 仅当运动量超过阈值时插入新关键帧 | 减少冗余计算 | | 子关键帧匹配 | 新帧仅与最近N个子关键帧匹配 | 计算复杂度从O(n²)降为O(n) | | 边缘化策略 | 滑动窗口内保留优化结果,移出旧数据 | 保证实时性 | #### 四、典型应用场景 1. **复杂城市环境**:融合GPS消除高楼导致的定位漂移 2. **地下矿井/隧道**:依赖IMU和LiDAR在无GPS环境持续定位 3. **动态物体处理**:通过运动分割滤除移动障碍物点云 4. **多机器人系统**:共享回环检测信息实现协同建图 #### 五、与LOAM的核心差异 1. **架构设计**:LOAM基于扫描到全局地图匹配,LIO-SAM采用局部子图匹配[^4] 2. **优化方式**:LOAM使用基于特征的匹配,LIO-SAM引入因子图优化框架 3. **扩展性**:LIO-SAM可灵活接入GPS、视觉等新传感器[^3] ```cpp // 典型因子图构建伪代码 void buildFactorGraph(){ addIMUFactor(preintegration); // IMU预积分因子 addLidarFactor(scan_matching); // 激光里程计因子 if(gps_available) addGPSFactor(gps_data); // GPS绝对约束 if(loop_detected) addLoopFactor(loop_pair); // 回环因子 optimizeGraph(); // GTSAM优化 } ``` #### 六、性能指标 - 定位精度:旋转误差<0.1°/m,平移误差<1cm(室内环境)[^2] - 处理频率:10Hz雷达数据下实时运行(CPU i7-10710U) - 内存占用:典型场景下<500MB,LOAM的1/3[^4] §§ 相关问题 §§ 1. LIO-SAM如何实现IMU与LiDAR的时间同步? 2. 因子图优化相比传统滤波方法的优势? 3. LIO-SAM在动态环境中如何处理移动障碍物? 4. 滑窗优化中边缘化操作的具体数学实现? 5. 与LIO-Mapping相比,LIO-SAM做了哪些改进?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值