解析 LIO-SAM 因子图架构:逐帧递推与全局优化在激光 SLAM 中的应用

发布时间:2026/7/29 12:16:29
解析 LIO-SAM 因子图架构:逐帧递推与全局优化在激光 SLAM 中的应用 在激光SLAM的发展历程中LOAMLidar Odometry and Mapping无疑是一座里程碑。Ji Zhang博士于2014年提出的这一算法创造性地将复杂的SLAM问题解耦为高频里程计线程与低频建图线程通过提取边缘点和平面点进行点到线、点到面的扫描匹配在KITTI数据集上取得了当时最佳的精度。然而LOAM的光环之下掩藏着一个根本性的结构缺陷它缺乏全局回环检测能力难以整合GPS等绝对测量进行位姿校正且采用全局体素地图进行匹配的方式在大规模场景中计算效率骤降累积漂移问题始终挥之不去。2020年Tixiao Shan在LeGO-LOAM基础上推出的LIO-SAM以因子图Factor Graph架构为核心彻底改变了这一局面。一、因子图从“链式递推”到“网状优化”理解LIO-SAM的革命性首先要理解因子图是什么。因子图是一种用于表示复杂优化问题的概率图模型由两类节点构成变量节点和因子节点。变量节点是需要估计的状态例如机器人各时刻的位姿位置姿态、速度、IMU零偏等因子节点则代表传感器测量对状态施加的约束——可以是相邻帧之间的相对约束也可以是全局绝对观测。LIO-SAM的优化目标就是找到一组最可能的状态序列使得所有因子残差的加权平方和最小。LIO-SAM的因子图中主要包含四类因子IMU预积分因子约束相邻两个关键帧之间的状态变化。与LOAM仅用IMU做点云去畸变的松耦合不同LIO-SAM将IMU作为紧耦合因子纳入全局优化其协方差矩阵是一个15×15的矩阵反映了陀螺仪和加速度计白噪声在积分过程中传播导致的不确定性由于IMU置信度高其因子权重也相应较高。激光里程计因子通过当前帧点云与局部子关键帧地图的匹配提供相邻位姿间的相对变换约束残差定义为测量值与预测值之间的李代数差异。GPS因子提供绝对位置观测其协方差矩阵根据环境动态调整——开阔环境下协方差小、权重大城市峡谷或树林中协方差大、权重降低。回环因子在检测到回环时提供闭环约束其数学形式与激光里程计因子相同但跨越的时间跨度更大是消除长期漂移的关键。这四种因子共同构成了一个全局联合优化的网络。当新的关键帧加入时系统使用iSAM2增量优化算法更新整个因子图而非重新求解全部变量。二、IMU预积分桥接异频传感器的数学巧思IMU预积分是LIO-SAM实现高效紧耦合的核心技术之一。IMU频率高达100-1000Hz激光雷达仅10-20Hz若在每个IMU时刻都引入状态变量优化问题规模将急剧膨胀。预积分的精妙之处在于将两个关键帧之间的所有IMU测量值积分成一个相对运动增量ΔR, Δv, Δp这个增量只与零偏有关而与两帧之间的绝对状态无关。因此当优化过程中IMU零偏被微调时无需重新积分所有原始IMU数据只需根据零偏变化对预积分量做一阶近似修正即可。其离散形式的预积分计算公式为ΔR_ij Π Exp((ω_meas - b_g) × Δt)Δv_ij Σ ΔR_ik × (a_meas - b_a) × ΔtΔp_ij Σ [Δv_ik × Δt 0.5 × ΔR_ik × (a_meas - b_a) × Δt²]其中b_g和b_a分别是陀螺仪和加速度计的零偏。LIO-SAM通过imuPreintegration.cpp中的gtsam::PreintegratedImuMeasurements类实现这一功能每次新的IMU数据到达时调用integrateMeasurement()更新预积分状态为激光雷达里程计优化提供初始位姿估计。预积分后的IMU因子进入因子图与激光里程计因子形成交替优化闭环IMU预积分为激光里程计提供初值激光里程计的解反过来用于估计IMU的零偏。三、滑动窗口与边缘化实时性与全局一致性的平衡术LIO-SAM对LOAM的另一个关键改进在于放弃了全局体素地图匹配转而采用局部滑动窗口策略。系统不维护整个全局地图而是只保留固定数量的最新子关键帧构成局部点云地图新关键帧仅与这些先验子关键帧集合进行配准。滑动窗口需要妥善处理“边缘化”问题——当旧关键帧被移出窗口时不能简单地丢弃其信息而是将其转化为先验约束保留在优化问题中。LIO-SAM使用GTSAM库实现的贝叶斯树增量优化通过边缘化操作将被移出窗口的变量折叠为先验因子既控制了计算复杂度又保留了历史信息对当前状态的影响。这一设计的工程价值体现在计算负载的显著降低LOAM在大规模场景中因全局体素地图稠密化而效率骤降LIO-SAM的局部滑动窗口则保证了计算开销始终稳定在可接受范围内。四、从LIO-SAM到LVI-SAM因子图架构的可扩展性LIO-SAM之所以能够成为更复杂融合系统的基础根源在于其因子图架构的天然可扩展性。LVI-SAM正是这一能力的直接体现。该框架构建在因子图之上由两个子系统组成视觉惯导系统VIS和激光惯导系统LIS两者以紧耦合方式协同运作。VIS以VINS-Mono为基线LIS则基于LIO-SAM构建。VIS利用激光雷达测量为视觉特征提供深度信息来提升精度LIS则利用VIS的估计值作为帧匹配的初值。两个子系统最核心的协同设计在于互初始化VIS的初始化需要求解高度非线性问题对初始运动和IMU参数敏感LIS先对系统状态和IMU零偏进行初始化再插值到图像关键帧作为VIS初始化的初值大幅提升了初始化的鲁棒性。视觉回环检测的结果也被传递给LIS进行全局优化。这种双系统互备份的架构使得LVI-SAM在视觉或激光任一传感器失效时仍能继续工作——极大提升了系统在无纹理场景或光照剧烈变化环境中的鲁棒性。LVI-SAM的整个框架构建在因子图之上正是LIO-SAM所奠定的图优化基础使得这种多源传感器的灵活融合成为可能。结语从LOAM到LIO-SAM再到LVI-SAM这条技术演进脉络清晰地展示了因子图架构如何改变了激光SLAM的游戏规则。LOAM以“分治”策略奠定了实时性与精度的平衡基础但其链式递推结构注定难以整合多源异构信息。LIO-SAM通过因子图将激光雷达、IMU、GPS、回环检测统一为全局优化问题以IMU预积分实现了异频传感器的深度融合以滑动窗口和边缘化策略兼顾了实时性与全局一致性。当LVI-SAM在此基础上引入视觉传感器时因子图架构的可扩展性再次得到验证——多源融合不再是“打补丁”式的叠加而是同一数学框架下的自然延伸。对于SLAM研究者而言LOAM与LIO-SAM的分野不仅是算法效率的跃升更是一种思维范式的转变从逐帧递推的“链式思维”走向全局一致的“网状思维”这一转变正在被越来越多的大规模场景定位、多传感器融合和具身智能导航应用所验证