3. 传感器故障(二):磁力计(罗盘)干扰与GPS/RTK定位漂移

各位,咱们接着聊传感器。上一章讲了IMU的那些“脾气”,今天轮到磁力计和GPS/RTK这对难兄难弟了。

说实话,在我刚入行那会儿,总觉得磁力计就是个“小透明”——不就是个电子指南针嘛,能出多大问题?直到有一次,一架好好的无人机在操场中间突然开始画圈,我查了整整两天,最后发现罪魁祸首是地下一根不起眼的钢筋。嗯,从那以后,我再也不敢小看任何传感器了。

3.1 磁力计干扰:看不见的“地雷”

磁力计,说白了就是测量地球磁场的传感器。它告诉飞控:“嘿,机头朝北呢!”但问题是,这玩意儿太敏感了。一点点外部磁场干扰,它就开始胡说八道。

3.1.1 干扰来源有哪些?

我个人习惯把干扰分成两类:硬铁干扰和软铁干扰。名字听着玄乎,其实不难理解。

干扰类型 来源 特点
硬铁干扰 永磁体、电机磁铁、大电流导线 固定偏移,不随方向改变
软铁干扰 铁磁性材料(螺丝、支架、碳纤维) 随方向变化,扭曲磁场

我在项目中遇到过最离谱的一次,是客户说飞机一通电就偏航。查了半天,发现是机臂上的一个螺丝用了含铁的材质,刚好贴在磁力计旁边。换了个铜螺丝,问题立刻消失。你想想看,一颗螺丝就能让几万块的飞机失控,这玩意儿有多敏感。

3.1.2 如何诊断磁力计干扰?

诊断方法其实很简单。飞控日志里一般都有磁力计的原始数据。你把它拉出来,看看三个轴的数据是不是“干净”。

怎么做?我教你一个土办法:

  1. 把飞机放在一个空旷的地方,远离金属和混凝土。
  2. 上电,但不解锁。记录一分钟的磁力计数据。
  3. 用手把飞机绕各个轴转一圈,看看数据变化是否平滑。

正常情况下的磁力计数据,应该是一个光滑的球体。如果数据点乱成一团,或者有明显的“凹陷”、“凸起”,那基本可以断定有干扰。

关键指标:磁力计模长(sqrt(x²+y²+z²))应该接近当地地磁场强度。比如北京大约是0.5高斯。如果偏差超过10%,就要警惕了。

3.1.3 校准与补偿

校准是绕不开的活。大多数飞控都支持自动校准,但我的经验是——自动校准只能解决80%的问题。

标准的校准流程是这样的:

// 伪代码:磁力计校准流程
1. 进入校准模式
2. 将飞行器绕X轴旋转360度(滚转)
3. 将飞行器绕Y轴旋转360度(俯仰)
4. 将飞行器绕Z轴旋转360度(偏航)
5. 保存校准参数(偏移量和缩放因子)
6. 验证:检查模长是否在合理范围内

这里有个坑,我曾经踩过。校准的时候,一定要保证飞机周围没有金属物体。有一次我在铁皮桌子旁边校准,结果校准出来的参数全是错的。飞机一上天就开始飘,差点炸机。

我的小技巧:校准完成后,把飞机放在原地,再转几圈看看数据。如果数据稳定,说明校准成功。如果还在飘,那就重新来一遍。

3.2 GPS/RTK定位漂移:你以为你在哪?

GPS漂移,这应该是飞手们最头疼的问题之一。明明悬停得好好的,突然就开始“散步”了。为什么会这样?

说白了,GPS定位的原理就是三角测量。卫星告诉你“你离我有多远”,然后几颗卫星的数据一交叉,就能算出你的位置。但问题是,信号在穿过大气层的时候会变慢,电离层、对流层都会引入误差。

3.2.1 漂移的常见原因

  • 卫星几何分布差:如果卫星都挤在天上同一个方向,定位精度就会下降。这叫做“低GDOP值”。
  • 多路径效应:信号从高楼、水面反射过来,导致测距不准。
  • 电离层扰动:太阳活动剧烈的时候,电离层会“抖动”,信号延迟变化很快。
  • RTK链路中断:RTK依赖地面基站发送差分数据。一旦链路断了,定位精度会瞬间从厘米级掉到米级。

我记得有一次在山区测试,飞机悬停着,位置误差突然从0.1米跳到了3米。我一看日志,发现RTK的差分数据年龄(age)从0.1秒飙到了5秒。说白了就是基站信号被山挡住了,差分数据没及时更新。

3.2.2 如何判断是GPS漂移还是其他问题?

这个问题很关键。有时候飞机飘了,不一定是GPS的问题,也可能是IMU或者磁力计在捣乱。

我的判断方法是这样的:

  1. 看GPS的定位状态(fix type)。如果是3D fix,说明卫星数量够。如果是RTK float或者RTK fixed,说明差分信号正常。
  2. 看位置标准差(eph, epv)。如果这个值突然变大,说明GPS自己都觉得不准了。
  3. 对比磁力计和GPS航向。如果两者偏差超过10度,那大概率是磁力计被干扰了,不是GPS的问题。

注意:千万不要在GPS信号不好的地方做校准。我曾经见过有人在地下停车场校准GPS,结果校准出来的参数全是错的,飞机一出去就乱飞。

3.2.3 RTK的“坑”与应对

RTK虽然精度高,但也不是万能的。它有几个天生的弱点:

问题 表现 应对方法
基站漂移 基站位置不准,导致所有差分数据都偏了 基站架设时用静态观测10分钟以上
链路中断 差分数据无法传输,定位精度下降 设置RTK超时保护,自动切换到普通GPS模式
初始化失败 RTK无法固定,一直处于float状态 检查基站和移动站的坐标系统是否一致

我个人的习惯是,在RTK模式下,一定要设置一个“看门狗”。如果差分数据年龄超过2秒,就自动切换到普通GPS模式,同时发出警告。这样至少能保证飞机不会因为RTK断链而突然失控。

3.3 综合诊断:一张图看懂传感器故障

说了这么多,咱们来画个图,把磁力计和GPS的故障诊断逻辑串起来。

传感器故障诊断流程图 发现定位异常 检查GPS状态 GPS信号弱/RTK断链 磁力计干扰 处理方案: 1. 检查卫星数量 2. 检查RTK链路 处理方案: 1. 重新校准磁力计 2. 检查周围干扰源 验证并试飞

这张图是我自己总结的。遇到定位异常,先别急着拆飞机。按照这个流程走一遍,80%的问题都能定位到。

3.4 实战避坑指南

最后,分享几个我踩过的坑,希望能帮你省点时间。

避坑1:我曾经在水泥地上校准磁力计,结果数据一直不对。后来才发现,水泥地里的钢筋网会严重干扰磁场。记住,校准一定要在木质地面或者草地上进行。

避坑2:有一次RTK一直无法固定,我查了整整一天,最后发现是基站的天线高度设置错了。基站坐标里的天线高度,是指天线相位中心到地面的距离,不是天线顶端到地面的距离。差一厘米,定位就偏一厘米。

避坑3:磁力计和GPS天线不要靠太近。GPS天线会发射射频信号,干扰磁力计。我一般保持至少10厘米的距离。如果空间不够,那就用屏蔽罩把磁力计包起来。

好了,关于磁力计和GPS的故障排查,今天就聊到这儿。记住一句话:传感器不会无缘无故地坏,它只是在告诉你——环境变了。你需要的,是听懂它在说什么。


专注资料整理