基于MapX的无人直升机航迹系统实现

2017-05-10 13:37宋海薇李瑜强
电子技术与软件工程 2017年8期

宋海薇+李瑜强

摘 要

针对无人直升机航迹规划与监控的实际需求,提出基于MapX组件开发一套无人直升机航迹系统,介绍了系统的模块组成及数字地图平台的构建方法,研究了航迹规划策略、航点调整及航线发送技术,分析了航迹动态显示需要解决的关键问题,飞行试验表明系统实现了预定功能,且表现出良好的可靠性。

【关键词】MapX 无人直升机 航迹规划 航迹监控

无人直升机全自主飞行需提前对无人机的航迹进行规划,包括航迹中各关键航点的经纬度位置信息、高度信息以及对任务设备的操作等。操作人员需从地图中逐点查找、计算航点,并手工将得到的航迹数据输入无人机系统中。这往往需要花费操作人员数小时到数天的时间,一旦航迹发生变动,由此带来的不便是不言而喻的。

为了解决上述问题,开发一套适用于无人直升机的航迹系统是必要的。利用航迹系统,操作人员可以直接在数字地图上进行航迹的规划,能够实时、便捷地得到数字地图中任意一点的多种信息,并且可自动计算航点位置。同时,航迹系统还能够实时地跟踪监控无人直升机航迹。

1 系统开发环境及功能模块

1.1 MapX组件

系统采用MapInfo公司提供的地理信息系统(Geographical Information System,GIS)处理控件MapX实现数字地图的缩放、移动、信息显示等功能。MapX是一种基于Windows操作系统的标准组件,能支持绝大多数标准的可视化开发环境,如Visual C++、Visual Basic、Delphi和PowerBuiler等,同时其对使用者的GIS专业背景要求不高,使用标准化语言、明确的对象模型、大量的方法和事件、高效的属性页和默认值等功能,使得用户可以轻松的在应用程序中加入强大的制图功能。本系统应用程序以Visual C++作为开发语言。

1.2 系统方案

根据无人直升机试飞工作需求,系统由航迹规划模块、航迹显示模块、航迹存储模块、航迹回放模块、数据通讯模块、数据处理模块组成,如图1所示。

航迹规划模块主要用于飞行前路径规划,操作人员结合飞行区域的地理信息直接在地图上点选及拖拽航迹点形成飞行航迹,系统通过飞行性能约束条件对航迹进行可行性判断,最终确定飞行航迹,并将规划数据通过地面指挥控制设备发送给机载导航管理计算机。

航迹显示模块可根据预设航点信息和遥测参数同步显示理论航迹和实时飞行航迹,同时把理论航迹和飞行航迹进行比较,并将比较结果以数值形式呈现出来。

航迹存储模块将经纬度、高度、速度、航向信息实时记录在ACCESS数据库中,供后续分析及航迹回放时使用。

航迹回放模块调用航迹存储模块中的数据实现飞行航迹回放。

数据通讯模块通过串口通信技术与地面指挥控制设备进行通讯,地面指挥控制设备再经无线链路与机载设备进行通讯。

数据处理模块用于完成遥测参数解帧以及预设航点信息组帧。

2 系统关键技术

2.1 数字地图平台构建

航迹系统的开发首先需要构建一个数字地图平台,在平台上实现基本数字地图操作。系统采用飞行区域的高清数字正设影像图(Digital Orthophoto Map, DOM)作为背景地图,通过MapX组件将其嵌入系统主视图。

基于MapX组件的数字地图平台构建方法如下:

(1)安装MapX后在Visual C++创建的项目中添加MapX.cpp和MapX.h文件;

(2)在主视图头文件中包含MapX.h头文件,在主视图类中添加成员变量CMapX m_ctrlMapX;

(3)声明表示用于MapX的控件ID常数,名称为“IDC_MAP”;

(4)在创建视图时创建该控件:

if(!m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(100,0,1270,670), this, IDC_MAP))

return -1; //创建MapX组件

m_ctrlMapX.GetLayers().Add("map.gst")

//显示默认路径下的地图

MapX组件在本应用中主要实现以下功能:

(1)背景地图设置以及地图信息获取;

(2)地图的缩放、平移;

(3)文字、图标、线条等图元的添加、删除和移动;

(4)测距工具、图元拖拽工具的创建;

系统在MapX组件提供的上述功能基础上,实现航迹规划和航迹显示等各模块的开发。

2.2 航迹规划

2.2.1 规划策略

系统采用人机交互的航迹规划模式,结合数字地图上的地理信息直接在图上点选航迹点,并通过计算机完成可行性计算。这种方式在数字地图上进行航迹规划,能直观地规避地形障碍,并且通过MapX提供的地图信息获取功能实现航点点选功能,避免了手工录入航点带来的不便,通过系统自动计算来完成航迹可行性判断,极大地减小了手工计算的工作量。規划策略如图2所示。

(1)点击数字地图上相应位置确定航迹点,若需调整其位置,直接拖至其他位置;

(2)为航迹点设置飞行特征(如悬停点、过渡点、途经点、加速点、减速点)及飞行速度等属性;

(3)计算机对所设置航迹自动进行飞行可行性判断(包括根据某飞行速度下的转弯半径判断转弯角是否复合要求,根据飞行速度判断航段长度是否满足加减速要求等);

(4)若计算结果不可行,计算机给出相应提示,进入步骤(5),若计算结果可行,进入步骤(6);

(5)用户根据提示对航迹进行修改后进入步骤(3);

(6)将规划结果发送给机载导航管理计算机。

2.2.2 航迹调整

系统采用拖拽航迹点的方式进行航迹调整,如图3所示,同时自动计算航迹属性并用列表的形式显示,如图4所示,根据航迹点位置的调整,航迹列表将进行实时更新。这种航迹调整方式方便、直观,免去了航迹规划过程中人工计算的部分,极大地缩短了航迹规划的时间。

2.2.3 航迹发送

系统将各航点信息组成一帧20字节的数据,结构见表1,经串口发送至地面指挥控制设备并按通讯协议进行组帧,并通过无线数据链发送给机载导航管理计算机,导航管理计算机接到航点信息后进行原码反馈,航迹系统将反馈信息与发送信息进行比对确认正确后发送下一航点信息,直至所有航点信息发送完毕。

2.3 航迹动态显示

航迹动态显示的关键问题是更新航路信息时,若每两个点用一个线图元显示,整条航线将由上万条微小线图元组成(遥测数据采样速率为12.5帧/s),势必增加系统负担,若整条航线用一个线图元表示,每接收一个采样点将线图元全局更新一次,将导致地图整体闪烁,影响系统视觉效果。为解决上述问题,系统对航迹的更新采用线图元局部更新的方法,即仅对原有线图元进行部分延长,而非整体更新并且线图元个数始终保持一个。这种方式能非常有效的克服闪烁问题,减轻系统负担。

航迹动态显示的另一问题是在无人操作系统的情况下,运动主体可能移动超出视窗范围。这里采用ZoomTo的地图对中方法来解决这个问题,一旦运动主体超出视窗范围,把地图以当前缩放率对中到运动主体当前坐标处,这样就保证了运动主体始终处于视窗范围。

3 系统应用

通过对系统进行测试及使用,证明该系统运行可靠,能够满足无人直升机试飞过程中的航迹规划及实时航迹监控需要。图5为航迹规划功能应用界面,图6为航迹监控功能应用界面。

4 结束语

本系统在航迹规划过程中用计算机智能判断代替了繁琐的人工计算,且采用点选和拖拽的方式确定航迹点位置,免去了手动输入带来的不便,操作方便直观,规划速度快,交互性强。另外系统构建了飞行航迹实时监控环境,根据实时遥测数据在数字地图上绘制无人直升机飞行轨迹,并可与理论航迹进行对比,实时掌握无人直升机的飞行情况,为地面飞行操纵提供分析依据。随着无人直升机飞行性能的不断提高,本系统航迹可行性判断条件也将不断完善与改进,航迹规划的智能性与优化性也还须进一步提高。

参考文献

[1]骆训纪,朱纪洪,孙增圻.无人机航迹系统研究[J].测控技术,2002,21(11):1-4.

[2]孙云春,李建海.MapX控件技术在模拟导航仿真系统中的应用[J].微计算机信息,2008(24):145-147.

[3]尹旭日,张武军.Visual C++环境下MapX的开发技术[M].北京:冶金工业出版社,2009:33-34.

[4]李华超,吴潜,陳春俊,等.基于BCB&MapX的无人机航路规划与监控系统实现[J].计算机应用,2007,27(09):2315-2318.

[5]刘波,卢京潮,吴益明.无人机地面导航站系统的设计与实现[J].计算机测量与控制,2006,14(12):1714-1716.