四平台诊断入口卡¶
本附录只提供固定版本下的入口、证据对象和停止边界,不提供跨平台参数翻译。开始诊断前,只选择当前飞行器对应的一张卡;实际版本不同,应改用该版本的官方文档、源码、参数元数据和兼容工具。
固定版本:
- Betaflight
2026.6.2,提交e0b7bb01b17b21351057e9ead2d1ab39dd44fa16 - INAV
9.1.0,提交e519b69b02e27c8bdc03b4a0889f1baaae211a54 - ArduPilot Copter
4.7.1,提交dbe792162d06cab66c3475fd5556bf7a120f119e - PX4
v1.17.0,提交d6f12ad1c4f70ad3230afd7d86e971421e02fef4
所有平台共同的第0步¶
- 先完成证据保全与初始分诊,不得先拆桨、上电或连接配置工具改变现场;
- 只有现场、物证和源介质已经记录,安全负责人允许改变状态后,才拆除螺旋桨并隔离执行器;
- 原始日志、配置、地面站记录和视频按位流镜像或逻辑取得类别保存并计算摘要;
- 记录飞控、固件、目标、配置工具和解码器版本;
- 比较当前全量配置与专题06批准基线;没有基线时登记缺失;
- 针对具体问题评定日志适用性Q0至Q3;
- 将飞行批准标记为
阻断; - 只执行最低风险、单一变量的补证。
任何平台都不得用关闭解锁检查、失效保护、围栏或传感器健康检查来推进诊断。
版本自报字符串不能独立证明运行二进制身份。在平台支持时应取得固件读回摘要、发布签名或安全启动状态、目标清单、构建选项和引导程序身份;无法取得时标为二进制身份未验证。
Betaflight 2026.6.2¶
固定身份¶
保存:
- 飞控目标和硬件修订;
- 固件版本和完整构建标识;
- Betaflight App版本;
- 完整CLI配置导出;
- 当前PID配置档和Rate配置档;
- 资源、Ports、接收机、模式、Failsafe和Blackbox配置。
界面截图不能替代CLI全量导出。
只读取证入口¶
- 用与固定固件兼容的Betaflight App连接;关闭自动升级或自动写入;
- 在CLI依次执行只读命令
version、status、diff all和dump all,分别保存原始文本;不要执行save; - 通过Blackbox页的下载功能或目标板支持的只读存储方式取得原始日志,不点击擦除;
- 用兼容Blackbox Explorer或解码器打开分析副本;
- 成功标志:版本与目标可识别、配置文本完整、日志头可解析、目标时段可定位且所有警告已保存。
无法解锁¶
- 拆桨并固定飞行器;
- 读取状态和完整解锁禁用标志;
- 核对接收机有效性、油门、姿态、校准、模式和配置器连接状态;
- 处理首个真实条件后重新读取完整标志集合;
- 保存修改前后配置差异;
- 不通过永久关闭检查消除标志。
源码入口:
src/main/fc/runtime_config.h:运行状态和解锁禁用标志定义;src/main/fc/core.c:解锁相关状态逻辑。
Blackbox¶
保存:
- 原始日志文件;
- 日志头;
- 实际PID循环;
- Blackbox记录比例;
- 日志设备;
- 调试模式;
- 解码器版本和警告。
记录比例不是固定Hz。若日志设备为NONE、目标时段缺失或字段更新率不明,不做频谱结论。
源码入口:
src/main/blackbox/blackbox.c。
遥控与Failsafe¶
保存:
- 接收机协议与串口;
- 通道映射、端点和模式范围;
- Failsafe配置;
- Blackbox中的输入、模式、Failsafe和输出字段;
- 发射机日志和双端链路指标。
源码入口:
src/main/flight/failsafe.c。
振动与控制¶
最小字段集合按实际日志能力选择:
- setpoint;
- gyro及其滤波阶段;
- PID项;
- motor命令;
- RPM或调试字段;
- 电池;
- 模式和事件。
先检查机械和RPM数据可信度,再分析滤波和控制。
导航与自动模式¶
2026.6.2已定义高度保持、位置保持、自动驾驶/航点及任务失联相关状态。仅在当前目标和构建实际启用时保存:
- 高度、位置和自动模式状态;
- GPS、Home、航向和导航目标;
- 任务项目与任务失联配置;
- 模式拒绝、Failsafe和最终动作。
不得把其他三类平台的估计器字段或任务逻辑移植到Betaflight。
Betaflight停止点¶
- 目标板或版本不明;
- 日志设备不存在;
- PID循环或记录比例不明;
- 关键窗口dropout;
- 准备带桨运行电机页;
- 需要关闭解锁检查或Failsafe;
- 把输出命令当成真实转速或推力。
停止后记录缺失证据并转交对应正文:解锁到03、链路到05、振动到06、动力到07、导航到08、端口到09。未形成新的纠正候选和分层回归前,保持阻断。
INAV 9.1.0¶
固定身份¶
保存:
- 飞控目标、硬件和固件版本;
- INAV Configurator版本;
- 完整CLI配置;
- Ports、接收机、模式、Failsafe、导航、任务和Blackbox配置;
- 传感器与导航硬件清单。
只读取证入口¶
- 用与
9.1.0兼容的INAV Configurator连接,关闭自动写入或升级; - 在CLI执行只读命令
version、status、diff all和dump,保存原始文本且不执行save; - 通过Blackbox页或目标支持的存储访问方式下载日志,不擦除介质;
- 用兼容解码器打开分析副本;
- 成功标志:目标和版本可识别、配置完整、日志头与字段可解析、导航和模式时段可定位。
无法解锁¶
- 读取完整解锁标志;
- 核对基础传感器、接收机、油门和模式;
- 对导航模式继续核对位置、航向、Home和高度条件;
- 区分“基础姿态可用”和“当前导航模式可用”;
- 处理条件后重复读取全部标志;
- 不切换到未经批准的低要求模式绕过问题。
源码入口:
src/main/fc/runtime_config.h。
Blackbox¶
保存:
- 原始Blackbox;
- 固定版本和完整配置;
- 控制循环抽取比例;
- 实际字段;
- 文件损坏和dropout;
- 解码环境。
低记录率可以延长时长,但不自动适合振动和快速控制问题。
模式、Failsafe与导航¶
保存并对齐:
- 接收状态和通道;
- 模式;
- Failsafe阶段;
- GNSS、航向、高度和Home;
- 导航目标与状态;
- 执行器输出。
失联后的返航或降落能力取决于实际导航健康状态。
源码入口:
src/main/flight/failsafe.c。
INAV停止点¶
- 不能确定当前是基础姿态问题还是导航问题;
- Home、航向或高度基准不明;
- Blackbox抽取率不足却准备判断高频问题;
- 通过关闭导航健康检查推进;
- 在真实飞行中主动制造失联或定位丢失。
停止后保存状态、返回01/02补证,并按现象转交03至09。Home、导航源或日志身份不明时,不得以基础姿态模式可用推导导航模式可飞。
ArduPilot Copter 4.7.1¶
固定身份¶
保存:
- 飞控硬件;
Copter-4.7.1版本信息;- 地面站版本;
- 完整参数文件;
- 任务、围栏和集结点;
- DataFlash原始日志;
- 地面站遥测日志;
- 启动、预解锁和状态消息。
只读取证入口¶
- 使用固定版本兼容地面站,在拆桨和受控上电条件下先保存Messages/状态文本;
- 从完整参数列表导出当前全量参数,不先写入参数;
- 从DataFlash日志下载入口取得原始
.BIN文件,并保存地面站原始遥测日志; - 无法解锁且普通日志尚未开始时,只能经专项批准将
LOG_DISARMED用于新的拆桨补证,历史事件仍按证据缺失处理; - 成功标志:版本和硬件可识别、参数导出完整、日志可解析、消息/模式/目标事件可定位、日志丢失统计已保存。
预解锁¶
- 保存完整预解锁消息;
- 按传感器、估计器、遥控、参数、安全和任务条件分类;
- 修复实际条件;
- 4.7.1使用
ARMING_SKIPCHK表示要跳过的检查;回读确认正常基线为ARMING_SKIPCHK = 0; - 任何非零位都要逐位解释,不得通过置位跳过检查;
- 从旧版迁移时保存旧
ARMING_CHECK到新参数的反向位掩码迁移差异; - 若事件只发生在未解锁阶段,经批准在拆桨状态记录未解锁日志;
- 完成后恢复日志配置并比较全量参数。
DataFlash¶
按问题选取并核对实际存在的消息,常见类别包括:
MSG和模式;- 姿态目标与实际;
- IMU、振动和Clipping;
- EKF状态、创新和重置;
- 遥控输入与执行器输出;
- 电池和电源;
- GPS、罗盘、气压计和测距;
- 错误与Failsafe;
DSF等日志丢失统计。
消息名称和字段以Copter 4.7.1实际日志定义为准。DSF.Dp等统计只能按固定版本定义解释。
失联与安全动作¶
分别审查:
- 遥控失联;
- 地面站失联;
- 电池失效保护;
- EKF或位置相关失效保护;
- 围栏;
- 操作者或任务模式命令。
对齐触发源、动作、模式和恢复,不把所有动作统称为“Failsafe”。
ArduPilot停止点¶
- 参数文件与事故时状态不对应;
- 未解锁阶段没有证据,却准备关闭检查复现;
- DataFlash关键区间丢失;
- 把VIBE、Clipping或某一消息阈值移植到其他平台;
- 真实飞行中注入失联、电池或估计器故障。
停止后保留完整Messages、参数、日志和ARMING_SKIPCHK状态,按现象转交03至09。任何跳过检查位、关键日志丢失或参数身份不明都维持阻断。
PX4 v1.17.0¶
固定身份¶
保存:
- 飞控型号和板级信息;
v1.17.0版本与提交;- QGroundControl版本;
- 全量参数和机型配置;
- 任务、地理围栏和返航配置;
- 原始ULog;
- 地面站日志与事件。
只读取证入口¶
- 使用兼容QGroundControl,在Analyze Tools的MAVLink Console中执行
ver all并保存输出; - 从Vehicle Setup的Parameters工具导出当前参数文件,不先写入参数;
- 从Analyze Tools的Log Download入口下载原始
.ulg,不删除机载日志; - 保存QGroundControl Application Log和Arming Check报告;
- 成功标志:硬件、版本和构建可识别,参数完整,ULog元数据/主题/事件可解析,dropout已量化。
解锁检查¶
- 保存QGroundControl完整Arming Check报告;
- 保存PX4事件和时间;
- 区分传感器健康、估计器、模式、安全开关、遥控和执行器条件;
- 处理最早不满足条件;
- 不通过参数绕过健康检查;
- 在拆桨状态回归全部检查。
ULog¶
核对:
- ULog元数据和参数;
- 日志开始、结束和重启边界;
- 实际记录的主题和实例;
- 每个关键主题更新率;
- dropout位置和持续时间;
- 事件与地面站消息;
- 高频日志配置及其系统影响。
Flight Review或其他可视化结果是派生证据,不替代原始ULog。
状态估计与安全动作¶
按实际存在主题对齐:
- 原始传感器;
- 估计器状态、创新、重置和选择;
- vehicle status与控制模式;
- 遥控和数据链状态;
- battery状态;
- failsafe事件与动作;
- actuator命令和反馈。
主题名称、实例和字段语义以v1.17日志定义为准。
PX4停止点¶
- ULog缺少目标主题或关键窗口dropout;
- 参数和机型配置不明;
- 将QGroundControl摘要当成全部内部状态;
- 上传公开分析服务前未处理位置与任务隐私;
- 通过关闭健康检查或安全动作复现;
- 真实飞行中制造位置、链路或动力故障。
停止后保存QGroundControl日志、ULog元数据和参数,按现象转交03至09。ULog主题缺失、dropout覆盖关键区间或机型配置不明时,不得依赖Flight Review摘要解除阻断。
四平台共同证据包¶
platform-card/
identity.txt
hardware.md
configuration-original.*
configuration-approved.*
configuration-diff.*
onboard-log-original.*
gcs-log-original.*
transmitter-log-original.*
log-quality.md
timeline.csv
hypotheses.md
test-card.md
regression.md
approval.md
四平台共同通过标准¶
- 平台、硬件、固件和工具版本唯一;
- 原始日志与配置摘要完整;
- 安全检查没有被关闭;
- 当前问题达到Q2或明确按Q0/Q1限制结论;
- 命令、状态、响应和外部证据已对齐;
- 复现使用最低风险层级和单一变量;
- 临时诊断改动应撤销并回到旧批准基线作差异核对;永久修复另建纠正候选;
- 所有未测试和未知项进入残余限制;
- 飞行批准由授权人单独签署。
附录通过仅表示取证入口和平台状态读取完成,不授予装桨、解锁或复飞。
主要参考¶
- Betaflight 2026.6.2发布入口
- Betaflight 2026.6.2:运行配置
- Betaflight 2026.6.2:Failsafe实现
- Betaflight 2026.6.2:Blackbox实现
- INAV 9.1.0发布入口
- INAV 9.1.0:导航文档快照
- INAV 9.1.0:运行配置
- ArduPilot Copter 4.7.1发布入口
- ArduPilot Copter 4.7.1:
ARMING_SKIPCHK定义与参数迁移 - ArduPilot:预解锁安全检查
- ArduPilot:DataFlash日志
- PX4 v1.17:飞行前检查
- PX4 v1.17:飞行日志
- PX4 v1.17:安全与失效保护