增强现实拆装徒手交互系统

2021-11-15 15:31梁剑斌曾秋玮周志豪
现代计算机 2021年27期
关键词:操作者徒手手部

梁剑斌,曾秋玮,周志豪

(广东工业大学机电工程学院,广州 510006)

0 引言

装配是指按照设计要求实现零件或部件的连接,把零件或部件组合成产品。随着生产线自动化技术的快速发展,自动化装配已是装配行业的主流技术。但在机械行业中,大量机器维修仍需要人工装配技术。因此,提高人工机械装配的效率能有效提高机械行业的运作效率。对于人工机械装配技术,有3个方面可以提升工作效率:①让操作者在实际操作前阅读并记忆大量的技术文档。②让操作者在实训平台训练实施整个装配工序。③有经验的操作者协助工艺设计者改进装配工序。这都需要付出大量的时间和物料以供试错。

增强现实(augmented reality,AR)是一种将虚拟信息无缝叠加在真实场景图像的技术。使用AR技术辅助人工机械装配,可提升操作者工作效率,具体体现在以下3方面:①AR可以让操作者在实际操作中更直观和便捷地获取工艺信息,减少操作者的记忆负担;②AR可以实现高逼真度的虚拟装配培训,减低培训成本;③高逼真的虚拟装配培训也可用于装配效率评估,从而提升装配工艺水平。

对于增强现实装配辅助技术(augmented reali⁃ty assembly supporting,ARAS),研究大多集中于增强图像显示效果的提升与系统集成,对人机交互的关注较少。人机交互方式是影响应用工作效率的重要因素,良好的人家交互能让操作者获得更好的反馈和使用沉浸感。现有的ARAS交互技术更多的作用是实现系统功能与拆装流程的漫游,对具体操作的虚拟仿真较少。

传统的ARAS交互大多需要操作者手持标识物或穿戴设备以得到稳定的交互体验,但是这些AR交互装置存在2个缺点:①真实装配环境并不需要AR交互装置即可进行装配,过多的额外装置会破坏体验的沉浸感;②AR交互装置的握持或佩戴都会增加装配工艺流程的复杂度。为了解决以上问题,研究者把手势或体感交互引入ARAS以减少使用AR交互装置。手势和体感交互是用户通过手部或肢体动作与系统互动的交互技术[1],在现有的ARAS交互研究中,研究者利用该技术可实现装配操作[3]、系统功能漫游[4]、装配流程浏览[5]和高拟真度抓取[6]等应用。但现有的应用大多采用通用化手势,对装配操作状态缺乏反馈,不利于提升交互的沉浸感。

针对以上问题,本文从机械装配操作实际需求出发,提出了一个AR拆装徒手交互系统并对系统各个组成部分进行阐述。该系统让操作者在一个虚实融合的交互环境下,按照工艺规范执行虚拟装配操作。最后设计了应用实例,通过实验,对AR拆装徒手交互系统的可行性进行了验证。

1 增强现实拆装徒手交互系统

1.1 系统框架

AR拆装徒手交互系统的体系结构如图1所示。该系统包括硬件层、输入输出层、交互功能层和离线数据层。

图1 AR拆装徒手交互系统框架

从图中可以看到每个层之间交换的数据流。用户的动作首先被深度相机采集并输出为深度图和彩色图;手部分割模块从深度图中分割并提取手部信息,其中包括手掌掌心三维位置、手部深度图像、手部静止状态;操作感知模块在手部信息和工艺信息的基础上,计算当前操作状态信息,其中包括操作进度、完成状态和虚拟物件姿态;操作反馈模块首先利用手部深度图像生成手部表面曲面,另外将操作状态信息转换为可视化视觉元素;三维渲染模块则根据其他模块生成的虚拟物件姿态、操作视觉反馈信息和手部表面曲面生成虚实融合图像,并传输到显示器呈现。

1.2 交互硬件层

硬件层的作用是提供与操作者对接的人机交互界面,主要的硬件包括深度相机和显示器。深度相机的作用是采集整个交互场景的彩色图和深度图。显示器的作用是呈现最终的AR画面。整个硬件层可以看作是一个AR交互场景,场景内各硬件的摆放如图2所示。

图2 AR拆装徒手交场景设计

场景在离地面2.4 m处架设深度摄像头,从俯视的视角采集整个场景的深度图像。在操作者面前架设了显示屏,用于呈现AR图像。本文使用KinectV2作为具体的深度摄像头型号,KinectV2可以同时提供深度图像和彩色图像,本文研究的交互模型使用深度图像作为数据源。受制于深度摄像头的采集范围,该场景的交互空间呈四角锥台形状,顶面离摄像头0.5 m,底面离摄像头2.4 m,相对的两组斜面夹角分别为70°和60°。

1.3 输入输出层

输入输出层的作用是预处理采集数据,并输出最终的AR图像,该层包括手部分割模块和三维渲染模块。

手部分割模块的功能是使用图像处理技术从场景深度图中提取手部信息。模块的工作主要分为3个步骤:①使用固定阈值法从深度图中提取操作者区域,利用宽度特征提取手部区域,根据各个手部区域与躯干之间位置关系识别左右手区域,求出手部区域对应的深度图区域;②提出基于大窗口高斯模糊的掌心位置迭代算法,将单个手部区域划分为手掌、手指和手臂三个区域,并求出掌心三维坐标;③提出基于面积变化的识别算法,求出手部静止状态。图3展示了手部分割模块的工作流程。

图3 手部分割模块处理流程

三维渲染模块的作用是输出AR图像,其工作原理是三维引擎基础上,根据交互功能层输出的结果调整或生成三维物体,并把场景彩色图应用到场景背景和手部表面模型中。图4展示模块输出的虚实融合画面。

图4 手部分割模块处理流程

1.4 交互功能层

交互功能层的作用是在收集到的手部信息和工艺信息的基础上,感知操作者的装配操作并生成反馈。该层是整个原型系统的核心区域,包括操作感知模块和操作反馈模块。

操作感知模块根据当前的工艺步骤采取对应的感知策略,并输出当前操作的虚拟零部件或工具实时位姿和操作进度。模型主要分为三个部分:①虚拟物体抓取模块,根据手部静止状态的变化和手部与抓取点之间的位置关系,识别虚拟物体是否被抓取;②装配操作感知模块,根据工艺信息与虚拟零部件或工具的运动,识别当前操作进度;③虚拟物体位姿变换模块,根据工艺要求,将手部运动转换为虚拟零部件或工具的位姿变换。

操作反馈模块主要有两个功能:①将手部深度图像转化为包含材质坐标信息的手部表面模型;②基于有限状态机理论,根据手部信息、工艺信息与操作状态信息输出视觉反馈信息。操作反馈模块的输出结果如图5所示。

图5 手部分割模块处理流程

1.5 离线数据层

离线数据层的作用是储存装配相关的信息与CAD。该层储存的内容包括:虚拟零部件和工具的CAD模型、虚拟零部件信息、虚拟工具信息和工艺信息。其中,虚拟零部件信息的生成是根据工艺文档和真实零部件的操作特性放置抓取点;虚拟工具的生成是根据工艺文档和真实工具的操作特性放置抓取点和旋转轴;工艺信息的生成是根据工艺文档选取需要被操作的虚拟零部件或工具,并从工艺文档中提炼工艺参数,最后对所有数据进行封包。

2 系统实现与应用

2.1 系统软硬件环境

增强现实拆装徒手交互原型系统使用x86型计算机作为数据处理平台。计算机具有以下配置:CPU为英特尔酷睿i5-8250U,主频1.6 GHz;运行内存8 GB;显卡为英伟达MX150,显存容量为4 GB。使用KinectV2采集场景的深度图和彩色图,其中彩色图分辨率为1920×1080,帧率为30fps;深度图分辨率为512×424,帧率为30 fps。

软件系统采用Windows 10平台,使用Visual Studio 2017编辑和编译代码,使用Unity 2018建立和渲染三维场景。在此基础上,使用Kinect SDK 2.0采集彩色图和深度图,使用OpenCV 2.4.10进行图像处理。

为了加快图像数据的处理速度,基于OpenCV和KinectSDK的开发都使用本地C++语言。而基于Unity的三维渲染与图像呈现是使用C#语言开发。开发的语言的不同造成数据不能直接共享,因此本文建立一套基于动态链接库(dy⁃namic-link library,DLL)的内存共享机制,如图6所示。在系统初始化阶段,由C#申请需要共享的内存块。在实时运行中,KinectSDK的作用是从Kinect采集彩色图和深度图,深度图在C++内部传输到基于OpenCV的图像处理模块,并把彩色图写入共享内存块。OpenCV图像处理模块的作用是从深度图提取手部信息并写入共享内存块。Unity3D则从共享内存块中读取所需的数据进行后续处理。

图6 内存共享机制流程

2.2 应用案例

本文通过汽车发动机的应用案例来验证原型系统以及系统中所采用的交互技术的使用情况。汽车发动机装配流程总结为34个步骤,大多数为零部件安置与螺纹连接操作。

在系统初始化之后,待操作的物件(虚拟零部件或工具)会呈现在屏幕右侧,等待操作者抓取。操作者抓取物件后根据操作状态进行虚拟装配操作。操作完成后,系统自动呈现下一步需要操作的物件,循环直至装配全部完成。图7展示部分运行效果图。

图7 运行效果图

3 结语

针对ARAS交互技术对装配操作状态反馈不充分的问题,本文提出了本文给出了增强现实拆装徒手交互系统。系统包含了4个层次和4个核心模块,本文对每个层次和模块的作用都进行了详细阐述。最后设计了一个汽车发动机拆装案例验证了系统的可行性。

猜你喜欢
操作者徒手手部
浅析汽车制造业人机工程标准
高通联手Ultraleap 为XR2提供手部交互解决方案
厨房料理小妙招——山药去皮手不痒的窍门
骇图
水稻插秧机主要故障维修技术要点
美国有个徒手抓鲇鱼大赛
责任人
理论联系实际的政策机理分析