基于虚拟现实和增强现实的虚拟仿真实训室平台*
2022-08-09丁亚军应治国陈一民
丁亚军,应治国,陈一民
(1.上海长润信息技术有限公司,上海 200050;2.上海建桥学院信息技术学院)
0 引言
虚拟仿真实训室平台的建设是“未来校园”开展线上线下相融合的混合实训教学重要的组成部分,也是人工智能环境下,教师人技协作有效开展实训教学的重要载体。虚拟现实(Virtual Reality,简称VR)是一种将计算机图形技术与相关设备相结合,可为人们创造一个具有沉浸感、互动性和想象力的良好虚拟环境的仿真技术。增强现实(Augmented Reality,简称AR)是将计算机建立的虚拟物体信息叠加在真实的现实场景中,通过三维注册技术来实现对真实场景的增强。近年来,VR、AR 已广泛应用于国内外教育与培训领域,包括设计方案评估、虚拟维修培训等。VR、AR 技术在楼宇智能化设备安装与运行专业课程(楼控系统的安装与维护课程,综合布线课程)技能实训方面具有独特的优势,可创造一个高逼真度的训练环境,使受训人员沉浸在良好交互的场景中,为受训人员提供身临其境般的三维空间虚拟感受。
本虚拟仿真实训室平台基于数据驱动理念,聚焦楼宇智能化设备安装与运行专业课程技能实训功能,采集和积累学生实训过程数据,通过分析模型,准确判断学生的学习情况,适时特性化的推送实训资源,从而缩短实训学习时长,提升学生的动手能力。
本文将VR、AR 技术应用于楼宇智能化设备安装与运行专业课程技能实训环节,应用了上海长润信息技术有限公司技术团队自主研发的长润虚拟仿真实训管理和共享平台、长润虚拟化仿真实训软件V1.0.0以及面向职教的智慧教学云计算平台等技术研究成果,搭建了一种楼宇智能化设备安装与运行专业课程技能平台,该平台应用3ds Max 和Unity3D 软件创建高逼真度的虚拟场景,采用有限状态机模型作为模拟实训过程的核心算法,采用Java 及C#实现程序编制,图形界面采用UGUI 插件进行设计,仿真中引入了粒子系统。该平台能够直观展现楼宇智能化设备安装与运行课程中各复杂环境与运行仿真场景,为学生提供一种高逼真度的训练环境,对提升学生的实战能力具有重要的意义和价值。
1 平台架构与功能
1.1 总体架构设计
综合考虑楼宇智能化设备安装与运行专业课程技能实训的需求,结合体系架构理论,设计了一种混合式架构(基于浏览器/服务器(B/S)模式和客户端/服务器(C/S)模式),如图1 所示。主要由两大部分内容构成,即“管理和共享平台”及“相关技能虚拟仿真实训子系统”。以一幢智能化楼宇—“未来大厦”为载体,融入两门课程(楼宇智能化设备安装与运行课程、以及综合布线课程相关技能点实训模块)的虚拟化仿真实训项目和与之相配套的基于典型应用场景的系列技能实训功能,以大厦实际应用进行楼层内的布点,将实训项目有效分类、整合,构建以职场工作为原型的实训体验环境。学生通过虚拟仿真实训室的项目实训,既能让学生开展单项技能实训,又能让学生多角色岗位联动实训,从而掌握“未来大厦”的整体管控。
图1 实训平台的总体架构图
由于传统方法无法对多个虚拟实训过程进行融合和优化,同时也难以实现过程、计划、实施、运维一体化的实训目标。设计并开发基于建筑信息模型和虚拟现实技术(VR)、增强现实(AR)的实训空间可以很好地解决这一问题。开发基于VR、AR 技术的实训平台,在实训环境的设计阶段,利用该实训环境协同设计,建立实训环境的数字化模型。在实训空间模型的基础上,设置设备参数,对设施设备运行过程进行仿真,模拟实训空间(整个大楼所含的主要及关键设备)运行过程,再对整个实训的规划布局、设备配置等进行评价和优化。
1.2 平台硬件架构
参考真实情况下楼控系统的安装与维护课程以及综合布线课程相关实训环节,我们设计了该实训平台,其硬件架构如图2 所示,包括三维场景可视化、实训演练、人机交互仿真、在线考核评估等。
图2 平台的硬件架构
通过数据手套和磁力跟踪器等设备可实现对操作者动作的捕获,由PC6 完成对这些交互操作采集与处理;PC2 接收PC6 的输出并据此完成虚拟场景的绘制、注册和渲染等;PC2 输出的虚拟场景同步发送至PC4 和PC5;PC1 使用双目摄像头和视频采集卡对真实场景进行采集和处理,左右眼输出视频分别发送至PC4 和PC5;PC4 和PC5 完成虚拟及真实场景的融合,并通过分屏器分别输出至头盔显示器和投影仪,发送到头盔显示器的融合场景视频供操作者使用,而发送至投影仪的融合场景视频,供观察者使用,观察者可以看到与操作者相同的画面。所有计算机通过高速以太网连接,在PC3 的管理下进行相互间的通讯,PC3是系统的通信和控制中心,另外,PC3还要完成音频控制、光照控制、设备状态监控及控制和管理等任务。
另外,通过构建真实的楼宇设施设备模型和交互环境,基于改进自适应跟踪算法的增强现实三维注册,可在移动端将AR 人机交互、三维全景漫游、视频多媒体元素相关结合,实现对虚拟装备移动可视化与交互,让学生通过人机交互可视化系统不受时间、地域的限制快速学习新的技术和设备知识,达到快速认知了解楼宇设施设备内部结构以及工作原理的目的。
1.3 核心业务流程
“虚拟仿真实训室平台”不仅提供虚拟实训服务功能,而且可以采集实训过程数据,并能对其进行统计分析,展示给老师和学生。其核心业务流程如图3所示,含实训准备、实训演练及实训统计三大部分,可使学生身临其境般的学习、训练,掌握实际技能。让学生全面了解和认知智能楼宇相关的各方面知识,并通过虚拟化实训的方式帮助学生扩展书本上无法获取的知识及经验,同时记录学生的学习与实训过程,并对其学习经历进行研判。
图3 虚拟仿真实训室平台-业务流程图
1.4 核心业务功能
“虚拟仿真实训室平台”应用软件功能主要由两大部分构成:①管理和共享平台;②相关技能虚拟仿真实训子系统”(含两门课程相关技能点实训模块,有拓展空间)。
在实训教学开始前,教师可以通过管理平台设置实训项目,提出要求及关键参数,并准备相关的理论或技能知识资源供学生学习。实训项目相关信息可以从外部系统获取数据,如实训课程信息、实训要求、实训资源等。学生可以在各虚拟仿真实训子系统中进行实训操作。在实训前先进行理论知识、技能要点、实训要求的学习,然后正式进入实训。在实训过程中,平台会自动进行各种关键性数据的采集,如实训动作、实训步骤、时间等等。在实训演练结束后,通过评价模型对各类实训过程数据进行统计分析,将统计分析的结果、评价建议以及根据实训情况推荐的学习资源展示给学生。教师在平台中可以查看学生历次实训的操作记录和统计分析的信息、维护实训成绩,以及查看各类统计图表,并根据实训情况及时调整优化实训教学内容。最终也可将采集和分析的数据传输到外部系统。
2 关键方法
2.1 三维场景可视化及性能优化
三维场景可视化主要实现高真实度的楼宇智能化设备安装与运行课程中所涉及的场景、各种设备的动态模拟仿真与实时显示,是确保仿真实训质量的重要前提。楼宇智能化设备安装与运行课程中所涉及的大楼以及设备等复杂模型,本文以现实中设备结构模型为依据,在三维工程建模软件中进行相关设备及装备的制作,并采用二维平面设计软件设计与模型外表相符的纹理贴图,通过三维模型渲染软件对模型进行渲染,包括纹理贴图、材质与灯光。以智能化楼宇为例,其构建过程根据CAD图纸,按照实际和虚拟1:1的尺寸比例搭建框架模型,并结合现场照片,利用3ds Max软件渲染出最终三维数字化模型。当三维模型立面很多,达到百万级,而且要展示多个建筑物时,对硬件的内存消耗很大,必须做优化,一方面在3ds MAX中剔除多边形的背面,只显示其必要面,减少模型面数,使系统运行顺畅,使用材质优化工具对模型进行材质优化,优化所有模型多维或子对象材质,并清除游离点和清除空物体样条线,减少模型内存,增强模型的稳定性;另一方面可在Unity3D 中把模型做成预制体,只在程序执行的必要时候进行实例化,其余时间处于销毁状态。
Unity3D 编译时选择合适的分辨率,不是越高越好,根据实际的运行效果,选择适当的分辨率,可以降级程序运行的存储和内存空间,提高运行速度,而不会降低学生的体验效果。将渲染过的模型导入虚拟仿真引擎中进行处理,结合地形地貌系统与天空盒模块的构建,并采用LOD 分级显示技术与遮挡剔除技术来优化场景资源,最终成功搭建高逼真度的三维虚拟场景,图4所示为其中一个三维场景。
图4 智能化楼宇仿真模型
2.2 WebGL渲染
WebGL是一种三维绘图协议,为网页添加OpenGL 特性支持,从而实现3D 图形渲染。相比较WebPlayer 使用需要先安装浏览器插件,WebGL 使用时,无需额外的插件支撑,便可以实现Web 交互式三维渲染,提高了软件使用便捷性。在Unity中,WebGL通过il2cpp.exe 将.NET IL 中间语言编译成C# ++源码,然后通过各个平台的C++编译器进行编译,达到跨平台访问目的。对于C++源码,Unity支持两种转化方式:asm.js 和WebAssembly(wasm),其中asm.js 是文本格式,WebAssembly 是二进制格式。考虑到二进制运行速度更快,体积更小,我们采用wasm方式进行转化。WebAssembly 是基于堆栈虚拟机的二进制格式,通过编译程序源码,可以将程序部署在Web端。以Windows平台为例,利用底层虚拟机LLVM Emscripten 编译器将C++编译成.wasm 文件。由于wasm 不能直接被浏览器识别,需要通过JavaScript 接口进行页面加载,从而实现3D图形网页渲染,其原理如图5所示。
图5 WebGL原理
2.3 人机交互仿真
良好的人机交互功能能够提升训练质量、改善实训效果。我们选择HTC Vive 作为交互设备,双基站追踪头盔和手柄位置和角度信息,实时跟新场景和交互动作,实现沉浸式漫游和交互体验。
场景中导入SteamVR Plugin,Hierarchy 窗口中添加将CameraRig 和SteamVR。手柄和基站定位器链接SteamVR 定位系统,通过头盔和手柄中传感器,实现定位功能。头盔和手柄由Camera Rig 控制。删除原来的Camera,运动手柄连接成功后,虚拟场景中会创建虚拟手柄。选择视图中Camera(eye),摄像机将精确地追踪到头盔,然后创建脚本并添加到控制器上。在Scripts 文件夹下创建C#语言脚本,删除Start(),编写方法程序代码放入Update()内,对手柄控制器进行一个引用,作为被跟踪对象。通过SteamVR_Controll-er.Device 访问到手柄控制器,通过手柄控制器input值追踪对象并返回这个input 值。头盔和手柄都是被追踪对象,在现实中移动和旋转头盔与手柄都能被系统追踪到。在Update()中编写方法程序,Tracked_Obj 会被赋值SteamVR_Tracked Object 对象,通过访问手柄的输入信号并传输到控制台,实现程序表达的动作。
选择瞬移的方式来实现虚拟场景中的移动漫游功能,借助运动手柄向目的地面发射激光,摄像机瞬间移动到激光定位的位置,达到虚拟场景中的视野移动。首先利用预配置的ViveNavMesh 在Unity3d 中烘焙一个导航网格。添加ParabolicPointer 组件后,生成指示网格从Vive Nav Mesh 中采样获得指示数据。给SteamVR Camera 添加Vive Teleporter 组件,组件通过控制传送机制从Parbolic Pointer中获取指示数据,确定传送的位置,移动后实时渲染的新场景平稳地切入转换减少了眩晕感。
本系统的交互点数量庞大,有如按钮、照明灯、调速旋钮等,虚拟交互点保持与现实一致的逻辑动作过程。先将交互点进行分类处理,然后用C#语言编写程序控制交互点动作。另外采用界面开发插件UGUI完成交互界面设计,根据需求,设计人机交互界面,包括登录界面、功能模块界面、仿真操作界面、设置界面、在线学习与考核界面等。
3 应用结果
我们所开发的实训项目支持多种主流平台发布,包括PC、手机及平板等,训练人员可通过本地电脑、手机或平板进行培训考核,极大增强了仿真培训的便捷性。本平台包含两门课程实训内容,主要通过“知识认知”和“技能实训”两种形式呈现。
根据实训课程相关知识点,组织学习资源,引导学生在虚拟仿真实训场景中进行学习,通过对真实工作场景的高度还原,引导学生熟悉实际工作岗位上所要接触到的知识点。虚拟仿真技术与传统文字、图片或视频技术相比较,可以从事物的外在架构逐步透视到内在构成,结合预先设置好的学习路线、平台可以引导学生依照专业岗位职责设置开展学习活动,从而使得学生形成整体上的认知,如图6所示。
图6 楼宇自动化虚拟仿真认知实训
根据真实工作岗位要求,我们设计了相关技能实训及考核环节,引导学生在虚拟仿真实训场景中进行实训或考核。传统的虚拟仿真实训场景一旦开发完毕即固化且难以调整,考虑到现代楼宇自动化管理技术的发展,实际工作场景随着管理需求的变更或设备技术的提升,相关技能学习或实训要求会随之有所改变,因此提供了一套虚拟仿真实训场景参数设置接口,依照相关接口可以定义实训场景的各类参数,如需要显示的设备名称、描述;互动操作的取值范围,限制条件等,通过这一模式,可以最大限度利用“三维场景可视化”环节的工作成果,同时亦可为未来场景扩展做好准备。
“知识认知”和“技能实训”时,系统将采集其过程数据,并根据一定的规则加以评判(如,是否在指定时间内完成,是否掌握该岗位必要的技能点等等),对学生技能掌握情况有一个定量的分析供师生参考,也为个性化教学提供参考数据,这是本平台的一大创新点,如图7所示。
图7 楼宇自动化虚拟仿真实训评估
4 结束语
基于虚拟现实与仿真技术,结合Unity3D 虚拟仿真引擎,对楼控系统的运行与维护课程以及综合布线课程实训的关键技术进行了探索性研究,开发了一种高真实度的行为仿真模型,成功搭建了一种虚拟仿真实训室平台。该平台能够直观展现楼宇智能化设备安装与运行课程以及综合布线课程中各种复杂环境与运行仿真场景,为学生提供一种高度逼真的训练环境,支持注册登录、虚拟漫游、实训演练、在线考核评估等功能,可发布到电脑、手机或平板,可以随机随时进行考核培训,增强了培训的便捷性。该研究成果具有重要意义和实用价值。