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 知识体系总览
下面这张图总结了本章的核心逻辑:
4.6 小结与避坑指南
这一章的内容,说白了就是四个概念:高斯分布描述不确定性,贝叶斯法则提供更新机制,状态空间模型搭起框架,马尔可夫假设简化计算。它们是所有状态估计算法的共同基础。
我曾经踩过的坑:
- 把过程噪声和观测噪声的协方差矩阵设成对角阵,忽略了不同维度之间的相关性——结果滤波器在某些场景下表现异常
- 盲目相信马尔可夫假设,在目标频繁切换运动模式时没有及时调整模型——导致跟踪延迟严重
- 高斯分布假设不成立时(比如多模态分布),还用标准卡尔曼滤波——结果估计值在两个模态之间飘忽不定
记住一句话:模型都是错的,但有些是有用的。理解这些假设的适用条件,比死记硬背公式重要得多。
好,这一章就到这里。下一章我们开始实战——用卡尔曼滤波器做目标跟踪。