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…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
