制导模式下的旋翼飞行器指令¶
本文列出了影响飞行器移动的 MAVLink 命令。这些命令通常由地面站或 配套计算机 频跑 无人机套件.
备注
可以找到处理这些命令的 Copter 代码 在 GCS_Mavlink.cpp 中的此处
移动指令¶
这些指令可用于控制飞行器的位置、速度或姿态,同时在 引导模式
设置目标姿态 (在制导和制导_NoGPS 模式下均可使用)
MAV_CMDs¶
如果将这些 MAV_CMD 打包到一个 命令长 留言
mav_cmd_doo_flighttermination - 立即解除电机(旋翼飞行器坠落!)。
如果将这些 MAV_CMD 打包到一个 COMMAND_INT 信息
移动指令详情¶
本节详细介绍了 MAVLink 移动飞行器的命令
设置目标位置¶
设置载具的目标位置(与 EKF 原点的 NED 偏移量)、速度、加速度、航向或转弯率。信息定义如下 这里
指令字段 | 说明 |
---|---|
启动时间 | 发件人的系统时间(以毫秒为单位,从启动开始计时 |
目标系统 | 载具的系统 ID |
目标组件 | 飞行控制器的组件 ID 或仅为 0 |
坐标框架 | 有效选项如下 |
类型掩码 | 位掩码,用于指示哪些字段应 被忽视 (请参阅 POSITION_TARGET_TYPEMASK 枚举)。 bit1:PosX, bit2:PosY, bit3:PosZ, bit4:VelX, bit5:VelY, bit6:VelZ, bit7:AccX, bit8:AccY, bit9:AccZ, bit11:yaw, bit12:yaw rate 提供位置、速度和/或加速度时,必须提供所有 3 个轴。必须提供 Pos、Vel 和 Accel 中的至少一个(例如,不支持仅提供 Yaw 或 YawRate)。
|
x | 以米为单位的 X 位置(正向表示正前方或正北方) |
y | 以米为单位的 Y 位置(正数表示右侧或东侧) |
z | 以米为单位的 Z 位置(正值表示向下) |
vx | X 速度,单位 m/s(正值表示向前或向北) |
vy | Y 向速度,单位 m/s(正值表示向右或向东) |
vz | Z 速度(米/秒)(正值表示向下 |
afx | X 加速度,单位 m/s/s(正值表示向前或向北) |
安提 | Y 加速度,单位 m/s/s(正值表示右侧或东侧) |
afz | Z 加速度,单位 m/s/s(正值表示向下) |
打呵欠 | 偏航或航向,单位为弧度(0 表示向前或向北)。 |
偏航率 | 偏航率(单位:拉德/秒 |
"这款" 坐标框架
字段的值如下
框架 |
说明 |
---|---|
|
位置相对于 NED 框架中载具的 EKF 原点 即 x=1,y=2,z=3 分别是原点向北 1 米、向东 2 米和向下 3 米的位置 "这款" EKF 起源 是载具首次获得良好位置估计值时的位置 速度和加速度采用 NED 框架 |
|
位置是相对于载具当前位置而言的 例如,x=1,y=2,z=3 表示当前位置向北 1 米、向东 2 米、向下 3 米。 速度和加速度采用 NED 框架 |
|
位置相对于 NED 框架中的 EKF 原点 即 x=1,y=2,z=3 分别是原点向北 1 米、向东 2 米和向下 3 米的位置 速度和加速度是相对于当前载具航向而言的。使用该值可指定前进、向右和向下的速度(如果使用负值,则相反)。 |
|
位置是相对于载具当前位置和航向而言的 例如,x=1,y=2,z=3 表示从当前位置向前移动 1 米,向右移动 2 米,向下移动 3 米。 速度和加速度是相对于当前载具航向而言的。使用该值可指定前进、向右和向下的速度(如果使用负值,则相反)。 指定偏航率为零,以阻止载具偏航发生变化 |
提示
在镜框中、 _OFFSET_
是指 "相对于载具位置",而 本地
是 "相对于原点位置"(这些对 速度 方向)。 _BODY_
意味着速度分量是相对于飞行器的航向而不是 NED 框架的。
备注
如果发送速度或加速度命令,应每秒重新发送一次(如果没有收到命令,载具将在 3 秒后停止)。
实例
下面是一些可以复制粘贴到 MAVProxy(又名 SITL)中的示例命令,用于测试该命令。在运行这些命令之前,请输入
模块加载消息
指导
臂式节流阀
起飞10
MAVProxy/SITL 命令示例 |
说明 |
---|---|
|
飞往北纬100米和10米 以上 的原点 |
|
从当前位置向北飞 10 米 |
|
从当前位置向前飞行 10 米 |
|
以 1 米/秒的速度向北飞 |
|
以 1 米/秒的速度向前飞行 |
|
以 1 米/秒的速度右飞,偏航率为零 |
|
以 1 米/秒的速度向北加速 |
|
以 1 米/秒的速度向前加速 |
|
以 1 米/秒的速度向右加速,偏航率为零 |
|
转向东北(偏航目标 + 速度为零)。 |
|
向右转 45 度(偏航目标 + 速度为零)。 |
|
以 10deg/sec 的速度顺时针旋转(速度为零)。 |
set_position_target_global_int¶
设置飞行器的目标位置(WGS84 坐标)、速度、航向或转弯率。这与 SET_POSITION_TARGET_LOCAL_NED 报文(见上文)类似,只是位置以经纬度值提供,高度可以是海平面以上、相对于原点或相对于地形。
信息定义如下 这里
命令参数
指令字段 | 说明 |
---|---|
启动时间 | 发件人的系统时间(以毫秒为单位,从启动开始计时 |
目标系统 | 载具的系统 ID |
目标组件 | 飞行控制器的组件 ID 或仅为 0 |
坐标框架 | 有效选项包括
|
类型掩码 | 位掩码,用于指示哪些字段应 被忽视 (请参阅 POSITION_TARGET_TYPEMASK 枚举)。 bit1:PosX, bit2:PosY, bit3:PosZ, bit4:VelX, bit5:VelY, bit6:VelZ, bit7:AccX, bit8:AccY, bit9:AccZ, bit11:yaw, bit12:yaw rate 提供位置、速度和/或加速度时,必须提供所有 3 个轴。必须提供 Pos、Vel 和 Accel 中的至少一个(例如,不支持仅提供 Yaw 或 YawRate)。
|
lat_int | 纬度 * 1e7 |
lon_int | 经度 * 1e7 |
选一 | 海拔高度,单位为米、原点或地形(见坐标框字段) |
vx | X 速度,单位 m/s(正值为北) |
vy | Y 向速度,单位 m/s(正值代表东方) |
vz | Z 速度(米/秒)(正值表示向下 |
afx | X 加速度,单位 m/s/s(正向为北) |
安提 | Y 加速度,单位 m/s/s(正值为东) |
afz | Z 加速度,单位 m/s/s(正值表示向下) |
打呵欠 | 偏航或航向,单位为弧度(0 表示向前) |
偏航率 | 偏航率(单位:拉德/秒 |
备注
如果发送速度或加速度命令,应每秒重新发送一次(如果没有收到命令,载具将在 3 秒后停止)。
实例
下面是一些可以复制粘贴到 MAVProxy(又名 SITL)中的示例命令,用于测试该命令。在运行这些命令之前,请输入
模块加载消息
指导
臂式节流阀
起飞10
MAVProxy/SITL 命令示例 |
说明 |
---|---|
|
飞至 -35.36,149.16 的纬度和离地面 10 米的高度 |
|
飞往 -35.36,149.16 的纬度和海拔 600 米处 |
|
飞至 -35.36,149.16 的纬度和离地 10 米的高度 |
|
以 1 米/秒的速度向北飞 |
|
以 1 米/秒的速度向北加速 |
|
转向东北(偏航目标 + 速度为零)。 |
|
以 10deg/sec 的速度顺时针旋转(速度为零)。 |
设置目标姿态¶
设置飞行器的目标姿态和爬升率或推力。在以下情况下接受此信息 指导 或 Guided_NoGPS(这是 Guided_NoGPS 唯一接受的报文)。信息定义如下 这里
命令参数
指令字段 | 类型 | 说明 |
---|---|---|
启动时间 | uint32_t | 发件人的系统时间(以毫秒为单位,从启动开始计时 |
目标系统 | uint8_t | 载具的系统 ID |
目标组件 | int8_t | 飞行控制器的组件 ID 或仅为 0 |
类型掩码 | int8_t | 位掩码,用于指示哪些字段应 被忽视 由载具 bit1:车身滚动率,bit2:车身俯仰率,bit3:车身偏航率,bit7:节流阀/电门,bit8:姿态 应始终为 0b00000111 / 0x07 / 7(十进制) |
q | 浮点[4] |
姿态四元数(w、x、y、z 次序,零旋转为 {1, 0, 0, 0})
注意,零旋转会导致载具向北旋转。 |
身体滚动速度 | 浮动 | 不支持车身滚动率 |
身高 | 浮动 | 不支持车身俯仰率 |
偏航率 | 浮动 | 不支持机身偏航率 |
主要内容 | 浮动 | 如果 GUID_OPTIONS = 0:爬升率,其中 0.5=不爬升,0=以 WPNAV_SPEED_DN 的速度下降,1=以 WPNAV_SPEED_UP 的速度爬升 如果 GUID_OPTIONS = 8:推力从 0 到 1 |
实例
下面是一些可以复制粘贴到 MAVProxy(又名 SITL)中的示例命令,用于测试该命令。在运行这些命令之前,请输入
指导
臂式节流阀
起飞10
MAVProxy/SITL 命令示例 |
说明 |
---|---|
|
保持水平姿态,爬升率为零(如果 GUID_OPTIONS=0)或保持水平姿态和 50%节流阀/电门(如果 GUID_OPTIONS=8)。 |
|
以 WPNAV_SPEED_UP 爬升(如果 GUID_OPTIONS=0)或以 100% 油门爬升(如果 GUID_OPTIONS=8)。 |
|
以 WPNAV_SPEED_DN 的速度下降(如果 GUID_OPTIONS=0)或以 0% 的油门下降(如果 GUID_OPTIONS=8)。 |
|
以 10 度和零爬升率翻滚(如果 GUID_OPTIONS=0)或以 10 度和 50% 油门翻滚(如果 GUID_OPTIONS=8)。 |