一种无人机地面综合检测设备模拟训练系统的研制
2021-04-19赵育良黎志强
赵育良 黎志强 黄 诘
(海军航空大学青岛校区,青岛266041)
1 引言
作为无人机系统不可或缺的组成部分,无人机地面检测设备(后简称地检设备)主要用以在地面实施对无人机及机载设备的状态检测,为无人机的放飞提供必要的依据。所研究的这种无人机地检设备主要由二次电源、综合计算机及控制面板组成,整个操作过程包括交流电的供电、直流电源箱启动、检测台供电、综合计算机供电启动及电源输出控制、机载设备检测等,在检测过程中地勤人员还要协同观察飞机舵面等部件的相应动作,整个检测过程操作复杂烦琐,要求严格。而这种无人机系统一般四套飞机只有一台地面检测设备,如果单纯依靠实装训练,不可避免会损害装备影响其使用寿命,训练费效比高,训练时常被迫降低训练难度,简化训练程序,影响训练效果。基于此,研制一套模拟仿真训练系统,为受训者提供一个极为逼真的训练环境,使受训者最大限度地得到接近现实场景的训练,显得尤为重要。当前,针对不同的应用场景,国内外有Virtools、VegaPrime、Quest3D、Unity3D、EON 等多种三维仿真开发平台,这些不同的平台在各自不同的领域有着各自的优势,但也不同程度存在短板。如Virtools 对CAD 模型支持和管理不够,VegaPrime 多用于视景开发但交互性差,Quest3D 兼容整合性差。相对而言,EON 对于机载及地面设备模拟通电及拆装训练则有着独特的优势,虽然其视景效果有限,但其在面片的管理、软件兼容性等方面优势明显,且提供EonX 标准插件供高级语言平台调用,具有较好的二次开发能力和交互性,是公认的整合性、延展性较好的虚拟现实开发平台之一。基于此,本项目以C#为平台,基于EON 和LabWindows/CVI 研制了一套基于桌面的地检设备的模拟仿真训练系统,该系统采用分布计算的C/S 体系结构,利用UDP 协议进行通讯,实现各客户端的协同控制,可同时供多用户单独或协同训练。
2 系统总体设计[1~6]
整个模拟仿真训练系统以C#为平台,采用分布计算的C/S 体系结构设计实现,系统将人机交互、数据解析及逻辑解算分别在不同的进程中在服务器端进行计算,这样可保证人机交互的实时性与系统逻辑的可靠和一致性。用户通过客户端程序实现人机交互,并将操作内容以预置变量的形式实时发送至服务器,服务器则通过预置逻辑对动作解算响应利用UDP 协议与客户端进行通讯,通过SOCKET 接收服务器端数据,通过数据解析获得当前无人机及地检设备各子系统组件的工作状态,并利用数据驱动客户端相应面板及操作界面显示相应状态。根据分布式原则,只要网内有客户端接入服务器,即可随时加入该组,实时动态操作并显示动态画面。对于机场、无人机及地面检测设备,为了便于管理及交互设计实现,系统选用3dsMax 建立仿真对象的物理模型,通过EON Studio 实现三维视景下的交互操作及状态显示,而对于综合计算机检测画面,为了与原设备完全一致,系统则通过LabWindows/CVI 设计实现,针对本客户端软件的完整性,系统将该模拟封装成一个动态链接库进行调用,并通过C#平台进行数据中转,实现服务器与客户端、三维场景与动态链接库之间的数据交互。为了更好地适应无人机保障维护人员的实际训练需求,这种无人机地检模拟仿真训练系统还设置了资料检查、外部检查、仿真拆装、仿真通电及系统管理等功能模块,本文重点论述仿真通电的技术实现,系统总体框图如图1所示。
图1 系统总体组成框图Fig.1 System overall composition diagram
3 系统技术实现
如上所述,本系统是以C#为开发平台结合EON和LabWindows/CVI 实现的。其突出特点主要有三点:一是针对机载及地面设备保障训练需求,基于COM 标准组件和动态链接库的二次开发思想,构建了一套人机交互强的模拟训练平台;二是为了实现动态图形化界面并提升其易操作性,综合运用COM 组件和Windows 消息拦截技术,利用ShockWave 控件在C#中调用flash 导航程序,制作软件导航系统;三是为了提升地检设备操作画面的逼真度,系统采用与原装备完全一致的LabWindows/CVI 实现复杂的检测操作面板二维仿真画面开发,封装成标准动态链接库后供C#平台调用。具体技术实现如下:
3.1 建立仿真模型
根据本系统的功能设计需求,系统模型主要包括无人机(含可活动舵面、副翼)、地面检测车(含车内必要配套设备)、检测台、机场及机库等。由于3ds Max 具有强大的建模和贴图功能,而且EON Studio 还专门提供了专用插件,不仅能将模型直接导出标准EON 格式,且能较好的保留贴图及预设动画信息,因此本系统采用3ds Max 作为建模工具。与日常见到的效果图及动画制作相区别,由于需要对仿真模型在仿真环境下进行实时渲染,因此对模型有更高的要求,既要有逼真的外形,又到做到尽可能少的面片数。
在建模及模型优化的过程中要关注以下几个方面:一是在不影响外形的情况下用尽量少的面片数。在建模过程中尽量少用布尔运算、放样等操作,尽量通过点、线、面的拉伸、挤出等操作构建复杂模型,且注意区分视景中的主体及非主体模型,在视景中看不到的面片尽量删除,不影响显示效果尽量少分段,确保用最少的面片展现最优的模型。另外EON 为了优化贴图调入效率,要求将其集中置于2×2的一张图上。二是在模型制作前就要规划分组并合理命名,这样通过插件转换后会带入EON 文件,便于后续的模型管理及调用。三是为了提升用户体验,保证系统的场景和操作的逼真性,构建的可视化物理模型必须做到与仿真对象高度一致,做到照片级的质量,而且尽可能优化,以增加交互实时性。
3.2 仿真实现
根据设计要求,仿真通电系统在形象直观地将装备各个部分的3D 模型、通电操作、通电现象展现给受训者同时,还需具备指导训练、记录训练过程、训练过程监控、训练考核与管理等功能。为了实现上述功能,在软件的开发过程中,需要完成用于用户、训练过程及相关技术数据管理的数据库设计,根据三维交互仿真需求,完成机场环境、飞机及其部件以及测试设备等仿真对象3D 制作,在此基础上,在EON Studio环境下进行行为逻辑模型编写,而复杂的检测操作面板二维仿真画面则利用LabWindows/CVI 开发实现,封装成标准动态链接库后供C#平台调用,最终在C#平台下,对二三维的仿真模块进行二次开发,实现其信息交互与响应,依据训练大纲,完成仿真程序开发。其仿真实现过程如图2所示。
图2 系统仿真实现过程Fig.2 System simulation process
3.2.1 三维仿真环境实现
如上所述,本系统是利用3DMax 完成仿真对象三维物理模型制作的,通过EonRaptor 插件将模型导出成EON 标准格式(*.eoz)。为了适用Win7 操作平台,系统采用EON7.0 进行开发。在EON 平台下,打开导出的模型后,会将模型分组、预设动作等带入,并自动生成视景漫游控制程序,用户可调整漫游方式,并根据实际需要对三维视景的参数进行调整。在此基础上,根据预先编制的仿真逻辑脚本,利用EON 提供的丰富的节点,按照无人机地检流程,实现与实际训练操作规程一致的交互操作,并按照设备工作原理同步显示相关通电现象(指示灯及舵面偏转等)。对于一些简单的操作逻辑可通过Place、Latch、ClickSensor、TimeSensor、Rotate 等节点实现,而对于复杂动作或操作逻辑,则需通过系统提供的Script 节点,采用JavaScript 脚本语言实现,用户可根据实际需要自定义输入输出接口,并编写响应函数,实现与封装节点的交互响应。EON 软件利用其传感器节点(如ClickSensor)感知接收用户利用鼠标或键盘完成的操作,然后将对应的事件消息(如LeftButtonDown)通过内部路由传送至相应的功能节点(如Place)或Script 节点等,实现对消息的响应或处理,驱动模型按照相应的逻辑动作或改变属性,并通过显示、音频等输出设备将结果反馈给用户,从而达到三维仿真环境下交互操作的目的。这一过程的基本原理如图3所示。为了便于操作者在三维视景下漫游操作,系统加入EON 提供的WalkAbout 节点,并通过该节点的相关属性依据用户的操作习惯设置漫游操控的鼠标及键盘、漫游速度、旋转速率、视角方向等。同时系统还利用CollisionObject 节点实现对于仿真环境的碰撞检测,加强用户的体验感。图4 是本软件EON 环境下三维仿真实现传输逻辑图,这是整个系统开发的核心,直接关系到与应用程序的仿真流程及接口通信逻辑。
图3 EON 基本逻辑原理图Fig.3 EON basic logic diagram
图4 EON 节点传输逻辑图Fig.4 EON node transmission logic diagram
3.2.2 二维仿真动态画面实现
由于这种无人机的地面综合检测设备的动态检测画面是利用LabWindows/CVI 开发的,因此为了体现仿真训练系统的逼真度,给训练者更加真实的体验,本系统的地检二维仿真画面亦是通过该软件开发实现的,整个仿真界面利用LabWindows/CVI提供的标准控件搭建,其数据显示与操作交互完全与原设备一致,如图5所示。考虑到动态链接库具有很好的可移植性和通用性,系统将仿真程序以动态链接库(Dynamic Link Library,DLL)的形式封装为一种通用的基于Windows 的程序模块,方便在第三平台的调用与数据交互,满足信息交互的需求,系统还自定义了InitForm 和DataTrans 两个接口函数。LabWindows/CVI 封装动态链接库文件的操作如下:一是将源程序中的主函数Main 用DllMain 替代,方法是利用功能菜单【Edit】 | 【Insert Construct】 |【DLLMain】实现;二是利用功能菜单【Build】 |【Target Type】 |【Dynamic Link Library】打包DLL 文件。
图5 综合检测软件仿真界面Fig.5 Comprehensive detection software simulation interface
3.3 客户端仿真环境集成[16]
由于客户端程序最终以C#为平台进行开发,因此,需要通过调用COM 组件或动态链接库的形式对上述子仿真程序进行封装,并按预置的仿真逻辑设置相关通讯接口的信息交互属性及响应函数。
对于三维仿真模块,当基于EON 环境的通电仿真逻辑完成后,可保存为标准的eoz 格式,但为了保护文件的安全,可将其发布成*.edz 格式文件,利用标准COM 组件实现在C#中的调用,利用预设接口,通过预先封装的事件响应方法,对EON 的二次开发实现信息的交互与响应。要实现这一步必须借助EonX 控件,EonX 是EON 提供给二次开发平台(即C#)的通信接口,通过它可以把预先完成的行为模型显示在C#平台中,进行正常浏览。需要注意的是对于64 位Win7 以上平台下,必须使用EonX7.0 及以上控件才能支撑。控件通过EON 内部的路由输入接口接受C#平台的发送的输入消息,实现对外来指令的响应,同时,EON 亦可利用输出接口向C#平台输出消息,完成这一交互过程是通过EONX 中封装的事件响应接口——InEvent 和OutEvent 实现的。
而对于LabWindows/CVI 动态链接库,需要采用以下方式进行调用,并设置接口函数入口并声明要使用的函数。
[DllImport("SimFormDll.dll",EntryPoint = "InitForm")]
static extern int InitForm();//面板调入函数
static extern void DataTrans(ushort[]inputdata,ushort[]outputdata);//数据通信接口函数
如图6所示。
图6 EON、动态库与C#的接口关系Fig.6 Interface relationship between EON,dynamic library and C#
4 系统集成及测试
4.1 系统构建及交互界面设计
用户交互界面与导航对于用户的使用体验非常重要,一个好的人机交互界面往往能够提高用户的操作和训练效果,尤其对于基层部队用户,这一点显得尤为重要。因此考虑到界面的美观和易操作性,软件采用flash 制作软件导航系统,利用ShockWave 控件在C#中调用,在此基础上整合上述第三方插件,综合实现系统构建。为了避免Flash右键菜单对用户带来的困扰,系统还通过截获鼠标右键响应消息的方式,将其屏蔽。为了能更好的服务于一种无人机装备保障训练,系统还设置了资料检查、外部检查、仿真拆装及系统管理等功能模块,系统导航界面和仿真三维仿真环境效果如图7所示。
图7 系统导航界面和仿真三维仿真环境Fig.7 System navigation interface and simulation 3D simulation environment
4.2 系统测试
按照系统方案的技术指标要求及相关测试大纲,对系统进行了测试。通过导航界面进入一种无人机通电检查的仿真环境,并可利用快捷键在环境中进行漫游,观察机场、飞机及相关车辆和测试设备。经测试,系统可根据预设的逻辑,利用键盘、鼠标等输入设备在虚拟环境下依据相关规程要求进行规范的检测操作,并利用特定视窗观察相关动作和现象,整个任务覆盖率达到90%以上。系统各级导航界面友好,操作程序、方法及相关逻辑准确,二三维仿真环境的响应与显示实时正确;系统响应时间达到预设要求,能够满足用户视觉需要,无停顿感和交互延迟感;系统稳定可靠,48 个小时以上的连续运行测试未发现异常现象;系统操作简便,键盘和鼠标键的功能定义合理,符合用户的常规操作习惯;系统仿真环境逼真,各子系统之间的通信响应正常,能够完成一种无人机地检全流程仿真操作,符合设计要求。
5 结束语
本文针对一种无人机训练手段缺乏的问题,提出并实现了无人机地检模拟仿真训练系统研制,重点论述了系统总体构成及仿真通电检查模块的设计与实现。系统以C#为主平台,对EON 和LabWindows/CVI 仿真程序模块进行二次开发,实现了通用仿真平台设计及一种无人机地检设备的仿真逻辑,能够按照设计要求实现基于维护规程的全流程仿真操作,该系统的研制,较好的解决了相关设备训练手段缺乏的难题,为装备能力的提升提供了重要支撑。