【LOAM系列】四:LIO-SAM论文代码阅读笔记

LIO-SAM是一种结合IMU预积分和激光雷达里程计的SLAM方法,用于实时估计机器人运动。它通过IMU预积分因子、激光雷达里程计因子、GPS因子和回环因子优化因子图,提高定位精度。系统状态包括姿态、位置、速度和IMU零偏。激光里程计因子通过特征提取和匹配来更新位姿,而GPS因子和回环因子则分别在GPS数据可靠时和检测到闭环时辅助定位修正。整个系统通过滑窗优化实现高效运行,确保了机器人在复杂环境中的稳定导航。

LIO-SAM

IROS 2020 MIT Tixiao Shan

1、论文

1.1 概述

IMU预积分的运动估计对点云进行去畸变并产生激光里程计优化的初始估计。
激光雷达里程计用于估计IMU的零偏。
滑窗优化,在姿态优化的时候边缘化掉旧的激光雷达帧

在这里插入图片描述

LOAM是扫描到全局地图的匹配,松耦合方法

1.2 IMU预积分因子

系统状态
x = [ R T , p T , v T , b T ] T \begin{equation*}{\mathbf{x}} = {\left[ { { {\mathbf{R}}^{\mathbf{T}}},{ {\mathbf{p}}^{\mathbf{T}}},{ {\mathbf{v}}^{\mathbf{T}}},{ {\mathbf{b}}^{\mathbf{T}}}} \right]^{\mathbf{T}}}\end{equation*} x=[RT,pT,vT,bT]T
因子图优化:IMU预积分因子、激光雷达里程计因子、GPS因子、回环因子。当机器人姿态的变化超过用户定义的阈值时,图中会添加一个新的机器人状态节点x

IMU测量值
ω ^ t = ω t + b t ω + n t ω a ^ t = R t BW ( a t − g ) + b t a + n t a \begin{align*} & {\hat \omega _t} = {\omega _t} + {\mathbf{b}}_t^\omega + {\mathbf{n}}_t^\omega \\ & {\widehat {\mathbf{a}}_t} = {\mathbf{R}}_t^{ {\text{BW}}}\left( { { {\mathbf{a}}_t} - {\text{g}}} \right) + {\mathbf{b}}_t^{\text{a}} + {\mathbf{n}}_t^{\text{a}}\end{align*} ω^t=ωt+btω+ntωa t=RtBW(atg)+bta+nta
欧拉法IMU预积分
v t + Δ t = v t + g Δ t + R t ( a ^ t − b t a − n t a ) Δ t p t + Δ t = p t + v t Δ t + 1 2 g Δ t 2   + 1 2 R t ( a ^ t − b t a − n t a ) Δ t 2 R t + Δ t = R t exp ⁡ ( ( ω ^ t − b t ω − n t ω ) Δ t ) \begin{align*} & { {\mathbf{v}}_{t + \Delta t}} = { {\mathbf{v}}_t} + {\mathbf{g}}\Delta t + { {\mathbf{R}}_t}\left( { { {\widehat {\mathbf{a}}}_t} - {\mathbf{b}}_t^{\text{a}} - {\mathbf{n}}_t^{\mathbf{a}}} \right)\Delta t\\ & \begin{array}{c} { {\mathbf{p}}_{t + \Delta t}} = { {\mathbf{p}}_t} + { {\mathbf{v}}_t}\Delta t + \frac{1}{2}{\mathbf{g}}\Delta {t^2} \ + \frac{1}{2}{ {\mathbf{R}}_t}\left( { { {\widehat {\mathbf{a}}}_t} - {\mathbf{b}}_t^{\mathbf{a}} - {\mathbf{n}}_t^{\mathbf{a}}} \right)\Delta {t^2}\end{array} \\ & { {\mathbf{R}}_{t + \Delta t}} = { {\mathbf{R}}_t}\exp \left( {\left( { { {\widehat {\mathbf{\omega }}}_t} - {\mathbf{b}}_t^\omega - {\mathbf{n}}_t^{\mathbf{\omega }}} \right)\Delta t} \right)\end{align*} vt+Δt=vt+gΔt+Rt(a tbtanta)Δtpt+Δt=pt+v

<think>我们之前已经讨论过LOAMLIO-SAM,现在需要详细分析这两个框架。根据之前的知识,LOAM是激光雷达里程计和建图的经典算法,而LIO-SAM是在LOAM基础上结合了IMU的紧耦合方法。下面将详细分析这两个框架。</think>### LOAMLIO-SAM框架深度对比分析 LOAM(Lidar Odometry and Mapping)和LIO-SAM(Lidar Inertial Odometry via Smoothing and Mapping)是激光雷达SLAM领域的两个里程碑式框架,特别适用于无GPS环境下的无人机应用。以下是二者的详细对比分析: --- #### **1. LOAM框架解析** - **核心原理**: - **特征提取**:将点云分为边缘点(sharp points)和平面点(flat points)两类特征 - **两级优化**: - **里程计线程**:高频(10Hz)帧间匹配,使用ICP估计相对运动 - **建图线程**:低频(1Hz)全局优化,将点云配准到局部地图 - **运动补偿**:通过匀速运动模型或IMU数据校正点云畸变 - **技术特点**: ```cpp // 伪代码LOAM特征提取核心逻辑 void extractFeatures(PointCloud& cloud) { for (auto& point : cloud) { // 计算点曲率(粗糙度) float curvature = computeCurvature(point); // 按曲率阈值分类 if (curvature > edge_threshold) addToEdgePoints(point); else if (curvature < plane_threshold) addToPlanePoints(point); } } ``` - **优势**: - 厘米级定位精度(KITTI数据集测试误差<1%) - 计算效率高(单线程CPU实时运行) - 开源实现成熟(A-LOAM等优化版本) - **局限**: - 依赖环境几何特征(长廊等弱特征场景失效) - IMU非紧耦合(运动补偿依赖外部输入) - 无闭环检测(长距离累积漂移) --- #### **2. LIO-SAM框架解析** - **核心创新**: - **紧耦合因子图**:构建包含种约束的优化模型: 1. IMU预积分约束 2. LiDAR里程计约束 3. GPS约束(可选) 4. 闭环约束 - **关键数据结构**: - **IMU预积分**:消除运动畸变 - **关键帧管理**:基于距离/旋转阈值采样 - **ISAM2优化器**:增量式平滑建图 - **系统架构**: ``` ┌─────────────┐ ┌─────────────┐ │ IMU数据 │───▶│ 预积分模块 │───┐ └─────────────┘ └─────────────┘ │ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ LiDAR点云 │───▶│ 特征提取 │─▶│ 因子图优化 │ └─────────────┘ └─────────────┘ └─────────────┘ ▲ ┌─────────────┐ ┌─────────────┐ │ │ 闭环检测 │◀──│ 关键帧地图 │◀─┘ └─────────────┘ └─────────────┘ ``` - **优势**: - 漂移降低90%以上(相比LOAM- 支持剧烈运动(如无人机急转弯) - 内置闭环检测(SC-loop closure算法) - ROS兼容性强(直接输出TF和点云话题) - **局限**: - 计算资源需求高(需4核CPU实时运行) - IMU标定要求严格(否则引入新误差) - 配置参数复杂(超参数>20个) --- #### **3. 关键性能对比** | **指标** | **LOAM** | **LIO-SAM** | |-------------------|-----------------------------------|-----------------------------------| | 定位精度 | 0.5%-1% 相对误差 | <0.3% 相对误差 | | 最大速度支持 | <10m/s(无IMU) | <20m/s(IMU紧耦合) | | 计算负载 | 单核CPU @1.5GHz | 核CPU @2.0GHz | | 闭环检测 | 需外部实现(如DBoW2) | 内置(Scan Context) | | 动态物体鲁棒性 | 低(无过滤机制) | 中(可通过体素滤波改善) | | 典型应用场景 | 结构化室内环境 | 野外/城市峡谷等复杂环境 | --- #### **4. 实际部署建议** 1. **硬件选型**: - LOAM:2D激光雷达(如Hokuyo UTM-30LX) + 低端IMU - LIO-SAM:3D激光雷达(如Velodyne VLP-16) + 工业级IMU(如BMI088) 2. **场景适配**: - **仓库巡检**:优先LOAM(计算资源有限) - **灾害救援**:必选LIO-SAM(需处理剧烈运动) 3. **性能优化技巧**: - LOAM:减少平面点数量提升速度 - LIO-SAM:调整关键帧距离阈值(默认1m)平衡精度/效率 **发展趋势**:二者正融合深度学习(如LO-Net特征提取),未来将实现端到端SLAM系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值