当前位置: 首页 > news >正文

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&#xff…...

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>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C之 STL list介绍和模拟实现 ☂️<3>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<4>前言&#xff1a;上次我们详细的介绍了vector&#xff0c;今天我们继续来介绍…...

Django图书商城系统实战开发-实现订单管理

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

POJ 3421 X-factor Chains 埃氏筛法+质因子分解+DFS

一、思路 我们先用埃氏筛法&#xff0c;找出1048576范围内的素数&#xff0c;其实找出1024以内的就够了&#xff0c;但是1048576也不大&#xff0c;所以无所谓了。 然后把输入的数字不断的判断与每个素数是否整除&#xff0c;然后把输入的数变为很多个素数相乘的形式&#xf…...

【积水成渊】9 个CSS 伪元素

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人_python人工智能视觉&#xff08;opencv&#xff09;从入门到实战,前端,微信小程序-CSDN博客 最新的uniapp毕业设计专栏也放在下方了&#xff1a; https://blog.csdn.net/lbcy…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...