Type: concept
Confidence: 0.95
Created: 2026-04-15
Updated: 2026-04-15
Tags: 机器人学定位概率推理粒子滤波算法

蒙特卡罗定位

概述

蒙特卡罗定位(Monte Carlo Localization, MCL)是 Thrun、Fox、Burgard 于 1999 年提出的机器人全局定位算法:用一组带权粒子(样本)表示机器人位置的概率分布,通过预测-更新-重采样迭代,从"完全不知道在哪"收敛到"精确定位"。

关键内容

核心思想

粒子滤波(Particle Filter)在定位问题上的应用。将"机器人在哪里"表示为一组假设(粒子),每个粒子代表一个可能位置及其概率权重:

初始化:在地图上均匀随机撒 N 个粒子(全局不确定)
循环:
  1. 预测:按运动模型随机移动每个粒子(传播不确定性)
  2. 更新:按观测模型重新加权(传感器数据修正权重)
  3. 重采样:按权重抽样,淘汰低权重粒子,复制高权重粒子

关键能力

问题类型 MCL 处理方式
位置跟踪(已知初始位置) 粒子聚集在初始位置附近,随运动更新
全局定位(初始位置未知) 粒子均匀分布,随观测逐步聚集
绑架机器人问题 在重采样时注入随机粒子,从定位失败中恢复

全局定位能力是 MCL 相对于 EKF 的决定性优势——EKF 假设单峰高斯分布,无法表示"机器人可能在走廊两端之一"的多模态情形。

与 EKF 对比

维度 卡尔曼滤波(EKF) 蒙特卡罗定位(MCL)
分布假设 高斯(单峰) 任意(多峰)
全局定位 不支持 支持
计算效率 解析更新(快) 粒子数决定(可调)
非线性处理 泰勒线性化(近似) 精确采样(准确)

工程化标准(amcl)

MCL 被实现为 ROS 导航栈的核心模块 amcl(Adaptive Monte Carlo Localization),在全球无数机器人上运行——从扫地机器人到仓库 AGV:

来源

相关