4. 状态估计基础:概率论回顾与马尔可夫假设

各位同学,今天我们来聊聊状态估计的数学基础。说实话,这部分内容看起来有点枯燥,但它是整个目标跟踪系统的“地基”。我当年刚入行时,觉得这些概率公式没啥用,直到在实车上调试滤波器,被噪声折磨得死去活来……嗯,从那以后,我再也不敢轻视这些基础了。

4.1 高斯分布:为什么它无处不在?

先问大家一个问题:为什么机器人领域到处都能看到高斯分布?

说白了,高斯分布(也叫正态分布)描述的是自然界中最常见的一种现象——误差。你想想看,传感器测量一个距离,它不会每次都精确到毫米,而是围绕真实值上下波动。这种波动,用高斯分布来建模最合适。

高斯分布的概率密度函数长这样:

p(x) = (1 / sqrt(2πσ²)) * exp(-(x - μ)² / (2σ²))

其中:

  • μ 是均值,代表最可能的值
  • σ² 是方差,代表不确定性的大小
  • σ 是标准差,σ越大,曲线越“胖”,说明越不确定

核心要点:高斯分布有两个关键性质,在状态估计中极其有用:

  • 线性变换后仍是高斯分布——如果 x 服从高斯分布,那么 y = Ax + b 也服从高斯分布
  • 两个高斯分布相乘,结果还是高斯分布——这就是贝叶斯滤波能闭环的原因

我在项目中遇到过一个问题:用激光雷达测距时,远距离的测量噪声明显比近距离大。这时候如果还用固定方差的高斯模型,估计结果就会偏差很大。后来我改用距离相关的方差模型,效果好了不少。这个坑,大家以后可能会遇到。

4.2 贝叶斯法则:用新信息更新旧信念

贝叶斯法则是状态估计的灵魂。它的公式很简单:

P(A|B) = P(B|A) * P(A) / P(B)

但它的含义很深。我来拆解一下:

  • P(A) —— 先验概率。在拿到新数据之前,你对状态 A 的“信念”
  • P(B|A) —— 似然。如果状态是 A,那么观测到数据 B 的可能性有多大
  • P(A|B) —— 后验概率。看到数据 B 之后,你对状态 A 的更新信念

说白了,贝叶斯法则就是一套“学习机制”:你有一个初始猜测(先验),然后看到新证据(观测),最后得到一个更靠谱的猜测(后验)。

我的经验:在自动驾驶中,贝叶斯法则最常见的应用就是“预测-更新”循环。预测阶段用运动模型得到先验,更新阶段用传感器观测修正后验。卡尔曼滤波器就是这套思路的完美体现。

4.3 状态空间模型:把问题装进数学框架

状态空间模型是描述动态系统的标准工具。它由两个方程组成:

状态方程:x_k = f(x_{k-1}, u_k) + w_k
观测方程:z_k = h(x_k) + v_k

其中:

  • x_k —— k 时刻的状态(位置、速度、朝向等)
  • u_k —— 控制输入(油门、转向角等)
  • w_k —— 过程噪声(模型的不确定性)
  • z_k —— 观测值(传感器读数)
  • v_k —— 观测噪声(传感器的误差)

我习惯把状态空间模型想象成一个“黑盒子”:你往里面扔进上一时刻的状态和控制量,它吐出当前时刻的状态;同时,你拿这个状态去“预测”传感器会看到什么,然后和实际读数对比,修正状态。

注意:过程噪声 w_k 和观测噪声 v_k 的协方差矩阵,是滤波器调参的关键。我曾经因为把过程噪声设得太小,导致滤波器“过于自信”,在急转弯时完全跟不上真实轨迹。调参这件事,没有捷径,只能靠经验和实验。

4.4 马尔可夫假设:简化世界的利器

马尔可夫假设是状态估计中最重要的简化假设。它说:

“给定当前状态,未来与过去独立。”

翻译成人话就是:当前状态已经包含了所有历史信息,不需要再回头看过去的数据。用公式表达:

P(x_k | x_{k-1}, x_{k-2}, ..., x_0) = P(x_k | x_{k-1})

这个假设为什么重要?因为它让状态估计问题从“处理整个历史序列”变成了“只处理相邻时刻”。计算量从指数级降到了线性级,实时系统才能跑得动。

实际含义:在目标跟踪中,马尔可夫假设意味着:只要我知道目标当前的位置和速度,我就能预测它下一秒的位置,而不需要知道它三秒前在哪儿。这大大简化了滤波器的设计。

当然,这个假设也有局限性。比如目标突然改变运动模式(急刹车、急转弯),马尔可夫假设就会失效。这时候就需要更复杂的模型,比如交互多模型(IMM)算法。嗯,这个我们后面会讲到。

4.5 知识体系总览

下面这张图总结了本章的核心逻辑:

状态估计基础:知识体系 高斯分布 描述传感器噪声与状态不确定性 线性变换后仍为高斯分布 两个高斯相乘仍为高斯 贝叶斯法则 先验 → 似然 → 后验 用新观测更新旧信念 预测-更新循环的核心 状态空间模型 状态方程:x_k = f(x_{k-1}, u_k) + w_k 观测方程:z_k = h(x_k) + v_k 过程噪声 + 观测噪声 马尔可夫假设 当前状态包含所有历史信息 P(x_k | x_{k-1}, ..., x_0) = P(x_k | x_{k-1}) 将复杂度从指数降到线性 提供 噪声模型 实现框架 噪声建模 简化 计算 四者结合 → 卡尔曼滤波、粒子滤波等状态估计算法

4.6 小结与避坑指南

这一章的内容,说白了就是四个概念:高斯分布描述不确定性,贝叶斯法则提供更新机制,状态空间模型搭起框架,马尔可夫假设简化计算。它们是所有状态估计算法的共同基础。

我曾经踩过的坑:

  • 把过程噪声和观测噪声的协方差矩阵设成对角阵,忽略了不同维度之间的相关性——结果滤波器在某些场景下表现异常
  • 盲目相信马尔可夫假设,在目标频繁切换运动模式时没有及时调整模型——导致跟踪延迟严重
  • 高斯分布假设不成立时(比如多模态分布),还用标准卡尔曼滤波——结果估计值在两个模态之间飘忽不定

记住一句话:模型都是错的,但有些是有用的。理解这些假设的适用条件,比死记硬背公式重要得多。

好,这一章就到这里。下一章我们开始实战——用卡尔曼滤波器做目标跟踪。

可可精品资料库