任务指令

本文介绍了 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 等)可能支持其他一些命令/参数子集,并使用其他名称/标签。在大多数情况下,映射应该是显而易见的。

条件命令

条件命令可控制_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 米范围内时才会启动。

DO 命令

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

mav_cmd_doo_change_speed

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

更改目标水平速度和/或载具油门。

命令参数

指令字段 特派团规划员外地 说明
参数1
参数2 速度(米/秒) 目标速度(米/秒)。
参数3
参数4
参数5
参数6
参数7

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 命令中将以下参数设置为全 0 参数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 的高度

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_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