3. 传感器与状态估计:无人机的“感官”与“大脑”是怎样炼成的
各位同学,欢迎来到第三讲。今天我们要聊的,是无人机最核心的“内功”——传感器与状态估计。
你想想看,一架无人机在天上飞,它怎么知道自己飞了多高?往哪个方向偏了?速度是快是慢?它又没有眼睛,全靠身上那一堆传感器来感知世界。但传感器本身会“撒谎”,有噪声、有漂移。这时候就需要一个“大脑”来把这些乱七八糟的数据揉在一起,猜出最接近真实的状态。这个“大脑”,就是状态估计算法。
我个人习惯把这一章看作是无人机飞控的“地基”。地基不牢,后面什么高级飞行模式都是空中楼阁。好,我们一个一个来看。
3.1 IMU:惯性测量单元——无人机的“前庭系统”
IMU(Inertial Measurement Unit)是无人机最基础的传感器,它由三部分组成:加速度计、陀螺仪,以及磁力计。你可以把它想象成我们内耳里的前庭系统,负责感知身体的加速度和角速度。
3.1.1 加速度计:感知“重力”与“运动”
加速度计测量的是物体受到的比力(Specific Force),说白了就是除了重力以外的加速度。它内部有一个微小的质量块,当无人机加速或倾斜时,质量块会移动,通过电容或压电效应转换成电信号。
- 原理:基于牛顿第二定律 F=ma。质量块位移 → 电容变化 → 电压输出。
- 关键特性:它测的是“重力 + 运动加速度”的矢量和。所以当无人机悬停时,加速度计读数是 1g(9.8 m/s²),方向竖直向下。
- 我的经验:我在项目中遇到过一个问题,无人机在剧烈震动下加速度计数据直接“爆表”。后来发现是减震海绵选得太硬了。嗯,这里要注意,加速度计对高频振动非常敏感,安装时一定要做好减震。
3.1.2 陀螺仪:感知“旋转”与“角速度”
陀螺仪测量的是物体绕三个轴的角速度。它基于科里奥利效应(Coriolis Effect)——一个振动的质量块在旋转时会受到一个垂直于振动方向和旋转轴方向的力。
- 原理:MEMS 陀螺仪内部有一个音叉结构,持续振动。当无人机旋转时,科里奥利力使音叉产生位移,通过电容检测得到角速度。
- 关键特性:陀螺仪有零偏(Bias),即使静止不动,输出也不是 0。这个零偏会随时间缓慢变化,叫“零偏稳定性”。
- 避坑指南:我曾经在调试一架六旋翼时,发现飞机总是缓慢自旋。查了半天,原来是陀螺仪零偏没有在起飞前校准。所以,每次上电后做一次静态校准,是飞控的基本素养。
3.1.3 磁力计:感知“方向”——无人机的“指南针”
磁力计测量的是地球磁场的方向,用来确定无人机的航向(Yaw)。它本质上就是一个三轴电子罗盘。
- 原理:基于霍尔效应或磁阻效应。当外部磁场变化时,传感器内部的电阻或电压会改变。
- 痛点:磁力计非常脆弱。电机电流、电调 PWM 信号、甚至附近的高压线都会产生强磁场干扰。我见过一个案例,无人机在高压塔附近飞行,磁力计直接偏了 30 度,导致飞机失控。
- 我的建议:磁力计一定要安装在远离大电流线路和电机的位置。而且,每次起飞前最好做一次“罗盘校准”——让无人机水平旋转 360 度,再俯仰旋转 360 度。
3.2 GPS 与 RTK:无人机的“全球定位系统”
GPS(全球定位系统)是无人机室外飞行的“眼睛”。它告诉你飞机在哪儿,但精度有限。
3.2.1 普通 GPS:精度 1-3 米
普通 GPS 通过接收至少 4 颗卫星的信号,利用三角定位原理算出位置。它的误差来源包括:卫星钟差、电离层延迟、多路径效应等。
- 精度:水平 1-3 米,垂直 3-5 米。
- 更新率:通常 5-10 Hz。
- 局限:在城市峡谷、树林、桥下等场景,信号会变差甚至丢失。
3.2.2 RTK:厘米级定位
RTK(实时动态差分定位)是 GPS 的“增强版”。它需要一个地面基准站,基准站知道自己的精确坐标,然后通过无线电把差分修正数据发给无人机。无人机用这个修正数据来消除卫星信号中的公共误差。
| 特性 | 普通 GPS | RTK |
|---|---|---|
| 水平精度 | 1-3 米 | 1-3 厘米 |
| 垂直精度 | 3-5 米 | 3-5 厘米 |
| 收敛时间 | 即时 | 10-60 秒 |
| 成本 | 低(几十元) | 高(数千元) |
| 适用场景 | 航拍、巡检 | 测绘、精准农业、编队 |
3.3 气压计与超声波:测量高度
高度测量是无人机飞行的关键。气压计和超声波是两种最常见的方案。
3.3.1 气压计:靠“气压”算高度
气压计测量大气压强。根据国际标准大气模型,气压随高度增加而指数下降。通过测量气压,就能反推出高度。
- 优点:无机械部件,轻便,功耗低。
- 缺点:受温度、风速、天气影响大。比如,一阵风吹过,气压变化可能相当于几米的高度误差。
- 我的经验:有一次在室内飞无人机,空调突然启动,气压计读数瞬间跳了 2 米,飞机直接“抽风”了一下。所以,气压计一定要配合其他传感器使用。
3.3.2 超声波:靠“回声”测距
超声波传感器发射 40kHz 的声波,然后测量声波碰到地面反射回来的时间。根据声速(340 m/s)算出距离。
- 优点:精度高(厘米级),不受气压影响。
- 缺点:测量范围有限(通常 0.1-10 米),受地面材质影响(草地吸收声波),受风噪干扰。
- 适用场景:低空悬停、自动降落、避障。
3.4 卡尔曼滤波与数据融合:把“垃圾数据”变成“黄金状态”
好了,现在我们有了一堆传感器:加速度计、陀螺仪、磁力计、GPS、气压计、超声波……每个传感器都有噪声、有漂移、有延迟。怎么把这些乱七八糟的数据整合成一个稳定、准确的状态估计?
答案就是——卡尔曼滤波(Kalman Filter)。
3.4.1 卡尔曼滤波的核心思想
卡尔曼滤波是一种最优估计算法。它把问题分成两步:预测(Predict)和更新(Update)。
- 预测:用陀螺仪和加速度计的数据,根据运动模型,预测下一时刻的状态(位置、速度、姿态)。这一步会引入误差,因为 IMU 有漂移。
- 更新:用 GPS、气压计、磁力计等绝对测量值,来修正预测的误差。这一步会“拉回”漂移。
说白了,卡尔曼滤波就是“相信谁多一点”的问题。如果 IMU 预测很准,就多信预测;如果 GPS 测量很准,就多信测量。这个“相信程度”由卡尔曼增益(Kalman Gain)决定。
3.4.2 一个简化的卡尔曼滤波流程
假设我们要估计无人机的高度。我们用加速度计积分得到高度预测,用气压计测量得到高度观测。
// 伪代码:一维卡尔曼滤波
// 状态:高度 h,速度 v
// 输入:加速度计读数 acc,气压计读数 baro_h
// 1. 预测
h_pred = h + v * dt + 0.5 * acc * dt^2
v_pred = v + acc * dt
P_pred = P + Q // 预测协方差增加(不确定性变大)
// 2. 更新
K = P_pred / (P_pred + R) // 卡尔曼增益
h = h_pred + K * (baro_h - h_pred) // 融合
P = (1 - K) * P_pred // 更新协方差(不确定性变小)
你看,代码很简单,但效果惊人。卡尔曼滤波能有效抑制 IMU 的漂移,同时平滑 GPS 的噪声。
3.4.3 数据融合的架构
在实际飞控中,数据融合通常分两层:
- 姿态融合:用陀螺仪 + 加速度计 + 磁力计,通过互补滤波或卡尔曼滤波,得到 Roll、Pitch、Yaw。
- 位置融合:用 IMU + GPS + 气压计 + 超声波,通过扩展卡尔曼滤波(EKF),得到三维位置和速度。
3.5 本章知识体系:传感器与状态估计全景图
下面这张图,是我自己总结的传感器与状态估计的完整流程。你可以把它当作本章的“思维导图”。
从这张图你可以看到,传感器是“原料”,卡尔曼滤波是“加工厂”,最终输出给飞控的是稳定、可信的状态估计。任何一个环节出问题,无人机都可能“翻车”。
好了,这一章的内容就到这里。传感器与状态估计是无人机飞控的“内功心法”,理解了它,你才能真正理解后面要讲的飞行模式——为什么定高模式需要气压计?为什么定点模式需要 GPS?为什么姿态模式只需要 IMU?答案都在这一章里。