任务模式(固定翼)
“任务模式”可使飞行器执行预先定义好并已上传至飞行控制器的自主任务(飞行计划)。该任务通常使用诸如QGroundControl(QGC)之类的地面控制站(GCS)应用程序创建并上传。
INFO
- 此模式需要全球三维位置估计(来自GPS,或根据本地位置推断)。
- 在此模式启用前,飞行器必须已解锁。
- 此模式为自动模式,无需用户干预来控制飞行器。
- RC控制开关可用于在任何飞行器上更改飞行模式。
描述
任务通常在地面控制站(如QGroundControl)中创建,并在起飞前上传。开发者也可以通过API创建任务,和/或在飞行过程中上传任务。
任务指令的处理方式会根据固定翼飞行特性进行适配(例如,盘旋指令会实现为绕圈飞行)。
INFO
任务需上传至SD卡,且必须在启动自动驾驶仪之前插入该SD卡。
总体而言,所有类型的飞行器在启用任务模式时的行为方式相同:
- 如果没有存储任务,或者PX4已完成所有任务指令的执行,又或者任务不可行:
- 如果飞行器正在飞行,它将进入盘旋状态。
- 如果飞行器已着陆,它将“等待”。
- 如果存储了任务且PX4正在飞行,它将从当前步骤开始执行任务/飞行计划。
- 起飞任务项将被视为普通航点。
- 如果存储了任务且飞行器已着陆,只有当活动航点为“起飞”时,飞行器才会起飞。如果配置为弹射起飞,飞行器还必须被弹射(详见任务中的固定翼起飞/降落)。
- 如果没有存储任务,或者PX4已完成所有任务指令:
- 如果飞行器正在飞行,它将进入盘旋状态。
- 如果飞行器已着陆,它将“等待”。
- 您可以在QGroundControl中选择当前任务指令,从而手动更改它。
INFO
如果任务中有“跳转到项目”指令,移动到其他项目不会重置循环计数器。这意味着,如果您将当前任务指令更改为1,这不会“完全重新启动”任务。
- 只有在飞行器解除武装或上传新任务时,任务才会重置。
TIP
要在飞行器着陆后自动解除武装,在QGroundControl中,进入飞行器设置>安全,导航到“着陆模式设置”,并勾选“着陆后解除武装”框。输入着陆后等待解除武装的时间。
可以通过切换到任务模式以外的任何其他模式(如保持模式或位置模式)来暂停任务,并通过切换回任务模式来恢复任务。如果飞行器在暂停时未拍摄图像,恢复任务后,它将从其当前位置朝最初前往的同一航点飞行。如果飞行器当时正在拍摄图像(有相机触发项),它将从当前位置朝暂停前经过的最后一个航点飞行,然后以相同速度和相同的相机触发行为追溯其路径。这样可确保在测绘/摄像任务中覆盖计划路径。飞行器暂停时可以上传任务,在这种情况下,当前活动任务项将设置为1。
INFO
当飞行器上的相机正在触发时暂停任务,PX4会将当前活动任务项设置为上一个航点,以便在任务重新启动时,飞行器将追溯其最后一段任务行程。此外,PX4会存储已执行任务计划中最后应用的速度设置和相机触发任务项,并在恢复任务时重新应用这些设置。
WARNING
切换到任何RC模式之前,请确保油门杆不为零(否则飞行器将坠毁)。我们建议您在切换到任何其他模式之前将控制杆置于中心位置。
有关任务规划的更多信息,请参阅:
任务可行性检查
上传任务时以及执行任务前,PX4会运行一些基本的合理性检查,以确定任务是否可行。如果任何检查失败,将通知用户,并且无法启动任务(飞行器将切换到保持模式而非任务模式)。
以下列出了一些最重要的检查项:
- 任何任务项与计划或安全地理围栏冲突
- 定义了多个着陆起始任务项(MAV_CMD_DO_LAND_START)
- 固定翼着陆的坡度角不可行(FW_LND_ANG)
- 着陆起始项(
MAV_CMD_DO_LAND_START
)出现在RTL项(MAV_CMD_NAV_RETURN_TO_LAUNCH)之前的任务中 - 当配置为必需项时,缺少起飞和/或着陆项(MIS_TKO_LAND_REQ)
此外,还会检查第一个航点与起始位置的距离是否过远(MIS_DIST_1WP)。如果检查失败,将通知用户,但这对任务计划的有效性没有影响(即使距离过大,任务仍可启动)。
QGroundControl支持
_QGroundControl_提供了额外的地面控制站级任务处理支持(除了飞行控制器提供的支持之外)。
更多信息,请参阅:
任务参数
任务行为受多个参数影响,其中大多数参数在参数参考>任务中有记录。以下仅列出极少部分参数。
通用参数:
参数 | 描述 |
---|---|
NAV_RCL_ACT | RC丢失故障安全模式(如果飞行器失去RC连接,它将执行的操作) - 例如,进入保持模式、返回模式、终止等。 |
NAV_LOITER_RAD | 固定翼盘旋半径。 |
与任务可行性检查相关的参数:
参数 | 描述 |
---|---|
MIS_DIST_1WP | 如果第一个航点到起始位置的距离大于此值,将显示警告消息。如果值为0或更小,则禁用此检查。 |
FW_LND_ANG | 最大着陆坡度角。 |
MIS_TKO_LAND_REQ | 设置任务是否“需要”起飞和/或着陆项。固定翼和垂直起降飞行器默认都将其设置为2,这意味着任务必须包含着陆项。 |
任务指令
PX4在任务模式下“接受”以下MAVLink任务指令(有一些注意事项,列在列表之后)。除非另有说明,其实现方式按照MAVLink规范定义。
任务项:
- MAV_CMD_NAV_WAYPOINT
- 忽略 Param3(飞越)。如果 param 1(停留时间)> 0,则始终启用飞越。
- MAV_CMD_NAV_LOITER_UNLIM
- MAV_CMD_NAV_LOITER_TIME
- MAV_CMD_NAV_LAND
- MAV_CMD_NAV_TAKEOFF
- MAV_CMD_NAV_LOITER_TO_ALT
- MAV_CMD_DO_JUMP
- MAV_CMD_NAV_ROI
- MAV_CMD_DO_SET_ROI
- MAV_CMD_DO_SET_ROI_LOCATION
- MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET
- MAV_CMD_DO_SET_ROI_NONE
- MAV_CMD_DO_CHANGE_SPEED
- MAV_CMD_DO_SET_HOME
- MAV_CMD_DO_SET_SERVO
- MAV_CMD_DO_LAND_START
- MAV_CMD_DO_TRIGGER_CONTROL
- MAV_CMD_DO_DIGICAM_CONTROL
- MAV_CMD_DO_MOUNT_CONFIGURE
- MAV_CMD_DO_MOUNT_CONTROL
- MAV_CMD_IMAGE_START_CAPTURE
- MAV_CMD_IMAGE_STOP_CAPTURE
- MAV_CMD_VIDEO_START_CAPTURE
- MAV_CMD_VIDEO_STOP_CAPTURE
- MAV_CMD_DO_SET_CAM_TRIGG_DIST
- MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL
- MAV_CMD_SET_CAMERA_MODE
- MAV_CMD_NAV_DELAY
- MAV_CMD_NAV_RETURN_TO_LAUNCH
- MAV_CMD_DO_CONTROL_VIDEO
- MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW
- MAV_CMD_DO_GIMBAL_MANAGER_CONFIGURE
- MAV_CMD_OBLIQUE_SURVEY
- MAV_CMD_DO_SET_CAMERA_ZOOM
- MAV_CMD_DO_SET_CAMERA_FOCUS
地理围栏定义:
- MAV_CMD_NAV_FENCE_RETURN_POINT
- MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION
- MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION
- MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION
- MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION
集结点:
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)定义的平滑圆角曲线飞行。下图展示了您可能预期的路径类型。
飞行器一旦进入接受半径,就会切换到下一个航点。这是由“L1距离”定义的,该距离由两个参数计算得出:NPFG_DAMPING和NPFG_PERIOD,以及当前地速。默认情况下,约