三维视景建模在地铁运行仿真中的应用
2019-03-15郭彦宏郑杰良
郭彦宏 郑杰良
(西南交通大学信息科学与技术学院,611756,成都//第一作者,硕士研究生)
三维视景建模所提供的视觉场景贴近现实场景,将三维视景建模用于相关的测试和研究可以极大地满足研究人员对测试系统逼真度的要求。文献[1]利用Vires对北京昌平线部分线路进行了相关建模和仿真,在一定程度上提高了建模效率;文献[2]利用Creator/Vega Prime平台实现了对三维虚拟环境的建模,阐述了建模的方法和步骤,满足了一定的三维虚拟环境仿真的要求;文献[3]介绍了基于Vega Prime的视景仿真技术的一些关键技术;文献[4]阐述了3DS MAX和MultiGen Creator相结合的建模方法,考虑了两者各自的优缺点,对两者结合的一些关键技术进行了探讨;文献[5]提出利用基于3DMine软件的三维地质建模方法来为井田采矿设计与规划提供参考;文献[6]介绍了三维FDTD(时域有限差分法)建模软件的开发,并进行了简单的建模和仿真;文献[7]将三维建模软件CINEMA 4D应用在风景园林设计中,对不同的场景进行了建模仿真,取得了良好的效果;文献[8-9]利用Creator对列车运行视景进行了建模仿真,但是视景模型较为粗糙,与现实场景有较大差异。
本文根据郑州地铁1号线的实际线路情况,利用微软提供的三维建模平台MSTS(微软列车模拟)实现了对郑州地铁1号线列车运行场景的仿真建模。MSTS具有良好的第三方扩展性,并且针对虚拟线路提供了地形编辑器、线路编辑器和任务编辑器等工具,通过对应的编辑器可以对虚拟线路进行编辑,包括地形的导入、线路的铺设、行车任务的编辑和其他视景模型的铺设等工作,极大地满足了对地铁列车进行真实仿真建模的要求。通过适用于Windows和Xbox的XNA技术实现了对MSTS底层模型的读取、显示及动作,并使MSTS底层模型的显示效果和流畅度更加理想。
1 三维视景模型的建立
1.1 三维视景模型的显示流程
利用数字高层模型数据中的地形地貌因子可以实现对郑州地铁1号线列车运行所在区域地形地貌环境的复原[10]。MSTS平台模型库已经包含大量与铁路相关的模型,合理充分地利用这些模型可以完成绝大多数城市轨道交通建模仿真;同时MSTS平台还支持通过3DS MAX等三维建模软件制作的模型,同时可以实现场景模型的按需制作和添加,所以其模型具有高度的可扩展性。
XNA程序是一个动作函数库,它提供了一个基本的程序框架,可以降低游戏编程成本,缩短开发周期[11-12]。以MSTS平台中的底层模型为基础,在确认进入视景仿真系统之前需首先通过WINFORM窗体设置相应的参数,包括列车线路、列车编组、列车运行起始时间等;启动视景仿真系统后,进入XNA主程序入口,利用XNA程序读取MSTS平台中的底层配置文件并对其底层模型进行分类加载并初始化,程序不断刷新;XNA程序将摄像机视野作为视景显示范围,加载模型和贴图等信息到显卡,绘制摄像机视景范围内的场景并向屏幕输出。视景模型显示流程如图1所示。
图1 三维视景模型显示流程
1.2 MSTS平台中底层文件的读取
在启动视景系统时,首先需读取MSTS平台中的底层文件,同时XNA程序通过MSTS平台中文件的存储路径将底层模型文件分类读取并保存,同时确保每一种模型只被读取一次;同时,程序还会加载MSTS平台中的轨道模型和信号机模型中相关数据的配置文件,包含轨道的长度、坡度及曲线信息以及与信号机显示和逻辑相关的配置文件信息等。
1.3 XNA技术中的摄像机
XNA程序对三维场景进行绘制后需要在显示器上进行显示。三维视景在显示器上的显示就像用1台摄像机在拍摄视频,屏幕上显示的视景只能是摄像机拍摄范围内的视景,有效地避免了绘制大量场景带来的性能问题[13]。三维视景模型需要考虑三维空间的坐标,XNA技术中的坐标系统为右手坐标系统(见图2),即取X轴向右为正向,Y轴向上为正向,Z轴朝向观察者的方向为正向。
图2 右手坐标系统
由两个矩阵对象和两个不同的静态方法创建的视图矩阵对象和投影矩阵对象,构成了XNA程序中的摄像机。视图矩阵决定了摄像机的位置、指向和摆放方向等属性,摄像机实际捕捉到的点是摄像机的位置向量CP、方向向量CD和目标向量CT(见图3)。摄像机的视野(见图4)实际上是一个立体的锥体,该锥体即是在屏幕上输出的视景区域。投影矩阵决定了摄像机的最近视距和最远视距(见图4),只有最远视距截面和最近视距截面之间的锥体内的视景会被绘制[13]。通过键盘按键事件和鼠标点击事件可以实现对摄像机位置和摆放方向的调整,从而改变屏幕输出场景。
图3 摄像机实际拍摄点
图4 摄像机视野
1.4 地铁线路的铺设
在得到所要复原地铁线路准确的线路走向与线路所在区域较为真实的地理环境后,便可开始进行轨道线路及其周边场景的复原工作[10]。
1.4.1 轨道的铺设
通过谷歌地图可对郑州地铁1号线的线路进行标记,参考郑州地铁1号线信号平面布置图可对地铁线路中的信号机和道岔等信号设备进行定位。将标记完成后生成的文件格式转化成MSTS平台线路编辑器可以使用的文件并存储在相应子目录。铺设线路三维视景模型时,需要参考该文件所存储对应场景模型的坐标信息,并在准确的位置对三维场景模型进行铺设。
轨道区段分为有道岔区段和无道岔区段,其中各个区段均有不同的长度、坡度和曲率半径等。在MSTS平台的线路编辑器中,利用存储的线路标记文件的坐标信息,结合郑州地铁1号线工程图纸确定需要铺设的轨道类型,在MSTS平台提供的轨道模型中选择最为合适的模型,并设置坡度等参数,从而完成该段轨道的铺设工作(见图5)。有岔区段的轨道铺设还需考虑道岔模型的选择,根据线路的具体铺设情况,需要灵活合理地使用MSTS平台提供的道岔模型,完成复杂线路的铺设工作;同时在用于车辆折返或临时停车的区域更需注意道岔模型和其它轨道模型的灵活配合使用(见图6)。
图6 郑州地铁1号线道岔铺设仿真图
轨道的铺设工作完成之后,MSTS平台会根据铺设的轨道数据生成轨道的数据信息文件*.tdb,视景系统启动时,XNA程序会读取该文件,并对该文件中的轨道信息进行解析。在地铁列车真实运行过程中,往往需要根据列车所处位置来确定列车的最佳行车策略,而行车策略则需要结合线路信息进行确定。XNA程序通过对*.tdb文件进行解析便可获取视景系统中铺设轨道区段的所需数据,为后续利用三维视景系统对地铁列车进行相关研究提供了重要基础。
1.4.2 信号机的铺设
类似于轨道的铺设,可根据工程图纸中信号机的坐标在MSTS平台线路编辑器中完成信号机的铺设。通过信号机数据的配置文件*.dat可以对信号机的显示状态和对应状态显示的条件进行定义。
在实际地铁线路中,信号机分为三显示和四显示,其中,三显示信号机能预告列车前方2个闭塞分区状态的自动闭塞;四显示信号机可以预告列车前方3个闭塞分区状态的自动闭塞[14]。以三显示信号机为例,在三维视景平台中通过贴图的改变来控制信号机对应灯位的灯色显示,即在信号机上实现红、绿、黄3种不同灯色的显示,以与ATS(列车自动监控)系统上的信号机一一对应。
考虑到后期需利用已建三维环境对列车的运行情况进行相关专业研究,故需屏蔽MSTS平台生成的信号机配置文本中的灯光显示逻辑,且信号机灯光的显示只能与列车ATS系统中信号机的灯光显示一致。郑州地铁1号线三维环境平台和ATS系统接口实现对接后,在三维平台地铁客户端的实时运行中,ATS系统对三维视景平台列车客户端的运行进行实时跟踪,并根据联锁条件改变三维平台中信号机的状态来指示列车运行。
1.4.3 周边场景的铺设
考虑到线路的美观与实际,在MSTS平台线路编辑器中完成线路主体的铺设后,可以选择性地使用其他场景进行周边环境的建模及铺设。模型包括静态的高楼模型、高架模型和广告模型,以及动态的汽车模型和屏蔽门模型等,使得郑州地铁1号线地铁运行三维场景更加生动形象。
2 三维视景平台的测试
完成上述线路的铺设工作后,便可对郑州地铁1号线的三维视景仿真系统的演示效果进行测试。列车运行区段包括有道岔区段和无道岔区段。通过键盘按键事件和鼠标点击事件可以改变摄像机的位置、拍摄方向,使得拍摄范围改变,从而使视景在屏幕上的显示效果得到改变。视景显示分为驾驶员视角视景和列车外部视角视景(见图7),即当列车运行时,摄像机可以实时跟随列车,且显示屏会对列车运行中的视景进行实时显示。
a) 列车外部视角视景
b) 驾驶员视角视景
3 结语
通过MSTS平台对郑州地铁1号线进行建模,并根据实际线路数据对模型进行了还原。在整个三维视景环境中,可对列车模型的实际运行情况进行实时跟踪与演示。整个列车三维运行视景平台的成功搭建,具有丰富的现实意义,具体表现如下:
(1)对于某些未建地铁线路,根据线路的实际数据对线路进行视景还原,通过三维视景平台列车客户端的实际运行情况来收集相关运行数据,以作为新线路建立的数据参考,如通过耗能指标计算可以得到最优节能坡设计方案。
(2)将各个地铁列车控制子系统和三维列车运行平台进行接口,来模拟并直观展示整个列车运行控制系统的控制过程与效果。
(3)目前,国内外已有培训列车驾驶人员的相关培训系统。将三维平台与列车运行控制相关的专业系统相结合,可作为相应的培训系统或者教学演示系统,这样可以有效降低成本。