基础实验篇 | 课程总体介绍(一)

news2024/11/28 14:14:43

本讲主要介绍多旋翼的特点及选用多旋翼作为实验平台的原因、对于无人系统教育的一些新需求、RflySim平台对于飞控的底层控制算法的开发优势、本期平台课程的设置、以及如何开发自驾仪系统。

相较于固定翼和直升机,多旋翼具有机械结构简单、 易维护的优点。以四旋翼的操控为例,遥控器的不同通道分别对应升降、前后、左右以及偏航运动。实现了运动的相互解耦,同时具备无机械磨损、结构简单的特点。这满足了易用性、可靠性、勤务性的刚性体验,也是本平台选用多旋翼无人机作为主要实验载具的原因。

基础实验篇 | 课程总体介绍(一)

01.多旋翼

1.1 多旋翼涉及的学科包括以下八个一级学科

·力学、机械工程

多旋翼的构型方面

·电子科学与技术、信息与通信工程、电气工程、仪器科学与技术

多旋翼的组成:机架,动力系统,指挥控制系统,以及飞控内部的接线。

 

·控制科学与工程

多旋翼的刚体模型开发:控制器和动力学模型

·计算机科学与技术

多旋翼的刚体模型开发:控制器和动力学模型

02、教育新需求

在设计传统的大型航空航天器时,传统院校占有很大的优势:具有人员多、分工细、经验多、资源多等特点。这种方式不适合小型或微型的无人机开发,使得微型飞行器的开发很难投入大量精力。因此开发团队也呈现出了人员少 、一肩挑 、经验少、资源少的新形势。在这种形式下,特别需要全栈式工程师或者总工程师那样的复合型人才。基于这种新形势下的人才需求,针对理论和实践两方面,本平台开发了新工具和新教程以降低学习门槛。

03、RflySim平台

 RflySim是由北航可靠飞行控制组发布的生态系统(或工具链)。1.它采用基于模型设计(Model-Based Design,MBD)的思想, 可用于无人系统的控制和安全测试。因MATLAB/Simulink 支持MBD的整个设计阶段,我们选择它们作为控制/视觉/ 集群算法开发的核心编程平台;同时,因Python是免费的 且有丰富的视觉处理库,我们也支持它作为顶层视觉与集 群算法开发 。在平台安装包内可以看到很多例程都基于MATLAB和Python 进行开发,因为这两种语言在做科研或无人系统前端的开发过程中使用较多。2.RflySim平台目前分为了三个版本:基础版(免费)、高级体验版(免费)和高级完整版(付费,请咨询 service@rflysim.com)

3.1基础版

基础版作为实验平台对应了《多旋翼飞行器设计与控制实践》一书,安装包体积较小,只包含了PX4底层算法Simulink开发的功能。

3.2高级体验版

高级体验版在基础版上增加了飞机动力学模型开发、UE4三维场景开发、视觉控制开发和集群算法开发等功能,但是限制了集群数量和分C布式仿真等功能。

3.3高级完整版

高级完整版在体验版上增加了最新的UE4引警、全球大场景仿真、分布式局域网集群视觉仿真等功能。

04、课程设置

本系列课程主要介绍底层飞行控制算法开发,分为两部分:基础实验和进阶实验。

4.1基础实验内容

软件在环仿真实验;自动代码生成工具箱官方例程实验;姿态控制实验;飞控官方固件还原烧录实验;log数据记录;uORB读写通信;自定义uORB消息;回传提示消息;PX4控制器的外部通信;QGC实时调整控制器参数

4.2进阶实验内容

 实验内容包括:动力系统设计 ;动态建模 ;传感器标定 ;滤波器设计 ;姿态控制器设计 ;定点位置控制器设计 ;半自主控制模式设计 ;失效保护逻辑

4.2.1

本平台提供的例程可以保证每个实验或者每个版块的实验可以被单独完成 。为了使任务目标有差异化,本课程可以按照一种递进的结构完成:设计和建模实验 -〉估计实验-〉控制实验-〉决策实验

4.2.2以姿态控制器为例的实验步骤设计

基础实验:打开例程,阅读并运行程序代码,然后观察并记录分析数据。

分析实验 :指导读者修改例程,运行修改后的程序并收集和分析数据。

设计实验 :在上述两个实验的 基础上,针对给定的任务,进行独立的设计。

4.2.3增加新实验

动力系统设计实验和建模实验的参数可参考(飞行测评网站)自行设置。控制器设计实验方面,除了基础的PID控制,后续还会增加其他的控制方式(如 预测控制 、自抗扰控制 ),目前自抗扰控制的相关例程已开发完成。

05、开发自驾仪系统

自驾仪系统是一种嵌入式系统,在其中部署算法时应重点关注其实时性,这会直接影响系统的带宽和它的鲁棒特性。

5.1设置时钟

RflySim平台使用时间触发的方式确保算法的稳定运行,这可以在Simulink中使用状态流调度器实现

 

平台设计的控制器与PX4软件的控制器性能对比

 

在线参数整定

实验内容包括:动力系统设计 ;动态建模 ;传感器标定 ;滤波器设计 ;姿态控制器设计 ;定点位置控制器设计 ;半自主控制模式设计 ;失效保护逻辑

数据实时显示

如果使用者需要在飞行器飞行过程中实时观察飞行器状态或者控制器 的中间参数,也可以很方便地在Simulink模型中添加实时数据观测模块,并在QGC中 观测数据。

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

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

相关文章

操作Arrays.asList的list报UnsupportedOperationException的坑

Arrays.asList() 将数组转换成List集合 /*** Returns a fixed-size list backed by the specified array. (Changes to* the returned list "write through" to the array.) This method acts* as bridge between array-based and collection-based APIs, in* com…

通过Python封装商品ID获取阿里巴巴商品详情数据,阿里巴巴商品详情数据API接口,阿里巴巴API接口

目的:通过Python封装商品ID获取阿里巴巴商品详情数据,本文将给出Python代码的一些思路和示例。 首先,你需要找到获取阿里巴巴商品详情数据的API接口。阿里巴巴开放平台提供了一些API接口,例如阿里巴巴开放平台商品API&#xff0c…

软件开发项目成本控制的7个重点

1、精细计划预算和管控机制 制定详细的项目计划和预算,包括资源需求、人力资源、时间表和财务预测等,以确保项目不会超出预算。实时跟踪项目的实际开支和进度,并对计划进行调整,以便更好地管理成本。 软件开发项目成本控制的7个重…

MongoDB Study Notes

文章目录 1 MongoDB快速入门1.1 什么是MongDB1.2 部署安装——基于docker1.3 基本概念1.4 基本操作1.4.1 查看所有数据库1.4.2 切换数据库1.4.3 创建数据库1.4.4 删除数据库1.4.5 查看数据库中表1.4.6 新增数据1.4.7 查询数据1.4.8 更新数据1.4.8.1 更新不存在字段1.4.8.2 更新…

Nginx 504 gateway timeout

方案 调整这几个参数来调大nginx的超时时间。 proxy_connect_timeout proxy_send_timeout proxy_read_timeoutnginx 三个代理超时时间配置 proxy_connect_timeout 60s; Defines a timeout for establishing a connection with a proxied server. It should be noted that thi…

【期末划重点】计算机英语(2)(更新中)

阿金的计算机英语,线下考试版~ 时隔半年,又开始赌徒模式啦 这次尝试用大数据文本分析,精准备考 欢迎补充 2023计英期末考赌徒版 Part 1 词汇题(20题,40分)1、词库说明2、本题答题技巧3、背词方法4、完整词库…

【Python实战】Python采集情感音频

成年人的世界真不容易啊 总是悲伤大于欢喜 爱情因为懵懂而快乐 却走进了复杂和困惑的婚姻 前言 我最近喜欢去听情感类的节目,比如说,婚姻类,我可能老了吧。我就想着怎么把音乐下载下来了,保存到手机上,方便我们业余时…

jdk配置语句以及idea配置问题idea科学使用

一、第一步上链接 官网地址,不过每次都在变版本不过都一样没事: https://www.oracle.com/java/technologies/downloads/ idea2021官网 https://www.jetbrains.com/zh-cn/idea/download/other.html 你可以下载右边付费的版本,如果想下载左边…

IPO观察丨绿源持续推进IPO,这次不止“一部车能骑10年”

近期,国内两轮电动车行业又有新动态。业内老牌企业绿源集团更新招股书,继续推进上市进程,中信建投国际担任保荐人。 其实去年11月,绿源已向港交所递交招股书,只不过受若干原因影响,在今年5月失效。当然&am…

synchronized简单理解

一、简述 1.1 synchronized介绍 synchronized是一种互斥锁,也成为同步锁,它的作用是保证在同一时刻,被修饰的代码块或方法只会有一个线程执行,以到达保证并发安全效果。在JDK1.6以前,很多人称之为重量级锁&#xff0…

作为一名仓库管理人员,如何有效地管理仓库?

作为一名仓库管理人员,如何有效地管理仓库? 有效仓库管理主要可以分为四个方面: 出入库 库存调拨 库存盘点 虚拟库存/实际库存管理 当然仓库管理最基本的硬件条件还是需要准备好的,比如将仓库分一下区域,以便之后商…

layui(3)——内置模块弹出层

弹出层 1.基础参数 使用模块layer layui.use(layer, function(){var layer layui.layer;}); <script>layui.use(layer, function () {var layer layui.layer;layer.open({// layer提供了5种层类型。可传入的值有&#xff1a;0&#xff08;信息框&…

极简操作!跟着官方教程,下载并使用汉化版Figma!

随着云端协作设计工具的发展&#xff0c;Figma 作为一款基于云端的国外云端协作工具&#xff0c;尽管无需下载即可在线使用&#xff0c;但在国内却常常遇到加载缓慢、需要刷新重进的问题。此外&#xff0c;Figma 在实际使用过程中&#xff0c;常常需要搭配其他软件或第三方插件…

vue3+element plus,使用分页total修改成中文

vue3element plus&#xff0c;使用分页total修改成中文 使用element plus的分页功能 el-pagination 的时候&#xff0c;total属性显示是英文 这是我建的一个新项目&#xff0c;总数显示的Total 1000 我们的需求是显示中文&#xff0c;共 1000 条 这个就很尴尬&#xff0c;组件…

JAVA基础,区别于C++

JAVA 基础 1. 数据类型 字节型 byte 1 字节 -128~127 短整型 short 2 字节 -32768~32767 整型 int 4 字节 -2147483648~2147483647 长整型 long 8 字节 -9223372036854775808L~92…

初学Nginx要掌握哪些概念?

文章目录 为什么要使用Nginx&#xff1f;什么是Nginx&#xff1f;Nginx的作用&#xff1f;反向代理负载均衡动静分离 为什么要使用Nginx&#xff1f; 小公司项目刚刚上线的时候&#xff0c;并发量小&#xff0c;用户使用的少&#xff0c;所以在低并发的情况下&#xff0c;一个…

iNotes(WebMail)中的附件显示

大家好&#xff0c;才是真的好。 1995年Domino R4/4.5中加入了HTTP功能&#xff0c;从此便支持从用户从Web浏览器上查看邮件.一开始称之为Domino Web Access&#xff0c;后来更名为IBM Lotus iNotes&#xff0c;简称iNotes&#xff0c; 对于不熟悉Notes/Domino的人来说&#…

达梦数据库dblink测试(DM-ORACLE19c及DM8-DM8)

目录 DM与DM创建DBLINK. 3 一、配置203服务器... 3 1、主服务器203开启mal服务... 3 2、主服务器203配置dmmal.ini文件... 3 3、重启203数据库... 4 二、配置200服务器... 4 三、创建dblink. 4 DM与Oracle数据库创建dblink. 5 一、DM服务器&#xff1a;... 6 1、初始…

祝愿莘莘学子高考顺利!Good luck on your Gaokao!

《登科后》 唐孟郊 昔日龌龊不足夸&#xff0c;今朝放荡思无涯。 春风得意马蹄疾&#xff0c;一日看尽长安花。 Gone are all my past woes! What more have I to say? My body and my mind enjoy their fill today. Successful, faster runs my horse in vernal breeze;…

ArrayList 的底层原理和源码分析

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 推荐&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; 文章目录 一、简介二、…