基于MAVLink通信协议的水下机器人监控软件设计毕业论文
2020-02-19 09:16:54
摘 要
陆地资源开发情况的日益紧张使人类将视线逐步转向海洋资源的开发,海洋中蕴藏着丰富的生物资源、能源资源以及金属资源。水下机器人是人类探索海洋水下情况的主要工具之一,有助于我们更好的了解海洋,从而进行更好地开发。开发一款水下机器人监控软件,使其能够实时、可靠地完成水下机器人上位机与下位机之间的通信,具有一定的实际工程应用价值。
本文的主要研究内容是设计并开发一款基于MAVLink通信协议的水下机器人的上位机监控软件。首先详细了解水下机器人的发展历史和国内外研究现状并明确自己的设计目标,然后对研究对象水下机器人BlueRov2 heavy的硬件架构进行了解,之后再提出上位机设计的整体方案,需要实现的主要功能包括:(1)对下位机传来信息的处理分析及显示;(2)深度、位姿随时间变化实时曲线的绘制;(3)手动控制、PID自动定深控制;(4)重要数据存储。使用VS2013的编译环境,并采用基于对话框的MFC应用程序框架,结合多线程以及网络编程的方法对上位机软件进行开发,最后通过干态实验、船池实验对上位机监控软件的综合性能进行测试分析与验证。
关键词:水下机器人;MAVLink;监控软件;PID控制
Abstract
With the increasingly tense situation of land resources development, people tern their attention to the development of marine resources gradually. There are rich biological resources, energy resources and metal resources in the sea. UUV(Unmanned Underwater Vehicle) is one of main tools for human to explore the underwater of the ocean, which helps us to better understand the ocean . Then we can develop the oceans better. Developing an UUV monitoring software to enable real-time and reliable communication between the upper-level robot and the lower-level machine of the underwater robot, which has certain practical engineering application value
This paper aims at designing and developing an UUV monitoring software, which based on MAVLink communication protocol. For UUV, we have a detailed understanding of the development history and the status quo of research at home and abroad. Then we understand the hardware architecture of the UUV BlueRov2 heavy and clarify our design goals. Next we propose the overall scheme of the monitoring software design. The main functions that need to be realized include: (1) processing analysis and display of information transmitted from the lower computer; (2) drawing real-time curves of depth and attitude with time; (3) manual control and PID automatic depth control; 4) Saving important data. Using VS2013's compilation environment, and using the dialog-based MFC application framework, combined with multi-threading and network programming methods to develop the monitoring software. Finally, through the dry state experiment and the ship pool experiment, we test and analyze the comprehensive performance of the monitoring software.
Key Words:UUV;MAVLink;monitoring software;PID control
目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1研究背景 1
1.2国外研究现状 2
1.3国内研究现状 2
1.4主要研究内容 3
第2章 水下机器人概述 4
2.1 pixhawk 以及树莓派 4
2.2载波模块 5
2.3摄像头及传感器 6
2.4水下机器人整体框架 7
第3章 上位机监控软件设计方案 8
3.1开发环境 8
3.2 MAVLink通信协议 9
3.2.1协议特点 9
3.2.2序列化 9
3.2.3主要消息类型 10
3.3上位机功能 10
3.3.1动作命令模块 11
3.3.2参数返回模块 12
3.3.3绘图模块与数据存储模块 12
第4章 上位机软件的开发 13
4.1系统实现流程 13
4.2软件通信实现 13
4.2.1通信模型 13
4.2.2 套接字介绍 14
4.2.3 UDP 14
4.2.4基于UDP的socket编程 14
4.2.5基于MAVLink协议的数据收发实现 15
4.3控件 15
4.3.1 MFC控件 16
4.3.2绘图控件 16
4.3.3数据存储控件 17
4.4多线程 17
4.5 PID控制算法 18
第5章 实验及其结果分析 21
5.1干态实验 21
5.2船池实验 22
5.2.1手动控制 23
5.2.2定深控制 23
第6章 总结与展望 26
6.1总结 26
6.2展望 26
参考文献 27
致谢 28
第1章 绪论
1.1研究背景
21世纪又被人称为“海洋世纪”,随着社会的发展与人口的剧增,陆上资源的开发与人类需求的矛盾不断增加,于是很多国家将目光转向海洋资源的开发。海洋约占地球总面积的71%,蕴藏着丰富的矿产资源与生物资源,为了能够更好的开发与利用海洋资源,首先便需要对海洋环境进行探测,同时促进了水下技术的发展。伴随着计算机技术、水声定位导航、水下微光电视、遥控技术等的快速发展,世界多个国家水下机器人技术同时开始较快的发展进程[1]。
水下机器人(Underwater Vehicle),它是目前进行海洋探索的一种主流工具,具有体型较小、工作噪声小和磁场特征弱等优势[2]。传统上将水下机器人分为两大类,分别是遥控式水下机器人和自主式水下机器人。 遥控式水下机器人一般通过电缆进行供能以及命令传输,通过岸上(水面)基站对其进行实时控制,但是由于缆绳的限制使其灵活性和活动范围有一定影响;自主式水下机器人一般自身携带电源,并根据预编程序来自主完成水下作业任务,能够根据水下的状况做出简单的控制决策,因此其相对属于智能水下机器人,其活动范围和连续工作时间受到电池技术的限制。
水下机器人发展起始于上世纪五六十年代,由于受当时电子以及通信等技术的限制而发展缓慢。在1966年美国的CURV水下机器人将丢失在西班牙沿海868米水深的氢弹打捞上来,开创了水下机器人完成水下作业任务的先例,此后水下机器人技术才受到广泛的重视。水下机器人能够代替人类进入到复杂、多变、危险的水下环境中,按照设定程序自主或者岸上操作人员的指令完成各项任务,采用无人水下机器人探测相对于潜水员探测以及载人水下航行器探测来说具有更高的安全性和经济性,在保障人身财产安全和提高任务完成效率方面具有重大意义。随着技术的不断发展,水下机器人越来越多的应用到除海洋探测之外的情况中,水下机器人在水下打捞救助、水质监测、堤坝检修、船体检修、水下管道检查、航道检查以及水产渔业养殖等方面都有着重要的应用前景[4]。
对于遥控式水下机器人来说,其上位机部分是十分重要的,它的良好运行能够最大程度上保证水下机器人工作过程中的稳定性与安全性,这也是水下机器人能够完成海水中作业的前提。上位机软件通过对水下机器人发送控制指令,使其能够按照操作者的意图进行运动,同时上位机软件可以对水下机器人的状态参数进行实时接收显示并保存,用以保证操作者对水下机器人的安全作业进行监视,当水下机器人出现故障时,操作者可以及时发现并解决问题。
1.2国外研究现状
目前,国外已有大批著名研究机构与学者开发出多种具有代表性的水下机器人。早在1922年,美国麻省理工学院的水下机器人研究室设计开发出一种自主水下机器人Odyssey来用于海洋探索,之后其实验室又研制出OdysseII、OdysseIV、Sea Squirt等多种型号的水下机器人,其中最新型号OdysseIV经过多年的不断改进,重量只有25KG当时能够卸载20KG的负载,流线型的外壳结构能够使其在水下快速运动,同时其能够实现精确地水中悬停[5]。葡萄牙波尔图大学研制出一种名为TriMARES的混合型(自主/遥控)水下机器人,它可以满足对大型水库检查和定期检测的要求,TriMARES的动力由七个独立的推进器提供,没有控制面,因此能够悬停在水柱中,因此可以靠近底部导航,或者对水下结构进行近距离检查[6]。在小型商用水下机器人方面,美国VideoRay LLC公司与SeeByte公司合作研发了一种小型低成本的名为SeeTrack Copilot 的ROV,工作范围能够达到300米,产品所展示的原型技术在水下矿山应对措施和水下考古学等各种应用中,使其成为潜水员替代品提供了可能[7]。其他一些研究单位研制的水下机器人如英国南安普顿国家海洋科学中开发的Autosub系列水下机器人在北大西洋伊比利亚深海平原进行探测时的下潜深度可达5600m;俄罗斯海洋科技研究院开发的MT-88 的下潜深度达到了 6000 米,其搭载设备包括摄像机和照相机等;日本东京大学开发的水下机器人R2D4其最大下潜深度为4000米,主要是应用于深海矿藏的探测以及海底地形达监测建模;美国海军研究生院AUV研究中心ARIES号水下机器人可作为水下探测的信息平台,同时也能够作为为多AUV协同工作提供通信服务的系统控制中心[8,9]。
1.3国内研究现状
可以看出,国外的水下机器人研究状况已经属于相对成熟状态,很多机器人采用先进的控制技术以及监控、导航、定位系统,使其能够在多种应用场景内处于实用阶段。国内主要的水下机器人研究机构有沈阳自动化研究所、上海交通大学、哈尔滨工程大学等。国内对水下机器人的研究最早始于上世纪八十年代,由蒋新松院士牵头,中国科学院沈阳自动化研究所 研制出中国第一款遥控式水下机器人—“海人一号”,1985年成功下潜,深度199米[10]。之后国内九十年代开始自主式水下机器人的研究工作,“探索号”、“CR-01”、“CR-02”等成功下潜,其中CR-02号2006年在南海下潜至6000米[9]。哈尔滨工程大学研制的“智水”系列水下机器人能够自主规划安全航线,目标识别绘图等多项功能,达到军用先进水平,后来哈尔滨工程大学又研制出一款可用于水下堤坝测量的水下机器人;近年来上海交通大学研发的智龙和潜龙系列水下机器人,其中智龙11000的最大设计下潜深度达到11000米,表明我国水下机器人技术已经达到世界领先水平[4]。此外,国内还有许多其他研究单位对水下机器人展开研究,大多数研制的为遥控式水下机器人,此外大部分仍处于试验探索阶段,对水下机器人的商用化尚有一段距离。
1.4主要研究内容
对于遥控式水下机器人来说,水下环境恶劣多变,需要水面操作者对水下机器人的位姿和状态信息进行掌控,能够及时对水下机器人面临的突发状况发出命令以进行控制,因此一个良好的水面和水下两级监视控制系统是至关重要的,同时为了增强操作者的临场感,也需要一个直观可靠且易于操作的人机交互界面。目前的遥控式水下机器人主要以CAN 总线、RS-485 通信和网络通信为主[11]。MAVLink(Micro Air Vehicle Link)是一种2009年发布,主要用于小型无人载具的轻量级通讯协议,可靠性比较好,提供了用于检测数据包损坏及其丢失和数据包身份验证的方法,且通用性和可移植性非常好,它的开源特性使也其广泛应用于各项研究任务之中。
目前的MAVLink协议大多应用于无人机方面[16]-[18],例如赖七生保于MAVLink协议提出了一套无人机与地面站,无人机系统与云服务区和机群之间的通讯方案,并且开发相关监管系统与服务器对该方案进行验证[12]。骆贞平研究MAVLink协议并设计出一套通信协议电路,使其成功应用于多旋翼无人机控制系统[13]。杨青基于MAVLink协议开发了一套可以用于高压电线巡检的工业无人机的地面站系统[14]。虽然近年来MAVLink协议在无人机领域应用迅速普及,但是目前来说,MAVLink协议在水下领域应用较少,李峰采用MAVLink协议开发出一种用于无人驾驶水样采集船的通讯系统[15]。开发一种基于MAVLink通信协议的水下机器人监控软件对水下机器人的研发和使用具有一定的现实意义和实际工程应用价值。
本文的具体内容如下:第一章绪论对水下机器人的研究背景以及国内外的发展现状进行介绍并提出自己的主要研究内容;第二章水下机器人概述对研究对象BlueRov2 heavy的硬件部分及其联系进行介绍;第三章上位机监控软件设计方案对软件开发环境以及MAVLink协议进行描述,还对上位机所需功能设计方案进行分析制定;第四章上位机软件的开发详细地介绍软件开发过程中所需要使用的各方面技术,本章也是整篇文章的核心部分;第五章实验及其结果分析对开发完成的软件的综合性能进行初步实验验证并对其结果进行分析;第六章对全文进行总结,并对后期待完成内容进行描述。
第2章 水下机器人概述
本项监控软件的开发对象是水下机器人BlueRov2 heavy如图2.1所示,本章内容将对水下机器人BlueRov2 heavy的整体架构以及主要装置配件进行介绍。该款水下机器人整体外观为立方体浅蓝色,尺寸较小,大约为457mm*436mm*254mm。相较于普通版的BlueRov2,BlueRov2 heavy将原有的六推进器改装为八推进器,通过该升级,此水下机器人将获得6自由度控制和滚动和俯仰的控制稳定性,使BlueROV2 Heavy成为市场上最稳定且机动性比较强的小型ROV。此外,机器人的内部配置有声呐、照相机组件和温度、深度/压力传感器以及漏水传感器等,将他们组装起来并作密封防水处理。
图2.1 BlueRov2 heavy外观图
2.1 pixhawk 以及树莓派
Pixhawk Autopilot如图2.2所示,它是一款先进的自动驾驶系统,可运行BlueROV2的ArduSub控制软件。它也可以用于其他水下航行器,并支持ArduPilot,ArduCopter,ArduRover软件。它采用ST Microelectronics先进的处理器以及传感器技术和NuttX的实时操作系统,能够在对自动航行器的控制中展现出非常好的性能、灵活性以及可靠性。Pixhawk在水下机器人中的工作中能够提供对机器人的控制以及传感器的反馈。
图 2.2 Pixhawk Autopilot
树莓派(Raspberry Pi)如图2.3所示,它是一款功能强大的微型计算机,具有体积小、功耗低但其仍具备所有PC机的基本功能等特点,因此适用于机器人等便携式项目中。
树莓派在水下机器人与地面站的通信过程中,将串口通信方式转换为以太网通信方式,此外它同时承担将摄像头传递来的数据进行接受处理的任务。
图 1.3树莓派
2.2载波模块
电力载波模块提供了一个高速、长距离的以太网连接方式连接道水下机器人或者其他远程平台。
图 2.4 载波模块
众所周知,一般以太网的传输距离不超过100米,但是观察级的水下机器人设计水深通常大于100米,因此我们需要在机器人内部安装电力载波模块用以增长通信传输距离。电力载波模块如图2.4所示,它采用Atheros主芯片设计,具有体积小、功耗低以及集成度高的特点,工作过程中能够进行实现高达200Mbps的传输速率,其性能可靠,工作稳定性高,同时向用户提供电源接口/网络接口以及工作状态指示接口。
在水下机器人的设计中,采用两个电力载波模块,一端布置在水下机器人的内部,另一端布置在岸上,两端之间采用缆线进行通讯连接。
2.3摄像头及传感器
在BlueRov2 heavy中,采用一款低光高清USB摄像头(如图2.5所示),通过USB接口能够直接与树莓派相连。此摄像头非常适合在水下使用,具有出色的低光性能,良好的色彩处理能力,特别选择的广角低失真镜头能够为水下机器人提供出色的画质。该摄像头配置有H.264压缩芯片,因此所有的视频压缩工作在摄像头本地完成,因此能够避免给主计算机带来过大负担。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: