在激光SLAM的发展历程中,LOAM(Lidar 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的分野不仅是算法效率的跃升,更是一种思维范式的转变:从逐帧递推的“链式思维”走向全局一致的“网状思维”,这一转变正在被越来越多的大规模场景定位、多传感器融合和具身智能导航应用所验证



