基于虚拟手的食品加工仿真交互系统研究
2021-07-08郭晓春程明智
郭晓春,程明智,刘 龙
(北京印刷学院新媒体学院,北京 102600)
食品加工仿真交互系统是虚拟现实(Virtual Reality,VR)技术快速发展的结果,它能够让用户在计算机创造的虚拟环境中对虚拟的仿真物体进行交互来达到训练的目的。此系统一方面摆脱了传统食品加工培训中大型场地和专业设备的限制,节约了培训成本;另一方面,新颖的虚拟现实培训方式和交互方式能够极大地调动学生的学习热情,提高学习效率,增强学生的实践能力,并对学生的创新能力和工程实践能力有促进作用。
然而,常见的食品加工仿真系统中用户与仿真物体交互过程中,交互系统通常使用VR设备中默认的手柄模型,这导致一系列用户沉浸感降低的问题[1]。影响用户沉浸感的其中一个重要问题是穿模, Taeho Kim等[2]提出虚拟手柄位置穿模会打破隐喻,提出了分层边界球方法,根据用户和物体的角度调整手柄位置,并利用带有抓取隐喻的手柄进行三维对象操控。将默认的手柄模型替换成更加真实的虚拟手能够加强抓取隐喻,同时,虚拟手生成的抓取姿态是用户对交互的直观认识,Alkemade[3]的研究将三维空间中对物体不同的交互需求进行了分类,王晓媛等[4]提出的算法,通过反向动力学技术,能鲁棒地生成稳定且自然的抓取姿态,从而提升抓取姿态的准确性和稳定性,能够显著提高用户的沉浸感和交互感。Aristidou[5]从前向计算和 IK 的定义开始,列出数学公式并解释了如何区分无法解决的案例,指出何时有解决方案可用。李澍等[6]通过建立虚拟手结构模型和采用状态变换描述抓取过程,实现了未被抓取和被抓取时的模型运动控制,对逆运动学循环坐标下降算法进行改进并结合正向运动学方法调整手指姿态,解决了手指穿透问题。
因此,本文将默认的手柄模型替换成更加真实的虚拟手,提出基于虚拟手的食品加工仿真交互系统。本文根据食品加工仿真交互的需求对系统进行整体架构设计,将系统分为资源管理、流程管理、学习、实训和交互模块,通过模型认知交互技术、虚拟手选取和稳定动作生成技术,提高用户在食品加工仿真系统中的沉浸感。
1 系统整体架构设计
本系统根据食品加工仿真学习的应用性、实践性和沉浸感需求,系统通过资源管理模块进行信息的检索、存储和展示,通过流程管理模块进行系统行为的控制和场景切换。根据Xu,Zhili[7]的研究,交互系统应考虑到交互反馈。基于HTC VIVE虚拟现实设备,通过其手柄对交互模块进行指令输入,用户通过基于虚拟手技术的交互模块,进入学习模块和实训模块对食品加工知识进行学习,整体架构如图1所示。学习模块包括:(1)对食品加工流程中各种食材的认知学习、食材处理方法及其不同的用途等;(2)对特定食材加工流程的学习。实训模块包括:(1)应用学习模块的知识,在特定场景中按照食品加工流程进行实操训练。(2)对用户实际操作的准确性进行评分与考核。
图1 系统总体设计
本系统的用户界面交互模块包括两部分内容,分别是虚拟手交互系统和UI交互系统。其中虚拟手交互系统是指用户在虚拟现实环境中通过虚拟的手模型与场景中的游戏物体进行更为真实的交互,这一系统解决了传统食品加工仿真交互系统中穿模以及不稳定的问题,是本文的核心内容。通过UI交互模块,用户可以在虚拟环境中浏览特定物体的包含文字、图片和视频在内的知识信息,增强学习效果。
2 系统关键技术
2.1 模型认知交互
食品加工相关食材和工具认知是本系统学习模块的重要功能。学习模块通过资源管理模块加载与显示对应食品加工模型,通过交互模块控制模型的旋转、大小与缩放,通过UI系统中的信息面板显示认知学习所需的文字、图片、视频等信息,通过交互系统进行交互。
图2展示了对炉灶的认知学习过程,用户通过一条从虚拟手指延伸出的射线选中炉灶模型开关部分,放大刻度线部分辅助认知,获取信息。部分选取物体识别逻辑如下:
图2 射线交互选取
2.2 虚拟手交互系统
用户在实训模块对虚拟物体的交互流程中,基于虚拟手的仿真交互系统按照虚拟手选取、基于CCD算法的动作生成2个阶段进行。
在三维空间中,用户通过虚拟手选取物体进行交互,准确选取物体并将虚拟手移动到自然的抓取位置是需要解决的问题。HTC VIVE手柄设备扳机按键具有线性按键和实体按键的特点,结合韩旭[8]的研究,将用户的操作定义成选取、抓取和按下三种判定方法,通过手掌选择物体预测、手掌抓取位置预测和物体的相对位置,使用物理方法和阈值法进行二次判定。
图3 用户交互流程
手掌选择物体预测方法是通过手掌中心发射圆球状的锥形射线组,将所有通过碰撞检测的结果平均后,通过距离阈值比较进行。同时,这一步将决定手掌的朝向,并确定手掌抓取位置。首先,设掌心选取起始点为Plam(0,0,0),掌心方向为Plam的z轴正方向,创立以Plam为圆心,半径r=1的球,设两个平均的随机数ξ1,ξ2∈(0,1)。从Plam正方向选取立体角α∈(0,π/2),设球坐标系下的坐标θ,ϕ。求这个球面范围上随机一点P(x,y,z)。根据三角函数关系,可得各参数为:
图4 N=100采样线可视化
图5 获取平均结果
在这个阶段中,用户的输入为手柄的位置、旋转信息和扳机的按压插值。系统输出虚拟手的位置、旋转信息和手指弯曲。同时可以计算手指与物体的接触点。利用采样线,我们可以快速确定用户的抓取对象,并自然地将手部贴合到抓取位置上,在给用户抓取隐喻的同时,还为抓取动作生成提供了基础。
循环坐标下降(Cyclic Coordinate Descent,CCD)算法是反向动力学算法的一种,被广泛用于游戏工业中,CCD算法是一种启发式算法,每次关节迭代计算成本低,无需矩阵操作即可快速解决IK问题。虚拟手可以看作多个骨骼关节的组合,组合中一般有三根骨骼、三个关节,每一根手指对应一个骨骼关节组合。在单个手指骨骼关节组合中,循环坐标下降算法的一般迭代过程为:
步骤一:从末端关节连接的父关节A开始,计算末端关节与目标末端关节位置与该关节形成的夹角,旋转关节;
步骤二:若旋转后的末端关节未达到目标,则以A的父关节开始重复步骤一;
步骤三:如果到达根关节仍未将末端关节达到目标,则结束一次迭代,重复步骤一和步骤二,进入下一次迭代。
CCD算法需要指定目标位置点,本文将每个手指结构加入到物理计算中,手指的自然收缩判断指尖物理碰撞停止位置作为目标位置点。从虚拟手交互选取步骤得到的位置进行抓取动作生成,能够显著减少动作生成时因手部原点变动而导致的不稳定手势。
图6是基于碰撞停止的抓取动作,图7为经过CCD算法进行抓取动作生成的结果,经过对比,可以看到在正确选择目标点后,通过CCD算法生成的手部动作更自然。
图6 基于碰撞停止的抓取动作
图7 优化后抓取动作
3 结论
本文针对交互沉浸不足问题,通过引入虚拟手交互系统,对VR环境下基于虚拟手的食品加工仿真交互系统进行研究,根据食品加工仿真交互的需求进行了系统的整体设计,通过模型认知交互、虚拟手交互等关键技术,能在HTC VIVE设备上稳定生成手势,提高用户在交互中的沉浸感和准确性。但是,本系统对凹面物体手势生成的点位选取方面存在一定不足,对交互时动态生成的不规则物体的选取精准度还有一定缺陷,如何对食品加工模型进行形状手势分类也是未来值得深入研究的问题。