虚拟现实航天仿真技术研究

2012-09-21 09:53崔善君谈敦铭
图学学报 2012年1期
关键词:航天器虚拟现实航天

崔善君 , 谈敦铭 , 赵 罡

(1. 虚拟现实技术与系统国家重点实验室,北京 100191;2. 北京航空航天大学机械工程及自动化学院,北京 100191)

近几年来,我国在航天领域取得了一系列的成就,航天领域为高新技术的应用提供了一个广阔的平台,航天工程正成为各个国家关注的热点。而航天器作为航天领域的重要工具,一般被认为是高技术、高投入、高风险、高回报产品,所以从航天器的设计开始,技术人员就会利用各种手段来模拟航天器在太空环境下的运行状况,以提高其安全性,可靠性,这种方法就是一般意义上的仿真。航天仿真发展到今天经历的以下几个阶段:物理仿真阶段,模拟机仿真,数字机仿真,多媒体仿真,可视交互仿真以及越来越受到重视的虚拟现实仿真。由于航天工程所涉及的航天设备造价昂贵,重复性差,航天仿真很难通过应用真实设备的物理仿真方式进行验证,而计算机仿真在解决这一问题上具有巨大的优势。

现在国外流行的虚拟现实航天仿真技术是虚拟现实和航天仿真的良好结合。虚拟现实技术又被称为灵境技术[1],是一种能提供逼真的视、听、触觉一体化仿真环境的计算机技术,用户可以借助必要的设备以自然的方式与虚拟环境中的物体进行交互作用并和计算机仿真系统相互影响,从而获得身临其境的感受和体验,可以说虚拟现实是一种可以创造和体验虚拟世界的计算机技术。虚拟现实技术与航天仿真的结合不仅能够实现传统意义上仿真系统的设计验证,参数分析,在轨运行管理,故障分析研究等功能,并且能够使操作者产生强烈的沉浸感和真实感。

1 国内外研究现状

目前,国际上在航天器轨道设计与分析仿真方面的产品首推 AGI 开发的卫星工具包 STK(Satellite Tool Kit)。STK 可以快速方便地分析复杂的陆地、海洋、航空及航天任务,并提供三维可视化动态场景以及精确的图表和文本形式的分析结果,使分析说明更加简单,数据结果更加精确。它支持卫星寿命的全过程,在航天飞行任务的各个环节中都有广泛的应用,是一个功能强大、灵活多用的工具。并且 AGI推出的STK/Advanced VO模块进一步扩展和完善了其可视化功能。目前国际上包括美国宇航局、欧洲航天局在内的 80%的航天单位正在使用 STK,已经成为事实上的航天界商用标准软件之一。但是STK也有其缺点:首先,STK属于商业软件,价格昂贵,并且很多核心模块只针对美国本土开放;其次,STK不公开代码,无法进行软件扩展开发,可重用性较差;最后一点,STK很难与虚拟现实技术结合,对细节的展示能力与真实感不强。

近几年来,国内很多航天研究机构和大学对航天器的在轨仿真进行了大量的研究,在此基础上自主开发了一些系统,如清华大学,国防科学技术大学,北京航空航天大学,但是起步较晚,尤其是虚拟现实技术在航天仿真的应用上鲜有先例,本文基于一系列开源软件,将大屏幕多通道显示技术与航天仿真相结合,开发了航天器在轨运行沉浸式演示系统。

2 应用到的主要软件

2.1 Delta3D

Delta3D是一款由美国海军研究学院(Naval Postgraduate School)开发的全功能游戏与仿真引擎。该引擎应用领域极为广泛,如开发在培训、教育、娱乐行业和科学计算可视化领域等方面建模与仿真的软件。它的标准化设计把一些知名开源软件和引擎如OSG(OpenSceneGraph), OpenAL,ODE(OpenDynamicsEngine), CAL3D (Character Animation Library)等融为一体。图1表示了Delta3D的体系架构。

Delta3D通过对这些底层模块进行隐藏封装,整合在一起从而形成了一个使用更加方便的高级API函数库,使得开发者在必要的时候能够使用底层函数进行二次开发。Delta3D在软件系列中,处于中间层(Middle layer)的位置上。 它实际上是一个比较薄的统层,拥有一个高层的跨平台(Win32和Linux)C++API,根据需要任何一个模块都可以被替换。

2.2 E_BLENDING

多通道系统由于是利用多个计算机输出的图像经过投影设备拼接而形成的(如图2所示),因此其使用也与单个计算机运行程序不尽相同,要使得多个计算机输出的图像最终拼接成一个完整的画面,应用程序需要经过网络同步、几何校正、颜色校正、边缘融合。为了方便应用程序的开发、管理,挖掘多通道系统的应用领域,比较好的办法是将多通道网络同步、几何校正、颜色校正、边缘融合等特殊处理的功能封装在一个API开发包中。E_BLENDING即是本实验室为此目的而专门开发的多通道系统底层支撑软件,E_BLENDING运行需要主控制计算机与显示终端建立网络连接,是一种多通道系统的软件解决方案。

图 1 Delta3D体系架构图

图2 多通道系统组成

3 具体实现

3.1 仿真对象建模

虚拟仿真系统的真实感和流畅性都与仿真对象有直接的关系,一个良好的仿真系统中创建的对象不仅可以逼真的反映实体的结构特征,并且应该占用最小的计算机资源以提高仿真系统的流畅性。所以在选择建模工具的时候应该考虑到所对应平台的要求。本文所用到的建模软件有Pro/E,MultiGen Creator与Delta3d自带的3D Viewer。Pro/E主要用于复杂仿真对象的建模,如果对象比较简单可以直接用使用Creator建模。复杂的模型可以利用polytrans软件转换格式导入Creatror中,然后对其零部件进行DOF设置,以便在仿真环境中可以对其进行控制。对建好的模型进行贴纹理操作也是导入Creator的原因之一,因为Creator有非常强大的纹理操作功能。在Creator中对模型处理结束后导入Delta3d下的3D viewer中,观察纹理是否正确,正确则载入仿真环境,否则在Creator中重新进行UV调整,具体过程如图3所示。利用3D viewer可以将模型转换成OSG格式的二进制模型,更加节省资源,大大提高系统的加载运行速度。

图 3 建模流程图

3.2 仿真背景构建

外太空:对于航天仿真来说,除了要模拟航天器等对象,外太空环境的搭建也很重要。逼真的太空环境可以使观察者产生强烈的沉浸感。

现在国内的卫星仿真系统的太空背景一般用OpenGL的点绘制方法,然后投射到一个球面上来实现。这种方法缺点是算法比较复杂,而且与本仿真平台的兼容性不太好。另一种方法是利用Delta3d自带Stage平台进行构建,这种方法实现比较简单,在Stage中可以把经过处理的6副场景图投射到球面上形成星空效果,保存成一个Map,然后在软件里调用这个建立好的Map,调整好载入方向就可以得到一个完整的星空背景图。这种方法实行简单,效果逼真,与Delta3d平台的兼容性好。

轨道:本项目选择Delta3d平台,该平台以OSG为底层,具有场景设置优化,模型导入简单,运动控制简洁等优点,但是由于其为中层平台,反而不支持空间中线的直接绘制。在Delta3d中,场景中显示的一切物体都是直接或者间接继承自Object类,封装于OSG的Node类。所以要即时显示轨道效果就要把卫星经过的轨迹记录下来,利用OSG库的Node类,然后转化为Delta3d下的Object类,作为Object载入场景。

这种方法可以实现轨道显示功能,具有轨道颜色、宽度改变容易、平台兼容性好等优点,但由于需要跟踪轨道,记下航天器经过的轨迹,这样就造成了需要生成大量Object的缺点,浪费资源,而且不易隐藏。针对这一缺点,程序设置一空的Object类mPoint,然后设置子节点上限,将每一段轨迹线段Object添加为mPoint的子节点mPoint-> AddChild(pObj),通过控制mPoint的存在与否控制整条轨道。

同时mModel节点不宜太多,如果跟随卫星的轨迹一直生成,最后会导致刷新率急剧下降,通过实验可以得到在普通桌面机上设置500以下的节点比较合适,可以满足轨道的显示需要,刷新率也可以保持在每秒 30帧以上,满足连续性的要求。

3.3 动力学仿真

ODE是一个高性能、开放源代码的工业级刚性物体动力学模拟库。它具有高级的关节类型和碰撞检测系统,非常适合运动对象的模拟。ODE的核心就是经典力学的基本原理算法包,是牛顿力学的C++程序实现,因此平台独立性非常好,并且具有运算速度快、体积小等优点。

典型的 ODE模拟过程如下:第一,创建一个动力学世界;第二,创建动力学世界中的刚体;第三,设置所有刚体的状态;第四,创建动力学世界中的关节; 第五,把关节与刚体连接;第六,设置关节参数;第七,创建碰撞世界(空间)和碰撞几何对象;第八,创建关节组来容纳接触关节;第九,循环:a 把力施加于刚体;b 调整关节参数;c 调用碰撞检测;d 对于每个碰撞点创建一个接触关节,并加入接触关节组里;e 进行一步模拟;f 清除接触关节组里的所有关节;第十,删除动力学世界和碰撞世界。

根据上述的ODE模拟过程,虚拟世界中的物体能够按照牛顿力学的规律运动起来 ,并且ODE是基于帧循环的,同时幸运的是Delta3d下的图形引擎 OSG也是基于帧循环,那么二者的结合就可以在Delta3d平台上得以实现,如图4所示。

例如地球引力的设置

其中,(x,y,z)为卫星所在位置的坐标,(x0,y0,z0)为地球位置坐标,c为与引力常数和地球质量相关的常数,m为卫星质量。

3.4 交互控制

Delta3d中涉及到消息响应的主要类dtCore::Base, Delta3d并没有使用OSG里的callback方式,主要因为callback有很多个,没办法把他们统一成一个简单的类型用来继承,也不方便扩展。而dtCore::Base简便快捷地解决了这个问题,消息响应使用的类只需要继承自deCore::Base就可以方便的处理任何消息。实例的管理可以使用类的静态方法对一个类的所有实例进行添加删除和查找的管理功能。这样只知道类型和名称就可以轻松地得到一个实例对象的指针,或者在刷新每一帧的时候在其中添加控制按钮。

图4 ODE在系统中的应用

例如,在一次帧循环中要检查更新的对象是否发生碰撞检测,可以使用如下方式:

这样就可以控制模型发生碰撞时的消息处理,可以在每一次刷新过程中更改消息触发条件,比如,如果把collision边做preframe,就变成刷新每一帧前的消息处理。

交互界面采用 CEGUI并通过官方编辑器—— CELayoutEditor来编辑,其具有编译容易,查看简单,控制简洁的优点,与Delta3d也有很好的兼容性,具体效果如图5所示。平台通过控制其透明度来实现隐藏与现实,方便实现控制功能的同时观察主仿真窗口,在多通道系统的子机中可以不发送控制模板的消息对其隐藏处理。唯一的缺点是CELayoutEditor为开源软件,其编译比较麻烦,其中有很多编译错误需要使用者调试修正。

图5 交互控制界面

3.5 多通道配置

在应用程序的初始化之后调用E_BLENDING_Initialize (bServer, OnReceive,StartNetWork),其中bServer是一个布尔型变量,如果是主控机则返回1,否则如果是图形生成计算机终端则返回 0。OnReceive为网络同步回调函数,主控机不需要网络同步,可以传递NULL,其他图形生成计算机则需要按照网络同步的参数定义实现具体的数据同步。利用E_BLENDING_ GetViewFrustum获得图形生成计算机终端投影图像对应于大屏幕中的显示区域的视锥角,并根据具体的图形渲染引擎,必要的话需要将返回值的角度单位转化为弧度单位,并利用所使用的图形渲染引擎的 API设置视锥角。在多通道系统中,每一个通道中具体的视锥体的参数计算需要根据屏幕显示的实际位置以及观察者的位置计算,如图6所示,计算视锥体各个方向的夹角既可。如果是主控制计算机,则在适当的时候通过E_BLENDING_ ServerSend向各个图形生成计算机终端发送网络同步数据,由图形生成计算机应用程序的OnReceive回调函数接收并更新该应用程序的数据,使得每一个通道的图形保持一致。

图6 通道视锥体参数图

主控计算机只须向终端计算机发送必要的数据包即可,主要包括发生位置变换与姿态变化的对象。主控机发送的数据包定义如下:

在此基础上,利用桌面显示技术,结合实际需求实现三通道系统的1+1+1显示模式(如图7所示),使3个通道分别显示航天器星下点地图、三维场景以及航天器自身参数,并可以实现通道间的数据驱动功能和与整体显示模式(见图8)的即时切换功能,能够很好的满足实际需求,便于进行实时数据状态分析等。

图7 系统1+1+1显示模式

图 9 系统结构图

图8 系统整体显示模式

4 系统实现

本文开发的基于虚拟现实技术的仿真系统除了以上介绍部分还包括声音系统,特效系统等,完整的系统结构如图9所示。平台模拟了某型号航天器的在轨对接过程,其在轨运行、卫星姿态调整与细节展示、对接过程都通过三通道系统逼真的反应出来,系统具有很强的真实感和沉浸感。

5 总 结

本文结合现在基于虚拟现实技术的航天仿真的特征,利用一系列的开源软件开发了一个仿真平台,该平台与实验室自主开发的多通道显示软件E_BLENDING相结合,可以对某卫星的在轨对接进行逼真的模拟和分析。其基于的软件大部分都是开源软件,大大提高了灵活度,降低了成本。虚拟现实技术的应用拓展了航天仿真的范围,所搭建的平台具有传统航天仿真所不具有的强沉浸感,其不仅可以应用于卫星在轨对接的模拟,而且改变少数参数即可以对其他相关航天活动进行仿真模拟。

[1]余力凡. 虚拟现实技术在航天控制领域的应用[J].航天控制, 2004, 22(3): 79-86.

[2]赵晨光, 郑昌文. 航天仿真技术综述[J]. 军事运筹与系统工程, 2009, 23(3): 78-81.

[3]刘 维, 韩 潮. 基于Open Inventor的航天可视化系统[J]. 计算机仿真, 2006, 23(11): 22-26.

[4]康凤举. 现代仿真技术与应用[M]. 北京: 国防工业出版社, 2001: 234-238.

[5]徐庚保, 曾莲芝. 航天仿真[J]. 计算机仿真, 2003,20(10): 1-4.

[6]RichardSwright, BenjaminLipchak. OpenGL superbible [M].3rd Edtion, America, Sams, 2005: 1-427.

[7]杨嘉墀. 航天器轨道动力学与控制[M]. 北京: 宇航出版社, 1995: 20-28.

[8]章仁为. 卫星轨道姿态动力学与控制[M]. 北京: 北京航空航天大学出版社, 1998: 1-120.

猜你喜欢
航天器虚拟现实航天
2022 年第二季度航天器发射统计
我的航天梦
航天梦,我的梦
虚拟现实技术在中学校园中的应用
2019 年第二季度航天器发射统计
逐梦航天日
2018 年第三季度航天器发射统计
2018年第二季度航天器发射统计
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感