- 嵌入式
- 物联网
- 机器人
- 自动驾驶
- 智能硬件
【免费下载链接】PX4-Autopilot
PX4 Autopilot Software
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 Action | COM_LOW_BAT_ACT | 容量低于触发等级时告警、降落或返航后再降落/终止 |
| Battery Warn Level | BAT_LOW_THR | 告警(或其他动作)的容量百分比 |
| Battery Failsafe Level | BAT_CRIT_THR | 触发返航动作的容量百分比(若选择单一动作则触发该动作) |
| Battery Emergency Level | BAT_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 action | COM_FLTT_LOW_ACT | 剩余电量仅够返航时的动作:0:None,1:Warning(默认),3:Return |
| Maximum flight time failsafe level | COM_FLT_TIME_MAX | 触发返航的最大飞行时间(秒);-1:禁用(默认) |
手动控制丢失失效保护
当超过 手动控制丢失超时 时间没有任何已配置的 手动控制器 可用时,触发手动控制丢失失效保护。QGC 安全界面可设置 失效动作 与 超时时间;可通过 COM_RCL_EXCEPT 在特定模式下禁用该失效保护。注意:PX4 与接收机还需按 Radio Setup > RC Loss Detection 配置才能检测 RC 丢失。
| 参数 | 设置 | 说明 |
|---|---|---|
| COM_RC_LOSS_T | Manual Control Loss Timeout | 距所选手动控制源最后一次收到 setpoint 后,判定手动控制丢失的时间。必须设短,因为超时前飞行器会继续按最后摇杆位置飞行 |
| COM_FAIL_ACT_T | Failsafe Reaction Delay | 失效条件触发(COM_RC_LOSS_T)与失效动作(Return/Land/Hold)之间的延时(秒)。此阶段飞行器在 Hold 模式下等待手动控制源重连;长距离飞行可设长些以免瞬时断连立即触发,也可设 0 立即触发 |
| NAV_RCL_ACT | Failsafe Action | Disabled、Loiter(盘旋)、Return、Land、Disarm、Terminate、Hold mode (no failsafe) |
| COM_RCL_EXCEPT | RC 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 Timeout | COM_DL_LOSS_T | 失去数据连接后触发失效保护前的等待时间 |
| Failsafe Action | NAV_DLL_ACT | Disabled、Hold mode、Return mode、Land mode、Disarm、Terminate |
| Mode exceptions for DLL failsafe | COM_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 breach | GF_ACTION | None、Warning、Hold mode、Return mode、Terminate、Land |
| Max Radius | GF_MAX_HOR_DIST | 围栏圆柱水平半径;为 0 则禁用围栏 |
| Max Altitude | GF_MAX_VER_DIST | 围栏圆柱高度;为 0 则禁用围栏 |
将
GF_ACTION设为 Terminate 会在违规时摧毁飞行器。因固有危险性,该功能默认被 CBRK_FLIGHTTERM 禁用,需将其复位为 0 才能真正生效。
以下设置也生效,但不在 QGC 界面显示:
| 设置 | 参数 | 说明 |
|---|---|---|
| Geofence source | GF_SOURCE | 位置源使用估计的全局位置或直接来自 GPS 设备 |
| Circuit breaker for flight termination | CBRK_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_AVOID | Crosstrack 模型的动作 |
| DAA_LVL_LOW_ACT | F3442 模式下LOW冲突的动作 |
| DAA_LVL_MED_ACT | F3442 模式下MEDIUM冲突的动作 |
| DAA_LVL_HIGH_ACT | F3442 模式下HIGH冲突的动作 |
| DAA_LVL_CRIT_ACT | F3442 模式下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_ODID | Remote 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_LOSS | VTOL 过渡到固定翼期间触发 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_ODID | Remote 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
相关推荐
PyAutoGUI安全机制详解:FailSafe失效保护与PAUSE暂停参数如何防止脚本失控
PyAutoGUI安全机制详解:FailSafe失效保护与PAUSE暂停参数如何防止脚本失控 PyAutoGUI 是一款跨平台的 GUI 自动化 Python
RPAGUI 自动化PX4-Autopilot 飞行安全体系:Failsafe 故障保护与应急处理配置指南
PX4 Autopilot 飞行安全体系:Failsafe 故障保护与应急处理配置指南 PX4 将飞行安全构建为一整套 手动 + 自动 的防护体系:从触发条件(
嵌入式物联网机器人自动驾驶智能硬件Home Assistant Keba Charging Station:Set failsafe 动作配置指南(安全兜底电流详解)
Home Assistant Keba Charging Station:Set failsafe 动作配置指南(安全兜底电流详解) 本指南以 Home Ass
文档教程智能家居物联网
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考