当前位置: 首页 > 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…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...