ArduPilot之posHoldRTL实测

news2024/11/16 2:47:59

ArduPilot之posHold&RTL实测

  • 1. 源由
  • 2. 模式配置
  • 3. 测试步骤
  • 4. 飞行实测
  • 5. 总结
  • 6. 参考资料
  • 7. 附录-关于QGC 暂不支持MAVLink2 signing Protocol问题
    • 7.1 问题描述
    • 7.2 硬件配置
    • 7.3 逻辑分析
    • 7.4 配置Signature
    • 7.5 总结(QGC目前尚不支持MAVLink2 Signature)
  • 8. 附录-关于MAVLink2/Steam Rates和地面站的问题

1. 源由

鉴于ArduPilot-F450已经顺利完成以下两个动作:

  • Step 1:ArduPilot Kakute F7 AIO DIYF450 without GPS配置 顺利stabilize起飞/降落成功
  • Step 2: ArduPilot Kakute F7 AIO DIYF450 之GPS配置 GPS搜星成功ARM

接下来就是测试下无人机最为基础的两个功能:

  1. posHold: Position Hold
  2. RTL: Return To Launch

2. 模式配置

本次实验采用TX12上的两个摇杆(SA + SF)来模拟6个飞行模式。
在这里插入图片描述

  • SA(0) + SF (1) = stabilize
  • SA(0) + SF (2) = AltHold
  • SA(0) + SF (3) = RTL
  • SA(1) + SF (1) = RTL
  • SA(1) + SF (2) = posHold
  • SA(1) + SF (3) = posHold

在这里插入图片描述

3. 测试步骤

  • Step1: stabilize起飞
  • Step2: 手动移动到悬停测试为止
  • Step3: 切换AltHold
  • Step4: 切换PosHold
  • Step5: 测试完成,切换RTL返回降落

4. 飞行实测

动态视频,请参考:

ArduPilot-DIYF450-KakuteF7-AIO-posHold&RTL

5. 总结

阴雨天气,M8N GPS20颗卫星搜星3D Fix情况下:

  1. RTL有1米左右的误差
  2. posHold 短时间内漂移几乎感觉不到

整体感受不错,当然如果要更高精度的定位,可能需要考虑RTK GPS模块或者增加视觉定位。

6. 参考资料

【1】ArduPilot开源飞控系统之简单介绍
【2】ArduPilot之开源代码框架
【3】ArduPilot Kakute F7 AIO DIYF450 without GPS配置
【4】ArduPilot Kakute F7 AIO DIYF450 之GPS配置

7. 附录-关于QGC 暂不支持MAVLink2 signing Protocol问题

7.1 问题描述

测试过程,QGC连接飞控经常会在这个位置卡主。

在这里插入图片描述

然后弹出以下对话框。

在这里插入图片描述

在这里插入图片描述

出现该界面,会导致飞控设备无法进行配置,比如:修改failsafe策略等。
在这里插入图片描述

7.2 硬件配置

3DR Radio Telemetry V5 433MHz/57600bps 100mW

在这里插入图片描述
在这里插入图片描述

7.3 逻辑分析

PX4模块设计之四:MAVLink简介中,以前分析过相关内容:

在这里插入图片描述

MAVLink 2 Packet Format

是不是后面的signature加密导致了QGC无法解析????

7.4 配置Signature

在这里插入图片描述

测试结果:

  1. Mission Planner上一直没有问题(无论是否配置上述signature)
  2. QGC上问题依旧,MP上配置了,但是QGC到底是哪里配置,一直没有找到。
  3. 搜索后发现: Add Support for MAVLink2 Message Signing #8958 有过讨论,不过貌似主干上,并没有合入。

7.5 总结(QGC目前尚不支持MAVLink2 Signature)

配置使用MAVLink1, QGC使用一切正常。

在这里插入图片描述

8. 附录-关于MAVLink2/Steam Rates和地面站的问题

Telemetry / Serial Port Setup 中有如下描述,请根据地面站软件的支持情况,适当调整配置参数。

在这里插入图片描述在这里插入图片描述

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

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

相关文章

算法——分布式——一致性哈希、一致性hash图解动画

分布式算法——一致性哈希、一致性Hash 概述传统Hash算法算法步骤生成Hash环定位服务器定位数据和映射服务器 服务器变更Hash环倾斜虚拟节点总结 概述 一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,目的是解决分布式缓存的问题。在移…

使用bert4keras出现的问题(Process finished with exit code -1073741819 (0xC0000005))

1、环境 python 3.7.12 tensorflow 1.15 keras 2.3.1 bert4keras 0.9.7 protobuf 3.19.0 numpy 1.16.5 2、出现问题 numpy版本不兼容问题所以你就直接按照我的版本就可以了(numpy 1.16.5) Process finished with exit code -1073741819 (0xC0000005) …

关于储存器的笔记

存储器是许多存储单元的集合,按单元号顺序排列。每个单元由若干二进制位构成,以表示存储单元中存放的数值,通常由数组描述存储器。 存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。 …

HDCTF KEEP ON

Index KEEP ONChecksec & IDA漏洞分析完整EXP KEEP ON Checksec & IDA __int64 vuln() {char s[80]; // [rsp0h] [rbp-50h] BYREFmemset(s, 0, sizeof(s));puts("please show me your name: ");read(0, s, 0x48uLL);printf("hello,");printf(s);p…

2.5 习题分析

类型一、 通过收敛阶的定义分析迭代方法的收敛速度 例6 分析简单迭代法与牛顿迭代法的收敛速度 我的答案: 一、信息 1.分析简单迭代 2.分析牛顿迭代 3.二者的收敛速度 二、分析 条件1和条件2:告诉我此次分析的目标 条件3告诉我分析的方向即为收…

剑指 Offer 67. 把字符串转换成整数及复制带随机指针的链表

文章目录 一、剑指 Offer 67. 把字符串转换成整数二、Leetcode 138. 复制带随机指针的链表 一、剑指 Offer 67. 把字符串转换成整数 题目是这样的 字符串转换为整数,是连续的数字字符转换,如果数字字符不连续,只转换最前面连续的那部分 其实…

Axios的介绍与使用

Axios的介绍 get请求 Axios配置对象 创建实例发送请求 取消请求 Axios的介绍 目前前端最流行的 ajax 请求库 、react/vue 官方都推荐使用 axios 发 ajax 请求 特点: 基于 xhr promise 的异步 ajax 请求库浏览器端/node 端都可以使用支持请求/…

20.Java序列化

Java序列化 一、序列化和反序列化 序列化:指堆内存中的java对象数据,通过某种方式把对存储到磁盘文件中,或者传递给其他网络节点(网络传输)。这个过程称为序列化,通常是指将数据结构或对象转化成二进制的…

IPC行业信息汇总

IPC:“网络摄像机”,是IP Camera的简称。它是在前一代模拟摄像机的基础上,集成了编码模块后的摄像机。它和模拟摄像机的区别,就是在新增的“编码模块”上。 模拟摄像机,顾名思义,输出的是模拟视频信号。模拟…

大数据系列——Spark理论

概述 Apache Spark,全称伯克利数据分析栈,是一个开源的基于内存的通用分布式计算引擎,内部集成大量的通用算法,包括通用计算、机器学习、图计算等,用于处理大数据应用。 主要由下面几个核心构件组成,具体包…

C++、STL标准模板库和泛型编程 ——适配器、补充(侯捷)

C、STL标准模板库和泛型编程 ——适配器 (侯捷)--- 持续更新 适配器(Adapters)容器适配器(Container Adapters)仿函数适配器(Functor Adapters)bind2nd(绑定第二实参&…

Tomcat源码:Pipeline与Valve

参考资料: 《Tomcat组成与工作原理》 《Tomcat - Container的管道机制:责任链模式》 《Tomcat源码解析系列 Pipeline 与 Valve》 前文: 《Tomcat源码:启动类Bootstrap与Catalina的加载》 《Tomcat源码:容器的生命…

Mybatis源码01-Executor

前言 为了方便公司业务排查问题,要求打印执行的sql,以及执行时间。编写了一个Mybatis的拦截器,此前从未看过mybatis的源码,在调试的过程中不断阅读源码,后边想更深刻了解一下,看了鲁班大叔的视频&#xff…

OSCP-Nickel(爆破pdf、本地http提权)

目录 扫描 HTTP 提权 扫描 FileZilla不接受匿名FTP登录。 端口21上的SSH和3389上的RDP很少是初始入口点,但是如果遇到一些凭据,可以记住这一点。 HTTP 打开Web浏览器并导航到端口8089和3333,用于的HTTP服务器。端口8089似乎是某种类型的开发环境。 单击一个按钮重定向到…

boot-admin整合Quartz实现动态管理定时任务

淄博烧烤爆红出了圈,当你坐在八大局的烧烤摊,面前是火炉、烤串、小饼和蘸料,音乐响起,啤酒倒满,烧烤灵魂的party即将开场的时候,你系统中的Scheduler(调试器),也自动根据…

在函数中使用变量

shell脚本编程系列 向函数传递参数 函数可以使用标准的位置变量来表示在命令行中传给函数的任何参数。其中函数名保存在$0变量中,函数参数则依次保存在$1、$2等变量当中,也可以使用特殊变量$#来确定参数的个数 在脚本中调用函数时,必须将参…

day3 TCP/IP协议与五层体系结构

TCP / IP 四层体系结构 TCP / IP工作流程: 现在互联网使用的 TCP/IP 体系结构已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层。 沙漏型展示: 五层体系结构 各层的主要功能 应用层&#xff1…

C++ Primer阅读笔记--语句的使用

① 空语句 最简单的语句是空语句,其只含有一个单独的分号; ② switch语句 case 关键字和它对应的值一起被称为 case 标签,case 标签必须是整型常量表达式; char ch getVal(); int iVal 42; switch(ch){case 3.14: // 错误&#…

ZmosHarmony buildroot移植与使用

前言 移植过程 1、添加编译选项编译buildroot。 2、开机启动时设置 LD库的环境变量与PATH路径。 是什么原因需要这样操作? 主要使用busybox,使用buildroot的瑞士军dao。 使用busybox 为buildroot下的使用 第一次启动时设置 由于是在vendor分区因此 …

01 openEuler虚拟化-KVM虚拟化简介

文章目录 01 openEuler虚拟化-KVM虚拟化简介1.1 简介1.2 虚拟化架构1.3 虚拟化组件1.4 虚拟化特点1.5 虚拟化优势1.6 openEuler虚拟化 01 openEuler虚拟化-KVM虚拟化简介 1.1 简介 在计算机技术中,虚拟化是一种资源管理技术,它将计算机的各种实体资源&…