ArduPilot之H743快速加减油门抬头现象分析

news2024/11/17 21:40:50

ArduPilot之H743快速加减油门抬头现象分析

  • 1. 源由
  • 2. 现象分析
  • 3. 改善方法
  • 4. 验证
  • 5. 总结
  • 6. 参考资料

1. 源由

最近一直折腾再ArduCopter快速加减油四轴模型抬头的问题。

具体情况详见下面视频:

    1. 猛加油,机头后仰,然后点头;
    1. 快速松油门后,机头后仰;

最关键的问题是当做空翻动作的时候,这个额外的后仰会感觉失控,操控体验非常差。

注:上述问题主要是针对Betaflight固件而言,因为BF上没有看到类似的情况。

总体期望:ArduCopter能够类似BF的操控效果。

ArduPilot Mark4 猛加油+松油门,抬头现象(throttle chop bobble or "throbble")

2. 现象分析

从黑匣子数据看:

  1. 快速加油,会导致机头后仰
  2. 快速松油门,同样机头会后仰

在这里插入图片描述
根据网上大佬们的意见:

  1. PD需要增加来克服瞬时油门变化不能及时响应;
  2. BF上通过anti-Gravity特性来针对上述操控特性(当大幅度油门操作的时候,对PD进行瞬时放大,处理响应不及时问题)

Improving Throttle Chop Bobble or Throbbles

Betaflight 3.1 anti-gravity-gain EXPLAINED

从个人体验的角度,感觉0油门的时候,四轴无法维持姿态:

  1. 动力不足
  2. 油门和姿态优先级的问题

经过确认:目前ArduPilot在4.4版本会增加ATC_THR_G_BOOST(类似BF的anti-Gravity)。

3. 改善方法

从上述分析和获得的信息,改善可以从以下几个方面进行:

  1. ATC_THR_MIX_MAN来调整油门和姿态的优先度,来确保姿态的稳定性
    在这里插入图片描述

ATC_THR_MIX_MAN = 4 //会有降落不停弹跳(bounce back)的风险

  1. 增加PD值来确保大油门仍然有机会快速达到稳定姿态的可能
    在这里插入图片描述

ATC_RAT_PIT_P = 0.210
ATC_RAT_PIT_D = 0.0056
ATC_RAT_RLL_P = 0.150 //增加Roll的PD,boost以后会产生振动
ATC_RAT_RLL_D = 0.0040

  1. ATC_THR_MIX_MIN提升0油门动力值,确保低油门有足够的动力维持姿态
    在这里插入图片描述

ATC_THR_MIX_MIN = 0.24 //0.18有改善,但是仍然存在动力不足,这可能是3S电池电压不足的问题,如果换4S电池,这个值就要下降

  1. ATC_THR_G_BOOST引入类似BF的anti-Gravity功能

在这里插入图片描述

ATC_THR_G_BOOST = 0.5 //做一个中间值的加强PD

  1. 参数优化

INS_FAST_SAMPLE = 3 //both IMU1 and IMU2
INS_GYRO_FILTER = 100 //100Hz
INS_GYRO_RATE = 1 //2K

INS_HNTCH_ENABLE = 1
INS_HNTCH_BW = 40 //40Hz
INS_HNTCH_FREQ = 100 //100Hz
INS_HNTCH_HMNCS = 3 //1st and 2nd harmonic frequency
INS_HNTCH_MODE = 3 //ESC Telemetry
INS_HNTCH_OPTS = 6 //Multi-Source and update at PID loop rate
INS_HNTCH_REF = 1 // RPM sensor enable harmonic notch filter

SCHED_LOOP_RATE = 800
SERVO_DSHOT_RATE = 2 //double loop rate

RC2_REVERSED = 1

SERVO_BLH_POLES = 14 //12N14P

ATC_INPUT_TC = 0.05 //very crisp
INS_HNTCH_HMNCS = 7

WP_YAW_BEHAVIOR = 3 // gps course

ACRO_RP_RATE = 360
ACRO_RP_RATE_TC = 0 //sharp response
ACRO_RP_EXPO = 0.5

ACRO_Y_RATE = 202.5
ACRO_Y_RATE_TC = 0 //sharp response
ACRO_Y_EXPO = 0

4. 验证

经过这几天的测试:

  1. ATC_THR_MIX_MIN增加最小油门起始值可以有效缓解松油门抬头现象;
  2. ATC_THR_G_BOOST可缓解瞬时全油飞机后仰问题;
  3. PD值调整会导致推油门振动问题(平时需要正常PD值,快速全油需要瞬时增加PD值来解决后仰和点头问题)

Mark4 ArduPilot ATC_THR_MIX_MIN improve pitch back while cutting throttle zero

Mark4 ArduPilot throttle chop bobble or throbble Fixed in 4.4.0-beta2

5. 总结

总的来说,ArduCopter固件在穿越机上也能非常好的飞行,且操控性与BF类似。当然还有很多细节的微调,仍然需要时间来完成。

下面有一个基础的飞行控制视频,从感觉上与BF类似,没有太多差异。

Mark4 ArduPilot 4.4.0-beta2 Anti-Gravity much more like Betaflight now

6. 参考资料

【1】Why punch/cut throttle makes drone pitch back?
【2】How to change ATC_THR_MIX_MAN value out of range?
【3】ArduPilot: throttle-boost
【4】ArduPilot开源飞控系统之简单介绍

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

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

相关文章

一文搞清楚 Docker 镜像、容器、仓库

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

【服务器数据恢复】EXT3文件系统下Oracle数据库数据恢复案例

服务器数据恢复环境: 华为OceanStor某型号存储,十几块FC硬盘组建一组RAID5磁盘阵列,配备了一块热备盘;上层使用EXT3文件系统,配置了oracle数据库。 服务器故障: 该存储RAID5中的一块硬盘未知原因离线&…

从软件测试到自动化测试,待遇翻倍,我整理的超全学习指南!

因为我最近在分享自动化测试技术,经常被问到: 功能测试想转自动化,请问应该怎么入手?有没有好的资源推荐? 那么,接下来我就结合自己的经历聊一聊我是如何在工作中做自动化测试的。(学习路线和…

教你该如何写单元测试

目录 前言: 到底什么是单元测试 为什么单测这么难写 写个单测例子 道阻且长 前言: 编写单元测试是软件开发中非常重要的一环,它可以确保代码的质量,减少Bug的产生,提高代码的可维护性,同时也能够大大…

ts自定义迭代器

key 为 [Symbol.iterator]

软考A计划-系统架构师-案例分析知识点整理

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

【数据结构】24王道考研笔记——栈、队列和数组

三、栈、队列和数组 目录 三、栈、队列和数组栈基本概念顺序栈链式栈 队列基本概念顺序存储链式存储双端队列 应用括号匹配前中后缀表达式栈在递归中的运用队列的运用 数组数组的存储对称矩阵三角矩阵三对角矩阵稀疏矩阵 栈 基本概念 栈是只允许在一端进行插入或删除操作的线…

朋友拿下字节27K的offer,实名羡慕了....

最近有朋友去字节面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…

Redux异步解决方案 1. Redux-Thunk中间件

简单介绍一下thunk,这是一个中间件,是解决redux异步问题产生的。我们都知道,在使用redux的时候,通过dispatch一个action 发生到reducer 然后传递给store修改状态 一系列都是同步的,那如果说我dispatch一个action 这个a…

blockchain layer区块链分层

目录 1.layer0 2.layer1 3.layer2 ​4.layer3 1.layer0 第0层的定义目前行业还没有完全一致的理解。多数人认为第0层是 加密数据连接层及其硬件,对应上图下半部分。 也有一些人把跨链或可以创建链的基础设施为作为第0层,他们的代表有: LayerZero、S…

一文讲清后摩尔时代国产高性能并行应用软件生态建设

摘自《后摩尔时代国产高性能并行应用软件生态建设综述》 作者: 龚春叶1,刘杰1,包为民2,潘冬梅1,甘新标1,李胜国1 陈旭光1,肖调杰1,杨博1,王睿伯1 (1.国防科技大学 并…

基于stm32作品设计:多功能氛围灯、手机APP无线控制ws2812,MCU无线升级程序

文章目录 一、作品背景二、功能设计与实现过程三、实现基础功能(一)、首先是要选材(二)、原理图设计(二)、第一版本PCB设计(三)、焊接PCB板(四)编写单片机程序…

软件测试基础知识 —— 白盒测试

白盒测试 白盒测试(White Box Testing)又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试只测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误&#xff0c…

基于诺亚无人船ROS与Dronekit之间的通信浅析

阿木实验室的诺亚无人船上市已经有一段时间,经过对开发者们的多次调研,我们发现不少开发者都对诺亚无人船的通信实现方式感兴趣,为了帮助大家更好地理解并使用该产品,本期我们将针对诺亚无人船中所使用的linux编程技术以及ROS系统…

2023最新互联网工程师 Java 面试题及答案整理(7 天就能吃透)

现在 Java 面试都只是背答案吗? 不背就通过不了面试,但是现在面试都问原理、问场景!Java 面试题就像我们高考时的文言文,包括古诗词,不背是不可能答出来的!当然了,除了背,还得理解&…

某球中如何驾驶西锐SR-22小飞机在美国大峡谷中穿行

某球中如何驾驶西锐SR-22小飞机在美国大峡谷中穿行 我已经厌烦了无聊的围绕机场的五边飞行了,想飞一趟跨越乡野的转场飞行了。在我常用的飞软SimplePlanes里面,我已经完成取胜了所有的竞速赛道,我想自己创建一个航路想定,最终选择…

帆软Finereport数据分页,分页查询

目标: 在数据集中一次性获取所有数据后,分页查看,导出时导出的所有数据 如图: 实现步骤: 一、在表格中点击第一列数据集的单元格,添加条件属性, 条件属性内容:&A3 % 5 0 公式解…

【Spring框架学习】了解什么是Spring框架?Spring框架有什么用?创建第一个SpringBoot项目

前言: 💞💞今天我们开始学习Spring,这里我们会了解什么是Spring,知道什么是框架,为什么要学Spring框架,框架有什么作用等等。 💟💟前路漫漫,希望大家坚持下去…

pikachu靶场-../../(目录遍历)

目录遍历, 也叫路径遍历, 由于web服务器或者web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件 (可以是web根目录以外的文件),甚至…

客户案例:CACTER邮件安全网关解决餐饮企业邮件安全痛点,有效提升防护!

客户背景 某大型餐饮企业是一家在全国范围内拥有多家连锁店的知名品牌,以优秀的产品和服务质量,严格的质量控制和管理体系,以及开创性的营销策略,赢得了广泛的客户认可和信任。 然而,正因为该企业具有良好的口碑和声誉…