基于HTC VIVE 的地铁列车设备认知教学系统开发
2019-06-27李恺练德强
李恺,练德强
(广州铁路职业技术学院机车车辆学院,广州510430)
0 引言
地铁列车设备认知作为城市轨道交通车辆专业(以下简称城轨车辆专业)的基础实践课程,在整个教学计划当中必不可少。同时作为引领学生熟悉车载设备,了解各部件之间的相互关系及其工作原理,顺利上岗工作的不可或缺的关键环节,因此认知教学在城轨专业教学过程中有着重要地位[1]。而传统的教学方式是在车辆段由教师带领学生以参观的方式进行教学,但存在许多弊端,首先,因为参观的车辆一般为地铁公司的真车,因此车上设备不允许教师或者学生触碰,因此车载设备的结构、工作原理不能良好地体现,没有动手环节,学生技能水平的提高有限;其次,参观的真车的环境较为复杂,许多地方存在高电压等危险,因此学生的安全得不到保障[2]。
随着虚拟现实技术的发展,越来越多的实践教学采用虚拟培训方式进行,达到良好的效果,一些高校将VR 技术应用于微电子网络实验室[3],构建虚拟科学实训室(VMS Lab-G),但其输入设备普遍采用鼠标、键盘和触屏,仅仅限于桌面化虚拟现实,体验感、参与感、沉浸感无法满足用户要求。
本文主要是将沉浸式VR 技术引入城轨车辆专业教学中,通过HTC VIVE 虚拟现实头戴式显示器(VR头显),结合HTC 控制手柄,搭建地铁列车设备认知教学系统。
1 基于HTC VIVE的沉浸环境
HTC VIVE 是HTC 公司与VALVE 公司合作的一套沉浸式虚拟现实设备,由头戴式显示器(Head-Mounted Display,HMD)、手持控制器、定位系统(Lighthouse)三部分组成[4]。其组成如图1 所示。
图1 HTC VIVE沉浸式虚拟现实设备
HMD 头显由OLED 屏幕制成,单眼有效分辨率为1200×1080,合成的双眼分辨率为2160×1200。VIVE支持配戴眼镜的同时佩戴HMD 头显。同时,其画面刷新率为90Hz,数据延迟低至22ms,无画面迟钝感,因此不易引起用户不适。除了肢体动作以外,HTC VIVE 没有其他任何形式的用户输入,属于自然的人机交互方式。
1.1 基于Lighthouse光学跟踪的空间定位技术
HTC VIVE 的空间追踪定位系统,用于追踪用户在区域内的位置,从而达到更为良好的沉浸式体验,如图2 所示。
图2 HTC VIVE追踪定位系统
而HTC 的定位系统的实现主要依靠Lighthouse 定位技术实现,Lighthouse 属于激光扫描定位技术,是由两个激光传感器(基站)扫描用户的位置追踪传感器,获得用户的位置和方向信息[5]。激光传感器如图3 所示,位置追踪传感器是由光敏传感器组成,如图4 所示。Lighthouse 的两个激光发射器以对角的形式安装,形成一个15×15 英尺的空间区域(区域可以根据实际空间大小进行调整)。每个激光传感器由两个扫描模块(分为水平和垂直扫描)发射激光光束,如图5 所示,以每秒6 次的频率不停的扫描设置的区域空间[6-8]。位置追踪传感器被安置在头戴显示器(HMD)和手持控制器上,其数量超过70 个。
图3 Lighthouse激光传感器
图4 HMD的位置追踪传感器
在激光扫过的同时头戴显示器开始计数,光敏传感器在接收到激光后,通过计算接受的时间,可以准确得到出头戴显示器(HMD)和手持控制器相对于两个基站的空间位置。于此同时,在激光束扫描过程中,如若击中多个光敏传感器,迅速形成三维模型。因此Lighthouse 定位技术不仅能跟踪出HMD 的位置,还能准确辨别HMD 的方向[9]。
图5 Lighthouse定位技术原理
1.2 基于HTC VIVE的人机交互技术
HTC VIVE 的人机交互属于自然交互,主要通过HMD 的位置以及手持控制器的操作实现交互功能,其中手持控制器的各个按键说明如图6 所示[10]。
图6 HTC VIVE 手持控制器按键功能图
PC 端与手持控制器以及HMD 的信息通信有对应的开发接口,VALVE 公司预留了开发接口,集成了以个SKD 包——OpenVR,在常见的VR 开发平台上几乎都进行了整合,可直接调用,非常方便。
手持控制器中的触控板具有按键和触控两种功能,按键功能与常见的键盘按钮类似,触控功能与鼠标移动功能类似,可用于移动旋转功能的设计中,但是其值有范围,其范围为(-1,1)。具体使用图如图7 所示。
图7 手持控制器触摸板取值范围
2 基于HTC VIVE的地铁列车设备认知教学系统的设计
2.1 地铁列车设备认知教学系统的架构
地铁列车设备认知教学是虚拟培训中的一种,为了能更好的实现系统功能,本文采用Unity3D 作为系统的开发平台,Unity3D 内部集成了OpenVR、Oculus、JDK 等VR 设备开发包,能非常方便地开发并实现沉浸式交互功能。
整个系统分为四个部分:基础知识学习模块、列车设备学习模块、考核评估模块和系统管理模块。其结构图如图8 所示。
图8 地铁列车设备认知教学系统框架图
(1)基础知识学习模块:通过文字说明、图像资料、视频资源以及动画仿真等方式进行教学,用以指导学员对地铁列车的基础知识进行讲解,以便学生熟悉列车各系统结构、组成及其工作原理等基本知识的学习。
(2)列车设备学习模块:学习列车关键部件设备的工作原理、设备作业、检修维护方法等知识,使学生对列车各部件有大致了解,提高学生知识的掌握程度。
(3)考核评估模块:考核分两种:理论和实操考核,使得学员能自行检测学习效果,对理论知识进行深化和巩固,使学生操作技能的提升,并通过模拟拆解列车设备的过程,进一步提高学生对设备工作原理的理解,提升学习效果。
(4)系统管理功能:能够满足对用户管理、教学资源管理、考核管理等功能,便于系统维护与更新,使得系统能稳定良好运行。
2.2 虚拟场景建模方法
虚拟现实系统的模型大致有两类:①直接利用已有的三维建模软件所设计的三维模型。②采用3DMax、Maya、Creator 等视景建模软件生成的三维模型。前者,建模较为精密,但对呈现的设备硬件要求较高,因此不适合针对大型场景进行建模。后者,其模型并不追求精度,因此其单个模型的渲染面片数量与第一种方式相比较少,因而在需要实时交互时具有:渲染速度快、用户体验好的特点。本文可考虑兼容两者优势进行场景建模,从而实现较好的实时交互体验。其建模流程如图9 所示。
图9 虚拟场景建模流程图
2.3 人机交互设计
HTC 人机交互属于自然交互方式,主要以凝视交互和手柄交互两种方式。
(1)凝视交互功能
凝视交互即利用视觉焦点代替鼠标指针,触发类似鼠标单击、双击、悬浮等交互事件,实现视觉交互功能。如图10 所示。
图10 凝视交互示意图
凝视交互功能实现原理:利用射线检测原理,由VR 眼镜中心处(摄像机中心点)发射出一条射线(Ray),通过Raycast 判断射线与虚拟物体是否发生碰撞,从而判定是否选择物体,并参考暂留时间设计触发后的响应。其中关键代码如下所示:
Void Update()
{
Ray ray=new Ray(transform.position,transform.forward);RaycastHit hit;
if(Physics.Raycast(ray,out hit,150))
{
……//设置事件触发的处理方法;
}
}
(2)手柄交互功能
HTC VIVE 的手柄交互可类比于键盘按钮和触摸板的功能进行设计,其功能按钮示意图如图6 所示,在前文已有描述此处不再赘述。
在Unity3D 中,HTC VIVE 的手柄控制器分为左右两个,先识别的为右,后者为左,此处以右手柄为例,介绍各个按钮对应于Unity3D 的按钮代码,其映射关系如表1 所示[10]。
表1 HTC VIVE 的手柄控制器与Unity3D 按钮映射关系表
利用if(Input.GetKey(“KeyCode”))方法就可以判断用户按下手柄哪个按键,利用If(Input.GetAxis(“AxisCode”))即可判断用于操作了哪个操纵杆及其方向。
3 系统运行实例
本文主要基于HTC VIVE 的地铁列车设备认知教学系统开发,现已实际运用,本节将展示系统的运行实例,以验证本系统的特点。
系统运行部分功能如图11 所示。
图11 基于HTC VIVE的地铁列车设备认知教学系统运行实例图
4 结语
笔者主要针对传统实践教学的不足,引入沉浸式VR 技术,通过HTC VIVE 虚拟现实头戴式显示器(VR头显),结合HTC 控制手柄,搭建一套无场地限制、实践教学环节安全可靠的地铁列车设备认知教学系统,并以进行实例验证,在虚拟培训以及VR 技术与教学相融合的方面具有一定的参考价值。