D0I:10.13374/.issn1001-053x.2012.01.016 第34卷第1期 北京科技大学学报 Vol.34 No.1 2012年1月 Journal of University of Science and Technology Beijing Jan.2012 基于分布式虚拟现实的高超声速飞行器仿真系统 罗 熊)四孙增折2》 郭国庆” 1)北京科技大学计算机与通信工程学院,北京1000832)清华大学计算机科学与技术系智能技术与系统国家重点实验室,北京100084 通信作者,E-mail:xuo@usth.cdu.cm 摘要针对高超声速飞行器X-38,基于Java和虚拟现实建模语言(VRML),提出并具体实现了一个基于客户机/服务器模 型的分布式虚拟仿真系统,重点讨论了其中的三维场景建立与动作事件建模、分布式网络结构设计与数据库管理、场景接口 实现等关键技术.虚拟仿真系统实际运行效果良好.该系统具有良好的可移植性和可扩展性,易于大规模部署,也可方便地 进行二次开发 关键词高超声速飞行器:虚拟现实:仿真:网络结构 分类号TP391.9 Hypersonic vehicle simulation system based on distributed virtual reality LW0 Xiong》☒,SUN Zeng-qi2,GU0Go--qing' 1)School of Computer and Communication Engineering,University of Seience and Technology Beijing,Beijing 100083,China 2)State Key Laboratory of Intelligent Technology and System,Department of Computer Science and Technology,Tsinghua University,Beijing 100084, China Corresponding author,E-mail:xluo@ustb.edu.cn ABSTRACT A distributed virtual simulation system of the hypersonic vehicle X-38 based on the client/server model was presented through using Java and virtual reality modeling language (VRML).Some key technologies in the virtual simulation system,such as 3D scene reconstruction and event modeling,distributed network architecture design and database management as well as scene interface implementation,were discussed in detail.The practical running result of this virtual simulation system is good.The simulation system has good portability and scalability.It is easy to deploy under the large-scale environment and to implement the secondary develop- ment. KEY WORDS hypersonic vehicles:virtual reality:simulation:network architecture 高超声速飞行器是一类典型的近空间飞行器, 研究计划中,均对此高度关注,该领域的研究已成为 它能在距海平面20~100km的空间区域内进行5 当前的一个热点和难点. 马赫以上的高超声速、高机动性和高精度飞行.它 在高超声速飞行器的研究中,一个重要的工作 集航空与航天的优势于一体,具有往返进出大气层 是飞行器的仿真系统设计与开发.基于虚拟现实 自由起降和飞行的能力.由于高超声速飞行器具有 (virtual reality,VR)技术的飞行仿真系统,可以直观 极大的战略意义和应用价值,世界主要航空航天大 方便地检验飞行器飞行过程的动态性能,是未来飞 国都在开展相关工作,目前大多处于概念研究和可 行仿真技术的发展方向习.由于高超声速飞行器 行性试验阶段.美国在该领域始终处于领先地位. 对象的特殊性,对逼真度、精确度和实时性要求较 我国也高度关注这方面的研究工作,在国家中 高,单机系统难以适应仿真任务,因此将虚拟现实技 长期科技发展规划以及国家自然科学基金委的重大 术与网络环境下的多机系统结合形成的分布式虚拟 收稿日期:2011-05-25 基金项目:国家自然科学基金资助项目(61174103:61074066:61004021):中央高校基本科研业务费专项资金资助项目(FRF-TP-一11002B):北 京市重点学科建设资助项目(XK100080537)
第 34 卷 第 1 期 2012 年 1 月 北京科技大学学报 Journal of University of Science and Technology Beijing Vol. 34 No. 1 Jan. 2012 基于分布式虚拟现实的高超声速飞行器仿真系统 罗 熊1) 孙增圻2) 郭国庆1) 1) 北京科技大学计算机与通信工程学院,北京 100083 2) 清华大学计算机科学与技术系智能技术与系统国家重点实验室,北京 100084 通信作者,E-mail: xluo@ ustb. edu. cn 摘 要 针对高超声速飞行器 X--38,基于 Java 和虚拟现实建模语言( VRML) ,提出并具体实现了一个基于客户机/服务器模 型的分布式虚拟仿真系统,重点讨论了其中的三维场景建立与动作事件建模、分布式网络结构设计与数据库管理、场景接口 实现等关键技术. 虚拟仿真系统实际运行效果良好. 该系统具有良好的可移植性和可扩展性,易于大规模部署,也可方便地 进行二次开发. 关键词 高超声速飞行器; 虚拟现实; 仿真; 网络结构 分类号 TP391. 9 Hypersonic vehicle simulation system based on distributed virtual reality LUO Xiong1) ,SUN Zeng-qi 2) ,GUO Guo-qing1) 1) School of Computer and Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China 2) State Key Laboratory of Intelligent Technology and System,Department of Computer Science and Technology,Tsinghua University,Beijing 100084, China Corresponding author,E-mail: xluo@ ustb. edu. cn ABSTRACT A distributed virtual simulation system of the hypersonic vehicle X-38 based on the client /server model was presented through using Java and virtual reality modeling language ( VRML) . Some key technologies in the virtual simulation system,such as 3D scene reconstruction and event modeling,distributed network architecture design and database management as well as scene interface implementation,were discussed in detail. The practical running result of this virtual simulation system is good. The simulation system has good portability and scalability. It is easy to deploy under the large-scale environment and to implement the secondary development. KEY WORDS hypersonic vehicles; virtual reality; simulation; network architecture 收稿日期: 2011--05--25 基金项目: 国家自然科学基金资助项目( 61174103; 61074066; 61004021) ; 中央高校基本科研业务费专项资金资助项目( FRF--TP--11--002B) ; 北 京市重点学科建设资助项目( XK100080537) 高超声速飞行器是一类典型的近空间飞行器, 它能在距海平面 20 ~ 100 km 的空间区域内进行 5 马赫以上的高超声速、高机动性和高精度飞行. 它 集航空与航天的优势于一体,具有往返进出大气层 自由起降和飞行的能力. 由于高超声速飞行器具有 极大的战略意义和应用价值,世界主要航空航天大 国都在开展相关工作,目前大多处于概念研究和可 行性试验阶段. 美国在该领域始终处于领先地位. 我国也高度关注这方面的研究工作,在国家中 长期科技发展规划以及国家自然科学基金委的重大 研究计划中,均对此高度关注,该领域的研究已成为 当前的一个热点和难点. 在高超声速飞行器的研究中,一个重要的工作 是飞行器的仿真系统设计与开发. 基于虚拟现实 ( virtual reality,VR) 技术的飞行仿真系统,可以直观 方便地检验飞行器飞行过程的动态性能,是未来飞 行仿真技术的发展方向[1--3]. 由于高超声速飞行器 对象的特殊性,对逼真度、精确度和实时性要求较 高,单机系统难以适应仿真任务,因此将虚拟现实技 术与网络环境下的多机系统结合形成的分布式虚拟 DOI:10.13374/j.issn1001-053x.2012.01.016
第1期 罗熊等:基于分布式虚拟现实的高超声速飞行器仿真系统 ·103· 仿真系统,是高效模拟飞行过程的有效手段,这是目 X 前飞行仿真研究中的一个热点].面向高超声速 F(0.w.) Java与EA技术 飞行器,相应的分布式虚拟现实仿真系统还很缺乏, 实时场景 针对这一对象,进行这方面的研究很有意义. 生成 飞行数据坐标转换 用户 1仿真系统总体架构 VRML 用户 高超声速飞行器 虚拟 网络 1.1应用对象 姿态数据 飞行 环境 场景 这里选择高超声速飞行器X-38为原型对象, →用户 X-38是一种太空站成员返回飞行器(CRV)原型 动态仿真 演示 机(图1).X-38机长7.31m,机高2.22m,翼展 3.81m,其外形借鉴了早期美国空军X-24A升力体 图3高超声速飞行器分布式虚拟仿真系统结构 的设计,同样是标志性的钝头锥无主翼形体回 Fig.3 Distributed virtual simulation system architecture of hyperson- ic vehicles (图2). 俯仰通道: [a=(w,sin a-w,cos a)tan B+w:-Y/(mucosB), United States la.=M-(I,-I)w,ω,]/八 (1) 偏航通道: [B=ω,sina+w,cosa+Z/(mw), 图1高超声速飞行器(X-38)的飞行测试 (2) d,=M,-(L.-I)w.w]/1, Fig.1 Flight test of a hypersonic vehicle X-38 滚动通道: [y=@,-tang (o,cos y-w.siny), (3) o.=M.-(1.-I,)w,w,]/1 式中,αB和y分别为飞行器的攻角、侧滑角和滚动 角,w,0,和0:分别为三通道的角速度,9为俯仰 角,Y、Z分别为升力和侧向力,v为飞行速度.气动 力矩与舵面偏角6.8,和6之间的关系可写为如下 的线性形式m: 图2X-38三维视图 M B Fig.2 3D structure of X-38 M, =M M. (4) 1.2系统结构 M」 L8.] 这里采用VRML(virtual reality modeling language)技术描述高超声速飞行器飞行场景,结合 式中,M.、Ms均为关于飞行器姿态、角速度及飞行 Java Applet和EAI接口控制技术,建立了以客户机/ 速度的多元函数.显然,这是一个强耦合、强非线性 服务器(C/S)为基础的高超声速飞行器分布式仿真 的动力学系统 系统.图3是系统结构图 3分布式仿真中关键技术的实现 2高超声速飞行器姿态动力学模型 3.1基于VRML的高超声速飞行器三维场景的建 考虑到飞行器航程制导的需要以及控制器设计 立与动作事件的建模 的方便,这里特别将X-38此类的高超声速飞行器 VRML是一种用在Internet和Web超链接上 姿态动力学方程写成俯仰、偏航和滚动三通道的 的、多用户交互的、独立于计算机平台的、网络虚拟 形式圆 现实建模语言.它是描述虚拟环境中场景的一种标
第 1 期 罗 熊等: 基于分布式虚拟现实的高超声速飞行器仿真系统 仿真系统,是高效模拟飞行过程的有效手段,这是目 前飞行仿真研究中的一个热点[4--5]. 面向高超声速 飞行器,相应的分布式虚拟现实仿真系统还很缺乏, 针对这一对象,进行这方面的研究很有意义. 1 仿真系统总体架构 1. 1 应用对象 这里选择高超声速飞行器 X--38 为原型对象, X--38 是一种太空站成员返回飞行器( CRV) 原型 机[3]( 图 1) . X--38 机长 7. 31 m,机高 2. 22 m,翼展 3. 81 m,其外形借鉴了早期美国空军 X--24A 升力体 的设 计,同样是标志性 的钝头锥无主翼形体[4] ( 图 2) . 图 1 高超声速飞行器( X--38) 的飞行测试 Fig. 1 Flight test of a hypersonic vehicle X--38 图 2 X--38 三维视图 Fig. 2 3D structure of X--38 1. 2 系统结构 这 里 采 用 VRML ( virtual reality modeling language) 技术描述高超声速飞行器飞行场景,结合 Java Applet 和 EAI 接口控制技术,建立了以客户机/ 服务器( C /S) 为基础的高超声速飞行器分布式仿真 系统. 图 3 是系统结构图. 2 高超声速飞行器姿态动力学模型 考虑到飞行器航程制导的需要以及控制器设计 的方便,这里特别将 X--38 此类的高超声速飞行器 姿态动力学方程写成俯仰、偏航和滚动三通道的 形式[6]. 图 3 高超声速飞行器分布式虚拟仿真系统结构 Fig. 3 Distributed virtual simulation system architecture of hypersonic vehicles 俯仰通道: α · = ( ωy sin α - ωx cos α) tan β + ωz - Y /( mvcosβ) , ω · z =[Mz - ( Iy - Ix ) ωxωy ]/Iz { . ( 1) 偏航通道: β · = ωx sin α + ωy cos α + Z /( mv) , ω · y =[My - ( Ix - Iz) ωzωx ]/Iy { . ( 2) 滚动通道: γ · = ωx - tanφ( ωy cos γ - ωzsinγ) , ω · x =[Mx - ( Iz - Iy ) ωzωy ]/Ix { . ( 3) 式中,α、β 和 γ 分别为飞行器的攻角、侧滑角和滚动 角,ωx、ωy 和 ωz 分别为三通道的角速度,φ 为俯仰 角,Y、Z 分别为升力和侧向力,v 为飞行速度. 气动 力矩与舵面偏角 δx、δy 和 δz 之间的关系可写为如下 的线性形式[7]: Mx My M z = Mα α β ωx ωy ω z + Mδ δx δy δ z . ( 4) 式中,Mα、Mδ 均为关于飞行器姿态、角速度及飞行 速度的多元函数. 显然,这是一个强耦合、强非线性 的动力学系统. 3 分布式仿真中关键技术的实现 3. 1 基于 VRML 的高超声速飞行器三维场景的建 立与动作事件的建模 VRML 是一种用在 Internet 和 Web 超链接上 的、多用户交互的、独立于计算机平台的、网络虚拟 现实建模语言. 它是描述虚拟环境中场景的一种标 ·103·
·104 北京科技大学学报 第34卷 准,其基本目标是建立Internet上的交互式三维多 在VRML技术中,碰撞检测主要是通过Coli- 媒体.也就是说,它是用来描述三维物体及其行为 sion节点进行处理,它负责检测空间中用户与造型 的,可以构建虚拟世界.虚拟世界的显示、交互及网 接近和碰撞的时间,及时提示浏览器 络互连都可以用VRML来描述. 检测用户是否与一个造型发生碰撞,对于 3.1.1飞行器仿真模型的建立 VRML浏览器来说将是非常费时的工作.一个简单 高超声速飞行器模型在飞行仿真系统中是最重 的处理方法是,在Collision节点的proxy域中提供一 要的建模主题对象,为较好地实现对飞行器的建模 个代理造型,这能够加速浏览器对碰撞的检测.例 任务,将遵从以下设计原则. 如:如果一个子节点描述飞行场景中的一棵树,那么 (1)直接参照X-38的实体照片进行建模. 一个代理造型就可以用一个简单的长方体来模拟那 (2)尽可能采用虚拟现实技术中的nline节点 棵树的形体和尺寸,VRML浏览器就可以基于此简 及原型机制简化程序代码,减轻浏览器负担,提高场 化形式进行碰撞检测a 景的浏览速度图 3.2仿真系统分布式网络结构设计与基于Java的 (3)由于高超声速飞行器模型比较复杂,可以 数据库管理 将飞行器分成若干个小部分分别建立,然后再把它 在设计的分布式虚拟仿真系统中,主要基于客 们装配起来.经分析,飞行器可分解为机身主体、轮 户机/服务器模式进行网络拓扑结构设计,同时基于 子、机头、机翅、尾翼和座舱一共六个部分 Java的JDBC技术实现分布式环境下的数据库 (4)将各个部分装配起来形成飞行器的整体 管理. 后,再通过修改它的材质、透明度和亮度来改善它的 客户机/服务器(C/S)模式是一个典型的分布 外观属性,使其看上去更逼真 式网络模式,在Wb应用中,C/S模式衍生出了多 3.1.2飞行场景的建立 种不同体系结构,典型的如双层结构和三层结构 三维地形建模的基本问题是如何根据己经给定 双层结构的Wb系统适用于少量用户在局域 的地形数据,有效地建构能逼真表示地形表面的曲 网内对数据进行操作,但是当客户数量超过数百时, 面模型,即数字高程模型(digital elevation model, 由于双层结构系统和大量的客户保持联系,处理速 DEM).由于DEM本身数据量巨大,再加上显示过 度往往难以满足要求.另外,由于双层结构系统对 程中需要计算纹理与光照,所以在利用VRL显示 数据库的依赖性很强,系统的维护和更新常常令人 三维地形之前,需要对DEM数据进行预处理,避免 头疼,当服务器的机器升级或更新时,软件系统的重 浏览器负荷过重,影响实时性能 新安装和调试非常麻烦. 这里采用了细节层次(level of detail,LOD)模型 三层结构弥补了双层结构的不足,在客户界面 技术,即对场景中的物体,使用具有不同细节的描述 和数据库之间加入了完善系统功能的中间层:中间 方法重新规划一组模型,供绘制时根据物体距离视 层支持数据检索、程序的分布式运行和数据库状态 点的远近选择使用回.LOD模型是一种广泛应用于 控制,中间层可以协调和优化各种处理进程.对于 虚拟现实和计算机图形仿真中的细节控制方法,该 大量客户使用的系统,三层结构的主要特点是能提 方法可有效提高系统的运行速度和交互性能. 高用户的使用效率,同时提高程序的可移植性:由于 在本文设计的仿真系统中,由于场景范围比较 三层结构系统比双层结构复杂,程序开发人员需要 大,只有那些距离视点近的或变化曲率大的区域才 掌握和考虑多种技术因素) 需要较高的细节层次,以保证一定的形状精度和真 由于双层结构的C/S端程序难以承载大量客 实感.因此,为了进一步减少数据量,考虑用不同的 户端同时对服务器端请求,而三层结构又难于实现 分辨率来表示地景的不同区域,即采用多分辨率 和部署,所以本文提出了介于双层结构和三层结构 LOD模型. 之间的新型结构(图4). 3.1.3碰撞检测的实现 新型结构以双层结构为基础,在客户端与服务 在飞行仿真系统中,为了让用户有更逼真的现 器端加入简单的中间服务程序.中间服务程序具有 实体验,必须在场景中加入碰撞检测,防止出现用户 平台无关性,避免了三层结构中中间件难于部署和 进入实体的中心,从而影响了整个系统的效果.这 移动的缺点.同时,中间服务程序将为数据传输、数 是一般系统场景中动作事件建模需要着重考虑的问 据安全作出保障,对基于本方案的二次开发提供友 题之一 好的开发接口,利于系统扩展
北 京 科 技 大 学 学 报 第 34 卷 准,其基本目标是建立 Internet 上的交互式三维多 媒体. 也就是说,它是用来描述三维物体及其行为 的,可以构建虚拟世界. 虚拟世界的显示、交互及网 络互连都可以用 VRML 来描述. 3. 1. 1 飞行器仿真模型的建立 高超声速飞行器模型在飞行仿真系统中是最重 要的建模主题对象,为较好地实现对飞行器的建模 任务,将遵从以下设计原则. ( 1) 直接参照 X--38 的实体照片进行建模. ( 2) 尽可能采用虚拟现实技术中的 Inline 节点 及原型机制简化程序代码,减轻浏览器负担,提高场 景的浏览速度[8]. ( 3) 由于高超声速飞行器模型比较复杂,可以 将飞行器分成若干个小部分分别建立,然后再把它 们装配起来. 经分析,飞行器可分解为机身主体、轮 子、机头、机翅、尾翼和座舱一共六个部分. ( 4) 将各个部分装配起来形成飞行器的整体 后,再通过修改它的材质、透明度和亮度来改善它的 外观属性,使其看上去更逼真. 3. 1. 2 飞行场景的建立 三维地形建模的基本问题是如何根据己经给定 的地形数据,有效地建构能逼真表示地形表面的曲 面模型,即数字高程模型 ( digital elevation model, DEM) . 由于 DEM 本身数据量巨大,再加上显示过 程中需要计算纹理与光照,所以在利用 VRML 显示 三维地形之前,需要对 DEM 数据进行预处理,避免 浏览器负荷过重,影响实时性能. 这里采用了细节层次( level of detail,LOD) 模型 技术,即对场景中的物体,使用具有不同细节的描述 方法重新规划一组模型,供绘制时根据物体距离视 点的远近选择使用[9]. LOD 模型是一种广泛应用于 虚拟现实和计算机图形仿真中的细节控制方法,该 方法可有效提高系统的运行速度和交互性能. 在本文设计的仿真系统中,由于场景范围比较 大,只有那些距离视点近的或变化曲率大的区域才 需要较高的细节层次,以保证一定的形状精度和真 实感. 因此,为了进一步减少数据量,考虑用不同的 分辨率来表示地景的不同区域,即采用多分辨率 LOD 模型. 3. 1. 3 碰撞检测的实现 在飞行仿真系统中,为了让用户有更逼真的现 实体验,必须在场景中加入碰撞检测,防止出现用户 进入实体的中心,从而影响了整个系统的效果. 这 是一般系统场景中动作事件建模需要着重考虑的问 题之一. 在 VRML 技术中,碰撞检测主要是通过 Collision 节点进行处理,它负责检测空间中用户与造型 接近和碰撞的时间,及时提示浏览器. 检测用 户 是 否 与 一 个 造 型 发 生 碰 撞,对 于 VRML 浏览器来说将是非常费时的工作. 一个简单 的处理方法是,在 Collision 节点的 proxy 域中提供一 个代理造型,这能够加速浏览器对碰撞的检测. 例 如: 如果一个子节点描述飞行场景中的一棵树,那么 一个代理造型就可以用一个简单的长方体来模拟那 棵树的形体和尺寸,VRML 浏览器就可以基于此简 化形式进行碰撞检测[10]. 3. 2 仿真系统分布式网络结构设计与基于 Java 的 数据库管理 在设计的分布式虚拟仿真系统中,主要基于客 户机/服务器模式进行网络拓扑结构设计,同时基于 Java 的 JDBC 技术实现分布式环境下的数据库 管理. 客户机/服务器( C /S) 模式是一个典型的分布 式网络模式,在 Web 应用中,C /S 模式衍生出了多 种不同体系结构,典型的如双层结构和三层结构. 双层结构的 Web 系统适用于少量用户在局域 网内对数据进行操作,但是当客户数量超过数百时, 由于双层结构系统和大量的客户保持联系,处理速 度往往难以满足要求. 另外,由于双层结构系统对 数据库的依赖性很强,系统的维护和更新常常令人 头疼,当服务器的机器升级或更新时,软件系统的重 新安装和调试非常麻烦. 三层结构弥补了双层结构的不足,在客户界面 和数据库之间加入了完善系统功能的中间层; 中间 层支持数据检索、程序的分布式运行和数据库状态 控制,中间层可以协调和优化各种处理进程. 对于 大量客户使用的系统,三层结构的主要特点是能提 高用户的使用效率,同时提高程序的可移植性; 由于 三层结构系统比双层结构复杂,程序开发人员需要 掌握和考虑多种技术因素[11]. 由于双层结构的 C /S 端程序难以承载大量客 户端同时对服务器端请求,而三层结构又难于实现 和部署,所以本文提出了介于双层结构和三层结构 之间的新型结构( 图 4) . 新型结构以双层结构为基础,在客户端与服务 器端加入简单的中间服务程序. 中间服务程序具有 平台无关性,避免了三层结构中中间件难于部署和 移动的缺点. 同时,中间服务程序将为数据传输、数 据安全作出保障,对基于本方案的二次开发提供友 好的开发接口,利于系统扩展. ·104·
第1期 罗熊等:基于分布式虚拟现实的高超声速飞行器仿真系统 ·105· 装为Node类.Applet可以通过控制节点browser的 getNode(string nodename)方法获得相应模型节点的 原始数据库 记录数据库 实例: node browser.getNode(config.nodeName) 客户端← 监听服务模块 二次开发 (3)在得到相应节点后,Applet可以通过向该 接口 节点的实例发送消息,达到控制的目的.在这里,此 VRML模型 类消息应首先通过节点实例的getEventIn方法获得 服务器端」 控制句柄实例,然后通过控制句柄实例发送消息 图4仿真系统分布式结构(简化三层结构) 所有通过getEventIn方法获得的控制句柄实例,均 Fig.4 Distributed architecture of the simulation system (simplified 为EventIn类的一个子类.如: 3-ier structure) positionCtrl =(EventInSFVec3f)node.getEventIn 中间服务程序由以下四个主要模块组成 (“set_translation”); (I)数据库管理模块.本模块由DBLinker类实 rotangleCtrl =(EventInSFRotation)node.getEventIn 现,采用JDBC-ODBC桥(JDBC-ODBC BRIDGE), (set_rotation”). 式中,positionCtrl为EventIn类的子类EventInS.- 定义了对数据库的基本操作.上层程序将通过类定 FVec3f的一个实例,改实例通过node.getEventIn得 义的各种方法操作数据库信息. 到,由参数set_translation可知该实例为模型位置控 (2)服务监听模块.本模块由serverLinster类 制句柄实例.同理,rotangleCtrl为EventIn类的子类 实现,采用标准Java Socket,负责对客户端请求进行 EventInSFRotation的一个实例,改实例通过 监听,并对自定义协议内容进行分析,并对不同的分 node.getEventIn得到,由参数set_rotation可知该实 析结果采用不同的处理措施 例为模型角度控制句柄实例. (3)数据发送模块.本模块为服务器程序的一 在获得相应的控制实例后,可通过控制句柄实 个通用消息发送接口,通过标准Java Socket接口负 例的setValue方法对VRML模型进行相应的控制. 责向客户端发送以自定义协议格式书写的消息. 需要注意的是,setValue方法被每一种控制句柄类 (4)数据定义模块.本模块为服务器程序所使 重写,其参数表根据不同的控制句柄类不同而不同. 用的各种定义数据的集合.当服务器程序需要被重 rotangleCtrl.setValue(rotangle); 写或扩展时,本模块为重写和扩展提供了良好的 positionCtrl.setValue(position); 接口. 其中,rotangle和position为两个浮点数组,包含了坐 3.3基于Java和EAI的VRML场景接口实现 标或角度参数 VRML97标准提供了两种扩展VRML并和外部 程序实现连接的机制,即Script节点和外部编程接 4实际仿真效果 口EAI(external authoring interface).EAI接▣提供 整个分布式仿真系统运行良好.图5展示了在 了比较完备的控制功能,通过将控制函数封装到Ja- 分布式动态仿真过程中呈现的一些实际效果.其 va类中,简化了Java对VRML模型控制的底层细 中,图5(a)描述了飞行器起飞前的仿真状态; 节.本系统通过EAI建立外部Java程序与VRML 图5(b)描述了飞行器起飞过程中的仿真状态; 场景接口,实现Java程序对飞行场景中物体运动的 图5()描述了飞行器起飞后正常飞行的仿真状态 控制.下面是具体的实现方案. (I)嵌入到网页中的Java Applet首先使用EAI 5结论 接口工厂类BrowserFactory提供的getBrowser函数 (1)针对X-38此类特殊的高超声速飞行器, 获得所在VRML浏览器或VRML浏览器插件的控 利用Java和VRML技术,提出并具体实现了一个基 制节点: 于客户机/服务器模型高效分布式虚拟仿真系统,该 browser BrowserFactory.getBrowser(this). 系统具有良好的可移植性和可扩展性,易于大规模 (2)获得浏览器或浏览器插件节点后,Java 部署,也可方便地进行二次开发 Appleti可以通过控制节点与浏览器或浏览器插件进 (2))在虚拟仿真系统实现中,重点研究了一些 行通信,获得VRML中定义的模型节点,节点被封 关键技术,包括基于VRML的高超声速飞行器三维
第 1 期 罗 熊等: 基于分布式虚拟现实的高超声速飞行器仿真系统 图 4 仿真系统分布式结构( 简化三层结构) Fig. 4 Distributed architecture of the simulation system ( simplified 3-tier structure) 中间服务程序由以下四个主要模块组成. ( 1) 数据库管理模块. 本模块由 DBLinker 类实 现,采用 JDBC--ODBC 桥( JDBC--ODBC BRIDGE) , 定义了对数据库的基本操作. 上层程序将通过类定 义的各种方法操作数据库信息. ( 2) 服务监听模块. 本模块由 serverLinster 类 实现,采用标准 Java Socket,负责对客户端请求进行 监听,并对自定义协议内容进行分析,并对不同的分 析结果采用不同的处理措施. ( 3) 数据发送模块. 本模块为服务器程序的一 个通用消息发送接口,通过标准 Java Socket 接口负 责向客户端发送以自定义协议格式书写的消息. ( 4) 数据定义模块. 本模块为服务器程序所使 用的各种定义数据的集合. 当服务器程序需要被重 写或扩展时,本模块为重写和扩展提供了良好的 接口. 3. 3 基于 Java 和 EAI 的 VRML 场景接口实现 VRML97 标准提供了两种扩展 VRML 并和外部 程序实现连接的机制,即 Script 节点和外部编程接 口 EAI( external authoring interface) . EAI 接口提供 了比较完备的控制功能,通过将控制函数封装到 Java 类中,简化了 Java 对 VRML 模型控制的底层细 节. 本系统通过 EAI 建立外部 Java 程序与 VRML 场景接口,实现 Java 程序对飞行场景中物体运动的 控制. 下面是具体的实现方案. ( 1) 嵌入到网页中的 Java Applet 首先使用 EAI 接口工厂类 BrowserFactory 提供的 getBrowser 函数 获得所在 VRML 浏览器或 VRML 浏览器插件的控 制节点: browser = BrowserFactory. getBrowser( this) . ( 2) 获得浏览器或浏览器插件节点后,Java Applet可以通过控制节点与浏览器或浏览器插件进 行通信,获得 VRML 中定义的模型节点,节点被封 装为 Node 类. Applet 可以通过控制节点 browser 的 getNode( string nodename) 方法获得相应模型节点的 实例: node = browser. getNode( config. nodeName) . ( 3) 在得到相应节点后,Applet 可以通过向该 节点的实例发送消息,达到控制的目的. 在这里,此 类消息应首先通过节点实例的 getEventIn 方法获得 控制句柄实例,然后通过控制句柄实例发送消息. 所有通过 getEventIn 方法获得的控制句柄实例,均 为 EventIn 类的一个子类. 如: positionCtrl = ( EventInSFVec3f) node. getEventIn ( “set_translation”) ; rotangleCtrl = ( EventInSFRotation) node. getEventIn ( “set_rotation”) . 式中,positionCtrl 为 EventIn 类 的 子 类 EventInSFVec3f 的一个实例,改实例通过 node. getEventIn 得 到,由参数 set_translation 可知该实例为模型位置控 制句柄实例. 同理,rotangleCtrl 为 EventIn 类的子类 EventInSFRotation 的 一 个 实 例,改 实 例 通 过 node. getEventIn 得到,由参数 set_rotation 可知该实 例为模型角度控制句柄实例. 在获得相应的控制实例后,可通过控制句柄实 例的 setValue 方法对 VRML 模型进行相应的控制. 需要注意的是,setValue 方法被每一种控制句柄类 重写,其参数表根据不同的控制句柄类不同而不同. rotangleCtrl. setValue( rotangle) ; positionCtrl. setValue( position) ; 其中,rotangle 和 position 为两个浮点数组,包含了坐 标或角度参数. 4 实际仿真效果 整个分布式仿真系统运行良好. 图 5 展示了在 分布式动态仿真过程中呈现的一些实际效果. 其 中,图 5 ( a ) 描述了飞行器起飞前的仿真状态; 图 5( b) 描述了飞行器起飞过程中的仿真状态; 图 5( c) 描述了飞行器起飞后正常飞行的仿真状态. 5 结论 ( 1) 针对 X--38 此类特殊的高超声速飞行器, 利用 Java 和 VRML 技术,提出并具体实现了一个基 于客户机/服务器模型高效分布式虚拟仿真系统,该 系统具有良好的可移植性和可扩展性,易于大规模 部署,也可方便地进行二次开发. ( 2) 在虚拟仿真系统实现中,重点研究了一些 关键技术,包括基于 VRML 的高超声速飞行器三维 ·105·
·106· 北京科技大学学报 第34卷 (a) 名 (e) 图5高超声速飞行器X-38的动态仿真效果.(a)起飞前:(b)起飞中:(c)起飞后 Fig.5 Dynamic simulation results of the hypersonic vehicle X38:(a)before takeff:(b)during takeff:(c)after takeoff 场景的建立与动作事件的建模:仿真系统分布式网 visual simulation system for flight vehicles.J Syst Simul,2006, 络结构设计与基于Java的数据库管理;基于Java和 18(9):2501 (蔡远利,冯杰,郭素芬.低成本飞行器可视化仿真系统的设 EAI的VRML场景接口实现等. 计与开发.系统仿真学报,2006,18(9):2501) (3)为建立基于网络环境的分布式高超声速飞 [6 Lian B H,Cui HT,Cui PY.Adaptive backstepping control based 行器仿真系统提供了一种有效解决方案,是一次有 autopilot design for reentry vehicle.Chin Space Sci Technol, 益尝试. 2003,23(1):7 (连葆华,崔枯涛,崔平远.再入飞行器自动驾驶仪的自适应 参考文献 退步控制设计.中国空间科学技术,2003,23(1):7) 1]Ma D W,Ye W,Yu F Q,et al.Virtual Reality Technology and ] Wallner E M,Well K H.Nonlinear Flight Control Design for the its Application in the Flying Simulation.Beijing:National Defence X-38 Using CMAC Neural Nettcorks:AIAA2001-4042.AlAA, Industry Press,2005 2001 (马登武,叶文,于风全,等.虚拟现实技术及其在飞行仿真 [8]Honjo T,Lim E M.Visualization of landscape by VRML system. 中的应用.北京:国防工业出版社,2005) Landsc Urban Plann,2001,55 (3):175 Chang J S.Visualization simulation system of hypersonic vehicle Wang C W,Gao W,Wang X R.Virtual Reality:Theory,Imple- based on STK.Aerosp Control Appl,2008,34(5):45 mentation,Application.Beijing:Tsinghua University Press,1996 (常建松.基于STK的高超声速飞行器可视化仿真平台研究 (汪成为,高文,王行仁.灵境(VR)技术的理论,实现及应 空间控制技术与应用,2008,34(5):45) 用.北京:清华大学出版社,1996) B]Soppa U,Gorlach T,Roenneke A J.German contribution to the [10]Mzoughi T.A 3D interactive system for teaching and learning op- X38 CRV demonstrator in the field of guidance,navigation and tics.Comput Educ,2007,49 (1):110 control (GNC).Acta Astronaut,2005,56(8):737 [11]Fan Y T,He H Y.The research of 2-ier and 3-ier structure 4]Stachowiak S J,Cobleigh B R,Maliska H A,et al.Conceptual based on the client/server architecture.Appl Res Comput,2001, Design Study for an X38 Transonic Rocket Assist Configuration: 18(12):100 NASA/TP2006213672.NASA,2006 (樊银亭,何鸿云.基于客户机/服务器体系的二层与三层结 [5]Cai Y L,Feng J.Guo S F.Design and development of low-cost 构研究.计算机应用研究,2001,18(12):100)
北 京 科 技 大 学 学 报 第 34 卷 图 5 高超声速飞行器 X--38 的动态仿真效果. ( a) 起飞前; ( b) 起飞中; ( c) 起飞后 Fig. 5 Dynamic simulation results of the hypersonic vehicle X-38: ( a) before take-off; ( b) during take-off; ( c) after take-off 场景的建立与动作事件的建模; 仿真系统分布式网 络结构设计与基于 Java 的数据库管理; 基于 Java 和 EAI 的 VRML 场景接口实现等. ( 3) 为建立基于网络环境的分布式高超声速飞 行器仿真系统提供了一种有效解决方案,是一次有 益尝试. 参 考 文 献 [1] Ma D W,Ye W,Yu F Q,et al. Virtual Reality Technology and its Application in the Flying Simulation. Beijing: National Defence Industry Press,2005 ( 马登武,叶文,于凤全,等. 虚拟现实技术及其在飞行仿真 中的应用. 北京: 国防工业出版社,2005) [2] Chang J S. Visualization simulation system of hypersonic vehicle based on STK. Aerosp Control Appl,2008,34( 5) : 45 ( 常建松. 基于 STK 的高超声速飞行器可视化仿真平台研究. 空间控制技术与应用,2008,34( 5) : 45) [3] Soppa U,Grlach T,Roenneke A J. German contribution to the X-38 CRV demonstrator in the field of guidance,navigation and control ( GNC) . Acta Astronaut,2005,56( 8) : 737 [4] Stachowiak S J,Cobleigh B R,Maliska H A,et al. Conceptual Design Study for an X-38 Transonic Rocket Assist Configuration: NASA/TP-2006-213672. NASA,2006 [5] Cai Y L,Feng J,Guo S F. Design and development of low-cost visual simulation system for flight vehicles. J Syst Simul,2006, 18( 9) : 2501 ( 蔡远利,冯杰,郭素芬. 低成本飞行器可视化仿真系统的设 计与开发. 系统仿真学报,2006,18( 9) : 2501) [6] Lian B H,Cui H T,Cui P Y. Adaptive backstepping control based autopilot design for reentry vehicle. Chin Space Sci Technol, 2003,23( 1) : 7 ( 连葆华,崔祜涛,崔平远. 再入飞行器自动驾驶仪的自适应 退步控制设计. 中国空间科学技术,2003,23( 1) : 7) [7] Wallner E M,Well K H. Nonlinear Flight Control Design for the X-38 Using CMAC Neural Networks: AIAA-2001-4042. AIAA, 2001 [8] Honjo T,Lim E M. Visualization of landscape by VRML system. Landsc Urban Plann,2001,55( 3) : 175 [9] Wang C W,Gao W,Wang X R. Virtual Reality: Theory,Implementation,Application. Beijing: Tsinghua University Press,1996 ( 汪成为,高文,王行仁. 灵境( VR) 技术的理论、实现及应 用. 北京: 清华大学出版社,1996) [10] Mzoughi T. A 3D interactive system for teaching and learning optics. Comput Educ,2007,49( 1) : 110 [11] Fan Y T,He H Y. The research of 2-tier and 3-tier structure based on the client /server architecture. Appl Res Comput,2001, 18( 12) : 100 ( 樊银亭,何鸿云. 基于客户机/服务器体系的二层与三层结 构研究. 计算机应用研究,2001,18( 12) : 100) ·106·