Skip to content

解锁、上锁、预解锁配置

飞行器存在可移动部件,其中部分部件在通电后具有潜在危险性(尤其是电机和螺旋桨)!

为降低事故发生几率,PX4对飞行器部件的供电状态进行了明确划分:

  • 已上锁(Disarmed):电机或执行器无电力供应。
  • 预解锁(Pre-armed):电机/螺旋桨锁定,但非危险电子设备的执行器通电(如副翼、襟翼等)。
  • 已解锁(Armed):飞行器完全通电。电机/螺旋桨可能转动(危险!)

INFO

地面站可能会将预解锁状态的飞行器显示为“已上锁”。尽管从技术角度看,这种显示并不适用于预解锁的飞行器,但它是一种“安全”的显示方式。

用户可通过飞行器上的安全开关(可选),以及地面控制器上的解锁开关/按钮解锁动作或MAVLink命令,来控制飞行器在这些状态间切换:

  • 安全开关:是飞行器上的一个控制装置,必须在飞行器解锁前启用,且可能会阻止预解锁(取决于具体配置)。通常,安全开关集成在GPS单元中,但也可能是一个独立的物理组件。

    WARNING

    已解锁的飞行器具有潜在危险。安全开关是防止意外解锁的一种额外机制。

  • 解锁开关:是遥控器(RC controller)上的一个开关或按钮,可用于解锁飞行器并启动电机(前提是安全开关未阻止解锁)。

  • 解锁动作:是遥控器上的摇杆动作,可作为解锁开关的替代方式。

  • 也可通过地面站发送MAVLink命令来解锁/锁定飞行器。

若飞行器解锁后一段时间内未起飞,或着陆后未手动锁定,PX4会自动锁定飞行器,从而减少解锁状态的飞行器在地面停留的时间。

PX4允许通过参数配置预解锁、解锁和上锁的工作方式(可在QGroundControl中通过参数编辑器进行编辑),具体内容如下。

TIP

解锁/上锁相关参数可在参数参考 > 指令(Commander)中查找(搜索“COM_ARM_”和“COM_DISARM_”)。

解锁/上锁动作

默认情况下,可通过将遥控器的油门/偏航摇杆移动到特定位置并保持1秒来解锁和锁定飞行器。

  • 解锁:油门最小,偏航最大。
  • 上锁:油门最小,偏航最小。

根据遥控器的模式类型,其油门和偏航控制会使用不同的摇杆,因此解锁和上锁动作也有所不同:

  • 模式2
    • 解锁:左摇杆推至右下角。
    • 上锁:左摇杆推至左下角。
  • 模式1
    • 解锁:左摇杆推至右侧,右摇杆推至下方。
    • 上锁:左摇杆推至左侧,右摇杆推至下方。

所需的保持时间可使用COM_RC_ARM_HYST进行配置。请注意,默认情况下(COM_DISARM_MAN),也可在飞行中使用动作/按钮进行上锁操作;你可选择禁用此功能,以避免意外上锁。

参数描述
MAN_ARM_GESTURE启用解锁/上锁摇杆动作。0:禁用,1:启用(默认)。
COM_DISARM_MAN允许在多旋翼手动油门模式下通过开关/摇杆/按钮在飞行中进行上锁操作。0:禁用,1:启用(默认)。
COM_RC_ARM_HYST摇杆需在解锁/上锁位置保持的时间,之后才会执行解锁/上锁操作(默认:1秒)。

解锁按钮/开关

可配置一个解锁按钮或“瞬时开关”来触发解锁/上锁操作,替代基于动作的解锁方式(设置解锁开关会禁用解锁动作)。按下按钮并保持(通常为COM_RC_ARM_HYST指定的时间)1秒,可在飞行器已上锁时解锁,或在已解锁时上锁。

也可使用双位置开关进行解锁/上锁操作,在开关切换时发送相应的解锁/上锁命令。

TIP

双位置解锁开关主要用于竞赛无人机,也推荐用于此类场景。

通过RC_MAP_ARM_SW指定并启用该开关或按钮,并使用COM_ARM_SWISBTN配置开关“类型”。

参数描述
RC_MAP_ARM_SW遥控器解锁开关通道(默认:0 - 未指定)。若定义此参数,则使用指定的遥控器通道(按钮/开关)进行解锁,而非摇杆动作。
注意
- 此设置会禁用摇杆动作
- 此设置仅适用于遥控器,不适用于通过QGroundControl连接的游戏杆控制器。
COM_ARM_SWISBTN解锁开关为瞬时按钮。
- 0:解锁开关为双位置开关,在开关切换时发送解锁/上锁命令。
-1:解锁开关为按钮或瞬时按钮,按下按钮并保持设定时间(COM_RC_ARM_HYST)后发送解锁/上锁命令。

INFO

该开关也可作为QGroundControl 飞行模式配置的一部分进行设置。

自动上锁

默认情况下,飞行器着陆后或解锁后长时间未起飞,将自动上锁。此功能通过以下超时时间进行配置。

参数描述
COM_DISARM_LAND降落后自动锁定的超时时间。默认:2秒(设为 -1 可禁用)。
COM_DISARM_PRFLT若起飞过慢,自动上锁的超时时间。默认:10秒(小于等于0可禁用)。

预解锁检查

为减少事故发生,只有在满足特定条件(部分条件可配置)时,飞行器才允许解锁。若存在以下情况,则无法解锁:

  • 飞行器状态“不健康”,例如未校准或报告传感器错误。
  • 飞行器配备的安全开关未启用。
  • 飞行器的远程识别(Remote ID)状态不健康或未准备就绪。
  • 垂直起降飞行器处于固定翼模式(默认设置)。
  • 当前模式需要准确的全球位置估计,但飞行器未锁定GPS信号。
  • 其他多种情况(更多信息请参阅解锁/上锁安全设置)。

当前未通过的检查项可在QGroundControl(4.2.0及更高版本)的解锁检查报告中查看(另见飞行视图 > 解锁与飞行前检查)。

请注意,PX4内部以10Hz的频率运行解锁检查。会记录未通过的检查项列表,若列表发生变化,PX4会通过事件接口发送当前列表。地面站连接时也会发送该列表。实际上,无论飞行器处于解锁还是上锁状态,地面站都能立即知晓预解锁检查的状态。

Details

开发者实现说明 客户端实现位于libevents

QGC实现:HealthAndArmingCheckReport.cc

PX4还会在SYS_STATUS消息中发送部分解锁检查信息(见MAV_SYS_STATUS_SENSOR)。

解锁流程:预解锁模式与安全按钮

解锁流程取决于是否存在安全开关,并由参数COM_PREARM_MODE(预解锁模式)和CBRK_IO_SAFETY(I/O安全断路器)控制。

COM_PREARM_MODE参数定义了预解锁模式何时启用或是否启用(“安全”/非节流执行器能够移动):

  • 禁用:预解锁模式禁用(不存在仅启用“安全”/非节流执行器的阶段)。
  • 安全开关(默认):预解锁模式由安全开关启用。若不存在安全开关,则预解锁模式不会启用。
  • 始终:上电即启用预解锁模式。

若存在安全开关,则这将是解锁的前提条件。若不存在安全开关,则必须启用I/O安全断路器(CBRK_IO_SAFETY),且解锁将仅取决于解锁命令。

以下各节详细介绍不同配置下的启动流程。

默认:COM_PREARM_MODE=安全开关且存在安全开关

默认配置使用安全开关进行预解锁。预解锁后,可通过解锁操作启动所有电机/执行器。此配置对应:COM_PREARM_MODE=1(安全开关)和CBRK_IO_SAFETY=0(I/O安全断路器禁用)。

默认启动流程如下:

  1. 上电。
    • 所有执行器锁定在上锁位置。
    • 无法解锁。
  2. 按下安全开关。
    • 系统进入预解锁状态:非节流执行器可移动(如副翼)。
    • 系统安全关闭:可进行解锁操作。
  3. 发出解锁命令。
    • 系统解锁。
    • 所有电机和执行器均可移动。

COM_PREARM_MODE=禁用且存在安全开关

当预解锁模式禁用时,按下安全开关不会解锁“安全”执行器,但可进行解锁操作。此配置对应COM_PREARM_MODE=0(禁用)和CBRK_IO_SAFETY=0(I/O安全断路器禁用)。

启动流程如下:

  1. 上电。
    • 所有执行器锁定在上锁位置。
    • 无法解锁。
  2. 按下安全开关。
    • 所有执行器仍锁定在上锁位置(与已上锁状态相同)。
    • 系统安全关闭:可进行解锁操作。
  3. 发出解锁命令。
    • 系统解锁。
    • 所有电机和执行器均可移动。

COM_PREARM_MODE=始终且存在安全开关

当预解锁模式设为始终时,上电即启用预解锁模式。要解锁,仍需按下安全开关。此配置对应COM_PREARM_MODE=2(始终)和CBRK_IO_SAFETY=0(I/O安全断路器禁用)。

启动流程如下:

  1. 上电。
    • 系统进入预解锁状态:非节流执行器可移动(如副翼)。
    • 无法解锁。
  2. 按下安全开关。
    • 系统安全关闭:可进行解锁操作。
  3. 发出解锁命令。
    • 系统解锁。
    • 所有电机和执行器均可移动。

COM_PREARM_MODE=安全开关或禁用且无安全开关

若无安全开关,当COM_PREARM_MODE设为安全开关禁用时,预解锁模式无法启用(与已上锁状态相同)。此配置对应COM_PREARM_MODE=0或1(禁用/安全开关)和CBRK_IO_SAFETY=22027(I/O安全断路器启用)。

启动流程如下:

  1. 上电。
    • 所有执行器锁定在上锁位置。
    • 系统安全关闭:可进行解锁操作。
  2. 发出解锁命令。
    • 系统解锁。
    • 所有电机和执行器均可移动。

COM_PREARM_MODE=始终且无安全开关

当预解锁模式设为始终时,上电即启用预解锁模式。此配置对应COM_PREARM_MODE=2(始终)和CBRK_IO_SAFETY=22027(I/O安全断路器启用)。

启动流程如下:

  1. 上电。
    • 系统进入预解锁状态:非节流执行器可移动(如副翼)。
    • 系统安全关闭:可进行解锁操作。
  2. 发出解锁命令。
    • 系统解锁。
    • 所有电机和执行器均可移动。

参数

参数描述
COM_PREARM_MODE进入预解锁模式的条件。0:禁用,1:安全开关(预解锁模式由安全开关启用;若不存在安全开关,则无法启用),2:始终(上电即启用预解锁模式)。默认:1(安全按钮)。
CBRK_IO_SAFETYI/O安全断路器。