基于VR设备的地铁列车故障检修的仿真研究
2018-10-09张佳丽郎诚廉
张佳丽,郎诚廉
(同济大学 电气工程系,上海 200331)
随着中国城市化进程的加快,人口密度迅速扩大,地铁出行已成为必不可少的交通方式。地铁系统运营压力的日益繁重,运行中产生故障概率将大幅提高,列车车辆段检修人员的日常维护与检修工作确保了列车安全运营。所以有必要对检修人员进行列车检修的培训,鉴于城市轨道交通的运营特点,学员培训有时不可能完全在现场进行,大部分培训工作都需要在培训中心或实习基地内完成,因此教学过程中使用城轨列车仿真系统进行辅助培训是一种很好的选择[1]。
虚拟现实(VR ,virtual reality)技术已被应用到军事、医学、石油、航空、建筑、房地产、影视等众多领域中,一些高校将VR技术应用于数字电路实验、船舶辅机拆装训练等实训教学中并取得了一定成效[2-3],但其输入设备普遍采用鼠标、键盘和触屏,显示设备为显示器、投影仪等,局限于桌面式平面虚拟化,用户参与感、体验感、沉浸感不强。
本文主要是将沉浸式虚拟现实技术引入轨道交通仿真与研究,以Visual Studio C# 2017 作为程序编译器,利用Unity3D 应用开发引擎,外接HTC vive虚拟现实头戴式显示器(VR 头显),结合HTC 手柄来搭建地铁列车故障检修平台。基于VR设备的地铁列车故障检修,其优点包括:(1)采用HTC vive虚拟现实头戴式显示器(VR 头显)替代传统的显示设备,使用户身临其境地沉浸于三维虚拟场景;(2)编辑脚本控制手柄,实现虚拟场景中设备的操控,具有更好的人机交互性能,提高了学员的体验效果,达到沉浸式体验效果。学员通过平台可以直观准确地学习到列车运行中发生的故障类型及相应的故障排除方法。
1 虚拟列车场景的建模
利用3ds MAX建立地铁列车故障检修所需要的列车,3ds MAX是基于PC 系统的三维动画渲染和制作软件,与别的软件相比,它拥有强大的角色动画制作能力。Unity3D 所需要的FBX 格式的模型文件,可由3ds MAX导出。
1.1 场景材料收集
列车模型的尺寸,内部设备的结构及安装位置等数据根据实际的轨道交通的真实环境进行收集。使用Photoshop对模型纹理、材质、尺寸进行修正。
1.2 列车设备建模
利用3ds MAX将采集好的材料与处理好的贴图以列车内部的零部件为单位,分别对电器柜、操纵台、车门等设备以及列车整体进行建模。同时,在建模过程中合理确定各个零部件的坐标,确保在导入Unity3D 中,将各个模型坐标归零后,零部件位置不会出现偏差。
1.3 场景搭建
(1)将3dsMax 建立好的模型导入工程的Assets文件夹下,Unity 会自动读取模型的材质、贴图、动画等内容并创建文件夹予以归类。
(2)通过将Assets 文件夹下的对象,拖入层级视图中,创建场景中的模型对象。
(3)通过面板右侧Inspector 界面调节模型在场景中的坐标位置,旋转角度和缩放比例,将各个零部件模型拼装成一列完整的虚拟列车。
虚拟列车模型以上海轨道交通3号线为原型,列车编组为6 节,因此场景由TC1、MP1、M1、M2、MP2、TC2,6 节车厢构成。
2 Unity3D虚拟场景驱动
Unity3D 是一款跨平台应用开发引擎,可以轻松创建诸如虚拟现实场景、建筑可视化、实时三维动画等类型互动内容的多平台综合型开发工具。其内置的NVIDIA PhysX 物理引擎,可以逼真模拟刚体碰撞、外力作用等效果。Unity3D 平台可以使用内置MonoDevelop 编译器,并支持Visual Studio C# 2017作为外部编译器对代码进行调试。同时Unity3D 对跨平台开发提供了最佳支持,支持各种编译语言,包括C#,JavaScript,boo 等,并能够对驱动程序进行多平台的封装。本虚拟场景主要模拟了列车运行状态中故障的前后现象,外接HTC Vive虚拟现实头戴式显示器(VR 头显),结合HTC 手柄来实现与场景的交互功能。
2.1 VR设备的交互
HTC Vive 是一个虚拟现实头盔,由 HTC 和Valve 公司制造。它提供一种在虚拟世界中的浸入式体验,结合HTC 手柄可以在与场景交互过程中达到更逼真的效果。
2.1.1 SteamVR的配置
将HTC Vive 设备外部硬件配置好,通过Unity3D 的Asset 商店下载SteamVR SDK,在我们的项目中导入SteamVR,打开这个文件夹,从Prefabs 文件中将[CameraRig] 拖到结构窗口,同时删除结构视图中的主摄像机,避免干扰 [CameraRig]的相机。[CameraRig] 插件控制 Vive 头盔和HTC 的左右手柄。图1的SteamVR绿色图标表明HTC Vive的头戴式显示器、手柄、定位器都已经配置完成,可以对其进行后续的控制编程。
图1 SteamVR配置图
2.1.2 HTC输入手柄的确定
HTC手柄是被跟踪的对象——它们在真实世界中的移动和旋转都会被 HTC Vive 跟踪到并传递到虚拟世界里。在对手柄上加载各种功能之前,要确定事件触发的具体手柄。HTC左右手柄下面都有SteamVR_TrackedObject这个组件,在这个组件下,系统内部随机分配了不同的index值,通过读取index值就可以确定具体触发的手柄。
其实现步骤如下:
(1)创建c#,将脚本挂载到[CameraRig]下面的左右手柄controller(left)和 controller(right)中,添加一个控制与追踪的组件SteamVR_TrackObject trackedobject;
(2)在 Update() 上方添加代码,通过获取手柄的index值来确定具体触发的手柄,当脚本加载时trackedObject 会被赋值为 SteamVR_TrackedObject对象,这个对象和手柄是关联的,就可以对手柄进行访问,其具体流程,如图2所示。
图2 HTC输入手柄确定的流程图
2.2 列车检修场景漫游
地铁列车检修的漫游包括小范围的实时移动和大范围的瞬移,考虑到HTC Vive活动范围有限制(3 m×5 m),小范围的实时移动可以通过改变HTC Vive头戴式显示器(VR 头显)的位置来实现,大范围的移动通过瞬移的方式来实现。
在检修场景中,利用HTC的手柄选取检修场景的位置,通过扳机键进行瞬间移动,视野就会跳转到所选择的区域。利用瞬移的检修方式,可以对列车进行大范围的一个检查。利用HTC的手柄来进行瞬移功能要使用到3个组件,Vive NavMesh 组件控制Unity的NavMesh系统到可渲染网格的转换。它还会计算NavMesh的边界,在选择瞬移位置时,可以被显示出来。Parabolic Pointer 组件生成一个指示网格并从Vive NavMesh进行采样。Vive Teleporter组件控制实际传送机制,它从Parabolic Pointer 找出指示数据确定瞬移的具体位置。
将这3个组件拖到结构窗口,利用Vive Nav-Mesh 组件确定将可进行瞬移的合理区域进行渲染,避免瞬移到列车边界及不透明的物体内部。利用Vive Teleporter 组件,进行位置的传送,当触发扳机键时,本系统通过贝塞尔曲线,使用了直观的抛物线选择机制。生成选择地点的远近将由用户将控制器手柄举到更高的角度来决定。如果用户将手柄举起角度>45。(抛物线的最大距离)时,角度将会锁定在这个距离,从而实现瞬时移动。列车检修场景的瞬移流程图,如图3所示,漫游效果,如图4所示。
2.3 列车设备故障检修
本章主要通过学习列车设备中的逻辑关系,包括电器柜、车门逻辑等,根据列车设备电气逻辑图,进行常见的故障设置,根据设备出现的故障利用外接HTC的手柄进行检修,排查故障。
图3 场景瞬移流程图
图4 场景瞬移效果图
2.3.1 列车故障现象模拟
将每节车厢作为一个单位,通过各自独立的脚本来传送当前场景的数据,封装为一个以Mono-Behaviour 为基类的类对象。考虑到大多数设备按钮只有两个状态,因此设定0 为关(故障)状态,1 为开(运行)状态,少数设备有多种状态根据实际情况进行定义。
通过数据监测器读取场景中的脚本,接收到列车的设备状态,当切换场景时由于场景内资源被释放,列车设备状态数据由监测器保留,当进入下一场景后,场景中的脚本读取监测监测器中的数据,根据电气逻辑做出相应的响应。如图5所示,以电器柜中操作台中开门电路断路器(DOCB) 过流状态为例。
当电器柜DOCB 过流跳下,监测器接收到其数据状态从1 变为0,根据列车电气逻辑进行处理后,显示故障现象为:开门时,列车门无法打开。
2.3.2 基于VR设备的人机交互
利用外接VR设备,HTC手柄来代替手对列车故障进行检修,可以使学员在沉浸的场景中实现自然、有效的人机交互动作。
以检修电器柜中操作台中开门电路断路器(DOCB)为例,阐述交互的过程。确定发出信号的HTC手柄,再采用 Lighthouse 光学跟踪技术,跟踪用户的头部以及手部的传感器位置,将位置信息传递给场景内,在开门电路断路器(DOCB)中挂载Box Collider 碰撞器的组件。利用手部的代替模型(HTC手柄)与开门电路断路器(DOCB)发生碰撞检测。若HTC手柄与开门电路断路器(DOCB)发生碰撞并且符合检修的条件时,触发手柄的按键,将开门电路断路器(DOCB)合上,排除电器柜中开门电路断路器(DOCB)的故障。
图5 电器柜DOCB过流故障
3 列车辅助教学模块设计
辅助教学程序的主要功能是对学员在地铁列车维修仿真培训过程中进行相应理论知识内容的配套学习。
在辅助教学程序中,学习场景的主要功能是提供整个列车结构、零部件知识的学习,主要关于TC1、MP1、M1、M2、MP2、TC2,6 节车厢以及车厢各自的零部件知识内容,通过可视化的界面,使学员能在学习中很快找到自己所需的信息。以讲解零部件为例,在界面上方显示展示的零部件,界面下方会出现零部件文字部分的讲解,长滑块下方上、下、左、右按键可辅助控制零部件视角的位移变换,学员可以更好、更深刻地了解各个零部件的重要知识。
4 结束语
本文以上海轨道交通3号线为原型,通过3ds MAX 建模软件完成对虚拟列车场景的建立,对列车各车厢零部件如电器柜,受电弓等进行详细建模,以C# 为底层编码,利用Unity3D 作为驱动,外接HTC Vive的头戴式显示器(VR 头显),结合HTC 手柄,实现对场景的驱动控制。基于VR设备的列车检修系统具有很强的真实性和交互性,能够逼真地模拟故障发生的情况,提高了检修人员在遇到故障时的反应能力,强化检修人员对列车故障如列车电器柜断路器故障、受电弓故障、车门故障等有相对应的应急能力,具有实际应用价值。