基于GMap的无人机地面控制软件开发

2018-01-15 01:42:50李杉格林静
现代计算机 2017年34期
关键词:航点电子地图航路

李杉格,林静

(1.中电科(德阳广汉)特种飞机系统工程有限公司,成都611731;2.中电科航空电子有限公司,成都611731)

0 引言

自1916年09月12日第一架无线电操纵的无人驾驶飞机在美国首飞已经过去整整一百年,无人机凭借其低成本、高安全性、灵活高效等特有优势,在军民领域的应用取得了长足的进步。无人机地面控制站作为无人机系统的重要组成部分,受到了多国的重视:美国海军研制的通用无人机地面控制站战术控制系统(TCS)提供了一个开放式体系结构软件,可实现任务规划、指挥与控制以及情报数据收发等功能[1];北约颁布的“北约无人机控制站互操作标准化接口”(STANAG 4586)[2],为UAV系统制定了一个功能性结构标准(Lockheed Martin已开发出世界上第一个符合该标准的商用货架控制站软件VCS-4586[3])。

本文从无人机地面控制软件的功能需求分析出发,介绍了一种无人机地面控制软件的具体实现方法,在VS Express 2013集成开发环境中使用C#语言进行研发。

1 软件总体设计

1.1 功能分析

图1所示为无人机系统地面站信息流图,无人机地面控制软件运行于飞行控制席位中,通过UDP组播与链路监控席位、载荷控制席位进行各类遥控/遥测数据的通信。根据系统需求,无人机地面控制软件需具备以下功能:

图1 无人机系统地面站信息流图

(1)航路规划功能:任务开始前,无人机操作员根据当次任务的具体需求,提前编辑本次任务各航点信息、规划飞行航路,而后注入航路,指引无人机按照指定航路进入自动模式飞行(滑行、起飞、爬升、巡航、下降、进近、着陆);

(2)手动模式功能:自动飞行中若遇紧急情况,或有手动控制必要,操作员可从自动模式切入手动模式,通过视距/超视距数据链发送操控指令手动控制无人机飞行;

(3)状态监控功能:通过解析无人机发回的遥测数据,以文字、数值、仪表等多种形式提供无人机飞行航迹、设备状态、飞行参数等信息,供操作员实时监控无人机状态;

(4)回放功能:无人机飞行时,地面控制软件可实时记录地面站发往无人机的遥控指令和无人机发回的遥测信息,供任务完成后进行回放分析。

1.2 界面设计

图2 无人机地面控制软件界面设计

图2所示为无人机地面控制软件主界面,大量图表、虚拟仪表的使用让界面更加简洁、直观。无人机地面控制软件主要分为以下几个模块:

(1)电子地图模块:显示导航地图(可双击地图全屏显示)、飞机实时位置、航迹、航路、航点、空域、经纬度等信息;

(2)航路规划模块:通过界面控件或者直接操作数据库文件编辑航路、航点、空域信息,进行航路注入等操作;

(3)中央显控模块:包括综合显控、飞控状态、发动机状态三个部分,同时提供遥测源码显示、地图快速定位等辅助功能;

(4)手动控制模块:提供各类无人机控制按钮和操纵杆配置监控接口,用以在必要时手动干预无人机飞行。

(5)飞参显示模块:显示飞机姿态指示器、速度/空速/高度等曲线和角速度、加速度、航迹角等数值。

1.3 配置文件

XML(eXtensible Markup Language)作为一种广泛使用的标记语言,具有良好的数据存储格式和可扩展性,采用XML格式配置文件来存储软件的初始化信息(如界面参数、UDP/串口通信参数、地面站参数等),以下为配置文件片段:

……

2 软件应用开发

2.1 工作流程

图3 无人机地面控制软件工作流程

图3所示为无人机地面控制软件工作流程。软件启动后,首先进行相应数据文件、软件界面、网络/串口通信、动态链接库的初始化,读取数据库文件将已有航路信息显示在界面上供操作员编辑,而后,进行航路规划合法性校验,若航路规划满足空域、飞机性能等限制,无人机则可进入自动模式飞行,并可随时在手动和自动模式之间切换、进行在线航路重规划等。此外,软件还可以执行数据回放分析操作。

2.2 电子地图

电子地图使用GMap.NET实现,GMap是一个跨平台开源.NET控件,其代码结构清晰,每个模块之间均基于接口进行编程,可运行于WinForm、WPF和Windows Mobile,支持 Google、Bing、ArcGIS等多种在线、离线地图,功能强大[4]。

使用GMap,需首先实例化GMapControl类,而后即可用GMapProvider接口加载显示地图,进行地图初始化设置、添加图层和鼠标事件等操作。电子地图上,将显示航路(黄色线段)、航点(黄色水滴标记)、航迹(橙黄色曲线)、空域(蓝色线段)、飞机图标(半透明蓝色箭头)等信息,分别在GMapMarker、GMapOverlay层实现,如下图所示:

图4 电子地图及叠加信息显示

此外,电子地图上还将叠加显示无人机与地面站的实时相对位置(距离、方位),相对位置简便解算思路:将以经纬度、高度(dLng,dLat,dAlt)表示的球坐标转换为三维直角坐标(Xa,Ya,Za),再利用平面几何关系进行计算。解算代码如下:

const double dEarthRadius=6371393;//地球半径

//三维直角坐标

Xa=(dEarthRadius+dAAlt)*Math.Cos(D2R(dALat))*Math.Cos(D2R(dALng));

Ya=(dEarthRadius+dAAlt)*Math.Cos(D2R(dALat))*Math.Sin(D2R(dALng));

Za=(dEarthRadius+dAAlt)*Math.Sin(D2R(dALat));

Xb=(dEarthRadius+dBAlt)*Math.Cos(D2R(dBLat))*Math.Cos(D2R(dBLng));

Yb=(dEarthRadius+dBAlt)*Math.Cos(D2R(dBLat))*

Math.Sin(D2R(dBLng));

Zb=(dEarthRadius+dBAlt)*Math.Sin(D2R(dBLat));

//解算距离、方位

dDistance=Math.Sqrt(Math.Pow(Xa-Xb,2) +Math.Pow(Ya-Yb,2)+Math.Pow(Za-Zb,2));

dDirection=R2D(Math.Atan((D2R(dBLng)-D2R(dALng))*Math.Cos(D2R(dBLat))/(D2R(dBLat)-D2R(dALat))));

2.3 航路规划

传统的航路规划文件多采用txt文本格式,开发简捷但查询、编辑有所不便。本设计中,采用Microsoft Access数据库进行航路规划文件管理,软件启动后即自动读取数据库文件中的航路、航点、空域信息并在界面上予以显示。数据库文件可通过软件界面或直接打开.mdb数据库文件进行编辑,其中包括航路、航点、空域三张数据表[5]:

(1)航路表(Fairway):包括 ID、航路编号等信息;

(2)航点表(Waypoint):包括 ID、航点编号、经纬度、高度、航向、速度、备注、所属航路等信息;

(3)空域表(Airspace):包括 ID、航点编号、经纬度、高度区间、备注等信息。

一个航路包含至多255个航点,确认航路信息无误后,即可注入航路(帧格式定义见表1),通过无线链路将航路信息发至飞控计算机,控制无人机按照规划航路飞行。

表1 航路注入帧格式定义

表2 航点信息格式定义

2.4 虚拟仪表

为方便灵活定制,飞机姿态仪表、发动机转速、油量等虚拟仪表采用自定义控件(UserControl)实现。解决方案中,每个虚拟仪表皆为一个单独项目,生成一个dll动态链接库供主项目调用,如此功能划分更加清晰明了。同时,还采用辅助缓冲区(this.DoubleBuffered=true;)进行图面重绘,以避免仪表闪烁、呈现不流畅。

本设计采用多线程实现,为保证安全性,采用异步执行指定委托的方式来实现虚拟仪表界面的更新显示[6],关键代码段如下:

ActionactionDelegate

=delegate(float fAngleRoll,float fAnglePitch,float fAngleHead,float fAngleTrack)

{

ctrl.UpdateAI(fAngleRoll,fAnglePitch,fAngleHead,fAngleTrack);

};

ctrl.BeginInvoke(actionDelegate,fRoll,fPitch,fHead,fTrack);

3 结语

本文介绍了一种基于GMap的无人机地面控制软件的设计和实现,其人机界面设计参考民航标准简洁友好[7],经多次试飞测试,该软件可有效地对无人机进行状态监视、航路规划和实时操控,各项功能得到了充分验证。

[1]马聪颖,高瑞周,朱玉祜.无人机地面控制站通用化软件架构[J].航空计算技术,2013,43(03):112-113+118.

[2]Stanag 4586:Standard Interfaces of UAV Control System(UCS)for Nato UAV Interoperability[S/OL].

[3]VCS-4586 Capabilities Guide-Ground Control Operator Software for Unmanned Vehicle Systems[M/OL].

[4]GMap.NET Tutorial[EB/OL].http://greatmaps.codeplex.com/documentation,2015.

[5]郑昌文,严平,丁明跃,苏康.飞行器航迹规划研究现状与趋势[J].宇航学报,2007,(06):1441-1446.

[6]Control.BeginInvoke Method(Delegate)[EB/OL].https://msdn.microsoft.com/en-us/library,2017.

[7]AC No:23.1311-1C,Installation of Electronic Display in Part 23 Airplanes[S].

猜你喜欢
航点电子地图航路
中国公猪站引种指南电子地图
猪业科学(2024年1期)2024-02-27 10:14:24
基于实时航路的PFD和ND的仿真研究
二次开发在航点航迹图批量绘制中的应用
基于Mapserver的增强现实电子地图的设计与实现
应召反潜时无人机监听航路的规划
托勒密世界地图与新航路的开辟
电子地图在初中地理教学中的应用实践
基于Event改进模型的交叉航路碰撞风险评估
电子地图多尺度显示模型研究