SLAM 08.后端-非线性优化

  视觉里程计能给出一个短时间内的轨迹和地图,但不可避免的误差累积,这个地图在长时间内是不准确的。要想构建一个尺度,规模更大的优化问题,以考虑长时间内的最优轨迹和地图,这时后端优化就出现了。

一、核心任务与问题本质

核心任务:

  • 误差抑制:修正前端(VO/LIO)随时间累积的位姿漂移。
  • 全局一致性:联合优化所有历史位姿与地图路标,使整体误差最小。
  • 回环闭合:检测到 "回到过往位置" 时,加入强约束,一次性修正长期漂移。

数学本质:非线性最小二乘(状态估计)

  • 状态:机器人位姿 x i、地图路标 p j
  • 约束:运动约束(相邻位姿)、观测约束(位姿↔路标)、回环约束
  • 目标:最小化所有约束的残差平方和 min∑∥e∥ 2

二、两大技术路线:滤波 vs 图优化

2.1. 滤波后端(早期主流,轻量场景)

核心假设 :马尔可夫性(当前状态仅依赖前一时刻)。
代表算法:

  • EKF-SLAM:扩展卡尔曼滤波,维护状态均值与协方差;计算量 O(n2),仅适用于小场景。
  • UKF / 粒子滤波 PF:处理强非线性 / 非高斯;PF 常见于 2D 激光(如 GMapping)。

优缺点:✅ 计算快、内存小、适合低算力(扫地机)❌ 长期漂移、无法全局修正、精度低

2.2 图优化后端(当前主流,高精度场景)

核心思想 :把 SLAM 建模为因子图(Graph):

节点(Vertex):机器人位姿 x1​,x2​,...xn​、地图点 p1​,p2​,...pm​

边(Edge/Factor):约束(运动、观测、回环),带残差与信息矩阵
优化目标:迭代调整节点,使所有边残差最小。

主流求解器:

  • g2o:通用图优化库,视觉 / 激光 SLAM 最常用。
  • Ceres Solver:Google 开发,易用、鲁棒性强。
  • GTSAM:因子图专用,支持 IMU / 相机 / 激光融合。

优化算法 :高斯 - 牛顿(G-N)、列文伯格 - 马夸尔特(L-M)(鲁棒性更好)。
优缺点:✅ 全局最优、精度高、可融合多传感器、支持回环❌ 计算量大、需关键帧 / 位姿图稀疏化。

三、关键模块:位姿图、BA、回环与融合

3.1. 光束平差法(Bundle Adjustment, BA)

视觉 SLAM 核心:联合优化所有相机位姿与 3D 路标,最小化重投影误差。

稀疏化:仅优化关键帧与关键路标,控制计算量(如 ORB-SLAM3)。

3.2. 位姿图优化(Pose Graph Optimization)

激光 / 视觉通用:只优化位姿,不优化路标;节点为位姿,边为相对位姿约束(ICP / 匹配)。

适用场景:激光 SLAM(如 Cartographer)、纯定位、大规模建图。

3.3. 回环检测与闭合

作用 :识别当前帧与历史帧同场景,添加回环约束边,后端一次性修正全局漂移。
主流方法 :

词袋模型(BoW/DBoW3):视觉常用,图像→特征向量→相似度检索。

几何验证:RANSAC 验证候选回环的几何一致性,剔除误检。

深度学习:NetVLAD、语义匹配,提升动态 / 视角变化鲁棒性。

3.4. 多传感器融合后端

IMU + 视觉(VIO):紧耦合因子图(如 OKVIS、VINS-Mono),IMU 预积分提供高频运动约束。

激光 + IMU(LIO):激光里程计 + IMU 预积分,后端图优化(如 LIO-SAM)。

激光 + 视觉 + IMU:多因子联合优化,提升鲁棒性与精度。

四、主流开源框架对比

五、技术演进与趋势

从滤波到图优化:精度优先,工业界全面转向图优化 / 因子图。

稀疏化与实时性:关键帧筛选、位姿图稀疏化、增量优化(iSAM2),提升大规模场景实时性。

多传感器紧耦合:IMU 预积分、激光 / 视觉 / 雷达融合,适配复杂动态环境。

深度学习赋能:回环检测、特征提取、异常检测,提升鲁棒性与自动化程度。

六、总结

后端本质 :全局非线性优化,核心是图优化 / 因子图,目标是消除累积漂移、输出全局一致轨迹与地图。
选型建议 :

低算力 / 小场景:粒子滤波(GMapping)

视觉高精度:BA + 图优化(ORB-SLAM3)

激光建图:位姿图优化(Cartographer)

动态 / 复杂环境:多传感器融合因子图(LIO-SAM/VINS)

相关推荐
Y Shy7 小时前
2026.10 在受限的嵌入式机器人设备中使用LLM Agent
机器人·llm·嵌入式·agent
HA-ming10 小时前
PCSwitch 智能呼叫系统技术拆解:AI 机器人、意图识别与模块化流程如何串起业务自动化
人工智能·机器人·自动化·智能呼叫系统·智能呼叫中心·智能外呼·可视化模块化
BSD_CGQ13 小时前
FSR 压力传感器 I2C 接口实战:地址规划与 MCU 软件滤波的工程取舍
嵌入式硬件·机器人·压力传感器·柔性薄膜压力传感器
火星机器人life15 小时前
|机器人强化学习系列第 1 篇|机器人为什么需要强化学习?传统控制方法的四个局限
机器人
xwz小王子15 小时前
Nature Machine Intelligence|微型机器人强化学习训练缩短至分钟级:每秒19万次交互
人工智能·机器人
某林21215 小时前
局部路径规划器 DWB:速度采样与评分权重的取值分析
人工智能·算法·架构·机器人·技术复盘
七夜zippoe15 小时前
启元 Q1 三份 MJCF 仿真文件对比:显示 / 运动学 / 全范围怎么选
ai·机器人·仿真·robot·mjcf
七夜zippoe16 小时前
启元 Q1 关节指令预检器:URDF 限位拦越界指令
ai·机器人·urdf·启元·关节
七夜zippoe16 小时前
启元 Q1 腿部运动学逆解:Python 算站立下蹲关节角
开发语言·python·ai·机器人·腿部运动学
Axis tech17 小时前
Xsens&Manus全身数据采集解决方案,用精确数据训练您的具身智能
人工智能·科技·机器人