第2章:数学基础回顾:概率论、高斯分布、协方差矩阵

各位同学,欢迎来到第二讲。

说实话,很多做机器人或者做自动驾驶的朋友,一听到「数学基础」四个字就想关页面。我特别理解。当年我刚入行时也觉得,搞工程嘛,调调参数就行了,数学差不多就得了。

结果呢?第一次做多传感器融合,卡尔曼滤波死活发散。我盯着波形图看了三天,最后发现是协方差矩阵初始化出了问题。嗯,从那以后,我再也不敢轻视这些基础了。

这一章,咱们就把概率论、高斯分布、协方差矩阵这几个老朋友请出来,好好聊聊。别怕,我会用最工程化的语言来讲。

2.1 概率论:不确定性才是常态

你想想看,传感器数据有没有绝对准确的?没有。GPS定位误差几米,IMU有零偏,激光雷达有噪点。说白了,我们做融合,就是在跟不确定性打交道。

概率论给了我们一套描述不确定性的语言。核心就两个概念:

  • 概率密度函数(PDF):描述一个随机变量取某个值的可能性有多大。
  • 条件概率:已知一些信息后,对未知量的重新估计。

举个我项目中的例子。有一次做AGV小车定位,轮式里程计每走一米大概漂移2厘米。这个「2厘米」就是不确定性。我们用概率模型来描述它——不是「绝对位置在哪」,而是「位置大概在哪,有多大概率」。这就是概率思维。

我的习惯: 每次拿到一个新传感器,第一件事不是看精度指标,而是看它的噪声分布特性。是高斯分布吗?有偏置吗?这决定了后面用什么滤波器。

2.2 高斯分布:一切美好的起点

为什么卡尔曼滤波这么喜欢高斯分布?

因为高斯分布有一个极其优雅的性质:经过线性变换后,仍然是高斯分布。而且,两个高斯分布的乘积,还是高斯分布。

一维高斯分布大家都很熟悉:

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

其中 μ 是均值,σ² 是方差。均值告诉你「最可能的位置」,方差告诉你「有多不确定」。

我刚开始做滤波时,总觉得方差越小越好。后来发现不是这样。方差太小,滤波器对新观测数据就不敏感了,这叫「过自信」。我曾经在一个无人机项目中,把过程噪声设得太小,结果飞机一转弯,滤波器直接跟不上真实状态,差点炸机。

避坑指南: 高斯分布假设在很多实际场景中并不严格成立。比如GPS多路径效应产生的误差,往往有长尾特性。这时候直接用标准卡尔曼滤波会出问题。我建议先做数据统计分析,看看是否符合高斯假设。

2.3 协方差矩阵:多维世界的「关系网」

一维情况很简单,就一个方差。但到了多维——比如同时估计位置(x, y)和速度(vx, vy)——事情就复杂了。

协方差矩阵就是用来描述多维随机变量之间关系的。它的对角线元素是各个维度的方差,非对角线元素是协方差——描述两个维度之间的相关性。

举个例子:

P = | σ²_x    σ_xy   |
    | σ_yx    σ²_y   |

如果 σ_xy 是正数,说明 x 和 y 正相关——x 大了,y 也倾向于大。这在很多物理系统中很常见,比如位置和速度就是强相关的。

我记得有一次调试一个轮式机器人,协方差矩阵的非对角线元素被我设成了零。结果滤波器完全无法利用位置和速度之间的耦合关系,收敛速度慢得离谱。后来我把它们设成合理的相关值,效果立竿见影。

矩阵元素 含义 典型值(位置-速度)
σ²_x 位置x的不确定性 0.1 m²
σ²_vx 速度vx的不确定性 0.01 (m/s)²
σ_x_vx 位置与速度的协方差 0.03 m·m/s

看到没?位置和速度的协方差不为零,说明它们之间存在物理上的耦合关系。卡尔曼滤波正是利用这种关系,通过速度观测来修正位置估计,反之亦然。

2.4 从理论到代码:协方差矩阵的初始化

理论说完了,咱们来点实际的。在扩展卡尔曼滤波中,协方差矩阵的初始化是个关键步骤。

我个人习惯这样初始化:

// 状态向量: [x, y, vx, vy]
// 初始协方差矩阵
P = | 0.1, 0,   0,    0    |
    | 0,   0.1, 0,    0    |
    | 0,   0,   0.5,  0    |
    | 0,   0,   0,    0.5  |

这里位置的不确定性设得小一些(0.1),速度的不确定性设得大一些(0.5)。为什么?因为初始时刻我们通常对位置有较准确的先验(比如GPS给出的初始位置),但对速度几乎一无所知。

关键点: 协方差矩阵必须是对称正定的。如果你在调试中发现矩阵出现负的特征值,那一定是数值计算出了问题。我曾经因为浮点精度问题遇到过这种情况,解决方案是定期对矩阵做对称化处理。

2.5 小结与下章预告

这一章我们回顾了三个核心概念:

  • 概率论给了我们描述不确定性的框架
  • 高斯分布是卡尔曼滤波的数学基石
  • 协方差矩阵是多维状态估计的「关系网」

下一章,我们将正式进入卡尔曼滤波的核心——预测与更新方程。我会用最直观的方式,把那些矩阵公式拆解成你能理解的东西。

记住一句话:滤波的本质,就是在「相信模型」和「相信观测」之间找到最优平衡。而这个平衡,全靠协方差矩阵来调节。

咱们下章见。