MAVLink 航线规划流程与文档

本文原文链接: https://bbs.huaweicloud.com/blogs/440374
持续更新中...

1. MAVLink 官方文档翻译

待补充

2. 航线任务相关 MessageCommand

2.1. MISSION_COUNT

该消息由 MAV 发出,并作为MISSION_REQUEST_LIST 的消息相应,这将发起一个写(任务计划)事务。GCS可以通过航路点总数量信息来请求单个任务项目。

字段名称 类型 取值 说明
target_system uint8_t 目标系统ID
target_component uint8_t 目标 组件 ID
count uint16_t (航路点)序列中的任务项目数量
mission_type MAVLink2扩展字段 MAV_MISSION_TYPE 任务类型
opaque_id MAVLink2扩展字段 1 无效:0 飞行器内航线任务、地理围栏或集结点编号(仅用于从飞行器下载任务)
  1. 该字段用于从飞行器下载一个计划到 GCS
    当从GCS 上传航线到飞行器时该字段的值为0
    如果计划编号不受支持则该字段的值为0
    当前的飞行器内计划编号将在MISSION_CURRENT 上流式传输,这允许GCS来判断任务中的某个部分是否发生了变化并决定是否需要重新上传任务
    当飞行器内计划中的某个部分发生变化是,该编号将重新计算(当新的计划上传到飞行器,飞行器将通过MISSION_ACK 消息给GCS相应新的编号)

2.2. MAV_CMD_DO_CHANGE_SPEED

该命令用于在特定的位置修改速度和/或调整油门。该值将持续存在,直到它被重写或模式发生改变。

参数 (标签) 说明 取值 单位
1 (Speed Type: 速度类型) 设置参数2的速度类型(例如:空速、对地速度等等) SPEED_TYPE
2 (Speed: 速度) 速度值(-1 表示不修改,-2 表示回到飞行器默认速度) 最小: -2 m/s
3 (油门) 油门值(-1 表示不修改,-2 表示回到飞行器默认油门) 最小: -2 %
4
5
6
7

2.3. MAV_CMD_NAV_TAKEOFF

从地面或手上进行起飞。支持多种起飞模式的飞机(如:VTOL垂起飞行器)应使用当前配置的模式起飞。

参数 (标签) 说明 取值 单位
1 (Pitch: 俯仰) 如果有空速传感器,则表示最小俯仰角,如果没有传感器,则为期望俯仰角 deg
2
3
4 (Yaw: 偏航) 偏航角(如果有磁力计),如果没有磁力计则会忽略。 NaN 表示使用当前的系统偏航模式(如:偏航到下一个航路点或偏航回家等等) deg
5 (Latitude: 纬度) 纬度
6 (Longitude: 经度) 经度
7 (Altitude: 高度) 高度 m

2.4. MAV_CMD_NAV_WAYPOINT

导航到航路点。该命令应当用于任务中(任务外的制导命令请使用 MAV_CMD_DO_REPOSITION

参数 (标签) 说明 取值 单位
1 (Hold: 驻留) 驻留时间(固定翼飞行器将忽略该值的设定,对于旋翼飞行器而言,这将设定飞行器在航路点的驻留时间) 最小:0 s
2 (Accept Radius: 接受半径) 接受半径(当飞行器飞抵以航路点为中心,该值为半径的球体时,将视为已到达该航路点) 最小:0 m
3 (Pass Radius: 通过半径) 0 表示通过航路点;大于0则表示允许半径通过航路点。正值表示顺时针,负值表示逆时针。允许控制轨迹 m
4 (Yaw: 偏航) 期望的偏航角(旋翼飞行器)。 NaN 表示使用当前的系统偏航模式(如:偏航到下一个航路点或偏航回家等等) deg
5 (Latitude: 纬度) 纬度
6 (Longitude: 经度) 经度
7 (Altitude: 高度) 高度 m

2.5. MISSION_ITEM_INT

该消息是用于编码任务项目。发送该消息用于通知在指定设备上设置该任务项目。任务项目可以是局部定位模式的x, y, z (单位: m) 或者是全球定位模式的x: 纬度, z: 经度, y: 高度。局部坐标系是:Z下右手模式(NED1),全球定位模式是:Z上右手模式(ENU2)。float/integer参数的NaN值和INT32_MAX值将代表可选或默认的值(如:使用组件当前的纬度,偏航角而不是为其指定一个值)。参阅:https://mavlink.io/en/services/mission.html

字段名称 类型 取值 说明
target_system uint8_t 目标系统 ID
target_component uint8_t 目标组件 ID
seq uint16_t 航路点ID(序列数值)。从0开始。每个航路点单调递增。序列之间没有空位(0, 1, 2, 3, 4)
frame uint8_t MAV_FRAME 航路点的坐标系
command uint16_t MAV_CMD 航路点的计划操作
current uint8_t false: 0, true: 1
autocontinue uint8_t 自动继续到下一个航路点。0: false, 1: true。将该值设置为 false 表示在该项目完成后将暂停任务
param1 float 参数#1。参阅 MAV_CMD
param2 float 参数#2。参阅 MAV_CMD
param3 float 参数#3。参阅 MAV_CMD
param4 float 参数#4。参阅 MAV_CMD
x int32_t 参数#5,或者:x位置/纬度。本地坐标系:x 位置单位为m 1e4;全球坐标系:纬度,单位为deg 1e7
y int32_t 参数#6,或者:y位置/经度。本地坐标系:y 位置单位为m 1e4;全球坐标系:经度,单位为deg 1e7
z float 参数#7,或者:z位置/高度。本地坐标系:y 位置;全球坐标系:高度,单位为m (相对高度或绝对高度取决于坐标系)
mission_type MAVLink2扩展消息 uint8_t MAV_MISSION_TYPE 任务类型

2.6. MAV_MISSION_TYPE

该任务协议中请求/发送的任务项目类型。

名称 说明
0 MAV_MISSION_TYPE_MISSION 表示任务项目是主要任务的命令(飞行任务)
1 MAV_MISSION_TYPE_FENCE 指定地理围栏区域。表示任务项目是 MAV_CMD_NAV_FENCE 地理围栏项目
2 MAV_MISSION_TYPE_RALLY 指定飞行器的集结点。集结点是替代 RTL(Return to launch: 返回启动) 点。表示任务项目是 [MAV_CMD_NAV_RALLY_POINT]
255 MAV_MISSION_TYPE_ALL 仅用在MISSION_CLEAR_ALL 中,用于清除所有任务类型

2.7. MISSION_ACK

航路点处理期间的确认消息。type 字段声明了是否处理成功的状态。如果type = 0 则表明处理成功,非0的值表示发生错误。

字段名称 类型 取值 说明
target_system uint8_t 目标系统编号
target_component uint8_t 目标组件编号
type uint8_t MAV_MISSION_RESULT 任务结果
mission_type MAVLink2扩展消息 uint8_t MAV_MISSION_TYPE 任务类型
opaque_id MAVLink2扩展消息 uint32_t 无效: 0 新的飞行器中的任务,地理围栏或者集结点计划的ID(当上传任务到飞行器时)。当有新任务从 GCS 上传到飞行器中时,飞行器将会计算并返回该ID。对此ID的唯一的要求是:当飞行器的任务计划类型发生任何改变时,它必须发生更改。(不要求它全局唯一)。当从飞行器下载任务时为0(下载时,请在MISSION_COUNT 设置ID)。如果计划编号不受支持则为0。飞行器中当前的飞行任务编号将在MISSION_CURRENT中流式传输,这允许GCS判断任务是否发生任何项目的更改,以决定是否需要重新上传任务。

2.8. SPEED_TYPE

MAV_CMD_DO_CHANGE_SPEED命令中使用的速度设置点类型。

名称 说明
0 SPEED_TYPE_AIRSPEED 空速
1 SPEED_TYPE_GROUNDSPEED 对地速度
2 SPEED_TYPE_CLIMB_SPEED 爬升速度
3 SPEED_TYPE_DESCENT_SPEED 下降速度

2.9. MAV_FRAME

MAVLink 使用的坐标系。并非所有的命令,消息和飞行器都支持所有的坐标系。
全局坐标系使用如下的命名约定:

  • GLOBAL: 默认情况下,全局坐标系为 WGS 84 经纬度,高度为平均海平面(MeanSeaLevel: MSL)上方的高度(海拔)。 后续的修饰可以与 GLOBAL 一起使用:
  • RELATIVE_ALT: 高度设定为相对于 Home 点的高度,而不是 MSL。
  • TERRAIN_ALT: 高度设定为相对于地面的高度,而不是 MSL 。
  • INT:纬度/经度(单位:度)通过乘以 1e7 进行缩放。

局部坐标系采用如下的命名约定:

  • LOCAL: 局部坐标系的原点相对于地球是固定的。除非另有说明,否则该原点应当是飞行器位置估计器(EKG)的原点。
  • BODY: 局部坐标系的原点跟随飞行器。注意:BODY 并不意味着机架轴线与飞行器姿态对其。
  • OFFSET: 过时的 BODY 的同义词(局部坐标系原点跟随飞行器)。请勿使用该命名。

一些已经过时的坐标系命名并不遵循该命名规范。(如:MAV_FRAME_BODY_NEDMAV_FRAME_BODY_OFFSET_NED

名称 说明
0 MAV_FRAME_GLOBAL 全球(WGS 84)坐标系,高度相对于平均海平面(MSL)
1 MAV_FRAME_LOCAL_NED NED 局部切线坐标系(x: 北, y: 东,z: 下),原点相对于地球固定。
2 MAV_FRAME_MISSION 这不是一个坐标系,它用于表示任务命令。
3 MAV_FRAME_GLOBAL_RELATIVE_ALT 全球坐标系(WGS 84),高度相对于 Home 点
4 MAV_FRAME_LOCAL_ENU ENU 局部切线坐标系(x: 东, y: 北, z:上),原点相对于地球固定。
5 MAV_FRAME_GLOBAL_INT 过时的 缩放过的全球坐标系(WGS 84),高度相对于平均海平面(MSL)。过时的: MAV_FRAME_GLOBAL 替代(2024-03)。在 COMMAND_INT (以及其他地方)使用 MAAV_FRAME_GLOBAL 做同义替换。
6 MAV_FRAME_GLOBAL_RELATIVE_ALT_INT 过时的 缩放过的全球坐标系(WGS 84),高度相对于 Home 点。过时的: MAV_FRAME_GLOBAL_RELATIVE_ALT 替代(2024-03)。在 COMMAND_INT(以及其他地方)使用MAV_FRAME_GLOBAL_RELATIVE_ALT 同义替代。
7 MAV_FRAME_LOCAL_OFFSET_NED NED 局部切线坐标系(x: 北, y: 东, z: 下),原点跟随飞行器。
8 MAV_FRAME_BODY_NED 过时的 当用来表示位置的时候,与MAV_FRAME_LOCAL_NED一致;当用来表示速度与加速度的时候,与MAV_FRAME_GLOBAL_RELATIVE_ALT一致。过时的: MAV_FRAME_BODY_FRD 替代(2019-08)
9 MAV_FRAME_BODY_OFFSET_NED 过时的 这与 MAV_FRAME_BODY_FRD 一致。过时的: MAV_FRAME_BODY_FRD 替代(2019-08)
10 MAV_FRAME_GLOBAL_TERRAIN_ALT 全球坐标系(WGS 84),使用 AGL 高度(AGL: altitude at ground level,高度相对于地面)
11 MAV_FRAME_GLOBAL_TERRAIN_ALT_INT 过时的 全球坐标系(WGS 84),使用 AGL 高度(AGL: altitude at ground level,高度相对于地面)。过时的: MAV_FRAME_GLOBAL_TERRAIN_ALT 替代(2024-03)。在 COMMAND_INT (和其他地方)中使用 MAV_FRAME_GLOBAL_TERRAIN_ALT 做同义替代。
12 MAV_FRAME_BODY_FRD FRD 局部坐标系,高度与飞行器姿态对齐(x: 前, y: 右, z: 下),原点跟随飞行器
13 MAV_FRAME_RESERVED_13 MAV_FRAME_BODY_FLU - 过时的 机架固定参考坐标系,Z上(x: 前, y: 左, z:上) 过时的: (2019-04)
14 MAV_FRAME_RESERVED_14 MAV_FRAME_MOCAP_NED - 过时的 由运动捕获系统给定的里程数据决定的局部坐标系,Z下(x: 被, y: 东, z:下) 过时的: MAV_FRAME_LOCAL_FRD 代替(2019-04)
15 MAV_FRAME_RESERVED_15 MAV_FRAME_MOCAP_ENU - 过时的 由运动捕获系统给定的里程数据决定的局部坐标系,Z上(x: 东, y: 北, z:上) 过时的: MAV_FRAME_LOCAL_FLU代替(2019-04)
16 MAV_FRAME_RESERVED_16 MAV_FRAME_VISION_NED - 过时的 由视觉系统给定的里程数据决定的局部坐标系,Z下(x: 北, y: 东, z:下) 过时的: MAV_FRAME_LOCAL_FRD代替(2019-04)
17 MAV_FRAME_RESERVED_17 MAV_FRAME_VISION_ENU - 过时的 由视觉系统给定的里程数据决定的局部坐标系,Z上(x: 东, y: 北, z:上) 过时的: MAV_FRAME_LOCAL_FLU代替(2019-04)
18 MAV_FRAME_RESERVED_18 MAV_FRAME_ESTIM_NED - 过时的 由在飞行器上运行的估计器提供的里程数据决定的局部坐标系,Z下(x: 北, y: 东, z:下) 过时的: MAV_FRAME_LOCAL_FRD 代替(2019-04)
19 MAV_FRAME_RESERVED_19 MAV_FRAME_ESTIM_ENU - 过时的 由在飞行器上运行的估计器提供的里程数据决定的局部坐标系,Z上(x: 东, y: 北, z:上) 过时的: MAV_FRAME_LOCAL_FLU 代替(2019-04)
20 MAV_FRAME_LOCAL_FRD FRD 局部切线坐标系(x: 前, y: 右, z: 下),原点相对于地球固定。前向轴线在水平面中与飞行器前部对齐
21 MAV_FRAME_LOCAL_FLU FLU 局部切线坐标系(x: 前, y: 左, z: 上),原点相对于地球固定。前向轴线在水平面中与飞行器前部对齐
posted @ 2024-11-25 12:37  Annlix  阅读(37)  评论(0编辑  收藏  举报