传感器子系统:IMU、磁力计、GPS与气压计
各位同学,今天我们来聊聊飞控系统的“感官”——传感器子系统。说白了,飞控能不能飞稳,全靠这些传感器给的数据准不准。我做了这么多年飞控,见过太多因为传感器选型不当或者数据处理不到位,导致炸机的案例。嗯,咱们一个一个来拆解。
IMU:加速度计与陀螺仪
IMU是飞控最核心的传感器,没有之一。它包含两个关键器件:加速度计和陀螺仪。加速度计测量的是比力,也就是物体受到的惯性力与引力的合力。陀螺仪测量的是角速度,也就是旋转的快慢。
你可能会问:“为什么需要两个?” 我举个例子你就明白了。加速度计在静态时能给出俯仰和横滚角度,但一旦有运动加速度,它就分不清是倾斜还是加速了。陀螺仪能给出角速度,但积分后会有漂移。所以,两者必须融合使用。
核心要点:加速度计提供长期稳定的姿态参考,陀螺仪提供短期高动态的角速度信息。两者通过卡尔曼滤波或互补滤波融合,才能得到可靠的姿态估计。
选型关键参数
我个人习惯,选IMU时主要看这几个参数:
- 量程:加速度计一般选±2g到±16g,陀螺仪选±250°/s到±2000°/s。多旋翼通常选±4g和±500°/s就够用。
- 噪声密度:这个参数决定了数据的干净程度。我建议加速度计噪声密度低于100μg/√Hz,陀螺仪低于0.005°/s/√Hz。
- 零偏稳定性:陀螺仪的零偏稳定性最好低于10°/h,否则长时间飞行姿态会漂移。
- 输出频率:至少1kHz以上,才能满足飞控控制环的需求。
| 参数 | 加速度计 | 陀螺仪 |
|---|---|---|
| 量程 | ±2g ~ ±16g | ±250°/s ~ ±2000°/s |
| 噪声密度 | < 100μg/√Hz | < 0.005°/s/√Hz |
| 零偏稳定性 | — | < 10°/h |
| 输出频率 | ≥ 1kHz | ≥ 1kHz |
避坑指南:我曾经在一个项目中选了某款低成本的IMU,噪声密度标称还行,但实际用起来,加速度计在振动环境下数据直接炸了。后来换了工业级的IMU,问题才解决。所以,别只看数据手册,实际测试才是王道。
磁力计与GPS/RTK定位
磁力计,说白了就是电子罗盘。它测量地球磁场,用来确定航向。但磁力计有个大问题——容易受干扰。电机电流、铁磁材料、甚至地磁异常都会让它跑偏。
GPS大家都熟悉,提供位置和速度。RTK(实时动态差分)技术能把定位精度从米级提升到厘米级。我建议,如果你做的是工业级或测绘级飞控,RTK是必须的。
磁力计校准
磁力计必须做校准,否则航向数据根本不能用。校准的核心是消除硬铁干扰和软铁干扰。硬铁干扰是固定的偏置,软铁干扰是随方向变化的增益误差。
// 磁力计校准示例(简化版)
// 采集多个方向的磁场数据,拟合椭球
// 得到偏移量 offset 和缩放矩阵 scale
for (int i = 0; i < num_samples; i++) {
mag_x_cal = (mag_x_raw - offset_x) * scale_x;
mag_y_cal = (mag_y_raw - offset_y) * scale_y;
mag_z_cal = (mag_z_raw - offset_z) * scale_z;
}
注意:磁力计校准必须在无磁干扰的环境下进行。我曾经在实验室里校准,结果旁边有个铁质文件柜,导致航向偏差了20度。后来拉到空旷的操场重新校准,数据才正常。
GPS与RTK
普通GPS的精度在2-5米,对于多旋翼来说,悬停时会有明显的漂移。RTK通过基站和移动站的差分计算,精度能达到2-5厘米。但RTK也有缺点:需要基站信号,一旦失锁,精度会迅速下降。
我建议的选型思路:
- 消费级:单频GPS + 磁力计,够用但别指望太稳。
- 工业级:双频GPS + 磁力计 + 气压计,精度和可靠性都上来了。
- 测绘级:RTK + 高精度IMU,厘米级定位,但成本也高。
气压计与超声波/激光测距
气压计用来测量高度。原理很简单:气压随高度变化,通过气压值反推高度。但气压计受温度、风速影响很大,尤其是靠近地面时,数据波动非常明显。
超声波和激光测距是近地测距的补充。超声波测距范围一般在0.1-10米,精度厘米级。激光测距(比如TOF传感器)范围更远,精度更高,但成本也更高。
气压计的坑
气压计最怕的是气流扰动。多旋翼的旋翼下洗气流会直接冲击气压计,导致高度数据剧烈跳动。我见过有人把气压计直接裸露安装,结果悬停时高度波动超过1米。
我的经验:气压计一定要用海绵或泡棉包裹,安装在远离气流的地方。同时,软件上要做低通滤波,截止频率设在5-10Hz比较合适。
超声波与激光的融合
超声波和激光测距适合在低空(比如起飞、降落、避障)使用。它们的数据更新率快,但受限于测量范围。我通常的做法是:
- 高度低于5米时,优先使用超声波或激光数据。
- 高度高于5米时,切换到气压计数据。
- 两者之间做平滑过渡,避免数据跳变。
好了,传感器子系统就讲到这里。记住一句话:没有完美的传感器,只有合理的融合策略。下一章我们会深入讨论数据融合算法,到时候你会看到这些传感器数据是怎么被“揉”在一起的。