平台使用篇 | RflySim飞控底层实验平台配置介绍

news2024/12/22 20:41:49

本课程提供的实验平台总体可以分成两个部分:硬件平台和软件平台。本讲简要介绍各个部分的基本组成及实验开发流程。

平台使用篇-RflySim飞控底层实验平台配置介绍

01

 电脑配置

1.1推荐配置

•系统:Windows 10 x64系统(版本大于等于1809)

•CPU:Intel i7 八代处理器及以上,或同等性能AMD处理器

•显卡:独立显卡NVIDIA GTX2060及以上,或同等性能AMD显卡

•内存:容量16G及以上,频率DDR3 1600MHz及以上

•硬盘:剩余容量40G及以上(推荐固态硬盘)

•显示器:分辨率1080P(1920*1080)及以上(推荐双屏幕)

•接口:至少有一个USB Type A接口(可用扩展线)

•MATLAB:2017B或以上版本(推荐2017b版本)

注:电脑配置应该越高越好,低配电脑也可以运行本平台Demo,但是可能出现控制不稳定、实验效果不佳等问题。MATLAB请提前自行安装。

1.2最低配置

最新版平台支持更低配电脑:

•系统:Windows 10 x64系统(版本大于等于1809)

•CPU:Intel i5 十代处理器及以上,或同等性能AMD处理器

•显卡:英特尔集成显卡UHD630及以上,或同等性能AMD显卡

•内存:容量16G及以上,频率DDR3 1600MHz及以上

•硬盘:剩余容量40G及以上(推荐固态硬盘)

•显示器:分辨率1080P(1920*1080)及以上(推荐双屏幕)

•接口:至少有一个USB Type A接口(可用扩展线)

•MATLAB:2017B或以上版本(推荐2017b版本)

02

 软件平台

本平台附带的仿真软件包内有一键安装脚本,只需运行安装命令,即可完成所有软件的安装与配置。

2.1控制器设计与仿真

MATLAB

本平台支持MATLAB 2017b以上所有版本,目前最高版本为MATLAB 2023a 推荐安装版本为:MATLAB 2017b (平台大部分例程基于此版本开发,若需更高版本,会在对应的readme中注明)安装时推荐勾选所有工具箱(全功能安装)。如果条件受限只能部分安装,本实验必须的工具箱包括:

lightGear飞行模拟器

一款非常受欢迎的开源飞行模拟器软件,可以通过UDP接收Simulink发送的飞行状态,方便地观测Simulink仿真时飞机的飞行状态。

2.2代码自动生成与固件编译

Pixhawk Support Package(PSP)工具箱

Mathworks公司官方为Pixhawk自驾仪推出一个工具箱,用于将Simulink中设计的控制算法生成C代码并编译上传到Pixhawk自驾仪硬件。

PX4 Firmware源代码

PX4 是一款开源飞行控制软件系统,它运行在Pixhawk系列自驾仪硬件平台上,构成了Pixhawk PX4自驾仪软硬件平台,是目前世界范围内广泛应用的开源无人机自驾仪。

PX4 Toolchain编译环境

用于将PX4原生代码和PSP工具箱生成的控制器代码编译成.px4格式的固件,然后上传并烧录到Pixhawk自驾仪硬件中(类似于重装系统的过程),重新启动后就会自动运行PSP工具箱生成的控制算法。

代码阅读与修改-Visual Studio Code

用于阅读与修改PX4源代码,是一款小巧的C/C++集成开发环境,功能类似于Eclipse IDE for C/C++ 。

2.3软件在环

QGroundControl(QGC)地面站

用于在多旋翼起飞前对Pixhawk自驾仪进行传感器校准和参数调整等初始化工作,以及在飞机飞行过程中通过无线数传接收飞行状态并实时发送控制指令。

CopterSim 实时运动仿真软件

北航可靠飞行控制研究组开发的针对Pixhawk PX4自驾仪平台的硬件在环仿真软件,可以在软件中配置多旋翼的模型,通过USB串口与Pixhawk自驾仪连接来实现硬件在环仿真,达到室内模拟室外飞行测试的效果。

3DDisplay/RflySim3D/RflySimUE5三维可视化视景软件

北航可靠飞行控制研究组开发的多旋翼三维显示软件,通过UDP接收CopterSim的飞行数据来实时显示多旋翼的姿态与位置。CopterSim仿真程序与显示软件两者共同构成了硬件在环仿真平台,两者分布式独立运行机制保证了多机多视角的仿真成为可能。此外,基于UE4/UE5开发了更逼真的3D场景引擎RflySim3D/RlySimUE5,可用于后期的图像处理需求。

注:目前平台主要使用RflySim3D,后期会迁移至RflySimUE5,如电脑配置较低,推荐使用3DDisplay。

03

 硬件平台

由于控制算法最终将会在真机上进行部署与飞行实验,一套可完成基本飞行任务的多旋翼硬件平台是必不可少的。

3.1地面计算机

主要承担两部分工作• 飞行前的控制算法开发与仿真验证(开发与仿真计算机功能);• 实际飞行实验过程中用于地面发送控制指令以及实时显示飞行状态(地面站功能)。

3.2自驾仪系统

作为控制软件的运行平台,具有强大的计算性能与丰富的传感器,来获取飞行状态并计算输出动力系统的控制指令,实现多旋翼的飞行控制。本书选用目前应用广泛的Pixhawk 系列和卓翼H7开源自驾仪系统。其中,Pixhawk是一个独立的开源硬件项目,致力于为教育、爱好和开发者提供易用、高品质且低成本的自驾仪硬件。针对不同的飞行任务、性能需求和成本需求,Pixhawk提供了一系列的自驾仪硬件产品,极大地推动了多旋翼无人机行业的发展。

3.3遥控器系统

包含遥控器、接收机、充电器等,用于将地面控制人员(飞控手)的操控指令发给自驾仪以实现多旋翼的飞行操纵。

3.4动力系统

包含电池、螺旋桨、电子调速器(电调)和电机,用于接收自驾仪发送的PWM控制指令,通过螺旋桨旋转产生拉力与力矩,控制多旋翼的运动。

3.5机架系统

包含机身、机臂、起落架等,用于承载负载、动力系统和自驾仪,需要优良的气动和结构强度来保证飞行任务可靠顺利的完成。

04

 实验开发流程

4.1软件在环

 整个阶段都在MATLAB环境下进行,利用给定多旋翼仿真模型和例程,在Simulink中进行控制算法设计,并正确连接模型和控制器,确保输入输出信号与实际多旋翼系统一致。类似于实际多旋翼系统,多旋翼模型将传感器数据或状态估计信息(例如,姿态角、角速率、位置和速度等)发送给控制器,控制器将每个电机PWM控制指令发回给模型,从而形成一个软件在环仿真闭环系统。在本阶段,读者可以观察控制性能,自行修改或设计控制器来达到期望的性能需求。

4.2硬件在环

利用给定的模型和例程,进行实验。模型在硬件在环多旋翼飞行器仿真器里,而控制器上传到Pixhawk飞控硬件环境下,其中通讯过程是通过串口线直接连接。模型通过串口线将姿态角、姿态角速率、位置和速度发送给控制器,控制器通过串口线将每个电机PWM控制指令发回给模型,从而形成一个闭环。将Simulink多旋翼模型参数导入到CopterSim中,并将Simulink控制器算法生成代码下载到Pixhawk自驾仪,然后用USB实体信号线替代Simulink中的虚拟信号线。CopterSim将传感器数据(例如,加速度计、气压计、磁力计等)通过USB数据线发送给Pixhawk系统;Pixhawk系统中的PX4自驾仪软件将收到传感器数据进行滤波和状态估计,将估计的状态信息通过内部的uORB消息总线发送给控制器;控制器再通过USB数据线将每个电机的PWM控制指令发回给CopterSim,从而形成一个硬件在环仿真闭环。

4.3实飞测试

 在这个阶段,CopterSim的虚拟仿真模型进一步由真实多旋翼飞行器替代,传感器数据直接由传感器芯片感知飞行运动状态得到,控制器信号直接输出给电机,从而实现真实飞机的控制。需要注意的是,无论是硬件在环仿真还是软件在环仿真,其仿真模型都难以与真实飞机保持完全一致,因此进一步的参数调整也是必要的。

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

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

相关文章

IIC通信原理(软件实现)-GD32

IIC通信原理-GD32 硬件连接 数据变换规则 起始信号和结束信号 应答信号 数据帧格式 #include "my_i2c_soft.h" #include "systick.h"void my_i2c_w_SDA(uint8_t bit_value) {gpio_bit_write(I2C_SOFT_PORT, I2C_SOFT_SDA_PIN, (bit_status)bit_val…

【软件下载】音频ASIO驱动下载

一,简介 在高速USB Audio使用中,需要再windows电脑上安装ASIO驱动,用来进行高速音频流的传输,本文主要介绍如何下载安装ASIO驱动。供参考。 二,安装步骤 2.1 软件下载 下载地址:http://www.asio4all.co…

【Python爬虫与数据分析】UDP/TCP通信协议

目录 一、网络编程基础 二、UDP协议 三、TCP协议 一、网络编程基础 数据编码与解码 str -> bytes:encode编码,发送信息的时候用encode编码bytes -> str:decode解码,打印接收的信息用decode解码 test 你好世界en_code…

C语言switch语句与循环结构

1、循环输入5个元素&#xff0c;输出最大值 #include <stdio.h> #include <string.h> int main(int argc, const char *argv[]) {int num,max;for(int i1;i<5;i){printf("请输入第%d个数&#xff1a;",i);scanf("%d",&num);if(i1)maxn…

CSS 两行文字两端对齐与字符间距的处理

前言 &#x1f44f;CSS 文字对齐与字符间距的处理&#xff0c;在这里&#xff0c;你可以了解到文字渐变&#xff0c;letter-spacing&#xff0c;text-align&#xff0c;text-align-last&#xff0c;filter等&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关…

LabVIEW脉冲检测实现

文章目录 前言一、脉冲检测的原理二、代码实现1、前面板①、输入波形相关参数②、脉冲检测结果 2、程序框图 三、代码自取结论 前言 本节通过 labview 软件实现先导脉冲检测的功能&#xff0c;从而获取先导脉冲的频率、先导脉冲与线性调频信号的延时的相关信息。 一、脉冲检测…

多实例部署和Nginx+Tomcat负载均衡、动静分离

目录 一、Tomcat多实例部署 1.安装好 jdk 2.安装 tomcat 3.配置 tomcat环境变量 4.修改 tomcat2 中的 server.xml文件&#xff0c;要求各 tomcat 实例配置不能有重复的端口号 5.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件&#xff0c;添加 tomcat 环境变量 6.启…

Vue和React的区别?

目录 共同点 1. 数据驱动视图 2. 组件化 3. Virtual DOM 不同点 1. 核心思想不同 2. 组件写法差异 3. diff算法不同 4. 响应式原理不同 5. 其他不同点 首先找到 Vue 和 React 的共性&#xff0c;它们被用于解决什么问题&#xff0c; 然后再挖掘各自独特的个性、设计原…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(6月 30 日论文合集)

文章目录 一、检测相关(8篇)1.1 Detect Any Deepfakes: Segment Anything Meets Face Forgery Detection and Localization1.2 Sustainable Palm Tree Farming: Leveraging IoT and Multi-Modal Data for Early Detection and Mapping of Red Palm Weevil1.3 Evaluation of Env…

【DP+博弈】ABC195 E

E - Lucky 7 Battle (atcoder.jp) 题意&#xff1a; 思路&#xff1a; Code&#xff1a; #include <bits/stdc.h>//#define int long longusing namespace std;const int mxn2e510; const int mxe1e610; const int mod1e97; const int Inf0x3f3f3f3f;string s,x;int N;…

【设计模式】第十九章:访问者模式详解及应用案例

系列文章 【设计模式】七大设计原则 【设计模式】第一章&#xff1a;单例模式 【设计模式】第二章&#xff1a;工厂模式 【设计模式】第三章&#xff1a;建造者模式 【设计模式】第四章&#xff1a;原型模式 【设计模式】第五章&#xff1a;适配器模式 【设计模式】第六章&…

VI-SLAM系统对比

任何类型的相机对运动物体&#xff0c;视线遮挡&#xff0c;光照剧烈变化等恶劣情况下都不够鲁棒&#xff0c;而惯性测量单元&#xff08;IMU&#xff09;对环境基本没有要求&#xff0c;并且IMU可以提供高频的位姿估计&#xff0c;视觉一般只能提供低频的位姿。依据视觉与IMU的…

前后端实现导出导入功能

目录 导出 1.后端代码 &#xff08;1&#xff09;相关依赖 &#xff08;2&#xff09;自定义实体类 &#xff08;3&#xff09;写一个查询方法list &#xff08;4&#xff09;写导出接口 2.前端代码 3.效果示例 导入 1.后端代码 &#xff08;1&#xff09;写导入接口 …

在SpringBoot中对es集群的基本操作

在创建SpringBoot项目之前要先把上一篇文档搭建的集群打开,然后再创建SpringBoot项目,不会创建的可以访问这里 快速创建SpringBoot项目 提前准备: 1.导入pom依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starte…

23西安电子科技大学光电工程学院851考研录取情况

01、光电工程学院各个方向 02、23光电工程学院一志愿考研录取情况总览、平均分 PS&#xff1a;在23年&#xff0c;西电物理与光电工程学院拆分为两个院&#xff0c;分别是&#xff1a;物理学院和光电工程学院。其中物理学院改考602高等数学872普通物理&#xff0c;光电学院专业…

六、盒子模型

盒子模型 1、元素分类 1、元素分类 行内元素&#xff08;内联元素&#xff09;inline 从左向右&#xff0c;从上到下&#xff0c;依次显示 一个挨着挨一个 以下属性无效&#xff1a;width、height、maring、pading 行内元素内部无法嵌套块级元素 行内元素列表 a strong span …

leetcode 160.链表相交

⭐️ 往期相关文章 &#x1f4ab;链接1&#xff1a;链表分割 &#x1f4ab;链接2&#xff1a;链表中倒数第k个结点(快慢指针问题) &#x1f4ab;链接3&#xff1a;leetcode 876.链表的中间结点(快慢指针问题) &#x1f4ab;链接4&#xff1a;leetcode 206.反转链表 &#x1f4…

Servlet 的常用 API + 综合运用【表白墙】

前言 小亭子正在努力的学习编程&#xff0c;接下来将开启JavaEE的学习~~ 分享的文章都是学习的笔记和感悟&#xff0c;如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话&#xff0c;烦请点赞关注支持一波, 感激不尽~~ 目录 前言 一、HttpServlet Servlet 的生…

医学图像分割的全卷积transformer

文章目录 The Fully Convolutional Transformer for Medical Image Segmentation摘要本文方法实验结果 The Fully Convolutional Transformer for Medical Image Segmentation 摘要 我们提出了一种新的Transformer &#xff0c;能够分割不同模式的医学图像。医学图像分析的细…

【机器学习核心总结】什么是EM(最大期望值算法)

什么是EM(最大期望值算法) 在现实生活中&#xff0c;苹果百分百是苹果&#xff0c;梨百分白是梨。 生活中还有很多事物是概率分布&#xff0c;比如有多少人结了婚&#xff0c;又有多少人有工作&#xff0c; 如果我们想要调查人群中吸大麻者的比例呢&#xff1f;敏感问题很难得…