加速度计校准:六面校准法详解
加速度计校准,说白了就是让飞控知道「哪边是上,哪边是下」。
你可能觉得这很简单——重力方向不就是向下吗?但实际飞起来,你会发现加速度计如果没校准好,飞机悬停时会一直往一个方向飘。我遇到过好几次这种情况,最后发现都是加速度计偏置没搞干净。
为什么要做六面校准?
加速度计的核心问题有三个:
- 零偏误差:静止时输出不为0
- 比例误差:三个轴的灵敏度不一致
- 轴间对齐误差:X/Y/Z轴不是完美的90度
六面校准法,就是通过让加速度计在6个不同姿态下采集数据,然后解算出这些误差参数。嗯,说白了就是让传感器「见见世面」,知道各个方向的重力长什么样。
核心原理:每个姿态下,理论重力值都是1g(9.8m/s²)。实际测量值和理论值的差异,就是我们要补偿的误差。
六面校准的六个姿态
我个人习惯按这个顺序来做:
- 水平朝上:Z轴朝上,X/Y水平
- 水平朝下:Z轴朝下,X/Y水平
- 左侧朝上:X轴朝上
- 右侧朝上:X轴朝下
- 机头朝上:Y轴朝上
- 机头朝下:Y轴朝下
你想想看,这6个姿态覆盖了正负三个轴方向。每个方向都采集几十秒的数据,取平均值,就能算出偏置和比例因子。
小技巧:校准时要确保飞控完全静止。我见过有人用手扶着飞控校准,结果数据全是抖的。找个水平台面,或者用泡沫垫一下,效果会好很多。
MPU6000 vs ICM20602 校准流程
这两种传感器在ArduPilot里的校准流程基本一致,但有一些细节差异。我分别说一下。
MPU6000 校准流程
MPU6000是老将了,稳定可靠。校准步骤:
- 连接Mission Planner,打开「初始设置」→「加速度计校准」
- 点击「校准加速度计」按钮
- 按照提示,依次摆放6个姿态
- 每个姿态保持静止,等待进度条走完
- 校准完成后,检查参数:
INS_ACC0_OFFS_X/Y/Z和INS_ACC0_SCAL_X/Y/Z
我曾经遇到一个情况:MPU6000校准后,偏置值特别大(超过200)。后来发现是传感器焊接时温度过高,导致内部晶体偏移。嗯,硬件问题有时候比软件难搞。
ICM20602 校准流程
ICM20602是后起之秀,噪声更低,但校准流程稍微讲究一点:
- 同样进入加速度计校准界面
- 但建议先做一次「温度校准」——让飞控通电预热5分钟
- 再做六面校准
- 校准后检查
INS_ACC2_OFFS_*和INS_ACC2_SCAL_*
注意:ICM20602对温度更敏感。如果你在冷机状态下校准,飞起来后温度升高,零偏会漂移。我建议每次飞行前都做一次快速校准,或者开启ArduPilot的「温度补偿」功能。
校准后的参数解读
校准完成后,你会看到类似这样的参数:
| 参数名 | 正常范围 | 说明 |
|---|---|---|
| INS_ACC0_OFFS_X | -100 ~ 100 | X轴零偏,单位mG |
| INS_ACC0_OFFS_Y | -100 ~ 100 | Y轴零偏 |
| INS_ACC0_OFFS_Z | -100 ~ 100 | Z轴零偏(通常接近1000,因为重力) |
| INS_ACC0_SCAL_X | 0.95 ~ 1.05 | X轴比例因子 |
| INS_ACC0_SCAL_Y | 0.95 ~ 1.05 | Y轴比例因子 |
| INS_ACC0_SCAL_Z | 0.95 ~ 1.05 | Z轴比例因子 |
如果Z轴偏置远大于1000,或者比例因子超出0.95~1.05范围,说明传感器可能有问题。我建议重新校准一次,如果还是异常,考虑更换传感器。
核心逻辑流程图
下面这张图展示了加速度计校准的完整逻辑:
避坑指南
我总结几个常见问题:
- 校准后飞机倾斜:大概率是校准时机身没放平。我曾经用手机水平仪检查过,发现桌面其实有2度倾斜。建议用水平仪确认。
- 校准值一直跳:检查飞控减震。如果减震棉太硬或太软,加速度计读数会不稳定。
- Z轴偏置异常:检查传感器安装方向。有些飞控的Z轴是朝下的,参数里要设置
AHRS_ORIENTATION。
我的习惯:每次校准后,我都会在Mission Planner里查看「加速度计原始数据」页面。如果三个轴的数据在静止时波动小于±20mG,说明校准质量不错。如果波动超过±50mG,建议检查硬件。
总结
加速度计校准是飞控调试的第一步,也是最重要的一步。六面校准法虽然看起来繁琐,但做熟练了也就5分钟的事。记住:校准质量直接影响EKF的初始对准和飞行稳定性。
嗯,下次我们聊陀螺仪校准时,你会发现很多思路是相通的。