在机器人导航与 SLAM(同步定位与地图构建)领域,里程计与惯导(IMU)的数据融合是提升定位精度的关键技术。除了经典的卡尔曼滤波算法(KF)外,以下几类算法也被广泛应用于该场景,它们在不同应用场景下各有优势:
一、扩展卡尔曼滤波(EKF,Extended Kalman Filter)
核心原理
- 针对非线性系统,将状态转移方程和观测方程在当前状态点进行泰勒一阶展开(线性化),再套用卡尔曼滤波框架。
- 适用场景:里程计(如轮式里程计、视觉里程计)与 IMU 的非线性融合(如机器人旋转运动)。
优势与局限
- 优势:计算效率高,适用于实时性要求强的场景(如移动机器人)。
- 局限:线性化过程可能引入误差,对强非线性系统收敛性较差。
二、无迹卡尔曼滤波(UKF,Unscented Kalman Filter)
核心原理
- 采用 “无迹变换”(Unscented Transform),通过选取一组采样点(Sigma 点)直接传递概率分布,避免 EKF 的线性化误差。
- 数学逻辑:用确定性采样点近似状态分布,更准确处理非线性函数的均值和协方差。
应用案例
- 视觉里程计(VO)与 IMU 融合:处理相机投影模型的非线性(如透视变换)。
- 无人机定位:融合 GPS、视觉里程计与 IMU,提升动态场景下的稳定性。
三、粒子滤波(PF,Particle Filter)
核心思想
- 用大量随机样本(粒子)表示状态后验概率分布,通过重要性采样和重采样迭代更新。
- 关键步骤:粒子初始化→状态预测→权重计算→重采样→状态估计。
典型场景
- 强非线性、非高斯系统:如机器人在复杂环境中的运动(存在传感器噪声或异常值)。
- 多模态分布处理:当里程计与 IMU 数据存在歧义时(如环形走廊导致的定位模糊),粒子滤波可通过多组粒子表示不同可能性。
优缺点
- 优势:对非线性、非高斯问题适应性强,可处理多模态分布。
- 局限:计算复杂度高(粒子数量需足够多),实时性依赖硬件性能。
四、滑动窗口滤波(Sliding Window Filter)
算法框架
- 维护一个固定长度的窗口,包含近期的传感器数据(如 IMU 测量值、里程计观测),通过优化窗口内的状态估计最小化重投影误差或运动学误差。
- 典型代表:OKVIS、VINS-Mono 等 SLAM 系统中的紧耦合融合算法。
技术特点
- 增量式优化:通过边缘化(Marginalization)移除旧状态,保留窗口内关键帧,平衡计算量与精度。
- 约束融合:同时处理 IMU 的运动学约束(如角速度、加速度)和里程计的观测约束(如视觉特征点、轮式里程计位移)。
五、图优化(Graph Optimization)
建模思路
- 将里程计和 IMU 数据转化为图中的 “边”(约束),状态(如位姿)为图中的 “节点”,通过优化图的全局结构最小化整体误差。
- 常用工具:g2o、Cartographer、ORB-SLAM 系列等。
融合逻辑
- 短期约束:IMU 提供高频运动预测,里程计(如视觉)提供低频但高精度的位姿观测。
- 长期优化:通过闭环检测(Loop Closure)修正累计误差,结合图优化消除里程计的漂移(如 SLAM 建图场景)。
六、神经网络与深度学习方法
数据驱动融合
- 端到端学习:利用 CNN、LSTM 等网络直接学习里程计与 IMU 的映射关系,如:
- 将 IMU 时序数据(加速度、角速度)和里程计位移作为输入,输出优化后的位姿。
- 代表研究:DeepVO、LSTM-Inertial Odometry 等。
- 优势:无需精确建模传感器误差,自适应能力强,适合复杂环境。
- 局限:依赖大量标注数据,泛化能力受训练数据分布限制,缺乏物理约束解释性。
七、其他融合算法
-
互补滤波(Complementary Filter)
- 原理:通过设计滤波器频率响应,利用里程计(低频高精度)和 IMU(高频低精度)的特性互补,如用低通滤波处理里程计,高通滤波处理 IMU,再加权融合。
- 应用:简易机器人或无人机的姿态估计,计算量极小但精度有限。
-
联邦卡尔曼滤波(Federated Kalman Filter)
- 分布式框架:将融合任务分解为多个子滤波器(如里程计子滤波器、IMU 子滤波器),再通过主滤波器融合结果,适合多传感器异构系统。
-
平方根卡尔曼滤波(Square Root KF)
- 数值稳定性优化:通过矩阵平方根分解(如 QR 分解)替代协方差矩阵直接计算,避免 EKF 中协方差矩阵非正定的问题,适用于高精度导航(如航空航天)。
不同算法的对比与选择
算法类型 | 计算复杂度 | 适用场景 | 优势 | 典型应用 |
---|---|---|---|---|
卡尔曼滤波(KF) | 低 | 线性系统,如轮式里程计匀速运动 | 实时性好,数学原理清晰 | 移动机器人基础定位 |
扩展卡尔曼滤波(EKF) | 中 | 轻度非线性系统(如机器人转向) | 平衡效率与精度 | VIO(视觉 - 惯性里程计) |
无迹卡尔曼滤波(UKF) | 中高 | 强非线性系统(如相机投影) | 更准确处理非线性,避免线性化误差 | 无人机视觉 - 惯性融合 |
粒子滤波(PF) | 高 | 非高斯噪声、多模态分布场景 | 适应性强,可处理异常值 | 复杂环境下的机器人定位 |
滑动窗口滤波 | 中高 | 实时 SLAM,需要处理短期约束 | 结合优化与滤波,抑制累计误差 | VINS-Mono、OKVIS 等 SLAM 系统 |
图优化 | 高 | 离线或半离线建图,长期全局优化 | 消除长期漂移,适合大规模场景 | Cartographer、ORB-SLAM |
神经网络 | 极高 | 数据驱动场景,缺乏物理模型 | 自适应学习,无需手动建模 | 端到端视觉 - 惯性定位研究 |
实际应用建议
- 实时性优先:选择 EKF、UKF 或互补滤波(如消费级无人机)。
- 高精度与鲁棒性:滑动窗口滤波(如 VINS)或图优化(如机器人建图)。
- 复杂环境与非结构化场景:粒子滤波或结合深度学习的方法(如自动驾驶原型系统)。
- 工程实现:考虑传感器噪声特性(高斯 / 非高斯)、系统非线性程度、计算平台性能(如嵌入式设备 vs. 服务器)等因素,可通过仿真(如 Gazebo)对比不同算法的误差曲线。
这些算法通过不同的数学框架解决里程计与惯导的互补问题,实际应用中常根据场景需求混合使用(如 EKF 与图优化结合),以平衡精度、实时性和工程实现难度。