遥控输入与失联验证¶
遥控配置必须同时证明两件事:链路正常时每个输入被正确解释,链路失效时飞控能够识别失联并进入预定安全状态。

先区分三层¶
| 层 | 负责内容 | 常见错误 |
|---|---|---|
| 发射机 | 摇杆、开关、混控、端点和射频模块 | 发射机内部混控改变通道含义 |
| 接收机 | 空中链路、输出协议、链路失效输出 | 失联后持续保持最后值 |
| 飞控 | 通道映射、校准、模式和失效保护 | 把看似有效的保持值当成正常输入 |
机内SBUS、CRSF等数据协议不是完整的空中射频协议。排障时要说明问题发生在空中链路、接收机输出还是飞控解析。
安全准备¶
- 拆除螺旋桨;
- 关闭发射机上的自动混控、曲线和配平,除非项目明确要求;
- 所有配平置于项目定义位置;
- 油门最低;
- 解锁开关处于解除位置;
- 预解锁开关处于安全位置;
- 机体固定;
- 明确关闭射频模块和恢复射频模块的操作;
- 准备记录输入值、链路标志和飞控安全状态。
仅使用USB时接收机可能不供电。需要动力侧或外部5伏时,按电源状态表受控供电。
绑定只解决身份¶
绑定或配对证明发射机与接收机建立了身份关系,不证明:
- 接收机输出协议正确;
- 飞控端口正确;
- 通道顺序正确;
- 端点和中位正确;
- 失联输出正确;
- 遥测链路正常;
- 安全动作已经配置。
绑定过程按具体遥控系统手册执行。不要在不知道区域频段、发射功率和法规要求时修改射频参数。
正常输入验证¶
1. 通道发现¶
逐个移动:
- 横滚;
- 俯仰;
- 油门;
- 偏航;
- 解锁开关;
- 预解锁开关;
- 飞行模式开关;
- 蜂鸣器、返航或其他辅助开关。
一次只动一个控制件,记录哪个飞控通道变化。若多个通道同时变化,检查发射机混控或错误映射。
2. 方向¶
方向必须按平台界面和官方定义核对。不要仅凭通道条向左或向右判断,应把:
完整记录。
3. 范围和中位¶
校准所有使用中的摇杆、开关、旋钮和滑杆:
- 最小值稳定;
- 最大值稳定;
- 中位稳定;
- 无输入时不抖动跨越模式阈值;
- 开关各位置落在明确区间;
- 油门最低值低于平台允许解锁阈值且保留合理余量;
- 不通过极端扩大端点制造超出协议有效范围的数值。
ArduPilot官方示例中常见最小、最大约为1100和1900微秒,但这是典型值而非所有系统的强制目标。以当前接收机协议、发射机和平台校准结果为准。
4. 解锁开关¶
解锁开关应:
- 有明确的物理开和关位置;
- 上电时默认处于解除位置;
- 不与普通飞行模式共用模糊区间;
- 不因通道抖动跨越阈值;
- 失联恢复后不自动重新解锁;
- 标签和操作者检查单一致。
建议使用预解锁加解锁的两步逻辑时,应验证顺序和复位要求。
接收机失联输出¶
最可靠的设计是接收机在链路丢失时:
- 停止输出有效控制帧;或
- 在协议中明确标记帧丢失/失联。
无限保持最后一个看似正常的通道值,会让飞控无法判断链路已经丢失。Betaflight官方明确建议接收机在失联时发送“无数据”,而不是使用接收机侧固定值代替飞控失效保护。PX4也明确指出保持最后值无法被识别为失联。
如果特定旧式接收机只能输出约定的低油门失联值,必须按平台官方方法把该值设置在正常范围之外,并证明飞控会检测,而不是只看到油门降低。
失联测试矩阵¶
先区分证据层级:
- 未解锁实机:验证接收机输出、飞控检测、计时、告警和恢复阻止;不声称已经证明飞行中的DROP、LAND或RTL;
- 固定版本SITL/HITL:把载具置于已解锁、离地和指定模式状态,验证最终动作、优先级和恢复;
- 平台允许的拆桨已解锁台架:属于后续独立测试程序,不在05执行。
05中的实体机测试全程保持未解锁。需要观察飞行中最终动作时,使用固定版本的软件在环(SITL,Software In The Loop)或硬件在环(HITL,Hardware In The Loop)。若平台没有可复现的对应测试环境,该项保持未测试并阻断首次飞行,不能用未解锁现象替代。
实体机测试前状态卡¶
螺旋桨:已拆除
飞控状态:未解锁
机体:固定
供电:按供电状态表填写
接收机供电切断方式:预先定义,不带电拔线
发射机模式/油门/开关:记录
预期失联标志:记录
预期恢复阻止:记录
电机最终动作:本层不验证
未解锁实体机执行:
| 场景 | 注入方式 | 应观察 |
|---|---|---|
| 射频链路中断 | 关闭发射模块或按设备支持方式停止发射 | 接收机和飞控失联标志、检测时间 |
| 接收机断电 | 使用预先验证的低压开关受控切断接收机电源 | 飞控检测到无输入 |
| 信号线断开 | 断电后断开,重新上电测试 | 飞控检测到数据缺失 |
| 短时中断 | 使用可重复方法制造短中断 | 检测标志和恢复计时 |
| 持续中断 | 超过配置超时 | 最终动作状态被请求;不以未解锁输出证明空中动作 |
| 链路恢复 | 恢复射频或接收机 | 恢复延迟和重新解锁阻止 |
| 发射机异常开关状态 | 解锁开关保持开后恢复链路 | 不得自动重新解锁 |
断开信号线必须断电操作;不要在密集飞控焊盘上带电拔插。
固定版本SITL/HITL另行记录:
| 初始状态 | 失效注入 | 必须证明 |
|---|---|---|
| 已解锁、离地、人工模式 | 遥控失联 | 暂态时序、最终动作、是否仍解锁 |
| 已解锁、离地、位置模式 | 遥控失联 | 对位置与Home的依赖、降级分支 |
| 已解锁、离地 | 失联后恢复 | 何时恢复控制、是否需要开关复位 |
| 已落地或低油门 | 遥控失联 | 与空中状态不同的停机分支 |
测试要记录时间¶
至少记录:
- 最后有效帧时刻;
- 飞控判定失联时刻;
- 第一阶段开始时刻;
- 最终动作开始时刻;
- 链路恢复时刻;
- 飞控确认恢复时刻;
- 是否要求先解除再重新解锁。
手机视频时间轴只能作为粗略证据。精确时序优先使用飞控日志、协议状态或逻辑分析仪。
四个平台的失联思路¶
Betaflight 2026.6.2¶
以当前固件实际帮助、App字段和2026.6.2标签源码为准。官方滚动文档将飞控侧失联分为信号验证、阶段1和阶段2,并要求真正验证接收机失联输出。
滚动文档中4.4或4.5的默认时序、master枚举不能直接声明为2026.6.2行为。保存该机CLI的help、status和相关get输出,并与2026.6.2标签源码核对。
INAV 9.1.0¶
按INAV Failsafe文档设置各阶段和导航相关动作。若选择返航、降落等依赖位置的动作,必须先满足传感器、位置、Home和模式前提。
ArduPilot Copter 4.7.1¶
遥控失联配置包含触发阈值、超时和动作。按官方Radio Failsafe文档测试;同时区分遥控失联、地面站失联和电池失效保护。
PX4 v1.17.0¶
接收机应输出无信号,或使用PX4支持的低油门检测方法。保存COM_RC_LOSS_T、COM_FAIL_ACT_T、NAV_RCL_ACT及相关例外设置的实际值,并验证Hold或最终动作的状态转换。
返航不是默认安全答案¶
选择返航前必须证明:
- GNSS和状态估计健康;
- Home已建立且正确;
- 返航高度和路径适合场地;
- 地理围栏和空域约束一致;
- 磁航向或其他航向源可靠;
- 电池余量足以执行;
- 失去定位时有第二层动作;
- 返航不会穿越人员、建筑或障碍。
这些条件尚未完成时,可以在软件在环或无桨状态验证状态机,但不能把真实返航标记为已验证。
恢复行为¶
链路恢复后要确认:
- 飞控不是收到一帧就立刻判定完全恢复,除非平台设计明确如此;
- 当前油门和摇杆位置不会产生突然输出;
- 已失效解锁后不会自动重新解锁;
- 解锁开关需先回到解除位置;
- 自动模式交回人工控制的条件明确;
- 恢复事件进入日志。
失效保护不只定义“失去信号时做什么”,还必须定义“信号回来时谁取得控制权”。
常见错误¶
- 只在接收机页面看到通道正常,没有关闭射频测试;
- 关闭整个发射机导致开关自动复位,未覆盖真实失联前状态;
- 接收机保持最后油门值,飞控没有失联标志;
- 只在未解锁实机观察到失联,没有用固定版本SITL/HITL验证空中最终动作;
- 恢复链路时油门不在安全位置;
- 把地面站链路中断当成遥控链路中断;
- 测试后忘记恢复临时延时或动作参数。
本篇放行条件¶
- 每个控制件只映射到预期通道;
- 四个主控轴方向正确;
- 最小、最大和中位稳定;
- 所有模式开关区间明确且无抖动跨越;
- 解锁与预解锁条件已经只读验证,实体机未真实解锁;
- 接收机失联不会无限保持看似有效的最后值;
- 未解锁实体机的短时和持续失联检测均已测试;
- 已解锁、离地、已落地和恢复分支已在固定版本SITL/HITL中测试,或保持为阻断首次飞行的
未测试; - 接收机断电或信号断路能够被检测;
- 链路恢复不会自动重新解锁;
- 测试后参数已复核;
- 螺旋桨仍未安装。
检查理解¶
- 绑定成功为什么不能证明失联保护正常?
- 接收机保持最后值为什么危险?
- 为什么要分别测试射频中断、接收机断电和信号线断开?
- 链路恢复后为什么应要求解锁开关先回到解除位置?
- 返航作为失联动作需要哪些额外前提?