任务指令

本文介绍了 Copter、Plane 和 Rover 切换到自动模式时支持的任务指令。更好的列表仅用于 Copter 可在此处找到

概述

MAVLink 协议定义了大量的 MAV_CMD 航点命令类型(以 MAVLink_mission_item_message).ArduPilot 对这些命令和命令参数的子集进行了处理,这些子集包括 最相关 并对每辆车都有意义。发送到特定(飞行)控制器的不支持命令将被直接删除。

本文列出并描述了每种载具类型所支持的命令和命令参数。(飞行)控制器不支持任何 "灰色 "参数,这些参数将被忽略。本文仍对其进行了记录,以明确(飞行)控制器支持哪些属性。 MAV_CMD 协议 载具不执行。

有些命令和命令参数没有执行,是因为它们与特定的飞行器类型无关(例如,"MAV_CMD_NAV_TAKEOFF "命令对飞机和旋翼飞行器有效,但对UGV无人车无效,而俯仰参数只对飞机有效)。还有一些可能有用的命令参数没有被处理,这是因为信息大小有限制,而且已决定优先处理某些参数,而不是其他参数。

备注

有关 Copter 支持的命令的其他信息(从Mission Planner地面站的角度),请参阅 旋翼飞行器任务指令列表.

命令类型

任务中可以使用几种不同类型的命令:

  • 导航指令用于控制飞行器的移动,包括起飞、前往和绕行航点、改变高度和着陆。

  • DO 命令用于辅助功能,不影响载具位置(例如,设置摄像机触发距离或设置伺服值)。

  • 条件指令用于延迟 DO 指令,直到满足某些条件,例如无人机达到一定高度或距离航点一定距离。

在一次任务中,最多只能同时运行一条 "导航 "命令和一条 "执行 "或 "条件 "命令。一个典型的任务可能会设置一个航点("NAV "命令),添加一条 "CONDITION"(条件)命令,该命令要在距离目的地一定距离后才能完成("Do "命令)。mav_cmd_condition_distance),然后添加一些按顺序执行的 DO 命令(例如 mav_cmd_doo_set_cam_trigg_dist 当条件完成时,您就可以定时拍照)。

备注

CONDITION 和 DO 命令与前面的 NAV 命令相关联:如果无人飞行器在执行这些命令之前到达下一个航点,则将加载下一条 NAV 命令,并跳过这些命令。

参考框架

许多命令(尤其是 NAV_ 命令) 包括位置/定位信息。这些信息是相对于特定的 "参照系 "提供的,该 "参照系 "在报文的 参考框架 领域。旋翼飞行器和漫游车的使用 mav_cmd_doo_set_home 命令在全局坐标系(MAV_FRAME_GLOBAL)中设置 "原点"、 WGS84 坐标系,其中高度是相对于平均海平面而言的。所有其他命令都使用 MAV_FRAME_GLOBAL_RELATIVE_ALT 框架,该框架使用相同的经纬度,但将高度设置为相对于平均海平面的高度。 主位置 (原点高度 = 0)。

平面命令还可以使用 MAV_FRAME_GLOBAL_TERRAIN_ALT 参照基准。这同样具有 WGS84 的经纬度参考框架,但指定了相对于地面高度的高度(如地形数据库中的定义)。

备注

其他帧类型在 MAVLink 协议中定义(见 飞行器框架)不支持任务指令。

信息的准确性如何?

如果一条命令或参数被标记为支持,那么它很可能(但不保证)会按照指示执行。如果命令或参数未列出(或标记为不支持),则极有可能 ArduPilot 不支持该命令或参数。

原因是,这些信息主要是通过检查命令处理程序的信息推断出来的:

通过上述检查,可以非常准确地了解哪些命令和参数不受支持。通过上述检查,可以比较准确地了解哪些命令/参数不支持。 可能得到支持.不过,这种指示并不能保证准确,因为命令处理程序可能会丢弃所有信息(我们还没有完全检查所有这些信息)。

除上述检查外,我们还合并了来自 旋翼飞行器任务指令列表.

如何解释命令参数

表中列出了每条命令的参数。灰色显示 "的参数不受支持。命令字段列(参数名)使用 "粗体 "文本表示协议中定义的参数("空 "参数使用普通文本)。

这样,用户/开发人员就能看到 ArduPilot 支持哪些协议字段,以及不支持哪些协议字段。

将此信息与全球监控系统一起使用

Mission Planner地面站 (MP) 公开了 ArduPilot 支持的全部命令和参数子集,经过过滤后只显示与当前连接载具相关的命令和参数。将 MP 命令映射到此文档非常简单,因为它只需使用完整命令名称的缩减版来命名命令(例如,"......")。 DO_SET_SERVO 而不是完整的命令名称: mav_cmd_doo_set_servo).此外,本文件还方便地列出了Mission Planner地面站在每个参数旁使用的列标。

其他 GCS(APM Planner 2、Tower 等)可能支持其他一些命令/参数子集,并使用其他名称/标签。在大多数情况下,映射应该是显而易见的。

旋翼飞行器支持的命令

该命令列表是从 /ArduCopter/mode_auto.cpp.

条件命令

条件命令可控制_DO_命令的执行。例如,条件命令可以根据时间延迟阻止 DO 命令的执行,直到飞行器达到一定的高度,或与下一个目标位置保持一定的距离。

在到达下一个航点之前,条件命令可能无法完成。在这种情况下,与上一个航点相关的任何未执行的 _DO_ 命令都将被跳过。

mav_cmd_condition_delay

支持:所有载具。

在到达一个航点后,将下一个有条件的"_DO_"命令的执行时间延迟指定的秒数(例如 mav_cmd_doo_set_roi).

备注

该命令不会使载具停止。如果载具在延迟计时器计时结束前到达下一个航点,延迟的"_DO_"命令将永远不会触发。

命令参数

指令字段 特派团规划员外地 说明
参数1 时间(秒) 以秒(十进制)为单位的延迟。
参数2
参数3
参数4
参数5
参数6
参数7

任务计划截图

../_images/MissionList_ConditionDelay.png

Mission Planner地面站对 CONDITION_DELAY 命令的设置

在上面的示例中,命令 #4 (DO_SET_ROI)被延迟,以便在载具通过 2 号航点 5 秒后启动。

mav_cmd_condition_distance

支持:所有载具。

推迟下一个""命令,直到载具距离下一个航点在指定的米数范围内。

备注

该命令不会停止载具:它只影响 DO 命令。

命令参数

指令字段 特派团规划员外地 说明
参数1 距离(米) 执行 DO 命令前距离下一个航点的距离(米)。
参数2
参数3
参数4
参数5
参数6
参数7

任务计划截图

../_images/MissionList_ConditionDistance.png

CONDITION_DISTANCE 命令的任务计划程序设置

在上面的示例中,命令 #4 (DO_SET_ROI)被延迟,只有当载具进入 5 号航点 50 米范围内时才会启动。

mav_cmd_condition_yaw

由旋翼飞行器(不是飞机或漫游车)。

将车头指向(偏航/航向)指定航向。

通过参数可以指定目标方向是绝对方向还是与当前偏航方向相对的方向。如果方向是相对的,您还可以(单独)指定是从当前航向中添加还是减去该值(请注意,载具将始终沿着能最快速到达新目标航向的方向转弯,无论 参数3 值)。

命令参数

指令字段 特派团规划员外地 说明
参数1 度数 如果 param4=0 (绝对值):目标航向,单位为度 [0-360](0 表示北)。如果 param4=1 (相对):航向变化(单位:度)。
参数2 速度(度/秒 偏航变化时的速度:[度/秒]。
参数3 指导 1=CW 用于表示为达到目标角度而旋转的方向(-1=CCW,1=CW,0=载具将始终朝最快速到达新目标方位的方向转向,但前提是 param4=0 (绝对值),否则 0 = CW)。
参数4 0=Abs 1=Rel 说明是否 参数1 (度 "字段)为绝对方向(0)或与当前偏航方向相对的方向(1)。
参数5
参数6
参数7

任务计划截图

../_images/MissionList_ConditionYaw.png

旋翼飞行器:Mission Planner地面站中 CONDITION_YAW 命令的设置

特殊命令

本节介绍可能与特派团有关但不属于特派团命令(特派团的一部分)的命令。

mav_cmd_mission_start

支持者Copter

当飞行器在地面处于自动模式时,该命令可用于启动任务。如果飞行器已在空中,则一旦切换到 "自动 "模式,任务将立即开始(因此不需要/忽略此命令)。这样,GCS/辅助计算机就可以在自动模式下启动任务,而无需提高油门。

备注

以前,只有在飞行员启动油门后,任务才会开始。有了这条命令,就可以在不直接控制油门的情况下启动任务了(尽管这种方法仍然可用)。

这不是一条 "任务指令"(不能用作任务航点)。它是从 行动 菜单(见下面的截图)。

命令参数

所有参数都将被忽略。

指令字段 特派团规划员外地 说明
参数1 第一个运行的任务项目。
参数2 运行的最后一个任务项目(运行此项目后,任务结束)。
参数3
参数4
参数5
参数6
参数7

Mission Planner地面站屏幕截图

../_images/MissionPlanner_MissionStartCommand.jpg

Mission Planner地面站:MISSION_START 命令

mav_cmd_component_arm_disarm

支持者Copter

解除电机。

该指令支持在地面和飞行中解除警报。

备注

着陆后,电机将自动解除。

这不是 "任务指令"(不能用作任务航点)。

命令参数

指令字段 特派团规划员外地 说明
参数1 1 表示上膛,0 表示撤膛。该功能仅在载具着陆时有效。
参数2 如果数值为 21196,飞行器将在飞行中解除警报。
参数3
参数4
参数5
参数6
参数7

DO 命令

DO "或 "Now "命令只执行一次,以执行某些操作。与航点相关的所有 "DO "命令都会立即执行。

mav_cmd_doo_change_speed

支持: Copter、Plane、Rover:旋翼飞行器、飞机、漫游车

以米/秒为单位设置所需的最高速度(仅)。速度类型和油门设置都将被忽略。

命令参数

指令字段 特派团规划员外地 说明
参数1 类型 速度类型(0,1=地面速度,2=攀爬速度,3=下降速度)。
参数2 速度(米/秒 目标速度(米/秒)。
参数3
参数4
参数5
参数6
参数7

任务计划截图

../_images/MissionList_DoChangeSpeed.png

旋翼飞行器:Mission Planner地面站中 DO_CHANGE_SPEED 命令的设置

mav_cmd_doo_set_home

支持:所有载具。

将原点设置为当前位置或命令中指定的位置。为便于 SITL 工作,此处输入的海拔高度需要参考绝对高度,并考虑 SRTM 的海拔高度。

备注

  • 对于 Plane 和 Rover,如果无法获得良好的 GPS 定位,则使用命令中指定的位置。

  • 对于 Copter,如果所有位置参数都设置为 0,命令也会尝试使用当前位置。

命令参数

指令字段 特派团规划员外地 说明
参数1 当前 设置家庭位置:1=将原点设置为当前位置。0=使用信息参数中指定的位置。
参数2
参数3
参数4
参数5 纬度 目标家庭纬度(如果 param1=0)
参数6 目标原籍经度(如果 param1=0)
参数7 Alt 目标原点高度(如果 param1=0)

任务计划截图

../_images/MissionList_DoSetHome.png

Mission Planner地面站对 DO_SET_HOME 命令的设置

mav_cmd_doo_set_relay

支持:所有载具。

设置一个 继电器 引脚电压的高电平(开)或低电平(关)。

命令参数

指令字段 特派团规划员外地 说明
参数1 继电器编号 中继器编号
参数2 关(0)/开(1) 设置继电器状态:1: 设置继电器高电平/开(Pixhawk 为 3.3V,APM 为 5V)。0: 设置继电器低电平/关闭(0V),任何其他值都会切换继电器
参数3
参数4
参数5
参数6
参数7

任务计划截图

../_images/MissionPlanner_DO_SET_RELAY.png

Mission Planner地面站对 DO_SET_RELAY 命令的设置

mav_cmd_doo_repeat_relay

支持:所有载具。

切换 继电器 在给定的周期内,按指定次数切换继电器引脚的电压/状态。拨动继电器可打开关闭的继电器,反之亦然。

命令参数

指令字段 特派团规划员外地 说明
参数1 继电器编号 中继器编号
参数2 重复 # 周期计数 - 应切换继电器的次数
参数3 延迟 循环时间(秒,十进制)- 每次切换之间的时间间隔。
参数4
参数5
参数6
参数7

任务计划截图

../_images/MissionList_DoRepeatRelay.png

Mission Planner地面站对 DO_RELAY_REPEAT 命令的设置

在上述示例中,假定继电器一开始是关闭的,那么它将被设置为高电平,然后在 3 秒钟后再次切换为低电平。

mav_cmd_doo_set_servo

支持:所有载具。

设置给定的 伺服引脚 输出到特定的 PWM 值。

命令参数

指令字段 特派团规划员外地 说明
参数1 Ser No 伺服编号 - 目标伺服输出引脚/通道编号。
参数2 PWM 输出的 PWM 值,以微秒为单位(通常为 1000 至 2000)。
参数3
参数4
参数5
参数6
参数7

任务计划截图

../_images/MissionList_DoSetServo.png

任务计划程序对 DO_SET_SERVO 命令的设置

在上面的例子中,连接到输出通道 8 的伺服将被调到 PWM 1700(伺服通常接受 1000 到 2000 之间的 PWM 值)。

备注

从固件 4.0 及更高版本开始,该命令可用于由其 SERVOx_FUNCTION 命令为 0、1 或 51-66(禁用或 RC 穿通)

mav_cmd_doo_repeat_servo

支持:所有载具。

循环 a 伺服器 PWM 输出引脚的中间位置值与指定的 PWM 值之间的给定周期数和设定周期。

中间位置值在 RCn_TRIM 通道参数 (RC8_TRIM 在下面的截图中)。默认值为 1500...

命令参数

指令字段 特派团规划员外地 说明
参数1 Ser No 伺服编号 - 目标伺服输出引脚/通道。
参数2 PWM 输出的 PWM 值,以微秒为单位(通常为 1000 至 2000)。
参数3 重复 # 循环次数 - 伺服器移动到指定 PWM 值的次数
参数4 延迟(秒) 循环时间(秒)- 每次伺服运动之间的延迟时间(秒)。
参数5
参数6
参数7

任务计划截图

../_images/MissionList_DoRepeatServo.png

任务计划程序对 DO_REPEAT_SERVO 命令的设置

在上面的示例中,连接到输出通道 8 的伺服将被移动到 PWM 1700,然后在 4 秒钟后回到中间位置,再过 4 秒钟后再次移动到 1700,最后再过 4 秒钟后回到中间位置。

mav_cmd_doo_set_roi

支持: Copter、Plane、Rover:旋翼飞行器、飞机、漫游车

指向 相机万向节 如果支架类型不支持偏航功能,则还会旋转车头。

设置 ROI 后,除非通过设置另一个 ROI 更改或清除 ROI,否则摄像机/载具将继续跟踪该 ROI 直到任务结束。清除 ROI 的方法是在之后的 DO_SET_ROI 命令中将以下参数设置为零 参数5-参数7 (纬度、经度和海拔)。

命令参数

指令字段 特派团规划员外地 说明
参数1 感兴趣区域模式。(见 MAV_ROI 枚举) // 0 = 无兴趣区域,1 = 下一个航点,2 = 航点编号,3 = 固定位置,4 = 给定目标(不支持)。
参数2 任务索引/目标 ID。(见 MAV_ROI 枚举)
参数3 投资回报率指数(允许载具管理多个投资回报率)
参数4
参数5 纬度 固定 ROI 的纬度 (x)
参数6 固定 ROI 的经度(y)
参数7 Alt 固定 ROI 的高度

任务计划截图/视频

../_images/MissionList_DoSetRoi.jpg

旋翼飞行器:Mission Planner地面站对 DO_SET_ROI 命令的设置

在上面的例子中,机头和摄像头将对准红色标记。

mav_cmd_doo_digicam_configure

支持:所有载具。

配置车载摄像头控制器系统。

这些参数会被转发到车载摄像机控制器系统(如 3DR 摄像机控制板),如果有的话。

命令参数

指令字段 特派团规划员外地 说明
参数1 模式 设置相机模式:1:程序自动 2:光圈优先 3:快门优先 4:手动 5:智能自动 6:高级自动
参数2 快门速度 快门速度(秒除数)。因此,如果速度是 1/60 秒,输入的值就是 60。支持的最慢快门触发速度为 1 秒。
参数3 光圈 光圈F 光圈值
参数4 国际标准化组织 ISO 编号,如 80、100、200 等。
参数5 曝光模式 曝光类型枚举器
参数6 命令 ID 指挥身份
参数7 发动机切断 摄像机触发前主机关闭时间,单位为秒/10(0 表示不关闭)。

mav_cmd_doo_digicam_control

支持:所有载具。

触发 相机快门 一次。该命令不需要其他参数。

命令参数

一般来说,如果命令字段设置为 0,则会被忽略。

指令字段 特派团规划员外地 说明
参数1 开/关 会话控制(开/关或显示/隐藏镜头):0: 关闭摄像机/隐藏镜头 1: 打开摄像机/显示镜头
参数2 缩放位置 缩放的绝对位置。2倍、3倍、10倍等。
参数3 放大步骤 缩放步长值,用于偏移当前位置的缩放幅度
参数4 焦点锁定 对焦锁定、解锁或重新锁定: 0:忽略 1:解锁 2:锁定
参数5 快门指令 拍摄指令。任何非零值都会触发相机。
参数6 命令 ID 指挥身份
参数7

任务计划截图

../_images/MissionList_DoDigicamControl.png

DO_DIGICAM_CONTROL 命令的Mission Planner地面站设置。

mav_cmd_doo_mount_control

支持:所有载具。

控制摄像头或天线座的任务指令。

该命令允许您指定滚转、俯仰和偏航角度,这些角度将被发送到 相机万向节.这可用于在任务的不同时间将摄像机指向特定的方向。

命令参数

指令字段 特派团规划员外地 说明
参数1 螺距,单位为度。
参数2 滚动,单位为度。
参数3 偏航/航向,单位度数。
参数4 矜持
参数5 矜持
参数6 矜持
参数7 飞行模式 `__ 枚举值。

任务计划截图

../_images/MissionList_DoMountControl.png

Mission Planner地面站对 DO_MOUNT_CONTROL 命令的设置

mav_cmd_doo_gimbal_manager_pitchyaw

支持:所有载具。

任务指令,用于将云台移动到所需的俯仰角和偏航角(单位:度)。

该命令允许您指定俯仰角和偏航角,并将其发送到 相机万向节.这可用于在任务的不同时间将摄像机指向特定的方向。正俯仰角为向上,负俯仰角为向下。正偏航角为顺时针,负偏航角为逆时针。

命令参数

指令字段 特派团规划员外地 说明
参数1 螺距,单位为度。
参数2 偏航/航向,单位度数。
参数3 俯仰速度,单位为度/秒。
参数4 偏航速率,单位度/秒
参数5 标记:0=boddyframe, 16=earthframe
参数6 矜持
参数7 云台实例 ID

任务计划截图

../_images/mission-list-do-gimbal-manager-pitchyaw.png

DO_GIMBAL_MANAGE_PITCHYAW 命令的Mission Planner地面站设置

mav_cmd_doo_set_cam_trigg_dist

支持:所有载具。

触发 相机快门 以固定的距离间隔。该命令适用于 相机勘测任务.要在通过 DO 命令后立即触发摄像机一次,请将参数 3 设置为 1。 立即触发参数从 ArduPilot 4.1 开始提供。

备注

如果距离为零,则不会触发相机快门。

命令参数

指令字段 特派团规划员外地 说明
参数1 距离(米) 摄像机触发距离间隔(米)。归零可关闭距离触发。
参数2
参数3 ? 瞬间触发一次。1 表示打开,0 表示关闭。
参数4
参数5
参数6
参数7

任务计划截图

../_images/MissionList_DoSetCamTriggDist.png

DO_SET_CAM_TRIGG_DIST 命令的Mission Planner地面站设置

上述配置会导致载具每行驶 5 米就触发一次相机快门。

mav_cmd_doo_fence_enable

支持:所有载具。

启用飞机的任务指令 地理围栏, 旋翼飞行器/漫游车 圆柱形栅栏 和/或 包容和排斥栅栏.

命令参数

指令字段 特派团规划员外地 说明
参数1 设置 GeoFence 启用状态(0= 禁用,1= 启用,2= 仅禁用楼层(仅平面))。
参数2
参数3
参数4
参数5
参数6
参数7

mav_cmd_doo_aux_function

支持:所有载具。

任务指令控制一个 辅助功能 方式与 RC 通道开关相同。

命令参数

指令字段 特派团规划员外地 说明
参数1 辅助功能 辅助功能代码,与 RCx_OPTIONS 相同
参数2 开关位置 0:低,1:中,2:高
参数3
参数4
参数5
参数6
参数7

mav_cmd_doo_parachute

由旋翼飞行器(不是飞机或漫游车)。

触发降落伞的任务指令(如果启用)。

命令参数

指令字段 特派团规划员外地 说明
参数1 启用/释放 降落伞动作(0=禁用,1=启用,2=释放)。
参数2
参数3
参数4
参数5
参数6
参数7

mav_cmd_doo_gripper

由旋翼飞行器(不是飞机或漫游车)。

操作 EPM 机械手的任务指令。

备注

"这款" 将 Copter 与机械手集成的说明 过时,并使用 DO_SET_SERVO 激活机械手(2015 年 4 月)。

命令参数

指令字段 特派团规划员外地 说明
参数1 机械爪/机械手臂 无 机械手数量(从 1 到载具上机械手的最大数量)。
参数2 下降(0)/抓取(1) 抓取动作:0:释放 1:抓取
参数3
参数4
参数5
参数6
参数7

mav_cmd_doo_guided_limits

由旋翼飞行器(不是飞机或漫游车)。

该命令设置外部控制("引导 "模式)的时间、高度和距离限制。当超过这些限制时,控制将从 "引导 "模式返回任务。将其中任何一个参数设置为零都将取消相关限制。

命令参数

指令字段 特派团规划员外地 说明
参数1 超时 S 允许外部控制器控制载具的最长时间(秒)。使用 0 可取消时间限制(允许无限时间)。
参数2 最小高度 允许的最低绝对高度(单位:米,AMSL),低于此高度时将终止指令,继续执行任务。使用 0 表示没有最低高度限制。
参数3 最大高度 允许的最大绝对高度(以米为单位,AMSL),超过此高度将终止命令并继续执行任务。使用 0 表示没有最大高度限制。
参数4 最大距离 水平移动限制(单位:米,AMSL)。如果飞行器与执行命令时所处位置的距离超过该距离,命令将被终止,任务将继续执行。使用 0 表示没有水平移动限制。
参数5
参数6
参数7

mav_cmd_doo_set_resume_repeat_dist

支持:所有载具。

设置中断(切换模式)后继续运行时任务重绕的距离。有关该功能的详细说明,请参阅 简历页面上的任务回放.在任务中设置倒带距离后,将距离设置为零将关闭任务中该点的倒带功能。

命令参数

指令字段 特派团规划员外地 说明
参数1 ? 倒带距离(米
参数2
参数3
参数4
参数5
参数6
参数7

mav_cmd_storage_format

支持:所有载具。

格式化 SD 卡。适用于无法访问 SD 卡的载具。参数 1 和参数 2 必须设置为 1。

命令参数

指令字段 特派团规划员外地 说明
参数1 ? 必须是 1
参数2 ? 必须是 1
参数3
参数4
参数5
参数6
参数7

mav_cmd_doo_winch

由旋翼飞行器

控制卷扬机运行。

命令参数

指令字段 特派团规划员外地 说明
参数1 卷扬机无 目前未使用
参数2 行动 0 表示放松卷扬机,1 表示长度控制,2 表示速率控制
参数3 长度 应填写要释放的线路的米数。正数放线,负数收线。注意 "action "应为 "1"。
参数4 费率 应填入释放直线的速度(米/秒)。正数放线,负数收线。注意 "动作 "应为 "2"。
参数5
参数6
参数7