2. 传感器融合基础:IMU、GPS、气压计、磁力计在起飞降落中的作用

各位同学,咱们今天聊点实在的。自动起飞和降落,说白了就是无人机最危险的两个阶段。我见过太多炸机案例,十有八九都发生在这两个时刻。为什么?因为地面效应、气流突变、传感器数据跳变,全赶在一块儿了。

这时候,单一传感器根本扛不住。你得让IMU、GPS、气压计、磁力计这几个兄弟配合好。我个人的习惯是,先把每个传感器的脾气摸透,再谈融合。来,咱们一个一个看。

2.1 IMU:飞控的“本体感觉”

IMU(惯性测量单元)是飞控最核心的传感器。它包含加速度计和陀螺仪。加速度计告诉你“我朝哪个方向倒了”,陀螺仪告诉你“我在怎么转”。

起飞时,IMU负责检测无人机是否已经离地。你想想看,油门推上去,加速度计检测到Z轴加速度变化,飞控就知道“嗯,起来了”。降落时,IMU检测触地瞬间的冲击加速度,判断是否已经着陆。

关键点:IMU的加速度计在起飞瞬间会有明显的“上冲”信号,降落触地时会有“下冲”尖峰。我建议在代码里设置一个200ms的窗口,检测这个特征。

但IMU有个毛病——漂移。陀螺仪积分出来的角度,时间长了就跑偏了。所以它不能单独用,得靠其他传感器来校正。

2.2 GPS:起飞前的“定海神针”

GPS在起飞降落中的作用,很多人低估了。你以为GPS只是用来导航的?其实它在起飞前就干了一件大事——提供绝对位置参考。

起飞前,飞控需要知道无人机当前的位置、海拔、速度。GPS给出这些初始值,IMU才能在此基础上做相对运动推算。我遇到过一个问题:有一次在楼顶起飞,GPS搜星只有6颗,位置精度10米。结果起飞后飞控以为自己在10米外,直接往楼外飞。嗯,从那以后我规定:起飞前GPS星数必须≥12颗,HDOP(水平精度因子)必须<1.0。

避坑指南:我曾经在峡谷里做测试,GPS信号被山体遮挡,起飞后位置跳了20米。后来我加了起飞前的位置稳定性检查——连续5秒位置变化小于0.5米,才允许解锁起飞。

降落时,GPS的作用是引导无人机回到起飞点。但要注意,GPS的垂直精度比水平精度差很多(通常差2-3倍)。所以降落时,垂直方向主要靠气压计,GPS只提供水平引导。

2.3 气压计:高度控制的“主力军”

气压计通过测量大气压强来推算高度。每上升100米,气压下降约12hPa。这个原理很简单,但实际用起来坑不少。

起飞时,气压计负责检测离地高度。飞控会记录起飞瞬间的气压值作为基准,然后根据气压变化计算相对高度。降落时,气压计提供平滑的高度变化曲线,让飞控知道“我现在离地面还有多远”。

但气压计有个致命弱点——对气流敏感。旋翼下洗气流、阵风、甚至空调出风口,都会让气压计读数乱跳。我建议把气压计安装在飞控板的正中央,远离风道,并且用海绵或硅胶减震。

小技巧:我习惯在代码里对气压计数据做滑动窗口滤波,窗口大小设为10个样本(约100ms)。这样既能滤掉高频噪声,又不会引入太大延迟。

还有一个坑:气压计受温度影响很大。无人机从室内(25℃)飞到室外(5℃),气压计读数会漂移。我见过有人因为这个原因,降落时高度误差达到3米。解决办法是加温度补偿,或者起飞后重新校准基准值。

2.4 磁力计:航向的“指南针”

磁力计测量地球磁场,给出航向角(偏航角)。起飞降落时,航向控制至关重要——你总不希望无人机起飞后原地打转吧?

磁力计的问题在于:它太容易被干扰了。电机电流、大功率线缆、甚至地下的钢筋,都会让磁力计读数偏掉。我遇到过最离谱的一次,在停车场楼顶起飞,磁力计偏了30度,无人机起飞后直接朝墙撞过去。

避坑指南:我曾经在起飞前忘记做磁力计校准,结果无人机在空中画了个圈。从那以后,我每次起飞前都会检查磁力计的模值——正常应该在0.3-0.6高斯之间,如果偏差太大,说明有强磁干扰。

降落时,磁力计的作用是保持航向稳定。特别是侧风降落时,飞控需要根据磁力计数据调整机头方向,确保无人机始终对准风向。

2.5 传感器融合:让数据“拧成一股绳”

好了,四个传感器都讲完了。现在的问题是:怎么把它们融合起来?

我个人最常用的是扩展卡尔曼滤波(EKF)。它的核心思想是:用IMU做状态预测(高频,100-200Hz),用GPS、气压计、磁力计做观测更新(低频,5-10Hz)。这样既保证了实时性,又避免了漂移。

起飞降落时,融合策略需要动态调整:

  • 起飞阶段:IMU权重最高,GPS和气压计用于初始化。飞控需要快速响应,所以IMU的预测值直接用于控制。
  • 悬停阶段:GPS和气压计权重增加,用于校正IMU的漂移。这时候飞控更关注位置和高度精度。
  • 降落阶段:气压计权重最高,GPS用于水平引导。接近地面时(高度<1米),IMU的加速度计用于检测触地。

下面这张图展示了传感器融合在起飞降落中的整体逻辑:

起飞降落传感器融合逻辑 IMU (100-200Hz) GPS (5-10Hz) 气压计 (10-20Hz) 磁力计 (10-20Hz) EKF 融合 状态估计 控制输出 位置/速度/姿态 阶段权重调整 起飞:IMU权重↑ 悬停:GPS/气压计↑ 降落:气压计/IMU↑

你看,整个流程就是:四个传感器各自采集数据,送到EKF里融合,输出一个干净、稳定、低延迟的状态估计,然后交给控制模块去执行。

2.6 实战中的融合策略

讲个实际案例。有一次我调试一架30kg级的无人直升机,起飞时一切正常,但降落时高度总是不准。查了半天,发现是气压计被旋翼下洗气流干扰了。

怎么解决的?我做了两件事:

  1. 动态调整气压计权重:当检测到无人机高度变化率大于2m/s时,降低气压计的融合权重,更多依赖IMU的垂直加速度积分。
  2. 加装导流罩:在气压计上方加了一个3D打印的导流罩,减少气流直接冲击。

效果立竿见影。降落高度误差从±1.5米降到了±0.3米。

核心原则:传感器融合不是简单的“取平均”,而是要根据飞行阶段、环境条件、传感器状态,动态调整每个传感器的信任度。说白了,就是“谁靠谱就信谁多一点”。

2.7 起飞降落的传感器检查清单

最后,我给大家整理了一份检查清单。每次起飞前,我都会在脑子里过一遍:

传感器 起飞前检查 起飞中作用 降落中作用
IMU 加速度计偏置<0.1m/s²
陀螺仪偏置<0.5°/s
检测离地瞬间 检测触地冲击
GPS 星数≥12,HDOP<1.0
位置稳定性检查
提供初始位置 水平引导回航点
气压计 记录基准气压值
检查温度补偿
计算离地高度 提供平滑高度曲线
磁力计 模值0.3-0.6高斯
校准偏差<5°
保持航向稳定 对准风向降落

嗯,差不多就这些。传感器融合这东西,说难不难,说简单也不简单。关键是要理解每个传感器的脾气,知道什么时候该信谁。多炸几次机,你就懂了——当然,我希望你们在模拟器里炸,别真炸。

记住一句话:起飞降落,传感器融合做得好,无人机就是听话的伙伴;做不好,它就是一颗会飞的炸弹。


公众号:蓝海资料掘金营,微信deep3321