2. 概率论基础回顾

各位同学,咱们今天聊点实在的。做机器人状态估计,说白了就是在跟不确定性打交道。你传感器读到的数据准不准?模型算出来的位置偏没偏?这些问题的答案,全得靠概率论来兜底。

我当年刚入行时,觉得概率论就是一堆公式,背下来就行。直到有一次做室内定位,卡尔曼滤波怎么调都不收敛,最后发现是协方差矩阵初始化出了问题。嗯,从那以后我才真正明白——概率论不是数学题,是工程直觉。

2.1 随机变量:不确定性的数学化身

先问个问题:你拿激光雷达测距,同一个位置测100次,结果一样吗?

答案显然是否定的。噪声、反射、温度漂移……这些因素让每次测量都不同。这时候,我们就用随机变量来描述这个测量值。

  • 离散随机变量:取值是有限的,比如机器人检测到障碍物的数量(0个、1个、2个……)。
  • 连续随机变量:取值是连续的,比如IMU输出的加速度值(3.14159……)。

我个人习惯把随机变量想象成一个「黑盒子」——你永远不知道下一次它会吐出什么数,但你知道它吐数的规律。这个规律,就是概率分布。

核心要点:在状态估计中,机器人的位置、速度、姿态都是随机变量。我们不是在求一个「精确值」,而是在求一个「最可能的分布」。

2.2 概率密度函数:分布的「形状」

对于连续随机变量,我们没法说「它等于x的概率是多少」,因为连续空间里单点的概率是0。这时候,概率密度函数(PDF)就派上用场了。

PDF的物理意义很简单:曲线越高,说明这个值出现的可能性越大。曲线下的面积,就是概率。

举个例子:假设机器人位置x的PDF是f(x),那么它落在区间[a, b]的概率就是:

P(a ≤ x ≤ b) = ∫ₐᵇ f(x) dx

我在做多传感器融合时,经常要判断两个传感器的测量是否一致。说白了,就是看它们的PDF重叠面积有多大。重叠越多,说明两个传感器「意见一致」。

避坑指南:我曾经犯过一个低级错误——把PDF的值当概率用。记住,PDF可以大于1,但概率永远在0到1之间。别搞混了。

2.3 贝叶斯法则:用新数据更新旧认知

贝叶斯法则是整个状态估计的灵魂。它的核心思想就一句话:先验 + 似然 = 后验。

公式长这样:

P(x|z) = P(z|x) * P(x) / P(z)

其中:

  • P(x):先验概率——在测量之前,你对机器人位置的猜测。
  • P(z|x):似然——如果机器人真在x位置,你看到测量值z的可能性。
  • P(x|z):后验概率——看到测量值z之后,你对机器人位置的更新认知。

你想想看,这不就是工程师的日常吗?你有个初始估计(先验),然后拿到新数据(似然),最后得到一个更靠谱的估计(后验)。

我记得有一次做视觉SLAM,相机突然丢帧,后验概率直接发散。后来发现是似然模型没建好——把噪声方差设得太小了,导致算法过度信任错误数据。嗯,贝叶斯法则虽然强大,但前提是你的模型得靠谱。

警告:贝叶斯更新是递归的——今天的后验,就是明天的先验。如果初始先验给错了,后面会越偏越远。我建议你至少用两种不同的初始值跑一遍,看看结果是否一致。

2.4 高斯分布:状态估计的「万能钥匙」

在所有概率分布中,高斯分布(也叫正态分布)是最常用的,没有之一。为什么?

  • 数学性质好:高斯分布经过线性变换后还是高斯分布。
  • 中心极限定理:很多独立随机变量的和,趋近于高斯分布。
  • 计算简单:只需要均值和协方差两个参数。

一维高斯分布的PDF公式:

f(x) = (1 / √(2πσ²)) * exp(-(x - μ)² / (2σ²))

其中μ是均值,σ²是方差。μ决定了分布的中心,σ²决定了分布的「胖瘦」。

多维高斯分布(比如同时估计位置和速度)的公式稍微复杂点:

f(x) = (1 / √((2π)ᵈ|Σ|)) * exp(-0.5 * (x - μ)ᵀ Σ⁻¹ (x - μ))

这里Σ是协方差矩阵,它描述了各个维度之间的相关性。

实战经验:我在做GPS+IMU融合时,协方差矩阵的调参花了两周。协方差设太大,滤波收敛慢;设太小,滤波发散。后来我总结了一个经验:先用离线数据跑一遍,看看残差的统计特性,再反推协方差。这比瞎猜靠谱多了。

2.5 高斯分布的重要性质

做状态估计,这几个性质你必须烂熟于心:

  1. 线性变换不变性:如果x ~ N(μ, Σ),那么y = Ax + b ~ N(Aμ + b, AΣAᵀ)。卡尔曼滤波的预测步就靠这个。
  2. 边缘化:从联合高斯分布中提取部分变量,结果还是高斯分布。说白了,你只关心位置,不关心速度,直接把速度那部分「扔掉」就行。
  3. 条件分布:已知部分变量的值,求其他变量的分布。这对应卡尔曼滤波的更新步。
  4. 乘积仍是高斯:两个高斯分布的乘积(归一化后)还是高斯分布。这是贝叶斯更新能闭环的关键。

你想想看,卡尔曼滤波的五个公式,本质上就是在反复利用这些性质。所以,搞懂了高斯分布,你就搞懂了半个状态估计。

小技巧:我习惯在代码里用信息矩阵(协方差矩阵的逆)来更新。数值稳定性更好,尤其当协方差矩阵接近奇异时。你可以试试。

2.6 本章知识体系

下面这张图,是我自己梳理的本章知识脉络。你把它存下来,以后复习时看一眼就全想起来了。

第2章:概率论基础回顾 - 知识体系 概率论基础 随机变量 概率密度函数 贝叶斯法则 高斯分布及其性质 离散/连续 概率分布 曲线下面积=概率 先验×似然=后验 线性变换不变 边缘化 条件分布 乘积仍是高斯 应用:卡尔曼滤波、多传感器融合

这张图把本章的核心逻辑串起来了。你从「概率论基础」出发,先理解随机变量是什么,再学会用PDF描述不确定性,然后用贝叶斯法则更新认知,最后用高斯分布这个「万能工具」落地到工程中。

说白了,整个状态估计的底层逻辑,就是这张图。你把它刻在脑子里,后面学卡尔曼滤波、粒子滤波、图优化,都会轻松很多。


好了,这一章就到这里。概率论这东西,光看不行,得动手。我建议你找一段真实传感器数据,试着用高斯分布拟合一下,看看残差是不是真的服从高斯分布。嗯,你会发现,现实世界比书本复杂得多——但也正因为如此,才有趣。