4. 传感器校准:加速度计、陀螺仪、磁力计、气压计

传感器校准,说白了就是告诉飞控:「你现在看到的零点和刻度,到底准不准?」

我见过太多新手,一上来就调 PID,结果飞机在地上抖成筛子。其实问题根源往往是传感器没校准。你想想看,飞控连「水平」和「静止」都判断不准,它怎么控制姿态?

核心原则: 校准顺序不能乱。我的习惯是:加速度计 → 陀螺仪 → 磁力计 → 气压计。因为陀螺仪依赖加速度计的重力参考,磁力计又依赖前两者的姿态解算。
传感器校准流程框架图 PX4 传感器校准流程框架 加速度计 陀螺仪 磁力计 气压计 校准顺序:加速度计 → 陀螺仪 → 磁力计 → 气压计(依赖关系严格) 每次校准前确保飞控水平静止,远离铁磁干扰源 6面校准 静止偏置 8字旋转 零高偏置

4.1 加速度计校准

加速度计的任务是感知重力方向。如果它不准,飞控就不知道「天」在哪边。

校准方法(6面法):

  1. 把飞机水平放置,机头朝前,点击校准。
  2. 依次翻转飞机,让每个轴的正负方向都指向地面。
  3. 每个姿态保持 2-3 秒,直到地面站提示完成。
我的习惯: 校准前先检查飞控安装是否水平。如果飞控本身歪了,校准出来的「水平」就是歪的。我曾经遇到过一台飞机,怎么调都往右偏,最后发现是飞控底座垫了 3 层双面胶。

6个标准姿态:

姿态说明预期读数 (m/s²)
水平朝上Z轴向上X=0, Y=0, Z=+9.81
水平朝下Z轴向下X=0, Y=0, Z=-9.81
左侧朝上X轴向上X=+9.81, Y=0, Z=0
右侧朝上X轴向下X=-9.81, Y=0, Z=0
机头朝上Y轴向上X=0, Y=+9.81, Z=0
机头朝下Y轴向下X=0, Y=-9.81, Z=0
注意: 校准过程中不要晃动飞机,不要用手按压飞控。我曾经见过有人一边校准一边跟人聊天,手搭在飞机上,结果校准出来的偏置全是错的。

4.2 陀螺仪校准

陀螺仪测的是角速度。它最怕的是「零偏」——明明没动,它却以为你在转。

校准方法:

  • 把飞机放在绝对静止的水平面上。
  • 点击「陀螺仪校准」,等待 5-10 秒。
  • 地面站会自动采集静止时的角速度均值,作为零偏补偿。
关键点: 陀螺仪校准对环境振动极其敏感。不要在风扇旁边、空调出风口、或者有人走动的桌面上校准。我有个项目在工厂车间里做,每次校准完陀螺仪数据都飘,后来发现是旁边流水线的振动传到了桌子上。

校准后的检查:

# 在 QGroundControl 的 MAVLink Inspector 中查看
陀螺仪角速度 (rad/s):
  x: 0.001
  y: -0.002
  z: 0.003
# 理想值:三个轴都接近 0.000,偏差 < 0.01 rad/s

4.3 磁力计校准

磁力计就是电子罗盘,它告诉你机头朝哪。但问题是——它太容易被干扰了。

校准方法(8字旋转法):

  1. 把飞机拿到室外,远离钢筋水泥和高压线。
  2. 点击「磁力计校准」,然后拿着飞机在空中画「8」字。
  3. 确保飞机绕 X、Y、Z 三个轴都旋转了至少 360 度。
  4. 校准完成后,地面站会显示磁场强度模值。
避坑指南: 我曾经在室内校准磁力计,结果飞控一直报「磁场异常」。后来发现是地板里有钢筋网,把磁场扭曲了。所以,磁力计校准一定要在室外空旷处做。

校准结果判断:

参数正常范围异常情况
磁场强度模值400 - 600 mGauss< 300 或 > 700 说明有强干扰
偏置量各轴 < 200 mGauss偏置过大说明传感器老化或安装位置不当
椭球拟合误差< 0.1> 0.3 需要重新校准
注意: 磁力计校准后,不要随意改变飞控附近的金属物体位置。比如,如果你在机臂上装了 GPS 支架,校准完就不要拆了再装,否则磁场环境变了,校准就白做了。

4.4 气压计校准

气压计用来测高度。它的问题在于——气压本身就在变。

校准方法:

  • 在起飞地点,让飞机静止 10 秒以上。
  • 点击「气压计校准」,飞控会记录当前气压作为零高度参考。
  • 校准完成后,不要移动飞机,直到解锁起飞。
为什么? 气压计校准的本质是「记住当前气压值」。如果你在校准后把飞机从一楼搬到三楼,气压变了,飞控会以为你瞬间爬升了 10 米。我见过有人在校准后把飞机从室内拿到室外,结果一解锁就报「高度异常」。

气压计使用建议:

  • 每次起飞前都要重新校准气压计。
  • 如果天气突变(比如冷锋过境),气压变化快,建议等气压稳定后再校准。
  • 气压计窗口不要被遮挡,不要用海绵或泡沫堵住。
我的经验: 气压计最怕的是「风」。如果你在强风环境下校准,气压波动会导致高度数据跳变。我一般会在校准前用手挡住飞控周围的风,等读数稳定了再点校准。

好了,四个传感器都校准完了。这时候你再去看飞控的姿态数据,应该能看到稳定的角度和高度读数。嗯,这才是调参的正确起点。