| 投稿信箱:zhongjiaobei@vip.126.com

当前位置:首页 > 获奖作品

  摘要:针对某型无人机飞行监测和控制的要求,主要讨论某型无人机地面站关键技术的实现。以VB可视化语言为开发工具,嵌入Mapx控件,设计了一套操作方便、功能强大的飞控地面站软件系统.软件基于模块化设计思想,采用串口通信方式,利用高精度多媒体定时器实现同步通信,实现了遥测数据的实时显示、数据存储、故障提示和遥控指令的定时发送等功能。经过实际调试系统运行良好,通信实时性很高,很好地完成了各部分功能,并具有很好的扩展性。 关键词:无人机 ;地面站;数据采集;电子地图

  中国分类号:TP79 文献标识码:A

  Abstract: For the requirement of the flight monitoring and controlling of Unmanned Aerial Vehicle (UAV),this paper discussed the key technologies to realize the ground navigation station system of UAV.A flight control ground station (CGS)software ,with the advantage of convenient , powerful ,was developed based on the active controls using Visual Basic, the visualization development tool. Through the introduction of highly accurate multimedia timer, Synchronous communication was complied.By Using serial communication, and the application of modularization ,functions such as real time display of remote test data,database storage,fault alarm and timing delivery of remote control orders were well realized by the method of modular design. The task of this UAV ground station system is fulfilled with satisfaction and it also has good expansibility.

  Keywords: UAV, CGS,Data collection,Electronic map

  0 引言

  无人机(简称UAV)是一种动力驱使、可控制、能携带多种任务设备、执行多种任务,并能重复使用的无人驾驶航空器。无人机是通过无线电遥控设备或机载计算机程控系统进行操控的不载人飞行器。地面站系统作为整个无人机系统的“神经中枢”,控制着整个系统的各项功能的成功实现,控制飞行器的飞行过程、飞行航迹、有效载荷,对任务的高效完成、通讯链路的正常工作以及飞行器的发射与回收是非常关键的。无人机地面站系统应该发挥的功能也必须是整个无人机系统的重要部分,除了应该完成基本的飞行器状态控制和有效载荷数据的接收、处理,同时也要求能够灵活的克服各种未知的自然、人为因素的不利影响,适应各种复杂的环境,保证整个系统整体功能的成功实现[1]。

  本文主要研究某型航拍无人机地面控制系统的设计,负责完成地面站系统软件编程及功能实现工作。为无人机系统提供飞行数据实时显示、存储、航线显示与规划及相关控制指令的实现等功能。其关键技术主要涉及数据通讯、地图显示、数据储存等计算机应用技术。

  1系统总体设计

  无人机系统中的地面控制站系统是在无人机应用发展过程中逐步提出的。现代无人机已经从原来单一战斗任务中脱身而出,装载了各种用途的设备。为了能够更好地遥控操作无人机,人们采用了各种形式的地面控制站系统,以便对无人机的飞行状态和任务设备等进行实时监控[2]。一般而言,地 ______________________

  2 地面站软件功能总体设计

  无人机地面站,作为连接操作者与无人机的桥梁。其基本功能要求如下[3]:

  (1)、能够实现对飞行器姿态的控制,即在任何时间飞行器的姿态都是可以通过地面站进行控制的。

  (2)、可以时刻观察飞行器当时的姿态、传感器、航线等数据。

  (3)、对飞行器的航迹进行实时的控制,即可以随时对飞行器的航线进行修改和定制。

  (4)、对所有飞行数据进行保存,并对历史数据任务回放功能,方便查看航拍任务的质量。

  (5)、保证系统稳定可靠、实时高效的

  数据传输机制,以满足大数据量的通讯要求。

  (6)、在满足可靠性的基础上,监控数据的直观性、控制的易操作性也要予以考虑。

  为实现以上功能,采用模块化思想,设计了如图2所示软件结构。该地面站程序主要分为两大功能模块:数据实时接收与数据回放。

  地面站数据实时接收的主要任务是实时采集分析飞行数据、实时发送遥控指令以及实时显示飞机位置相关信息、飞行状态参数显示、飞行信息的保存。其关键技术在于数据通信的实时性及电子地图功能和航线规划的实现。

  数据回放功能是在完成飞行任务之后为了更好在查看飞行状态及飞行质量,通过导入飞行过程中保存的数据,完全模拟实时飞行过程,并可快进、慢进、单点查看、拖动等播放器功能。遥测数据传回地面控制站以后,一方面在视图区进行实时显示:另一方面在软件后台保存到数据库里,以便于以后的数据分析。本界面在数据分析方面.主要完成了轨迹回放功能.此功能实现无人机航迹在电子地图上的回显,通过拖动播放功能相关按键.可以获取任意时间段内的数据.相应的姿态位置信息可以在离线的状态下从数据库提取并回放出来.也便于以后进行查找和分析。

飞行控制 任务执行 机载飞控器 地面控制站 手动遥控制器 无线通信

文本框: 地图显示

程序启动 功能选择 接收数据 回放数据 地图显示 仪表显示 数据保存 控制指令 读取文件 文本显示 其它功能 回放控制 任务回放 打开串口 图1 某型航拍无人机总体系统方案组成 图2 地面站软件功能结构 地面站程序采用在windows操作系统基于VB编程语言实现。VB是一种可视化的编程语言,通过嵌入ActiveX控件或者调用DLL动态链接库,程序员就可以编写出界面友好、功能强大的包括通讯、数据库应用等各种应用程序的软件,尤其是VB的基于事件触发的程序运行机制特别适合应用于测控软件的设计[4]。在开发飞控地面站软件的过程中,作者应用VB设计了完备的显示和操作界面,并给出了相应的应用程序关键代码。

  3软件关键技术实现

  从航拍控制系统的总体构成来看,地面站在整个控制系统中主要是监控与显示飞行状态。其关键技术主要在于保证数据通信的实时性与准确性,以及显示画面的流畅与界面操作的方便性。

  3.1界面显示的实现

  界面显示包括电子地图的实现、无人机飞行状态参数的文本及图形仪表显示、飞行航线的规划等,电子地图的实现上,本文采用了功能强大的Mapx 控件。MapX是一个基于ActiveX(OCX)技术的可编程控件,可以直接嵌入到VB编程语言中。MapX为开发人员提供了一个快速、易用、功能强大的地图化组件。在VB等可视化开发环境中,只需在设计阶段将MapX控件放入窗体中,并对其进行编程,设置属性或调用方法或相应事件,即可实现数据可视化,通过Mapx自带的强大的功能函数与自定义工具,可快速、方便实现目标信息显示与定位、地图的移动、放大、缩小操作及飞行航线的显示编辑、飞行距离的测量等。

  通过自定义工具来实现地面站特殊要求的功能,如:

  Map1.CreateCustomTool LineTool, miToolTypePoint, miCrossCursor '创建自定义航线规划工具

  Map1.CreateCustomTool MapRuler, miToolTypePoint, miCrossCursor '创建自定义测量 工具

  通过ToolUsed事件调用各种自定义工具

  Private Sub Map1_ToolUsed(ByVal ToolNum As Integer,…)

  …

  Select case ToolNum

  Case LineTool

  …

  Case MapRuler

  …

  …

  End select

  …

  End sub

  在仪表显示上,采用世纪飞扬航空仪表控件。世纪飞扬的航空仪表控件,完美的水平仪及转速仪表、航向仪,方便直观地实现飞行参数的虚拟仪表显示,为软件提供良好的人机接口界面。

  3.2串口通信的实现

  由于地面飞控站与自动驾驶仪之间的无线电通信接口协议是RS232,所以设计用串口通信来实现它们之间的通信任务。每个串口既能发送数据又能接收数据,是一个全双工的通信工作方式,正好能同时实现遥测数据接收和遥控指令发送两部分功能。串口接收数据采用串口中断的方式实现。为了保证接收数据的正确率,需要对无线上传与下载的数据进行通信协议的定义。本文采用的是可变长度数据包协议,采用这种方式的数据包灵活方便,数据包协议如下:

  “起始符,长度标识符,有效数据,结束符”

  因为本地面站监控程序是基于VB编程实现,根据程序的实际需要,选用mscomm控件。Microsoft Communication Control(MSCOmm)是Microsoft公司提供简化Windows下串口通信编程层的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法,在VB可以快捷的使用。其工作流程具体如下:首先设置好串口参数,然后开启串口监测工作线程,串口监测工作线程监测到串口接收到的数据流控制事件或其他串口事件后,就以消息方式通知主程序,激发消息处理函数来进行数据处理,这是对接收数据而言;对于发送数据,可直接向串口发送。串口通信流程图如图3。

  3.3通信同步的应用实现

串口中断 退出中断 起始符? 开始接收 地图显示 仪表显示 文本显示 保存数据 N Y 定时中断 发送允许

  Flag=True T0

  Flag=False T3>N>T2? 退出中断 计数N=N+1 N=0 N

N Y 图3 串口通信流程图 图4通信同步定时功能流程图 由于系统的无线通信设备仅支持单工和半双工通信模式(本文采用的是半双工模式),而无线电台与地面站监控计算机之间执行的是双向串口通信任务,因此为了解决同一台计算机同时收发数据的矛盾,传统的解决方法是设计了“确认帧”,即地面站监控计算机每接收到一数据帧后都要发送该确认帧给飞控器,飞控器只有接收到该确认帧后才能发送下一帧飞行数据值,这样有效地避免了数据帧与命令帧的冲突问题[5]。但是这种方法仍然不能保证紧急情况下控制指令及时准确发送到飞控器上,因此本文在使用“确认帧”的同时,采用了地面站与飞控器上下行数据通信同步的方式。通过采用精确定时器,把一段时间分成两个时间点,对串口进行控制,在某一个时间段内只允许串口发送,另一个时间段只允许串口接收。同时为了补偿数据接收缓冲与处理的延时,对各时间段增加时间余量,充分保证接收与发送动作的分时错开。

  通信同步功能对时间的分段需要高精度的定时器,在飞控器上通过硬件定时器很容易达到毫秒级,但是地面站计算机部分,如果采用VB自带定时器控件将达不到毫秒级,容易出现“丢秒”现象,所以本文通过API函数调用windows自带的多媒体定时器[6]。多媒体定时器的精度非常高,能精确到毫秒级,而且优先级也很高,基本上没有延迟,非常适合高精度定时使用。

  多媒体定时器API声明方法:

  Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Any, ByVal dwUser As Long, ByVal uFlags As Long) As Long’启动定时器

  Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long’关闭定时器

  同时为了计算机处理数据带来定时误差而导致通信不同步的问题,采用定时发送通信同步信号的方法,只要飞控器接收到通信同步信号,立刻对同步定时器清零,地面站程序在发送完信号之后,经过一定延时(通过计算及精密示波器查看得到),同时对同步定时器清零,这样可以消除长时间运行带来的累积误差,实现真正的实时同步,以满足控制指令的实时性要求。

  3.4其它相关技术的实现

  本地面站除以上使用到的关键技术外,同时要考虑对飞行数据保存、地图的制作、航线的离线设计、故障与紧急处理等相关功能的设计。为保证数据的安全性,对所有飞行记录数据采用自定义文件格式,采用这种方法能使所有的飞行记录只能通过地面站程序回放,不能用其它方式对其进行修改,以保证飞行数据的安全性。对不同的数据包采用不用的记录格式,以方便数取的快速读取与保存。采用这种模块化的思想,为数据接收与数据回放在数据解析方面提供共同的函数模块,提高了编程效率。

  4结论

  本文介绍了采用VB可视化程序开发航拍无人机地面站监控系统的实现技术。其中串口数据的采集与处理,多功能界面显示中嵌入Mapx等Active控件技术,调用API函数实现高精度定时器是系统实现的关键。通过系统的实际联调测试,该套地面站软件很好地实现了各部分功能,同时也具有较强的实时性,并且由于整个系统是基于VB环境开发的可视化软件,具有良好的可扩展性,可以适用于不同的无人飞行器,通用性很强。本文介绍的航拍系统结构模型,以及地面站计算机监控软件开发中关键问题的解决方案,对该领域相关问题具有较好的参考价值。

  5 参考文献

  [1] 刘栋.某型无人机地面飞控站的设计研究[D] .西安:西北工业大学,2007:19-40

  [2] 宁金星,等.基于VC++的无人机飞控地面站软件的开发[J].计算机测量与控制,2009,17(3):596-598

  [3]吴益明. 无人机遥控遥测数据的实时处理研究[J].计算机测量与控制,2006,14(5):68l一682.

  [4]朱从旭.Visual Basic程序设计综合教程[M] .北京:清华大学出版社,2005

  [5]丛振琦.无人机监控制系统软件设计[D] .大连:大连理工大学,2008:19-30

  [6]常发亮,等.多线程下多媒体定时器在快速数据采集中的应用 [J]计算机应用,2003,6 (23): 177-178