基于HLA与Virtools的高炮驾驶系统仿真平台设计

时间:2022-08-16 03:30:20

基于HLA与Virtools的高炮驾驶系统仿真平台设计

摘 要:针对武器系统模拟训练平台开发中,开发人员工作量大,开发周期长,开发系统效果不理想等问题,提出了基于3D/VR开发平台(Virtools)与分布交互仿真高层体系结构(HLA)相结合的设计方法。在给出高炮驾驶系统一个设计体系结构之后,针对该仿真平台设计中有关RTI BB模块的开发、运动控制仿真、视景显示、模型的物理化及碰撞检测这4个关键技术进行了深入探究。最后基于此方法设计了某自行高炮驾驶系统的仿真平台。关键词:Virtools; 分布交互仿真; 高层体系结构; 驾驶系统; 视景显示

中图分类号:TN919-34;TP391.9 文献标识码:A

文章编号:1004-373X(2010)18-0176-04

Design of Anti-aircraft Gun Driving System Operation Simulation

Platform Based on HLA and Virtools

WANG Peng,ZHU Yuan-chang,DI Yan-qiang

(Department of Optical & Electrical Engineering, Ordnance Engineering College, Shijiazhuang 050003, China)

Abstract: To solve the problems existing in the simulation training system such as large amount of work, low development efficiency and low quality, a design method of the simulation training system based on Virtools and HLA is put forward. After providing a design system structure of the anti-aircraft gun driving control system,four key technologies (development of RTI BB module, motion simulation, visual display, model physical zing and collision detection) are investigation. An operation simulation platform of a certain anti-aircraft gun driving control system was designed based on this method.Keywords: Virtools; distributed mutual simulation; high level architecture (HLA); driving control system; visual display

0 引 言

分布交互仿真技术从产生(SIMNET计划)到DIS2.X,IEEE1278.X系列协议和ALSP协议,进而发展到今天的HLA,都是为了解决建模与仿真(Modeling and Simulation,M&S)领域存在的问题。如:绝大多数仿真平台的应用实现较为独立;仿真平台之间的互操作性和重用性差;开发、维护和使用费时间,而且成本高;可验证性、有效性和置信度较差[1]。当前,形式、功能单一的模拟训练系统已不能满足部队的需求,因此如何越好越快地设计出能够面向全系统、全任务空间、全领域的模拟训练系统已成为当前一个迫切需要解决的问题。

HLA就是从体系结构上建立的这样一个框架,它能尽量涵盖M&S领域中涉及各种不同类型的仿真系统,并利于相互间的互操作和重用性,同时能够利用不断发展的新技术来满足复杂大系统的仿真需求。采用HLA的技术体制,可以将单个仿真应用连接起来组成一个大型的虚拟世界。在这个虚拟世界中,可以进行大规模多对多/部队对部队的战术、战略的原则研究和演练仿真。

Virtools一款3D/VR软件由法国全球交互三维开发解决方案VIRTOOLS公司开发,主要由5个组件的开发平台和6个可选模块组成[2]。它采用模块化思想将原先由程序代码实现的功能封装入行为模块(building blocks),然后对行为模块进行相关的编排链接,就可驱动三维场景,显示相应的输出。基于Virtools的这种设计模式,本文提出了基于HLA/RTI和Virtools的高炮驾驶仿真平台设计方法。

1 驾驶系统仿真平台设计体系结构

1.1 基于HLA/Virtools模拟训练系统设计方法

HLA的核心思想是互操作和重用,其显著特点是通过运行支撑环境RTI(run time infrastructure)提供通用的、相对独立的支撑服务程序,将仿真应用与底层的支撑环境分开,也就是将具体的仿真功能实现、仿真运行管理和底层通信传输三者分离,隐蔽了各自的实现细节,从而使各部分可以相对独立地进行开发,并能充分利用各自领域的先进技术。鉴于HLA的特点,分布式驾驶系统仿真平台采用HLA的标准设计。

分布式仿真系统离不开模型渲染和场景驱动,在这方面,目前常用的有2种方法:一种是直接基于OpenGL技术进行模型的渲染和场景的驱动;另一种是使用场景管理/驱动软件,如Vega,Vega Prime等,但是这种方法同样也离不开对OpenGL底层技术的了解,在进行场景驱动时仍然离不开编辑环境,如VC++等的支持。本文所述的3D/VR软件Virtools则将相关底层技术封装入行为模块,使开发者不需要了解和直接利用底层的OpenGL或Direx技术等就能得到开发应用,而且也使资源的重用性大大增强。除此之外,Virtools还有三维可视化编辑环境和流程图似的脚本编辑环境。基于此,开发者只需基于相应的逻辑关系对相关对象进行脚本编排,就能驱动可视化编辑环境中的对象和场景发生相应的变动。在这种设计思路和模式下,在对开发者的要求和工程开发周期大为降低的同时,虚拟场景在逼真度、沉浸感和交互性方面都得到了加强[3]。

为此,本文提出了基于Virtools与HLA的模拟训练系统设计方法,为了使HLA/RTI能够与Virtools相兼容,对HLA/RTI的相关功能进行了二次封装,并通过Virtools SDK将其功能封装进Virtools特有的BB中,这样当联邦成员要与联邦或其他成员进行信息交互时,只需调用相应的HLA/RTI BB,就可实现相关功能;不同的联邦成员只需修改相关的输入参数,就可使用相同的HLA/RTI BB,这样就使模块的重用性得到了较大的增强[4]。开发RTI BB的步骤如下:首先将RTI Ambassador和Federate Ambassador相关的功能服务封装成Win32形式的dll,然后将Win32 dll在环境下封装成RTI BB模块。

1.2 高炮外观模型的建立

高炮外观模型指模拟训练系统对某自行高炮外观的模拟,本文采用3dMax与Virtools相结合的方式对装备进行外观建模。首先,根据装备实物及相关资源在3ds Max中创建高炮模型和3D场景。为了提高模型的逼真度,可采用纹理映射、多通道等技术对模型加以优化,然后将模型导入Virtools中进行渲染以及做最终的处理。导入装备和地形模型之前,需要在3ds Max中安装程序3dMax Exporter.exe;导出时,首先是把建立在3dMax中的装备和地形模型以.nmo文件的形式进行输出。.nmo文件是Virtools Dev默认的用于存储角色和场景以及物体等信息的文件格式。然后,需要把相应的.nmo文件导入Virtools Dev中,添加实行交互的模块脚本。在项目保存成可编辑的工程文件.cmo文件或者只读的工程文件.vmo后,可以通过Virtools Dev自带的程序开发包(即SDK)进行.exe应用文件的开发。

1.3 联邦成员的程序框架

RTI对联邦执行的创建/撤销、联邦成员的加入/退出以及对象实例的注册/删除等操作,都是根据联邦成员的请求来完成的[5]。

因此,联邦执行的生命周期与联邦成员是息息相关的。根据HLA/Virtools的联邦成员结构,采用双线程结构。一个是窗口界面线程,主要用于管理用户和窗口的交互;另一个是仿真线程,主要用于完成仿真模型的执行和联邦交互。联邦成员的程序流程如图1所示。

图1 联邦成员的程序流程

2 驾驶系统仿真平台开发的关键技术

2.1 驾驶员RTI BB模块的开发

高炮武器系统仿真平台的互联分布通过RTI BB来实现,本仿真平台设计RTI BB时,主要考虑BB模块输入/输出参数端口的设计[6]。对于输入输出参数,分为一般参数和特殊参数,其中一般参数主要包括:创建联邦执行、加邦执行、初始化时间管理、公布与订购、时间推进等;特殊参数对不同联邦成员的需求各异,主要包括:启动RTI进程、需要更新的信息、需接收的信息等。具体实现时本文设计的RTI BB,是通过将HLA/RTI 中与本地联邦成员相关的本地RTI大使(RTI ambassador)和联邦成员大使(federate ambassador)的相关RTI BB服务进行封装调用,使得基于Virtools设计的脚本在驱动RTI BB时,就可执行联邦成员相应地创建联邦、加邦、公布订购、时间推进、更新成员信息、获取联邦或其他成员信息等功能。本仿真平台开发的RTI BB如图2所示。

图2 驾驶员联邦成员的RTI BB

2.2 高炮运动控制的仿真

人机交互模型的目的在于将人的操作转换为装备机理模型的输入。模拟训练系统中人机交互设备主要有两种:计算机标准外设、实装部件。对于计算机标准外设如鼠标、键盘等,由于计算机系统内核有特有的接口,在Virtools中也有相应的已封装好的行为模块,故可以直接进行仿真应用;在一些情况下,为了使沉浸感更强,经常需要用到虚拟现实(VR)设备,如方向盘、刹车、油门等[7]。为了支持这个功能,Virtools开发了VR Pack,该模块含有完备的虚拟实境硬件驱动程序,而且包含有先进的显示、声音同步技术,如Game lock等,这样对于VR设备就可以方便地进行仿真应用,整个平台从功能上可以分为以下几个模块[8]:

(1) 虚拟高炮在虚拟战场中的前进、后退、转向、停止等动作;

(2) 配合指挥车及其他高炮进行协同作战,包括完成要求的各种集结、编队行进等功能;

(3) 实时地将高炮的车体姿态信息传输给其他各个节点,如图3所示。

2.3 驾驶员视角的视景显示

高炮驾驶员通过眼睛获得90%以上的信息,所以,视景系统是驾驶模拟技术中非常重要的部分[9]。实现视景系统的关键就是如何制作出真实、实时、高水平的图像,使得路面和交通环境就像真实的一样。分析比较了几种常用生成视景系统图像的方法,提出了基于图像的虚拟现实技术,它不依赖于几何模型,而是通过在Virtools虚拟环境中实时获取的一组图像,通过这些图像的适当组合来生成位于不同试点的新视图。这种方法的最大优点在于生成的环境是这组图像所反映的客观真实场景,而且独立于场景复杂性。本驾驶系统中,基于此方法设计了驾驶员视角的视景显示系统,首先将相机获取的图像拼接为宽角度图像实现的单视点漫游,再通过图像插值和视图变形技术实现各视点间的平滑过渡,最终完成驾驶员视角区域内的连续漫游。图4给出某时刻,炮车驾驶舱三个潜望镜视窗的三维视景截屏仿真图。

图3 炮车行驶控制的仿真

图4 以第一视角操纵炮车在虚拟环境中运行

2.4 模型的物理化及碰撞检测

碰撞检测是构造模拟训练系统不可或缺的一个重要部分,在高炮驾驶仿真系统中,场景物体的碰撞处理,主要涉及到高炮与地面、高炮与地上景物(树木、栅栏等)、高炮与运动物体之间的碰撞[10]。当虚拟角色或者摄像机闯入地下或者走进树林的时,即使模型建造得多么逼真,也会给用户一种不真实的感觉,严重地影响了整个系统的效果和价值。

导入Virtools的高炮模型为组合模型,所以首先得赋予虚拟物体的物理属性,Virtools中物理化虚拟物体,要调用Physicalize行为模块给虚拟物体赋予重力、摩擦力、弹力等属性,使其具有真实物体的一些特性,这时Virtools会在模型周围按照选择的包围盒生成一个碰撞检测面,以便对模型进行交互测试。此外,还需给部件添加空间和逻辑上的约束机制,使高炮模型可以合理、正常的协同运作。在Virtools中碰撞检测使用的主要是层次包围盒方法,功能主要由标准外部构件管理应用程序接口(standard external managers API)中的碰撞管理接口(collision manager API)来实现。通常层次包围盒合上一些特殊的碰撞检测应用,就能按照实际需求,实时、精确地实现物体之间的交互测试,极大程度地增强用户操作模型时的真实感和交互感。┩5给出高炮在仿真环境中发生碰撞检测,无法穿透障碍物的仿真示意图。

图5 碰撞检测发生,高炮无法穿透障碍物

3 高炮驾驶系统平台开发应用

基于上文提到的开发设计方法,本文设计了如图6的某自行高炮单炮的联邦系统。

图6 某自行高炮驾驶系统训练平台

通过模拟高炮在虚拟战场环境中逼真的动力学、动力学特征,对高炮在虚拟战场环境中的各种运动行为进行仿真,以产生逼真度高的建模仿真效果。其中,仿真导演台就是通过人机交互界面,对各节点进行初始化,同时控制整个仿真过程,包括启动、暂停、停止和控制仿真推进的快慢;机理解算成员节点由VC++和Matlab共同编辑完成。其中,解算由Simulink负责完成,主要用来对仿真系统采集的数据进行分析处理,以实现装备机理仿真,并为外观模型提供数据支撑; 三维视景显示成员利用Virtools 软件进行仿真,用于实时显示整个三维仿真场景;成员间的交互则由RTI来实现。通过测试,整个高炮驾驶系统的渲染帧速率为50~60 f/s,完全可以满足虚拟场景交互的实时性和逼真度要求。

4 结 语

本文结合当前仿真需要,在构建高炮驾驶系统仿真平台时,提出了一种新的仿真平台设计方法,即将Virtools与HLA相结合,针对平台开发中的几个关键技术进行了研究,并提出了解决方案,解决了高炮作为联邦成员在虚拟环境中的运动等问题。此法既科学又易于实现,对今后相关的开发工作具有较好的参考价值。

参考文献

[1]周彦,戴剑伟.HLA仿真程序设计[M].北京:电子工业出版社,2002.

[2]刘明昆.三维游戏设计师宝典:Virtools开发工具篇[M].成都:四川电子音像出版中心,2005.

[3]程勇刚,朱元昌,邸彦强.基于Virtools/HLA的跨广域网多联邦互联研究[J].系统仿真学报,2009,21(19):6104-6107.

[4]程勇刚,朱元昌,邸彦强.基于Virtools与HLA的模拟训练系统研究[J].计算机仿真,2008,25(6):265-269.

[5]张家祥.HLA仿真技术应用教程[M].北京:国防工业出版社,2007.

[6]邸彦强,柴旭东,李伯虎,等.HLA/RTI网络化与以模型为中心的分布仿真互联模式研究[J].计算机集成制造系统,2006,12(4):504-510.

[7]薛涵.基于Virtools的汽车驾驶仿真系统研究[D].哈尔滨:哈尔滨工程大学,2007.

[8]淮永建,王梅峰,左正兴.基于多图动力学理论的赛车游戏引擎的设计与实现[J].计算机应用,2005,25(2):414-416.

[9]李崴巍,杜飞,钟延炯.基于图像的虚拟现实技术在驾驶模拟器中的应用[J].微计算机信息,2006,22(2):230-233.

[10]马登武,叶文,李瑛.基于包围盒的碰撞检测算法综述[J].系统仿真学报,2006,18(4):1058-1061.

上一篇:含源-负载耦合的准椭圆函数滤波器小型化优化设... 下一篇:Multisim在触发器工作波形分析中的应用