ardupilot开发 --- 安装与调参篇
解锁电机前的安全检查 Pre-arm Safety Checks
安全检查包括:是否未校准、配置或传感器数据是否正确等等,某一项不通过则不允许解锁电机;
目的:防止炸机;
如何禁用这些安全检查?配置 ARMING_CHECK;
在标准参数Tab menu中,或直接配置ARMING_CHECK;
安全检查失败和修复
LED flashing yellow;
地面站的控制台会提示:The first cause of the Pre-Arm Check failure will be displayed in red on the HUD window;
常见的失败提示和原因:
AHRS: waiting for home :GPS信号弱,室内?
EKF3 Roll/Pitch inconsistent by X degs :室内?
EKF3 Yaw inconsistent by x degs :罗盘有金属靠近?
AHRS: not using configured AHRS type:AHRS_EKF_TYPE配置不正确?
EKF3 waiting for GPS config data:GPS未连接或未正确配置?
其他安全检查失败:
Any failsafe (RC, Battery, GCS,etc.) will display a message and prevent arming
请参考https://ardupilot.org/copter/docs/common-prearm-safety-checks.html
解锁电机 Arming the motors
解锁电机,让电机开始运转,油门在中位值时是空转;
- 先启动遥控器,地面站;
- 接通飞机电源,等待陀螺仪校正完成(蓝灯,红灯闪烁);
- 飞控进行安全检查,若有失败项目则黄灯闪烁;
- 检查当前飞行模式是否是Stabilize, ACRO, AltHold, Loiter, or PosHold 其一;
- 如果有安全开关,长按安全开关直到指示灯长亮;
- 如果是自动模式或需要GPS信号的模式,则等待GPS锁定;
- 解锁电机(油门杆右下推?);
如何上锁电机??
在任何飞行模式下?油门杆拉到最小值15秒;
在有的,模式下是解锁不了电机的:
几点注意事项
- 确保桨叶旋转方向;
- 确保陀螺仪能正常检查倾斜;
- 确保故障保护已经正确配置,radio, battery, and ekf/gps.
- auto模式下,确保GPS锁定;
- loiter前确保Stabilize正常,RTL前确保loiter正常,auto前确保RTL正常;
- 如果在其他模式飞行时出现意外或故障,要迅速切换到Stabilize或Acro 模式;
- 要保证电池高于80%再飞行;
- 上电前要保持飞机水平放置,以进行上电后的陀螺仪校准;
- 不要设置Radio Trim;
- 飞控会在电机解锁时将当前位置作为Home点;
- 配置一个RC通道作为电机的紧急停机开关;
- 其他;
调参
根据桨叶尺寸配置MOT_THST_EXPO
要保证控制品质,就必须保证电机推理曲线的线性;
引起电机推力曲线非线性的原因主要有:
- 油门增加,电压下降;
- ESCs 的 PWM range 配置不合理;
- 螺旋桨、ESC和电机组合产生的推力非线性
thrust expo是啥?
MOT_THST_EXPO决定了推力(拉力)曲线的形状,是直线(线性)还是曲线(非线性),如下图:
- MOT_THST_EXPO为0表示推力曲线是直线;
- MOT_THST_EXPO为1推力曲线是最弯曲;
- 默认值一般为0.5; 不要相信制造商的推力曲线数据,因为它们经常不准确;
注意:Some ESCs have built-in linearizing curves and the default EXPO value of “0.65” will cause stability issues, requiring thrust stand measurements to adjust the EXPO. Typically, values of “0” to “0.2” will result.
thrust stand:译为推力测量台;
说明:
横坐标应该是推力,纵坐标是pwm;before0、0.5、1三条曲线是相同的,为了对比弯曲程度而已; 不要相信制造商的推力曲线数据,因为它们经常不准确;
MOT_THST_EXPO与螺旋桨叶尺寸的关系,下图可以作为参考,不一定准确,如果想要更准确请使用推力推量仪器进行具体测量:
总结:根据螺旋桨尺寸来配置MOT_THST_EXPO,默认取0.5;
Motors 参数
MOT_PWM_MAX: Check ESC manual for fixed range or 2000us
MOT_PWM_MIN: Check ESC manual for fixed range or 1000us
MOT_SPIN_ARM: use the motor test feature to determine a value which will reliably start the motors spinning at a low rpm as an indication of the armed state.
MOT_SPIN_MAX: 0.95
MOT_SPIN_MIN: use the motor test feature and motor test data, if available, to set the lower range of linear thrust. The default value is usually adequate for hobby uses.
MOT_THST_HOVER: 0.25 or below the expected actual hover thrust percentage (lower is safe)
限幅参数,滤波器参数(起飞前)
- INS_ACCEL_FILTER
用于加速度计的低通滤波器的剪切频率
10Hz - INS_GYRO_FILTER
用于陀螺仪的低通滤波器的剪切频率
80Hz for 5 inch props, 40Hz for 10 inch props, 20Hz for 20 inch props (or larger) - ATC_ACCEL_P_MAX:
pitch通道允许的角加速度最大值
110000 for 10 inch props, 50000 for 20 inch props, 20000 for 30 inch - ATC_ACCEL_R_MAX
110000 for 10 inch props, 50000 for 20 inch props, 20000 for 30 inch props - ATC_ACCEL_Y_MAX
27000 for 10 inch props, 18000 for 20 inch props, 9000 for 30 inch props - ATC_RAT_PIT_FLTD: INS_GYRO_FILTER / 2
Pitch axis rate controller derivative frequency in Hz - ATC_RAT_PIT_FLTT: INS_GYRO_FILTER / 2
Pitch axis rate controller target frequency in Hz - ATC_RAT_RLL_FLTD: INS_GYRO_FILTER / 2
- ATC_RAT_RLL_FLTT: INS_GYRO_FILTER / 2
- ATC_RAT_YAW_FLTE: 2
Yaw axis rate controller error frequency in Hz - ATC_RAT_YAW_FLTT: INS_GYRO_FILTER / 2
Yaw axis rate controller target frequency in Hz
以上参数的配置可以在:SETUP/Mandatory Hardware/Initial Parameter Setup
测试自稳,调节参数
以自稳模式尝试推动油门起飞;
如果飞机左右摇晃很厉害则尝试减小以下角速度环的参数50%:
- ATC_RAT_PIT_P
- ATC_RAT_PIT_I
- ATC_RAT_PIT_D
- ATC_RAT_RLL_P
- ATC_RAT_RLL_I
- ATC_RAT_RLL_D
减小到不来回震荡为止;
测试定高,调节参数
确保MOT_HOVER_LEARN为2;
以自稳模式起飞并保持在5m左右的高度;
让高度控制器持续作用30秒左右直到飞机高度稳定,飞机稳定后MOT_THST_HOVER参数会被自动设置???
将飞机Land,然后调节一下参数:
- PSC_ACCZ_I :2 * MOT_THST_HOVER
- PSC_ACCZ_P :MOT_THST_HOVER
调节后如果飞机在定高模式下仍然上下起伏很明显,尝试调小一下参数50%,持续调小直到稳定: - PSC_POSZ_P
- PSC_VELZ_P
陷波滤波参数
自稳,定高模式都没问题后,尝试调节陷波滤波参数以获得更好的飞行性能:
不同于上节提到的低通滤波器;
在配置如何配置陷波滤波前,先要测量那种频率的信号需要被滤除?一般哟啊滤除的是电机引起的震动信号,那如何测量这些震动信号的频率?
See the Measuring Vibration with IMU Batch Sampler page
Throttle Based Dynamic Notch Setup
测量震动噪声的频率 震动测量
IMU BatchSampler:用于记录IMU的高频数据到log中;
这些数据可用于FFT分析;
配置陷波滤波器参数
只针对陀螺仪?只有陀螺仪有陷波滤波?谐波陷波滤波?harmonic notch filter?
震动频率的来源:电机的旋转频率以及该旋转频率的谐波(2次3次?);
如果存在多个震动来源,并且震动频率不同,可以考虑启用多个陷波滤波器,但是每个滤波器就会占用一定cpu资源,要慎重启用;如INS_HNTCH_ENABLE = 1 启用滤波器1,INS_HNTC2_ENABLE = 1启用滤波器2;
关于陷波滤波器的参数:
- 设置模式为Throttle Based Dynamic Notch
INS_HNTCH_MODE = 1. - 开启陷波滤波器
INS_HNTCH_ENABLE = 1 - INS_HNTCH_REF
频率的放大系数,这个参数决定了陷波频率随着油门变化而变化的程度;mode为1时一般将其设置为0;
设为0时为静态陷波滤波器;mode不同该参数的设法不同,请参考文档; - INS_HNTCH_FREQ
陷波滤波器的中心频率,即设置为要滤除的频率; - INS_HNTCH_BW
陷波滤波器的带宽,一般设置为中心频率的一半,即 INS_HNTCH_FREQ / 2 - INS_HNTCH_FM_RAT
??? - INS_HNTCH_HMNCS
要滤除的谐波,以INS_HNTCH_FREQ 为基波;例如INS_HNTCH_HMNCS设为3,则要滤除的信号包括:基波、1次2次3次4次谐波??
相关文章:

ardupilot开发 --- 安装与调参篇
解锁电机前的安全检查 Pre-arm Safety Checks 安全检查包括:是否未校准、配置或传感器数据是否正确等等,某一项不通过则不允许解锁电机; 目的:防止炸机; 如何禁用这些安全检查?配置 ARMING_CHECKÿ…...

BC108 矩阵交换
描述 KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。 输入描述 第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10) 从2到n1行,每行输入m个整数(范围-…...

如何发现系统改进点,优化点,提高点,新系统 边界感不要太强
技术人员规划能力,如何规划新的系统_技术规划能力_个人渣记录仅为自己搜索用的博客-CSDN博客 1. 协作中, 双方系统对接, 边界感不要太强. 肯定会不爽, 不爽的点里可以挖掘改进点 肯定会有很多冲突,对方技能欠缺, 对方耽误你的时间, 可以想下有没有什么方案是可…...

5G无人露天矿山解决方案
1、5G无人露天矿山解决方案背景 ①2010.10,国家安监总局《金属非金属地下矿山安全避险“六大系统”安装使用和监督检查暂行规定》 ②2016.03,国家发改委《能源技术革命创新行动计划(2016-2030)》,2025 年重点煤矿区采…...

Datawhale Django入门组队学习Task01
Task01 一.创建虚拟环境 python -m venv django_learn (django_learn那里是自己定的环境名字) 之前一直用conda管理虚拟环境,没咋用过virtualenv,然后我的powershell之前也设置了默认启动了base环境,然后输入activat…...

【第二阶段】kotlin的函数类型作为返回类型
fun main() {//调用,返回的是一个匿名类型,所以info就是一个匿名函数val infoshow("",0)//info接受的返回值为匿名类型,此时info就是一个匿名函数println(info("kotlin",20)) }//返回类型为一个匿名函数的返回类型fun show(name:Str…...

C++之ostream与ifstream读写文件操作(一百八十二)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

Unity - 从PackageManager中安装内置工具
1.MemoryProfiler 内存分析工具 add from git url :com.unity.memoryprofiler 使用地址记录:unity3d内存分析工具memory profiler_unity3d memory profile_Marco&GalaxyDragon的博客-CSDN博客 理解Unity Memory Profiler - 知乎...

wsl安装Linux kali
目录 1.启用“Hyper-V”和“~子系统” 2.启用虚拟化 3.安装发行版 4.升级原有系统到WSL2 5.kali换源与更新升级并安装工具集 6.kali安装图形界面~GUI 7.kali安装中文界面与中文输入法 8.wsl~kali位置迁移 1.启用“Hyper-V”和“~子系统” 打开控制面板---->>程序…...

ProtoBuf3语法详解
目录: 需求:字段规则消息类型的定义与使用通讯录2.0的写⼊实现TestRead.java(通讯录2.0)TestRead.java(通讯录2.0) 另⼀种验证⽅法--toString()enum类型升级通讯录⾄2.1版本Any类型oneof类型map类型默认值更新消息保留字段reserved未知字段选项option 通…...

尚硅谷css3笔记
目录 一、新增长度单位 二、新增盒子属性 1.border-box 怪异盒模型 2.resize 调整盒子大小 3.box-shadow 盒子阴影 案例:鼠标悬浮盒子上时,盒子有一个过度的阴影效果 三、新增背景属性 1.background-origin 设置背景图的原点 2.background-clip 设置背…...

ppt转pdf免费的工具哪个好用?免费PPT转换为PDF的方法分享
在我们的工作和学习中,将PPT文件转换为PDF格式对于分享和储存具有重要意义。PPT文件是一种常用的演示工具,用于展示和传达信息。然而,PPT文件在不同的平台和设备上可能存在格式兼容性的问题,而且文件大小较大,不方便共…...
IDEA常用工具配置
IDEA常用工具&配置 如果发现插件市场用不了,可以设置Http Proxy,在该界面上点击”Check connection“并输入的地址:https://plugins.jetbrains.com/ 。 一、常用插件 1、MybatisX Mybaits Plus插件,支持java与xml互转 2、F…...

hive--给表名和字段加注释
1.建表添加注释 CREATE EXTERNAL TABLE test(loc_province string comment 省份,loc_city string comment 城市,loc_district string comment 区,loc_street string comment 街道,)COMMENT 每日数据处理后的表 PARTITIONED BY (par_dt string) ROW FORMAT SERDEorg.apache.had…...

AutoSAR系列讲解(深入篇)13.4-Mcal Dio代码分析(上)
目录 一、文件结构 二、动态代码 1、arxml文件 2、Dio_Cfg.h 3、Dio_PBCfg.c 4、小结 考虑了一下,觉得还是有必要拿出一个代码来具体分析一下,所以我们以最简单的DIO来举例子。但是如果直接贴上源码,可能会有一些版权问题,...

基于Mybatis Plus的SQL输出拦截器。完美的输出打印 SQL 及执行时长、statement
我们需要想办法打印出完成的SQL,Mybatis为我们提供了 org.apache.ibatis.plugin.Interceptor接口,我们来实现该接口做一些打印SQL的工作 package org.springjmis.core.mp.plugins;import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; impor…...

C++ STL list
✅<1>主页:我的代码爱吃辣 📃<2>知识讲解:C之 STL list介绍和模拟实现 ☂️<3>开发环境:Visual Studio 2022 💬<4>前言:上次我们详细的介绍了vector,今天我们继续来介绍…...

Django图书商城系统实战开发-实现订单管理
Django图书商城系统实战开发-实现订单管理 简介 在本教程中,我们将继续基于Django框架开发图书商城系统,这次的重点是实现订单管理功能。订单管理是一个电子商务系统中非常重要的部分,它涉及到用户下单、支付、发货以及订单状态的管理等方面…...

POJ 3421 X-factor Chains 埃氏筛法+质因子分解+DFS
一、思路 我们先用埃氏筛法,找出1048576范围内的素数,其实找出1024以内的就够了,但是1048576也不大,所以无所谓了。 然后把输入的数字不断的判断与每个素数是否整除,然后把输入的数变为很多个素数相乘的形式…...

【积水成渊】9 个CSS 伪元素
大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人_python人工智能视觉(opencv)从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了: https://blog.csdn.net/lbcy…...

【002】学习笔记之typescript的【任意类型】
任意类型 顶级类型:any类型和 unknown 类型 any类型 声明变量的时候没有指定任意类型默认为any任意类型都可以赋值给any,不需要检查类型。也是他的弊端如果使用any 就失去了TS类型检测的作用 unknown 类型 TypeScript 3.0中引入的 unknown 类型也被认为…...

题目:2574.左右元素和的差值
题目来源: leetcode题目,网址:2574. 左右元素和的差值 - 力扣(LeetCode) 解题思路: 按题目要求模拟即可。 解题代码: class Solution {public int[] leftRightDifference(int[] nums) {i…...

成集云 | 用友U8采购请购单同步钉钉 | 解决方案
源系统成集云目标系统 方案介绍 用友U8是中国用友集团开发和推出的一款企业级管理软件产品。具有丰富的功能模块,包括财务管理、采购管理、销售管理、库存管理、生产管理、人力资源管理、客户关系管理等,可根据企业的需求选择相应的模块进行集…...

爬虫的代理IP池写哪里了?
亲爱的程序员小伙伴们,想要提高爬虫效率和稳定性,组建一个强大的代理IP池是非常重要的一步!今天我就来和你分享一下,代理IP池到底应该写在哪里,以及如何打造一个令人瞩目的代理IP池!准备好了吗?…...

CSS变形与动画(三):animation帧动画详解(用法 + 四个例子)
文章目录 animation 帧动画使用定义例子1 字母例子2 水滴例子3 会动的边框例子4 旋转木马 animation 帧动画 定义好后作用于需要变化的标签上。 使用 animation-name 设置动画名称 animation-duration: 设置动画的持续时间 animation-timing-function 设置动画渐变速度 anim…...

Ubuntu发布java版本
1、连接服务器 2、进入目录 cd /usr/safety/app/3、上传jar文件 4、杀掉原java进程 1. 查看当前java进程 2. ps -ef|grep java 3. ycmachine:/usr/safety/app$ ps -ef|grep java root 430007 1 6 01:11 pts/0 00:02:45 /usr/local/java/jdk1.8.0_341/bin/j…...

Java反射机制是什么?
Java反射机制是 Java 语言的一个重要特性。 在学习 Java 反射机制前,大家应该先了解两个概念,编译期和运行期。 编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些…...

legacy-peer-deps的作用
加入ui组件库,以element-ui为例子 安装命令: npm i element-ui -S 如果安装不上,是因为npm版本问题报错,那么就使用以下命令 npm i element-ui -S --legacy-peer-deps那么legacy-peer-deps的作用是? 它是用于绕过pee…...

卷积操作后特征图尺寸,感受野,参数量的计算
文章目录 1、输出特征图的尺寸大小2、感受野的计算3、卷积核的参数量 1、输出特征图的尺寸大小 如果包含空洞卷积,即扩张率dilation rate不为1时: 2、感受野的计算 例如,图像经过两个3*3,步长为2的卷积后感受野为: co…...

C/C++ 注意点补充
C/C 注意点补充 地址与指针函数缺省 地址与指针 p的值是a的地址值,p的类型是int*,p的值是十六进制表示的地址值 所以可以直接把地址值通过强制转换 转换为地址p 如上图!!! int a10; int *p&a; printf("%#p\n&…...