3. 开发环境搭建

传感器校准,说白了就是让飞控知道「什么是水平」、「什么是静止」、「什么是北」。你想想看,如果飞控连水平都判断不准,那后面调PID、调航线全白搭。我见过太多新手一上来就调参数,结果炸机了才发现加速度计根本没校准——嗯,这种坑我踩过,所以今天咱们把这四个传感器一次讲透。

3.1 加速度计校准

加速度计测量的是重力在三个轴上的分量。理想情况下,静止时它应该输出 [0, 0, -9.81] m/s²(Z轴向上)。但实际器件有零偏、刻度误差和轴间非正交,所以必须校准。

校准流程

  1. 把飞控平放,Z轴朝上,静止5秒。
  2. 左侧朝上,静止5秒。
  3. 右侧朝上,静止5秒。
  4. 机头朝上(竖起来),静止5秒。
  5. 机头朝下,静止5秒。
  6. 背部朝上(倒扣),静止5秒。

一共6个姿态,每个姿态保持静止。QGroundControl里点「Accelerometer」→「Start Calibration」,按提示摆就行了。

我的习惯:每次摆完一个面,我会等2秒再点下一步。因为刚放下去时手还在抖,数据不稳定。你想想看,如果飞控把「手抖」当成「加速度」,那校准出来肯定偏。

验证方法

校准完成后,把飞控平放,看 sensor_accel 的 z 值。正常应该在 -9.8 ± 0.2 范围内。如果偏差超过 0.5,我建议重新校准。

注意:不要在电机转动时校准加速度计!振动会严重干扰读数。我曾经在测试台上没断电就校准,结果飞控把振动当成了重力,起飞直接翻了个跟头。

3.2 陀螺仪校准

陀螺仪测量角速度。静止时,它应该输出 [0, 0, 0] rad/s。但温度变化、焊接应力都会导致零偏漂移。

校准流程

  1. 把飞控放在绝对静止的平面上。
  2. 在QGC里点「Gyroscope」→「Start Calibration」。
  3. 等待5-10秒,直到进度条走完。
  4. 校准完成后,检查 sensor_gyro 的 x/y/z 值,应该在 ±0.01 rad/s 以内。
关键点:陀螺仪校准只需要静止,不需要翻转。因为我们要测的是「零偏」,不是「灵敏度」。灵敏度是出厂标定的,一般不需要用户做。

为什么我强调「绝对静止」?因为陀螺仪对振动极其敏感。哪怕你手轻轻搭在桌子上,读数都可能飘到 0.05 rad/s。我记得有一次在户外校准,风把桌子吹得微微晃动,结果校准出来的零偏有 0.03 rad/s,飞起来后航向一直缓慢漂移。后来我都是把飞控放在水泥地上,人走开,等30秒再校准。

3.3 磁力计校准

磁力计测量地磁场。它的问题最多——因为地磁场很弱(约0.5高斯),而电机电流、铁质结构、甚至手机都能产生干扰。

校准流程

  1. 把飞控拿到室外,远离建筑物和金属物体。
  2. 在QGC里点「Compass」→「Start Calibration」。
  3. 拿着飞控,在空中画「8」字:先水平画,再垂直画,最后绕各个轴旋转。
  4. 持续30-60秒,直到进度条变绿。
避坑指南:我曾经在室内校准磁力计,结果飞控把钢筋水泥的干扰当成了地磁场。飞出去后航向偏了20度,差点撞墙。后来我都是把飞控拿到楼顶空旷处,离地面至少1米,远离任何铁器。

校准质量判断

指标 正常范围 需要重校
磁场强度 0.4 - 0.6 高斯 < 0.3 或 > 0.8
球体拟合半径 与磁场强度一致 偏差 > 0.1
硬铁偏移 ±0.2 以内 > 0.5

校准完成后,在QGC的「Mavlink Inspector」里看 MAG 数据。如果三个轴的读数画出来是一个球体,说明校准合格。如果是椭球体,说明有软铁干扰,需要重新校准或更换安装位置。

特别注意:磁力计校准必须在每次更换飞控安装位置、增加大功率设备、或更换机架后进行。因为铁质结构的变化会改变磁场分布。我有个项目,只是把GPS支架从碳纤维换成了铝合金,磁力计就偏了5度。

3.4 气压计校准

气压计测量大气压力,用于估算高度。它受温度影响很大,而且有滞后性。

校准流程

  1. 把飞控放在当前海拔的稳定环境中。
  2. 在QGC里点「Barometer」→「Start Calibration」。
  3. 等待5秒,系统会自动记录当前气压作为基准。
  4. 校准完成后,检查 sensor_baro 的 pressure 值,应该与当地气象站数据一致(误差 ±1 hPa)。
核心原理:气压计校准其实只做一件事——记录当前气压作为「零高度」参考。之后的高度变化都是相对于这个基准计算的。所以基准越准,高度越准。

温度补偿

气压计内部有温度传感器,但补偿效果有限。我建议:

  • 校准前让飞控通电预热5分钟,让温度稳定。
  • 不要在阳光直射下校准,因为局部温升会导致气压读数偏高。
  • 如果飞行中高度漂移严重,可以开启 EKF2_BARO_GATE 参数,限制气压计的最大变化率。

为什么会漂移?说白了,气压计对温度变化很敏感。你想想看,从地面飞到100米高空,温度可能下降0.6度,气压计读数就会变。如果飞控内部温度也在变,那误差就更大了。我一般会在起飞前看 sensor_baro 的 temperature 值,如果还在变化,就再等一等。

3.5 传感器校准知识体系

下面这张图总结了四个传感器的校准要点和相互关系。你可以把它当作校准前的检查清单。

传感器校准知识体系 传感器校准知识体系 加速度计 陀螺仪 磁力计 气压计 6面翻转法 静止采集法 画8字法 基准气压法 Z轴 ≈ -9.8 m/s² 角速度 ≈ 0 rad/s 磁场 0.4-0.6 高斯 气压 ±1 hPa 常见问题:振动干扰 | 温度漂移 | 磁场干扰 | 安装位置变化 校准顺序:加速度计 → 陀螺仪 → 磁力计 → 气压计

3.6 校准顺序与注意事项

我个人习惯的校准顺序是:加速度计 → 陀螺仪 → 磁力计 → 气压计。为什么这么排?

  • 加速度计和陀螺仪共用IMU,先校准加速度计,再校准陀螺仪,可以避免姿态估计误差。
  • 磁力计需要飞控处于水平姿态(加速度计校准后),否则补偿算法会出错。
  • 气压计放在最后,因为它的校准不受其他传感器影响,但需要稳定的环境。
重要提醒:每次校准后,必须重启飞控才能生效。我见过有人校准完直接起飞,结果飞控用的还是旧参数——嗯,那等于白校。

最后说一句:传感器校准不是一劳永逸的。温度变化、机械冲击、时间老化都会导致参数漂移。我建议每飞行50小时或每3个月重新校准一次。如果你发现飞机悬停时高度漂移、航向偏转、或者姿态不稳,先别急着调PID——回去检查一下传感器校准,八成是这里出了问题。