4. IMU传感器原理

各位同学,欢迎来到状态估计的基础章节。说实话,这部分内容看起来像是数学课,但它是整个传感器融合的“内功心法”。我在做第一个多传感器融合项目时,就是因为没吃透这些基础,结果数据融合出来全是噪声,定位轨迹像喝醉了酒。从那以后,我养成了一个习惯:任何融合算法,先问自己一句——它的概率模型是什么?

这一章,我们就把这些“内功”捋一遍。别怕,我会用项目里的实际例子帮你理解。

4.1 概率论:我们为什么要“赌”状态?

传感器数据天生带噪声。你测一个距离,10次有10个不同的值。那真实值到底是多少?

概率论就是用来描述这种“不确定性”的数学工具。说白了,我们不是在求一个确定的值,而是在求一个概率分布——真实值最可能落在哪里。

4.1.1 条件概率与全概率公式

这两个公式是贝叶斯滤波的基石。我建议你记牢它们,因为后面几乎每天都在用。

  • 条件概率:P(A|B) = P(A∩B) / P(B)。意思是“已知B发生了,A发生的概率”。
  • 全概率公式:P(B) = Σ P(B|A_i) * P(A_i)。意思是“B发生的总概率,等于所有可能原因下B发生的概率之和”。
我的经验: 在激光雷达和毫米波雷达融合时,条件概率用来表达“如果目标真实存在,雷达检测到它的概率”。这个值直接影响你最终是否相信这个观测。

4.1.2 独立性与协方差

两个传感器如果互相独立,它们的联合概率就是各自概率的乘积。但现实中,很多传感器是相关的——比如GPS和IMU,它们都受温度影响。这时候就要用协方差来描述这种相关性。

协方差矩阵是卡尔曼滤波里的核心参数。我见过不少新手直接把协方差矩阵设成对角阵(假设所有变量独立),结果融合效果很差。嗯,这里要注意:实际系统中,状态变量之间几乎总是相关的。

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

高斯分布,也叫正态分布,是传感器建模中最常用的分布。为什么?因为中心极限定理告诉我们:大量独立随机变量的和,趋近于高斯分布。传感器噪声恰好符合这个条件。

高斯分布有两个参数:均值 μ 和方差 σ²。均值是“最可能的值”,方差是“不确定度”。

核心公式:

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

在多维情况下,变成多元高斯分布:

p(x) = (1 / √((2π)^k |Σ|)) * exp(-0.5 * (x - μ)^T Σ^{-1} (x - μ))

其中 Σ 是协方差矩阵,|Σ| 是它的行列式。

4.2.1 高斯分布的两个重要性质

  1. 线性变换后仍是高斯分布:如果 x ~ N(μ, Σ),那么 y = Ax + b ~ N(Aμ + b, AΣA^T)。这个性质是卡尔曼滤波能解析求解的关键。
  2. 条件分布和边缘分布也是高斯分布:这意味着你可以从联合高斯分布中,轻松提取出某个子集的条件分布。我在做视觉SLAM时,经常用这个性质来“边缘化”掉路标点,只保留相机位姿。
避坑指南: 我曾经在项目中直接用高斯分布建模IMU的零偏,结果发现实际数据有长尾效应(重尾分布)。后来改用学生t分布才解决问题。记住:高斯分布不是万能的,但它是最简单的起点。

4.3 贝叶斯滤波:状态估计的“灵魂”

贝叶斯滤波是所有递归状态估计方法(卡尔曼滤波、粒子滤波等)的底层框架。它的核心思想很简单:用先验知识 + 当前观测 = 后验估计。

公式长这样:

P(x_k | z_{1:k}) = [P(z_k | x_k) * P(x_k | z_{1:k-1})] / P(z_k | z_{1:k-1})

翻译成人话:

  • 先验 P(x_k | z_{1:k-1}):根据之前所有观测,预测当前状态。
  • 似然 P(z_k | x_k):如果状态是x_k,观测到z_k的可能性。
  • 后验 P(x_k | z_{1:k}):结合观测后,对状态的修正。

贝叶斯滤波分两步:预测和更新。预测用运动模型,更新用观测模型。卡尔曼滤波就是在线性高斯假设下,对这两步的解析解。

我的习惯: 在设计任何融合算法前,我都会先画出贝叶斯滤波的框图,标清楚“预测步用什么模型”、“更新步用什么观测”。这个习惯帮我避免了很多逻辑混乱。

4.4 最大似然估计与最大后验估计

这两个概念经常被混淆。我简单说说它们的区别。

4.4.1 最大似然估计

MLE的思想是:找一组参数,使得当前观测数据出现的概率最大。

公式:θ_MLE = argmax P(z | θ)

它只依赖观测数据,不依赖先验。在数据量足够大时,MLE是渐近无偏的。

举个例子:你测了10次距离,假设噪声是高斯分布,MLE给出的均值就是这10次测量的算术平均。

4.4.2 最大后验估计

MAP的思想是:找一组参数,使得在给定观测下,参数的后验概率最大。

公式:θ_MAP = argmax P(θ | z) = argmax P(z | θ) * P(θ)

它结合了似然和先验。当先验是均匀分布时,MAP退化为MLE。

我在做GPS/IMU融合时,IMU的零偏先验通常来自出厂标定。这个先验信息在MAP框架下可以自然地融入估计过程,让零偏估计更稳定。

对比项 MLE MAP
依赖先验 否 是
数据量少时 容易过拟合 更鲁棒
计算复杂度 较低 略高(需乘先验)
典型应用 传感器标定 实时状态估计
避坑指南: 我曾经在标定IMU加速度计时,直接用MLE估计零偏,结果因为数据量不够大,估计值漂移严重。后来改用MAP,加上出厂标定的先验,结果稳定多了。所以,当你的先验信息可靠时,别犹豫,用MAP。

4.5 本章知识体系总览

下面这张图,把本章的核心概念串起来了。你可以把它当作一个“思维导图”,随时回来对照。

状态估计基础 - 知识体系 状态估计基础 概率论回顾 高斯分布 贝叶斯滤波 MLE / MAP 条件概率 全概率公式 均值/方差 线性变换 预测步 更新步 仅依赖观测 结合先验 核心逻辑:概率论 → 高斯分布(建模) → 贝叶斯滤波(框架) → MLE/MAP(求解方法) 所有传感器融合算法,本质上都是在这个框架下的具体实现

这张图里,从上到下是一个递进关系。概率论是语言,高斯分布是工具,贝叶斯滤波是框架,MLE/MAP是求解方法。你想想看,卡尔曼滤波、粒子滤波、甚至深度学习里的变分推断,都能在这个框架里找到位置。