一般路过棕背伯劳

一般路过棕背伯劳

inav 无法切换模式 / 解锁的解决方法

2024-08-22

最近装了一台抽象纸飞机,使用了国产 99 块钱开源飞控。但是在调参的过程中,我发现飞机经常无法切换到手动模式以外的其他任何模式。

在飞控 CLI 界面使用代码进行检查,最终解决了这个问题。

问题的成因是飞控启动过程中,由于纸飞机不平,无法通过即时校准。

卡 “即时校准” 问题

即时校准在英文版客户端为:Sensors calibrating,直译过来就是 “传感器校准”。通过即时校准的要求为启动时机身平放,不要有抖动,维持 5 秒钟。通常来讲,这个要求在一些较为常规的飞机、以及多旋翼无人机上不会有问题。但是纸飞机本身就放不平,再加上手持比较容易出现抖动晃动,因此纸飞机、手抛机之类的飞机容易卡在这一步骤。

在下文中,即时校准和传感器校准为同一含义。不是很喜欢中文版 inav 地面站的这个译名,存在一定的误导性。

解决方案

首先检查是否是飞控硬件的问题。如果不是,那么尝试利用 INAV 在 5.0 版本引入的一个特性,使飞控可以在移动的车辆、船等不稳定的平台上完成传感器校准。

这个设置可能会导致出现不安全的情况,但是总比解锁或者切换模式都无法完成好:

还是使用 CLI 命令行模式

set init_gyro_cal = off
save

理论上这一步完成,就可以通过校准了。

此外还可以通过修改传感器校准的时间来尽可能的降低晃动带来的影响:

set baro_cal_tolerance = 500
save

无法解锁问题排查方法

打开地面站 CLI,在 CLI 输入 status。即可查看飞控无法解锁的状态。

对应状态码查询问题所在,按照方法解决:

# 省略其余部分
## 这一行为关键
Arming disabled flags: CAL NAV CLI

故障码对应表

禁止解锁原因

中文介绍

备注

FS

失控: 没有识别到接收机,或接收机失控无信号

ANGLE

飞控不水平,INAV 默认倾斜角>30 度无法解锁,请将飞控水平放置再解锁

可通过高级设置界面调整允许解锁的角度

CAL

传感器校准未通过 , 飞控上电需要静止 5 秒以上,让陀螺仪完成自动校准

set baro_cal_tolerance = 500
set init_gyro_cal = off
save

OVRLD

CPU 负载过高 , 检查是不是设置了过高的控制刷新率

NAV

导航系统不安全 , 检查 GPS 是否正常工作,否搜到足够多的星(6 颗 3D 定位), 是否开启了返航但没设置 GPS。

可通过设置允许不安全的解锁 set nav_extra_arming_safety = ON。但是这样做存在一定的风险性。

COMPASS

指南针没有校准

ACC

加速度计未校准

ARMSW

飞控通电时解锁开关处于解锁状态,手动上锁再解锁,报警即可消除

HWFAIL

传感器故障,如气压计,GPS, 罗盘

BOXFS

急停保护被激活

KILLSW

Kill 被激活

RX

没检测到接收机

THR

解锁时油门没有打到最低,inav 默认解锁油门值 1000, 请检查自己的油门是不是打到了最低,油门微调是不是打到了最低

CLI

当前处于 CLI 模式,禁止解锁

CMS

当前处于 CMS 调参模式,禁止解锁

OSD

当前处于 OSD 调参模式,禁止解锁

ROLL/PITCH

横滚或俯仰摇杆没回中

AUTOTRIM

舵面自动配平模式处于打开状态

OOM

飞控内存不足

SETTINGFAIL

CLI 设置出错

如果你找不出哪里设置错误,可以点一下全芯片擦除,从头开始重新设置(危险操作,不建议)。

PWMOUT

PWM 输出错误。电机或舵机输出初始化失败

NOPREARM

传感器启动超时

DSHOTBEEPER

打开了电机蜂鸣,并且蜂鸣处于打开状态

blheli 电调支持音标功能,可以用一个通道让电机发出蜂鸣声,用于寻找炸鸡的飞机。

LANDED

飞机处于自动降落模式