VR的自动化生产线实验系统设计和实现

VR的自动化生产线实验系统设计和实现

【摘要】简要说明虚拟现实技术在职业院校实验体系当中的作用,然后介绍如何开发基于虚拟现实技术的自动化生产线实验系统,从框架设计、功能架构搭建、设计流程、具体制作过程,重点展示利用unity插件vrtk制作虚拟项目的技巧。

【关键词】虚拟现实;VR;自动化生产线;unity;vrtk

职业院校一直重视实验教学,实验教学在它的课程体系占用很重要地位,通过实验教学,培养学生的理论应用实践和创新能力。在以往的实验教学环境下,限制于实际条件的约束,学生只能在限定的时间和地点,利用有限的实验设施,完成规定的实训内容。为此,以往实验室的实验是完成具有程序化的操作命令,极大制约了对学生动手能力及工程创新能力的培养。在这种背景下,利用Photoshop、3DSMAX、Unity3D等技术,结合htcvive硬件设备,开发一套基于虚拟现实(VR)技术的自动化生产线实验系统,让学生身临虚拟实验现场,自由观察虚拟实验设备,进行设备虚拟拆装练习的虚拟实验系统,解决实验师实验实训设备不足、实验受时间地点限制的问题,提高教学效果。

1自动化生产线实验系统开发总体架构框架设计

制作一个好的系统,首先我们要有一个总体的架构。根据自动化生产线实验的教学需要,我们设计了这个系统开发方法,系统分别从调查分析,需求报告,开发技术可行性分析,实际开发这五个方面进行构思开发[1]。系统框架图如图1所示。

2自动化生产线实验系统功能架构搭建

在设计好系统总体构架的基础上,接着设计自动化生产线实验系统的功能架构。经过前面的调查分析和形成的需求报告,设计出来这样的架构:一部分是设备展示模块,一部分是设备拆装模块。

2.1设备展示

根据教学的需要,我们把自动化生产线上的主要部件,单独拿出来进行展示,展示的设备有:变频器、电动机、plc等。这些虚拟设备都是可以进行360度观察的,便于学生了解每个设备的细节。

2.2设备拆装

这是自动化生产线实验系统的核心部分,通过对自动化生产线的拆装,可以让学生掌握生产线拆装的原理,方法和过程。

3自动化生产线实验系统开发设计流程

对于自动化生产线实验系统,首先要收集整个场景所需要的数据图片资料,然后通过这些数据图片资料为基础建立场景模型,为模型添加贴图、材质,优化处理后将其导入到unity3d中,进行场景模型渲染,产生逼真的虚拟场景。在虚拟场景中,通过链接硬件输入设备htcvive,并用c#进行编程,对虚拟设备进行交互操作[2]。本系统技术实现路线如图2所示。

(1)与一线实验教师交流,了解教师的具体需求,包括各种设备的建模、精度、交互、文本说明等。

(2)观察真实实验设备,拍摄照片与视频,获取实验设备的真实资料。所需资料包括设备的三视图、设备的颜色、设备的位置、设备的运动轨迹等信息。

(3)实现虚拟场景。三维模型是整个系统开发的最基础的部分,自动化生产线系统主要包括自动化生产线整套模型、电动机模型、变频器模型、PLC模型。

(4)优化三维模型。由于三维模型的数据量比较大,对电脑的要求比较高,为了降低对电脑的要求,对模型进行优化,适合于普通电脑的运行,并且保证运行的流畅。

(5)设计导入虚拟引擎,实现虚拟交互操作。分别将模型文件导入到Unity引擎中,设置场景,添加天空盒效果、光照效果。

(6)连接HTCVive设备,进行漫游和虚拟拆装设计。连接上HTCVive,利用手柄控制器对场景进行操作,对实验室场景进行漫游,对单个虚拟实验设备进行观察,对自动化生产线进行拆装实验练习。

(7)设计UI界面。为了提高用户体验,设计美观整洁的UI界面,包括欢迎界面、操作界面、文字说明等。

4自动化生产线实验系统制作过程

4.1用3dsmax制作三维模型

三维模型是整个虚拟系统的基础,没有它,一切都实现不了。首先,制作模型的时候,先设置好系统单位为毫米,因为这些设备并不属于很庞大的设备,选择毫米单位比较适合。其次,选择多边形建模方式,这样可以控制好模型的面数,这在后期的虚拟引擎中的运行,特别关键。如果模型的面数太多,会影响系统运行的流畅性;严重的时候会导致系统的崩溃,无法运行。为了保证模型的精致和真实,对模型的边角都采用切角进行圆滑,而不是用网格平滑修改器,因为网格平滑修改器会成倍增加网格数。如图3、图4、图5、图6所示。

4.2贴图的制作

关于材质和贴图部分,实现起来比较简单,用max默认的标准材质,材质的漫反射基本就是调金属的光滑反射就行,虚拟实验室的虚拟空间采用位图贴图,贴了墙纸、画框的图片、地板的砖块等。

4.3导出fbx模型

在max中并不用放置灯光,因为后面会把模型导入到unity3d中,在unity中再设置灯光。导出模型的时候使用fbx格式,在弹出的对话框中,选择包括多媒体选项,这样在导出的模型文件才会附带上贴图。

4.4fbx模型导入unity3d

模型导入untiy3d中的时候,最好是分单个模型导入,这样对电脑的压力会小很多。导入模型后,贴图也会跟进来。然后,在unity3d中打灯光,并进行烘焙。

4.5连接硬件设备HtcVive

链接外设HtcVive。在unity3d中用c#语言进行编程,控制硬件手柄的各种动作,包括漫游、拿起、放下、安装等操作。

4.6VRTK插件的使用

VirtualRealityToolkit简写为VRTK,它是SteamVRToolkit继承而来,最早支撑Htcvive,后来的版本陆续支持其他VR平台的SDK,如Oculus、Daydream、GearVR等,所以改名为VRTK。它是作为unity的插件存在,通过Unity3d进行虚拟现实开发开发,开发者不需要太多的编程,只需要利用里面的模块,就能完成大部分虚拟现实开发内容,大大提高开发项目的效率。VRTK插件的功能很多,主要应用漫游及位置传送和手柄拖拽物体到固定空间位置这两个功能。

4.6.1漫游及位置传送

在这个自动化生产线实验系统中,需要操作人员移动位置。具体实现的效果是戴上htcvive头套,按下手柄的触摸板按钮将发射一条抛物线,松开触摸板将立即传送到抛物线指向的目标位置,这就是位置的传送。要实现这个功能,首先在场景中创建一个空物体,在上面绑上VRTK_SDKManager脚本程序。其中,在ScriptAliasLeft或者RightController项中所设置的物体分别是作为该空物体的子物体的两个物体。将在这两个子物体上绑定控制脚本程序,将自动绑定到对应的左右手柄上,这样更方便管理而且不会破坏[CameraTig]物体的预制体的链接。在该物体下再新建一个空物体,命名为Play_Area,并在上面绑上VRTK_BasicTeleport脚本。这样设置之后,就拥有了基础传送的功能。

4.6.2手柄拖拽物体到固定空间位置

手柄拖拽物体到固定空间位置,效果如图7所示。首先,配置左右手柄[Left/RightController]。在[Left/RightController]对象物体上分别添加VRTK_InteractGrab及VRTK_InteractTouch两个组件。其次,配置可拖拽对象物体。在可交互物体上添加刚体Rigidbody、交互对象VRTk_InteractableObject、子对象控制抓取VRTK_Chil⁃dOfControllerGrabAttach以及交换控制抓取VRTK_Swap⁃ControllerGrabAction组件,同时将子对象控制抓取VRTK_ChildOfControllerGrabAttach组件和交换控制抓取VRTK_SwapControllerGrabAction组件添加到交互对象VRTk_InteractableObject组件的变量引用中。最后,配置拖拽空间位置物体,拖拽物体动作配置就完成了。此外,还可以用手柄发射射线拖拽物体到指定空间坐标位置。具体做法是在左右手柄[Left/RightController]物体上添加手柄激光射线脚本模块,同时把VRTK_Point⁃er组件的InteractWithObjects勾选上即可[3]。

4.7根据用户体验,美化界面

为了提高用户体验,我们特别制作了UI场景界面,虚拟舞台场景,如图8、图9所示。在开头画面制作了菜单选项,分操作说明、点击进入、退出三个选项。具体场景跳转关键代码如下:

4.8打包生成可执行文件,到pc端

充分利用unity的跨平台的特点,我们最后可以把文件打包成pc端可执行程序。并进行调节测试,完善程序。

5总结

本自动化生产线虚拟实验系统,有清晰的思路,有完整的用户操作界面,有符合实验标准的虚拟操作,适合当前虚拟现实技术在职业院校实验课程的使用,并能取得良好的效果,特别是在职业院校实验实训设备及经费缺少的情况下,会发挥更大的作用。另外,通过这个系统的开发,也给其它的自动化类、电力类、机械类、汽车类虚拟实验系统的开发提供了很好的思路及解决方案。

作者:陈平 郭平 单位:广西水利电力职业技术学院