空间应用仿真支持平台的研究与实现

2013-09-08 10:18李泽朋马纯永
计算机工程与设计 2013年6期
关键词:运算控制器模块

李泽朋,马纯永,陈 戈

(中国海洋大学 信息科学与工程学院,山东 青岛266100)

0 引 言

空间任务是一项耗资巨大、变量参数多、较为复杂的系统性工程,其设计方案的论证很难在真实环境下进行,因此为了对设计方案进行有效的分析和评估,将虚拟现实技术应用于航天领域成为了必然趋势[1]。与复杂的空间数据集相比,基于虚拟现实技术的仿真系统对空间任务场景的模拟显得更为直观有效。成熟的空间任务论证仿真系统能够对新的空间任务技术和成本进行可行性论证、立项论证的分析和评估[2]。目前国外相关仿真系统的发展已相对完善,比较有代表性的是STK软件 (STK定义请参见文献[3]),它能快速方便地分析复杂的卫星仿真任务,提供易于用户理解的图表和文本形式的分析结果。而当前国内对于相关系统的研究还处在起步阶段,随着我国空间技术的快速发展以及空间任务本身多样化、复杂化的特征,研究并构建能够在相关领域占据核心地位的仿真平台是一项亟待解决的问题。为此,我们基于VC++和OpenGL设计并实现了空间应用系统仿真支持平台,并通过相关实验验证了该平台的实际应用价值。

1 系统的框架设计

1.1 系统框架

在系统的整体架构设计上,空间应用仿真支持平台共分为4个相对独立的层:表示层、功能层、控制层及数据处理层。系统的框架结构如图1所示。

(1)表示层:对底层功能及操作控制直观的UI表示,具有空间仿真所需的友好的用户界面和便捷的交互手段。

(2)功能层:平台多种功能的描述。提供多通道输出、视锥交互、基本场景元素的渲染及模型库属性操作等多种功能组件接口实现平台功能的分类管理。

(3)控制层:控制功能层的渲染方式及模型库的信息存储。分类管理场景基本元素对其显示属性进行标定,通过仿真过程时间线的控制来设定仿真的实时模式和演示模式。

(4)数据处理层:整个渲染的驱动和模型数据信息的来源。接收仿真数据计算控制器封装后的数据,对仿真数据进行解析分类利用ICE分布式通信接口分发给控制层。

空间应用仿真支持平台的分层设计提高了系统的整体框架的灵活性,本层级的功能维护不会影响到其他层级,层级与层级之间通过特定的通信接口进行交互,使得各个模块在相对独立的基础上高效的实现各自的功能。

图1 系统整体架构

1.2 系统仿真数据流

通过仿真数据接收器、仿真数据计算控制器、模型属性数据库、空间应用仿真支持平台的渲染管理集等多个模块进行数据流的传输,系统平台最终实现空间任务的仿真。整个过程所涉及的所有的数据传输都是基于ICE(internet communications engine)中间件来实现的。图2为系统整个仿真过程的数据流图。

图2 仿真数据流

2 仿真过程的关键技术

2.1 面向对象的数据传输

ICE (internet communications engine)是一种由 ZeroC开发的面向对象的中间件平台,其适合在异构环境中使用,客户端和服务器用不同的编程语言编写,可以运行在不同的操作系统和机器架构上[4]。考虑到ICE中间件架构在应用开发中的种种优势如数据报协议 (UDP)支持、异步方法分派、嵌入的安全机制、代码的开源性等[5],我们在平台中选用ICE中间件来进行相关的数据传输。

在利用ICE进行数据传输时,首先要利用Slice语言定义各传输接口,由于平台采用C++程序开发,故需要将Slice语言映射为C++。在数据传输过程中,客户端与服务器表示在某个数据传输请求从发起到数据传输结束,平台数据传输应用模块某些部分所承担的角色。由于系统数据传输的双向性,仿真平台既是客户端又是服务器。仿真数据在向平台进行传输时,平台通过调用ICE中间件的API函数在其内部建立一个对象适配器。通过实例化该对象适配器,在服务器中加入用于数据通信传输的服务线程,调用适配器的添加方法将该服务线程交给适配器并加入标识符,我们最终激活适配器。一旦适配器被激活,服务器就开始处理来自客户端的请求并最终完成数据传输。

2.2 骨骼动画的渲染加速

在空间任务的实时仿真过程中,用户常常要求系统能够真实的模拟航天员的在轨操作或空间机械臂的旋转、伸缩及抓取等多种仿真任务,这些任务最终需要利用骨骼动画来实现。这是因为骨骼动画较之以前的动画方法,具有占用空间小等优点。但是其代价是伴随着计算量的增加绘制效率会逐步降低。骨骼运动归根到底是一系列复杂的计算,主要包括动画的相邻帧之间的插值计算,骨骼点及皮肤网格顶点的新位置及其朝向的计算,父子骨骼间矩阵的相互影响等,在这中间还常常涉及到大量的计算结果的保存。因此,随着骨骼结构复杂度的上升,相应骨骼运动所必需的复杂计算的密集度也会成倍的增长。这势必会影响动画的渲染效率,降低仿真平台的性能。

基于上述问题,空间应用仿真支持平台引入了CUDA(compute unified device architecture)技术。CUDA 技术的核心是充分利用硬件设备来进行并行计算,其程序的基础开发语言为C语言[6],CUDA这种通用的并行计算架构能够高效的利用GPU来完成复杂的图像相关的运算。传统的渲染运算是由CPU来完成的,CPU通过高速运算将结果传输到内存,系统又从内存中调取运算结果至显存来实现渲染。整个过程除CPU的运算负荷较高外,运算结果的传输也耗费了大量的时间。然而CUDA技术的引入使得仿真平台在渲染骨骼动画时将大部分繁琐的骨骼运算转移到GPU,GPU通过创建多个不同的线程来进行复杂运算,运算的结果直接保存在显存内部,同时它对该过程进行统一的管理,保证各线程之间并行运行。利用这种并行计算技术很大程度上降低了CPU的运算负荷及数据传输的开销,提高了骨骼动画的渲染效率使得空间任务展示模块能够快速流畅的运行。图3为某空间站太阳能帆板展开后的效果。

2.3 飞行器尾焰仿真

在仿真平台中模拟飞行器的空间飞行状态时,需要对某些飞行器的尾焰进行高逼真度的仿真,而粒子系统渲染技术的引入可以很好解决这个问题。粒子系统的基本思想是通过具有一定生命周期和属性的大量粒子的不规则运动来实现动态模拟[7]。然而随着粒子数量的不断增加,在达到逼真效果的同时,粒子的大量运算会使系统的效率大幅下降。为此,在进行飞行器尾焰仿真时,我们基于一组特定的视频序列[8],通过少量的粒子建立火焰的轮廓线,在轮廓线内填充真实火焰的动态连续纹理。由于只计算轮廓线的很少量的一些粒子的运动,同时计算中无需记录粒子的状态,仅记录其位置信息,因此相应的计算量很小,占用的内存空间也很小。粒子简要结构如下:

图3 某空间站太阳能帆板展开效果

我们通过粒子系统属性中指示的帧值来获取该帧的纹理并将它填充到轮廓线内,这样随着粒子衰减周期循环填充纹理最终高效的完成尾焰仿真。如图4所示为某飞行器的尾焰效果。

图4 飞行器尾焰效果

3 仿真过程的主要功能模块

3.1 仿真数据计算控制器的链接

仿真数据计算控制器与仿真平台的链接是通过ICE中间件来实现的,为了保证扩展性,需要在负责链接的ICE接口层设计合理的数据包封装协议。我们封装的数据包中主要包含信息仿真时间、设备元素标识、数据内容、校验等。仿真平台与仿真数据计算控制器的数据通信如图5所示。

图5 数据通信

实时、快速的将三维空间任务仿真场景与仿真数据计算控制器相联动使得用户可以形象、直观地查看各场景元素的运行状态。图6为平台依据仿真数据计算控制器传输的数据而绘制的二维轨道覆盖图。

图6 二维轨道覆盖

3.2 仿真时间管理模块

仿真平台的三维空间任务分为实时仿真[9]模式和演示仿真模式,仿真时间管理模块通过对数据加入标识以便使渲染管理集能够区分当前的仿真模式。在实时仿真模式下,如果用户并未在场景数据中特别设置时间偏移量,那么仿真平台默认系统当前的时间为初始仿真时间,反之则需要通过系统当前时间与时间偏移量来推算仿真初始时间。演示仿真模式主要进行仿真过程的回放显示,在回放过程中,用户可通过键盘鼠标进行控制,或根据编排指令自动切换场景的视锥,实现漫游、鸟瞰等效果。

仿真平台的场景数据来源于仿真数据计算控制器,或为真实数据或为历史数据,因此需要对仿真数据进行记录以便之后使用。当接收到有效场景数据后,本模块自动将与显示有关的数据存储在本机的数据文件中。这样用户在进入演示模式需要重现某一空间任务仿真时,仿真时间管理模块便调用与该空间任务仿真相匹配的历史数据,显示相应的三维场景。该部分的运行示意图如图7所示。

图7 仿真时间管理

在实时模式下的应用测试中,我们发现仿真平台显示的时间是滞后于当前系统时间的,这会对空间任务的评估或可行性论证产生不利的影响。为此,我们人为的把数据接收完毕后的系统时间与数据包中解析出的时间偏移量相减后的时间设为仿真初始时间,这就真正意义上实现了实时仿真。

3.3 仿真设备模型库管理模块

目前,设备模型库中的模型主要包括实体模型和生成模型。实体模型是指真实存在的天体或部件的模型。生成模型主要指在场景任务仿真中,飞行器形成的光路、轨道、通信链路、空间场等。传统的场景保存结构为层次结构,这种结构维护成本高,信息冗余较大,大数据量的场景下这些不足尤为明显。为此我们采用树形结构对场景数据分层管理,以树形图的形式组织场景[10],利用树形结构的特性,我们递归的访问各节点,从而获得各节点内部存储的场景数据。通过对场景数据的有效组织,我们最终得到整个被渲染场景。树形图中各节点的访问过程如下所示:

值得一提的是,在具体仿真过程中,用户有时并不需要对整个的场景进行渲染而仅仅关注某一局部区域。因此,在节点遍历过程中我们需要判断当前节点是否需要访问。通过树形结构的应用,平台在数据的存储及搜索能力上得到很大的提高。

4 仿真系统的应用

在具体的空间任务仿真中,仿真平台通过仿真设备管理模块从模型数据库中调出所需要的场景数据并加载渲染来显示星空背景、飞行器、准确的行星位置等。仿真数据接收器在接收到数据后,将这些初始数据传输给仿真数据计算控制器,仿真数据计算控制器经过处理将结果封装成特定的数据包传输给仿真平台渲染模块。通过源源不断的传输数据,平台最终完成对飞行器的运动轨迹及其姿态的实时仿真。在此过程中,用户可从不同视角查看整个空间载荷系统的各组成结构,可切换不同的显示模式来对比分析各空间任务,也可以通过调用模型数据库中的场景数据来实现整个任务过程的回放等,最终获取到自己感兴趣的信息。仿真平台的部分功能界面如图8所示。

图8 软件部分功能效果

5 结束语

本文着重研究并实现了空间应用仿真支持平台的系统框架,对空间任务数据的ICE传输、任务场景的实时显示和三维重现、模型数据的存储等功能进行了分析,平台通过应用于具体的科研单位进行了实践检验,结果表明该平台能够为空间任务的方案设计及论证提供有效的技术支持。目前,平台的开发还处在技术完善阶段,在软件界面布局及用户使用体验等方面还有待提高。

[1]Enrico Stoll,Jurgen Letschnik,Markus Wilde,et al.The future role of relay satellites for orbital telerobotics [J].Elsevier:Advances in Space Research,2012,50 (7):864-880.

[2]ZHANG Yuzhu,MENG Xin,PAN Zhongshi.Research on connecting heterogeneous RTIs in space mission simulation system[J].Computer Engineering and Design,2012,33 (3):1068-1072(in Chinese).[张玉珠,孟新,潘忠实.空间任务论证仿真系统中异类RTI连接技术研究 [J].计算机工程与设计,2012,33 (3):1068-1072.]

[3]DONG Jiaqiang.Design and realization of aerospace launch visualization simulation system based on STK [J].Computer Measurement&Control,2010,18 (2):446-449 (in Chinese).[董加强.基于STK的航天发射可视化仿真系统设计与实现 [J].计算机测量与控制,2010,18 (2):446-449.]

[4]Michi Henning,Mark Spruiell.ICE distributed program design[EB].[2011-09-28].http://www.zeroc.com.

[5]ZHOU Keqiang,ZHANG Baoshan.Management of information based on middle ICE [J].Journal of Southeast University(Natural Science Edition),2008,38 (S2):208-212 (in Chinese).[周克强,张保山.基于ICE中间件的战术信息管理[J]. 东 南 大 学 学 报 (自 然 科 学 版 ),2008,38 (S2):208-212.]

[6]DONG Luo,GE Wancheng,CHEN Kangli.Study on application of parallel computation on CUDA [J].Information Technology,2010,11 (5):11-15 (in Chinese).[董荦,葛万成,陈康力.CUDA并行计算的应用研究 [J].信息技术,2010,11 (5):11-15.]

[7]ZHAO Ye,HAN Yiping,FAN Zhe,et al.Visual simulation of heat shimmering and mirage [J].IEEE Transactions on Visualization and Computer Graphics,2007,13 (1):179-189.

[8]YU Xin,HAN Yong,CHEN Ge.Fire simulation of realistic flame based on dynamic texture and particle system [J].Informatin and Computer,2009 (11):54-55 (in Chinese).[于鑫,韩勇,陈戈.基于动态纹理和粒子系统的火焰效果模拟 [J].信息与电脑,2009(11):54-55.]

[9]REN Chuanjun,JIANG Zhiwen.Research and application of realtime simulation on Real-Time Workshop [J].Computer Emulation,2007,24 (8):268-271 (in Chinese). [任传俊,蒋志文.Real-Time Workshop实时仿真研究与应用 [J].计算机仿真,2007,24 (8):268-271.]

[10]Nobuyuki Bannai,Robert B Fisher,Alexander Agathos.Multiple color texture map fusion for 3Dmodels [J].Pattern Recognition Letters,2007,28 (6):748-758.

猜你喜欢
运算控制器模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
重视运算与推理,解决数列求和题
工商业IC卡控制器改造为物联网控制器实践
有趣的运算
“整式的乘法与因式分解”知识归纳
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器
集成水空中冷器的进气模块