运用虚拟现实技术研制地铁车厢监控视景仿真系统

研究了一种基于虚拟现实技术的地铁列车客室监控视景仿真系统,并将其应用于地铁列车驾驶模拟器系统中。使用OpenGL Performer开发视景仿真系统,采用OpenGL开发人机交互操作界面。

着重研究了系统功能结构、人际交互界面设计、人群行为与突发事件仿真等技术;使用了图形拾取算法和基于智能体的行为模拟,实现了具有真实感的客流仿真以及疏散仿真,最终给出了视景仿真结果。

列车驾驶模拟器是培训轨道交通列车司机的先进工具,具有训练过程安全、训练费用小、不影响正常行车、故障及操作训练可重复等优点。通过列车驾驶模拟器进行司机培训,可大大缩短司机的培训周期,在降低培训成本的同时培养高水准的司机。视景仿真系统是列车驾驶模拟器的重要组成部分,为受训司机提供有身临其境的虚拟环境与速度感。

客室监控视景仿真系统作为列车驾驶模拟器视景仿真系统的重要组成部分,模拟地铁列车客室车厢内部视频监视器的显示内容,拓展了列车驾驶模拟器视景系统的功能范围,在训练司机处理突发事件能力和培养优良服务意识方面具有重要意义。

系统功能要求

本系统作为列车驾驶模拟器视景仿真系统的一部分,包括以下功能:网络通讯;受网络信息控制的画面全屏/分屏显示;摄像机镜头画面固定/轮循;正常开、关门过程模拟;乘客上下车突发事件(示意性火灾、拥挤、紧急按钮触发、摄像头故障、车门故障等)表现。

客室监控视景仿真系统通过网络通讯接收主控系统命令,处理网络实时数据包括车站信息,门信息,事件消息等,并可与模拟器的站台视景仿真系统相联系。根据本系统中单位通信时间内的数据流量较小、通信频率高的特点,采用了TCP/ IP 协议中的用户数据报协议(UDP 协议) 作为网络通信协议,并在发送的报文头中加入校验位,保证数据传输的可靠性。经过实际测试,通信延迟指标完全可以满足列车驾驶视景仿真的实时性要求。

画面的全屏、分屏功能帮助司机更好地了解车厢状况。每节车厢设有前后两个摄像头,可以通过触摸屏点击方式实现某节车厢某个摄像头画面的全屏化。

摄像机镜头画面固定/轮循功能实现全屏、分屏时的车厢摄像头画面定时切换,达到在分屏数目有限的前提下更好地实现监控每节车厢的目的。

接收主控门信息后,可实现列车门、站台屏蔽门的个别或者全部的开启、关闭动作模拟。接收夹人信息后,实现车门夹人现象的模拟。

乘客上下车突发事件(示意性火灾,拥挤)模拟乘客上下车的行为以及人群在面对突发事件(如火灾)时慌乱现象、拥挤情况下乘客的寻路过程。

软件结构与有关技术

1、系统结构

本系统采用OpenGL Performer软件系统进行开发。OpenGL Performer是SGI公司开发的一个可扩展的高性能实时三维视景开发软件包,构建于工业标准OpenGL图形库基础上。本系统使用的地铁车站和车厢的模型采用业界流行的OpenFlight格式,。利用Visual C++ MFC建立应用程序框架,调用OpenGL Performer API,并使用OpenGL进行底层开发实现相应的模块功能。

系统仿真程序包括: 图形系统初始化、三维场景模型的载入与管理、视景生成的主循环体3个主要部分。在图形系统初始化中完成建立和初始化图形相关的资源。初始化工作完成后,视景仿真程序将所需的三维场景模型从文件中载入内存。

同时根据站台描述文件、模型文件将相应的站台、人物模型以及其它相关模型调入内存,并依据文件中提供的参数将这些模型加入到场景中去[1]。在主循环体中,视景仿真程序根据从通信系统接收的列车运行参数以及其它参数,完成对当前场景状态的更新以及事件的调用,并返回每车载荷信息(乘客数量)与突发事件报警车厢编码。其流程如图2所示。

运用虚拟现实技术研制地铁车厢监控视景仿真系统

图1. 客室监控系统结构图

2、场景模型结构与简化

场景模型一般用层次建模法(树形结构)思想进行建模,将同一属性的模型放在同一节点下进行统一管理。这种以空间位置关系为基础的层次建模,方便场景管理,也便于Performer API函数对模型的实时控制。

三维模型的复杂程度直接决定了三维视景所要消耗的渲染时间,直接影响视景仿真系统画面显示的实时性。使用多层次细节(LOD)技术优化法,对模型中的每个物体分别构造若干个不同细致等级的模型描述,根据景物距视点的距离,调用不同细节层次的模型。

本文中车厢内部设备以及站台模型均采用了上述LOD思想。靠近视点的模型使用精细模型,远离视点的模型使用简化模型或者使用面片贴图代替。通过场景模型简化,减少了三维视景所要消耗的渲染时间,提高了图像的显示速度。

3、人物模型与简化

乘客模型采用采用MS3D(MilkShape3D)来构建。建立一个与MS3D文件格式相对应的模型数据结构,将MS3D的数据保存到该结构中。MS3D数据结构中定义了文件头、顶点信息、三角形信息、材质信息、关节连接信息、关键帧数据等。

系统使用三种精细程度模型,如图3所示。左边是最简模型(300面片),中间普通模型(500面片),右边是精细模型(800面片)。根据人距离摄像头的距离调用不同层次精细度的模型。这样既满足了视景的实时性和真实感,又减少了系统渲染的负担,可以达到令人满意的效果。

运用虚拟现实技术研制地铁车厢监控视景仿真系统

图2. milkshape模型对比

关键功能开发与实现

1、界面图形拾取

图形拾取就是从纷繁的图形中选取所需图形的过程,它是交互式图形系统的重要功能之一。某一图形被拾取后,其直观现象是该图形的颜色发生改变(也有用闪烁或增亮的方法来表示图形被拾取),其实际意义是要在存储用户图形的数据结构中找到存放该图形的几何参数及其属性的地址,以便对该图形作进一步的操作。

在屏幕显示区的下方和右侧各有一条工具栏(参见图5)。下方工具栏可供受训司机选择车厢摄像头号,对应显示该摄像头的监视情景。发生突发事件后,图标变为红色。右侧工具栏可供受训司机以全屏/分屏模式、查看/轮训模式,实时查看列车每节车厢内部的情况,还有列车编组和关机选项。

使用图形拾取技术,响应工具栏的操作。显示区默认状态为四分屏,由多通道显示技术实现。4个通道上方均有信息显示栏,显示摄像头的名称,是否选中,状态(查看或轮循)等信息。

2、人群行为

智能体从模拟个人的行为出发,以拟人化方法描述、解释、预测一个复杂系统的行为,可以有效仿真群体的行为形态。单个的智能主体被视为在某一环境下具有自主性、交互性、合作性、反映能力和预动能力的实体。

在本系统里面,一个智能主体设定为一个单独的对象,代表了在站台、车厢环境中一个行人的角色。具体实现时,行人智能体将根据路网情况以及自己的出发地点和目的地计算出一条最短路线。

疏散路径选择:个体在逃生时的行为总是采用“感知-决策-行动”过程。在真实环境中,个体选择疏散路径总是通过视觉判断。如出口到个体之间无障碍物,就直线行驶;如有障碍物,就判断障碍物的位置,然后以最短路径行驶到障碍物边缘[3]

个体在运动时会出现多个人争抢同一位置和速度快的个体超越速度慢的个体的现象。出现同一时间步争抢现象时,只能够留下一个人,其余的停止等待,具有预测碰撞并及早采取绕行和超越措施。每个个体可以感知多个出口,并根据个体的慌张程度和出口的拥挤度来选择出口。慌张程度高时,选择靠近的出口,慌张程度低时,选择出口拥挤度低的出口。

运用虚拟现实技术研制地铁车厢监控视景仿真系统

图3. 乘客行为规则

3、突发事件

客室监控视景仿真系统可模拟八种典型突发事件,包括:火灾,烟雾,乘客按下紧急按钮,乘客解锁车门,摄像头故障,供电系统故障(显示屏黑屏),一个或多个车门故障无法开启,一个或多个车门故障无法关闭,车门夹人。系统实时接收网络信息,根据突发事件ID号,判断事件类型并触发事件。

结论

客室监控系统运行的硬件平台:DELL T5400工作站,2GB RAM,图形卡为NVIDIA Quadro FX4600。软件平台:Windows XP,Visual C++ 6.0,OpenGL Performer。

使用北京地铁2号线站台、列车车厢模型,以1280 pixels×1024 pixels 的屏幕分辨率输出视景,仿真客流量0~600人,帧速率稳定在25帧/秒,视景图像输出流畅,能够依据系统需要对图像进行实时控制,满足系统要求。图5为乘客(红框内)按下紧急按钮输出图像;图6为火灾发生,乘客逃生的输出图像。

本文研究了分布式列车驾驶模拟器客室监控视景仿真系统。使用基于TCP/ IP 协议中的用户数据报协议(UDP 协议) 作为网络通信协议,对站台场景和人物模型做了一系列的优化,设计了方便培训司机操作的友好人机交互界面,对人群行为做了深入研究,实现了预定的设计目标,系统已经在北京地铁2号线列车驾驶模拟器中得到应用,达到了训练司机处理突发事件能力的预期效果。

下一步的研究目标:进一步定位人物绘制对CPU的占用率,增加可仿真的乘客人数,优化路径和避碰算法;模拟更多的突发事件、扩充事件库,为更好地训练司机处理突发事件的能力提供有效手段。

运用虚拟现实技术研制地铁车厢监控视景仿真系统

图4. 乘客(红框内)按下紧急按钮突发事件

运用虚拟现实技术研制地铁车厢监控视景仿真系统

图5. 火灾突发事件

(摘编自《电气技术》,原文标题为“列车驾驶模拟器客室监控视景仿真系统的实现”,作者为胡峰、朱金陵等。)