Skip to content

任务模式(固定翼)

“任务模式”可使飞行器执行预先定义好并已上传至飞行控制器的自主任务(飞行计划)。该任务通常使用诸如QGroundControl(QGC)之类的地面控制站(GCS)应用程序创建并上传。

INFO

  • 此模式需要全球三维位置估计(来自GPS,或根据本地位置推断)。
  • 在此模式启用前,飞行器必须已解锁。
  • 此模式为自动模式,无需用户干预来控制飞行器。
  • RC控制开关可用于在任何飞行器上更改飞行模式。

描述

任务通常在地面控制站(如QGroundControl)中创建,并在起飞前上传。开发者也可以通过API创建任务,和/或在飞行过程中上传任务。

任务指令的处理方式会根据固定翼飞行特性进行适配(例如,盘旋指令会实现为绕圈飞行)。

INFO

任务需上传至SD卡,且必须在启动自动驾驶仪之前插入该SD卡。

总体而言,所有类型的飞行器在启用任务模式时的行为方式相同:

  1. 如果没有存储任务,或者PX4已完成所有任务指令的执行,又或者任务不可行
    • 如果飞行器正在飞行,它将进入盘旋状态。
    • 如果飞行器已着陆,它将“等待”。
  2. 如果存储了任务且PX4正在飞行,它将从当前步骤开始执行任务/飞行计划
    • 起飞任务项将被视为普通航点。
  3. 如果存储了任务且飞行器已着陆,只有当活动航点为“起飞”时,飞行器才会起飞。如果配置为弹射起飞,飞行器还必须被弹射(详见任务中的固定翼起飞/降落)。
  4. 如果没有存储任务,或者PX4已完成所有任务指令:
    • 如果飞行器正在飞行,它将进入盘旋状态。
    • 如果飞行器已着陆,它将“等待”。
  5. 您可以在QGroundControl中选择当前任务指令,从而手动更改它。

    INFO

    如果任务中有“跳转到项目”指令,移动到其他项目不会重置循环计数器。这意味着,如果您将当前任务指令更改为1,这不会“完全重新启动”任务。

  6. 只有在飞行器解除武装或上传新任务时,任务才会重置。

    TIP

    要在飞行器着陆后自动解除武装,在QGroundControl中,进入飞行器设置>安全,导航到“着陆模式设置”,并勾选“着陆后解除武装”框。输入着陆后等待解除武装的时间。

可以通过切换到任务模式以外的任何其他模式(如保持模式位置模式)来暂停任务,并通过切换回任务模式来恢复任务。如果飞行器在暂停时未拍摄图像,恢复任务后,它将从其当前位置朝最初前往的同一航点飞行。如果飞行器当时正在拍摄图像(有相机触发项),它将从当前位置朝暂停前经过的最后一个航点飞行,然后以相同速度和相同的相机触发行为追溯其路径。这样可确保在测绘/摄像任务中覆盖计划路径。飞行器暂停时可以上传任务,在这种情况下,当前活动任务项将设置为1。

INFO

当飞行器上的相机正在触发时暂停任务,PX4会将当前活动任务项设置为上一个航点,以便在任务重新启动时,飞行器将追溯其最后一段任务行程。此外,PX4会存储已执行任务计划中最后应用的速度设置和相机触发任务项,并在恢复任务时重新应用这些设置。

WARNING

切换到任何RC模式之前,请确保油门杆不为零(否则飞行器将坠毁)。我们建议您在切换到任何其他模式之前将控制杆置于中心位置。

有关任务规划的更多信息,请参阅:

任务可行性检查

上传任务时以及执行任务前,PX4会运行一些基本的合理性检查,以确定任务是否可行。如果任何检查失败,将通知用户,并且无法启动任务(飞行器将切换到保持模式而非任务模式)。

以下列出了一些最重要的检查项:

此外,还会检查第一个航点与起始位置的距离是否过远(MIS_DIST_1WP)。如果检查失败,将通知用户,但这对任务计划的有效性没有影响(即使距离过大,任务仍可启动)。

QGroundControl支持

_QGroundControl_提供了额外的地面控制站级任务处理支持(除了飞行控制器提供的支持之外)。

更多信息,请参阅:

任务参数

任务行为受多个参数影响,其中大多数参数在参数参考>任务中有记录。以下仅列出极少部分参数。

通用参数:

参数描述
NAV_RCL_ACTRC丢失故障安全模式(如果飞行器失去RC连接,它将执行的操作) - 例如,进入保持模式、返回模式、终止等。
NAV_LOITER_RAD固定翼盘旋半径。

任务可行性检查相关的参数:

参数描述
MIS_DIST_1WP如果第一个航点到起始位置的距离大于此值,将显示警告消息。如果值为0或更小,则禁用此检查。
FW_LND_ANG最大着陆坡度角。
MIS_TKO_LAND_REQ设置任务是否“需要”起飞和/或着陆项。固定翼和垂直起降飞行器默认都将其设置为2,这意味着任务必须包含着陆项。

任务指令

PX4在任务模式下“接受”以下MAVLink任务指令(有一些注意事项,列在列表之后)。除非另有说明,其实现方式按照MAVLink规范定义。

任务项:

地理围栏定义:

集结点:

INFO

如果发现缺失或错误的消息,请提交问题报告或PR。

  • PX4会解析上述消息,但不一定执行这些消息。例如,有些消息是特定于飞行器类型的。
  • PX4不支持任务指令的本地坐标系(例如MAV_FRAME_LOCAL_NED)。
  • 并非所有消息/指令都可通过_QGroundControl_公开。
  • 随着消息的添加,该列表可能会过时。您可以通过检查代码来查看当前支持的指令集。支持的指令在/src/modules/mavlink/mavlink_mission.cpp中的MavlinkMissionManager::parse_mavlink_mission_item中定义。

任务指令超时

一些任务指令/项可能需要一些时间才能完成,例如夹具的打开和关闭、绞车的伸展或缩回,或者云台移动到指向感兴趣区域。

如果有传感器反馈,PX4可能会使用来自硬件的传感器反馈来确定操作何时完成,然后移动到下一个任务项。如果没有传感器反馈,或者反馈丢失,可以使用任务指令超时来确保这类操作能够继续执行下一个任务项,而不是阻塞进程。

超时时间使用MIS_COMMAND_TOUT参数设置。该参数应设置为略大于任务中最长运行时间的操作所需的时间。

转弯圆角:航点间轨迹

PX4期望从前一个航点沿直线飞行到当前目标(它不会在航点之间规划任何其他类型的路径 - 如果需要,可以通过添加额外的航点来模拟)。

飞行器将朝着下一个航点(如果已定义)沿由接受半径(NAV_ACC_RAD)定义的平滑圆角曲线飞行。下图展示了您可能预期的路径类型。

acc-rad

飞行器一旦进入接受半径,就会切换到下一个航点。这是由“L1距离”定义的,该距离由两个参数计算得出:NPFG_DAMPINGNPFG_PERIOD,以及当前地速。默认情况下,约