加速度计像一个"长期记忆者"——慢慢变化的真实角度它记得很准,但容易被短期振动干扰;陀螺仪像一个"短期反应者"——快速运动它跟得很紧,但时间长了就会"忘记"起始位置(漂移)。融合就是让两者互相弥补。
深入理解加速度计与陀螺仪的信号特性,掌握互补滤波与卡尔曼滤波的核心原理
在无人机飞行控制中,精确的姿态估计(俯仰角 Pitch、横滚角 Roll、偏航角 Yaw)是实现稳定飞行的基础。单一传感器都存在固有缺陷,因此需要将多个传感器的数据进行融合,取长补短。
基于 MEMS 技术,测量微小质量块在各轴方向上受到的惯性力(包括重力)。静止时测量重力加速度分量,从而计算出倾斜角度。
长期稳定、无累积漂移,能提供绝对角度参考。
对振动和线性加速度非常敏感,短期噪声大,动态响应慢。
基于科里奥利效应,测量角速度(°/s)。通过对角速度进行积分可以得到角度变化量。
响应迅速、短期精度高,不受外力干扰。
积分累积误差(漂移),长期不可靠,存在零偏(bias)。
这两个传感器的噪声特性恰好在频域上互补——这是数据融合的理论基础:
加速度计像一个"长期记忆者"——慢慢变化的真实角度它记得很准,但容易被短期振动干扰;陀螺仪像一个"短期反应者"——快速运动它跟得很紧,但时间长了就会"忘记"起始位置(漂移)。融合就是让两者互相弥补。
下面的仿真展示了真实角度信号、加速度计测量值和陀螺仪积分值。调节参数观察不同噪声条件下的传感器表现。
注意加速度计信号(蓝色)围绕真实值上下剧烈抖动但不偏离——这是高频噪声;陀螺仪(粉色)短期平滑但逐渐偏离真实值——这是低频漂移。增大漂移率参数可以看到更明显的漂移效果。
加速度计的有用信息(重力方向 → 真实倾角)变化缓慢,属于低频分量。而振动、电机转动、空气扰动等引入的噪声主要是高频分量。低通滤波器可以保留低频有用信号,滤除高频噪声。
其中 α 是滤波系数,取值范围 [0, 1]。α 越小,滤波越强(越平滑),但延迟越大。
可以把低通滤波器想象成一个"惰性系统"——它不愿意跟随快速变化,只愿意缓慢地跟踪信号。α越小,它就越"懒",越不容易被高频噪声带偏,但也越跟不上真实的快速变化。
① 将 α 从 0.01 逐步调到 1.0,观察滤波曲线如何从极度平滑变为完全跟随原始信号;② 找到一个使 RMSE 最小的 α 值——这就是噪声抑制与延迟之间的最优平衡点。
低通滤波器的频率响应展示了不同频率分量的衰减程度。截止频率以下的信号基本通过,以上的信号被逐步抑制。
陀螺仪积分后的角度信号在短期内非常准确(高频分量可靠),但会累积低频漂移误差。高通滤波器可以保留高频有用信号,滤除低频漂移。
高通滤波器是低通滤波器的"镜像"——它让快速变化通过,阻止缓慢漂移。
高通滤波器像一个"只关注变化"的观察者——它只对信号的快速变化感兴趣,对缓慢的偏移视而不见。这恰好能消除陀螺仪的积分漂移。
注意高通滤波能有效消除漂移,但会丢失直流分量(绝对角度参考)。滤波后的信号围绕零值波动而非围绕真实角度——这就是为什么单独使用高通滤波的陀螺仪无法给出准确的绝对角度。
既然加速度计在低频段可靠、陀螺仪在高频段可靠,我们能不能用一个低通滤波器处理加速度计数据,用一个高通滤波器处理陀螺仪数据,然后把两者加在一起?答案是:可以!这就是互补滤波。
每个采样周期,从加速度计获取当前加速度值 (ax, ay, az),从陀螺仪获取当前角速度 ω(t)。加速度计数据通过 atan2 计算出角度 θacc。
调节 α 值观察融合效果。α 越大,越信任加速度计(抗漂移好,但噪声大);α 越小,越信任陀螺仪(平滑好,但漂移大)。
卡尔曼滤波是一种最优状态估计器,它通过以下两步迭代过程来融合传感器数据:
利用系统动力学模型(陀螺仪数据)预测下一时刻的状态和不确定性。
其中 Q 是过程噪声协方差,表示对模型预测的不确定程度。Q 越大,表示越不信任陀螺仪的预测。
利用观测数据(加速度计)修正预测值,根据噪声特性自动计算最优权重(卡尔曼增益)。
其中 R 是测量噪声协方差,表示加速度计测量的不确定程度。R 越大,越不信任加速度计。
卡尔曼滤波可以看作"自适应的互补滤波"——互补滤波的 α 是手动固定的,而卡尔曼滤波的增益 K 是根据噪声统计特性自动最优计算的。当噪声参数恒定时,卡尔曼增益会收敛到一个常值,此时它等价于一个特定 α 值的互补滤波。
Q 和 R 是卡尔曼滤波最关键的调参。理解它们的物理含义是掌握卡尔曼滤波的关键。
① 固定 R,增大 Q:观察卡尔曼增益升高,滤波器更信任测量值(加速度计),结果更跟随加速度计但更noisy。② 固定 Q,增大 R:增益降低,更信任预测(陀螺仪),结果更平滑但响应慢。③ 观察增益收敛曲线——卡尔曼增益从初始值逐步收敛到稳态值。
在相同的噪声条件下,对比原始传感器数据、互补滤波和卡尔曼滤波的效果。
| 特性 | 互补滤波 | 卡尔曼滤波 |
|---|---|---|
| 计算复杂度 | 极低(一行公式) | 较高(矩阵运算) |
| 参数调节 | 1 个参数(α) | 2 个参数(Q, R) |
| 最优性 | 非最优,但实用 | 在高斯噪声下最优 |
| 自适应性 | 固定权重 | 增益自动收敛 |
| 适用场景 | 嵌入式、资源受限 | 精度要求高的系统 |
| 实现难度 | ⭐ 简单 | ⭐⭐⭐ 中等 |
| 实际无人机应用 | 入门级飞控 | 专业级飞控(PX4/ArduPilot) |
① 加速度计 = 低通特性(低频可靠,高频噪声大);陀螺仪 = 高通特性(高频可靠,低频漂移)。
② 互补滤波 = 低通(加速度计)+ 高通(陀螺仪),简单高效。
③ 卡尔曼滤波 = 最优版的互补滤波,能自动计算最佳融合权重。
④ 在噪声为高斯分布且参数已知的理想条件下,卡尔曼滤波是理论最优的;在工程实践中,调参良好的互补滤波往往已经足够好。