跳转至

遥控输入与失联验证

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

遥控输入与失联状态机

先区分三层

负责内容 常见错误
发射机 摇杆、开关、混控、端点和射频模块 发射机内部混控改变通道含义
接收机 空中链路、输出协议、链路失效输出 失联后持续保持最后值
飞控 通道映射、校准、模式和失效保护 把看似有效的保持值当成正常输入

机内SBUS、CRSF等数据协议不是完整的空中射频协议。排障时要说明问题发生在空中链路、接收机输出还是飞控解析。

安全准备

  • 拆除螺旋桨;
  • 关闭发射机上的自动混控、曲线和配平,除非项目明确要求;
  • 所有配平置于项目定义位置;
  • 油门最低;
  • 解锁开关处于解除位置;
  • 预解锁开关处于安全位置;
  • 机体固定;
  • 明确关闭射频模块和恢复射频模块的操作;
  • 准备记录输入值、链路标志和飞控安全状态。

仅使用USB时接收机可能不供电。需要动力侧或外部5伏时,按电源状态表受控供电。

绑定只解决身份

绑定或配对证明发射机与接收机建立了身份关系,不证明:

  • 接收机输出协议正确;
  • 飞控端口正确;
  • 通道顺序正确;
  • 端点和中位正确;
  • 失联输出正确;
  • 遥测链路正常;
  • 安全动作已经配置。

绑定过程按具体遥控系统手册执行。不要在不知道区域频段、发射功率和法规要求时修改射频参数。

正常输入验证

1. 通道发现

逐个移动:

  • 横滚;
  • 俯仰;
  • 油门;
  • 偏航;
  • 解锁开关;
  • 预解锁开关;
  • 飞行模式开关;
  • 蜂鸣器、返航或其他辅助开关。

一次只动一个控制件,记录哪个飞控通道变化。若多个通道同时变化,检查发射机混控或错误映射。

2. 方向

方向必须按平台界面和官方定义核对。不要仅凭通道条向左或向右判断,应把:

操作者动作
→ 发射机通道
→ 接收机输出
→ 飞控逻辑轴
→ 地面工具显示

完整记录。

3. 范围和中位

校准所有使用中的摇杆、开关、旋钮和滑杆:

  • 最小值稳定;
  • 最大值稳定;
  • 中位稳定;
  • 无输入时不抖动跨越模式阈值;
  • 开关各位置落在明确区间;
  • 油门最低值低于平台允许解锁阈值且保留合理余量;
  • 不通过极端扩大端点制造超出协议有效范围的数值。

ArduPilot官方示例中常见最小、最大约为1100和1900微秒,但这是典型值而非所有系统的强制目标。以当前接收机协议、发射机和平台校准结果为准。

4. 解锁开关

解锁开关应:

  • 有明确的物理开和关位置;
  • 上电时默认处于解除位置;
  • 不与普通飞行模式共用模糊区间;
  • 不因通道抖动跨越阈值;
  • 失联恢复后不自动重新解锁;
  • 标签和操作者检查单一致。

建议使用预解锁加解锁的两步逻辑时,应验证顺序和复位要求。

接收机失联输出

最可靠的设计是接收机在链路丢失时:

  • 停止输出有效控制帧;或
  • 在协议中明确标记帧丢失/失联。

无限保持最后一个看似正常的通道值,会让飞控无法判断链路已经丢失。Betaflight官方明确建议接收机在失联时发送“无数据”,而不是使用接收机侧固定值代替飞控失效保护。PX4也明确指出保持最后值无法被识别为失联。

如果特定旧式接收机只能输出约定的低油门失联值,必须按平台官方方法把该值设置在正常范围之外,并证明飞控会检测,而不是只看到油门降低。

失联测试矩阵

先区分证据层级:

  1. 未解锁实机:验证接收机输出、飞控检测、计时、告警和恢复阻止;不声称已经证明飞行中的DROP、LAND或RTL;
  2. 固定版本SITL/HITL:把载具置于已解锁、离地和指定模式状态,验证最终动作、优先级和恢复;
  3. 平台允许的拆桨已解锁台架:属于后续独立测试程序,不在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.44.5的默认时序、master枚举不能直接声明为2026.6.2行为。保存该机CLI的helpstatus和相关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_TCOM_FAIL_ACT_TNAV_RCL_ACT及相关例外设置的实际值,并验证Hold或最终动作的状态转换。

返航不是默认安全答案

选择返航前必须证明:

  • GNSS和状态估计健康;
  • Home已建立且正确;
  • 返航高度和路径适合场地;
  • 地理围栏和空域约束一致;
  • 磁航向或其他航向源可靠;
  • 电池余量足以执行;
  • 失去定位时有第二层动作;
  • 返航不会穿越人员、建筑或障碍。

这些条件尚未完成时,可以在软件在环或无桨状态验证状态机,但不能把真实返航标记为已验证。

恢复行为

链路恢复后要确认:

  • 飞控不是收到一帧就立刻判定完全恢复,除非平台设计明确如此;
  • 当前油门和摇杆位置不会产生突然输出;
  • 已失效解锁后不会自动重新解锁;
  • 解锁开关需先回到解除位置;
  • 自动模式交回人工控制的条件明确;
  • 恢复事件进入日志。

失效保护不只定义“失去信号时做什么”,还必须定义“信号回来时谁取得控制权”。

常见错误

  • 只在接收机页面看到通道正常,没有关闭射频测试;
  • 关闭整个发射机导致开关自动复位,未覆盖真实失联前状态;
  • 接收机保持最后油门值,飞控没有失联标志;
  • 只在未解锁实机观察到失联,没有用固定版本SITL/HITL验证空中最终动作;
  • 恢复链路时油门不在安全位置;
  • 把地面站链路中断当成遥控链路中断;
  • 测试后忘记恢复临时延时或动作参数。

本篇放行条件

  • 每个控制件只映射到预期通道;
  • 四个主控轴方向正确;
  • 最小、最大和中位稳定;
  • 所有模式开关区间明确且无抖动跨越;
  • 解锁与预解锁条件已经只读验证,实体机未真实解锁;
  • 接收机失联不会无限保持看似有效的最后值;
  • 未解锁实体机的短时和持续失联检测均已测试;
  • 已解锁、离地、已落地和恢复分支已在固定版本SITL/HITL中测试,或保持为阻断首次飞行的未测试
  • 接收机断电或信号断路能够被检测;
  • 链路恢复不会自动重新解锁;
  • 测试后参数已复核;
  • 螺旋桨仍未安装。

检查理解

  1. 绑定成功为什么不能证明失联保护正常?
  2. 接收机保持最后值为什么危险?
  3. 为什么要分别测试射频中断、接收机断电和信号线断开?
  4. 链路恢复后为什么应要求解锁开关先回到解除位置?
  5. 返航作为失联动作需要哪些额外前提?

主要参考