SLAM建图定位的相关概述与核心技术体系 目录一、SLAM概述与技术体系1.1 什么是SLAM1.2 SLAM的传感器类型1.3 SLAM系统的完整框架二、前端里程计点云配准算法点云配准 / 扫描匹配2.1 配准的核心定义与数学原理2.2 迭代最近点算法ICP算法2.3 正态分布变换NDT算法2.4 ICP vs NDT 对比2.5 配准的两阶段策略2.6 基于特征的配准方法2.7 深度学习方法三、后端优化滤波与图优化3.1 基于滤波的方法3.1.1 卡尔曼滤波器KF3.1.2 扩展卡尔曼滤波器EKF3.1.3 无迹卡尔曼滤波器UKF3.1.4 粒子滤波器PF3.2 基于图优化的方法3.2.1 图优化的核心思想3.2.2 因子图优化3.2.3 主流图优化库3.2.4 g2o的使用流程3.2.5 iSAM2增量优化的革命3.2.6 滤波与图优化的对比四、IMU预积分4.1 背景为什么需要IMU预积分4.2 预积分的核心思想4.3 IMU的传感器模型4.4 预积分量的数学定义4.5 零偏处理与一阶近似4.6 IMU预积分在SLAM系统中的应用五、回环检测5.1 回环检测的核心意义5.2 回环检测的核心挑战5.3 基于视觉特征的方法词袋模型BoW5.4 基于激光雷达的方法Scan Context5.5 深度学习方法5.6 回环检测与后端优化的关系六、地图构建6.1 常见地图类型6.2 建图的关键问题七、各技术模块的协同关系八、主流开源 SLAM 完整框架分类与介绍8.1 视觉 SLAM 框架纯相机单目 / 双目 / RGB-D8.2 视觉惯性 VIO 融合框架相机 IMU8.3 2D 激光 SLAM 框架室内扫地机、底盘小车8.4 3D 激光惯性 LIO 融合框架室外机器人、无人机测绘8.5 多传感器融合前沿框架视觉 激光 IMU8.6 通用后端优化工具库所有 SLAM 底层依赖8.7 框架选型速查表九、SLAM 全链路高频问题9.1 SLAM 基础概念简答题9.2 前端点云配准专项题ICP/NDT 高频9.3 后端优化滤波类简答题KF/EKF/UKF/ 粒子滤波9.4 后端优化图优化 因子图高频题9.5 IMU 预积分核心问题9.6 回环检测全套问题9.7 地图构建类问答题9.8 工程故障排查题一、SLAM概述与技术体系1.1 什么是SLAMSLAM全称Simultaneous Localization and Mapping即同时定位与地图构建。它是指移动机器人在未知环境中通过搭载的传感器一边估计自身的运动轨迹定位一边构建环境的地图建图。SLAM面临的核心困难在于定位与建图的耦合关系精确定位需要准确的地图而构建准确地图又需要精确定位——这是一个“鸡生蛋蛋生鸡”的问题。没有准确的定位与地图扫地机就无法在房间自主地移动只能随机乱碰。1.2 SLAM的传感器类型SLAM的实现方式与传感器的形式和安装方式密切相关主要分为激光雷达和视觉两大类。激光雷达LiDAR是最古老、研究也最多的SLAM传感器。它以很高精度测出机器人周围障碍点的角度和距离精度可达厘米级。主流的2D激光传感器扫描一个平面内的障碍物适用于平面运动的机器人如扫地机。激光的优点是精度高、速度快、计算量不大容易做成实时SLAM缺点是价格昂贵。视觉SLAM主要分为单目、双目或多目、RGBD三类。单目相机成本极低但无法确切地得到深度信息存在尺度不确定性问题。双目和RGBD相机可以获得深度信息但计算量更大。此外IMU惯性测量单元常与视觉或激光雷达结合使用形成视觉-惯性系统VIO或激光-惯性系统LIO是当前研究热点之一。1.3 SLAM系统的完整框架一个完整的SLAM系统通常包含五个核心模块传感器数据获取采集原始数据包括激光扫描数据、视频图像数据、点云数据等前端里程计/配准提取特征、进行特征匹配或点云配准估计设备的初始位姿后端优化利用滤波或图优化方法对轨迹和地图进行全局优化消除累计误差回环检测识别是否回到历史位置地图构建生成可用于导航的栅格地图、点云地图等二、前端里程计点云配准算法点云配准 / 扫描匹配前端里程计的核心任务是估计相邻帧之间的运动。对于激光SLAM来说最核心的问题就是点云配准——找到两个点云之间的最佳变换矩阵2.1 配准的核心定义与数学原理点云配准是求解两个点云之间的刚性变换旋转矩阵 R 和平移向量 T使源点云经过变换后与目标点云重合。1刚性变换方程P′ R·P TP′变换后的源点云R3×3旋转矩阵满足 RᵀR Idet(R) 1T3×1平移向量P源点云顶点坐标矩阵3×N2目标函数最小二乘min_{R,T} Σᵢ ||R·pᵢ T - qᵢ||²pᵢ源点云第 i 个顶点qᵢ目标点云对应的匹配顶点N匹配点对数量2.2 迭代最近点算法ICP算法ICP是最简单且易于实现的匹配算法它用迭代的方法不断地最小化传感器数据和参考环境地图之间的点到点的欧几里得距离。通俗地讲ICP算法像拼图时把两块拼图上的点一个一个对齐先找最近的点配对算一个变换让它们更靠近再重新配对再算变换……反复迭代直到对齐。拼得越准效果越好但要是初始位置差太远可能拼到错误的位置去。1ICP的核心步骤寻找对应点在每一步中选择离每个扫描点最近的参考点求解变换用最小化距离平方和来分别计算旋转和平移迭代更新将求解出的变换应用到源点云重复上述过程直到收敛2ICP的SVD求解方法计算源点云和目标点云匹配点对的质心 p̄、q̄计算协方差矩阵 H Σᵢ (pᵢ − p̄)(qᵢ − q̄)ᵀ对 H 进行 SVD 分解得 H UΣVᵀ求解旋转矩阵 R VUᵀ平移向量 T q̄ − R·p̄3算法流程输入源点云 P目标点云 Q最大迭代次数 max_iter收敛阈值 ε输出旋转矩阵 R平移向量 t1. 初始化变换矩阵 T通常设为单位矩阵或使用里程计初值2. while k max_iter:3. 对源点云 P 中的每个点在目标点云 Q 中寻找最近邻点形成对应点对4. 剔除错误的对应点对距离阈值、法向量夹角等[reference:5]5. 基于保留的点对用 SVD 或四元数法求解最优变换 (R, t)[reference:6]6. 将变换应用到源点云P R * P t7. 计算误差变化量如果小于阈值 ε终止迭代8. k k 19. return R, t4ICP的优缺点优点概念简单易于理解和实现缺点对初始值敏感如果初始位姿相差太大容易收敛到局部最优最近邻搜索耗时可用KD-Tree加速要求两个点云有较大的重叠区域5ICP的变体Point-to-Plane ICP误差度量从点到点改为点到平面收敛更快GICP广义ICP将Point-to-Point和Point-to-Plane统一到概率框架下VGICP引入体素化加速2.3 正态分布变换NDT算法NDT全称Normal Distributions Transform正态分布变换是一种与ICP思路截然不同的点云配准算法。NDT不像ICP那样使用点云的各个点而是将位于三维像素内的3D数据点转换为正态分布把环境用局部概率密度函数PDF建模成一个平滑表面。通俗地讲NDT算法像看地图而不是看具体房子先把目标区域划分成网格统计每个网格里点的分布规律像天气预报的概率分布然后看源点云落在哪里概率最高调整位置让概率最大化。不用一个个点配对速度快对噪声不敏感。1NDT的核心步骤建立栅格地图将第一帧点云划分为固定大小的三维像素网格计算正态分布对每个网格内的点计算正态分布参数均值和协方差概率最大化用牛顿法迭代使得第二帧点云投影至栅格地图得到的概率最大化2算法流程输入源点云 P目标点云 Q初始变换 T0最大迭代次数输出最优变换 T1. 将目标点云 Q 划分为网格体素2. 对每个有效网格点数 ≥ 3计算均值 μ 和协方差 Σ拟合高斯分布 N(μ, Σ)[reference:19]3. 初始化变换 T T04. while 未收敛:5. 将源点云 P 通过变换 T 投射到网格中6. 对每个变换后的点找到其所在网格的高斯分布计算概率得分[reference:20]7. 用牛顿法优化评分函数计算变换更新量 ΔT[reference:21]8. T T ΔT9. 如果 ΔT 小于阈值终止迭代10. return T3NDT的优点无需最近邻搜索只需在初始化时计算一次网格分布后续高效对初始值要求相对宽松收敛域通常比ICP更宽天然抗噪用分布描述区域对离群点和噪声不敏感评分函数连续可微可用牛顿法等高效优化4NDT的缺点网格大小是超参数太大精度下降太小计算量增加在空旷或结构化程度低的场景中效果差2.4 ICP vs NDT 对比2.5 配准的两阶段策略点云配准通常分为粗配准和精配准两个阶段粗配准在点云相对位姿完全未知的情况下找到一个可以让两块点云相对近似的变换矩阵为精配准提供良好的初始值精配准在粗配准的基础上让点云之间的空间位置差异最小化常见的组合策略是先用NDT进行粗估计再用ICP进行精配准校正。2.6 基于特征的配准方法通过从扫描点云中提取角点、平面点等特征来提高计算效率。典型方法包括提取SIFT、FPFH等特征描述子进行特征匹配后用RANSAC剔除异常点最后求解变换。这类方法不依赖初始姿态但特征提取耗时较长。2.7 深度学习方法深度学习技术在点云配准领域也展现出巨大潜力出现了多种基于深度学习的点云配准网络在配准精度和计算效率方面不断取得突破。三、后端优化滤波与图优化后端优化的角色是接收前端带噪声的数据结合全局历史信息通过优化算法将局部误差抹平得出全局最优的轨迹和地图。3.1 基于滤波的方法基于滤波的方法源于贝叶斯估计理论将SLAM问题建模为状态估计问题通过预测-更新两步递推地估计机器人位姿。3.1.1 卡尔曼滤波器KF卡尔曼滤波适用于线性高斯系统通过贝叶斯推断或最大后验估计MAP两种方式推导。其经典五大公式包括运动方程、观测方程、卡尔曼增益因子、估值预测方程、更新预测状态误差。3.1.2 扩展卡尔曼滤波器EKFEKF通过线性化来处理非线性系统——在估计点处对非线性函数f和h做线性化逼近。EKF-SLAM在激光SLAM早期研究中应用广泛其理论已经非常成熟。EKF-SLAM的缺点不易表示回环线性化误差严重必须维护路标点的协方差矩阵导致较大的空间与时间开销3.1.3 无迹卡尔曼滤波器UKFUKF与EKF不同它不是对非线性方程做线性化逼近而是用无迹变换在估计点附近确定采样点Sigma点用这些采样点表示的高斯密度来近似状态的概率密度函数。这种方法在某些情况下比EKF具有更高的精度。3.1.4 粒子滤波器PF粒子滤波适用于非线性非高斯系统用一组带权重的随机样本粒子来近似状态的后验概率分布。FastSLAM是粒子滤波在SLAM中的典型代表它将SLAM问题分解为定位用粒子滤波和建图用EKF两个子问题。基于滤波的方法的总体评价在室内或小范围场景中效果不错但只考虑当前位姿状态和当前观测不具有回环检测能力存在线性化误差以及更新效率低等问题。3.2 基于图优化的方法图优化已成为现代SLAM后端的主流范式。通俗地讲图优化像在纸上画一张“关系网”每个位姿是一个点顶点每两个位姿之间的约束是一条线边线的长短表示误差大小。目标就是调整所有点的位置让整张网的总变形量最小。g2o、Ceres、GTSAM就是不同牌子的“绘图工具”。3.2.1 图优化的核心思想图优化SLAM用节点和边形成的图来表示一系列的移动机器人位姿和约束节点顶点代表待估计的状态变量如各时刻的位姿、速度、IMU零偏等边因子代表传感器测量对状态形成的约束如预积分约束、位姿先验约束、帧间位姿约束等图优化SLAM的本质可以转换为非线性最小二乘问题进行求解。3.2.2 因子图优化因子图是图优化的一种重要形式它将SLAM问题表示为一个因子图其中节点表示变量如相机位姿和路标边表示因子如观测和运动约束。因子图优化的核心优势在于增量式优化每次加入新的观测或运动数据时只对新增部分进行优化而不需要重新计算整个图显著减少计算量。iSAM增量平滑与建图是因子图优化的重要实现其内部使用基于概率的贝叶斯树每次增加约束时只调整和当前节点“关系比较密切”的节点既保障了精度也使得耗时不会随问题规模增大而增大。3.2.3 主流图优化库g2oGeneral Graph Optimization德国波恩大学开发基于图优化框架GTSAMGeorgia Tech Smoothing and Mapping佐治亚理工学院开发基于因子图和贝叶斯网络CeresGoogle开发的通用非线性优化引擎iSAM/iSAM2支持实时增量优化GTSAM与g2o/Ceres的根本区别Ceres和g2o采用传统的图优化框架而GTSAM基于因子图和贝叶斯推断。3.2.4 g2o的使用流程g2o在数学上主要分为四个求解步骤1. 创建线性求解器 LinearSolver2. 创建 BlockSolver用线性求解器初始化3. 创建总求解器 Solver从 GN/LM/DogLeg 中选择迭代策略4. 创建稀疏优化器 SparseOptimizer5. 定义图的顶点优化变量和边误差项添加到优化器中6. 设置优化参数执行优化使用g2o的核心记住节点为优化变量边为误差项。3.2.5 iSAM2增量优化的革命通俗地讲iSAM2像在纸上画关系网时每次新增一个点只调整周围受影响的部分而不是把整张网全部重新画一遍。这让SLAM可以实时处理大规模地图。传统图优化每次都要重新求解整个问题计算量随地图规模增长而爆炸。iSAM2增量平滑与建图解决了这个问题。核心思想使用贝叶斯树数据结构只更新受新观测影响的变量支持增量式变量重排序和流体重线性化实现亚秒级的大规模环境更新特别适合实时SLAM系统如LeGO-LOAM等3.2.6 滤波与图优化的对比基于图优化的方案考虑了移动载体历程中全部的位姿状态和环境观测信息可独立出前端实现并行计算是一种更为高效和普适的优化方法。四、IMU预积分4.1 背景为什么需要IMU预积分IMU惯性测量单元输出频率极高通常100-500Hz而激光雷达或相机频率较低通常10-20Hz。如果在两个关键帧之间对IMU数据进行传统积分会产生大量冗余的状态变量每个IMU时刻都有一个状态计算量巨大。IMU预积分由Lupton和Sukkarieh于2012年提出后由Forster等人2015, 2017进一步发展。4.2 预积分的核心思想预积分的核心思想是将两个关键帧之间的所有IMU测量值积分到一个相对的运动增量ΔR, Δv, Δp上。这个增量与两帧之间的绝对状态位姿、速度无关只与状态变量中的零偏有关。这种设计的巨大优势在于当对状态进行优化调整时无需重新积分所有IMU数据只需根据偏差的变化对预积分量进行一阶近似修正即可。用比喻来说传统IMU积分像是每吃一口饭都记录一次状态而预积分像是把一顿饭的总热量一次性算好。4.3 IMU的传感器模型IMU的传感器模型由三部分组成IMU真值真实的加速度和角速度零偏bias传感器的系统性偏差噪声测量中的随机误差IMU通过对加速度对时间双重积分计算位移量对角速度时间积分得到旋转量从而估计位姿。4.4 预积分量的数学定义在时间间隔 [tₖ, tₖ₊₁] 内对多个IMU测量值进行积分得到三个预积分量旋转预积分 ΔRᵢⱼ两帧之间的相对旋转速度预积分 Δvᵢⱼ两帧之间的相对速度变化位置预积分 Δpᵢⱼ两帧之间的相对位移这些量定义在机器人坐标系通常是IMU坐标系下的相对增量。4.5 零偏处理与一阶近似预积分量是在假设偏差不变的情况下计算的。但在优化过程中偏差是会被微调估计的。关键技巧当偏差变化了 δb 时不需要重新积分而是使用一阶线性近似来更新预积分量雅可比矩阵 ∂ΔR/∂b、∂Δv/∂b、∂Δp/∂b 可以在积分过程中通过递推得到利用这些雅可比矩阵可以用零偏残差对预积分量进行快速修正这正是预积分理论高效的核心所在。4.6 IMU预积分在SLAM系统中的应用IMU预积分通常作为因子被插入到因子图优化框架中。以LIO-SAM为例来源两个激光雷达关键帧之间的所有IMU数据数学形式构建一个残差项表示预积分测量值与状态预测值之间的差异作用紧耦合IMU数据提供帧间高频率的平滑运动约束并在线估计IMU的偏差在GTSAM中从4.0版本开始就内置了IMU预积分相关的接口。预积分前需要事先知道IMU的噪声、重力方向等参数。五、回环检测5.1 回环检测的核心意义通俗地讲回环检测就是机器人两次经过同一个场景时能够识别出这是同一个场景。像一个人走了一大圈后突然发现“咦这棵树我好像见过”——通过比较当前看到的场景和历史记录判断是否回到了老地方。一旦确认就能把之前累积的“走路误差”一次性修正过来。回环检测在SLAM中扮演着“全局数据关联”的角色其重要意义在于构建全局一致的地图有了时隔更加久远的约束可以消除累计漂移重定位在跟踪丢失的时候可以通过回环检测重新定位形象的比喻回环检测就像把一根已经被拉长的弹簧拉回到更贴近真实位置的状态。5.2 回环检测的核心挑战回环检测面临两个核心问题感知偏差假阳性把不同的场景判断为同一个误检测感知变异假阴性把同一个场景判断为不同漏检测评价指标包括准确率Precision TP / (TP FP)检测正确的数量 / 检测的总数量召回率Recall TP / (TP FN)实际检测出来的数量 / 理应检测出来的数量通常准确率和召回率呈矛盾关系一般对准确率的要求更高这是回环检测的严格性导致的。5.3 基于视觉特征的方法词袋模型BoW词袋模型是视觉SLAM中最主流的回环检测方法。1字典的构建字典实际就是对所有图片中的特征进行提取如“人”、“车”等这些是单词对全部图像特征提取所有单词后构成一个字典2词袋的表示词袋说的是一帧图像中能够提取出来的单词例如字典 D [x₁, x₂, x₃, x₄]一帧图像有2个x₁和1个x₃该图像的词袋向量为 A [2, 0, 1, 0]3相似度计算s(a, b) 1 − (1/W)·||a − b||₁通过比较两帧图像词袋向量之间的距离来判断相似度具体实现时通常预先加载一个词袋字典树通过这个字典树将图像中的每一局部特征点的描述子转换为一个单词统计整张图像的词袋向量。5.4 基于激光雷达的方法Scan ContextScan Context是一种基于3D点云的全局描述子近年来在激光雷达SLAM的回环检测中表现出色。1核心思想将3D空间划分为多个同心圆环和扇形区域统计每个区域内点的高度分布信息形成一种二维的直方图表示即Scan Context2主要优势旋转不变性通过环形划分和高度统计有效消除了点云旋转对特征表示的影响计算效率高计算过程简洁适合实时应用鲁棒性强对点云的密度变化、噪声干扰等具有一定的容忍度3在回环检测中的实现流程历史帧存储在SLAM过程中存储关键帧的Scan Context描述子及其位姿信息当前帧匹配将当前点云转换为Scan Context描述子与历史帧进行相似度比较如余弦相似度回环确认当相似度超过阈值时进一步通过几何验证如ICP算法确认回环的准确性位姿图优化利用确认的回环信息对位姿图进行优化消除累积误差其他基于激光雷达的方法还包括基于局部描述子如FPFH、基于分割的方法如SegMatch、SegMap等。5.5 深度学习方法近年来深度学习在回环检测中得到了广泛应用例如使用SuperPoint等深度特征提取网络替代传统手工特征、采用EigenPlaces网络提取图像的全局特征、基于孪生胶囊网络的回环检测方法等。5.6 回环检测与后端优化的关系回环检测为后端优化提供全局约束。当检测到回环时系统会在因子图中添加一个回环因子将当前帧与历史关键帧之间的位姿约束加入优化问题。通过图优化来修正整个轨迹的累计误差最终生成全局一致的地图。六、地图构建通俗地讲建图像用收集到的所有照片和位置信息拼出一张完整的地图。可以是简单的2D格子图栅格地图、精细的3D点云图或者是省内存的八叉树地图。地图构建模块根据处理后的数据生成环境地图。6.1 常见地图类型6.2 建图的关键问题稠密度 vs 内存稠密点云地图信息丰富但内存占用大八叉树地图通过递归划分平衡了精度和内存语义信息传统地图缺乏语义信息近年来越来越多的工作结合深度学习构建语义地图动态物体处理动态场景中需要剔除动态物体的影响七、各技术模块的协同关系SLAM的完整技术体系可以概括为以下协同关系这六大模块相互配合配准提供局部约束IMU预积分提供高频运动约束回环检测提供全局约束后端优化整合所有约束求解全局最优轨迹共同构成了现代SLAM系统的完整技术体系。八、主流开源 SLAM 完整框架分类与介绍前文完整讲解了 SLAM 五大核心模块前端配准、后端优化、IMU 预积分、回环检测、建图各类开源 SLAM 框架正是基于上述理论搭建的工程化系统按照传感器类型分为四大类视觉 VSLAM、视觉惯性 VIO、激光 SLAM、激光惯性 LIO同时配套通用图优化工具库。8.1 视觉 SLAM 框架纯相机单目 / 双目 / RGB-D1ORB-SLAM3行业基准传感器单目 / 双目 / RGB-D IMU室内外通用核心技术ORB 特征点法、DBoW3 词袋回环、全局 BA 光束平差、多地图重定位后端优化g2o、LM 迭代支持纯视觉 / 视觉惯性紧耦合优势鲁棒性强、回环完善、跟踪丢失可重定位学术标准评测基准适用AR/VR、手持 RGB-DD435i、小型机器人定位2DSODirect Sparse Odometry传感器纯单目相机核心技术直接法最小化像素光度误差不提取特征点优势无纹理环境也能跟踪缺点无完整回环模块纯里程计漂移累积严重3OpenVSLAM轻量化 ORB-SLAM 衍生框架支持鱼眼全景相机代码更轻量化嵌入式部署友好8.2 视觉惯性 VIO 融合框架相机 IMU1VINS-Mono / VINS-Fusion传感器单目 / 双目 / RGB-D IMU支持多相机融合核心技术IMU 预积分、滑动窗口紧耦合优化、DBoW 回环检测后端滑动窗口非线性最小二乘LM优势单目解决尺度模糊无人机、室内机器人主流方案VINS-Fusion 支持激光融合短板大规模场景全局优化弱长距离漂移大于 ORB-SLAM32OKVIS早期经典 VIO多关键帧全局 BA适合小范围高精度定位8.3 2D 激光 SLAM 框架室内扫地机、底盘小车1Cartographer谷歌工业级传感器2D/3D 激光雷达支持 IMU 融合核心技术子图匹配、NDT 粗配准 ICP 精配准、全局图优化、内置回环检测优势ROS 原生适配、闭环修正能力极强、支持超大场景建图仓储机器人标配后端基于图优化增量式优化适配 iSAM2 增量思想2Gmapping基于粒子滤波 FastSLAM早期经典滤波方案仅 2D 激光依赖轮式里程计小房间效果好大场景粒子退化严重3Hector-SLAM无里程计依赖仅依靠激光扫描匹配无回环模块长时间漂移大适合短距离场景8.4 3D 激光惯性 LIO 融合框架室外机器人、无人机测绘1LOAM / LeGO-LOAM3D 激光里程计开山LOAM点线 / 点面 ICP 配准分离高频里程计与低频全局优化LeGO-LOAM增加地面分割、特征分类去除地面无效点低算力嵌入式可用2LIO-SAM因子图优化标杆传感器3D 激光 IMU 紧耦合核心IMU 预积分 GTSAM 因子图增量优化、Scan Context 激光回环优势室内外通用、动态环境鲁棒、回环修正漂移效果极强自动驾驶 / 无人机主流3FAST-LIO2基于迭代卡尔曼滤波IESKFikd-Tree 加速点云搜索轻量化、实时性极强低端嵌入式可跑8.5 多传感器融合前沿框架视觉 激光 IMU1FAST-LIVO2激光 视觉 IMU 三传感器紧耦合兼顾几何精度与纹理特征2LVI-SAMLIO-SAMVINS-Mono 融合激光负责几何、视觉辅助回环与尺度约束8.6 通用后端优化工具库所有 SLAM 底层依赖不属于完整 SLAM 系统但所有框架的优化核心g2o通用图优化库支持 GN/LM/DogLeg 三种迭代策略ORB-SLAM、VINS 底层使用GTSAM基于因子图、贝叶斯估计LIO-SAM、iSAM2 增量优化原生依赖Ceres SolverGoogle 通用非线性最小二乘库BA、PnP、ICP 通用求解器8.7 框架选型速查表框架传感器组合核心优势适用场景ORB-SLAM3RGB-DIMU(D435i深度相机)回环完善、全局精度高室内长期定位、AR、稠密重建VINS-FusionRGB-DIMU轻量、单目尺度稳定无人机、小型移动机器人Cartographer2D 激光2D 栅格导航、ROS 友好室内底盘机器人自主导航LIO-SAM3D 激光 IMU室外大范围、抗动态物体室外巡检、测绘机器人九、SLAM 全链路高频问题9.1 SLAM 基础概念简答题1什么是 SL定位与建图为什么互相耦合答SLAM 全称同步定位与地图构建机器人在未知环境依靠传感器同时估算自身位姿、构建环境地图。 耦合矛盾精准定位需要完整地图做匹配精准建图需要准确机器人位姿还原环境二者互相依赖只能迭代求解。2SLAM 五大核心模块分别是什么各自职责答传感器数据预处理去畸变、去噪、时间同步、点云裁剪 / 图像均衡前端里程计帧间运动估计输出局部位姿带来累计漂移后端优化融合多帧约束全局修正轨迹分滤波、图优化两大路线回环检测识别历史场景添加远距离全局约束消除长期漂移地图管理生成 / 存储 / 更新栅格、点云、八叉树、语义地图。3激光 SLAM 与视觉 SLAM 核心优缺点对比答激光 LiDAR测距精度厘米级不受光照影响成本高无纹理语义信息室内室外通用。视觉相机成本极低可提取纹理、语义单目存在尺度不确定性强光 / 黑暗 / 无纹理场景失效。主流方案激光 IMULIO、视觉 IMUVIO融合取长补短。4紧耦合、松耦合多传感器融合区别答松耦合先单独运行激光 / 视觉里程计输出位姿再送入滤波融合计算简单误差易累积紧耦合原始激光点 / 图像特征 IMU 预积分共同作为优化残差联合求解所有状态精度更高、算力消耗更大。5什么是累计漂移如何抑制答前端仅依靠相邻帧匹配微小误差逐帧叠加长时间轨迹严重偏移 抑制手段后端全局优化、回环检测、高频 IMU 约束、多传感器融合。9.2 前端点云配准专项题ICP/NDT 高频1ICP 完整迭代步骤两大致命缺陷答步骤近邻匹配→剔除远距离外点→SVD 求解 R/T→变换源点云→迭代至收敛缺陷①极度依赖良好初始位姿初值差极易陷入局部最优②重叠区域不足、噪声大时失效。2Point-to-Point ICP vs Point-to-Plane ICP哪个精度更高答Point-to-Plane 利用点到平面距离做误差平面场景收敛更快、精度更高激光 SLAM 主流使用Point-to-Point 仅适合稀疏离散点。3NDT 正态分布变换核心思路对比 ICP 优势答将目标点云栅格化每个栅格拟合三维高斯分布最大化源点落在栅格分布的概率求解变换。 优势无需逐点近邻搜索、收敛范围更大、对噪声 / 低重叠鲁棒可直接粗配准。4粗配准 精配准标准流水线为什么不能只用 ICP答先用 FPFH 特征 / RANSAC/NDT 粗配准得到初始变换再用 Point-to-Plane ICP 精修 仅 ICP 无可靠初值两帧偏移大时直接发散无法收敛到正确位姿。5基于特征的配准FPFH流程适用场景答提取点云 FPFH33 维描述子→汉明距离匹配→RANSAC 剔除外点求解变换适合两帧完全无重叠初值、大场景远距离配准缺点特征提取耗时。9.3 后端优化滤波类简答题KF/EKF/UKF/ 粒子滤波1EKF-SLAM 核心弊端现在很少使用的原因答一阶泰勒线性化引入误差强非线性旋转场景持续漂移协方差矩阵随路标数量爆炸内存、算力开销巨大天然难以处理回环约束每次回环需要全量更新状态。2粒子滤波 FastSLAM 核心思想适用场景答将 SLAM 拆分为定位粒子滤波 每粒子独立地图每个粒子携带自身轨迹与局部地图适合小规模室内 2D 栅格建图Gmapping缺点大规模场景粒子数量暴增实时性差。3滤波方法和图优化本质区别答滤波仅保留当前时刻状态只利用历史到当前的递推观测无法全局修正旧轨迹图优化保存全部历史位姿所有帧间、回环、IMU 约束联合全局优化能一次性消除长期漂移现代 SLAM 主流。9.4 后端优化图优化 因子图高频题1图优化顶点、边分别代表什么答顶点变量机器人各时刻 SE (3) 位姿、IMU 零偏、速度、相机内参边残差约束帧间配准约束、IMU 预积分约束、回环约束、GPS 观测约束。2g2o、Ceres、GTSAM 三者选型区别答g2o通用图优化框架自定义边灵活激光 SLAM 常用Ceres通用非线性最小二乘BA 视觉优化友好无原生因子图GTSAM基于贝叶斯因子图内置 IMU 预积分、回环模块增量优化 iSAM2 原生支持。3iSAM2 增量优化相比传统批量图优化优势答批量优化每次新增帧都全量重算地图越大越卡iSAM2 依靠贝叶斯树仅更新受新观测影响的局部变量大规模场景实时可用LIO-SAM、VINS 广泛使用。4LM、GN、DogLeg 三种迭代策略区别答高斯牛顿法GN忽略海森对角收敛快初始误差大易发散列文伯格 - 马夸尔特算法LM添加自适应阻尼 λ误差大时梯度下降、误差小时高斯牛顿鲁棒通用狗腿算法DogLeg分别计算梯度、GN 步长择优更新收敛稳定性优于 LM。9.5 IMU 预积分核心问题1为什么必须做 IMU 预积分直接逐帧积分有什么问题答IMU 频率 100~500Hz激光 / 相机仅 10~20Hz两关键帧间数百组 IMU直接全部放入优化变量维度爆炸。 预积分把区间内全部 IMU 累积为 ΔR、Δv、Δp 单一相对增量仅作为一条约束加入图大幅降维。2预积分如何处理 IMU 零偏 bias 更新答预积分计算时假设 bias 固定优化后 bias 发生微小变化依靠积分过程递推得到的雅可比矩阵一阶近似修正预积分量不需要重新遍历所有 IMU 数据。3IMU 预积分在 SLAM 中起到什么作用答高频平滑帧间运动填补激光 / 相机低帧率间隙提供旋转约束解决点云退化、单目尺度模糊作为强约束抑制里程计漂移动态场景稳定跟踪。4预积分残差如何构建属于哪种图优化边答残差 预积分测量增量 - 由两帧位姿速度推算出的理论增量在 GTSAM/g2o 中自定义 IMU 预积分因子边。9.6 回环检测全套问题1回环检测核心价值没有回环会出现什么问题答识别机器人重返历史场景添加远距离位姿约束全局抹平长期累计漂移无回环时长时间行走地图严重撕裂、轨迹偏移。2视觉词袋 BoW 原理优缺点答提取图像 ORB 特征聚类生成单词用词袋向量表征图像向量相似度判断回环优点检索快弱纹理场景失效易出现感知混淆假阳性。3激光 Scan Context 回环描述子核心逻辑答将 3D 点云划分为同心扇形栅格统计每个栅格高度分布生成二维直方图天然旋转不变纯激光场景首选不受光照影响。4回环两大误差假阳性、假阴性怎么权衡答假阳性误判同一场景添加错误约束地图直接崩坏工程优先牺牲召回率保证高准确率解决方案粗匹配后 ICP 几何校验、多帧连续验证再添加回环因子。5回环检测完整流水线答提取全局描述子BoW/Scan Context→历史库相似度检索候选帧→几何匹配验证ICP/PnP→计算两帧相对变换→向图中添加回环约束→后端全局优化修正轨迹。9.7 地图构建类问答题1四种主流地图适用场景答栅格地图2D扫地机、室内机器人导航存储占用小稀疏点云地图SLAM 定位匹配用只保留特征点稠密点云 / 网格地图测绘、可视化内存巨大八叉树地图平衡精度与内存支持占据查询导航避障通用。2动态物体如何处理避免地图污染答前端过滤聚类剔除短时移动障碍物时序滤波多次观测才标记为占据瞬时动态点舍弃语义分割深度学习识别行人、车辆直接剔除。3高精地图与 SLAM 实时地图区别答SLAM 实时地图边跑边建允许小幅漂移高精地图离线多轮优化、全局无漂移用于自动驾驶定位先验9.8 工程故障排查题1前端配准频繁发散排查顺序答传感器时间不同步激光与 IMU 时间戳偏移初始位姿初值偏差过大缺少粗配准场景平面单一、退化环境缺少旋转约束点云预处理噪声过多未做滤波裁剪。2长时间建图地图撕裂根本解决手段答漂移累积→启用回环检测IMU 噪声过大→调高预积分权重、标定 IMU 零偏缺少全局约束→增大后端优化窗口。3IMU 与激光外参不准会出现什么现象答帧间运动估计扭曲配准误差持续增大轨迹快速漂移回环匹配成功率大幅下降。4回环检测经常漏检召回率低优化方案答扩大描述子检索库、降低相似度阈值、多尺度生成描述子、结合 IMU 里程缩小检索范围。