黄仁东 , 吴同刚
(中南大学 资源与安全工程学院,湖南 长沙 410083)
非煤矿山的安全培训是提高矿井员工安全技术操作水平和理论素质,确保矿井安全生产的有效途径和重要的安全措施之一。传统的安全培训形式包括上课,讲座,看视频等等,由于过程比较枯燥、不能适应复杂的变化、缺少灵活度等导致培训效果不佳[1]。随着虚拟现实技术(Virtual Reality)的发展与成熟,利用其交互性、沉浸感和构想性3个最突出的特征[2-4],可以构建交互式三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。在国外,VR已经被运用在越来越多的安全教育培训中:洛杉矶警察局使用Hydra模拟系统提升指挥者面对灾害时的处理能力,根据各种新闻广播、简报和其他模拟实时信息,提供身临其境的体验[5];美国NOISH的Pittsburgh和Spokane研究所使用游戏引擎开发了矿工培训游戏用于培训煤矿工人识别井下地图的技能[6-7]。在国内煤矿安全培训领域,虚拟现实技术被用于对员工进行安全生产培训[8],以角色扮演类游戏的方式,开发交互式矿工安全训练模块,利用3dsMax实现矿工人体建模包括Body模型和Biped骨骼绑定,结合OpenGL进行几何建模实现3D场景的建设;还有运用Converse3D虚拟现实制作软件设计系统UI和交互[9],达到漫游学习的目的。虽然都实现了虚拟现实安全培训,但是这些方法在构建稍显复杂的三维场景仍然十分耗时费力,构建的结果与真实场景存在一定的差异,而且采用第三人称视角操作,培训的沉浸感不是很强。本文设计的虚拟现实系统的实现路径包括3dsMax建立实体模型,导入Unity3D引擎,使用自带的第一人称控制器实现第一人称视角操作,用Javascript脚本语言实现设计好的模块与情景,构建安全培训虚拟现实系统,并将其应用在安全培训中。该路径能以较简单的方式实现良好的虚拟现实效果,同时根据不同的环境设计对应的情景进行培训教育,适用性强。
3dsMax提供的基础建模,poly多边形建模,NURBS建模等丰富的建模方式,可以轻松精确地构建各种复杂模型。既可以通过各类修改器将简单的自带模型修改为目标模型,也可以通过对三维图形或二维图形放样挤出、车削等构建三维模型。
因为巷道多为连续且截面基本保持不变,符合放样建模的特性。通过放样建立几何模型的方法为:构建模型走向的轨迹线—绘制截面轮廓线—选择复合对象命令下的放样—分别拾取路径与图形—获得对应的3D模型,见图1。
图1 放样建模Fig.1 Lofting model
利用噪波修改器可以模拟巷道凹凸不平的效果,结合材质编辑器中的位图功能,给巷道赋上对应的材质,使巷道看起来更加真实,见图2。
图2 模拟巷道Fig.2 Simulative roadway
对于一些简单的设备模型,可以建立大致的立体形状,通过放缩、旋转进行粗略调整,再经过多边形的点层级、线层级和多边形层级进行位置改动及各种修改器(放样、FFD、挤出等)精细加工,构建更逼真的模型,见图3、图4。
图3 钻孔机Fig.3 Drilling machine
图4 电耙Fig.4 Scraper
本系统主要采用Unity3D引擎中的第一人称控制器,大部分时间不需要人物角色出现即可实现场景漫游与交互,但也会有辅助人物角色的出现。网络上有丰富的人物模型资源,形态各异,可选取合适的模型加以修改,得到想要的模型效果。可以使用Skin骨骼蒙皮系统进行骨骼蒙皮、材质信息的添加以及纹理贴图设置,人物模型见图5。
图5 矿工角色Fig.5 Miner character
Unity3D作为开发平台具有众多的优势,简单列举如下:
(1)可以实现跨平台操作,适用范围广,平台的相关功能基本可以实现,实现不了的也可以通过插件来完成。
(2)脚本语言支持C#和Javascript,既可以选择功能强大资源丰富的C#语言,也可以选择相对简单,容易上手的Javascritp。
(3)Unity可以进行粒子光效编辑,其本身就是个功能十分强大的粒子编辑器,自带的粒子系统[10]可以轻松模拟火焰、爆炸、烟雾等特效。
(4)拥有丰富的插件,可以实现各种功能,比如一些shader特效、物体破碎特效、场景变形特效等。且自带第一人称控制器,可以很方便的完成场景漫游与交互。
(5)跨平台能力强,移植便捷,3D图形性能出众[11]。项目完成后可以根据对应平台找出选项导出相应的资源。
(6)自带天空盒、材质贴图、地形编辑器等,可以方便的构造各种环境。
第一人称控制器可以通过导入Unity自带的资源包来获取,主要包含3个部分,分别是主摄像机、胶囊体和一个碰撞器,见图6。自身携带3个脚本,可通过鼠标指向控制视角方向,WASD控制移动,面板设置移动速度、跳跃高度等参数轻松地实现第一人称视角漫游的效果。
图6 第一人称控制器Fig.6 First person controller
以第一人称视角进行操作有很多优点,首先第一人称视角贴合实际,可以产生相对强烈的沉浸感,让人有身临其境的感觉;其次,第一人称视角能够方便配合外部硬件设备,比如VR头盔、球幕等营造更加真实的学习体验,从而达到较好的培训效果;第一人称视角还省去了主角人物模型制作与动画效果,简化制作过程。
碰撞检测技术是实现人物与环境,人物与人物交互的关键性技术,是使得场景和活动更加逼真的重要手段[12]。要使人物与模型中的物体碰撞时不发生穿透的现象,以及到达指定区域出现特定的操作与提示的效果,碰撞检测必不可少。
Unity3D碰撞检测类型主要有3种,分别是基本碰撞检测、触发器碰撞检测和光线投射。基本碰撞检测能够满足基本的碰撞检测要求,但是必须要求2个物体的碰撞器接触后才能触发指令,局限性较大;光线投射可以避免这个问题,但是有面向方向的要求,不适合人物自由自动进行交互的要求。本文选取触发器碰撞检测。
触发器碰撞检测需要设置2个触发器,可以自由设置触发器的大小,将需要被检测碰撞的物体包含于一个触发器中,将另一个触发器附于具体需要执行指令的物体,当角色到达第一个触发器范围,即可触发相应的脚本,完成操作。触发器检测不受朝向和人物与物体碰撞的限制,而且脚本不需要附在第一人称控制器上,这样有利于后期程序运行的流畅性。对应的Javascript脚本为:
function OnTriggerEnter(col:Collider){
if(xxx.gameObject.tag=="xxx"){ 如果触碰的物体标签为 “xxx”
具体脚本视情况而定;}}
运用Unity3D自带的粒子系统,可以很好地模拟各类事故如火灾、爆炸、冒顶片帮的发生、扩散、抑制的全过程。通过导入Unity自带的粒子资源包,可以模拟各种情节效果,如火焰、烟雾、淹水,动画效果逼真,导入简便。以火灾为例,粒子系统效果见图7,可以将Fire粒子系统添加到着火的场所,同时建立脚本文件附到Fire粒子系统上,实现当粒子系统触碰到消防设备时几秒后停止发射,模拟火灾被消灭的效果[13]。
核心脚本为:
function OnParticleCollision{
if(collision.collider.tag==“fire extinguisher”) 如果触碰的物体标签是“fire extinguisher”
yield WaitForSeconds(10); 等待10 s
particleEmitter.emit=false; 停止发射粒子
}
图7 Unity3D火焰粒子系统Fig.7 Unity3D fire particle system
本虚拟现实系统主要用于矿井漫游与应急培训。矿井漫游能够有效地帮助学员了解井下结构;各个部分的位置、功能以及发生事故时正确的逃生路线等。应急培训主要是为了使矿工能够在发生各类事故时,不要惊慌失措,采取正确果断的措施自救或救助他人,减轻事故后果,保障人身安全。
本文所要构建的虚拟现实平台主要目的是用于非煤矿山开采员工的安全培训。规章制度类培训教育用虚拟现实来实现意义不是很大,而对井下环境的熟悉和面对现实各种场景的正确反应与操作直接关系到操作工人的安全与健康。因此本虚拟现实系统主要以对井下环境认识与各种场景的合理应对措施为主要教育内容。目前设计安排的模块有:矿井漫游模块和应急培训模块。系统运行的整体框架见图8,系统功能设计见表1。
图8 系统运行框架Fig.8 System operation frame
矿井漫游模块主要用于工作人员对井下环境的认识与熟悉。运用3dsMax对矿井具体构造、现场环境、作业场所、各个系统、设备的位置和运作等进行建模显示,结合Unity3D实现各个角度进行仔细观察,学员可以通过身临其境的体验快速熟悉矿山系统的各个环节[14]。在漫游的过程中可以添加文字说明和语音讲解,让学员学习逃生路线、紧急避险系统的位置与操作等知识,有利于保障发生事故时井下工作人员的人身安全。该模块主要分为学习模式和练习模式2个部分。选择学习模式时,学员可选择矿井内任意区域进漫游,对井下环境有全面而真实的了解,当漫游完毕,返回选择其他区域的漫游。
表1 系统功能Table 1 System function chart
练习模式主要考察学员对井下环境的掌握情况,系统随机选定一个区域,学员在该区域内到达设计好的信息点时出现实时测试,完成相应任务。如果规定时间内没有完成,则跳转到学习模式,进一步加深学习了解。漫游场景见图9。
图9 井下漫游场景Fig.9 Roaming scene under mine
应急培训模块设计的整体构架主要包括学习模式和练习模式2个部分。学习模式是以学员视角为主视角,自动在构建的虚拟场景中进行漫游,到达指定位置时面对出现的场景,进行正确的应对,并在界面上以文
字和真人发音的形式辅助说明,加深学员的印象,学习正确的操作与应对措施。练习模式就是由学员自己操作,以第一人称视角进行走动,利用触发式碰撞器和场景中特定物品产生交互,引导学员做出正确判断,出现错误操作时判定不合格,跳转学习模式。三维仿真的系统可以直观展现井下发生事故的场景,学员感受真实深刻,可以提高培训质量[15]。目前设计的场景有:炮烟中毒事故、冒顶片帮事故、火灾爆炸事故、透水淹井事故、触电事故等。
交互式安全培训模式主要有2条线组成。首先是交互部分,学员通过自己操纵第一人称视角的角色对构建的场景进行探索,与设计好的物体或人物进行交互;另一部分是由一系列的情节安排来设定情景。任何安全培训都有培训的目的和所要达到的效果,这就需要通过合理的主线使学员在进行操作的同时,学到必要的知识。所以,在情景设计之前,需要先对故事进行构思,设定故事的框架。先确定学员需要完成哪些操作,学习哪些知识,然后设计相应的场景,需要出现的人物,当学员处于某一场景中时应该做的操作以及给出对应的交互反应。用简单易懂的方式让学员学到最实用的知识和技能,并留下深刻印象,以至于在真实场景中遇到类似的情况能做出正确的反应,保证自身安全。以炮烟中毒场景为例,情景设计如图10所示。
图10 炮烟中毒情节设计Fig.10 The plot design of blasting fume poisoning
系统的运行应当是一个完整流畅的过程,需要设计好操作的进程。从开始菜单以后,每一级都应设有返回上一级的功能,方便学员自由选择学习内容。在练习模式下,顺利完成任务时应记录下来存档,表明学员通过该阶段考核,直至学员通过所有训练才算通过。
为了鼓励学员认真完成学习与训练,有效的激励措施必不可少。对于完成所有练习的学员,系统将进行记录并公示在开始界面,按照学员练习的完成进度进行排名列出榜单,同时对排名靠前的学员给予一定的现金奖励和表扬,激发学员的学习兴趣与动力。
1)相比于传统安全培训的方式,该系统具有较好的沉浸性与交互性,场景逼真,员工有较高的学习兴趣,学员以第一人称视角在虚拟矿井中漫游,能够较好地熟悉井下环境。
2)克服井下复杂环境的限制,通过应急模拟培训掌握应对各种事故时的正确处置措施,配合实际应急操作训练,能够给员工留下更深刻的印象,有助于增加事故应对能力。
3)学员通过反复学习与练习,可以实现以较小的成本与时间达到良好的教育培训效果,有较高的实用性。
[1] 胡东涛,黄浪,等. 基于虚拟现实技术的非煤矿山救护队培训系统设计与实现[J].中国安全生产科学技术, 2017,13(2):171-175.
HU Dongtao, HUANG Lang, et al. Design and implementation of training system for non-coal mine rescue team based on virtual reality technology[J]. Journal of Safety Science and Technology, 2017,13(2):171-175.
[2] 姜学智,李忠华.国内外虚拟现实技术现状研究[J].辽宁工程技术大学学报,2004(23):238-240.
JIANG Xuezhi, LI Zhonghua. Present situation of VR researching at home and abroad[J]. Journal of Liaoning Technical University, 2004(23):238-240.
[3] 张能福,何新矿,阎旭骞.虚拟现实技术的及其在采矿中的应用[J]. 金属矿山,2002(11):62-63.
ZHANG Nengfu, HE Xinkuang, YAN Xujian. Virtual reality technology and its application in mining engineering[J]. Metal Mine, 2002(11):62-63.
[4] 黄心渊. 虚拟现实技术与应用[M]. 北京:科学出版社, 1999.
[5] 戴丽红.洛杉矶警局反恐策略及对我国公安反恐工作的启示[J].武警学院学报,2011,27(1):93-96.
DAI Lihong. The los angeles police department’s strategy of anti-terrorism and its inspiration for counter-terrorism work of chinese police[J].Journal oF Chinese Peoples Armed Police Force Acadamy,2011,27(1):93-96.
[6] Timothy J.ORR, Marc T.Filigenzi, Todd M.Ruff. Virtual reality for mine safety training [J], Applied Occupational & Environmental Hygiene, 2000, 15(6):465.
[7] CJ Bise. Virtual reality: Emerging technology for training of miners [J], Mining Engineering, 1997, 49(1): 150-154.
[8] 赵国梁.综采工作面安全生产虚拟现实系统关键技术研究[D].西安:西安科技大学,2012.
[9] 徐雪战,孟祥瑞,等. 基于三维可视化与虚拟仿真技术的综采工作面生产仿真研究[J].中国安全生产科学技术, 2014(1):26-32.
XU Xuezhan, MENG Xiangrui, et al. Research on virtual simulation of full mechanized mining face production based on three-dimensional visualization and virtual simulation[J]. Journal of Safety Science and Technology, 2014(1):26-32.
[10] 赵春霞,张艳,战守义.基于粒子系统方法的三维火焰模拟[J].计算机工程与应用,2004,40(28):73-75.
ZHAO Chunxia, ZHANG Yan, ZHAN Shouyi. 3-dimensional fire simulation based on particle system[J]. Computer Engineering And Application,2004,40(28):73-75.
[11] 肖建良,张程,李阳. 基于Unity3D的室内漫游系统[J].电子设计工程, 2016, 24(19):54-56.
XIAO Jianliang, ZHANG Cheng, LI Yang. The indoor roaming system based on Unity 3D[J]. Electronic Design Engineering, 2016, 24(19):54-56.
[12] 闫兴亚,赵杰,崔晓云. 基于Unity3D建筑施工虚拟培训系统的研究与实现[J].计算机与数字工程,2016, 45(7):1281-1285.
YAN Yaxing, ZHAO Jie, CUI Xiaoyun.Research and implementation of construction virtual training system based on unity 3D[J].Computer & Digital Engineering, 2016, 45(7):1281-1285.
[13] 刘永立,杨虎. 煤矿火灾应急救援演练虚拟现实系统研究[J]. 矿业安全与环保,2013,40(6):22-25.
LIU Yongli, YANG Hu. Study on virtual reality system for mine fire emergency rescue training[J]. Mining Safety & Environmental Protection,2013,40(6):22-25.
[14] 修春华,孙秀娟,苗坡,等. 基于Unity3 D的虚拟矿山漫游仿真系统设计与实现[J].金属矿山, 2015, 44(4):262-266.
XIU Chunhua, SUN Xiujuan, MIAO Po, et al. Design and implementation of virtual mine roaming simulation system based on unity3 D[J]. Metal Mine, 2015, 44 (4):262-266.
[15] 冯丹丹.三维矿井应急救援仿真系统的研究与实现[D].北京: 华北电力大学,2013.