ZeroHour's Site

Back

第5章 移动机器人的定位#

⭐ 马尔可夫定位是核心考点


5.1 什么是定位?我在哪里?#

定位是导航中最具挑战性的能力之一。

编码器 → 位置预测(里程表) → 预测位置 → 匹配? → 位置更新
                                ↑           ↓
                           地图数据库      是
                                ↑           ↓
                           感知 ← 原始感知数据/提取特征
plaintext

三种定位方式:

  1. 测程法/航位推算法
  2. 基于外部传感器定位(灯塔/地标)
  3. 基于概率地图的定位

5.2 定位的三大挑战#

(1) 传感器噪声#

  • 受环境影响(表面、照明…)
  • 受测量原理影响(超声波相互干扰)
  • 解决: 多次读取、时间融合、多传感器融合

(2) 传感器混叠 (Aliasing)#

  • 多个环境状态 → 同一传感器读数(多对一映射
  • 单次测量不足以定位 → 需要数据序列
  • 随时间的滤波方法恢复足够信息

(3) 执行器噪声 — 里程表误差#

  • 里程表: 车轮编码器积分 → 路程
  • 航位推算法: 编码器 + 航向传感器(陀螺仪)
  • 优点: 直观简单
  • 缺点: 误差累积 → 无界

5.3 里程表误差分类#

按性质分#

类型特点处理
确定性(系统)可建模标定消除
非确定性(随机)不可预测误差模型描述

按表现分#

误差类型来源后果
路程误差轮子移动总和误差距离不准
转动误差差动轮移动之差转角不准
漂移误差轮子误差差异角度偏差 → 位置误差放大

长时间运行后,转动和漂移误差比路程误差严重得多! 移动 dd 米: y误差dsin(Δθ)y_{\text{误差}} \approx d \cdot \sin(\Delta\theta),角度误差 Δθ\Delta\theta 增大会被放大。

主要误差源#

  • 积分中有限分辨率
  • 轮子不正确装配(确定性)
  • 轮子直径不等(确定性)
  • 轮子触地点变化
  • 不同地面接触(打滑、不平坦)

5.4 导航方式对比#

基于行为的导航#

  • 取消地图、定位、路径规划
  • 直接设计行为: 跟踪左墙 + 房间检测器
  • 优点: 小环境简单
  • 缺点: 难推广、多行为融合不稳定

基于模型的导航#

  • 包括定位 + 认知两个模块
  • 根据传感器 + 地图更新位置信任度
  • 优点: 位置概念清晰、人机可交流
  • 缺点: 依赖地图准确性

5.5 信任度表示 ⭐核心#

两种基本方式#

单假设信任度多假设信任度
含义机器人假定唯一位置描述位置的不确定度
表示一个位姿估计一组可能位置的概率分布
发散时失败!收敛到另一单元
存储要求适中

四种表示组合#

地图类型假设数特点
连续地图 + 单假设唯一位置精度高,发散即失败
连续地图 + 多假设多个可能位置
离散栅格 + 概率每个单元有概率多假设,计算量大
离散拓扑 + 概率节点概率分布处理能力要求高

5.6 地图表示方法#

类型说明特点
连续度量x,y,θx, y, \theta精确
离散度量度量栅格分辨率 = 精度上限
离散拓扑节点 + 连通性需识别节点

单元分解#

方法特点
精确单元分解多边形障碍物,自由空间内位置无关紧要
固定单元分解窄通道可能消失
自适应单元分解平衡精度与计算量

5.7 概率性基于地图的定位 ⭐#

两步更新机制#

步骤输入效果
动作更新 (ACT)编码器测量 oto_t→ 增加不确定性
感知更新 (SEE)外感受传感器输入 iti_t→ 降低不确定性

五步骤过程#

  1. 里程表法预测位置
  2. 机载传感器获得观测
  3. 基于预测 + 地图做测量预测
  4. 观测与地图匹配
  5. 估计 → 位置更新(后验位置)

5.8 马尔可夫定位 ⭐核心#

基本思想#

  • 用显式离散形式表示状态空间中所有位置的概率
  • 每次更新整个空间中每个状态的概率(全分布更新)
  • 可从任意未知点出发定位
  • 可恢复不明确的状态

动作模型 ACT#

从上时刻信任状态 + 控制 oto_t → 新信任状态:

pt(lot)=lp(ll,ot)pt1(l)p_t(l \mid o_t) = \sum_{l'} p(l \mid l', o_t) \cdot p_{t-1}(l')
  • p(ll,ot)p(l \mid l', o_t): 当 t1t-1 时刻在 ll',控制为 oto_t 时,tt 时刻在 ll 的概率
  • 依赖上次状态概率分布和控制 → 得到当前状态的验前概率

感知模型 SEE (贝叶斯更新)#

pt(l)=pt(lot,i)=p(il)pt(lot)p(i)p_t(l) = p_t(l \mid o_t, i) = \frac{p(i \mid l) \cdot p_t(l \mid o_t)}{p(i)}
  • p(il)p(i \mid l): 在位置 ll 时得到测量 ii 的概率(查地图)
  • p(i)p(i): 归一化因子

马尔可夫假设#

更新仅依赖前一时刻的状态及最近的动作和感知。

完整信任状态更新#

pt(l)=p(il)lp(ll,ot)pt1(l)p_t(l) = p(i \mid l) \cdot \sum_{l'} p(l \mid l', o_t) \cdot p_{t-1}(l')

关键认知#

  • 动作更新扩散概率(增加不确定)
  • 感知更新集中概率(降低不确定)
  • 每次更新所有位置的概率

5.9 马尔可夫 vs 卡尔曼滤波 ⭐#

马尔可夫定位卡尔曼滤波定位
起点任意未知点已知起始位置
失败恢复可恢复不确定性大时失败
表示方式全状态空间离散概率分布高斯分布(均值 + 协方差)
计算量(需离散化栅格)小(闭合形式)
精度受离散分辨率限制固有高精度

卡尔曼滤波核心思想#

加权最小二乘融合多次估计:

q^=σ22q1+σ12q2σ12+σ22\hat{q} = \frac{\sigma_2^2 \cdot q_1 + \sigma_1^2 \cdot q_2}{\sigma_1^2 + \sigma_2^2}

融合后方差比单独方差更小。

马尔可夫定位降复杂度#

  • 精细栅格 → 巨大状态空间
  • 随机采样 / 粒子滤波: 只表示有代表性的子集(如 10%)
  • 采样被特色加权,峰值周围更多采样
  • 风险: 必须确保跟踪小概率位置,否则机器人会迷路

考前速记#

要点答案
ACT 做什么根据动作更新信任度,增加不确定性
SEE 做什么根据感知更新信任度,降低不确定性
马尔可夫假设仅依赖前一时刻状态 + 最近动作和感知
ACT 公式pt(lot)=lp(ll)pt1(l)p_t(l \mid o_t) = \sum_{l'} p(l \mid l') \cdot p_{t-1}(l')
SEE 公式pt(l)p(il)pt(lot)p_t(l) \propto p(i \mid l) \cdot p_t(l \mid o_t)
马尔可夫 vs 卡尔曼马尔可夫可从任意点出发;卡尔曼不确定性大时失败
漂移误差最严重,角度偏差导致位置偏差放大
传感器混叠多环境状态 → 同一读数,需时间序列滤波
第5章 移动机器人的定位
https://zerohour.fun/blog/mobile_robotics/ch5-localization
Author ZeroHour
Published at 2026年5月13日
Comment seems to stuck. Try to refresh?✨