任务指令¶
本文介绍了 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 不支持该命令或参数。
原因是,这些信息主要是通过检查命令处理程序的信息推断出来的:
中的 switch 语句 AP_Mission::mavlink_to_Mission_cmd 进行了检查,以确定哪些命令由 一应俱全 载具平台,以及存储信息中的哪些参数。
每种载具类型的命令处理程序开关 (固定翼飞行器, 旋翼飞行器, 无人车UGV)告诉我们每辆车可能支持哪些命令,以及哪些参数会传递给处理程序。
通过上述检查,可以非常准确地了解哪些命令和参数不受支持。通过上述检查,可以比较准确地了解哪些命令/参数不支持。 可能得到支持.不过,这种指示并不能保证准确,因为命令处理程序可能会丢弃所有信息(我们还没有完全检查所有这些信息)。
除上述检查外,我们还合并了来自 旋翼飞行器任务指令列表.
如何解释命令参数¶
表中列出了每条命令的参数。灰色显示 "的参数不受支持。命令字段列(参数名)使用 "粗体 "文本表示协议中定义的参数("空 "参数使用普通文本)。
这样,用户/开发人员就能看到 ArduPilot 支持哪些协议字段,以及不支持哪些协议字段。
将此信息与全球监控系统一起使用¶
Mission Planner地面站 (MP) 公开了 ArduPilot 支持的全部命令和参数子集,经过过滤后只显示与当前连接载具相关的命令和参数。将 MP 命令映射到此文档非常简单,因为它只需使用完整命令名称的缩减版来命名命令(例如,"......")。 DO_SET_SERVO
而不是完整的命令名称: mav_cmd_doo_set_servo
).此外,本文件还方便地列出了Mission Planner地面站在每个参数旁使用的列标。
其他 GCS(APM Planner 2、Tower 等)可能支持其他一些命令/参数子集,并使用其他名称/标签。在大多数情况下,映射应该是显而易见的。
UGV无人车支持的命令¶
该命令列表是从 /Rover/commands_logic.cpp.
mav_cmd_doo_digicam_configure (仅启用摄像头)
mav_cmd_doo_digicam_control (仅启用摄像头)
mav_cmd_doo_set_cam_trigg_dist (仅启用摄像头)
mav_cmd_doo_set_roi (仅启用云台/支架)
mav_cmd_doo_gimbal_manager_pitchyaw (仅启用云台/支架)
条件命令¶
条件命令可控制_DO_命令的执行。例如,条件命令可以根据时间延迟阻止 DO 命令的执行,直到飞行器达到一定的高度,或与下一个目标位置保持一定的距离。
在到达下一个航点之前,条件命令可能无法完成。在这种情况下,与上一个航点相关的任何未执行的 _DO_ 命令都将被跳过。
mav_cmd_condition_delay¶
支持:所有载具。
在到达一个航点后,将下一个有条件的"_DO_"命令的执行时间延迟指定的秒数(例如 mav_cmd_doo_set_roi).
备注
该命令不会使载具停止。如果载具在延迟计时器计时结束前到达下一个航点,延迟的"_DO_"命令将永远不会触发。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | 时间(秒) | 以秒(十进制)为单位的延迟。 |
参数2 | 空 | |
参数3 | 空 | |
参数4 | 空 | |
参数5 | 空 | |
参数6 | 空 | |
参数7 | 空 |
任务计划截图
在上面的示例中,命令 #4 (DO_SET_ROI
)被延迟,以便在载具通过 2 号航点 5 秒后启动。
mav_cmd_condition_distance¶
支持:所有载具。
推迟下一个"做
"命令,直到载具距离下一个航点在指定的米数范围内。
备注
该命令不会停止载具:它只影响 DO 命令。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | 距离(米) | 执行 DO 命令前距离下一个航点的距离(米)。 |
参数2 | 空 | |
参数3 | 空 | |
参数4 | 空 | |
参数5 | 空 | |
参数6 | 空 | |
参数7 | 空 |
任务计划截图
在上面的示例中,命令 #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 ) |
任务计划截图
mav_cmd_doo_set_relay¶
支持:所有载具。
设置一个 继电器 引脚电压的高电平(开)或低电平(关)。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | 继电器编号 | 中继器编号 |
参数2 | 关(0)/开(1) | 设置继电器状态:1: 设置继电器高电平/开(Pixhawk 为 3.3V,APM 为 5V)。0: 设置继电器低电平/关闭(0V),任何其他值都会切换继电器 |
参数3 | 空 | |
参数4 | 空 | |
参数5 | 空 | |
参数6 | 空 | |
参数7 | 空 |
任务计划截图
mav_cmd_doo_repeat_relay¶
支持:所有载具。
切换 继电器 在给定的周期内,按指定次数切换继电器引脚的电压/状态。拨动继电器可打开关闭的继电器,反之亦然。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | 继电器编号 | 中继器编号 |
参数2 | 重复 # | 周期计数 - 应切换继电器的次数 |
参数3 | 延迟 | 循环时间(秒,十进制)- 每次切换之间的时间间隔。 |
参数4 | 空 | |
参数5 | 空 | |
参数6 | 空 | |
参数7 | 空 |
任务计划截图
在上述示例中,假定继电器一开始是关闭的,那么它将被设置为高电平,然后在 3 秒钟后再次切换为低电平。
mav_cmd_doo_set_servo¶
支持:所有载具。
设置给定的 伺服引脚 输出到特定的 PWM 值。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | Ser No | 伺服编号 - 目标伺服输出引脚/通道编号。 |
参数2 | PWM | 输出的 PWM 值,以微秒为单位(通常为 1000 至 2000)。 |
参数3 | 空 | |
参数4 | 空 | |
参数5 | 空 | |
参数6 | 空 | |
参数7 | 空 |
任务计划截图
在上面的例子中,连接到输出通道 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 | 空 |
任务计划截图
在上面的示例中,连接到输出通道 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 | 空 |
任务计划截图
mav_cmd_doo_mount_control¶
支持:所有载具。
控制摄像头或天线座的任务指令。
该命令允许您指定滚转、俯仰和偏航角度,这些角度将被发送到 相机万向节.这可用于在任务的不同时间将摄像机指向特定的方向。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | 螺距,单位为度。 | |
参数2 | 滚动,单位为度。 | |
参数3 | 偏航/航向,单位度数。 | |
参数4 | 矜持 | |
参数5 | 矜持 | |
参数6 | 矜持 | |
参数7 | 飞行模式 |
任务计划截图
mav_cmd_doo_gimbal_manager_pitchyaw¶
支持:所有载具。
任务指令,用于将云台移动到所需的俯仰角和偏航角(单位:度)。
该命令允许您指定俯仰角和偏航角,并将其发送到 相机万向节.这可用于在任务的不同时间将摄像机指向特定的方向。正俯仰角为向上,负俯仰角为向下。正偏航角为顺时针,负偏航角为逆时针。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | 螺距,单位为度。 | |
参数2 | 偏航/航向,单位度数。 | |
参数3 | 俯仰速度,单位为度/秒。 | |
参数4 | 偏航速率,单位度/秒 | |
参数5 | 标记:0=boddyframe, 16=earthframe | |
参数6 | 矜持 | |
参数7 | 云台实例 ID |
任务计划截图
mav_cmd_doo_set_cam_trigg_dist¶
支持:所有载具。
触发 相机快门 以固定的距离间隔。该命令适用于 相机勘测任务.要在通过 DO 命令后立即触发摄像机一次,请将参数 3 设置为 1。 立即触发参数从 ArduPilot 4.1 开始提供。
备注
如果距离为零,则不会触发相机快门。
命令参数
指令字段 | 特派团规划员外地 | 说明 |
---|---|---|
参数1 | 距离(米) | 摄像机触发距离间隔(米)。归零可关闭距离触发。 |
参数2 | 空 | 参数3 | ? | 瞬间触发一次。1 表示打开,0 表示关闭。 |
参数4 | 空 | |
参数5 | 空 | |
参数6 | 空 | |
参数7 | 空 |
任务计划截图
上述配置会导致载具每行驶 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 | 空 |