4、无人机核心传感器:GPS/RTK定位模块、惯性测量单元(IMU)、气压计与超声波测距、光流传感器
做农业无人机集群,第一件事是什么?
不是写代码,不是调参数。是搞清楚你的无人机到底「感知」到了什么。
我见过太多团队,一上来就搞集群协同,结果飞机在天上飘来飘去,根本定不住。为什么?传感器数据打架了。今天这一章,我就带你把这几个核心传感器彻底吃透。
4.1 GPS/RTK定位模块:你的飞机到底在哪?
普通GPS,精度大概在2-5米。做植保作业,这个精度够吗?
说实话,不太够。你想啊,两架飞机间隔3米作业,GPS误差一飘,直接就撞上了。
所以农业无人机,我强烈建议上RTK。
RTK(实时动态差分定位) 能把精度干到厘米级。原理不复杂:地面放一个基准站,天上飞机接收差分信号,消除公共误差。
我在新疆做棉花田项目时,遇到过一个问题:RTK信号在田埂边经常丢失。后来发现是基准站架设位置太低,被棉花杆挡住了。嗯,这里要注意——基准站一定要架在开阔地带,天线至少离地2米。
选型建议:
- Ublox F9P:性价比之王,双频段,支持RTK,我团队现在的主力方案
- NovAtel OEM7:工业级,抗干扰强,但价格感人
- 国产和芯星通:这几年进步很大,农业场景够用
小技巧:RTK初始化需要时间。我习惯在起飞前先让模块锁定固定解(Fix),别急着起飞。等那个「Fix」标志亮起来,再解锁电机。
4.2 惯性测量单元(IMU):飞机的「内耳」
GPS告诉你位置,但更新频率只有10Hz。飞机在两次GPS更新之间怎么保持姿态?
靠IMU。
IMU由三轴加速度计和三轴陀螺仪组成。加速度计测「平动」,陀螺仪测「转动」。说白了,就是感知飞机自身的运动状态。
我个人习惯用BMI088,温度稳定性好,在农业高温环境下不容易飘。之前用过MPU6050,夏天田里40多度,零偏直接跑飞,飞机开始自旋——那次差点炸机。
避坑指南:IMU一定要做温补校准。我曾经在实验室调好的参数,到田里全废了。后来每次作业前,我都会让飞机在地面预热5分钟,让IMU温度稳定下来。
IMU数据融合,一般用卡尔曼滤波。代码示例:
// 简化的IMU数据融合(互补滤波)
float angle = 0.98 * (angle + gyro_y * dt) + 0.02 * accel_angle;
// 实际项目中,我会用EKF(扩展卡尔曼滤波)
// 状态量:[位置, 速度, 姿态角, 陀螺零偏]
// 观测量:[GPS位置, 加速度计, 磁力计]
你想想看,如果IMU数据不准,后面的所有控制都是空中楼阁。所以IMU的选型和校准,值得花时间。
4.3 气压计与超声波测距:高度信息的双重保障
GPS能给出海拔高度,但精度太差,垂直误差通常有3-5米。农业作业需要精确到厘米级的高度控制——比如喷洒农药,离作物冠层太近会伤苗,太远药液飘散。
这时候就需要气压计和超声波了。
| 传感器 | 测量范围 | 精度 | 适用场景 |
|---|---|---|---|
| 气压计(BMP280) | 0-10km | ±0.5m(相对高度) | 中高空定高 |
| 超声波(HC-SR04) | 2cm-4m | ±1cm | 低空悬停、起降 |
| 激光测距(TFmini) | 0.1-12m | ±1cm | 仿地飞行 |
气压计的原理很简单:高度越高,气压越低。但有个坑——天气变化、风的影响都会导致气压波动。我在广东做水稻田项目时,台风天前后气压变化剧烈,飞机高度忽高忽低。后来加了低通滤波,才稳住。
我的经验:超声波适合低空(3米以内),超过这个距离信号衰减严重。农业场景我推荐用激光测距替代超声波,虽然贵一点,但稳定得多。
4.4 光流传感器:没有GPS也能悬停
你有没有想过,如果GPS信号被遮挡(比如大棚里、树荫下),飞机怎么保持位置?
光流传感器就是干这个的。
它本质上是一个微型摄像头,通过捕捉地面纹理的运动,计算出飞机的水平速度。配合IMU,可以实现无GPS条件下的定点悬停。
我用的是PMW3901,体积小,功耗低。但要注意:
- 需要地面有纹理(纯色地面不行)
- 离地高度最好在1-3米
- 光照要充足(弱光下性能下降)
有一次在温室里做授粉实验,地面是白色塑料膜,光流直接失效。后来我贴了一些黑色胶带做人工纹理,才解决问题。说白了,光流就是个「视觉里程计」,它需要「看得见」地面的变化。
融合策略:我通常把光流速度作为EKF的观测量,与GPS速度做加权融合。GPS信号好时,信任GPS;GPS丢失时,切换到光流+IMU的纯惯性导航。
4.5 传感器融合:1+1>2
单个传感器都有短板。GPS怕遮挡,IMU会漂移,气压计受天气影响,超声波测距短,光流依赖纹理。
怎么办?融合。
我常用的融合架构:
- 位置估计:GPS(主)+ 光流(辅助)+ IMU(预测)
- 姿态估计:IMU(主)+ 磁力计(航向修正)
- 高度估计:气压计(中高空)+ 超声波/激光(低空)
说白了,就是让每个传感器干自己最擅长的事。GPS管水平位置,IMU管姿态和短时预测,气压计管高度,超声波管近地保护。
重要提醒:传感器融合不是越多越好。每增加一个传感器,就多一个故障点。我见过有人堆了8个传感器,结果数据冲突,飞机直接乱飞。够用就好,冗余度控制在2-3倍即可。
好了,这一章的内容就到这里。下一章我们会讲执行器——有了感知,怎么让飞机动起来。
课后思考:如果GPS和光流数据冲突了,你该怎么判断哪个更可信?提示:看协方差矩阵。