☰
PX4 安全失效保护(Failsafe)配置完全指南:QGC 安全设置、失效动作与参数详解
2026/10/4 2:41:04 网站建设 项目流程
  • 嵌入式
  • 物联网
  • 机器人
  • 自动驾驶
  • 智能硬件

【免费下载链接】PX4-Autopilot

PX4 Autopilot Software

项目地址:https://gitcode.com/gh_mirrors/px/PX4-Autopilot
点击查看免费下载

PX4 固件内置了一套完整的飞行安全体系,涵盖电池、遥控链路、数据链路、地理围栏、位置估计、外部通信等多种失效保护(Failsafe)机制,以及紧急开关、失效检测器等主动安全手段。本指南以 docs/en/config/safety.md 为核心,系统讲解 PX4 各类失效保护的触发条件、可配置动作与底层参数(以当前仓库src/modules/commander源码为佐证),帮助你在 QGroundControl(QGC)中正确配置安全设置,并在出现异常时理解飞控的实际行为。

失效保护总览与动作分级

PX4 的失效保护允许你划定安全飞行区域与条件,并指定触发后执行的动作(例如降落、悬停或返航)。多数关键失效保护在 QGC 的Safety Setup(安全设置)页面配置,其余则需通过 参数配置 完成。

失效保护触发后,多数机制默认先进入Hold(悬停/盘旋)状态,持续 COM_FAIL_ACT_T 秒再执行关联动作,给用户留出接管时间。接管通常可通过 RC 或地面站切换模式实现(注意:失效保护悬停期间拨动摇杆不会触发接管)。

所有失效动作按严重程度递增排序如下:

动作说明
None/Disabled无动作,忽略该失效保护
Warning发送警告消息(如发送至 QGC)
Hold mode进入 Hold 模式(MC) 或 Hold 模式(FW) 悬停或盘旋;VTOL 按当前模式(MC/FW)保持
Return mode进入返航模式,返航行为可在 Return Home 设置 中配置
Land mode进入 Land 模式(MC) 或 Land 模式(FW) 并降落;VTOL 先切换到 MC 模式
Disarm立即停转电机
Flight termination关闭所有控制器,将所有 PWM 输出置为失效保护值(如 PWM_MAIN_FAILn、PWM_AUX_FAILn),可用于展开降落伞、放起落架等操作;固定翼还可借此滑翔

若同时触发多个失效保护,将执行更严重的动作。例如同时丢失 RC 与 GPS,且手动控制丢失设为 Return、GCS 链路丢失设为 Land,则最终执行 Land。

失效保护状态机(源码级视角)

在 src/modules/commander/failsafe/framework.h 中,FailsafeBase::Action枚举完整定义了上述动作(含FallbackPosCtrl/FallbackAltCtrl/FallbackStab等位置控制降级动作),并按枚举顺序决定优先级——越靠后的动作越优先。FailsafeBase::Cause枚举则区分了手动控制丢失、GCS 链路丢失、电池低/临界/紧急、剩余飞行时间低等触发原因。状态机每次更新时通过checkFailsafe()汇总所有激活的失效保护条件,结合 COM_FAIL_ACT_T 延时(源码中_current_delay字段管理)后选出最终动作。

PX4 还提供了 Failsafe State Machine Simulation(失效保护状态机仿真):该页面在浏览器中实时运行与机载完全相同的代码,可先用左侧参数面板配置(初始值为 PX4 默认值)、设置机型与条件标志,观察输出动作,验证多失效保护叠加下的行为;也可通过make run_failsafe_web_server在本地运行同一套仿真。

返航模式设置

Return(返航)是常见的失效保护动作,使飞行器回到 Home 点。各机型默认设置通常已够用,但固定翼通常需要定义任务降落(mission landing)。如需修改配置,务必先阅读 Return 模式 中对应机型的文档。QGC 中可配置返航高度与盘旋时间(如需要放起落架)。

降落模式设置

在当前点降落(Land at current position)是多旋翼常用的失效保护动作。QGC 可配置降落后自动解锁时间与下降速率(仅多旋翼)。修改前同样建议阅读 Land 模式 文档。

QGC 安全设置页面

QGC 的 Safety Setup 页面通过点击 QGC 图标 →Vehicle Setup→ 侧边栏Safety进入,集中了多数关键失效保护设置(电池、RC 丢失等)以及 Return 与 Land 动作的行为设置。

电池失效保护

电池电量等级失效保护

低电量失效保护在电池容量低于阈值时触发。阈值与各级动作均可在 QGC 配置,且应满足Warn > Failsafe > Emergency(警告级 > 失效保护级 > 紧急级)。PX4 会对任何动作设置触发警告级告警。

失效动作可选:

  • 0: Warning— 仅告警。
  • 2: Land mode— 在 "Failsafe level"(失效保护级)降落。
  • 3: Return at critical level, land at emergency level(推荐)— 在 "Failsafe level" 返航,在 "Emergency level"(紧急级)降落。
  • 4: Return at critical level, terminate at emergency level(PX4 v2.0 main 分支)— 在 "Failsafe level" 返航,在 "Emergency level" 执行 飞行终止。该选项适合携带 降落伞 的飞行器,可在完全无电时受控降落;若设置界面无此选项,可直接将参数 COM_LOW_BAT_ACT = 4。

各级设置与底层参数对照:

设置参数说明
Failsafe ActionCOM_LOW_BAT_ACT容量低于触发等级时告警、降落或返航后再降落/终止
Battery Warn LevelBAT_LOW_THR告警(或其他动作)的容量百分比
Battery Failsafe LevelBAT_CRIT_THR触发返航动作的容量百分比(若选择单一动作则触发该动作)
Battery Emergency LevelBAT_EMERGEN_THR触发立即降落动作的容量百分比

从源码看,commander_params.yaml 中COM_LOW_BAT_ACT的类型为枚举,取值0/2/3/4,默认0;而 failsafe.cpp 中电池状态通过Cause::BatteryLow/BatteryCritical/BatteryEmergency进入状态机,BAT_*_THR阈值决定当前电池状态归属哪一级。QGC 截图中的典型设置为:告警 15%、失效保护 7%、紧急 5%。

飞行时间失效保护

除电量外还有若干"电池相关"的失效保护机制:

  • 剩余返航时间失效保护(COM_FLTT_LOW_ACT):当 PX4 估计剩余电量仅够返航降落时触发,可配置为忽略、告警或进入返航模式。
  • 最大飞行时间失效保护(COM_FLT_TIME_MAX):起飞后达到最大飞行时间自动进入返航(并在 90% 时间时告警),相当于对电池总飞行时间的"硬编码"估算,默认禁用。
  • 最低解锁电量(COM_ARM_BAT_MIN):电池电量低于设定值时阻止解锁。
设置参数说明
Low flight time for safe return actionCOM_FLTT_LOW_ACT剩余电量仅够返航时的动作:0:None,1:Warning(默认),3:Return
Maximum flight time failsafe levelCOM_FLT_TIME_MAX触发返航的最大飞行时间(秒);-1:禁用(默认)

手动控制丢失失效保护

当超过 手动控制丢失超时 时间没有任何已配置的 手动控制器 可用时,触发手动控制丢失失效保护。QGC 安全界面可设置 失效动作 与 超时时间;可通过 COM_RCL_EXCEPT 在特定模式下禁用该失效保护。注意:PX4 与接收机还需按 Radio Setup > RC Loss Detection 配置才能检测 RC 丢失。

参数设置说明
COM_RC_LOSS_TManual Control Loss Timeout距所选手动控制源最后一次收到 setpoint 后,判定手动控制丢失的时间。必须设短,因为超时前飞行器会继续按最后摇杆位置飞行
COM_FAIL_ACT_TFailsafe Reaction Delay失效条件触发(COM_RC_LOSS_T)与失效动作(Return/Land/Hold)之间的延时(秒)。此阶段飞行器在 Hold 模式下等待手动控制源重连;长距离飞行可设长些以免瞬时断连立即触发,也可设 0 立即触发
NAV_RCL_ACTFailsafe ActionDisabled、Loiter(盘旋)、Return、Land、Disarm、Terminate、Hold mode (no failsafe)
COM_RCL_EXCEPTRC Loss Exceptions忽略手动控制丢失的模式集合

在 commander_params.yaml 中,COM_RC_LOSS_T默认0.5 s,范围0–35 s;源码注释强调该值不得低于 RC/Joystick 的更新周期。COM_FAIL_ACT_T默认5.0 s(范围0–25 s)。NAV_RCL_ACT在 failsafe.cpp 中通过fromNavDllOrRclActParam()映射为状态机动作:例如Terminate不允许用户接管且条件永不自动清除(ClearCondition::Never)。

Hold 模式(无失效保护)

Hold mode (no failsafe)动作(NAV_RCL_ACT = 7)是特例,不会进入失效保护状态。若在手动模式(Position/Altitude/Stabilized)飞行中丢失手动控制,飞行器会如同用户主动指令一样切换到 Hold 模式:无失效保护状态、无告警通知。这适用于"丢失手动控制时切到 Hold 属于预期行为、不应作为失效保护上报"的场景(如一个 GCS 操作多架无人机)。

若无法进入 Hold(如没有有效位置估计),则常规失效保护接管并逐级升级(Return、Land、Descend 或 Terminate)。任何非手动(自动/offboard)模式下,该设置会忽略手动控制丢失。

数据链路丢失失效保护

与最后连接的 MAVLink 地面站(如 QGC)失去连接时触发数据链路丢失失效保护;可通过 COM_DLL_EXCEPT 在特定模式禁用。

设置参数说明
Data Link Loss TimeoutCOM_DL_LOSS_T失去数据连接后触发失效保护前的等待时间
Failsafe ActionNAV_DLL_ACTDisabled、Hold mode、Return mode、Land mode、Disarm、Terminate
Mode exceptions for DLL failsafeCOM_DLL_EXCEPT忽略数据链路丢失的模式集合

从 commander_params.yaml 可见COM_DL_LOSS_T默认10 s(范围5–300 s);另有COM_HLDL_LOSS_T(高延迟链路,默认120 s)。NAV_DLL_ACT的枚举值(默认0: Disabled)与NAV_RCL_ACT共用fromNavDllOrRclActParam()映射逻辑。

地理围栏失效保护

当地理围栏被突破时触发。最简单的围栏是以 Home 点为中心的圆柱:飞行器超出半径或高于设定高度即触发指定失效动作。注意:动作只在飞行器已经突破围栏后才触发;若出于安全或法律原因需要严格禁飞区,将 GF_ACTION 设为Hold并在围栏中预留安全余量,余量至少为:

  • 固定翼:盘旋半径 NAV_LOITER_RAD。
  • 多旋翼:制动距离(v²/2a,其中v=MPC_XY_VEL_MAX,a=MPC_ACC_HOR_MAX)。

建议在上述标称值之上再留余量,以覆盖顺风、位置不确定性、姿态跟踪延迟等影响。

PX4 还支持更复杂的围栏几何(多个任意多边形/圆形的包含与排除区域),见 Flying > Geofence。

设置参数说明
Action on breachGF_ACTIONNone、Warning、Hold mode、Return mode、Terminate、Land
Max RadiusGF_MAX_HOR_DIST围栏圆柱水平半径;为 0 则禁用围栏
Max AltitudeGF_MAX_VER_DIST围栏圆柱高度;为 0 则禁用围栏

将GF_ACTION设为 Terminate 会在违规时摧毁飞行器。因固有危险性,该功能默认被 CBRK_FLIGHTTERM 禁用,需将其复位为 0 才能真正生效。

以下设置也生效,但不在 QGC 界面显示:

设置参数说明
Geofence sourceGF_SOURCE位置源使用估计的全局位置或直接来自 GPS 设备
Circuit breaker for flight terminationCBRK_FLIGHTTERM启用/禁用飞行终止动作(默认禁用)

从 failsafe.cpp 的fromGfActParam()可见:围栏 Hold 动作允许仅通过模式切换接管(UserTakeoverAllowed::AlwaysModeSwitchOnly),确保用户能脱离围栏区域;Terminate 动作同样禁止接管且不自动清除。

位置估计失效保护

本节涉及与位置估计质量相关的失效保护。

位置丢失失效保护

当飞行器处于需要合格位置估计的模式,而 PX4 位置估计质量低于可接受水平(可能由 GPS 丢失引起)时触发。使位置估计失效有两种机制:

  • 自最后一次融合提供直接速度或水平位置测量的传感器数据起超时(此类传感器包括:GNSS、光流、空速、VIO、辅助全局位置)。
  • 估计的水平位置误差超过阈值 COM_POS_LOW_EPH——该检查仅针对悬停类系统(旋翼机或处于悬停阶段的 VTOL);固定翼参见下文 位置精度低失效保护。
参数说明
EKF2_NOAID_TOUT最大惯性纯推算时间,即收到任何约束速度漂移的传感器数据后,允许的最长无数据时间(微秒)
COM_POS_FS_EPH悬停飞行器(多旋翼及悬停态 VTOL)的水平位置误差阈值;固定翼该值为无穷大

位置丢失失效动作

多旋翼在依赖位置的飞控模式(如 Position 模式)下飞行时,若高度估计可用则切换到 Altitude 模式,否则切换到 Stabilized 模式。

若同时丢失手动控制或处于自主模式,PX4 依次尝试Return 模式(需要有效全局位置与 Home 位置)→Land 模式(需要局部位置估计)→ Descend 模式(MC)(完全无位置估计时)。

固定翼在依赖位置的飞控模式(如 Cruise 模式)下类似:高度估计可用则切 Altitude 模式(FW),否则切 Stabilized 模式(FW);若同时丢失手动控制或处于自主模式,同样依次尝试 Return → Land → Descend 模式(FW)。在 Descend 模式中,飞行器先在当前高度以恒定滚转角(FW_GPSF_R)盘旋 FW_GPSF_LT 秒,再开始下降。

VTOL 遵循上述固定翼行为,除非配置为悬停降落(NAV_FORCE_VT),此时先过渡到悬停再遵循多旋翼行为。

PX4 v2.0(main 分支)可将 COM_POS_FS_ACT 设为Terminate以执行 飞行终止 而非 Descend——适用于携带降落伞的无人驾驶飞行器。

参数说明
COM_POS_FS_ACT原本会 Descend 时的动作(PX4 v2.0 main):0:Descend(默认,尽可能下降),1:Terminate
FW_GPSF_LT固定翼:下降前在当前高度等待位置估计恢复的盘旋时间;设为 0 禁用
FW_GPSF_R盘旋时的固定滚转/坡度角
NAV_FORCE_VT为 true 时强制 VTOL 起飞/降落,即使在Descend失效保护中

在 framework.h 中PositionFailsafeAction枚举(Descend=0、Terminate=1)直接对应COM_POS_FS_ACT的取值,状态机据此决定最终降级动作。

位置精度低失效保护

固定翼只要仍有水平辅助源(如空速传感器),位置估计就不会被严格判为失效。此时可配置独立的失效保护:当位置估计误差超过 COM_POS_LOW_EPH 阈值时触发。若飞行器处于任务或 Hold 模式则执行失效动作,否则仅告警。

参数说明
COM_POS_LOW_EPH超过该位置误差阈值即执行 COM_POS_LOW_ACT
COM_POS_LOW_ACT位置误差超过阈值时采取的失效动作

注意:若水平辅助源也不复存在,位置估计将在EKF2_NOAID_TOUT后失效,适用标准位置丢失失效保护。

GNSS 校验失效保护

PX4 v1.18 起支持,触发条件为:

  • 数量下降:具有 3D 定位的接收机数量低于 SYS_HAS_NUM_GNSS。SYS_HAS_NUM_GNSS=0(默认)时不触发失效动作。
  • 位置发散:两个接收机报告的位置偏差超过其预期间距(由 SENS_GNSS0_OFFX/Y、SENS_GNSS1_OFFX/Y 配置)加上各自报告精度之和。仅当SYS_HAS_NUM_GNSS=2时触发失效动作。

至少会发出警告,额外失效动作通过 COM_GNSSLOSS_ACT 配置。单个 GPS(无需双机时)的丢失由其他 GPS 健康检查处理。

参数说明
SYS_HAS_NUM_GNSS解锁所需的可用 GNSS 接收机数量;若要求 2 个则两者还需一致
COM_GNSSLOSS_ACT飞行中检测到 GNSS 故障时的失效动作

在 commander_params.yaml 中,COM_GNSSLOSS_ACT取值0: Warning(默认)、1: Return、2: Land、3: Terminate,且任何高于 Warning 的取值也会阻止解锁。

Offboard 丢失失效保护

在 Offboard 控制 期间丢失 offboard 链路时触发。

参数说明
COM_OF_LOSS_T丢失 offboard 连接后触发失效保护的延时
COM_OBL_RC_ACT丢失 offboard 控制后切换到的飞行模式

COM_OF_LOSS_T在 commander_params.yaml 中默认1.0 s(范围0–60 s);COM_OBL_RC_ACT的枚举取值包括 Position、Altitude、Stabilized、Return、Land、Hold、Terminate、Disarm(默认0: Position mode)。

交通避让失效保护

交通避让失效保护让 PX4 响应 协作式交通报告。动作参数取决于固件编译时选择的冲突模型。

参数说明
DAA_EN启用或禁用 Detect and Avoid
NAV_TRAFF_AVOIDCrosstrack 模型的动作
DAA_LVL_LOW_ACTF3442 模式下LOW冲突的动作
DAA_LVL_MED_ACTF3442 模式下MEDIUM冲突的动作
DAA_LVL_HIGH_ACTF3442 模式下HIGH冲突的动作
DAA_LVL_CRIT_ACTF3442 模式下CRITICAL冲突的动作

所有动作参数取值均为Disabled、Warn only、Return mode、Land mode、Position Hold mode、Terminate。冲突模型与动作转换细节参见 Detect and Avoid。

Remote ID 失效保护

PX4 v1.18 起支持。当飞行器已解锁而 Remote ID(Open Drone ID) 模块未被检测到或报告不健康时触发。失效动作与解锁行为均由COM_ARM_ODID配置:

参数说明
COM_ARM_ODIDRemote ID 解锁检查与飞行中失效保护。0:Disabled(默认),1:Warning only,2:Error only(阻止解锁),3:Return,4:Land,5:Terminate。失效时:Error/Return/Land/Terminate阻止解锁;Return/Land/Terminate在空中时启动相应动作/模式

降落伞健康失效保护

PX4 v1.18 起支持。当 MAVLink 降落伞 系统在飞行器已解锁或空中时缺失或不健康时触发。

参数说明
COM_PARACHUTE降落伞系统监测与失效动作。0:Disabled(默认),1:Warning,2:Error,3:Return,4:Land。Warning检查失败时仅告警不阻止解锁;Error/Return/Land检查失败时阻止解锁;Return/Land在飞行中发生故障时启动相应动作

Quad-chute(四旋翼应急切换)失效保护

当 VTOL 飞行器无法再以固定翼模式飞行(可能由于推进电机、空速传感器或舵面故障)时触发。触发后飞行器立即切换到多旋翼模式并执行 COM_QC_ACT 定义的动作。

Quad-chute 也可通过发送 MAVLink MAV_CMD_DO_VTOL_TRANSITION 消息且param2=1手动触发。

参数说明
COM_QC_ACT切换到多旋翼后的动作:Warning、Return、Land、Hold
VT_FW_QC_HMAX最大 quad-chute 高度,低于此高度才允许触发。防止高空 quad-chute 下降耗尽电池(本身也可能导致坠毁)。高度相对地面/Home/局部原点(按可用性优先级)
VT_QC_ALT_LOSS非指令下降 quad-chute 高度阈值。在高度受控模式(Hold/Cruise/Altitude/Mission)中,飞行器应跟踪"指令"高度设定点;低于设定点该参数设定值即触发。仅当飞行器持续低于设定点下降才触发,不因设定点上升快于跟随能力而触发
VT_QC_T_ALT_LOSSVTOL 过渡到固定翼期间触发 quad-chute 的高度损失阈值;完成过渡前低于初始高度该值即触发
VT_FW_MIN_ALT固定翼飞行相对 Home 的最低高度;低于此值触发 quad-chute
VT_FW_QC_R固定翼模式下触发 quad-chute 的绝对滚转阈值
VT_FW_QC_P固定翼模式下触发 quad-chute 的绝对俯仰阈值

强风失效保护

当风速超过警告阈值与最大风速阈值时,可触发警告和/或其他模式切换。

参数说明
COM_WIND_MAX触发失效动作的风速阈值(m/s)
COM_WIND_MAX_ACT强风失效动作:0:None(默认),1:Warning,2:Hold,3:Return,4:Terminate,5:Land
COM_WIND_WARN触发周期性失效保护警告的风速阈值

失效检测器(Failure Detector)

失效检测器让飞行器在意外翻转、检测到电机故障或收到外部失效检测系统通知时采取保护动作。

飞行中,失效检测器可在满足失效条件时触发 飞行终止,进而展开 降落伞 或执行其他动作。飞行中响应检测到的失效默认禁用(通过设置 CBRK_FLIGHTTERM=0 启用)。

起飞时,失效检测器的 姿态触发 在飞行器翻转时执行 Disarm 动作(Disarm 停转电机,但不同于飞行终止,不会展开降落伞或执行其他失效动作)。该检查在起飞时始终启用,与CBRK_FLIGHTTERM无关。

失效检测器在所有机型与模式下激活,但预期翻转的机型除外(如 Acro 模式(MC)、Acro 模式(FW)、Manual 模式(FW))。

高度损失触发

PX4 v1.18 起(MC、VTOL 专用)。在高度受控飞行模式(如 Position 模式、Altitude 模式)下,旋翼机低于指令设定点超过 FD_ALT_LOSS 米即触发 飞行终止,可能展开降落伞。

参数说明
FD_ALT_LOSS高度损失阈值(m);低于设定点该值即触发飞行终止;设为 0 禁用
FD_ALT_LOSS_T飞行终止触发前需持续低于阈值的时间(s)

姿态触发

失效检测器可在飞行器姿态超过预设俯仰/滚转值并持续指定时间时触发。

参数说明
CBRK_FLIGHTTERM飞行终止断路器;从默认121212解除(设为 0)以启用 FailureDetector 或 FMU 丢失导致的飞行终止
FD_FAIL_P最大允许俯仰角(度)
FD_FAIL_R最大允许滚转角(度)
FD_FAIL_P_TTRI超过 FD_FAIL_P 的检测时间(默认 0.3s)
FD_FAIL_R_TTRI超过 FD_FAIL_R 的检测时间(默认 0.3s)

电机故障触发

失效检测器可在解锁状态下,ESC 电流超出预期阈值超过 MOTFAIL_TIME 秒时判定电机故障并触发相应动作。被此电流检查标记的电机在解锁前保持标记状态——因为对故障的反应可能停转电机,使其看似恢复正常。

欠流与过流条件定义为:

undercurrent: {esc current} < {MOTFAIL_C2T} * {motor command [0,1]} - {MOTFAIL_OFF} overcurrent: {esc current} > {MOTFAIL_C2T} * {motor command [0,1]} + {MOTFAIL_OFF}

电机故障动作由 CA_FAILURE_MODE 设置,动作取决于机型,可能包括警告用户、将故障电机从控制分配中移除、禁用对称电机等,详见 Motor Failure Recovery。

参数说明
FD_ACT_EN完全启用/禁用电机故障触发
MOTFAIL_C2T归一化电机指令 [0–1] 与预期稳态电流之间的斜率(A/%)
MOTFAIL_OFF欠/过流检测阈值偏移(A);加/减到预期电流形成上下界
MOTFAIL_TIME电流阈值需持续超出的迟滞时间(s)后才触发电机故障
CA_FAILURE_MODE故障模式;见 Motor Failure Recovery

外部自动触发系统(ATS)

失效检测器(若 启用)也可由外部 ATS 系统触发。外部触发系统必须连接到飞控的 AUX5 端口(无 AUX 端口的板卡用 MAIN5),配置参数如下。

外部 ATS 为 ASTM F3322-18 所要求。ATS 设备示例为 FruityChutes Sentinel Automatic Trigger System(SATS-MINI)。

参数说明
FD_EXT_ATS_EN启用 AUX5/MAIN5(视板卡而定)PWM 输入以从外部 ATS 触发失效保护;默认禁用
FD_EXT_ATS_TRIG外部 ATS 触发失效保护的 PWM 阈值;默认 1900 ms

任务可行性检查

PX4 会执行多项检查以确保任务只有可行时才能启动,例如确保首个航点不过远、任务航线不与地理围栏冲突。严格来说这些并非"失效保护",因此分别记录在 Mission Mode (FW) > Mission Feasibility Checks 与 Mission Mode (MC) > Mission Feasibility Checks 中。

紧急开关(Emergency Switches)

RC 开关可在 QGC Flight Mode Setup 中配置,用于在问题或紧急情况下快速采取纠正动作,例如停止所有电机或激活 返航开关。

Kill 开关

Kill 开关立即停止所有电机输出——若在飞行中,飞行器将开始坠落!若在 5 秒内拨回开关,电机可重新启动;超过 5 秒飞行器自动解锁(disarm),需重新解锁才能启动电机。注意还有不可逆转的 Kill 手势。

解锁/解锁开关

解锁/解锁开关是默认摇杆解锁机制的直接替代品(目的相同:确保电机启停前有明确意图步骤)。选择它的原因:偏好开关而非摇杆动作、避免飞行中特定摇杆动作误触解锁/解锁、无延迟(立即响应)。

该开关立即对支持飞行中解锁的 飞行模式 停转电机,包括Manual mode、Acro mode、Stabilized。对不支持飞行中解锁的模式(如Position mode及自主模式Mission、Land等),开关在飞行中被忽略,但可在检测到降落后使用。

自动解锁超时(如 COM_DISARM_LAND)与解锁/解锁开关相互独立——即使开关处于解锁状态,超时仍会生效。

返航开关

返航开关可立即进入 Return 模式。

Kill 手势

Kill 手势立即停止所有电机输出——若在飞行中,飞行器将开始坠落!该动作无法在不重启的情况下撤销(区别于 Kill 开关,后者 5 秒内可逆转)。

参数说明
MAN_KILL_GEST_T摇杆保持手势位置多久后停转电机;默认-1秒(禁用)

解锁/解锁设置(Arming/Disarming)

commander 模块 有一系列以COM_ARM为前缀的参数,配置飞行器能否解锁及解锁条件(注意部分COM_ARM前缀参数用于解锁其他系统);以COM_DISARM_为前缀的参数影响解锁行为。

自动解锁超时

可设置超时,在起飞过慢和/或降落后自动解锁(解锁移除电机电源,螺旋桨不再转动)。

参数说明
COM_DISARM_LAND降落后自动解锁超时。在 commander_params.yaml 中默认2.0 s;零/负值禁用
COM_DISARM_PRFLT起飞过慢自动解锁超时。源码默认10.0 s;负值禁用

解锁前置条件

这些参数可设置阻止解锁的条件。

参数说明
COM_ARMABLE是否允许解锁:0:Disabled,1:Enabled(默认)
COM_ARM_BAT_MIN最低解锁电量:0:Disabled(默认),取值范围0–0.9
COM_ARM_WO_GPS允许无 GPS 解锁:0:Disabled,1:Enabled(默认)
COM_ARM_MIS_REQ要求有效任务才能解锁:0:Disabled(默认),1:Enabled
COM_ARM_AUTH_REQ要求外部(MAVLink)系统授权解锁:1:Enabled,0:Disabled(默认);关联配置参数以COM_ARM_AUTH_为前缀
COM_ARM_ODIDRemote ID 解锁检查与飞行中失效保护:0:Disabled(默认),1:Warning only,2:Error only,3:Return,4:Land,5:Terminate。见 Remote ID 失效保护

此外还有若干系统与传感器限制参数,超限会阻止解锁:COM_CPU_MAX、COM_ARM_IMU_ACC、COM_ARM_IMU_GYR、COM_ARM_MAG_ANG、COM_ARM_MAG_STR。以 COM_ARM_IMU_ACC 为例,其默认0.7 m/s²(范围0.1–1.0),用于 IMU 单元间加速度计不一致性检查。

配置与验证建议

  • 优先使用 QGC Safety Setup:电池、RC 丢失、数据链路、围栏等高频失效保护均可在界面完成,其余通过 参数配置(QGC 参数页或 MAVLink 协议)设置。
  • 动作分级要有余量:多失效保护叠加时执行最严重动作,配置前先想清各保护的优先级组合。
  • 用状态机仿真验证:在 Failsafe State Machine Simulation 中按机型与条件组合演练,避免实际飞行中行为与预期不符。
  • 失效终止需解除断路器:任何依赖 Flight termination 的方案(围栏 Terminate、失效检测器、电机故障等)都须将 CBRK_FLIGHTTERM 从默认121212复位为0。
  • 源码交叉验证:所有参数的默认值、范围与枚举含义可在 src/modules/commander/commander_params.yaml 中核实;动作映射与接管/清除规则见 src/modules/commander/failsafe/failsafe.cpp 与 src/modules/commander/failsafe/framework.h。
  • 嵌入式
  • 物联网
  • 机器人
  • 自动驾驶
  • 智能硬件

【免费下载链接】PX4-Autopilot

PX4 Autopilot Software

项目地址:https://gitcode.com/gh_mirrors/px/PX4-Autopilot
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询