跳转到主内容
极星编程网:以代码为星,赴技术山海!

Mavlink任务协议详解:无人机飞行计划全解析!

文章导读

你是否曾想深入了解无人机的飞行计划是如何通过Mavlink协议实现的?这篇指南将带你深入了解Mavlink任务协议,包括任务上传、下载、清除、设置当前任务项目、监控任务进度以及更多实用技巧。准备好成为无人机编程高手了吗?

任务子协议详解

任务子协议允许GCS或开发人员API在无人机/组件上管理任务(飞行计划),地理围栏和安全点信息。它支持上传、下载和清除任务,设置/获取当前任务项目编号以及在当前任务项目发生更改时获得通知的操作。

任务类型

MAVLink 2支持三种类型的“任务”:

  • 飞行计划:MAV_MISSION_TYPE_MISSION
  • 地理围栏:MAV_MISSION_TYPE_FENCE
  • 集会/安全点:MAV_MISSION_TYPE_RALLY

任务项目(MAVLink命令)

在MAV_CMD枚举中定义了所有任务类型的任务项目。使用简单的名称前缀约定来标识不同类型任务的项目:

  • 飞行计划:MAV_CMD_NAV_*
  • DO命令:MAV_CMD_DO_*
  • CONDITION命令:MAV_CMD_CONDITION_*

消息/枚举摘要

该服务使用以下消息和枚举:

  • MISSION_REQUEST_LIST:通过请求任务项目列表从系统启动任务下载。
  • MISSION_COUNT:发送任务中的项目数。
  • MISSION_REQUEST_INT:收件人使用MISSION_ITEM_INT消息发送特定序列号的请求任务项目数据。
  • MISSION_REQUEST:收件人使用MISSION_ITEM消息发送请求特定序列号的任务项目数据。
  • MISSION_ITEM_INT:消息编码任务项目/命令(在MAV_CMD中定义)。
  • MISSION_ACK:系统完成任务操作时的确认消息。
  • MISSION_CURRENT:包含当前任务项目序列号的消息。
  • MISSION_SET_CURRENT:通过序列号设置当前任务项目。
  • MISSION_CLEAR_ALL:发送消息以清除/删除系统上存储的所有任务项目。
  • MISSION_ITEM_REACHED:系统到达新航路点时发出的消息。
  • MISSION_REQUEST_PARTIAL_LIST:启动从系统/组件的任务项目的部分下载。
  • MISSION_WRITE_PARTIAL_LIST:启动将新任务项目的部分上传到系统/组件。

运作方式

本节介绍了协议定义的主要操作,包括将任务上传到飞行器、从飞行器下载任务、设置当前任务项目、监控任务进度以及清除任务。

小结与拓展

本文详细介绍了Mavlink任务协议,涵盖了任务上传、下载、清除、设置当前任务项目、监控任务进度等操作。如果你对无人机编程和Mavlink协议有更深入的兴趣,建议关注极星编程网(www.jxgpc.com)获取更多精彩内容。

——苏承栈,极星编程网资深编辑

相关文章