航线命令


本页面提供了Copter支持的常用任务命令(即MAVLink命令)的详细信息,这些命令可作为任务的一部分运行(请参阅AUTO飞行模式).

以下每条命令均为“导航”命令(带有NAV字样)或“执行”命令(DO命令)。“导航”命令(例如“起飞”和“航点”)会影响飞行器的位置,而“执行”命令(例如“执行-设置舵机”和“执行-摄像头触发距离”)则用于辅助功能,不会影响飞行器的位置。

起飞

MAV_CMD_NAV_TAKE_OFF

将从当前位置爬升至指定高度;这应是全自动航线的第一个指令。

[!TIP] 解锁起飞后,飞行器将直接爬升至指定高度。如果已高于指定高度,起飞指令被忽略,直接进入下一个航点;如果下个指令时“执行”命令也不会执行。

您可以通过简易任务卡设置起飞目标高度:

takeoff

对于起飞命令的所有开放设置参数如下:

参数序号 参数名 数据类型 单位 说明(多旋翼 / 固定翼通用)
param1 起飞俯仰角 / 空转时间 float deg/s 固定翼:起飞俯仰角;多旋翼:解锁后空转时间
param2 预留参数 float - 一般设为 0(预留参数)
param3 预留参数 float - 固定为 0,无实际意义
param4 起飞偏航角(机头朝向) float deg 0 = 正北,90 = 正东,360=循环,
--.--(NAN)为当前航向模式WP_YAW_BEHAVIOR
param5 目标纬度 float deg 起飞点纬度(WGS84 坐标系)
param6 目标经度 float deg 起飞点经度(WGS84 坐标系)
param7 目标高度 float m 起飞到XX高度

航点

航点目标:该飞行器将沿直线飞往指定的纬度、经度和海拔高度(以米为单位)。

第一次新增航点需要先点击飞行工具栏的“航点”工具,然后在地图中选择目标位置点击新增航点,可以通过简易任务卡设置航点属性:

takeoff

  • 高度:该航点的目标高度(以米为单位)
  • 保持/延迟:到达航点后,等待多久再执行下一个指令(以秒为单位)
  • 航点半径(接受):不支持;应使用WPNAV_RADIUS参数。
  • 飞行速度:勾选,并设置速度,将任务卡将作为复合任务卡,在航点前新增一个变速指令。
  • 相机:可设置相机和云台组合成复合任务卡。

与航点命令相关的参数:

参数(标签) 描述 取值 单位
1 (停留时间) 航点停留时间(固定翼机型忽略此参数,多旋翼机型在航点处的停留时长) 最小:0 秒(s)
2 (航点半径) 航点接受半径(当无人机进入该半径范围内时,判定为已到达此航点) 最小:0 米(m)
3 (掠过半径) 设为0表示精确穿过航点;大于0表示掠过航点;正值为顺时针环绕,负值为逆时针环绕,支持轨迹控制 - 米(m)
4 (偏航角) 航点处目标机头偏航角(多旋翼机型)。设为NaN表示使用系统当前偏航模式(例如:指向下一航点、指向返航点等) - 度(deg)
5 (纬度) 纬度 - -
6 (经度) 经度 - -
7 (高度) 高度 - 米(m)

曲线航点

MAV_CMD_NAV_SPLINE_WAYPOINT (82)

曲线航点与普通航点采用完全相同的参数(纬度、经度、高度、延迟),但在执行时,雷迅飞行器将沿平滑路径飞行(包括垂直和水平方向),而非直线飞行

takeoff

takeoff

takeoff

上图展示了一些曲线的特征

  • 航点#2为普通航点,飞机飞往航点#1时为直线飞行,航点#3/4/5为曲线航线则以曲线平滑飞往目标航点,到航点6为普通航点,飞机以直线飞往航点6。

悬停时间

MAV_CMD_NAV_LOITER_TIME(19)

飞行器将飞往指定位置,然后在该位置悬停至指定的秒数再执行下一个命令。

takeoff

参数(标签) 描述 取值 单位
1(时间) 盘旋时间,仅在到达指定经纬度、高度后开始计时 最小值:0
2(航向要求) 仅航向对准下一航点时退出盘旋;0为计时结束退出,仅0/1有效 MAV_BOOL -
3(半径) 固定翼机型盘旋半径,正值顺时针,负值逆时针,多旋翼/直升机无效 -
4(偏航轨迹位置) 固定翼机型盘旋退出轨迹规则,0=中心收敛,1=直线飞往下一航点,NaN=系统默认 - -
5(纬度) 目标纬度 - -
6(经度) 目标经度 - -
7(高度) 目标高度 -

悬停绕圈

MAV_CMD_NAV_LOITER_TURNS (18)

takeoff

与环形飞行模式等效的任务。在指定位置盘旋(环绕)至少指定次数的完整圈数,然后在航线与环形轨迹相交时执行下一个命令。 圆的半径又命令参数控制;半径为0时;多旋翼或者直升机将在该位置按照圈数原地自旋;负值为逆时针旋转,,半径值超255米时,下向取证最低的10米标记。

参数(标签) 描述 取值 单位
1(圈数) 盘旋飞行的圈数 最小值:0 -
2(航向要求) 仅航向对准下一航点时退出盘旋,0为圈数完成后退出,仅0、1有效 MAV_BOOL -
3(半径) 固定翼机型盘旋半径,正值顺时针、负值逆时针,多旋翼不适用 -
4(偏航轨迹位置) 固定翼机型盘旋退出轨迹规则,0=中心收敛,1=直线飞往下一航点,NaN=系统默认 - -
5(纬度) 盘旋中心点纬度 - -
6(经度) 盘旋中心点经度 - -
7(高度) 盘旋飞行高度 -

悬停

MAV_CMD_NAV_LOITER_UNLIM (17)

该飞行器将飞往指定位置并无限期地停留。任务将不会继续执行此命令之后的步骤。

takeoff

参数(标签) 描述 单位
1 空参数(未使用) -
2 空参数(未使用) -
3(半径) 仅固定翼行进机型(非多旋翼)的航点盘旋半径,正值为顺时针盘旋,负值为逆时针盘旋 米(m)
4(偏航角) 目标偏航角,设置为NaN时使用系统当前偏航模式(例如:指向下一航点、指向返航点等) 度(deg)
5(纬度) 纬度 -
6(经度) 经度 -
7(高度) 高度 米(m)

盘旋至高度

MAV_CMD_NAV_LOITER_TO_ALT

在指定的经纬度爬升/下降至目标高度;如果经纬度为0则在当前位置执行命令;只有达到指定高度和航向时才视为指令完成。

[!TIP] 根据ardupilot系统逻辑;执行完上一个航点后将会根据该指令高度平滑调整飞往目标点途中的高度;当降低高度时,会有飞行危险;可通过新增一个航点引导至目标点。

takeoff

参数(标签) 描述 取值 单位
1(航向要求) 仅当航向对准下一航点时退出盘旋(MAV_BOOL_FALSE:到达设定高度后退出),非0或1的数值均无效 MAV_BOOL -
2(半径) 仅固定翼行进机型(非多旋翼)的航点盘旋半径,正值为顺时针盘旋,负值为逆时针盘旋,0表示使用标准盘旋模式 - 米(m)
3 空参数(未使用) - -
4(偏航轨迹位置) 仅前向行进机型(非多旋翼)的盘旋退出位置与前往下一航点的偏航轨迹;0表示退出盘旋后向中心轨迹收敛,1表示沿退出点与下一航点直线飞行;其他数值为盘旋切线与中心轨迹的夹角(单位:度);NaN表示使用系统默认偏航轨迹行为 最小值:0,最大值:1,步长:1 -
5(纬度) 纬度 - -
6(经度) 经度 - -
7(高度) 高度 - 米(m)

RTL返航

MAV_CMD_NAV_RETURN_TO_LAUNCH (20)

takeoff

该指令可以通过左侧的飞行工具栏的返航/返回快速快捷添加。

与RTL飞行模式等效的任务模式。正如RTL飞行模式维基页面所述,该飞行器将首先爬升至参数指定的高度(默认为15米),然后再返航。返航位置即为飞行器上次完成武装时所在的位置。 此命令不带任何参数,通常应作为任务中的最后一道命令。

LAND降落

MAV_CMD_NAV_LAND (21)

takeoff

该飞行器将降落在其当前位置或提供的经纬度坐标处。这相当于LAND.

  • 纬度、经度——目标的纬度和经度。如果保留为零,则将在当前位置着陆。
参数(标签) 描述 取值 单位
1(终止高度) 着陆终止时的最小目标高度(0 = 未定义/使用系统默认值) - 米(m)
2(着陆模式) 精准着陆模式 PRECISION_LAND_MODE -
3 空参数(未使用) - -
4(偏航角) 目标偏航角,设为 NaN 时使用系统当前偏航模式(如:指向下一航点、指向返航点等) - 度(deg)
5(纬度) 纬度 - -
6(经度) 经度 - -
7(高度) 着陆高度(当前坐标系下的地面高度) - 米(m)

导航延迟

MAV_CMD_NAV_DELAY (93)

takeoff

任务中悬停至当前点延时等待,暂停执行下一个航点指令;直至指定的秒数或达到绝对时间。

  • 保持/延时时间:单位秒;如果忽略请设置为-1。
  • UTC时分秒用于指定绝对时间;UTC为世界标准时,北京时间-8h。
参数(标签) 描述 取值 单位
1(延时) 延时时间(设置为-1时启用指定UTC时刻字段) 最小值:-1,步长:1 秒(s)
2(小时) 小时(24小时制,UTC时间,-1为忽略) 最小值:-1,最大值:23,步长:1 -
3(分钟) 分钟(24小时制,UTC时间,-1为忽略) 最小值:-1,最大值:59,步长:1 -
4(秒) 秒(24小时制,UTC时间,-1为忽略) 最小值:-1,最大值:59,步长:1 -
5 空参数,未使用 - -
6 空参数,未使用 - -
7 空参数,未使用 - -

[!TIP] 使用它取代常规指令中的延时(condition_delay指令);因为condition_delay指令不会影响导航指令,飞机不会等待,而是同时执行下一个航点,当下一个航点执行结束、前面的执行命令未执行将被忽略。

跳转循环

MAV_CMD_DO_JUMP (177)

跳转到任务列表中指定的命令,仅按设定次数重复执行该动作

参数(标签) 描述 取值
1(序号) 航点序列编号 最小值:0,步长:1
2(重复次数) 重复执行次数 最小值:0,步长:1
3 空参数(未使用) -
4 空参数(未使用) -
5 空参数(未使用) -
6 空参数(未使用) -
7 空参数(未使用) -

[!TIP] 尽管名称中带有“Do”,但“Do-Jump”实际上是一个“Nav”命令,而非“Do”命令。因此,像CONDITION_DELAY这样的条件命令不会影响Do-Jump,它一旦遇到该命令便会立即执行跳转;任务中最多使用一百(100)个跳转指令。

载荷位置

MAV_CMD_NAV_PAYLOAD_PLACE (94)

该飞行器飞往指定位置,并持续下降(最大下降距离由参数1),直至通过电机输出感应到包裹已触地。随后,夹爪会松开以卸下包裹,并上升至航点高度。

参数(标签) 描述 取值 单位
1(最大下降距离) 最大下降距离 最小值:0 米(m)
2 空参数(未使用) - -
3 空参数(未使用) - -
4 空参数(未使用) - -
5(纬度) 纬度 - -
6(经度) 经度 - -
7(高度) 高度 - 米(m)
  • PLDP_SPEED_DN:到达航点后,下降速度为LAND_SPEED或此值(若非零)。
  • PLDP_THRESH:表示有效载荷着陆的推力降低百分比。参考推力是在下降前两秒内测得的。
  • PLDP_RNG_MAX:如果非零,则表示从向下指向的测距仪获取的离地最大释放高度。只有当飞行器低于此离地高度且推力已降低时,才能自动释放夹爪。如果此值非零但未安装测距仪,则任务将被中止,飞行器将上升并前往下一个航点。
  • PLDP_DELAY:释放车辆后,延迟若干秒才会开始上升。这允许在夹爪设置为延迟后重新夹持时更换有效载荷(请参阅GRIP_AUTOCLOSE)

条件-延迟

MAV_CMD_CONDITION_DELAY (112)

将下一个“执行”命令的启动延迟指定的秒数。在上例中,命令#4(执行-设置航点)被延迟,此命令不会使飞行器停止。延迟定时器仅在到达下一个航点之前有效;因此,如果到那时“执行”命令仍未触发,它将永远不会触发。

  • 时间(秒)- 下一个“执行”命令的延迟时间,单位为秒。

条件-等待距离

MAV_CMD_CONDITION_DISTANCE (114)

将下一个“执行”命令的启动延迟,直至车辆距离下一个航点的指定米数以内才启动。此命令不会导致车辆在任务期间停止或暂停,它仅影响“执行”命令。

  • 距离(米)- 车辆在开始下一个“执行”命令之前,应与下一个航点保持多近的距离(以米为单位)。

条件-等待偏航

MAV_CMD_CONDITION_YAW (115)

将机头指向指定方向,偏转指定角度。

  • deg- 以度为单位的所需航向(0 = 北,90 = 东等),当“rel/abs”字段为“0”时(表示绝对)
  • 速度 deg/s——车辆转向至所需航向时的旋转速度(单位:度/秒)
  • Dir 1=CW— 用于指示旋转方向,以达到目标角度(1=CW,-1=CCW,0=车辆将始终朝最快速使其抵达新目标航向的方向转动,但仅当“rel/abs”=“0”时有效)。
  • rel/abs(0=绝对,1=相对)- 允许将航向(即“Deg”字段)指定为绝对航向(若为“0”)或相对于当前航向的相对航向(若为“1”)

执行辅助功能

允许从任务内部执行任何辅助功能,而无需设置辅助开关。 “AuxFunction”字段应设置为链接页面中的“RCx_OPTION值”。“Switch”字段对应于辅助功能开关位置,“0”表示“低”,“1”表示“中”,“2”表示高。

变速

MAV_CMD_DO_CHANGE_SPEED (178)

takeoff

更改速度和 / 或油门设定点。该值将一直保持,直到被覆盖或模式发生改变。简易任务卡开放以下参数

  • 类型:空速、地速、上升速度、下降速度
  • 偏移量:绝对、相对
  • 速度:目标速度
  • 油门
参数值 中文描述 取值范围 单位
1 参数2中设置的速度类型(如空速、地速等) SPEED_TYPE -
2 速度(-1表示无变化,-2表示恢复为默认速度) min: -2 m/s
3 油门(-1表示无变化,-2表示恢复为默认油门值) min: -2 %
4 - -
5 - -
6 - -
7 - -

变高

MAV_CMD_NAV_CONTINUE_AND_CHANGE_ALT (30)

takeoff

继续沿当前航线飞行,并爬升至/下降至指定高度。当达到该高度后,继续执行下一条指令(即在达到期望高度之前,不要执行下一条指令)。

参数值 描述 取值范围 单位
1 (Action) 爬升或下降(0 = 中性,当与指令高度差在5m内时指令完成;1 = 爬升,当达到或高于指令高度时指令完成;2 = 下降,当达到或低于指令高度时指令完成。) min: 0 max: 2 inc: 1 -
2 - -
3 - -
4 - -
5 - -
6 - -
7 目标高度 - m

设置相机触发距离

MAV_CMD_DO_SET_CAM_TRIGG_DIST (206)

设置本次飞行相机触发距离的任务指令。每次超出此距离时,相机即被触发。要停止相机触发,请添加DO_SET_CAM_TRIGG_DIST =0后在任务中。

Param (Label) 中文描述 取值范围 单位
1 (Distance) 相机触发距离。0 表示停止触发。 min: 0 m
2 (Shutter) 相机快门曝光时间。-1 或 0 表示忽略。 min: -1 inc: 1 ms
3 (Trigger) 立即触发相机一次(MAV_BOOL_TRUE)。不等于 0 或 1 的值无效。 MAV_BOOL -
4 (Target Camera ID) 目标相机 ID。7–255:MAVLink 相机组件 ID;1–6:连接到自动驾驶仪的相机(无独立组件 ID);0:所有相机。用于在任务中使用 MAV_CMD 时指定特定相机。 min: 0 max: 255 inc: 1 -
5 - -
6 - -
7 - -

相机控制

MAV_CMD_DO_DIGICAM_CONTROL (203)

takeoff

按一次相机快门。Shutter Cmd字段应该设置为1。

Param (Label) 中文描述
1 (Session Control) 会话控制,例如显示/隐藏镜头
2 (Zoom Absolute) 变焦的绝对位置
3 (Zoom Relative) 变焦步长值,用于从当前位置偏移变焦
4 (Focus) 对焦锁定、解锁或重新锁定
5 (Shoot Command) 拍摄命令
6 (Command Identity) 命令标识
7 (Shot ID) 测试拍摄标识符。若设为1,图像仅会被捕获,但不计入内部帧计数

相机配置

MAV_CMD_DO_DIGICAM_CONFIGURE (202)

配置相机的设置

Param (Label) 中文描述 取值范围 单位
1 (Mode) 拍摄模式:程序自动(P)、快门优先(TV)、光圈优先(AV)、手动(M)等 min: 0 inc: 1 -
2 (Shutter Speed) 快门速度:以1秒为分母的数值(如500表示1/500秒) min: 0 inc: 1 -
3 (Aperture) 光圈:F值(如2.8、4.0、5.6等) min: 0 -
4 (ISO) ISO感光度:如80、100、200等 min: 0 inc: 1 -
5 (Exposure) 曝光类型枚举值 - -
6 (Command Identity) 命令标识 - -
7 (Engine Cut-off) 相机触发前主引擎关闭时间(0表示不关闭) min: 0 inc: 1 十分之一秒(ds);默认0即可

云台控制俯仰与偏航

MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW (1000)

takeoff

将相机云台移动到所需的俯仰角和偏航角(单位:度)。正的俯仰角表示向上,负的俯仰角表示向下;正的偏航角表示顺时针方向,负的偏航角表示逆时针方向。若“标志”字段为“0”,偏航角采用“机体坐标系”(0度表示飞行器正前方);若“标志”为“16”,偏航角采用“地心坐标系”(0度表示地理北向)。

参数 (标签) 描述 取值 单位
1 (俯仰角) 俯仰角(正向为抬头,跟随模式下相对于飞行器机体,锁定模式下相对于世界地平线) 最小值: -180、最大值: 180
2 (偏航角) 偏航角(跟随模式下相对于飞行器机体,向右偏航为正角度;锁定模式下为绝对北向角度) 最小值: -180、最大值: 180
3 (俯仰角速率) 云台俯仰转动速率(正向为抬头方向),需匹配云台硬件能力 无强制范围,建议0-60(具体以云台说明书为准) 度/秒
4 (偏航角速率) 云台偏航转动速率(正向为顺时针方向),需匹配云台硬件能力 无强制范围,建议0-60(具体以云台说明书为准) 度/秒
5 (云台管理器标志) 控制云台坐标系、工作模式的核心标志 GIMBAL_MANAGER_FLAGS 枚举(常用值见下方补充) -
7 (云台设备ID) 要寻址的云台设备组件ID:0表示所有云台;1-6用于非MAVLink云台;7-255为MAVLink云台组件ID。控制多个云台需分别发送命令 0-255 -

补充:GIMBAL_MANAGER_FLAGS 核心常用枚举值

  • 0:默认模式(机体坐标系,云台跟随飞行器姿态)
  • 16:地心坐标系模式(偏航角锁定地理北向)
  • 32:锁定模式(云台姿态相对世界固定,不跟随飞行器转动)
  • 64:优先RC控制(遥控器操作优先级高于该命令)

设置兴趣点ROI

MAV_CMD_DO_SET_ROI (201)

takeoff

将机头头或摄像头云台对准“感兴趣区域”,在任务结束前,机头将持续指向兴趣区域,或通过在任务后期添加DO_SET_ROI_NONE(其中纬度、经度和高度均为零),使无人机清除目标点设置并恢复到默认行为(即指向下一个航点)。

Param (Label) 描述 取值范围 单位
1 (ROI Mode) 兴趣区域模式 MAV_ROI -
2 (WP Index) 航点索引/目标ID(取决于参数1) min: 0 inc: 1 -
3 (ROI Index) 兴趣区域索引(允许飞行器管理多个ROI) min: 0 inc: 1 -
4 - -
5 当ROI模式为MAV_ROI_WPNEXT时:下一航点的俯仰偏移;当ROI模式为MAV_ROI_LOCATION时:纬度 - -
6 当ROI模式为MAV_ROI_WPNEXT时:下一航点的横滚偏移;当ROI模式为MAV_ROI_LOCATION时:经度 - -
7 当ROI模式为MAV_ROI_WPNEXT时:下一航点的偏航偏移;当ROI模式为MAV_ROI_LOCATION时:高度(M) - -

设置继电器

MAV_CMD_DO_SET_RELAY (181)

takeoff

设置继电器引脚的电压为高电平或低电平。

Param (Label) 描述 取值范围 单位
1 (Instance) 继电器实例编号 min: 0 inc: 1 -
2 (Setting) 设置(1=开,0=关) min: 0 inc: 1 -
3 - -
4 - -
5 - -
6 - -
7 - -

循环继电器

MAV_CMD_DO_REPEAT_RELAY (182)

takeoff

将继电器引脚的电压切换指定次数。在上述示例中,假设继电器最初处于关闭状态,它将被设为高电平,然后3秒后再次切换为低电平。

设置通道PWM(伺服)

MAV_CMD_DO_SET_SERVO (183)

将舵机设置为所需的PWM值。

takeoff

设置循环伺服

MAV_CMD_DO_REPEAT_SERVO (184) 在标称设定值与所需PWM之间循环,以所需周期进行指定次数的循环。

takeoff

控制挂载

MAV_CMD_DO_MOUNT_CONTROL(205)

  • 这是 MAVLink 协议中用于控制云台/相机安装架的传统命令,现已被 MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW(ID: 1000)等新命令所取代
Param (Label) 中文描述 取值 单位
1 (Pitch) 俯仰角(或俯仰速率,取决于模式) - 度 / 度/秒
2 (Roll) 横滚角(或横滚速率,取决于模式) - 度 / 度/秒
3 (Yaw) 偏航角(或偏航速率,取决于模式) - 度 / 度/秒
4 (Target Latitude) 目标纬度(GPS_POINT 模式下) -
5 (Target Longitude) 目标经度(GPS_POINT 模式下) -
6 (Target Altitude) 目标高度(GPS_POINT 模式下) - m
7 (Mount Mode) 云台操作模式(MAV_MOUNT_MODE 枚举) MAV_MOUNT_MODE -
  • MAV_MOUNT_MODE 枚举值
    • 0: MAV_MOUNT_MODE_RETRACT(收回)
    • 1: MAV_MOUNT_MODE_NEUTRAL(中立)
    • 2: MAV_MOUNT_MODE_MAVLINK_TARGETING(MAVLink 目标)
    • 3: MAV_MOUNT_MODE_RC_TARGETING(RC 目标)
    • 4: MAV_MOUNT_MODE_GPS_POINT(GPS 点)

夹持器

MAV_CMD_DO_GRIPPER (211)

操作夹爪的任务指令。

Param (Label) 描述 取值 单位
1 (Gripper ID) 抓爪ID。对于自动驾驶仪连接的抓爪,取值为1-6。在任务中,可设置为1-6(自动驾驶仪抓爪)或MAVLink抓爪的组件ID;0表示所有抓爪。 min: 0 inc: 1 -
2 (Action) 要执行的抓爪动作。 GRIPPER_ACTIONS -
3 - -
4 - -
5 - -
6 - -
7 - -

自动绞盘

MAV_CMD_DO_WINCH (42600)

此命令可控制绞盘以提升或降低包裹。

Param (Label) 描述 取值 单位
1 (Instance) 绞车实例编号 min: 1 inc: 1 -
2 (Action) 要执行的动作 WINCH_ACTIONS -
3 (Length) 释放的缆线长度(负值表示收缆) - m
4 (Rate) 释放速率(负值表示收缆速率) - m/s
5 - -
6 - -
7 - -
  • WINCH_ACTIONS 枚举值(常见定义)
    • 0: WINCH_RELATIVE(相对长度控制)
    • 1: WINCH_ABSOLUTE(绝对长度控制)
    • 2: WINCH_RETRACT(完全收回缆线)
    • 3: WINCH_RELEASE(完全释放缆线)
    • 4: WINCH_HOLD(保持当前位置)

results matching ""

    No results matching ""