3. 开发环境搭建
说实话,很多新手拿到飞控板,焊好线、刷好固件,就急着想飞。我特别理解这种心情。但我要泼一盆冷水——校准没做好,炸机是迟早的事。
我自己就吃过亏。几年前做一架测绘无人机,赶工期,加速度计校准马马虎虎就过了。结果飞机一起飞就朝一边偏,增稳模式都救不回来。后来排查半天,发现是加速度计偏置没校干净。从那以后,我给自己定了个规矩:校准环节,一步都不能省。
这一章,咱们把 ArduPilot 里最关键的几个校准流程过一遍。你跟着做,基本不会出大问题。
3.1 加速度计校准
加速度计是飞控感知姿态的基础。它告诉你:飞机现在是平的吗?在加速吗?如果它不准,那姿态估计、位置控制全都会跑偏。
校准的原理其实很简单:让飞控知道,在静止状态下,各个轴感受到的重力是多少。理想情况下,水平放置时,Z轴应该是 1g(约 9.8 m/s²),X 和 Y 轴接近 0。
在 Mission Planner 里,操作路径是:初始设置 → 必备硬件 → 加速度计校准。点进去之后,它会提示你把飞机摆成 6 个不同的姿态。嗯,这里要注意:
- 摆放面一定要水平。我见过有人把飞机放在工具箱上校,工具箱表面是斜的,结果校出来全是偏的。
- 每个姿态保持静止 2-3 秒。等 Mission Planner 上的数值稳定了再点下一步。
- 6 个姿态分别是:平放(机头朝前)、左侧躺、右侧躺、机头朝下、机头朝上、倒扣。
校准完成后,你可以查看 INS_ACCX_OFFSET、INS_ACCY_OFFSET、INS_ACCZ_OFFSET 这三个参数。正常值应该在 ±300 以内。如果超出这个范围,说明飞控安装可能有应力,或者传感器本身有问题。
3.2 水平校准
水平校准,说白了就是告诉飞控:现在这个姿态,就是“水平”的基准。它和加速度计校准是两回事,但经常被混淆。
加速度计校准是消除传感器本身的偏置误差。水平校准是设定一个参考平面。你想想看,如果飞机安装时本身就带一点仰角,那飞控必须知道这个角度,才能把“带仰角的姿态”当作水平。
操作很简单:把飞机放在一个真正的水平面上,然后在 Mission Planner 里点击 初始设置 → 必备硬件 → 水平校准,点一下“执行”就行。飞控会记录当前姿态作为零位。
3.3 罗盘校准
罗盘(磁力计)是飞控感知航向的关键。GPS 只能告诉你位置,但航向要靠罗盘。如果罗盘不准,飞机就会“找不到北”,航线飞行时就会跑偏。
罗盘校准的核心目标是:消除硬铁干扰和软铁干扰。硬铁干扰来自飞控附近的永磁体(比如电机、扬声器),软铁干扰来自导磁材料(比如碳纤维、金属件)。
校准步骤:
- 在 Mission Planner 里进入 初始设置 → 必备硬件 → 罗盘校准。
- 点击“开始校准”。
- 拿起飞机,在空中画“8”字。或者更规范的做法:让飞机绕每个轴(俯仰、横滚、偏航)都旋转 360 度。
- 直到 Mission Planner 上的进度条走满,并且显示“校准成功”。
校准完成后,检查 COMPASS_OFS_X/Y/Z 参数。正常值应该在 ±200 以内。如果某个轴的值超过 300,说明附近有强磁干扰源,需要排查。
| 干扰类型 | 来源 | 校准后参数特征 | 解决方法 |
|---|---|---|---|
| 硬铁干扰 | 电机磁铁、扬声器、电流 | 偏置值大(>300) | 将罗盘远离干扰源,或使用外部罗盘 |
| 软铁干扰 | 碳纤维、金属件、电池 | 校准后椭圆度大 | 使用 COMPASS_SCALE 参数补偿 |
| 环境磁场异常 | 高压线、铁轨、钢筋建筑 | 校准值不稳定 | 换个地方重新校准 |
3.4 遥控器校准
遥控器校准,就是让飞控知道你的摇杆在什么位置对应什么值。说白了,就是教会飞控:“你收到 1100 的时候,是油门最低;1900 的时候,是油门最高”。
操作路径:初始设置 → 必备硬件 → 遥控器校准。点进去后,点击“开始校准”,然后把所有摇杆都推到极限位置,再回中。Mission Planner 会记录每个通道的最小值、最大值和中间值。
校准完成后,检查一下 RC1_MIN/MAX 到 RC4_MIN/MAX 这几个参数。正常范围应该是:
- 最小值:1000 ~ 1100
- 最大值:1900 ~ 2000
- 中间值:1500 左右
如果某个通道的值偏差很大,比如最小值只有 980,或者最大值只有 1850,那可能是遥控器的行程设置有问题,或者接收机信号不稳定。
3.5 电调校准
电调校准,目的是让所有电调对油门信号的解读保持一致。说白了,就是让四个电机在收到同一个油门信号时,转速尽量相同。
为什么需要这个?因为不同电调之间,甚至同一个电调的不同批次,对 PWM 信号的响应都有细微差异。如果不校准,可能会出现“同油门、不同转速”的情况,导致飞机起飞时倾斜。
校准步骤(以 Mission Planner 为例):
- 确保电池没有连接。
- 把遥控器油门推到最高。
- 连接电池,等待电调发出“滴滴”声(表示进入校准模式)。
- 在 2 秒内把油门拉到最低。
- 电调会发出“滴”一声,表示校准完成。
如果你用的是 DShot 协议的数字电调,那就不需要传统校准了。DShot 协议本身是数字信号,不存在 PWM 的精度问题。我个人现在基本都用 DShot,省心很多。
3.6 安全开关设置
安全开关,是 ArduPilot 里一个非常实用的安全机制。它的作用是:在飞控解锁之前,必须手动按一下安全开关,否则电机不会通电。
为什么要这个?想象一下这个场景:你拿着飞机准备起飞,不小心碰到了解锁开关,电机突然转起来……嗯,后果很严重。安全开关就是防止这种意外解锁的。
设置方法:
- 在 Mission Planner 的 初始设置 → 必备硬件 → 安全开关 里,可以设置安全开关的启用/禁用。
- 如果你用的是 Pixhawk,安全开关默认接在 I2C 接口旁边的 SWITCH 口 上。
- 启用后,飞控上电时,安全开关的 LED 会闪烁。按一下,LED 常亮,表示安全开关已解除,可以解锁了。
我个人建议:所有无人机都启用安全开关。尤其是做自主任务规划时,飞机可能在地面站控制下自动解锁,有个安全开关多一层保障。
BRD_SAFETYENABLE 参数设为 0,完全禁用安全开关功能。但我不推荐这么做,除非你非常确定自己的操作流程不会出错。
好了,这一章的校准内容就这些。每一步都不难,但每一步都很关键。你把这些校准都做扎实了,后面的任务规划才能有可靠的硬件基础。