APP下载

机械产品装配信息在虚拟现实环境中的表达

2018-12-20冯帆杜江乔虎白瑀

机械 2018年11期
关键词:视线虚拟现实动画

冯帆,杜江,乔虎,白瑀



机械产品装配信息在虚拟现实环境中的表达

冯帆,杜江*,乔虎,白瑀

(西安工业大学 机电工程学院,陕西 西安 710021)

为了解决机械产品在虚拟现实环境中信息表达不完备、用户交互性能差的问题,以虚拟现实环境中装配信息表达的特点为基础,分析虚拟现实环境中的装配信息,并结合虚拟现实系统的需求对装配信息进行重组;同时考虑装配信息特点和虚拟现实环境的要求建立虚拟现实系统,设计实现了鼠标-键盘-菜单控制及视线控制两种交互方式,完成装配信息表达。实验结果表明,虚拟现实系统可以完整表达机械产品装配信息,合理的交互方式可以帮助虚拟现实系统实现对装配信息进行准确表达。

机械产品;装配信息;虚拟现实

机械产品结构精密、配合复杂,虚拟现实技术与装配工艺设计技术的结合将为机械设计人员及装配工艺设计人员提供方便、直观、快捷且具有高度还原性和真实性的虚拟装配规划环境,并能有效将装配工艺设计过程与仿真过程结合,实现在装配工艺设计过程中对方案合理性进行实时检验。在虚拟现实环境[1]中对产品的装配信息进行表达是实现虚拟装配的前提和基础,而良好的交互性能是虚拟装配系统的内在要求,同时也对装配信息的表达产生影响。

将虚拟现实技术应用于机械产品的装配信息表达有利于机械行业培训的专业化、智能化和便捷化。目前对于装配信息的提取技术已有较广泛深入的研究,文献[2]提供一种基于Pro/E的装配信息提取技术;文献[3]提出将虚拟装配中的产品属性与行为信息分为产品层、特征层、几何拓扑层及显示层;文献[4]研究了虚拟装配系统中尺寸公差、形位公差的数学模型与表示模型的表示方法。对于虚拟装配的交互方式,文献[5-6]开发了基于Kinect体感技术的虚拟现实交互系统;文献[7]设计了利用数据手套进行虚拟装配的交互方式。文献[8]在虚拟现实环境中实现了发动机的虚拟拆装。可以看出,虚拟现实技术在机械产品装配方面已有应用,但目前市场上还未见到针对机械产品装配的成熟产品,可见机械产品装配信息在虚拟现实环境中的表达还未达到预期效果。

本文对机械产品的装配信息进行了深入分析,并结合虚拟现实环境要求对装配信息进行重组,利用Unity 3D引擎,针对机械产品设计了Windows平台下的虚拟装配信息表达系统,并利用鼠标、手柄、虚拟现实头盔等外部输入设备提出了不同的人机交互方式,目的是让机械产品的装配信息在虚拟现实环境中得到完整准确的表达,帮助用户在充分理解机械产品装配信息的同时,获得更具沉浸感的体验。

1 虚拟现实环境中的装配信息类型

传统概念的装配有两种:一是在三维CAD软件中的虚拟装配,用户进行虚拟装配时仅需了解零件之间的装配关系,系统会根据这些关系将零件装配到合适位置;二是在现实中的零件装配,需要零件间的装配关系及装配工艺信息,装配工人需要按照装配关系进行装配,装配操作需要符合装配工艺要求。

搭建虚拟现实装配环境需要的信息如下:

(1)虚拟场景信息,是指执行装配操作的虚拟环境信息。与三维CAD软件中的虚拟装配不同,虚拟现实环境中的虚拟装配场景需要保证合理性,包括环境的合理性和尺寸的合理性。环境的合理性是指虚拟场景应接近现实中对该产品进行装配时的环境,尺寸的合理性是指虚拟场景中的物体需要与其他物体及被装配物体保持合理的比例关系。虚拟场景信息是为用户带来真实感与沉浸感的基础。

(2)装配模型信息,即被装配产品的详细信息。包括:模型基本数据信息,反映被装配产品的外形、尺寸、精度、特征等信息,作为虚拟场景信息的参照;装配关系信息,反映各零件之间的配合关系及配合方式;装配工艺信息,反映装配的方法、工艺要求等;实际产品信息,反映被装配产品的外观及材质信息,是渲染出真实产品模型的基础。

(3)零部件动作信息,是指装配过程中产品零件及装配工具的位置及方向的变化方式信息。装配是按照一定工艺及顺序将零件组合成产品的过程,其中涉及多个零件与工具的移动与旋转,零部件动作信息包括产品零件及装配工具的运动方式信息,同时也包括零件及工具运动的时刻、时长等信息。

(4)交互信息,是指用户在虚拟现实环境中对产品进行装配的操作方式与信息反馈。明确交互信息是为了保证用户在使用虚拟现实系统时可以准确便捷地执行操作,提升用户体验。

2 装配信息的重组与表达

根据虚拟现实系统特点,结合虚拟现实环境下的装配信息,在设计虚拟现实系统时可划分成模型部分、场景部分和交互部分三部分,系统结构如图1所示。

(1)模型部分,主要包括产品模型和场景模型两方面。产品模型表达装配模型信息、场景模型反映虚拟场景信息。机械产品模型结构精密、尺寸精度要求高,需要合理装配,一般采用Solidworks、Catia、Pro/E等软件进行零件建模并进行装配;场景模型是为用户提供更真实的沉浸式体验而建立的机械产品展示场景,一般使用3Dmax软件进行场景建模,具有良好的曲面建模能力、可操作性强,适用于常用的室内设计建模。建立好的模型需要导入到Unity 3D软件中以完成虚拟现实场景的制作。

(2)场景部分,是指在Unity3D软件中进行虚拟现实场景的制作。首先将模型摆放在合适位置,搭建成完整的模型展示场景,其次通过Unity 3D对模型进行渲染,保证场景模型和产品模型具有良好的视觉效果,最后调整场景内摄像机的位置,使用户可以通过虚拟现实头盔观察到合适的场景。场景部分着重表达虚拟场景信息及零部件动作信息。

(3)交互部分,主要包括产品拆装的动画及逻辑顺序判断及用户与产品拆装之间的人机交互。用户与虚拟现实场景之间的交互可以增加用户的代入感和控制感,增强用户的操作兴趣以及学习效果,进一步发挥虚拟现实技术与传统展示方式的优势。除此之外,机械产品的装配和拆卸必须要按照一定顺序进行,逻辑严谨,因此需要建立后台逻辑判断机制,保证拆卸和装配的顺序。交互部分的设计需要充分表达虚拟装配中的交互信息。

图1 虚拟现实系统结构

本文利用Unity 3D引擎对虚拟现实场景进行开发。Unity 3D具有强大的渲染功能,同时可通过Monodevelop平台编写脚本实现功能需求,制作的场景可直接发布到Windows平台,同时支持与不同的虚拟现实播放设备的实时连接。本文采用Oculus DK2作为播放设备。

制作虚拟现实系统的具体步骤如下:①在Solidworks中建立机械产品模型,导入3Dmax中转换成.fbx格式,再在3Dmax中建立场景模型,并与机械产品模型共同导入到Unity 3D的Hierarchy模块中;②将事先绘制好的材质贴图导入到Unity3D中,并利用其对模型进行渲染,调整场景中的灯光;③将名为OVRCamera的Oculus SDK导入Unity 3D中,该SDK整合了双目摄像机功能,可以直接在Oculus播放设备中观看具有双目视觉效果的虚拟现实场景;④利用iTween插件对产品的拆装路径进行绘制与规划;⑤根据机械产品的拆装原则与方法,利用Unity 3D中的脚本控制系统制作逻辑顺序判断系统,再根据该逻辑顺序利用Unity 3D中的Canvas工具制作交互菜单;⑥通过控制脚本使摄像机位置的移动与外设输入设备相匹配;⑦进行系统测试,测试结果良好后通过Unity 3D打包并发布到Windows平台。

3 交互部分设计

虚拟现实技术与传统的二维图像或动画演示相比,最突出特点就是具有交互性。交互技术的合理应用可以增加用户的沉浸感、提升用户体验,同时帮助用户更加充分地了解机械产品的内部构造。本文以一级齿轮减速器为例在虚拟现实系统中设计了不同的交互方式。

装配信息表达的准确性要求在虚拟现实环境下保证交互系统符合机械产品拆装工艺要求,因此在进行交互系统设计时,需要对用户的操作进行约束,通过脚本控制对减速器拆装的逻辑顺序进行判断。虚拟现实中动画的播放需要一定触发条件,因此可将前一个动画的播放结束特征作为后一个动画的播放前提条件。

本系统采用读写配置文件方式进行逻辑判断,当第一步拆装动画完成后将在系统中自动生成带有标识位配置文件,当用户执行第二步拆装动画时系统会自动读取之前生成的配置文件中的标识位,若读取到的标识位数据与程序设定相同时系统则判定为可以执行该步骤的动画,否则便不能播放。播放第二步动画后系统便自动改写配置文件中的标识位信息,以便后一步动画的读取。

以上文所述拆装逻辑顺序判断系统为基础,分别设计了鼠标-键盘-菜单交互系统及实现控制交互系统。

3.1 鼠标-键盘-菜单交互系统

在Unity 3D软件中可以利用Canvas工具制作交互菜单。根据机械实验教学课程要求,将一级齿轮减速器的拆卸分解为螺栓拆卸、上盖拆卸、齿轮啮合动画、主动轮拆卸、从动轮拆卸五个步骤,同时在进行动画播放时需要随时暂停和开始,播放完成后如需再次观看还需对场景进行重置,因此共需要八个按键。通过Canvas制作的按键可以添加脚本控制动作的触发。将提前编译好的拆装动画脚本及逻辑判断脚本挂载到对应的按键上,通过颜色变化以区分选中与非选中状态,鼠标移入按键区域则将按键颜色更改为红色以表示选中状态,通过鼠标点击按键进行触发。经过测试,在虚拟现实头盔中并不能直接看到鼠标指针,因此需要再制作一个按键以代替鼠标指针,制作完成后的交互界面如图2所示。

图2 鼠标-键盘-菜单交互界面

在角色运动控制方面,系统使用键盘控制。由于虚拟现实头盔具有内置陀螺仪,本身便可实现镜头的旋转功能,因此需要添加镜头的移动功能,包括前、后、左、右、上、下六个方向的移动。本文使用w、a、s、d四个按键分别控制镜头的前、后、左、右四个方向的运动,通过q、e两个按键控制镜头的升高和下降。

通过键盘控制运动的部分代码如下:

float translation1=Input.GetAxis ("Vertical") *speed1;

float translation2=Input.GetAxis ("Horizontal")*speed2;

translation1*=Time.deltaTime;

translation2*=Time.deltaTime;

float translation3=-speed3*Time.deltaTime;

float translation4=speed3*Time.deltaTime;

transform.Translate (0, 0, translation1);

transform.Translate (translation2, 0, 0);

if (Input.GetKey (KeyCode.Q)){

transform.Translate (0,translation3,0);

}

if (Input.GetKey (KeyCode.E)){

transform.Translate (0, ranslation4,0);

}

3.2 视线控制交互系统

视线控制交互系统是通过用户的视线瞄准对象并触发动作的交互方式。视线由头部姿态和眼球方向共同决定,当眼球相对头部静止时通过改变头部姿态来改变视线方向,当头部静止时刻通过改变眼球方向来改变视线方向[9]。

目前的虚拟现实播放设备还无法对用户眼球旋转方向进行捕捉,但设备内安装有内置陀螺仪,头部运动可被陀螺仪捕捉,并使视野内场景随头部运动而变化,理论上用户可以观察到场景内的所有物体,这是利用用户视线对物体动作进行控制的前提条件。根据此特点,可以将用户视线简化为头部发出的一条直线,据此设计的交互方式为当用户的视线聚焦到某一物体上时使该物体执行合理的动作。该交互方式的本质是将用户视线作为选择工具,将物体作为功能按钮,通过视线对按钮进行选取与触发,使按钮执行预设的功能。为避免用户的误操作,还可对按钮的触发设定延迟,即用户需要”凝视”一段时间后系统再判定按钮被触发。

在Unity3D环境下,用户的视野即是呈现在摄像机中的场景内容,因此摄像机方向与用户视线方向一致。以摄像机中心为原点、以摄像机正方向为方向绘制一条射线,即为用户的视线模型,该射线将始终通过用户视野的中心。

在Unity3D中绘制射线的代码如下:

myTransform.forward=centerEye.forward;

myTransform.position=centerEye.position+(centerEye.forward*fixedDepth);

Ray ray=newRay(centerEye.position,centerEye.forward);

RaycastHit hit=new RaycastHit();

Physics.Raycast(ray,out hit);

Debug.DrawLine(ray.origin, hit.point);

由于视线控制系统没有实体硬件操作,为使用户对自身操作有清晰认识,需建立完善的用户反馈机制。首先通过代码绘制的射线无法被用户观察到,但由于其始终通过用户视野中心的特性可以通过添加对象的方式标记视野的中心。Unity 3D中的Canvas功能支持添加图片到用户视野内,并使其随视野变化始终保持在视野中心位置;其次由于触发延迟的设置,用户需明确认识是否选中按钮及距离触发的剩余时间;基于以上要求,系统采用圆形进度条形式进行反馈。初始状态下进度条处于隐藏状态,当射线移动到按钮上后,原本位于视野中心的准星被圆形进度条覆盖,以表示选中按钮,同时进度条开始计数,待计数达到100后按钮功能被触发,进度条被再次隐藏。用户反馈机制是交互系统中的重要环节,实现完整的用户反馈对系统整体交互性能的提升具有重要意义。

4 系统测试与评价

将两种交互系统打包并发布到Windows平台,将虚拟现实头盔与计算机连接,进行测试。测试结果证明均可在Windows平台上稳定流畅运行,装配信息表达准确,可实现按照工艺要求与逻辑顺序对机械产品进行装配与拆卸。

在装配信息表达方面,首先为用户搭建机械产品实验室环境场景,其中桌子、柜子、墙体、标语等信息均符合现实环境中的比例,为保证用户体验的沉浸感建立基础;其次,采用机械实验中常用的一级齿轮减速器模型,产品的外形、尺寸、特征、材质等信息通过虚拟现实环境得到准确表达,同时零部件的装配关系、装配工艺等信息均可通过该系统表现;第三,零部件的动作信息通过制作的运动动画得到表现,包括拆卸过程中工具与零部件的运动及不同零件运动时的互相影响,均可通过虚拟现实动画的形式直观地呈现在用户眼前,比二维动画更加清晰、准确、便于理解;第四,用户可以方便地对场景中的元素进行操控以完成机械产品的拆卸,交互信息也得到了充分的表达。

图3为鼠标-键盘-菜单交互系统测试示意。系统交互性能良好,操作感强,运行流畅。用户可以通过该系统清楚地了解该机械产品的内部结构以及拆装工艺顺序。但由于用户视线的移动需要键盘控制,移动速度与角度旋转速度均为系统开发时预设的固定值,用户难以通过该系统模拟人体本身的运动状态,因此会在一定程度上影响用户的沉浸感。

图4为视线控制交互系统测试示意图。系统操作方便,用户提示明确清晰,距离感应器可以更好地模拟用户的运动,通过头部转动用户可以更加便捷地控制该系统。但该交互系统受制于距离感应器的感应范围,无法捕捉大幅度的人体运动,从而导致用户不能通过某些特定角度观察机械产品的拆装过程,如用户无法通过自身运动得到桌子背后的观察角度。

因此,对于不同机械产品展示系统,可以充分利用两种交互方式的优缺点进行设计。对于大型机械设备展示系统,可以利用鼠标-键盘-菜单的交互方式,以便用户在虚拟现实系统内漫游;对于小型机械产品展示系统可以利用视线控制的交互方式,以增强用户的沉浸感,使用户对系统的控制更加方便。

图3 鼠标-键盘-菜单交互系统测试

图4 视线控制交互系统测试

5 小结

对于机械产品在虚拟现实环境中的展示、装配、拆卸而言,完整地表达产品的虚拟场景信息、装配模型信息、零部件动作信息和交互信息至关重要,任何信息的缺失均会导致装配信息表达的不完整,从而影响准确性与真实性,降低用户体验的沉浸感。交互方式作为影响用户体验的重要因素,虚拟现实系统的开发者需要慎重考虑已有装配信息,进行分析研究,作为依据选择适合当前模型及场景的交互方式。

虚拟现实技术作为一种新兴的视觉体验方式,独特的沉浸式体验可以大幅度提升机械装配产品在教学、展示、培训方面的效率与用户体验。本文所提出的虚拟现实中装配信息的表达方法与人机交互方式可以为用户带来更具操作感的沉浸式体验,提升学习兴趣与学习效率,为虚拟现实技术在机械行业的应用提供借鉴。

[1]杜志俊. 虚拟现实(VR)技术的发展及其应用[J]. 机械,2007(S1):43-45.

[2]桑小冲,周华林,左敦稳,闫静,薛善良. 面向虚拟装配的装配信息自动提取技术的研究与实现[J]. 中国制造业信息化,2010,39(19):33-36,40.

[3]刘振宇,谭建荣,张树有. 面向虚拟装配的产品层次信息表达研究[J]. 计算机辅助设计与图形学学报,2001(3):223-228.

[4]张向华,戴国洪. 虚拟装配系统中精度信息表达方法的研究[J]. 机床与液压,2008(9):20-23.

[5]廖宏建,曲哲. 基于Kinect体感交互技术的虚拟装配实验系统开发[J]. 实验技术与管理,2013,30(7):98-102.

[6]杨艺,许源,张俊杰,刘燕. 基于Kinect与虚拟现实的社区家庭康复系统的研制[J]. 微型电脑应用,2014,30(3):32-34.

[7]王腼. 基于VR展示与交互的教学系统设计与现实[D]. 上海:上海交通大学,2013.

[8]杨雪松. 基于Unity 3D的发动机虚拟拆装系统研究[J]. 机械,2016,43(1):32-35,73.

[9]温晴川,达飞鹏,方旭. 基于双目立体视觉的视线跟踪系统标定[J]. 光学学报,2012,32(10):160-170.

Expression of Mechanical Product Assembly Information in Virtual Reality Environment

FENG Fan,DU Jiang,QIAO Hu,BAI Yu

(School of Mechatronic Engineering, Xi’an Technology University, Xi’an 710021,China)

The purpose of the study is to solve the problem of incomplete information expression and poor user interaction experience in the virtual reality environment of mechanical products. Based on the characteristics of assembly information in the virtual reality environment, this paper analyzes the assembly information in the virtual reality environment and reconstructs the assembly information in accordance to the requirements of the virtual reality system. At the same time, considering the characteristics of assembly information and the requirement of the virtual reality environment, a virtual reality system is established. Two interactive modes, the mouse-keyboard-menu control and the sight-line control, are designed and implemented to complete assembly information expression. The result shows that the virtual reality system can completely express the assembly information of the mechanical products, and the reasonable interaction can help the virtual reality system to accurately express the assembly information.

mechanical products;assembly information;virtual reality

TP391

A

10.3969/j.issn.1006-0316.2018.11.002

1006-0316 (2018) 11-0006-06

2018-06-01

国家自然科学基金资助项目(51705392);西安工业大学校长基金资助项目(XAGDXJJ16004)

冯帆(1993-),男,陕西西安人,硕士研究生,主要研究方向为机械信息化方向。

通讯作者:杜江(1971-),男,陕西西安人,博士,副教授,主要研究方向为CAD/CAE。

猜你喜欢

视线虚拟现实动画
Clifford hits the big screen
要去就去视线尽头的山
做个动画给你看
动画发展史
虚拟现实技术在中学校园中的应用
我的动画梦
你吸引了我的视线
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
当代视线