跳至内容

机外模式(通用/所有帧)

飞行器服从由飞行算法池外部来源(如配套计算机)提供的位置、速度、加速度、姿态、姿态速率或推力/扭矩设定点。这些设定点可通过 MAVLink(或 MAVLink API,例如 MAVSDK)或 ROS 2.

PX4 要求外部控制器通过流式传输任何受支持的 MAVLink 设定点信息或 ROS 2,提供连续的 2Hz "寿命证明"信号。 机外控制模式 信息。PX4 只有在收到信号超过一秒后才会启用车外控制,如果信号停止,则会重新获得控制权。

信息

  • 这种模式需要位置或姿态/姿态信息,如 GPS、光流、视觉惯性里程测量、mocap 等。
  • 除更改模式外,遥控控制被禁用(通过设置参数 COM_RC_IN_MODE 至 4:棒输入禁用)。
  • 载具必须已经接收到 MAVLink 设定点信息流或 ROS 2。 机外控制模式 在离机模式下上膛或飞行时切换到离机模式之前,请先查看信息。
  • 如果 MAVLink 设定点信息或 机外控制模式 的速率接收。
  • 并非所有设定点信息和载具都支持 MAVLink 允许的所有坐标框架和字段值。请阅读以下章节 好好 以确保只使用支持的值。

说明

机外模式用于通过设置位置、速度、加速度、姿态、姿态速率或推力/扭矩设定点来控制飞行器的运动和姿态。

PX4 必须接收 MAVLink 设定点信息流或 ROS 2。 机外控制模式 频率为 2 Hz,以证明外部控制器是健康的。数据流必须发送至少一秒钟,PX4 才会在离板模式下上膛,或在飞行时切换到离板模式。在外部控制下,如果速率低于 2Hz,PX4 将在超时 (COM_OF_LOSS_T),并尝试着陆或执行其他故障安全操作。该操作取决于是否可以使用遥控,并在参数 COM_OBL_RC_ACT.

在使用 MAVLink 时,设定点信息既可传递信号以表明外部信号源还活着,也可传递设定点值本身。在这种情况下,为了保持位置,载具必须接收当前位置的设定值流。

在使用 ROS 2 时,外部源还活着的证明由以下数据流提供 机外控制模式 信息,而实际设定点则通过发布到设定点 uORB 主题之一来提供,例如 轨迹设置点.在这种情况下,为了保持位置,载具必须接收到一股 机外控制模式 但只需要 轨迹设置点 一次

请注意,离机模式仅支持非常有限的一组 MAVLink 命令和信息。起飞、着陆、返回发射等操作最好使用相应的模式。上传、下载任务等操作可在任何模式下执行。

ROS 2 消息

指定帧允许使用以下 ROS 2 消息及其特定字段和字段值。除了提供心跳功能外、 机外控制模式 还有两个主要目的:

  1. 控制 PX4 控制结构 必须注入离线设定点,并禁用旁路控制器。
  2. 确定需要哪些有效估计值(位置或速度),以及应使用哪些设定点信息。

机外控制模式 信息的定义如图所示。

# 机外控制模式

uint64 时戳		# 系统启动后的时间(微秒)

bool 位置
bool 速度
bool 加速度
bool 态度
bool 身体速率
bool 推力和扭矩
bool 直接促动器

字段按优先级排序,即 位置 优先于 速度 及以后的领域、 速度 优先于 加速度等等。第一个非零值字段(从上到下)定义了使用离板模式所需的有效估计值,以及可以使用的设定点信息。例如,如果 加速度 字段是第一个非零值,则 PX4 需要一个有效的 速度估计设置点必须使用 轨迹设置点 留言

所需的控制量位置场速度场加速度场态度领域body_rate 字段推力和扭矩场direct_actuator 字段所需估计数必填信息
定位(POSITION)(NED)------位置轨迹设置点
速度(荷兰)-----速度轨迹设置点
加速度(荷兰)----速度轨迹设置点
态度(FRD)---载具高度设定点
身体速率(FRD)--载具速率设定点
推力和扭矩(FRD)-载具推力设定点载具扭矩设定点
直接电机和伺服电机致动器电机传动器伺服器

其中,✓ 表示位已设置,✗ 表示位未设置,而 - 表示该位的值无关紧要。

信息

在使用 ROS 2 的离板模式之前,请花几分钟时间了解不同的 框架公约 PX4 和 ROS 2 使用的。

直升机

  • px4_msgs::msg::TrajectorySetpoint

    • 支持以下输入组合

      • 位置设定点 (位置 异于 ).非 速度值和加速度值作为内环控制器的前馈项。
      • 速度设定点 (速度 异于 位置 设为 ).非 加速度值作为内环控制器的前馈项。
      • 加速度设定点 (加速度 异于 位置速度 设为 )
    • 所有数值均以 NED(北、东、下)坐标系解释,位置、速度和加速度的单位分别为[m]、[m/s]和[m/s^2]。

  • px4_msgs::msg::VehicleAttitudeSetpoint

    • 支持以下输入组合

      • 四元数 q_d + 推力设定值 推力.非 的值 偏航运动速率 作为前馈项,用地球帧和 [rad/s] 表示。
    • 四元数表示无人机机身 FRD(前、右、下)帧与 NED 帧之间的旋转。推力在无人机机身 FRD 框架内,以归一化 [-1, 1] 值表示。

  • px4_msgs::msg::VehicleRatesSetpoint

    • 支持以下输入组合

      • 滚动, 沥青, 打呵欠推力.
    • 所有数值均以无人机机身 FRD 帧为单位。速率单位为[rad/s],而推力_body 的归一化单位为[-1, 1]。

通用载具

下列板外控制模式可绕过所有内部 PX4 控制回路,使用时应非常小心。

以下 MAVLink 报文及其特定字段和字段值允许用于指定的载具帧。

直升机/VTOL

  • 设置目标位置

    • 支持以下输入组合

      • 位置设定点(仅 x, y, z)
      • 速度设定点(仅 vx, vy, vz)
      • 加速度设定点(仅 afx, 安提, afz)
      • 位置设定点 速度设定点(速度设定点用作前馈;它与位置控制器的输出相加,结果用作速度控制器的输入)。
      • 位置设定点 速度设定点 加速度(速度和加速度设定点用作前馈;速度设定点与位置控制器的输出相加,其结果用作速度控制器的输入;加速度设定点与速度控制器的输出相加,其结果用于计算推力矢量)。
    • PX4 支持以下功能 坐标框架 值(仅): mav_frame_local_nedmav_frame_body_ned.

  • set_position_target_global_int

    • 支持以下输入组合

      • 位置设定点(仅 lat_int, lon_int, 选一)

      • 速度设定点(仅 vx, vy, vz)

      • 推力 设定点(仅 afx, 安提, afz)

        信息

        加速度设定点值被映射为标准化推力设定点(即不支持加速度设定点)。

      • 位置设定点 速度设定点(速度设定点用作前馈;它与位置控制器的输出相加,结果用作速度控制器的输入)。

    • PX4 支持以下功能 坐标框架 值(仅): mav_frame_global.

  • 设置目标姿态

    • 支持以下输入组合
      • 态度/方向 (SET_ATTITUDE_TARGET.q)与推力设定点 (SET_ATTITUDE_TARGET.thrust).
      • 身体速率 (设置目标姿态 .body_roll_rate ,.body_pitch_rate, .body_yaw_rate)与推力设定点 (SET_ATTITUDE_TARGET.thrust).

固定翼飞机

  • 设置目标位置

    • 支持以下输入组合(通过 类型掩码):

      • 位置设定点 (x, y, z 仅;速度和加速度设置点被忽略)。

        • 指定 类型 中设定点的 类型掩码 (如果未设置这些位,飞行器将以花朵状模式飞行):

          信息

          部分 设定点类型 下面的值不属于 MAVLink 标准的一部分。 类型掩码 field.

          这些值是

          • 292:滑行设定点。该设置将 TECS 配置为优先考虑空速而非高度,以便在没有推力时使飞行器滑行(即通过控制俯仰来调节空速)。这相当于设置 类型掩码 作为 位置_目标类型掩码_z_忽略, position_target_typemask_vz_ignore, 位置目标类型掩码忽略.
          • 4096:起飞设定点
          • 8192:陆地设定点。
          • 12288: 负载设定点(以设定点为中心飞一圈)。
          • 16384:空转设定点(零节流、零滚转/俯仰)。
    • PX4 支持坐标框架 (坐标框架 字段): mav_frame_local_nedmav_frame_body_ned.

  • set_position_target_global_int

    • 支持以下输入组合(通过 类型掩码):

      • 位置设定点(仅 lat_int, lon_int, 选一)

        • 指定 类型 中设定点的 类型掩码 (如果未设置这些位,飞行器将以花朵状模式飞行):

          信息

          设定点类型 下面的值不属于 MAVLink 标准的一部分。 类型掩码 field.

          这些值是

          • 4096:起飞设定点
          • 8192:陆地设定点。
          • 12288: 负载设定点(以设定点为中心飞一圈)。
          • 16384:空转设定点(零节流、零滚转/俯仰)。
    • PX4 支持以下功能 坐标框架 值(仅): mav_frame_global.

  • 设置目标姿态

    • 支持以下输入组合
      • 态度/方向 (SET_ATTITUDE_TARGET.q)与推力设定点 (SET_ATTITUDE_TARGET.thrust).
      • 身体速率 (设置目标姿态 .body_roll_rate ,.body_pitch_rate, .body_yaw_rate)与推力设定点 (SET_ATTITUDE_TARGET.thrust).

UGV无人车

  • 设置目标位置

    • 支持以下输入组合(以 类型掩码):

      • 位置设定点(仅 x, y, z)

        • 指定 类型 中设定点的 类型掩码:

          信息

          设定点类型 下面的值不属于 MAVLink 标准的一部分。 类型掩码 领域:

          这些值是

          • 12288: 装载设定点(载具在接近设定点时停止)。
      • 速度设定点(仅 vx, vy, vz)

    • PX4 支持坐标框架 (坐标框架 字段): mav_frame_local_nedmav_frame_body_ned.

  • set_position_target_global_int

    • 支持以下输入组合(以 类型掩码):

      • 位置设定点(仅 lat_int, lon_int, 选一)
    • 指定 类型 中设定点的 类型掩码 (不属于 MAVLink 标准)。这些值是

      • 未设置以下位,则行为正常。
      • 12288: 装载设定点(载具在接近设定点时停止)。
    • PX4 支持坐标框架 (坐标框架 字段): mav_frame_global.

  • 设置目标姿态

    • 支持以下输入组合
      • 态度/方向 (SET_ATTITUDE_TARGET.q)与推力设定点 (SET_ATTITUDE_TARGET.thrust).

        信息

        实际使用/提取的只有偏航设置。

机外参数

机外模式 受以下参数影响:

参数说明
COM_OF_LOSS_T当板载连接丢失时,在触发板载丢失故障安全("板载连接丢失")前等待的超时(秒) (COM_OBL_RC_ACT)
COM_OBL_RC_ACT如果失去机载控制,将切换到的飞行模式(数值为-)。 0: 定位(POSITION), 1: 海拔高度, 2: 手册, 3:* 返回、 4:*土地*)。
com_rc_override控制在多旋翼飞行器(或 多旋翼 模式下的 VTOL)上移动摇杆是否会导致模式切换为 位置模式.默认情况下离线模式不启用此功能。
com_rc_stick_ov杆的移动量会导致过渡到 位置模式 (如果 com_rc_override 已启用)。
COM_RCL_EXCEPT指定忽略 RC 丢失和不触发故障安全动作的模式。设置位 2 以忽略离板模式下的 RC 丢失。

开发人员资源

通常情况下,开发人员不会直接在 MAVLink 层工作,而是使用机器人应用程序接口,如 MAVSDKROS (提供开发人员友好的应用程序接口,并负责管理和维护连接、发送信息和监控响应--这些都是与 机外模式 和 MAVLink)。

以下资源可能对开发人员有用: