APP下载

嫦娥二号探测器在轨运行视景仿真系统的研究与实现*

2012-01-25高兴烨刘建军邹小端李春来

天文研究与技术 2012年2期
关键词:视景视点嫦娥

高兴烨,刘建军,任 鑫,邹小端,李春来

(1.中国科学院国家天文台,北京 100012;2.中国科学院研究生院,北京 100049)

嫦娥二号探测器是我国发射的第二颗绕月探测器,其主要任务是对嫦娥三号预选着陆区虹湾开展高分辨率成像[1]。执行月球探测任务的嫦娥任务探测器不同于地球轨道的航天器,其飞行过程复杂,飞行风险大,探测环境未知性强,科学探测过程具有唯一性,所以必须根据探测器的状态,针对科学探测过程中的重大关键事件进行地面仿真验证,以便进行决策分析,优化探测计划。

针对以上仿真任务的需要,本文发挥视景仿真的优势,结合嫦娥一号探测器获得的地形数据以及嫦娥二号探测器的星历数据和日地月星历数据,利用计算机图形学知识,设计了针对嫦娥二号任务的在轨运行视景仿真系统,它通过时间驱动三维可视化场景更新,直观展示嫦娥二号探测器绕月探测全过程以及日地月时空关系,不仅能为有效载荷的科学探测计划提供决策依据,而且能够通过回放功能,再现嫦娥二号探测器绕月探测过程,对工程汇报和科普工作的开展具有重要意义。

1 系统开发平台介绍

目前视景仿真系统主要有两种构建方案。第一种基于OpenGL、DirectX等底层三维应用程序编程接口(Application Programming Interface,API),从系统底层进行构建,采用这种方案设计灵活,系统精简,但开发效率低下,工作量大,开发周期长。第二种是基于已有三维开发平台进行二次开发,采用这种方案,可以大大提高开发效率,但系统难免冗余。目前主流的开发平台有Vega、Open GVS、Open Scene Graph(OSG)等,这些软件各有特色,都能完成大型视景仿真程序的构建。其中OSG是一个面向对象的三维图形软件开发包,它包含了丰富的类库,性能优越,操作灵活,更重要的是OSG是开源软件,因此受到广泛关注。目前OSG在世界仿真软件市场的占有率已超过51%[2]。本文通过结合OSG开发包和Virtual Planet Builder(VPB)扩展工具包以及微软基础类(Microsoft Foundation Classes,MFC)完成仿真系统的构建。OSG使用可移植的ANSI C++编写,并使用已成为工业标准的Open GL底层渲染API,具有良好的跨平台特性。OSG运行时文件由一系列动态链接库和可执行文件组成,这些链接库共分为5大类,共同构成了OSG的体系(图1)[3]。运用OSG提供的体系结构,导入构建的三维模型,能够完成场景的高效渲染。VPB是OSG针对海量地形图形显示需求所开发的扩展工具包,能够以各种格式的地形和影像数据源构建OSG支持的高速读取的地形模型,通过结合OSG可以完成海量地形数据的高速渲染。VPB的特点在于支持海量的地形数据处理,甚至可以同时处理和容纳几个星球的地形和影像数据[4]。

图1 OSG体系结构Fig.1 OSG architecture

2 系统总体设计

2.1 功能需求

为通过可视化仿真嫦娥二号探测器绕月探测过程达到验证嫦娥二号探测器探测指令可行性的目的,本系统设计完成以下主要功能:

(1)根据星历数据动态更新嫦娥二号探测器、日地月空间位置及完成三维动态显示。

(2)根据用户要求设定系统内部时间分辨率,动态改变显示速度,并以时间驱动仿真过程。

(3)利用嫦娥一号探测器获取的地形数据及影像数据,显示嫦娥二号探测器星下点月形月貌。

(4)根据飞控指令文件与CCD立体相机安装参数,仿真嫦娥二号探测器CCD立体相机数据获取过程。

(5)视点的切换和控制。

(6)动态显示卫星位置、速度、当前飞控指令等信息。

2.2 系统的总体框架

根据以上功能需求,设计的嫦娥二号探测器在轨运行视景仿真系统由三维显示模块、仿真时间驱动模块、数据管理模块构成,总体框架图如图2。

图2 系统总体框架图Fig.2 Block diagram of the system

数据管理模块用于存放和组织系统所需要的数据,主要对嫦娥一号获取的月球地形数据(DEM)和影像数据(DOM)处理后得到的地形数据库进行管理;仿真时间驱动模块主要功能是通过时间驱动完成仿真实体状态及空间位置的更新;显示模块提供系统的渲染及可视化功能。

3 系统实现

视景仿真程序的实现大致分为视景仿真环境制作和仿真驱动[5]。仿真环境制作主要是构造出真实的三维模型,而仿真驱动则是根据数据和力学模型更新三维模型空间位置,以及完成系统的实时交互响应及事件响应等。

3.1 仿真环境制作

嫦娥二号探测器不同于以往的地球轨道航天器,在大部分任务周期中,它都将进行绕月探测,构建逼真的月表模型和精细的嫦娥二号探测器模型,可以大大提高对探测任务所处的空间环境仿真的真实度。至于地球模型和太阳模型并不是仿真的重点,可以在仿真程序中通过纹理贴图的方式实现。下面对构建月球和嫦娥二号探测器精细模型的实现方法进行论述。

3.1.1 月球模型数据构建

利用嫦娥一号探测器获得的影像和地形数据实现月表形貌环境的真实模拟。嫦娥一号探测器获得的120 m分辨率的正射影像数据和500 m空间分辨率的地形数据的数据量在GB级,考虑到大规模地形数据流畅绘制的问题,采用层次细节模型(Level of Detail Model,LOD)绘制算法绘制月表地形地貌。层次细节模型绘制算法是指在场景中进行模型绘制时距离视点越远的地方分辨率越低,距离视点越近的地方分辨率越高,而且随着视点的变化,场景的变化具有连续性,这样即能保证显示大规模数据的流畅性,又不影响显示的效果[6]。OSG为了加快海量数据的渲染,其内部支持层次细节模型绘制算法,采用PagedLOD分页数据库的方式对层次细节模型进行调度。具体构建月球模型的步骤是采用OSG扩展工具包VPB中的OSGDEM应用程序将嫦娥一号探测器获得的tif格式正射影像和月球地形数据进行处理,生成osga格式的月球三维模型。将生成的模型导入到三维场景中,完成月表地形地貌环境的可视化(图3)。

图3 经OSGDEM程序处理的嫦娥一号探测器获得的部分月球DEM数据的格网显示Fig.3 Terrain grid of the DEM data obtained by the Chang’E-1 as processed by the OSGDEM program

3.1.2 嫦娥二号探测器模型的构建

目前三维建模软件已经相当成熟。相比采用程序进行模型的构建,采用成熟的三维建模软件进行三维模型建模,可以明显提高建模效率及模型的精细程度。3D Studio MAX是个人计算机上最普及的三维动画和建模软件,集成了丰富的第三方插件,支持多种格式导入与导出[7]。本文采用3DS MAX2010构建精细的嫦娥二号探测器(图4),通过第三方插件导出OSG支持格式的模型供三维场景导入。

图4 嫦娥二号探测器3D模型Fig.4 3D model of the Chang’E-2 spacecraft

3.2 仿真环境的实时驱动

在仿真环境构建完成之后,需要根据仿真任务的要求驱动模型按时间进行空间位置的更新。模型的空间位置变化通过仿真循环实现(图5)。在系统的每次仿真循环中,系统内部时间根据设定的时间步长进行更新,然后系统根据当前系统内部时间访问星历数据库,检索星历数据,利用检索到的星历数据更新仿真实体的位置和状态,达到以时间驱动仿真实体变化的目的。仿真驱动的具体实现方法如下。

3.2.1 星历数据库的构建与访问

作为根据星历数据更新仿真模型空间位置的仿真系统,每一次仿真循环都要访问星历数据进行场景的更新,所以能否实时高效地访问星历数据是保证系统流畅运行的关键。本文采用数据库的方式对星历进行组织,可以有效地提高星历数据的访问速度。原始日、地、月、嫦娥二号探测器的位置数据和卫星的姿态数据以文本格式存储,本系统先将星历数据转换为以时间为索引的数据库文件。在系统实时运行的某个时刻,访问该星历数据库,查询任意时刻仿真实体的空间位置和卫星的姿态信息等,速度达到毫秒级,完全能保证系统实时更新三维场景的仿真实体,达到实时渲染的目的。

图5 系统仿真流程图Fig.5 Flowchart of the simulation system

3.2.2 仿真实体空间位置的实时更新

OSG的主要功能是提供场景树类,它将场景中的对象按照树的形式进行组织[8]。通过场景树的方式可以大大提高场景的渲染效率。场景树由若干节点构成,节点可以是不同的类型,如叶子节点、根节点、枝干节点。节点还可以被整合到多个组节点中,作用于组节点的变换矩阵同样会作用于整合组节点中的子节点。在本系统中为方便日、地、月、嫦娥二号探测器空间位置实时更新,在场景的根节点中添加日、地、月、嫦娥二号探测器更新变换组节点,再将对应的模型节点整合到对应的组节点中(图6)。每一次仿真循环,系统访问各个仿真实体的星历数据库,根据当前系统内部时间读取各个星体的空间位置数据,然后实时地更新对应的组节点的变换矩阵,以达到更新场景模型空间位置的目的。

图6 空间环境场景层次图Fig.6 Scene graph of the space environment

3.2.3 CCD立体相机探测过程的仿真

嫦娥二号探测器CCD立体相机探测过程的可视化仿真通过访问飞控指令文件并结合三维场景的更新实现。飞控指令文件是以时间顺序记录嫦娥二号探测器探测计划的文本格式存储的指令文件。每次仿真循环中,系统都会访问飞控指令文件(图5),以获得当前系统内部时刻的飞控指令,若指令为立体相机加电,则在卫星更新变换组节点中添加根据相机安装参数绘制的两条透明光束节点(图7),若指令为立体相机断电,则从卫星更新变换组节点移除该节点,通过相机光束节点的添加和移除更新场景达到CCD立体相机探测过程的可视化。

3.2.4 视点的控制和切换

图7 嫦娥二号探测器CCD立体相机15 km成像原理图Fig.7 Illustration of the pointing of the CCD stereo camera on the Chang’E-2 on an orbit of 15km altitude

在大范围的虚拟场景中,为了使用户通过简单的视点操作及时获取有效信息和观察仿真过程,本系统设计了以下几种视点观察方案。

(1)月心模式:在三维场景中,月球永远位于屏幕的中心,通过控制鼠标完成视点距月球的远近,以及使视点环绕月球转动。通过这种观察方式,一方面方便观察月球晨昏状态以及月球地形地貌,另一方面可以宏观地了解嫦娥二号探测器环月轨道。本系统以月固坐标系为场景空间绝对坐标系进行构建。月固坐标系即月心为坐标原点,z轴与地轴平行指向北极点,x轴指向月球零度经线与月球赤道的交点,y轴垂直于xoy平面构成右手坐标系。所以本系统中月球的空间位置不会改变,可以通过轨迹球[9]的方式实现月心模式浏览方式。OSG提供了轨迹球控制类Trackball Manipulator,通过Trackball Manipulator类可以轻松实现月心模式的浏览。

(2)卫星模式:此种模式下,嫦娥二号探测器永远位于屏幕的中心,通过控制鼠标完成视点距嫦娥二号探测器的远近,以及使视点围绕嫦娥二号探测器转动。通过这种观察方式,一方面方便详细地了解星下点地形地貌,另一方面便于观察卫星的姿态以及CCD立体相机探测过程。在月固坐标下,卫星的空间位置在三维场景中不断更新,所以可以通过跟踪轨迹球的方式实现。将被跟踪的物体设为轨迹球的中心,并且设定视点与跟踪物体有同样的速度与运动方向。OSG同样提供了Node Tracker Manipulator类实现。

(3)地球模式:在三维场景中,地球永远位于屏幕的中心,通过控制鼠标完成视点距月球的远近,以及使视点环绕月球转动。通过这种观察方式,一方面方便观察地球晨昏状态,另一方面可以直观地了解月球与地球的相对位置。在月固坐标系下,地球空间位置在三维场景中是不断更新的。所以同样可以通过Node Tracker Manipulator类实现,将地心设为跟踪的中心,视点保持与地球同样的运动速度与方向。

4 系统的结果

系统以VS2008为工具进行开发,基于OSG和VPB开发了嫦娥二号探测器在轨运行视景仿真系统。本文的仿真结果如图8。图中仿真了CE-2卫星于10月28日22点14分49秒时刻,飞越月球正面虹湾地区,CCD立体相机开机获取月面两线阵影像数据的过程。该时刻,卫星距离月面高度为15 km,星下点位置为北纬42.5°,西经33.1°,视点操作方式为卫星模式。

图8 嫦娥二号探测器虹湾地区探测过程仿真效果图Fig.8 Screenshot from the simulation system for the Chang’E-2 in exploring the Sinus Iridum on the Moon

5 结论

本系统是以时间为驱动的四维仿真系统。以时间为驱动,实时更新场景中仿真实体的空间位置及相互关系,仿真了日地月空间环境,利用嫦娥一号探测器获得的数据展现了嫦娥二号星下点的月形月貌情况,仿真了CCD立体相机数据的获取过程,取得了不错的效果。但本系统存在不足,不能实时查询卫星平台及其有效载荷的工作状态,在未来开发版本中将引入实时遥测数据,对这些信息进行查询和显示。另外,还需考虑与三维立体硬件系统相结合,实现沉浸式立体显示[10]。

[1]欧阳自远.嫦娥一号卫星的初步成果和嫦娥二号卫星的使命[J].航天器工程,2010,19(5):1-6.Ouyang Ziyuan.Science Results of Chang’e-1Lunar Orbiter and Mission Goals of Chang’e-2[J].Spacecraft Engineering,2010,19(5):1-6.

[2]申闫春,朱幼虹,曹莉,等.基于OSG的三维仿真平台的设计和实现 [J].计算机仿真,2007,24(6):207-211.Shen Yanchun,Zhu Youhong,Cao Li,et al.Design and Implementation of 3D Simulation Platform Based on OSG [J].Computer Simulation,2007,24(6):207-211.

[3]Paul Martz.Open Scene Graph Quick Start Guide [M/OL].http://www.skew-matrix.com/OSGQSG/.

[4]Introduce to VirtualPlanetBuilder [EB/OL].http://www.openscenegraph.org/projects/Virtual-PlanetBuilder.

[5]吴家铸.视景仿真技术与应用 [M].西安:西安电子科技大学出版社,2001.

[6]万定生,龚汇丰.一种基于四叉树的大规模地形实时生成算法 [J].计算机工程与应用,2005(33):190-192.Wang Dingsheng,Gong Huifeng.A Quadtree-based and Real-time Generation Algorithm for Large Scale Terrain [J].Computer Engineering and Applications,2005(33):190-192.

[7]王琦.Autodesk 3ds Max2010标准培训教材 [M].北京:人民邮电出版社,2009:32-33.

[8]程菊明,李梅莲,刘连芳.虚拟场景的管理及其在OSG中的应用 [J].微计算机信息,2008,24(6):25-27.Cheng Juming,Li Meilian,Liu Lianfang.The Management of Virtual Reality Scene and It’s Application in OSG [J].Microcomputer Information,2008,24(6):25-27.

[9]Introduce to trackball[EB/OL].http://www.opengl.org/wiki/Trackball.

[10]徐伟忠,刘辉,谈正.三维立体显示系统的开发研究 [J].中国图像图形学报,1997,2(2/3):144-148.Xu Weizhong,Liu Hui,Tan Zheng.Study on Stereo Display System [J].China Journal of Image and Graphics,1997,2(2/3):144-148.

猜你喜欢

视景视点嫦娥
给嫦娥一个舒适的家
虚拟现实技术在游戏设计中的应用及研究
环境视点
让你每天一元钱,物超所值——《今日视点—2014精萃》序
两会视点
全回转拖轮运动建模与视景仿真
赞“嫦娥”
嫦娥三号奔月的三大难关
见证嫦娥三号起航
基于Vortex与Vega Prime的车辆模拟器动力学与视景仿真