当前位置:论文写作 > 参考文献 > 文章内容

无人机和四旋翼自考毕业论文范文 无人机和四旋翼毕业论文怎么写2万字有关写作资料

主题:无人机和四旋翼 下载地址:论文doc下载 原创作者:原创作者未知 评分:9.0分 更新时间: 2024-04-15

无人机和四旋翼论文范文

《四旋翼无人机地面站软件系统的设计和实现》

本文是无人机和四旋翼自考毕业论文范文与软件系统相关专升本毕业论文范文.

摘 要: 针对我校无人机应用专业学生操作无人机能力强而对地面站的实现原理理解不够深入的情况,以四旋翼无人机地面站为对象,以Qt5.4为开发平台,分别对地面站串口通讯、飞机虚拟仪表、地图浏览器、航点规划,以及数据存储等进行了设计,较完整地实现了地面站的各项功能.此设计具有一定的实用性,有助于加强学生对地面站实现原理的理解,提高他们的学习兴趣,为将来从事无人机工作夯实基础.

关键词: Qt; 无人机; 地面站; 系统设计

Abstract: Aiming at the phenomenon that the students of drone application specialty he strong ability to operate drones, but do not he a deep understanding of the ground station's implementation principles, this paper takes the quad-rotor U ground station as the design object and uses Qt5.4 as the development platform, to design the serial communication, aircraft virtual instrumentation, map browser, waypoint planning and data storage etc. of a ground station, which realizes the most functions of the ground station. The design is practical, and is helpful to students' understanding of the ground station implementation principles and their learning interest, which lays the foundation for the future U work.

Key words: Qt; U; ground station; system design

0 引言

近年來,我国无人机产业日趋火热,小到航空摄影、航空测绘,大到农业植保、电力巡查、军警侦查等领域,无人机的应用越来越普及,于此同时,无人机地面站的发展也与时俱进,从美、俄等无人机发达国家发展现状和趋势来看,无人机地面站正朝着通用化、智能化、单站多机的方向发展.

无人机地面控制站软件技术是一项融合了图像处理、地理信息系统、数据传输与处理,以及先进控制等多种尖端技术为一体的先进技术[1].目前多数地面站品牌间不通用,不能跨平台,导致在实际使用上产生诸多不便,考虑到Qt软件在图形界面开发上的优势,可实现“一次编写,随处编译”[2],能在几乎所有的操作系统上运行,本文以Qt5.4为开发平台、以四轴无人机地面控制站主要功能的实现为目标,通过完成设计,加强了我校无人机专业学生对地面站实现方法的理解,提高了他们的学习兴趣,为将来从事无人机工作夯实了基础,具有一定的实用性.

1 地面站总体设计

地面站布局如图1所示,主要由五个模块组成:①地面站与无人机或遥控器串口通讯模块;②地图显示模块;③航点信息模块;④状态显示模块;⑤数据存储模块.本文将围绕五大功能模块进行详细设计.

1.1 通讯模块设计

无人机与地面站实现通讯,有以下几种方案:①无人机使用USB线和地面站进行串口通讯;②无人机通过无线电台与地面站进行无线通讯;③无人机通过WIFI与地面站进行无线通讯等.本设计采用如图2所示的架构,四轴和遥控器分别通过UsbLink链路与地面站通讯,遥控器与四轴之间通过无线RadioLink链路进行通讯,本文重点介绍UsbLink链路的通信设计.

⑴ 串口链路(UsbLink)数据帧格式

RadioLink链路主要是实现遥控器将地面站发送的命令转发给四轴,同时将四轴的姿态信息上传到地面站,四轴平时由遥控器进行飞行控制,UsbLink链路采用虚拟串口通信方式,传输含帧头和校验位的数据包,其数据帧格式如表1所示.

⑵ 串口线程的创建及数据解析

线程也被称为“轻量级进程”,一个线程只有一个内核对象和一个栈,所需内存比较少,所以在编程时经常采用多线程技术来处理实际问题,从而避免因创建新进程而带来的系统资源消耗问题[3],本设计通过Qt的run()函数创建串口子线程的方法来实现串口收发数据,从串口线程内发出的信号,可以与主线程(UI界面)中的槽函数进行连接,从而可以在主线程中对数据进行处理.由于Qt5.4已集成了串口通信类QSerialPort和QSerialPortInfo,前者提供了操作串口的各种接口,后者提供了计算机中可用串口的各种信息,通过创建类的对象和方法很容易实现串口通信,串口子线程创建代码如下:

程序通过start()函数启动线程,在线程中既可以通过创建一个定时器信号(心跳程序)来连接槽函数读取数据,也可以在线程中通过创建串口对象myCom信号来连接槽函数读取数据,方法如下:

从串口读取数据后,通过先创建一个Data_Receive_Prepare函数来预解析数据,将读取的数据进行一次格式解析,格式正确后再创建Data_Receive函数来解析数据,函数中的参数就是符合协议格式的一个数据帧,以下是一行从地面站串口截取到的数据:

按照协议,开头0xAA两字节表示接受数据,01表示功能字,代表采集的数据是飞机姿态信息,0C表示数据的长度为12个字节,其中0xFFEB两个字节代表ROL,0xFFCA代表PIT,0x0D6C代表YAW,0x000002代表飞行相对高度,0x61代表飞行模式,0x0000代表加锁、解锁,求(0xAA+等+0x61+.0x00)之和为0x5F0,取低8位0xF0,正好等于最末一个字节,表示校验和正确.

由于各种数据精度要求不同,数据类型的定义也不同,比如四轴姿态数据roll、pitch、yaw是float型,高度alt是int32型,为了加快程序运算,一般会将float型数据转换为int型,这就涉及到数据量纲的转换,当数据小数点位数较多时可以先将数据放大一定倍数,获取实际值时再缩小相应的倍数,在发送大于一个字节的数据类型时,需要把数据拆分成单独字节进行发送.

1.2 航空虚拟仪表

在Qt中绘制虚拟仪表,主要有两种方法,一种是利用自带的QPainter类来进行独立绘制,另一种就是安装Qt的扩展Qwt(Qt Widgets for Technical Applications),它是一个基于LGPL版权协议的开源项目[4],无论是独立绘制还是通过第三方插件绘制,仪表盘通常由以下几个部分组成:表盘、指针、刻度、刻度文字、仪表名称等,采用Qwt扩展来设计航空仪表需要先到网站下载程序后安装,安装成功后会在Qt设计师界面出现Qwt widgets控件,需要绘制航向、俯仰、滚转、速度等仪表时,只需从QwtDial工具中拖出所需仪表控件,并修改控件的属性便可.

本设计采用Qt的2D绘图类[5]QPainter类绘制航空虚拟仪表较Qwt扩展灵活,绘制效果如图3所示.

其绘制的方法是首先在窗口界面创建一个widget部件,然后再创建一个基于Qwidget的仪表类,在仪表类中通过创建函数的方法分别绘制轮廓、刻度、指针和文字,最后将widget部件提升为该仪表类.无论采用哪种方法设计虚拟仪表,要让仪表指针根据姿态数据变化而转动,在程序中必须设计心跳程序(定时器)和仪表数据更新程序(UpdateAngle()),通过创建连接函數connect,将定时器信号(slot)与槽函数UpdateAngle()连接起来,从而实现仪表指针的实时更新.

1.3 地图加载及航点绘制

⑴ 地图的加载

无人机地面站除了与飞机实时通信之外,通常都需要提供可视化的地理位置信息,地图加载就成为了地面站的一项必要任务,地图一般分为在线地图和离线地图,在线地图有高德、百度等,以高德地图为例,Qt加载高德在线地图,首先需要在工程文件中添加webkit,然后创建一个QwebView控件webView,并添加如下代码:

其中gaode.html是高德地图的在线文档,支持绘制折线和多边形区域,使用在线地图的用户需要去申请使用者和key值,离线地图则需要使用工具下载地图瓦片,它自身不支持折线和多边形区域绘制,需要使用Qt编程来实现.

地面站地图通常需要具备地图缩放和坐标显示功能,地图缩放可以通过创建slotZoom()函数实现.Qt有三种坐标:视图坐标、场景坐标和地图坐标,Qt的GraphicsView框架提供了三种坐标之间的变换函数,使用Qt在浏览器窗口绘制航点轨迹时,要显示几何坐标和实时的地图坐标,需将视图坐标、场景坐标和地图坐标之间作一一映射,其实现的关键要点是地图浏览器窗口长和宽的一半是场景坐标的原点,地图右下角经纬度与左上角经纬度之差的一半与场景坐标原点重合.

⑵ 航点规划设计

航点设计的主要任务是航点信息的显示和添加,航点信息包括当前位置信息和航点规划信息,位置信息有:定位状态,GPS卫星数量,经度、纬度,回航角,回航距离等,规划信息有:序号、下一步的动作、经度、纬度、高度、速度、时间、航向等,在地图上添加航点与显示航点的关键技术是实现Qt WebKit与JaScript的交互,添加航点是Qt调用JaScript函数,显示航点是JaScript调用Qt函数,Js调用Qt时,通过QwebFrame中的addToJaScriptWindowObject方法向Jascript提供对象,Qt调用Js时,QWebFrame提供了一个evalueJaScript()方法,可以直接调用JaScript函数.

1.4 数据的保存与读取

地面站中的航点信息、飞行状态和飞行数据常常需要保存和回放,Qt可以通过文件QFile类或者数据库SQLite来存储数据,采用文件保存数据有两种格式:①文本文件(QTextStream流);②数据文件(QDataStream流),其中QTextStream用于文本数据的快速读写,QDataStream用于二进制数据的快速读写,需要注意的是保存文本格式时文本与文本之间需要用分隔符隔开,否则会导致数据在回放时发生错位,同时保存数据与读写数据时的数据类型必须一致,本设计采用QdataStream实现数据的保存与回放.

2 结束语

本文从地面站布局入手,针对串口通讯、飞机虚拟仪表、地图浏览器、航点规划以及数据存储等方面进行了设计,较完整地实现了地面站主要功能,特别是利用Qpainter类绘制2D虚拟仪器的方法,能够用来实现任何复杂虚拟仪表的绘制,为其他虚拟仪表的设计提供了一个良好的借鉴!考虑到地面站界面运行是系统的主线程,地面站串口通讯中包含了大量的计算,对系统的流畅性有较大影响,设计中采用了Qt的多线程技术对串口通讯模块单独创建了子线程,保证了整个地面站运行的流畅性!

就本地面站设计而言,还有无线通讯模块、姿态波形显示、雷达避障、激光导航、虚拟仪表裁剪、3D图形显示等模块需要今后进一步深入研究,从而不断增强地面站软件的实用性.

参考文献(References):

[1] 刘智腾.小型无人机地面站软件设计与实现[D].南昌航空大学信息工程学院,2015.

[2] 陆文周.QT5开发及实例[M].电子工业出版社,2014.

[3] 周金萍,周金萍,徐丙立等.Windows系统编程[M].人民邮电出版社,2002.

[4] 刘洋,韩泉泉,赵娜.无人机地面综合监控系统设计与实现[J].电子设计工程,2016.24(14):110-111

[5] 卢华伟,秦品健,郑锐.基于Qt/Qwt的操作监控系统的设计与实现[J].微计算机信息,2010.26(1):72-74

归纳总结,此文是关于经典无人机和四旋翼专业范文可作为软件系统方面的大学硕士与本科毕业论文无人机和四旋翼论文开题报告范文和职称论文论文写作参考文献.

无人机和四旋翼引用文献:

[1] 无人机和四旋翼自考毕业论文范文 无人机和四旋翼毕业论文怎么写2万字
[2] 直升机旋翼桨叶气动干扰论文范文 直升机旋翼桨叶气动干扰类学士学位论文范文5000字
[3] 四旋翼和ros论文范文素材 四旋翼和ros有关论文参考文献范文2万字
《无人机和四旋翼自考毕业论文范文 无人机和四旋翼毕业论文怎么写2万字》word下载【免费】
无人机和四旋翼相关论文范文资料