任务模式 (Multicopter)
_任务模式_使车辆执行预先定义的自主 mission (flight plan) 已上传至飞行控制器。 任务通常由地面控制站 (GCS) 应用程序创建和上传,例如 QGroundControl (QGC).
INFO
- 此模式需要全局三维位置估计(来自 GPS 或从 local position).
- 必须先对车辆进行武装,然后才能启用此模式。
- 此模式是自动的 - 无需用户干预即可控制车辆。
- 遥控开关可以在任何无人机上更改飞行模式。
- 遥控摇杆运动将 by default 改变车辆 Position mode 除非处理关键的电池故障保护。 这对于 MC 模式下的多旋翼飞行器和 VTOL 来说是正确的。
描述
任务通常在地面控制站创建 (e.g. QGroundControl) 并在发布前上传。 它们也可以通过 MAVLink API 创建,例如 MAVSDK, 和/或在飞行中上传。
个人 mission commands 以适合多旋翼飞行器飞行特性的方式进行处理(例如,徘徊被实现为_悬停_)。
INFO
任务被上传到 SD 卡上,需要在启动自动驾驶仪之前插入该卡。
在高级别上,当启动“任务”模式时,所有类型的车辆的行为方式均相同:
如果没有存储任务,或者 PX4 已完成执行所有任务命令,或者 mission is not feasible:
- 如果飞行,车辆将会保持。
- 如果着陆,飞行器将“等待”。
如果存储了任务并且 PX4 正在飞行,它将执行 mission/flight plan 从当前步骤开始。
起飞
项目被视为正常航路点。
如果任务已存储且 PX4 已着陆:
- PX4 将执行 mission/flight plan.
- 如果任务没有
TAKEOFF
然后 PX4 将使飞行器飞到最低高度,然后执行当前步骤的剩余飞行计划。
如果没有存储任务,或者 PX4 已完成执行所有任务命令:
- 如果飞行,车辆将保持。
- 如果着陆,车辆将“等待”。
您可以通过在“QGroundControl”中选择来手动更改当前任务命令。
INFO
如果任务中有“跳转到项目”命令,则移动到另一个项目将不会重置循环计数器。 这意味着,如果将当前任务命令更改为 1,则不会“完全重启”任务。
:::
仅当车辆解除武装或上传新任务时,任务才会重置。
TIP
要在飞行器着陆后自动解除武装,请在 QGroundControl 中转到 Vehicle Setup > Safety, 导航至“陆地模式设置”并选中标有“之后解除武装”的框。 输入着陆后到解除车辆武装之前等待的时间。
:::
可以通过切换到任何其他模式来暂停任务 (such as Hold mode or Position mode), 并通过切换回任务模式来恢复。 如果车辆在暂停时没有拍摄图像,则在恢复时,它将从其当前位置向其最初前往的相同航路点行驶。 如果车辆正在拍摄图像(具有相机触发器项),它将从当前位置向其行进的最后一个航路点行驶(暂停前),然后以相同的速度和相同的相机触发行为返回其路径。 这确保在测量/相机任务中捕获计划的路径。 可以在车辆暂停时上传任务,在这种情况下,当前活动的任务项设置为 1。
INFO
如果在车辆上的摄像头触发期间任务暂停,PX4 会将当前活动任务项设置为前一个航路点,这样当任务重新启动时,车辆将返回其上一个任务航程。 此外,PX4 会存储最后应用的速度设置和摄像头触发任务项(来自已经涵盖的任务计划),并在恢复任务时重新应用这些设置。
WARNING
在切换到任何 RC 模式之前,请确保油门杆非零(否则飞行器将会坠毁)。 我们建议您在切换到任何其他模式之前将控制杆置于中央。
有关任务规划的更多信息,请参阅:
- Mission Planning
- Plan View (QGroundControl User Guide)
任务可行性检查
PX4 会在任务上传时和执行任务之前运行一些基本的健全性检查,以确定任务是否可行。 如果任何检查失败,用户都会收到通知,并且无法启动任务(车辆将切换到 Hold mode 而不是任务模式)。
下面列出了一些最重要的检查:
- 任何任务项目与计划或安全地理围栏相冲突
- 缺少配置为要求的起飞和/或着陆项目 (MIS_TKO_LAND_REQ)
此外,还会检查第一个航路点是否距离 Home 位置太远 (MIS_DIST_1WP). 如果检查失败,则会通知用户,但这不会影响任务计划的有效性,这意味着即使距离太远,任务仍然可以开始。
QGroundControl支持
QGroundControl 提供额外的 GCS 级任务处理支持(除了飞行控制器提供的支持之外)。
有关详细信息,请参阅︰
任务参数
任务行为受许多参数的影响,其中大部分参数记录在 参数参考 > 任务 中。 下面列出了一小部分参数。
General parameters:
参数 | 描述 |
---|---|
NAV_RCL_ACT | RC loss failsafe mode (what the vehicle will do if it looses RC connection) - e.g. enter hold mode, return mode, terminate etc. |
COM_RC_OVERRIDE | Controls whether stick movement on a multicopter (or VTOL in MC mode) gives control back to the pilot in Position mode. 可以分别为自动模式和 offboard 模式启用此功能,默认情况下在自动模式下启用此功能。 |
COM_RC_STICK_OV | The amount of stick movement that causes a transition to Position mode (if COM_RC_OVERRIDE is enabled). |
Parameters related to mission feasibility checks:
参数 | 描述 |
---|---|
MIS_DIST_1WP | There is a warning message if the distance of the first waypoint to Home is more than this value. Disabled if value is 0 or less. |
FW_LND_ANG | Maximum landing slope angle. |
MIS_TKO_LAND_REQ | Sets whether mission requires takeoff and/or landing items. No requirement by default for multicopter. |
任务命令
PX4 在任务模式下“接受”以下 MAVLink 任务命令(有一些注意事项,列表后给出)。 除非另有说明,否则实现方式按照 MAVLink 规范中的定义执行。
任务物品:
- MAV_CMD_NAV_WAYPOINT
- Param3 (flythrough) is ignored. Flythrough is always enabled if param 1 (time_inside) > 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_SET_CAMERA_ZOOM
- MAV_CMD_SET_CAMERA_FOCUS
- MAV_CMD_NAV_VTOL_TAKEOFF
MAV_CMD_NAV_VTOL_TAKEOFF.param2
(transition heading) is ignored. Instead the heading to the next waypoint is used for the transition heading.
地理围栏定义
- 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 不支持任务命令的本地框架 (e.g. MAV_FRAME_LOCAL_NED).
- 并非所有消息/命令都通过 _ QGroundControl _ 显示。
- 随着消息的添加,该列表可能会变得过时。 您可以通过检查代码来检查当前设置。 Support is
MavlinkMissionManager::parse_mavlink_mission_item
in /src/modules/mavlink/mavlink_mission.cpp.
任务指挥超时
某些任务命令/项目可能需要一些时间才能完成,例如夹持器的打开和关闭、绞盘的伸展或收缩,或万向架的移动以指向感兴趣的区域。
如果提供,PX4 可以使用硬件的传感器反馈来确定操作何时完成,然后转到下一个任务项目。 如果未提供,或者反馈丢失,则可以使用任务命令超时来确保这些类型的操作将进展到下一个任务项目,而不是阻止进展。
超时设置使用 MIS_COMMAND_TOUT 范围。 这应该设置为比完成任务中最长时间的操作所需的时间稍大一些。
圆形转弯:航点间轨迹
PX4 预计会沿着从前一个航路点到当前目标的直线(它不规划航路点之间的任何其他类型的路径 - 如果需要,您可以通过添加额外的航路点来模拟这一点)。
MC 车辆在接近或离开航点时将根据以下情况改变_速度_: jerk-limited tuning. 车辆将沿着平滑的圆曲线行驶至下一个航路点(如果已定义),该航路点由接受半径定义 (NAV_ACC_RAD). 下图显示了您可能期望的路径类型。
车辆进入接受半径后立即切换到下一个航路点 (NAV_ACC_RAD).
任务起飞
通过添加一个 TAKEOFF
任务物品到地图(这对应于 MAV_CMD_NAV_TAKEOFF MAVLink 命令)。
在执行任务期间,这将导致飞行器垂直上升到 MIS_TAKEOFF_ALT 参数,然后前往任务项目中定义的3D位置。
如果启动了没有起飞任务项的任务,飞行器将上升到最低起飞高度,然后继续执行第一个 航点
任務項目。
如果任务开始时车辆已经在飞行,则起飞任务项将被视为正常航路点。