任务模式
任务模式使车辆执行已上载到飞行控制器的预定义的自主任务(飞行计划)。该任务通常是通过地面控制站(GCS)应用程序(例如QGroundControl(QGC))创建和上传的。
描述
任务通常在地面控制站(例如QGroundControl)中创建,并在发射前上载。它们也可以由开发人员API创建和/或在飞行中上传。
个别任务的命令在一个方式,是适合于每个车辆的飞行特性(例如蹭被实现为处理悬停用于直升机和圆固定翼)。VTOL车辆在FW模式下遵循固定翼的行为和参数,在MC模式下遵循直升机的行为和参数。
任务已上载到需要启动自动驾驶仪之前插入的SD卡。
在高级别上,使用MISSION模式时,所有车辆类型的行为都相同:
- 如果已存储任务并且PX4正在飞行,它将 从当前步骤开始 执行 任务/飞行计划 。
- 如果已存储任务且PX4已着陆:
- 在直升机上,PX4将执行
任务/飞行计划
。
如果任务没有
TAKEOFF
命令,则PX4将在执行当前步骤的其余飞行计划之前,将车辆飞行到最低高度。 - 在固定翼车辆上,PX4不会自动起飞(自动驾驶仪会检测到不运动,并将油门设为零)。 如果在任务模式下用手或弹射器发射,车辆可能会开始执行任务。
- 在直升机上,PX4将执行
任务/飞行计划
。
如果任务没有
- 如果未存储任何任务,或者PX4已完成执行所有任务命令:
- 如果飞行,车辆会游荡。
- 如果着陆,车辆将“等待”。
- 您可以通过在
QGroundControl中
选择当前任务命令来手动更改它
。
如果任务中有“跳转到项目”命令,则移动到另一个项目不会重置循环计数器。一种暗示是,如果将当前任务命令更改为1,则不会“完全重新启动”任务。
- 仅当车辆解除武装或上载新任务时,任务才会重置。
要在车辆着陆后自动撤防,请在QGroundControl中进入“车辆设置”>“安全”,导航至“着陆模式设置”,然后选中标有“在撤防后撤防”的框。输入降落后等待的时间,然后才能解除车辆的装甲。
可以通过激活保持模式来暂停任务。当您重新激活MISSION飞行模式时,任务将从当前任务命令继续执行。在任务模式下飞行时,如果您决定中止任务并切换到任何其他模式(例如,位置模式),使用RC将车辆飞行到其他地方,然后再切换回任务模式,则车辆将从当前位置继续执行任务,并且飞往尚未访问的下一个任务航路点。
在切换到任何RC模式之前,请确保油门杆不为零(否则车辆将坠毁)。建议您在切换到任何其他模式之前将控制杆居中。
有关任务计划的更多信息,请参阅:
QGroundControl支持
QGroundControl提供了额外的GCS级任务处理支持(除了由飞行控制器提供的支持外)。有关更多信息,请参见:
任务参数
任务行为受许多参数影响,大多数参数记录在“参数参考>任务”中。下面列出了一个很小的子集。
参数 | 描述 |
---|---|
NAV_RCL_ACT | RC丢失故障安全模式(如果车辆松开RC连接,车辆将采取的措施)-例如,进入保持模式,返回模式,终止等。 |
NAV_LOITER_RAD | 固定翼游荡半径。 |
COM_RC_OVERRIDE | 如果启用了自动模式,操纵杆移动将控制权交还给飞行员(切换到“位置”模式-除非车辆正在处理严重的电池故障保护)。默认启用。 |
支持的任务命令
PX4在任务模式下“接受”以下MAVLink任务命令(注意:列表下方的警告)。除非另有说明,否则该实现与MAVLink规范中定义的一样。
- MAV_CMD_NAV_WAYPOINT
- Param3 (飞越)将被忽略。 如果 参数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_NAV_ROI
- MAV_CMD_DO_SET_ROI
- MAV_CMD_DO_SET_ROI_LOCATION
- MAV_CMD_NAV_VTOL_TAKEOFF
- MAV_CMD_NAV_VTOL_LAND
- 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
- MAV_CMD_NAV_RALLY_POINT
- MAV_CMD_DO_JUMP
- MAV_CMD_NAV_ROI
- MAV_CMD_DO_SET_ROI
- 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_DO_VTOL_TRANSITION
- MAV_CMD_NAV_DELAY
- MAV_CMD_NAV_RETURN_TO_LAUNCH
- MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET
- MAV_CMD_DO_SET_ROI_NONE
注意:
- PX4解析上述消息,但是没有必要 采取行动 。 例如,某些消息是特定于车辆类型的。
- PX4通常不支持任务命令的本地帧(例如 MAV_FRAME_LOCAL_NED )。
- 并非所有消息/命令都通过 QGroundControl公开 。
添加邮件后,列表可能会过时。您可以通过检查代码来检查当前设置。支持
MavlinkMissionManager::parse_mavlink_mission_item
位于/src/modules/mavlink/mavlink_mission.cpp(此git changelist中生成的列表)。如果发现消息缺失/不正确,请添加错误修复程序或PR。
航点间轨迹
PX4期望沿着从上一个航路点到当前目标的直线(它不计划航路点之间的任何其他类型的路径-如果需要,您可以通过添加其他航路点来模拟)。
MC车辆将改变速度接近或离开基于该航点时过冲限制的调整。
进入接收半径的车辆会立即切换到下一个航点。
- 对于MC,此半径由 NAV_ACC_RAD 定义
- 对于FW,半径由“ L1距离”定义。
- L1距离是根据两个参数计算得出的: FW_L1_DAMPING 和 FW_L1_PERIOD 以及当前地面速度。
- 默认情况下,大约为70米。
- 等式是: