1 引言
我们生活的世界是三维世界,所见、所用、所接触的物体都是以三维形式存在的。以往,我们只能将三维的物体,以不同视角作平面投影,用二维方式表达,从而得到二维的设计图纸;随着计算机技术的飞速发展,出现了计算机辅助二维设计:然而工艺部门必须要对其作规划,以便加工者按指令用某个设备将其实现为实物。然后我们还需要将成千上万个零件装配成部件、产品。
要实现实际的装配,我们还须描述各零部件的装配关系、装配顺序、可视性、可达性及用何种工具、工装、或借助何种设备,这样才能为生产制造部门提供所需的指令。
当今全球制造企业之间的竞争越来越激烈,各企业不断将各种先进的设计、制造手段应用于产品的开发制造。随着计算机网络和虚拟现实等先进技术的出现,虚拟制造(VM,Virtual Manufacturing)应运而生,它是现代制造技术与系统发展的趋势。
达索公司作为“数字工程”解决方案的技术领导者,在产品设计阶段并行考虑产品全生命周期中的各种因素,在产品设计阶段考虑产品的可加工性、可装配性和可服务性,在满足产品性能与功能的条件下改进产品的结构,为制造业提供了世界最先进的数字工程模型。
但是其在操作程度上还是依赖鼠标,键盘等二维操作手段,不能直接将人在日常生活中获得的经验技能直接运用到人机交互中,同时也限制了计算机去完成更加复杂的任务。
本实验就是计划在虚拟世界中生成虚拟手,配合数据手套采集自然状态下人手的各种动作数据,将这些数据映射到虚拟手使其模拟数据手套佩戴者的手部动作,对虚拟环境中的操作对象进行直接操纵。
这种方法与传统方法中人手通过键盘、鼠标进行驱动的间接操纵相比更加符合人类的认知习惯,大大提高了人机交互的自然性和高效性,同时也使计算机能够完成更加复杂的任务,真正意义上去操作虚拟零件进行设计、装配、制造及生产。
2 虚拟手几何模型
人手的运动过程中只有微小的形状变化,因此在手模型中我们将其简化成刚体。除拇指仅有两节指骨外,其余各指都有三节指骨,分别称为近指骨、中指骨和远指骨(如图1所示)。
图1 人手的结构图
根据对人手的运动特点以及外形特征,本模型每个手指关节以及手掌都采用椭球形单元合成(如图2所示)。
图2 虚拟手几何模型
这种模型结构模型表面相对光滑,可伸展性强,适用于虚拟手的实时变化.一个椭球形单元由三条轴线控制,表面光滑,尤其对于手掌不规则的弧形表面。虚拟手运动的时候只需要改变相应椭球形单元的三条轴线的位置和方向即可。
每个椭球形单元的构造方程可表示为:
●a,b和c分别为相应二次曲面对应X,Y,Z坐标轴的轴线,也是控制椭球形单元位置形状的主要参数,决定椭球形单元的边界;
●n是一个常数,随着n的增减,椭球形单元的形状也发生变化,n增大则形状趋于圆角立方体,反之则趋于球形。
虚拟手的几何模型设计是一种典型的对象设计范例,可以将数据以及对数据的操作放在一起处理。对应虚拟手的类设计如下:
通过对这些椭球形单元的合理布置,调整它们的形状和方向就能很容易的构造出封闭的,表面光滑的虚拟手模型。
3 虚拟手运动模型
3.1 数据手套数据采集
本实验采用的数据手套为5DT公司开发的第二代高端数据手套5DT Data Glove 14 Ultra。该款数据手套采用光电弯曲传感器,可以检测手指关节弯曲角度和指缝间延展角度。每只手套有14个光电传感器,可测量手指的近指骨和掌骨间关节之间的弯曲角度,中指骨和远指骨间之间的弯曲角度以及相邻手指间的外展角度,共计14个数据(如图3所示)。
图3 数据手套传感器分布图及编号
在手套开启和每次更换用户后,需要重新设置并实时更新各传感器原始数据。通过线性的数学公式,根据原始数据的最大值和最小值,以及设定的数据取值范围来得到获取数据。其公式为:
其中:
●Raw(max)表示传感器输出原始数据的最大值:
●Raw(min)表示传感器输出原始数据的最小值;
●Max表示按照人体工学原理的该关节处的最大角度,即校正数据的范围为[0,Max];
●Raw(val)表示当前测量的传感器输出原始数据;
●out表示经计算之后的数据即该关节弯曲角度。
为了精确计算出手指关节的弯曲以及伸展角度,传感器输出数据的最大值Raw(max)和最小值Raw(min)也需要进一步处理。每个传感器得到的原始数据的最大值Raw(max)分别存储在数组Upper[nSensor]内,对应最小值Raw(min)存储在数Lower[nSensor]内。
例如:数据手套食指根部传感器输出数据为Value,其弯曲角度数据:
经过计算后,各个传感器的输出数据对应的角度数据可以直接应用于虚拟手模型。
3.2 虚拟手手势合成
手指的运动可由不断连续的、不同方向的环转运动说明,即指体的圆周运动。运动时手指形成一个底端在近指骨、尖端在远指骨的圆锥形轨迹。环转运动是屈、展、伸、收依次连续的动作。
为了清晰表示虚拟手的运动状态,我们需要设置合理的坐标系。全局坐标系原点固定在中指根部,X轴指向小指并排的一侧,Y轴与伸直状态下食指基关节重合,Z轴由右手法则确定为垂直子手掌,并由手背指向手心(如图4所示)。
图4 环转运动与三维坐标系关系
●MP,PIP和DIP分别为对应手指关节在基部、中间关节和末端关节处Z方向上测得的角度值。其中按照人体工学原理,DIP=0.67*PIP。
●P为对应手指基部在X方向上测得的角度值。
●根据计算的各传感器角度数据,各手指的状态可通过得出的角度数据合成(SO表示5DT数据手套第0号传感器,以此类推)。
大拇指:
(1)绕着大拇指基关节的屈伸运动(S2)即绕Z轴转动。
(2)绕着大拇指基关节的内折运动(SO)即绕X轴转动。
(3)绕着指中关节的的屈伸运动(S1)即绕Z轴转动。其余四指的运动十分相似,所以我们可以建立同一种运动模型,以食指为例:
(1)绕着指根关节的外展运动(S5)即绕Z轴转动。
(2)绕着指根关节的屈伸运动(S3)即绕X轴转动。
(3)绕着指中关节的屈伸运动(S4)即绕X轴转动。
本虚拟手运动模型不涉及坐标轴变换,只是移动虚拟手的手指关节,得到在世界坐标系中的各个关节关键点坐标,为虚拟制造过程中的碰撞检测奠定基础。其实现过程为:
①移动该关节底端至新定位位置origin。
②得到X方向上测得的角度值P,利用旋转变换函数计算该关节在X方向旋转后的空间位置。
③在②中得到的空间位置基础上,得到Z方向上测得的角度值MP,利用旋转变换函数计算该关节在Z方向旋转后的空间位置。
④记录③中得到的该关节顶端位置重,作为向上关节的底端位置origin。
4 虚拟手的包围盒模型
层次包围盒算法(Bounding Volume Hierarchy)是解决碰撞检测问题固有时间复杂性的一种有效的方法。在进行碰撞检测时首先进行包围盒之间的相交测试;如果包围盒相交,需要不断地对每个节点中的几何元素集合进行划分,再进行划分对象之间的碰撞检测。
如果上述条件不满足,则作为第二步:对被检测几何模型的包围盒进行划分,再做如上判断。直到对包围盒的划分到达某一精度要求时候,确认是否发生碰撞。
层次包围盒树的建立过程中,对几何模型进行划分最常见的是采取二分的策略,以缩小并确定碰撞范围或者碰撞点。以下是四面体在某一方向上的包围盒划分(如图5所示)。
图5 包围盒的分割
虚拟手与虚拟物体的碰撞多发生在手指部位,所以只对各个手指关节生成包围盒。在空间图形实时变换的同时根据手指关节生成包围盒,再进行碰撞检测。空间图形变换实现手势合成的同时,每个关节的矩形包围盒也按照相应规则实时更形变换,始终围绕在手指关节周围(如图6所示)。
图6 虚拟手的包围盒模型
虚拟手模型与虚拟物体利用包围盒方法碰撞检测的具体步骤如下:
①根据数据手套状态,确定虚拟手和检测对象的状态;
②求出第i个手指的第j个指节,确定它的坐标;
③计算当前区域的边界框,生成包围盒;
④与虚拟物体进行矩形包围盒比较算法判断,对虚拟物体的包围盒进行分割。
5 结束语
本文设计了一种面向虚拟制造的虚拟手交互控制模块,并给出了虚拟手势合成和碰撞检测的实现方法。
我们用虚拟手去抓取虚拟物体,当发生接触时,可以看到手指的包围盒颜色发生了变化(如图7所示),起到了较好的提示效果。
图7 虚拟手与虚拟物体的碰撞检测效果图
本文的主要工作如下:研究了人手的解剖结构和运动特点,结合虚拟制造的需求,在Windows环境下,采用面向对象技术,运用C++语言构建了基于数据手套的虚拟手模型,建立了从人手到虚拟手的动作映射,实现了用户对虚拟手运动的控制;研究了碰撞检测的理论和方法,运用层次包围盒方法实现了虚拟场景中虚拟手与虚拟物体的碰撞检测,以此为基础,对进一步进行实际虚拟操作奠定基础。
目前的虚拟手模型是经过简化的,基于简单的几何形体,与真实的人手存在一定的差异,在运动的跟踪和映射方面不可能做到完全对应,因此对虚拟操作的准确性和灵活性构成了一定的障碍。
如何使其操作进程尽可能地与现实生活中的动作相接近,是我们进一步研究的目标。我们将考虑建立更加自然逼真的虚拟手模型以代替日前的基于简单几何形体的虚拟手模型,使其能更好地模拟手的运动规律,进行更多更精确的虚拟操作,取得更好的效果,广泛应用于虚拟装配、仿真模拟等虚拟制造领域。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:一种面向虚拟制造的虚拟手设计与应用