全 莹,王荆石,郑博文
(1.中国铁路呼和浩特局集团有限公司呼和浩特货运中心,呼和浩特 010010;2.兰州安信铁路科技有限公司,兰州 730070;3.甘肃省轨道交通信号与控制评测行业技术中心,兰州 730070;4.甘肃省工业交通自动化工程技术研究中心,兰州 730070)
近年来我国也在轨道交通虚拟仿真培训上进行了大量的研究与应用,研究内容包括了铁路设计、铁路作业和铁路培训等方面。其中铁路培训工作与虚拟现实技术结合设计的虚拟仿真培训系统为铁路培训发挥了重大作用。虚拟现实技术与铁路叉车作业结合设计的半实物仿真系统,解决了职工培训理论与现实脱节、培训成本大、培训效果不明显的问题。同时,构建数字化操作管理系统使用户的培训、学习与实训可以得到良好的记录。
Unity3D是一个大型游戏开发平台,该平台三维动画、可视化物体和动作实时性等技术已发展的较为完善。将Unity3D引擎开发工具应用到铁路虚拟场景上,利用3ds建模工具构建铁路货运虚拟模型,充分利用其强大的建模能力。三维模型建立后,导入到Unity3D平台。系统软件设计如图1所示。
图1 系统软件设计
本系统操作台硬件叉车为实物1∶1还原。由悬浮式座椅、驾驶座舱、底座平台、PC系统、视屏显示器、方向机、档位杆、操作杆、IC卡读写装置、360视角调整摇杆、油门、离合、刹车踏板、转向开关、数据采集卡、控制台及各种功能控制按钮组件等组成。设备采用与真实叉车相同的操作部件,逼真的操作手感,使得其操作功能、操作感觉与真机完全吻合。
真实还原铁路货运叉车现场环境,使得货运职工在室内叉车平台上就能真实感受到现场环境,获得沉浸式体验。叉车实训功能模块,均来自于货运现场叉车作的实际拆解。利用VR技术于典型场景,受培训者可以直观了解叉车作业的操作流程。
利用虚拟技术设计多种叉车作业流程,包括水平搬运、堆垛/取货和装货/卸货等。同时附带虚拟交互功能,货运职工可以与虚拟技术所呈现的功能模块进行体验。针对培训场景的培训视频,利用Unity的dotween工具插件开发了相关播放设置,见表1。
表1 播放设置表
自动化考核,包括以下功能:①考核点设置及试题库管理;②人工(随机)组卷及试卷管理;③实训考核管理(包括实训考核名称、实训考核层级选择、试卷选择、实训考核时间、总分设置、及格线设置、实训考核模式开启和关闭等功能);④智能及人工阅卷(实训考核过程回放)。培训者在操作过程中所有的动作流程通过大数据都会被采集到数据库中,通过智能分析,将每个培训者的实际考试情况记录下来。最终系统会对培训者做出整体测评,评价该货运职工实际操作能力。
以实物仿真、AR虚拟技术及铁路货物装卸安全技术规则等技术规章为技术支撑,搭建室内装卸机械操作实训区,对叉车进行虚拟仿真实训。AR技术将虚拟和现实连在一起,员工坐在真实的叉车上,感受到真实的室外作业场景。
叉车操作系统采用了基于Unity物理引擎编写的以第一人称的画面行动组件。Unity本身的物理引擎可以较为准确完整描述虚拟世界的相关动作,为使用户体验感更强,在Unity中使用RotateView()函数,摄像头根据此脚本就可以自由旋转。在3D场景中,函数通过对第一人称的作用力使得第一人称移动。而该移动是在模拟号的3D环境中进行移动,可以较好的完成上下移动,前进与后退等。同时利用3Dmax软件对虚拟场景进行优化,将看不到的场景、画面进行精简与删除,精简模型量,使得虚拟场景展现出的操作场景更加逼真。
叉车作业的流程与操作顺序必须满足现场作业的工作流程。交互脚本中需要添加顺序操作的逻辑功能,整个交互脚本需要实现现实与虚拟的交互性,培训人员坐在叉车上操作手柄等操作在虚拟搭建的场景上要有同步真实的动作。利用C#编程进行脚本的语言设计与开发,C#编写的手柄移动脚本要实现手柄在虚拟场景中的拖动前进后退提升落下等相关功能。
叉车在进行虚拟场景作业时,需要时刻清楚是否碰撞到相关物体或被物体所碰撞,碰撞从概念上来讲,一个物体收到另外一个物体的力,并发生位置或状态的变化,称为碰撞。常用的为OncCollion检测和On-Trigger检测。在该虚拟环境中,采用触发检测的方法来判断是否产生碰撞,使用该触发检测的前提是需要在被检测物体上勾选Is Trigger选项。使用3个相关重要函数:OnTriggerEnter():开始碰撞、OnTriggerStay():碰撞中、OnTriggerExit():结束碰撞。相关碰撞检测设置代码如下(图2):当开始碰撞时,将碰撞标签与“object”标签对比,若相等,定义碰撞开始。触发一个对话,并记录“开始撞到”。碰撞过程中,记录“停留在撞击状态”。碰撞结束,关闭该会话,并记录“结束撞击”。
图2 碰撞检测设置代码
叉车在虚拟场景中的移动是整个交互操作系统的重要组成部分之一,所有的动作均编写在脚本里面,利用脚本来实现动作。在Unity3D的操作界面中选择3D Object中的Caspsule创建一个3D立体物体胶囊,并将其命名为Player,通过更改其Inspectors的Transform属性,将立体物体胶囊移动到地面上合适的位置。将相机(Camera)的父级拖拽到立体物体胶囊(Player)的子层级中,充当视角,并调整到适当位置。在SImpleNaturePack中创建一个C#Scripe的脚本。设置好一个单元移动速度,GetKey函数用于监视输入指令,并在玩家移动时触发语句。根据触发时间乘以单位移动速度所花费的单位时间,可将相应的单位按规定方向移动。在角色模拟器的摄像机组件中添加脚本,通过GetAxis函数监视鼠标在垂直和水平方向上的输入,设置好参数值,记录上次移动的位置,当Player移动触发语句时,移动速度v乘以相应时间t,摄像机就可以实现旋转相应的角度,达到控制视角的效果。
通过半实训仿真系统的模块设计与交互场景的实现,系统搭建了半实物仿真平台操作界面。
实训具体操作结构图如图3所示。
图3 系统操作结构图
用户在登录该半实训仿真平台后,选择自己的实训题目。同时在登录界面仅可看到系统根据自己所选题目按照考试要求生成的实训题目,系统的培训内容则不可见。当实训考试结束或人为自动退出考试界面后,系统恢复显示培训内容。
受训人员选择实训任务后,系统根据选择的叉车实训场景生成相应的虚拟环境,在完成该任务后,系统判定。若任务未完成,系统记录,重新选择实训场景。直至受训人员完成所有实训场景,系统判定均认定成功,系统进入下一系统,员工完成培训任务的学习,系统给出最终评定成绩,供给实训老师参考。实训标准流程如图4所示。
图4 实训标准流程
实训考核层次划分为集团公司级、站段级和车间级。为了对员工培训的公平及选拔人才的需要,考试试题存在着不同的难度等级。员工所选择的等级越高,系统设置的题目难度会增加。作为机器学习的一种,每个属性的测试就会相应地有一个非叶的点存在于决策树上。每个特征属性的输出则会在决策树上存在一个对应的分支。在对系统等级的难度设置上,决策树就要从实训等级这一根节点出发,测试相应的实训等级。并按照实训等级输出来选择对应的分支,系统基于决策树的实训等级设计如图5所示。
图5 实训等级设计
具体的设置方法:①实训考核的层级越高,高难度考核点的出现比例越大;②实训考核的层级越高,高难度考点所占的分数比例越大。
实训打分为系统自动打分,考试结束,系统随即给出考核结果。参培员工若对结果有异议,可申请人工辅助判卷。实训单位教师通过实训过程的全程记录,人工给出考核成绩。
智能成绩的统计需要数据库的设计,采用SQL数据库收集数据。描述学员信息、成绩信息、操作过程中的动作属性信息和操作流程中所使用的工机具信息等,能够更好地完成针对职工的自动评判,通过操作即可自动实现成绩的判断,并传输至上位机,在平面交互界面进行显示。
基于半实物仿真技术的铁路叉车培训系统已在本局铁路货运中心运用,该系统使得培训员工在室内真实叉车模型上即可模拟叉车现场作业,用逼真的作业场景使培训员工获得了良好的培训效果。通过演练各种作业场景,提高了培训员工各个场景的作业能力,对于现场作业中的“看不见”“摸不着”的设备与场景,虚拟技术也提供了各种操作环境与真实作业感觉。员工的作业水平,作业能力、作业素质均得到了全面的提升。
本系统解决了传统铁路培训的现场实训与作业冲突、培训功能单一、设备不易全方位观看的缺点,提出了一个基于虚拟现实技术的创新场景,最大程度上调动了培训员工的学习积极性与参与趣味性。虚拟现实技术的低成本与高性能使得货运叉车的培训变得更加高效、安全与节能。