第三节:传感器基础——无人机的“感官系统”
各位同学好,我是你们的无人机系统讲师。今天我们来聊聊无人机最底层的硬件基础——传感器。说白了,无人机能飞、能悬停、能自主导航,靠的就是这些传感器在背后默默工作。
我经常跟团队里的新人说:算法再漂亮,传感器数据不准,一切都是白搭。所以这一节,我们得把每个传感器的脾气摸清楚。
3.1 GPS:无人机的“全球定位眼”
GPS(全球定位系统)是无人机最常用的室外定位手段。它的原理其实不复杂:卫星不停地发信号,无人机上的接收机算一下信号从卫星到自己的时间差,就能知道距离。三颗卫星定一个点,四颗卫星还能定高度。
但这里有个坑——GPS的精度远没有你想象的那么高。
| GPS模式 | 典型精度 | 适用场景 |
|---|---|---|
| 标准单点定位 | 2-5米 | 普通航拍、巡检 |
| DGPS(差分GPS) | 0.5-1米 | 农业植保、测绘 |
| RTK(实时动态差分) | 2-5厘米 | 精密测绘、自动降落 |
重要提醒:GPS在室内、高楼峡谷、茂密树林下基本失效。我见过太多新手在树荫下起飞,结果无人机直接飘走——因为GPS信号被遮挡了。
我个人习惯是:室外飞行前,先看GPS搜星数。至少搜到8颗星以上,HDOP(水平精度因子)小于1.5,才敢解锁起飞。你想想看,如果只有5颗星,定位误差可能达到10米以上,那还飞什么?
3.2 IMU:无人机的“平衡感”
IMU(惯性测量单元)是无人机最核心的传感器,没有之一。它由加速度计和陀螺仪组成,有的还带磁力计。
- 加速度计:测量三个轴上的加速度,用来感知重力方向,算出俯仰角和横滚角。
- 陀螺仪:测量三个轴上的角速度,用来感知旋转快慢,算出偏航角的变化。
嗯,这里要注意:陀螺仪有零偏漂移。什么意思?就是静止时它也会输出一个非零值。如果不做校准,积分出来的角度会越偏越远。
我的经验:每次上电后,让无人机静置5-10秒,让IMU完成自校准。我曾经在项目里偷懒,没等校准完就起飞,结果无人机在空中自己转圈——那叫一个惊险。
IMU的数据更新频率很高,通常能达到200-1000Hz。但它的缺点是长期漂移。所以实际应用中,IMU和GPS是互补的:GPS提供长期稳定的位置,IMU提供短期精确的姿态和位置变化。
3.3 磁力计:无人机的“指南针”
磁力计,说白了就是电子罗盘。它测量地球磁场,用来确定无人机的航向(偏航角)。
但磁力计有个大问题——容易受干扰。电机、电调、大电流导线都会产生磁场,把磁力计读数带偏。
避坑指南:我曾经在飞一个四轴无人机时,发现它总是往一个方向偏。查了半天,原来是磁力计安装位置离电调太近。后来我把磁力计移到机臂末端,远离大电流区域,问题就解决了。
磁力计校准也很关键。通常需要让无人机在空中画“8”字,或者绕各个轴旋转,让传感器采集各个方向的磁场数据,计算出硬铁和软铁干扰参数。
3.4 气压计:无人机的“高度尺”
气压计通过测量大气压力来推算高度。原理很简单:高度越高,气压越低。
但气压计有个致命弱点——受天气影响大。刮风、下雨、温度变化都会导致气压波动。我实测过,同一地点,晴天和阴天测出的高度能差好几米。
所以实际飞行中,气压计通常只用来做相对高度控制,而不是绝对高度。比如“悬停在地面以上10米”,而不是“海拔100米”。
实用技巧:起飞前,记录当前气压值作为基准。飞行过程中,所有高度都是相对于这个基准的。这样能抵消天气变化带来的影响。
3.5 视觉传感器:无人机的“眼睛”
视觉传感器(摄像头)是近年来无人机智能化的关键。它主要做两件事:
- 视觉里程计(VO):通过连续帧的图像特征匹配,估算无人机的运动。
- 视觉SLAM:同时建图和定位,在未知环境中实现自主导航。
视觉传感器的优势是不受GPS信号限制,室内也能用。但它的缺点也很明显:
- 光照变化大时容易失效(比如从室内飞到室外)
- 纹理少的场景(白墙、水面)特征点不够
- 计算量大,对处理器要求高
我记得有个项目,无人机在仓库里做自主巡检。仓库里全是白色货架,视觉SLAM直接罢工。后来我们加了一个结构光深度相机,才解决了纹理缺失的问题。
3.6 传感器融合:1+1>2
单个传感器都有短板,所以实际无人机用的是多传感器融合。最常见的是:
- GPS + IMU:室外定位和姿态估计
- 视觉 + IMU:室内或GPS弱环境下的定位
- 磁力计 + GPS:航向修正
- 气压计 + GPS:高度修正
融合算法最常用的是扩展卡尔曼滤波(EKF)。它把各个传感器的数据按权重融合,权重由传感器的噪声方差决定。GPS噪声大,权重就低;IMU短期准,权重就高。
// 伪代码:EKF融合示例
// 预测步骤(IMU驱动)
x_pred = f(x_prev, u_imu)
P_pred = F * P_prev * F^T + Q
// 更新步骤(GPS观测)
z = gps_measurement
y = z - h(x_pred) // 残差
S = H * P_pred * H^T + R // 创新协方差
K = P_pred * H^T * inv(S) // 卡尔曼增益
x_est = x_pred + K * y // 状态更新
P_est = (I - K*H) * P_pred // 协方差更新
我的建议:刚开始做传感器融合时,别急着上EKF。先用简单的互补滤波把IMU和磁力计融合好,再逐步加入GPS和视觉。一步到位容易出bug,而且很难排查。
3.7 总结与选型建议
好了,这一节的内容就到这里。我们来捋一捋:
| 传感器 | 测量内容 | 优点 | 缺点 |
|---|---|---|---|
| GPS | 位置、速度 | 室外精度好 | 室内失效、更新慢 |
| IMU | 加速度、角速度 | 更新快、短期准 | 长期漂移 |
| 磁力计 | 航向 | 无累积误差 | 易受电磁干扰 |
| 气压计 | 高度 | 简单、便宜 | 受天气影响大 |
| 视觉 | 位置、姿态 | 室内可用 | 计算量大、依赖纹理 |
选型时,我一般会问自己三个问题:
- 飞行环境是室内还是室外?
- 对定位精度的要求是多少?
- 预算和计算资源够不够?
如果只是室外航拍,GPS+IMU就够了。如果要室内自主飞行,那视觉传感器是必须的。如果要做厘米级定位,RTK GPS加上高精度IMU,成本可能上万。
下一节,我们会把这些传感器组合起来,讲一讲状态估计与卡尔曼滤波。到时候我会手把手带大家写一个简单的EKF代码。咱们下节课见。
公众号:蓝海资料掘金营,微信deep3321