(6)(6.2) 任务命令

文章目录

        前言

6.2.1 概述

6.2.2 导航命令

6.2.3 条件命令

6.2.4 DO命令


前言

本文介绍了 CopterPlaneRover 切换到自动模式时支持的任务指令

Warning

这是一项正在进行中的工作,尚未经过全面审核。有关 Copter 的更佳列表,请点击此处(Copter can be found here)。


6.2.1 概述

MAVLink 协议定义了大量 MAV_CMD 航点命令类型(在MAVLink_mission_item_message中发送)。ArduPilot 对这些命令的子集和命令参数进行了处理,这些子集和参数对每辆飞行器来说都是最相关和最有意义的。发送到特定自动驾驶仪的不支持命令将被直接丢弃。

本文列出并描述了每种车辆类型所支持的命令和命令参数。任何"灰色"的参数都是自动驾驶仪不支持的,将被忽略。本文仍对这些参数进行了记录,以明确说明飞行器不执行 MAV_CMD(MAV_CMD protocol)协议支持的哪些属性。

有些命令和命令参数没有执行,是因为它们与特定的飞行器类型无关(例如,"MAV_CMD_NAV_TAKEOFF"命令适用于固定翼和旋翼飞机,但不适用于无人车,而俯仰参数只适用于固定翼)。还有一些可能有用的命令参数没有被处理,因为信息大小有限制,而且已经决定优先处理某些参数,而不是其他参数。

Note

有关 Copter 支持命令的其他信息(从 Mission Planner 的角度),请参阅 Copter 任务命令列表(Copter Mission Command List)。

命令类型

任务中可以使用几种不同类型的命令:

  • 导航指令用于控制飞行器的移动,包括起飞、前往和绕行航点、改变高度和着陆;
  • DO命令用于辅助功能,不影响飞行器位置(例如,设置摄像机触发距离或设置伺服值);
  • 条件指令用于延迟 DO 指令,直到满足某些条件,例如无人机达到一定高度或距离航点一定距离。

在一次任务中,最多只能同时运行一条"Navigation(导航)"命令和一条"Do(执行)"或"Condition(条件)"命令。一个典型的任务可能会设置一个航点(NAV 命令),添加一个在距离目的地一定距离后才完成的 CONDITION 命令(MAV_CMD_CONDITION_DISTANCE),然后添加一些 DO 命令,这些命令会在条件完成后按顺序执行(例如 MAV_CMD_DO_SET_CAM_TRIGG_DIST,用于定时拍照)。

Note

CONDITION DO 命令与前面的 NAV 命令相关联:如果无人飞行器在执行这些命令之前到达下一个航点,则将加载下一条 NAV 命令,并跳过这些命令。

参考框架

许多命令(尤其是 NAV_ commands)都包含位置/定位信息。这些信息是相对于特定"参照系"提供的,该参照系在信息的"参照系"(Frames of reference)字段中指定。旋翼飞机和无人车飞行任务使用 MAV_CMD_DO_SET_HOME 命令在全球坐标框架(MAV_FRAME_GLOBAL)、WGS84 坐标系(WGS84 coordinate system)中设置"原点位置",其中海拔高度相对于平均海平面。所有其他命令都使用 MAV_FRAME_GLOBAL_RELATIVE_ALT 框架,该框架使用相同的经纬度,但将高度设置为相对于原点位置(原点高度 = 0)。

固定翼命令还可以使用 MAV_FRAME_GLOBAL_TERRAIN_ALT 参照基准。这同样具有 WGS84 的纬度/经度参考框架,但指定了相对于地面高度的高度(如地形数据库中的定义)。

Note

任务命令不支持 MAVLink 协议中定义的其他帧类型(请参阅 MAV_FRAME)。

信息的准确性如何?

如果一条命令或参数被标记为支持,那么它很可能(但不保证)会按照指示执行。如果命令或参数未列出(或标记为不支持),则极有可能 ArduPilot 不支持该命令或参数。

原因是,这些信息主要是通过检查命令处理程序的信息推断出来的:

  • 对 AP_Mission::mavlink_to_mission_cmd 中的开关语句进行检查,以确定所有飞行器平台都会处理哪些命令,并存储信息中的哪些参数;
  • 每种飞行器类型(Plane, Copter, Rover)的命令处理程序开关会告诉我们每种飞行器可能支持哪些命令,以及哪些参数会传递给处理程序。

通过上述检查,可以非常准确地了解哪些命令和参数不受支持。它们还能比较准确地说明哪些命令/参数可能会被支持。不过,这种显示并不保证准确,因为命令处理程序可能会丢弃所有信息(我们也没有完全检查所有这些信息)。

除上述检查外,我们还合并了旋翼飞机任务指令列表中的信息(Copter Mission Command List)。

如何解释命令参数

表中列出了每条命令的参数。"灰色显示"的参数不受支持。命令字段列(参数名)使用 "粗体"文本表示协议中定义的参数(""参数使用普通文本)。

这样,用户/开发人员就能看到 ArduPilot 支持哪些协议字段,以及不支持哪些协议字段。

GCS上使用此信息

Mission Planner (MP) 公开了 ArduPilot 支持的全部命令和参数子集,经过过滤后仅显示与当前连接的飞行器相关的命令和参数。将 MP 命令映射到本文档非常简单,因为它只需使用完整命令名称的缩减版来命名命令(例如DO_SET_SERVO,而不是完整命令名称:MAV_CMD_DO_SET_SERVO)。此外,本文档还方便地列出了 Mission Planner 在每个参数旁边使用的列标。

其他 GCSAPM Planner 2Tower 等)可能支持其他一些命令/参数子集,并使用其他名称/标签。在大多数情况下,映射应该是显而易见的。

6.2.2 导航命令

篇幅过多,另起一篇介绍:

6.2.3 条件命令

篇幅过多,另起一篇介绍:

6.2.4 DO命令

篇幅过多,另起一篇介绍:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/49480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL视图

一、视图-介绍及基本语法 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了查询的SQL逻辑&#xf…

Chrome如何安装插件(文件夹)

1.下载的插件 说明:插件文件夹 2.打开扩展程序位置 3.点击已加载的扩展程序 说明:找到插件的位置 4.报错 说明:那还要进入文件里面。 5.插件的位置 说明:如果已经安装了插件,那么需要查看插件的位置。chrome输入 …

【OpenCV学习笔记】我的OpenCV学习之路

刚开始接触OpenCV是因为需要进行图像的处理,由于之前没有接触过,所以只能自己进行学习,下面将学习的过程做简单记录分享。 OpenCV专栏链接 OpenCV学习笔记 一、引言 OpenCV(Open Source Computer Vision Library)是…

基于Python的图像信息隐藏技术的设计与实现

博主介绍:✌csdn特邀作者、博客专家、java领域优质创作者、博客之星,擅长Java、微信小程序、Python、Android等技术,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推…

Docker创建 LNMP 服务+Wordpress 网站平台

文章目录 Docker创建 LNMP 服务Wordpress 网站平台一.环境及准备工作1.项目环境2.服务器环境3.任务需求 二.Linux 系统基础镜像三.docker构建Nginx1.建立工作目录上传安装包2.编写 Dockerfile 脚本3.准备 nginx.conf 配置文件4.生成镜像5.创建自定义网络6.启动镜像容器7.验证 n…

3D激光线轮廓传感器市场需求,预计2029年将达到734.86百万美元。

3D激光线轮廓传感器采用激光三角反射式原理,采集不同材质表面的二维轮廓信息。通过特殊的透镜组,激光束被放大形成一条静态激光线投射到被测物体表面上。激光线在被测物体表面形成漫反射,反射光透过高质量光学系统,被投射到敏感感…

window10安装并使用oracle

1、现在oracle19c或者21c,下载链接如下 Database Software Downloads | Oracle 中国 2、安装好之后, 2.1PL/SQL连接方式 命令窗口输入sqlplus conn as sysdba 2.2DBeaver连接 输入IP、 端口默认1521 数据库默认是ORCL 用户名是system 角色是N…

【TA 挖坑03】雾效 | 透光材质 | Impostor | 厚度转球谐

仍旧是记录下半年想要做的东西,很有趣,实现“一团雾效” “面片也有立体感” 等等效果的一些技术上的方法。 仅粗浅记录,保证之后自己填坑的时候看得懂就行! 透光 -> 透光材质ShadingModel 《永劫无间》透光材质的渲染&…

华为OD-按索引范围翻转文章片段

题目描述 输入一个英文文章片段 翻转指定区域的单词顺序 标点符号和普通字母一样处理 例如输入字符串 I am a developer. [0,3] 则输出 developer. a am I 输入描述 使⽤换⾏隔开三个参数 第⼀个参数为英⽂⽂章内容即英⽂字符串 第⼆个参数为翻转起始单词下标(…

机器人制作开源方案 | 滑板助力器

我们可以用一块废滑板做些什么呢? 如今,越来越多的人选择电动滑板作为代步工具或娱乐方式,市场上也涌现出越来越多的电动滑板产品。 (图片来源:Backfire Zealot X Belt Drive Electric Skateboard– Backfire Board…

docker-java

一 所需依赖包 <dependency><groupId>com.github.docker-java</groupId><artifactId>docker-java</artifactId><version>3.3.3</version> </dependency> 二 前期准备 2.1 docker已安装 2.2 运行程序用户的docker使用权限 …

“深入解析JVM:Java虚拟机内部原理揭秘“

标题&#xff1a;深入解析JVM&#xff1a;Java虚拟机内部原理揭秘 摘要&#xff1a;本文将深入探讨Java虚拟机&#xff08;JVM&#xff09;的内部原理&#xff0c;包括JVM的架构、运行时数据区域、垃圾回收机制以及即时编译器等重要组成部分。通过对JVM内部原理的解析&#xf…

Java注解语法

Java注解语法 1. 前置基础 ​ 学习java反射语法 JAVA通过反射使用公共构造方法和私有构造方法来创建对象 2. Java注解是什么&#xff1f; ​ Java注解是代码中的特殊标记&#xff0c;比如Override、Test等&#xff0c;作用是&#xff1a;让其他程序根据注解 信息决定怎么执…

【xxl-job快速入门搭建】

目录标题 xxl-job快速入门搭建源码地址项目结构初始化数据库启动项目1、启动服务端2、启动任务执行器端 MD文档指导教程功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内…

el-form表单验证:只在点击保存时校验(包含select、checkbox、radio)

1、input类型 input类型 在el-input里加入:validate-event"false" <el-form-item label"活动名称" prop"name"><el-input v-model"ruleForm.name" :validate-event"false"></el-input> </el-form-i…

【环境配置】ubuntu2204-cudnn GPG key 错误

问题: cudnn GPG error Reading package lists... Done W: GPG error: file:/var/cudnn-local-repo-ubuntu2204-8.8.0.121 InRelease: …

SAP‘s ECC6 EoL(End of Life) 支持服务声明 2027?

前言 一、EoL公告信息&#xff0c;2027&#xff1f; 二、继续使用ECC6.0的选项 1.引入第三方支持 2.S/4 HANA 3.SAP Business ByDesign 4.SAP Business One 总结 最新的公告是&#xff1a;2027年&#xff0c;SAP ECC 6.0将停止得到支持&#xff0c;并退出主流SAP支持&am…

【面试刷题】————STL中的vector是如何实现的?

STL&#xff08;Standard Template Library&#xff09;是C标准库中的一部分&#xff0c;它提供了许多常用的数据结构和算法&#xff0c;其中包括了动态数组 vector。 vector std::vector 是一个动态数组&#xff0c;它能够自动调整自己的大小&#xff0c;以适应存储元素的需…

关于3D位姿旋转

一. 主动旋转和被动旋转 1. active rotation 主动旋转 站在坐标系的位置看旋转目标物&#xff1a;目标物主动发生旋转。 2. passive rotation 被动旋转 站在旋转目标物的位置看坐标系&#xff1a; 坐标系发生旋转&#xff0c;相当于目标物在坐标系内的位置被动地发生了旋转…

c++ day1

定义一个命名空间Myspace&#xff0c;包含以下函数&#xff1a;将一个字符串中的所有单词进行反转&#xff0c;并输出反转后的结果。例如&#xff0c;输入字符串为"Hello World"&#xff0c;输出结果为"olleH dlroW"&#xff0c;并在主函数内测试该函数。 …