陈锴,罗文广
摘 要:无人机地面站作为无人机控制系统中至关重要的一部分,其主要功能为无人机飞行控制以及任务管理.设计专用无人机地面站,提高对于任务的适应度,是推广应用无人机的一大有效举措.本文基于实际需求,设计及实现了用于桥梁病害检测的专用无人机地面站,该地面站具备无人机飞行监控、快捷控制、飞行任务规划、飞行路径以及航迹显示等功能,其基于Visual Studio 2019软件开发,主框架采用C#编写,电子地图采用Google map(Gmap)以及Google Earth二次开发实现,数据协议采用MAVlink协议.通过实机测试,地面站软件各个功能模块工作良好,能够高效地完成既定任务,可以达到设计目标.
关键词:无人机;地面站;航线规划;桥梁病害检测;软件开发
中图分类号:U445.7;V279.2;V249.122 DOI:10.16375/j.cnki.cn45-1395/t.2021.04.006
0 引言
随着无人机技术日益成熟[1],无人机在许多领域得以应用,如影视拍摄、植保、地理遥感等.多元化的任务需求推动着无人机相关技术的突破,如更长的续航时间、更大的任务载荷、更强的通信能力、多机协同作业等[2-3].无人机控制系统分为两个部分:无人机飞控以及无人机地面站.无人机飞控负责控制无人机在空中飞行的姿态,解析来自地面站的控制信号,执行相应任务;无人机地面站在整个无人机系统中,其地位及职能类似于人的大脑[4].因此,无人机地面站必须具备接受、发送、解析飞行数据包,显示、存储飞行数据,以及电子地图、实时定位显示、航迹显示等功能;同时提供人机交互功能,通过接受操作人员指令,从而控制无人机的飞行状态以及任务状态[5].一个功能完善、机构合理的无人机地面站是无人机安全飞行、成功执行任务的有力保障.
目前国内外对无人机地面站的研究开发多趋向于通用型无人机地面站.比较著名的通用型地面站包括国外的Mission Planner、QG地面站,国内的大疆、飞鱼地面站等.通用型地面站可以满足多数日常飞行任务,但面对特殊任务时,通用型地面站就显得“力不从心”.国内不少高等院校开发了专用型地面站:石秀[6]设计了用于检测高速公路违章的专用无人机地面站;任旭东[7]设计了用于城市道路巡检的专用无人机地面站;蔡伟杰[8]开发了应用于无人机植保的专用地面站.目前面向桥梁病害检测的专用无人机地面站的研究很少,因此,有必要设计一款专用无人机地面站,提升无人机桥梁病害检测的自动化水平.
地面站软件采用.NET Framwork框架,基于微软Visual Studio 2019平台,使用C#语言开发.软件窗体采用WinForm窗体模型,电子地图使用Google map以及Google Earth二次开发实现,数据协议采用MAVlink协议,导航模块采用自动规划与手动规划相结合的模式,最大限度满足任务需求.
在实现阶段,自顶向下,采用模块化思想,将地面站诸多功能凝聚为一个主界面与4大功能模块.各个模块间不会相互影响,有着很强的独立性,给后续的优化升级、日常维护、功能替换带来了 便利.
1 系统总体结构设计
无人机与地面站之间采用无线信道连接.首先,考虑到信道带宽有限,且需要保障控制信号以及回传信号的传输,通信链路无法保证高清图像信号的实时无损传输;其次,传输高清图像信号需要消耗大量电力,中小型无人機电池容量有限,开启图像传输后将大大减小无人机的续航里程.因此,无人机地面站不集成桥梁病害检测系统,而采用离线检测的方式,即由无人机采集高清图像信息,存储于sd卡中,由病害识别图像软件进行处理,形成检测报告.
无人机地面站软件系统总体功能模块如图1所示.将地面站设计为通信模块、信息显示模块、任务规划模块、快捷控制模块等必要的功能模块[9].
1.1 通信模块
该模块具备以下2个功能:
1)通信控制.控制串口的开启与关闭,设置串口编号以及波特率等串口相关参数.
2)信息处理.无人机与地面站之间相互通信的载体是若干个数据包,而信息处理功能则需要按MAVlink协议处理这些数据包.由无人机发送至地面站的下行数据包,需要将其解析后,提取相关数据.由地面站送至无人机的上行数据包,包含控制信号以及任务信息,需要经过本模块的打包,再送至无线电台发射.
1.2 信息显示模块
该模块具备以下3个功能:
1)飞行数据显示.使用数字就能令操作人员直观理解其含义的飞行数据将在此部分显示.诸如无人机电池电压(电池余量)、飞行速度、飞行高度等数据,使用“文本+数字”的方式进行显示,操作人员能很快理解,并掌握该数据的作用.
2)飞行姿态显示.与可以使用“文本+数字”显示的飞行数据不同,用来描述无人机姿态的横滚角、俯仰角2个数据带有空间属性,仅仅使用数字显示无法达到预想效果,因此,使用虚拟地平仪显示无人机的实时飞行姿态,以达到清晰、直观的 效果.
3)报警信息显示.为保证飞行安全,在下达解锁命令后,电机并不会直接开始转动,而是先运行自检程序,检查罗盘、GPS、陀螺仪等内置设备是否正常,当发现异常时,将发出警告信息,提示操作人员及时调整,避免出现危险.在飞行过程中,当出现电池电量过低、定位信号弱等情况时,也将发出警告信息,警示操作人员.
1.3 任务规划模块
任务规划模块最主要的功能是规划飞行航线,根据任务地图、任务需求以及各种约束条件,规划一条满足需求的最优或次优航线.航线规划功能离不开航线规划算法.本地面站需要控制无人机检测桥梁病害,需求比较特殊,现有的航线规划算法无法达到要求,因此,针对桥梁结构特点以及桥梁病害的发生趋势设计了一种新的全覆盖路径规划算法[10],并将其嵌入任务规划模块中,实现自动任务规划.电子地图采用集成的地图接口实现,可以调用各大厂商的电子地图,通过鼠标实现电子地图的放大、缩小、拖动、添加航点等功能.在加载完成的地图上,创建新的图层,实现无人机位置的实时显示以及航迹显示.
1.4 控制模块
该模块用于替代遥控器的部分作用,减轻操作人员工作量.在实际任务中,无人机需要执行多架次的任务,频繁地起飞、降落等重复操作大大增加了操作人员的工作量.将诸如起飞、降落、返航、开始执行任务等常规操作通过绑定按钮的方式,实现一键操作,简化过程,提高了效率.
地面站软件中数据流动如图2所示,描述了地面站中数据流通的过程.地面站中的数据包括两部分,一部分来自无人机,另一部分来自任务规划模块.无人机数据由通信模块接收,经过MAVlink协议解析,将飞行数据、姿态数据、告警信息送往显示模块;无人机位置信息同时送往电子地图部分,在电子地图上显示无人机实时位置以及航迹.任务规划模块根据任务地图以及任务需要来规划无人机航线,将航线信息送往电子地图模块,由操作人员进行微调后,将航线交由通信模块打包上传至无人机中.控制模块发出的快捷指令、参数调整指令经过通信模块发送至无人机中.
2 地面站软件实行
地面站软件工作流程如图3所示,自顶向下分别设计、实现无人机地面站主界面、通信模块、信息显示模块、任务规划模块以及快捷控制模块.
2.1 主界面设计
主界面负责人机交互,因此,设计时要兼顾功能性以及人机功效.主界面是一个容器,包含了其他几个功能模块,在设计时,需要合理安排布局.采用WinFrom窗体应用开发时,通过向主窗口中添加若干个Panel控件实现区域分割.在每一个Panel空间中,可以根据需要引入相应控件,如Button控件实现按钮控制、Textbox控件实现数据显示、TabLayoutPanel控件实行菜单栏功能等.通过向Panel控件中添加HUD(虚拟仪表)、电子地图显示等功能后,地面站功能趋于完善.主界面实际效果图如图4所示.
2.2 通信模块设计
通信模块具备串口控制以及数据包处理两大功能,是连接无人机与地面站的桥梁.无人机将飞行数据包发送给无人机地面站,地面站通过数据处理解析飞行数据,将其实时显示于主界面上;同时地面站通过数据处理将控制信号打包上传,实现对无人机的控制.
1)数据处理
数据处理功能需要使用MAVlink协议来解析地面站收到的飞行信息数据包,打包地面站需要发送的控制指令以及任务信息等.在工程中,MAVlink协议以一个独立类库的形态存在,可以调用提供的接口完成数据解析及打包工作.
地面站启动连接后,将创建一个串口链接Connect(),其中一个重要功能就是启动串口读写线程SerialReaderthead.Start(),SerialReader()函数将会从串口的接受缓存区读取数据流,并将其填充到MAVlink协议提供的接口中.MAVLinkMessage ReadPacket()函数将会对数据流进行解析,将截取的数据包存储在message中,后续根据不同的MSG,使用相应的解析方法获得数据.
2)串口控制
Connect_button_Click函数根据鼠标点击激活,当鼠标单击连接按钮时,将调用该函数进行串口相关操作.函数将从2个Combox控件中获取所需要的端口號以及波特率. isconnect属性在MAVlinkInterface类库中进行定义,属于MAVlink协议的一部分,用于标示地面站是否与无人机飞控完成连接.第一次打开时,默认isconnect属性为false,即无人机飞控为离线状态.当单击事件发生后,isconnect属性变为ture,执行Start()函数,开始后续进程,连接无人机飞控.再次单击后,isconnect属性由true变为false,关闭串口,结束连接.
3)无线传输
无线信道由3DR数传电台搭建、3DR数传电台兼容多种主流无人机飞控,传输距离远、信号稳定,重量轻、功耗小,是无人机数传中的主流选择.
4)通信模块具体工作流程
地面站连接无人机飞控过程中,串口控制功能最先开始工作,根据设定的串口参数,打开串口,连接无人机.无人机通过3DR数传向地面站发送心跳包(一种数据包,用于检测连接状况),数传接收端接收心跳包后,将其写入串口缓存区,由数据处理功能进行读取和解析,连接成功后,后续飞行数据包会源源不断地由无人机发送至地面站;需要向无人机发送控制信号时,由数据处理功能打包相应控制数据包,写入串口缓存区,通过串口后由数传发送.
2.3 信息显示模块
信息显示模块是地面站与操作人员进行信息交互的窗口.数据显示模块的实现不仅需要数据能够实时准确显示,还需要页面简洁明了、窗口布局合理,充分考虑到人机功效以提高舒适度.需要显示的信息分为无人机飞行数据、无人机姿态信息以及告警信息3部分.
飞行数据显示将采用文本与数字混合的方式进行,重要飞行数据显示区域位于主界面的左上角,与HUD虚拟仪表、报警信息显示框共同组成无人机飞行状态监控区域,参考图5.飞行数据采用“名称+数值”的方式显示,“名称”直接显示,而“数值”通过解析飞行数据包中的数据,通过ToString( )将其转化为字符串后显示.
虚拟仪表采用函数直接绘制,根据需要分别绘制地面线、俯仰刻度线、横滚刻度线、侧倾指示器(地平线中间的小三角)、刻度值、圆角控件等元素,绘制完成经过位置调整,最终结果如图5(a)所示.虚拟仪表需要驱动函数才能正确显示无人机的姿态信息.驱动函数从飞行数据中摘取其所需的俯仰角、横滚角、偏航角、侧倾角等数据后,通过换算调整显示内容,展现无人机实时飞行姿态.
告警信息将显示于虚拟仪表下方的信息框中,通过文本形式以及语音播报结合的方式,起到足够的警示效果,促使操作人员及时处理,保障飞行安全.
2.4 任务规划模块
任务规划模块主要功能为自动规划任务航线,并在电子地图上标示出航点、航线位置.将任务地图导入地面站中,通过航线规划算法自动生成航线,操作人员微调后,上传至无人机的飞控中,无人机根据此航线飞行,完成相应任务.工作流程如图6所示.
使用无人机检测桥梁病害需要规划三维全覆盖航线,现有的自动规划算法无法满足任务需求,因此,针对桥梁病害检测任务开发一款专业航线规划程序,该程序能根据三维桥梁地图以及任务需求,自动规划一条无人机航线,并且生成航点文件.规划效果如图7所示,将该程序嵌入任务规划模块中,成为该模块中的一个功能组件,实现航线规划、任务管理一体化,大大提高了地面站的工作 性能.
1)规划算法简介
根据桥梁结构特点,采用栅格法设计基于混合策略的全覆盖路径规划算法,由综合运动函数、运动优先级策略及死区逃离策略3部分组成.综合运动函数根据栅格代价情况区分障碍物、未覆盖区域以及已覆盖区域,规划初始路径;运动优先级策略根据“左优先,下优先,直优先”策略优化路径;采用A-star算法规划离开死区的最优路径;算法工作流程如图8所示.根据仿真实验,所设计的路线规划算法可以高效完成对任务桥梁的规划.
在以上航线的基础上,根据不同类型的桥梁、桥梁不同部位病害发生的趋势,针对性地在某些易发病害部位加大航点密度,实现点面结合,提高检测效果.
电子地图是任务规划模块的基石,任务地图、航线显示都要借助电子地图实现.考虑本地面站的用途,传统的二维电子地图已经无法满足需求,因此,将二维地图以及三维地图集成在一个模块中,可以快速切换显示.二维电子地图基于GMap电子地图控件开发,通过加载瓦片地图可以实现不同精度的地图显示;三维电子地图通过Google Earth API实现.实际显示效果如图9 、图10所示.
2.5 控制模块
通过控制模块,操作人员可以实现对无人机的快捷控制、参数设置、连接图传信号等功能,使用指令集代替传统的手动遥控,大大提高了工作效率,减少了人为事故的出现.
3 实机测试
测试无人机平台选用四旋翼无人机,搭载Pixhawk飞控、用于数据传输的3DR数传、用于拍摄桥梁外表面的Go pro运动相机以及配套云台、用于传输图像信号的图传模块以及其他功能模块.地面站工作情况如图11所示.显示模块实时显示无人机的飞行信息,电子地图正确显示无人机的位置以及航线信息,使用快捷控制功能,控制无人机完成起飞、执行任务、降落等操作.
地面站与无人机连接成功后,相应的飞行数据显示于地面站显示功能区中,包括数据显示以及姿态仪表显示.测试过程及结果如表1所示.
需要测试任务规划模块能否正常打开,航线规划功能是否正常工作,航线保存、加载功能是否正常等.测试过程及结果如表2所示.
测试过程中采用快捷控制解锁无人机,实现起飞、降落、开启图传等操作.测试过程及结果如 表3所示.
测试结果表明,在测试过程中,无人机地面站的所有功能均工作正常,未发现重大问题.同时,经过长时间测试,无人机地面站的稳定性和可靠性均得到了验证.
4 结语
本文设计并实现了用于桥梁病害检测的无人机地面站软件,通过设计飞行信息显示模块、任务规划模块以及通信控制功能,实现了对无人机的实时跟踪控制以及任务设定,能够满足实际需求.
参考文献
[1] 缪希仁,刘志颖,鄢齐晨.无人机输电线路智能巡检技术综述[J].福州大学学报(自然科学版),2020,48(2):198-209.
[2] 卢俊文,王倩营.无人机演变与发展研究综述[J].飞航导弹,2017(11):45-48,68.
[3] 徐亚妮,罗文广,张亮.基于FPGA的四轴飞行器飞行控制系统设计[J].广西科技大学学报,2018,29(3):50-56.
[4] 何松儒,周超,葉佳,等.民用无人机地面站发展的分析研究[J].数字技术与应用,2019,37(10):227-229,231.
[5] 杨青,赵锋,李阳.基于C#的无人机地面站软件设计[J].电子质量,2017(5):48-51,56.
[6] 石秀.基于高速公路违章检测的无人机地面站的设计实现[D].南京:南京邮电大学,2020.
[7] 任旭东.面向城市道路巡检的无人机地面站软件设计与实现[D].西安:长安大学,2019.
[8] 蔡伟杰.面向农业植保智能化作业的无人机地面站系统研究[D].深圳:深圳大学,2017.
[9] 张玉民,何鑫,杨百川.基于WPF技术的无人机地面站软件设计与实现[J].计算机工程与设计,2019,40(4):1167-1173.
[10] 唐博文,王智文,胡振寰.基于事件驱动的无人机强化学习避障研究[J].广西科技大学学报,2019,30(1):96-102,117.
Design and implementation of UAV ground station for bridge
disease detection
CHEN Kai1,2,LUO Wenguang*1,2
(1. School of Electric, Electronic and Computer Science, Guangxi University of Science and Technology,
Liuzhou 545006, China; 2. Gangxi Key Laboratory of Automobile Componment and Vehicle Technology(Guangxi University of Science and Technology), Liuzhou 545006, China)
Abstract: The UAV(Unmanned Aerial Vehicle) ground station is a vital part of the UAV control system. Its main functions aredrone flight control and task management. Designing a dedicated UAV ground station to improve the adaptability to the task is an effective measure to promote the application of UAVs. Based on actual needs, this paper designs and implements a dedicated UAV ground station for bridge disease detection. The ground station has functions such as UAV flight monitoring, UAV quick control, flight mission planning, flight path and track display. Based on Visual Studio 2019 software development, the main framework is written in C#, the electronic map is implemented by Google map and Google Earth secondary development, and the data protocol uses the MAVlink protocol. Through the actual machine test, each functional module of the ground station software works well. UAVs can efficiently complete established tasks and achieve the design goal.
Key words: UAV; ground station; route planning; bridge disease detection; software development
(責任编辑:黎 娅)