一种VR/AR液压拆装实验教学系统的开发和实现
2021-04-16刘继忠旷有涛金颖李祎李道良
刘继忠,旷有涛,金颖,李祎,李道良
(南昌大学机电工程学院,江西 南昌 330031)
目前高校对机械产品拆装实验、认知水平教学基本停留在比较传统的模式上,存在着学生实践时间短、教学成本高、设备紧张等诸多问题,一定程度上影响了实验教学工作的开展和学生实践创新能力的培养[1-4]。液压拆装实验是学生掌握液压元器件结构、工作原理的一个重要基础实验。由于液压拆装实验需要完成对液压元件的拆解、装配,学生数量多,循环使用,极易造成元器件损坏,且本身亦需要较多不同类型液压元器件,因此,导致拆装实践教学成本高,台套数不易满足教学需求等问题。而最新发展迅速的虚拟现实技术,具有交互性好、沉浸感强和良好的体验感等优势[5-7],且在虚拟仿真教学、虚拟训练系统中得到了较为广泛的应用,有着提升学生学习兴趣等优势[8-9]。张俊等[10]以RV减速器为研究对象,应用虚拟仿真技术和增强现实技术基于Unity3D开发出了一套RV减速器虚拟仿真系统。Wang等[11]以交互性火星探测车为对象,开发出一套火星探测车虚拟训练系统。李玉胜等[12]以Delta机器人为研究对象,基于Unity3D技术结合HTC vive设备开发出Delta机器人的虚拟仿真实验系统。
因此,基于以上研究,针对液压传动具有理论抽象、实验成本高、设备要求多等问题,结合虚拟现实技术交互性好、沉浸感强和良好的体验感等优势,开发一套基于虚拟现实(virtual reality,VR)和增强现实(augmented reality,AR)的液压拆装实验教学系统,以降低教学成本,并提升学生学习兴趣,拓展学生新型技术视野。
1 系统方案
1.1 总体思路
《液压传动》课程拆装实验主要是完成能源装置(泵类)、控制调节装置(阀类)、执行装置(液压缸和液压马达类)等液压元器件的拆解装配、结构与工作原理掌握,因此,系统开发主要完成三大装置的立体结构建模以及基于虚拟现实技术的拆解装配、结构与工作原理掌握等功能,因此,从功能设计上主要考虑基本知识讲解、立体结构展示(包括透视、旋转、缩放等)与虚拟拆装(包括整体立体爆炸图、单件拆装、复原等)、工作原理动画模拟、音视频与图片嵌入、实验交互功能设计等。同时考虑到课程统一安排的集中实验以及便于学生随时自学,系统并设计了适合于两种实验教学情形的教学系统,即便于课堂实验教学的PC端VR系统和便于学生随时随地学习掌握的手机APP端AR系统,具体功能如图1所示。
图1 系统功能结构Fig.1 System function modules
1.2 具体技术路线与系统架构
具体技术路线与系统架构如图2所示,第1部分软件建设部分,首先要完成视频、音频、Vuforia插件等素材收集或录制,其次要完成基于Solidworks或者Proe等软件的液压元器件三维模型建模以及第三贴图等素材制作,最后处理后导入Unity3D软件平台;第2部分硬件支撑部分,主要包括HTC vive头盔、操作手柄、安卓手机、PC或笔记本电脑。第1部分和第2部分共同构成了实验教学系统开发的软、硬件平台支撑。液压元器件包括液压泵、液压阀、液压马达、液压缸等装置的虚拟拆装主要通过适合于课堂集中实验教学的PC端VR系统和适合于学生随时随地掌握学习的手机APP端AR系统实现,具体VR系统功能主要通过虚拟拆装、工作原理模拟、旁白或视频讲解、结构透明展示、旋转及缩放观察、知识点考核等实现,具体AR系统功能则主要通过二维扫描对应、触屏控制、虚拟拆装、旋转及缩放观察、知识点考核等实现。
图2 技术路线与系统架构Fig.2 Technique route and system architecture
1.3 开发平台
如图2中所示,开发平台包括软件平台和硬件平台。软件平台主要是为完成元器件三维结构建模、环境渲染以及VR/AR系统开发提供支撑,具体包括虚拟现实开发平台Unity3D,三维建模软件SolidWorks、Proe或UG(文中采用SolidWorks,三者皆可实用,可转化统一格式导入Unity3D),优化渲染软件3Dmax,软件系统开发工具包DOTween和Vuforia插件。虚拟现实开发平台Unity3D支持Android 、Windows、网页等应用平台的全平台发布[13],开发者可以将所开发产品方便的发布到Android 、Windows、网页等应用平台,可以根据实际需求,实现单机、网页、移动终端及其他平台同时使用的要求。系统虚拟现实功能开发和增强现实功能开发采用C#编程语言,UI界面设计采用Unity自带的UGUI。具体的开发平台、工具及其作用如表1所示。
表1 开发平台、工具及其作用Tab.1 Development platforms,tools and their functions
硬件平台主要包括:虚拟现实硬件系统如HTC头盔、定位模块、操作手柄、高性能显卡等,实现虚拟场景沉浸式体验与交互,支撑VR实验系统运行的承载平台——计算机系统如笔记本电脑、台式PC等,实现易于随时随地学习掌握的AR系统运行的承载平台——安卓手机系统。
2 液压拆装实验VR系统开发实现
2.1 系统开发流程
系统分为PC端VR系统和手机APP端AR系统,由于采用Unity3D开发平台,支持PC端、Web端、APP端的全平台发布,且AR系统是基于VR系统内容开发,因此,重点以PC端VR系统开发为主阐述,并在第3部分单独进一步阐述AR系统。系统主要开发流程如图3所示,主要如下。
1) 液压元件三维建模。液压元件三维模型的建立是液压虚拟拆装实验系统建设的基础,也是后续液压VR系统基本回路实验、液压系统仿真的实现基础。可基于Proe/Solidwork三维建模软件对液压元件模型进行建模,构成液压元件三维模型系统。
2) 三维模型的导入与修饰、渲染。第一,将建好的三维模型转化成stl格式,导入到3DMax中,对零部件的中心位置坐标轴进行调整,以及对模型导入后缺失的点、线、面进行优化处理,并根据实际需求附上材质。第二,可进一步利用Photoshop软件制作一些贴图,配合模型在Unity3D中使用。第三,将模型导出为.fbx格式,并和模型一起进一步导入到Unity3D开发平台中,进行场景内容制作、UI界面设计等VR实验系统开发。
3) 界面优化、虚拟实验场景制作。结合模型和课程实验,制作VR虚拟实验场景和进行交互功能设计,具体包括结合实验需求的UI界面、基于C#脚本语言编程操控的虚拟场景下的人机交互。
4) 发布。将开发调试好的系统选择PC端平台发布,生成可直接执行的VR实验系统。
图3 系统开发流程Fig.3 System development process
2.2 交互界面及功能设计
2.2.1 交互界面
利用Unity自带的UGUI组件可以快速地创建图形用户界面(GUI界面)实现用户与机器的交互。利用UI界面中image、button等控件实现元件介绍、结构图及原理图、分离和复原、模型透明显示等交互界面功能。利用按钮附上脚本设计完成面板之间和场景之间的流畅切换。作为实际VR液压实验系统,考虑到用户管理以及实验选择,并设计登录注册界面、液压元件拆装实验选择界面、液压元件知识学习与考核界面。系统中一叶片泵液压元件拆装实验界面如图4所示。
2.2.2 标签显/隐功能
考虑虚拟实验操作中的实时提示,系统设计对每个液压元件及其零部件都加上实时标签功能,具体是通过每个零部件添加Box Collider碰撞体,当鼠标经过物体,调用OnMouseEnter()函数,当鼠标离开物体,调用OnMouseExit()函数,并利用一个布尔值,当鼠标经过物体,OnGUI()函数检测到布尔值为true,利用GUI中label控件绘制大小适合的零件名称标签,当鼠标移出将恢复。系统一叶片泵具体实例如图5所示,当鼠标靠近零件时会显示零件的名称如图5(b),而且该零件的颜色会变红;当鼠标移出零件位置时,标签会消失,零部件的颜色会恢复到物体原来的颜色如图5(a)。
图4 叶片泵VR拆装实验操作界面及分离效果图Fig.4 Interface and separation diagram of vane pump
(a) 变色前
(b) 变色后图5 叶片泵显/隐实时提示功能Fig.5 Display/hidden real-time prompt function of Vane pump
2.3 液压系统VR拆装实验交互控制设计
2.3.1 旋转、缩放、平移、透明功能
液压拆装实验是为了学生更好地掌握液压元器件结构和工作原理,因此,方便地观察元器件结构是其最为重要功能之一,系统设计了旋转全方位观察、缩放细节观察、透明内部观察功能。旋转:主要利用四元数Quaternion类的原理实现,点击鼠标右键让液压元件旋转,实现不同角度全方位的液压元件观察;缩放:通过代码对虚拟摄像头控制,滑动鼠标滚轮可以对液压元件进行放大或者缩小,方便液压元件模型细节观察;平移:具体通过将世界坐标系转化为屏幕坐标系,记下物体与鼠标的距离,通过将物体的坐标加上这段距离,实现用鼠标左键对重要零部件拖动到特定位置进行观察;透明:通过材料透明化处理,可以观察元件内部结构,再次点击可以使其恢复到原状态。系统并可以按钮模型显示,液压元件模型将会以合适比例出现在界面内,整个旋转、缩放、平移、透明操作结合虚拟场景和头盔,具有良好的沉浸感和现场感。
2.3.2 拆装功能
为了更好地理解掌握元件结构与工作原理,也是液压拆装实验的核心目的,因此,系统设计了虚拟场景下的液压元件拆装功能,具体包括分离、复原和拆装。学生通过在界面上点击分离和复原的按钮,实现相应分离、复原功能,系统叶片泵分离效果如图4所示,通过具体元件零件的点击拾取与放回实现手动拆装功能。其中实现零件的分离和复原具体是通过获取液压元件子对象即每个零件的位置,在分离功能时结合Dotween动画插件将每个零件依次按顺序移动到特定位置,在点击复原时将每个零件移动到初始位置实现,其核心代码如下:
void Start ()
{
for (int i=0;i < YePianB.childCount;i++)
{
pos[i]=YePianB.GetChild(i).transform.localPosition;//获取每一个子对象零件的位置
}
}
2.3.3 知识学习与考核功能
液压虚拟拆装实验教学系统除了结合实验教学外,还配置了对应的知识学习和考核功能,可以通过单击“液压元件基本知识”、“结构图及职能符号”、“液压工作原理”、“视频”按钮可以激活相应的学习面板,学习面板图文并茂,其中视频界面主要以视频和音频的方式介绍液压元件,工作原理主要是对每个需要运动的物体附上相应的C#运动脚本。通过Unity脚本控制这几个面板之间的来回切换,保证切换的流畅性。
3 液压拆装实验AR系统开发实现
基于手机APP端的增强现实(AR)系统,更易于随时随地学习和掌握[14-15],手机APP端液压拆装实验AR系统主要是实现学习、增强现实虚拟实验、对应元件的结构与工作原理知识掌握功能,其开发实现与PC端VR系统类似,此部分主要阐述对应元件的结构与工作原理知识掌握功能。
手机移动端利用Vuforia SDK增强现实工具对二维液压元件图进行跟踪注册,生成标志图文件导入进unity平台,通过AR扫描与对应关联,实现系统中对应的AR模型结构与工作原理掌握功能。具体是通过添加手指触屏功能实现在手机端对液压元件模型的放大、缩小、分离、复原等虚拟交互,实现手机移动端三维增强现实结构与工作原理及知识掌握,AR系统端主要设计流程如图6所示。
图6 AR系统主要设计流程Fig.6 AR system main design flowchart
具体操作是通过交互界面按钮或手机触屏实现放大、缩小、旋转、分离、复原等虚拟交互功能,系统一基于二维图纸扫描的AR操作实例如图7所示。
图7 手机移动端AR系统操作实例Fig.7 An example of mobile phone AR system
具体实现例如AR系统模型缩放,主要是通过判断触屏上两个手指间的距离变化,距离变大则将模型放大,距离变小,则将模型缩小,其主要核心代码如下:
float length1=Mathf.Sqrt((oP1.x-oP2.x)*(oP1.x-oP2.x)+(oP1.y-oP2.y)*(oP1.y-oP2.y));
float length2=Mathf.Sqrt((nP1.x-nP2.x)*(nP1.x-nP2.x)+(nP1.y-nP2.y)*(nP1.y-nP2.y));//获取两触点之间的距离
float oldScale=transform.localScale.x;
float newScalse=oldScale*1.035f//缩放比例
transform.localScale=new Vector3(newScalse,newScalse,newScalse);//改变模型的大小。
4 系统运行
系统开发完成后,将虚拟现实液压拆装系统发布到PC端生成.exe格式文件,将增强现实液压拆装系统发布到安卓端生成.apk文件。用户只需要点击软件,输入相应的登录注册账号,就进入液压元件选择界面,选择对应的液压元件,就可以利用操作手柄/鼠标或手指完成对应元件虚拟拆装、理论知识学习、工作原理模拟、旋转、缩放等功能的学习。图8为PC端VR系统发布后的叶片泵功能测试图,图9为手机端AR系统发布后的叶片泵的功能测试图。经过反复运行测试,系统运行流畅,功能满足了基本的设计要求。
(a) 手动拆装
(b) 透视图8 VR系统功能测试图Fig.8 Functional test diagram of VR system
(a) 旋转前
(b) 旋转后图9 AR系统功能测试图Fig.9 Functional test diagram of AR system
5 结束语
针对液压传动课程拆装实验的高成本、设备台套不足等问题,结合最新虚拟现实/增强现实技术,设计了一套VR/AR液压拆装实验教学系统,给出了开发实现平台和具体实现开发过程。该系统不仅可以解决液压传动课程拆装实验的高成本、设备台套不足问题,还可以实现学生随时随地与远程学习,促进提高学生学习兴趣和拓展学生新型技术应用视野,并为高等学校创新实验教学模式和机械类其他相应类型的虚拟实验平台开发提供支撑和借鉴参考。