CN102929393A - 虚拟手自动手势选择方法 - Google Patents
虚拟手自动手势选择方法 Download PDFInfo
- Publication number
- CN102929393A CN102929393A CN2012104506174A CN201210450617A CN102929393A CN 102929393 A CN102929393 A CN 102929393A CN 2012104506174 A CN2012104506174 A CN 2012104506174A CN 201210450617 A CN201210450617 A CN 201210450617A CN 102929393 A CN102929393 A CN 102929393A
- Authority
- CN
- China
- Prior art keywords
- gesture
- thumb
- finger
- forefinger
- expression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种虚拟手自动手势选择方法,属于计算机应用领域。本发明包括:(1)为虚拟手设计一套常用的基本手势;(2)设计虚拟手的手势选择方法,具体为:①用零件特征自身的端面作为分割平面,构造零件的二叉空间分割树BSPTree;根据BSPTree将零件及零件外围空间分割成若干特征子空间。②针对步骤①得到的每个特征子空间,构造该特征子空间所包含的特征的一个空间分割FeaSpaceClass。③初步确定虚拟手的当前待抓握的零件特征。④设计一组用于判断虚拟手的抓握位置的指标,并根据该组指标的具体取值综合判断虚拟手的抓握位置。⑤根据选取规则选择一个手势。本发明方法的优点是降低了人工操作的负荷和计算复杂度,极大地提高了工作效率,可以做到实时人机交互。
Description
技术领域
本发明涉及一种虚拟手自动手势选择方法,属于智能人机交互领域。
背景技术
计算技术的巨大进步,使得人们可以借助图形技术和多种交互设备在虚拟环境中进行各种交互仿真实验和设计工作。在虚拟环境人机交互中像在现实世界中一样的直接操作是一个重要技术方面。虚拟手手势的动画是直接操作的基础设施。目前虚拟手手势的行为都是基于数据手套等设备通过对人的真实手指动作跟踪而获得的,这样的虚拟手的缺陷在于以下几点。其一,它依赖人的生理行为和生理感知,在交互中造成很大的认知负荷,也无法提供交互的其它语义信息,比如抓握的特征信息以及抓握的手势和深度信息;其二,基于碰撞检测算法,其算法复杂度很高,尽管人们提出了各种各样的改进算法来提高其效率,并没有克服其固有的复杂度,因而,在个人计算机上尚无法完全实现实时交互。
发明内容
本发明的目的是解决现有虚拟手技术所带来的认知负荷高的问题,从而提出了一种虚拟手自动手势选择方法。本发明的主要内容是根据生产和生活经验知识抽取出一套基本手势;构造具有真实感的虚拟手几何和手势动画。将虚拟手在虚拟环境中设计为主动对象,设计虚拟手的手势动态选择的算法,使得在虚拟环境交互过程中虚拟手根据用户交互意图的表达自主地转换手势。
本发明的目的是通过下述技术方案实现的。
一种虚拟手自动手势选择方法,包括:
(1)为虚拟手设计一套在生产中和生活中常用的基本手势,形成虚拟环境基本手势集,用符号GesSet表示。所谓的手势是指参与抓握动作的手指组合和手指形态。
GesSet={Pnt,2fNip,3fNip,4fNip,5fNip,AGrab,PGrab,Grasp}。其中,Pnt为指点手势,指点手势为手背朝上,食指伸直摆放,拇指与手掌在同一平面并张开与食指成直角摆放其余三指指尖自然弯曲向下;2fNip代表用拇指和食指合作的捏手势;3fNip代表拇指、食指和中指合作的捏手势;4fNip代表用拇指与除小指外的其它四指合作构成的捏手势;5fNip代表用拇指与其它四指合作构成的捏手势;AGrab代表除拇指外其余并拢弯曲的四指所构成的抓握手势,拇指所指方向垂直于其余手指所在的每个平面,也称为偏握手势;PGrab代表拇指与其余并拢的四指相对,拇指所在平面平行于其它弯曲四指各手指所在平面的抓握手势,也称为对握手势;Grasp代表五指均匀侧向张开然后弯曲握紧的抓握手势。设定指点手势Pnt为初始手势,任何抓握手势都是从此手势转化而来。在4个捏手势中(2fNip,3fNip,4fNip,5fNip),都是拇指指尖与其它参与捏手势的部分手指指尖相对。
定义相关参数:
定义虚拟手局部坐标系:定义虚拟手的掌心某一点为虚拟手局部坐标系原点,用OH表示;定义穿过坐标原点且与指点手势的食指矢量同方向的轴为虚拟手局部坐标系的主轴,用MajorH表示;定义在手掌平面上穿过坐标原点与主轴正交的轴线且与拇指指尖所指方向成锐角的方向为虚拟手局部坐标系的副轴方向,用MinorH表示;定义穿过坐标原点与MajorH-MinorH平面即手掌平面正交且从手背指向手心的的方向为第三轴方向,用The3thAxisH表示,此三个轴构成右手定则。
定义手指的3个关节点和指尖顶点。对于拇指,从根部到指尖顺序分别是拇指第一关节点、拇指第二关节点,拇指第三关节点和拇指指尖顶点,分别用OT1、OT2、OT3、OT4表示。OT1和OT2之间的距离、OT2和OT3之间的距离、OT3和OT4之间的距离分别用lT1、lT2、lT3表示。食指的3个关节点和指尖顶点,从根部到指尖顺序分别是食指第一关节点、食指第二关节点、食指第三关节点和食指指尖顶点,分别用OI1、OI2、OI3、OI4表示。OI1和OI2之间的距离、OI2和OI3之间的距离、OI3和OI4之间的距离分别用lI1、lI2和lI3表示。中指的3个关节点和中指指尖顶点,从根部到指尖顺序分别是中指第一关节点、中指第二关节点,中指第三关节点和中指指尖顶点,分别用OM1、OM2、OM3、OM4表示。OM1和OM2之间的距离、OM2和OM3之间的距离、OM3和OM4之间的距离分别用lM1、lM2、lM3表示。无名指的3个关节点,从根部到指尖顺序分别是无名指第一关节点、无名指第二关节点、无名指第三关节点和无名指指尖顶点,分别用OR1、OR2、OR3、OR4表示。OR1和OR2之间的距离、OR2和OR3之间的距离、OR3和OR4之间的距离分别用lR1、lR2、lR3表示。小指的3个关节点,从根部到指尖顺序分别是小指第一关节点、小指第二关节点,小指第三关节点和小指指尖顶点,分别用OS1、OS2、OS3、OS4表示。OS1和OS2之间的距离、OS2和OS3之间的距离、OS3和OS4之间的距离分别用lS1、lS2、lS3表示。各手指的第一关节点到第二关节点的部分称为第一指节,第二关节点到第三关节点的部分称为第二指节,第三关节点到指尖顶点的部分称为第三指节。
定义5个矢量vecHT1、vecHI1、vecHM1、vecHR1、vecHS1;其中,vecHT1表示原点OH到拇指的第一关节点OT1的矢量,vecHT1=OT1-OH;vecHI1表示原点OH到食指的第一关节点OI1到的矢量,vecHI1=OI1-OH;vecHM1表示原点OH到中指的第一关节点OM1的矢量,vecHM1=OM1-OH;vecHR1表示原点OH到无名指的第一关节点OR1的矢量,vecHR1=OR1-OH;vecHS1表示原点OH到小指的第一关节点OS1的矢量,vecHS1=OS1-OH。
定义拇指的3种状态和2种状态转换方式。拇指的3种状态分别用ST1、ST2和ST3表示;2种状态转换方式分别用TT1和TT2表示。拇指的状态ST1是拇指与食指并拢,拇指指尖所指方向与MajorH轴方向相同;拇指的状态ST2是拇指与食指分开,拇指指尖指向与MinorH轴方向相同;拇指的状态ST3是拇指与食指分开,拇指指尖指向与The3thAxisH轴方向相同。拇指的状态转换方式TT1是拇指在MajorH-MinorH平面的转动,即拇指从状态ST1向状态ST2转换或从状态ST2向状态ST1转换的运动过程;拇指的状态转换方式TT2是拇指在MinorH-The3thAxisH平面上的旋转运动,即拇指从状态ST2向状态ST3转换或从状态ST3向状态ST2转换的运动过程。
定义手指的运动方式:
定义拇指各指节的旋转角度。拇指从状态ST2开始,拇指的第一指节至第三指节的旋转角度分别用θT12、θT22和θT32表示;拇指从状态ST3开始,拇指的第一指节至第三指节的旋转角度分别用θT13、θT23和θT33表示。
定义除拇指外其它四指的运动方式。第一种运动方式是食指、无名指和小指在MajorH-MinorH平面内的侧向移动,中指在MajorH-MinorH平面上没有侧向运动;第二种运动方式是食指、中指、无名指和小指分别由伸直状态朝向手心的弯曲运动和其逆运动。在第一种运动方式中,食指、无名指和小指在MajorH-MinorH平面的侧向移动角度分别用θIS、θRS和θSS表示。在第二种运动方式中,食指的第一指节至第三指节的旋转角度分别用θI1、θI2和θI3表示;中指的第一指节至第三指节的旋转角度分别用θM1、θM2和θM3表示;无名指的第一指节至第三指节的旋转角度分别用θR1、θR2和θR3表示;小指的第一指节至第三指节的旋转角度分别用θS1、θS2和θS3表示。
在上述参数定义的基础上,对虚拟环境基本手势集GesSet中的8种手势进行描述。
指点手势Pnt为手背朝上,食指伸直摆放,拇指自然伸展,处于状态ST2,其余三指指尖自然弯曲向下;因此指点手势Pnt的参数描述为:Pnt={vecI1I4=MajorH,θT12=θ11,θT22=θ12,θT32=θ13,θI1=θ14,θI2=θ15,θI3=θ16,θM1=θ17,θM2=θ18,θM3=θ19,θR1=θR7,θR2=θ18,θR3=θ19,θS1=θ17,θS2=θ18,θS3=θ19};其中,vecI1I4表示从食指的第一关节点OI1到拇指指尖OI4的矢量;θ11、θ12、θ13、θ14、θ15、θ16、θ17、θ18、θ19均为[0,180°]之间的某一定值。
拇指和食指合作的捏手势2fNip的描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后拇指和食指相对运动直到指尖中心接触为止。捏手势2fNip的终止状态参数描述为:2fNip={norm((OI1-OT1)×(OT2-OT1))=norm((OI2-OT1)×(OT2-OT1)),θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26};其中,norm(·)中的各参数为矢量,norm(·)表示取该矢量的方向;θ21、θ22、θ23、θ24、θ25、θ26均为[0,180°]之间的某一定值。
拇指、食指和中指合作的捏手势3fNip的描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,同时中指伸直与食指并拢,其它手指状态不变。然后食指和中指与拇指做并行相对运动,分别做向内弯曲直到拇指指尖与食指和中指指尖接触为止。捏手势3fNip的终止状态参数描述为:3fNip={norm((OI1+OM1-2OT1)×(OT2-OT1))=norm((OI2+OM2-2OT1)×(OT2-OT1)),θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26,θM1=θ34,θM2=θ35,θM3=θ36};其中,θ21、θ22、θ23、θ24、θ25、θ26、θ34、θ35、θ36均为[0,180°]之间的某一定值。
拇指与除小指外的其它四指合作构成的捏手势4fNip的描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,同时中指和无名指伸直与食指并拢,小指状态不变。然后食指、中指和无名指与拇指做并行相对运动,分别做向内弯曲直到拇指指尖与中指指尖接触为止。捏手势4fNip的终止状态参数描述为:4fNip={norm((OM1-OT1)×(OT2-OT1))=norm((OM2-OT1)×(OT2-OT2)),,θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26,θM1=θ34,θM2=θ35,θM3=θ36,θR1=θ44,θR2=θ45,θR3=θ46};其中,θ21、θ22、θ23、θ24、θ25、θ26、θ34、θ35、θ36、θ44、θ45、θ46均为[0,180°]之间的某一定值。
拇指与其它四指合作构成的捏手势5fNip的运动过程描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后拇指与食指、中指、无名指以及小指并行相对运动,各手指同步向内做弯曲运动,直到拇指指尖与其余四指指尖接触为止。捏手势5fNip的终止状态参数描述为:5fNip={norm((OM1+OR1-2OT1)×(OT2-OT1))=norm((OM2+OR2-2OT1)×(OT2-OT1)),,θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26,θM1=θ34,θM2=θ35,θM3=θ36,θR1=θ44,θR2=θ45,θR3=θ46,θS1=θ54,θS2=θ55,θS3=θ56};其中,θ21、θ22、θ23、θ24、θ25、θ26、θ34、θ35、θ36、θ44、θ45、θ46、θ54、θ55、θ56均为[0,180°]之间的某一定值。
偏握手势AGrab是拇指与其余并拢弯曲的四指的每个手指所在平面垂直的手势,其描述为:初始状态为指点手势Pnt,拇指保持状态ST2不变,中指、无名指和小指同时伸直并保持与食指并拢,然后食指、中指、无名指和小指并行同步向内弯曲至最大角度。抓握手势AGrab的终止状态参数描述为:AGrab={θT12=θ61,θT22=θ62,θT32=θ63,θI1=θ1Max,θI2=θ2Max,θI3=θ3Max,θM1=θ1Max,θM2=θ2Max,θM3=θ3Max,θR1=θ1Max,θR2=θ2Max,θR3=θ3Max,θS1=θ1Max,θS2=θ2Max,θS3=θ3Max};其中,θ61、θ62、θ63均为[0,180°]之间的某一定值;θ1Max、θ2Max、θ3Max分别为各手指第一指节、第二指节、第三指节的最大弯曲角度。
对握手势PGrab是拇指与其它四指相扣形成的手势,其描述为:初始状态为指点手势Pnt,拇指转换到状态ST3,中指、无名指和小指伸直与食指并拢,然后拇指与其余四指并行相对运动,食指、中指、无名指和小指并行同步向内做弯曲运动,同时拇指向内做弯曲运动,直到拇指指尖和中指指尖相接触为止。对握手势PGrab的终止状态参数描述为:PGrab={θT13=θ71,θT23=θ72,θT33=θ73,θI1=θ74,θI2=θ75,θI3=θ76,θM1=θ74,θM2=θ75,θM3=θ76,θR1=θ74,θR2=θ75,θR3=θ76,θS1=θ74,θS2=θ75,θS3=θ76};其中,θ71、θ72、θ73、θ74、θ75、θ76均为[0,180°]之间的某一定值;
抓握手势Grasp是五指均匀散开并同时向内做弯曲运动的手势,其描述为:初始状态为指点手势Pnt,拇指转换到状态ST3,其余四指伸直与手掌共面并侧向张开,然后拇指与其余四指并行向内做弯曲运动,直到拇指与中指和无名指指尖接触为止。抓握手势Grasp的终止状态参数描述为:Grasp={θT13=θ81,θT23=θ82,θT33=θ83;θIS=θSMax,θI1=θ84,θI2=θ85,θI3=θ86;θM1=θ87,θM2=θ88,θM3=θ89;θRS=-θSMax,θR1=θ90,θR2=θ91,θR3=θ92;θSS=-θSMax,θS1=θ93,θS2=θ94,θS3=θ95}。上述角度等式中右侧均为某常数值。其中,θ81、θ82、θ83、θ84、θ85、θ86、θ87、θ88、θ89、θ90、θ91、θ92、θ93、θ94、θ95均为[0,180]之间的某一定值;θSMax是食指在MajorH-MinorH平面的侧向移动的最大角度;-θSMax是无名指和小指在MajorH-MinorH平面的侧向移动的最大角度。
(2)设计虚拟手的手势选择方法,具体操作步骤为:
步骤一、用零件特征自身的端面作为分割平面,构造零件的二叉空间分割树,用符号BSPTree表示。通过该零件的二叉空间分割树BSPTree,将零件及零件外围空间分割成若干特征子空间。
所述特征是一些特定的三维几何形状,是组成零件对象的基本单位。所述特定的三维几何形状包括:长方体、圆柱体或圆柱体的一部分、孔、槽、球体或球体的一部分、圆锥体或圆锥体的一部分。为每个特征定义笛卡尔局部坐标系:将每个特征的几何中心点定义为该特征的局部坐标系的原点;每个特征的中心轴线均作为该特征的笛卡尔局部坐标系的坐标轴,以及描述其三维空间占有的尺寸数据等参数,同时它有由表面面片所构成的视觉表示。
步骤二、针对步骤一得到的每个特征子空间,构造该特征子空间所包含的特征的一个空间分割,该分割集用符号FeaSpaceClass表示,FeaSpaceClass={C1,C2,…,Cn};其中,C1,C2,…,Cn分别表示该特征被分割成的n个特征子区域。
所述构造某一特征子空间包含的特征的一个空间分割FeaSpaceClass的具体方法为:
步骤2.1:获取该特征子空间所包含的特征的端面数量:如果所述特征为长方体,其端面有6个;如果是圆柱体,其端面有2个;如果是圆柱体经纵向剖分,则其端面有3个;如果球体,其端面数为0个;如果是球体的一部分,其端面有1个;如果圆锥体,其端面有1个;如果圆锥体的一部分,其端面有2个。
步骤2.2:将步骤2.1得到的所述特征的端面加以区分,分为开放端面和封闭端面,获得开放端面的数量。所述开放端面是指该特征端面也是整个零件的边界表面;所述封闭端面是指该特征端面与该零件的另一个特征的端面共面,即是另一个特征端面的一部分而非零件的边界表面。每个特征的开放端面的数量用Num_OpenFC表示。
步骤2.3:依次对每个开放端面做如下操作:将穿过开放端面的轴线与该开放端面的交点作为起点,用符号Of表示,沿轴线向零件内部方向取σ长度,做一与所述开放端面平行的截面,将该截面与所述开放端面之间的部分作为特征端面子区域Cj,1≤j≤Num_OpenFC,Num_OpenFC=n-1,σ是一人为设定值,0<σ≤50mm。
步骤2.4:将剩余部分作为特征中心子区域Cn。
经过上述步骤的操作,即完成对该特征子空间所包含的特征的一个空间分割FeaSpaceClass的构造。
步骤三、用户通过简单三维输入设备对虚拟手进行位姿操控,使其接近目标零件,并使虚拟手的方向为非背对目标零件的某一朝向,此时虚拟手为指点手势。然后,确定虚拟手的食指指尖OI4所处的特征子空间,将该特征子空间包含的特征确定为当前待抓握的特征。
步骤四、设计一组用于判断虚拟手的抓握位置的指标,并根据该组指标的具体取值综合判断虚拟手的抓握位置;具体为:
步骤4.1:设计指标①至指标④,分别用符号Metric1至Metric4表示。每个指标的取值将是特征子区域集合FeaSpaceClass中的某个特征子区域Ci或者为空。
指标①是虚拟手的原点与特征的距离指标,用符号Metric1表示;获取距离Metric1的取值方法为:从虚拟手局部坐标系原点OH做垂直于特征主轴的一个平面,交主轴上一点,用符号O'H表示,当点OH与点O'H之间的距离小于某一人为预先设定阈值时,确定点O'H所在特征子区域Ci,1≤i≤n,即Ci∈FeaSpaceClass,则指标Metric1=Ci,否则为空。
指标②是虚拟手的食指指尖与特征表面距离指标,用符号Metric2表示;获取距离Metric2的取值方法为:过食指指尖OI4做垂直于特征主轴的平面,该平面与特征表面相交,求交线上与OI4点距离最近点,用符号O′Itip表示,当点OI4与点O'Itip之间的距离小于某一人为预先设定阈值时,确定点O'Itip所在特征子区域Ci,则指标Metric2=Ci,否则为空。
指标③是虚拟手的食指光线投射指标,用符号Metric3表示。获取食指光线投射指标Metric3的取值方法为:沿从食指指根OI1到指尖OI4的矢量方向投射一条光线穿越特征近表面的一点,用符号P表示,确定点P所在特征子区域Ci,则指标Metric3=Ci,否则为空。
指标④是虚拟手的The3thAxisH轴(即手心的朝向方向)与特征的某一个轴线(用符号AxF表示)对齐的指标,用符号Metric4表示;获取角度距离Metric4的取值方法为:若|The3thAxisH·AxF|≥1-σ3,σ3是某一人为设定值,0≤σ3<0.5,被选择特征在AxF轴方向上有一端面FCj,该端面的中心点(用符号表示)与虚拟手的原点间的距离(用符号d3表示)小于某个阈值,即确定点所在特征子区域Ci,则指标Metric4=Ci,否则为空。
步骤4.2:为每个特征子区域Ci定义一个权值变量,用Wi表示,Wi的初值均为0;根据Metric1至Metric4的取值,改变特征子区域Ci的权值变量Wi赋值。每当一个指标取值Ci,则将Wi值加1。
步骤4.3:选取特征子区域集合FeaSpaceClass中的权值变量Wi取值最大的特征子区域Ci,将该特征子区域作为虚拟手所要抓握的部位。若有多个特征子区域的权值变量Wi取相同的最大值,则操作虚拟手使其位姿被进一步调整,直到有某个特征子区域取得唯一的权值为止。
步骤五、根据选取规则从虚拟环境基本手势集GesSet中选择一个手势。
所述选取规则具体为:
步骤5.1:根据零件的质量(用符号wgtP表示)选择手势,具体为:
如果wgtP≤w0,w0为以人为设定值,0kg<w0≤1kg,则确定手势类型为捏手势2fNip、3fNip、4fNip、5fNip,然后执行步骤5.2;否则,则确定手势类型为抓握手势AGrab、PGrab、Grasp,然后执行步骤5.3。
步骤5.2:当0kg<wgtP≤w1kg时,选择用2fNip手势;当w1kg<wgtP≤w2kg时,选择用3fNip手势;当w2kg<wgtP≤w3kg时,选择用4fNip手势;当w3kg<wgtP≤w4kg时,选择用4fNip手势;其中,w1<w2<w3<w4<w0。
步骤5.3:当虚拟手所要抓握的特征子区域为球体时,选择抓握手势Grasp;否则,根据虚拟手所要抓握的特征子区域的截面半径(用符号r表示)选择是抓握手势AGrab或者PGrab,具体为:
当0mm<r≤15mm时,选择用偏握手势AGrab;当15mm<r≤40mm时,选择用对握手势PGrab。
有益效果
本发明提出的一种虚拟手自动手势选择方法与已有技术相比较,具有以下优点:
①降低了人工操作的负荷,极大地提高了工作效率;
②降低了计算复杂度,可以做到实时人机交互。
附图说明
图1为本发明具体实施例中8种虚拟手势的示意图;其中,(a)为Pnt手势;(b)为2fNip手势;(c)为3fNip手势;(d)为4fNip手势;(e)为5fNip手势;(f)为AGrab手势;(g)为PGrab手势;(h)为Grasp手势;
图2为本发明具体实施例中某一轴零件的特征及特征截面示意图;
其中,1-特征A的截面FC1;2-特征A;3-特征B的截面FC2;4-特征B;5-特征C的截面FC3;6-特征C;7-特征D的截面FC4;8-特征D;9-特征E的截面FC5;10-特征E;11-特征E的截面FC6;
图3为本发明具体实施例中虚拟手抓握轴零件特征D的示意图。
具体实施方式
下面结合附图和实施示例对本发明做进一步说明。
一种虚拟手自动手势选择方法,包括:
(1)为虚拟手设计一套在生产中和生活中常用的基本手势,形成虚拟环境基本手势集,用符号GesSet表示。所谓的手势是指参与抓握动作的手指组合和手的形态。
GesSet={Pnt,2fNip,3fNip,4fNip,5fNip,AGrab,PGrab,Grasp}。其中,Pnt为指点手势,指点手势为手背朝上,食指伸直摆放,拇指张开与手掌在同一平面并与食指成正交,其余三指指尖自然弯曲向下;2fNip代表用拇指和食指合作的捏手势;3fNip代表拇指、食指和中指合作的捏手势;4fNip代表用拇指与除小指外的其它四指合作构成的捏手势;5fNip代表用拇指与其它四指合作构成的捏手势;AGrab代表拇指所指方向垂直于其余并拢弯曲的四指每个手指所在平面的抓握手势,也称为偏握手势;PGrab代表拇指与其余四指相扣,拇指所在平面平行于其它弯曲四指各手指所在平面的抓握手势,也称为对握手势;Grasp代表五指均匀侧向张开并向内弯曲的抓握手势。设定指点手势Pnt为初始手势,任何抓握手势都是从此手势转化而来。在4个捏手势中(2fNip,3fNip,4fNip,5fNip),都是拇指指尖与其它参与捏手势的手指指尖相对。
定义相关参数:
定义虚拟手局部坐标系:定义虚拟手的掌心一点为虚拟手局部坐标系原点,用OH表示;定义穿过中心点OH与指点手势的食指所指方向同向的轴为虚拟手局部坐标系的主轴方向,用MajorH表示;定义在手掌平面上与主轴正交的轴线且其与拇指指尖所指方向夹角为锐角的方向为虚拟手局部坐标系的副轴方向,用MinorH表示;定义与MajorH-MinorH平面即手掌平面正交且从手背指向手心的的方向为第三轴方向,用The3thAxisH表示,此三个轴构成右手定则。
定义拇指的3个关节点和指尖顶点,从根部到指尖顺序分别是拇指第一关节点、拇指第二关节点,拇指第三关节点和拇指指尖顶点,分别用OT1、OT2、OT3、OT4表示。OT1和OT2之间的距离、OT2和OT3之间的距离、OT3到OT4的距离分别用lT1、lT2、lT3表示。食指的3个关节点和指尖顶点,从根部到指尖顺序分别是食指第一关节点、食指第二关节点、食指第三关节点和食指指尖顶点,分别用OI1、OI2、OI3、OI4表示。OI1和OI2之间的距离、OI2和OI3之间的距离、OI3到OI4的距离分别用lI1、lI2和lI3表示。中指的3个关节点和中指指尖顶点,从根部到指尖顺序分别是中指第一关节点、中指第二关节点,中指第三关节点和中指指尖顶点,分别用OM1、OM2、OM3、OM4表示。OM1和OM2之间的距离、OM2和OM3之间的距离、OM3到OM4的距离分别用lM1、lM2、lM3表示。无名指的3个关节点,从根部到指尖顺序分别是无名指第一关节点、无名指第二关节点、无名指第三关节点和无名指指尖顶点,分别用OR1、OR2、OR3、OR4表示。OR1和OR2之间的距离、OR2和OR3之间的距离、OR3和OR4之间的距离分别用lR1、lR2、lR3表示。小指的3个关节点,从根部到指尖顺序分别是小指第一关节点、小指第二关节点,小指第三关节点和小指指尖顶点,分别用OS1、OS2、OS3、OS4表示。OS1和OS2之间的距离、OS2和OS3之间的距离、OS3和OS4之间的距离分别用lS1、lS2、lS3表示。各手指的第一关节点到第二关节点的部分称为第一指节,第二关节点到第三关节点的部分称为第二指节,第三关节点到指尖顶点的部分称为第三指节。
定义5个矢量vecHT1、vecHI1、vecHM1、vecHR1、vecHS1;其中,vecHT1表示原点OH到拇指的第一关节点OT1的矢量,vecT1H=OT1-OH;vecHI1表示原点OH到食指的第一关节点OI1到的矢量,vecI1H=OI1-OH;vecHM1表示原点OH到中指的第一关节点OM1的矢量,vecM1H=OM1-OH;vecHR1表示原点OH到无名指的第一关节点OR1的矢量,vecR1H=OR1-OH;vecHS1表示原点OH到小指的第一关节点OS1的矢量,vecS1H=OS1-OH。
定义拇指的3种状态和2种状态转换方式。拇指的3种状态分别用ST1、ST2和ST3表示;2种状态转换方式分别用TT1和TT2表示。拇指的状态ST1是拇指与食指并拢,拇指指尖所指方向与MajorH轴方向相同;拇指的状态ST2是拇指与食指分开,拇指指尖指向与MinorH轴方向一致;拇指的状态ST3是拇指与食指分开,拇指指尖指向与The3thAxisH轴方向相同。拇指的状态转换方式TT1是拇指在MajorH-MinorH平面的转动,即拇指从状态ST1向状态ST2转换或从状态ST2向状态ST1转换的运动过程;拇指的状态转换方式TT2是拇指在MinorH-The3thAxisH平面上的旋转运动,即拇指从状态ST2向状态ST3转换或从状态ST3向状态ST2转换的运动过程。
定义手指的运动方式:
定义拇指各指节的旋转角度。拇指从状态ST2开始,在MajorH-MinorH平面的运动时,拇指的第一指节至第三指节的旋转角度分别用θT12、θT22和θT32表示;拇指从状态ST3开始,在MinorH-The3thAxisH平面上运动时,拇指的第一指节至第三指节的旋转角度分别用θT13、θT23和θT33表示。
定义除拇指外其它四指的运动方式。第一种运动方式是食指、无名指和小指在MajorH-MinorH平面内的侧向移动,中指在MajorH-MinorH平面上没有侧向运动;第二种运动方式是食指、中指、无名指和小指分别由伸直状态朝向手心的弯曲运动。在第一种运动方式中,食指、无名指和小指在MajorH-MinorH平面的侧向移动角度分别用θIS、θRS和θSS表示。在第二种运动方式中,食指的第一指节至第三指节的旋转角度分别用θI1、θI2和θI3表示;中指的第一指节至第三指节的旋转角度分别用θM1、θM2和θM3表示;无名指的第一指节至第三指节的旋转角度分别用θR1、θR2和θR3表示;小指的第一指节至第三指节的旋转角度分别用θS1、θS2和θS3表示。
在上述参数定义的基础上,使用定义的参数对虚拟环境基本手势集GesSet中的8种手势进行描述。
指点手势Pnt如图1(a)所示,为手背朝上,食指伸直摆放,拇指自然伸展,处于状态ST2,其余三指指尖自然弯曲向下;因此指点手势Pnt的参数描述为:Pnt={vecI1I4=MajorH,θT12=θ11,θT22=θ12,θT32=θ13,θI1=θ14,θI2=θ15,θI3=θ16,θM1=θ4,θM2=θ5,θM3=θ6,θR1=θ4,θR2=θ5,θR3=θ6,θS1=θ4,θS2=θ5,θS3=θ6};其中,vecI1I4表示从食指的第一关节点OI1到拇指指尖OI4的矢量;θ11、θ12、θ13、θ4、θ5、θ6均为[0,180°]之间的某一定值。
拇指和食指合作的捏手势2fNip如图1(b)所示,其运动过程描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后拇指和食指相对运动直到指尖中心接触为止。捏手势2fNip的终止状态参数描述为:2fNip={norm((OI1-OT1)×(OT2-OT1))=norm((OI2-OT1)×(OT2-OT1)),θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26};其中,norm(·)中的各参数为矢量,norm(·)表示取该矢量的方向;θ21、θ22、θ23、θ24、θ25、θ26均为[0,180°]之间的某一定值。
拇指、食指和中指合作的捏手势3fNip如图1(c)所示,其运动过程描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后食指和中指与拇指相对运动直到指尖中部接触为止。捏手势3fNip的终止状态参数描述为:3fNip={norm((OI1+OM1-2OT1)×(OT2-OT1))=norm((OI2+OM2-2OT1)×(OT2-OT1)),θT13=θ31,θT23=θ32,θT33=θ33,θI1=θ34,θI2=θ35,θI3=θ36,θM1=θ37,θM2=θ38,θM3=θ39};其中,θ31、θ32、θ33、θ34、θ35、θ36、θ37、θ38、θ39均为[0,180°]之间的某一定值。
拇指与除小指外的其它四指合作构成的捏手势4fNip如图1(d)所示,其运动过程描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后拇指与食指、中指以及无名指相对运动直到指尖中部接触为止。捏手势4fNip的终止状态参数描述为:4fNip={norm((OM1-OT1)×(OT2-OT1))=norm((OM2-OT1)×(OT2-OT1)),,θT13=θ41,θT23=θ42,θT33=θ43,θI1=θ44,θI2=θ45,θI3=θ46,θM1=θ47,θM2=θ48,θM3=θ49,θR1=θ50,θR2=θ51,θR3=θ52};其中,θ41、θ42、θ43、θ44、θ45、θ46、θ47、θ48、θ49、θ50、θ51、θ52均为[0,180°]之间的某一定值。
拇指与其它四指合作构成的捏手势5fNip如图1(e)所示,其运动过程描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后拇指与食指、中指、无名指以及小指相对运动直到指尖中部接触为止。捏手势5fNip的终止状态参数描述为:5fNip={norm((OM1+OR1-2OT1)×(OT2-OT1))=norm((OM2+OR2-2OT1)×(OT2-OT1)),,θT13=θ53,θT23=θ54,θT33=θ55,θI1=θ56,θI2=θ57,θI3=θ58,θM1=θ59,θM2=θ60,θM3=θ61,θR1=θ62,θR2=θ63,θR3=θ64,θS1=θ65,θS2=θ66,θS3=θ67};其中,θ53、θ54、θ55、θ56、θ57、θ58、θ59、θ60、θ61、θ62、θ63、θ64、θ65、θ66、θ67均为[0,180°]之间的某一定值。
拇指与其余并拢弯曲的四指各手指所在平面垂直的抓握手势AGrab如图1(f)所示,其运动过程描述为:初始状态为指点手势Pnt,拇指运动到状态ST2,其余四指伸直,然后食指、中指、无名指和小指并行同步弯曲至最大角度。抓握手势AGrab的终止状态参数描述为:AGrab={θT12=θ68,θT22=θ69,θT32=θ70,θI1=θ1Max,θI2=θ2Max,θI3=θ3Max,θM1=θ1Max,θM2=θ2Max,θM3=θ3Max,θR1=θ1Max,θR2=θ2Max,θR3=θ3Max,θS1=θ1Max,θS2=θ2Max,θS3=θ3Max};其中,θ68、θ69、θ70均为[0,180°]之间的某一定值;θ1Max、θ2Max、θ3Max分别为各手指第一指节、第二指节、第三指节的最大弯曲角度。
拇指与其它四指相扣形成的抓握手势PGrab如图1(g)所示,其运动过程描述为:初始状态为指点手势Pnt,拇指转换到状态ST3,其余四指伸直,然后拇指与其余四指相对运动,食指、中指、无名指和小指并行同步弯曲运动。抓握手势PGrab的终止状态参数描述为:PGrab={θT13=θ71,θT23=θ72,θT33=θ73,θI1=θ74,θI2=θ75,θI3=θ76,θM1=θ74,θM2=θ75,θM3=θ76,θR1=θ74,θR2=θ75,θR3=θ76,θS1=θ74,θS2=θ75,θS3=θ76};其中,θ71、θ72、θ73、θ74、θ75、θ76均为[0,180°]之间的某一定值;
五指均匀散开并向内弯曲的抓握手势Grasp如图1(h)所示,其运动过程描述为:初始状态为指点手势Pnt,拇指转换到状态ST3,其余四指伸直与手掌共面并侧向张开,然后拇指与其余四指并行向内弯曲做相对运动,直到拇指与中指和无名指指尖接触为止。抓握手势Grasp的终止状态参数描述为:Grasp={θT13=θ77,θT23=θ78,θT33=θ79;θIS=θSMax,θI1=θ80,θI2=θ81,θI3=θ82;θM1=θ80,θM2=θ81,θM3=θ82;θRS=-θSMax,θR1=θ80,θR2=θ81,θR3=θ82;θSS=-θSMax,θS1=θ80,θS2=θ81,θS3=θ82}。上述角度等式中右侧均为某常数值。其中,θ77、θ78、θ79、θ80、θ81、θ82均为[0,180°]之间的某一定值;θSMax是食指在MajorH-MinorH平面的侧向移动的最大角度;-θSMax是无名指和小指在MajorH-MinorH平面的侧向移动的最大角度。
(2)图2中是一个轴零件,包括:特征A(2)、特征B(4)、特征C(6)、特征D(8)和特征E(10)。
虚拟手抓握一个轴零件(如图2所示)的手势选择过程如下:
步骤一、用零件特征自身的端面作为分割平面,构造零件的二叉空间分割树BSPTree。首先选择特征C(6)的截面FC3(5)作为第一层分割平面,分割空间成左右两个部分。特征A(2)、特征B(4)将被包含在左子树所代表的子空间内,特征C(6)、特征D(8)和特征E(10)将被包含在右子树所代表的子空间内。取特征B(4)的截面FC2(3)和特征D(8)的截面FC4(7)作为第二层分割平面分别对左右两个子空间继续分割,其中特征A(2)和特征B(4)分别落在其中的一个子空间内,同样,特征C(6)也落在其中一个子空间内,但特征D(8)和特征E(10)仍然在一个子空间内。取特征E(10)的截面FC5(9)继续分割D(8)和特征E(10)所在的子空间为左右两个子空间,这样,D(8)和特征E(10)将分别被一个子空间所包含。如上将零件及零件外围空间分割成5个特征子空间,每个特征子空间中仅包含一个特征。
步骤二、针对步骤一得到的每个特征子空间,构造该特征子空间所包含的特征的一个空间分割FeaSpaceClass。
以特征A(2)为例,构造它的一个空间分割FeaSpaceClass的具体方法为:
步骤2.1:获取该特征子空间所包含的特征的端面数量:特征A(2)有2个端面。
步骤2.2:将步骤2.1得到的所述特征的端面进行区分,特征A(2)有1个开放端面截面FC1(1)和1个封闭端面。
步骤2.3:依次对每个开放端面做如下操作:将穿过开放端面的轴线与该开放端面的交点作为起点,用符号Of表示,沿轴线向零件内部方向,取20mm,该端点用符号Oδ表示,经过Oδ点做一与所述开放端面平行的截面,将该截面与所述开放端面之间的部分作为特征子区域C1。
步骤2.4:将剩余部分作为特征子区域C2。
经过上述步骤的操作,即完成对特征A(2)的一个空间分割FeaSpaceClass的构造。采用同样方法,特征B(4)、特征C(6)、特征D(8)均只构造出1个特征子区域,特征E(10)构造出2个特征子区域。
步骤三、用户通过简单三维输入设备对虚拟手进行位姿操控,使其接近目标零件,并使虚拟手的方向为非背对目标零件的某一朝向,此时虚拟手为指点手势。然后,继续移动虚拟手使食指指尖OI4处于包含特征D(8)的特征子空间,于是将特征D(8)确定为当前待抓握的特征。
步骤四、设计一组用于判断虚拟手的抓握位置的指标,并根据该组指标的具体取值综合判断虚拟手的抓握位置;具体为:
步骤4.1:设计指标①至指标④,分别用符号Metric1至Metric4表示。每个指标的取值将是特征子区域集合FeaSpaceClass中的某个特征子区域Ci或者为空。
指标①是虚拟手的原点与特征的距离指标,用符号Metric1表示;获取距离Metric1的取值方法为:从虚拟手局部坐标系原点OH做垂直于特征主轴的一个平面,交主轴上一点,用符号O'H表示,当点OH与点O'H之间的距离小于某一人为预先设定阈值时,确定点O'H所在特征子区域为C1,指标Metric1=C1。
指标②是虚拟手的食指指尖与特征表面距离指标,用符号Metric2表示;获取距离Metric2的取值方法为:过食指指尖OI4做垂直于特征主轴的平面,该平面与特征表面相交,求交线上与OI4点距离最近点,用符号O'Itip表示,当点OI4与点O'Itip之间的距离小于某一人为预先设定阈值时,确定点O'Itip所在特征子区域为C1,指标Metric2=C1。
指标③是虚拟手的食指光线投射指标,用符号Metric3表示。获取食指光线投射指标Metric3的取值方法为:沿从食指指根OI1到指尖OI4的矢量方向投射一条光线穿越特征近表面的一点,用符号P表示,确定点P所在特征子区域为C1,指标Metric3=C1。
指标④是虚拟手的The3thAxisH轴(即手心的朝向方向)与特征的某一个中心轴线(用符号AxF表示)对齐的指标,用符号Metric4表示;获取角度距离Metric4的取值方法为:若|The3thAxisH·AxF|≥1-σ3,σ3是某一人为设定值,0≤σ3<0.5,被选择特征轴方向AxF为空,指标Metric4的值为空。
步骤4.2:为特征D(8)特征子区域C1定义一个权值变量F1,F1的初值为0;根据Metric1至Metric4的取值,使特征子区域C1的权值变量F1取值为3。
步骤4.3:选取特征子区域集合FeaSpaceClass中的权值变量最大的特征子区域C1,将该特征子区域作为虚拟手所要抓握的部位。
步骤五、根据选取规则从虚拟环境基本手势集GesSet中选择一个手势。
所述选取规则具体为:
步骤5.1:根据零件的质量wgtP=5kg选择手势,具体为:
wgtP>w0,w0=1kg,因此确定手势类型为抓握手势AGrab、PGrab、Grasp,然后执行步骤5.3。
步骤5.3:根据虚拟手所要抓握的特征子区域的截面半径r=30mm选择用对握手势PGrab。
经过上述步骤的操作,即完成虚拟手的手势选择。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例,用于解释本发明,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种虚拟手自动手势选择方法,其特征在于:其包括:
(1)为虚拟手设计一套在生产中和生活中常用的基本手势,形成虚拟环境基本手势集,用符号GesSet表示;所谓的手势是指参与抓握动作的手指组合和手指形态;
GesSet={Pnt,2fNip,3fNip,4fNip,5fNip,AGrab,PGrab,Grasp};其中,Pnt为指点手势,指点手势为手背朝上,食指伸直摆放,拇指与手掌在同一平面并张开与食指成直角摆放其余三指指尖自然弯曲向下;2fNip代表用拇指和食指合作的捏手势;3fNip代表拇指、食指和中指合作的捏手势;4fNip代表用拇指与除小指外的其它四指合作构成的捏手势;5fNip代表用拇指与其它四指合作构成的捏手势;AGrab代表除拇指外其余并拢弯曲的四指所构成的抓握手势,拇指所指方向垂直于其余手指所在的每个平面,也称为偏握手势;PGrab代表拇指与其余并拢的四指相对,拇指所在平面平行于其它弯曲四指各手指所在平面的抓握手势,也称为对握手势;Grasp代表五指均匀侧向张开然后弯曲握紧的抓握手势;设定指点手势Pnt为初始手势,任何抓握手势都是从此手势转化而来;在4个捏手势中:2fNip,3fNip,4fNip,5fNip,都是拇指指尖与其它参与捏手势的部分手指指尖相对;
(2)设计虚拟手的手势选择方法,具体操作步骤为:
步骤一、用零件特征自身的端面作为分割平面,构造零件的二叉空间分割树,用符号BSPTree表示;通过该零件的二叉空间分割树BSPTree,将零件及零件外围空间分割成若干特征子空间;
所述特征是一些特定的三维几何形状,是组成零件对象的基本单位;所述特定的三维几何形状包括:长方体、圆柱体或圆柱体的一部分、孔、槽、球体或球体的一部分、圆锥体或圆锥体的一部分;为每个特征定义笛卡尔局部坐标系:将每个特征的几何中心点定义为该特征的局部坐标系的原点;每个特征的中心轴线均作为该特征的笛卡尔局部坐标系的坐标轴,以及描述其三维空间占有的尺寸数据等参数,同时它有由表面面片所构成的视觉表示;
步骤二、针对步骤一得到的每个特征子空间,构造该特征子空间所包含的特征的一个空间分割,该分割集用符号FeaSpaceClass表示,FeaSpaceClass={C1,C2,…,Cn};其中,C1,C2,…,Cn分别表示该特征被分割成的n个特征子区域;
步骤三、用户通过简单三维输入设备对虚拟手进行位姿操控,使其接近目标零件,并使虚拟手的方向为非背对目标零件的某一朝向,此时虚拟手为指点手势;然后,确定虚拟手的食指指尖OI4所处的特征子空间,将该特征子空间包含的特征确定为当前待抓握的特征;
步骤四、设计一组用于判断虚拟手的抓握位置的指标,并根据该组指标的具体取值综合判断虚拟手的抓握位置;具体为:
步骤4.1:设计指标①至指标④,分别用符号Metric1至Metric4表示;每个指标的取值将是特征子区域集合FeaSpaceClass中的某个特征子区域Ci或者为空;
指标①是虚拟手的原点与特征的距离指标,用符号Metric1表示;获取距离Metric1的取值方法为:从虚拟手局部坐标系原点OH做垂直于特征主轴的一个平面,交主轴上一点,用符号O′H表示,当点OH与点O′H之间的距离小于某一人为预先设定阈值时,确定点O′H所在特征子区域Ci,1≤i≤n,即Ci∈FeaSpaceClass,则指标Metric1=Ci,否则为空;
指标②是虚拟手的食指指尖与特征表面距离指标,用符号Metric2表示;获取距离Metric2的取值方法为:过食指指尖OI4做垂直于特征主轴的平面,该平面与特征表面相交,求交线上与OI4点距离最近点,用符号O′Itip表示,当点OI4与点O′Itip之间的距离小于某一人为预先设定阈值时,确定点O′Itip所在特征子区域Ci,则指标Metric2=Ci,否则为空;
指标③是虚拟手的食指光线投射指标,用符号Metric3表示;获取食指光线投射指标Metric3的取值方法为:沿从食指指根OI1到指尖OI4的矢量方向投射一条光线穿越特征近表面的一点,用符号P表示,确定点P所在特征子区域Ci,则指标Metric3=Ci,否则为空;
指标④是虚拟手的The3thAxisH轴与特征的某一个轴线AxF对齐的指标,用符号Metric4表示;获取角度距离Metric4的取值方法为:若|The3thAxisH·AxF|≥1-σ3,σ3是某一人为设定值,0≤σ3<0.5,被选择特征在AxF轴方向上有一端面FCj,该端面的中心点Ofj与虚拟手的原点间的距离d3小于某个阈值,即d3=dist(Ofj,OH)≤σ4,确定点Ofj所在特征子区域Ci,则指标Metric4=Ci,否则为空;
步骤4.2:为每个特征子区域Ci定义一个权值变量,用Wi表示,Wi的初值均为0;根据Metric1至Metric4的取值,改变特征子区域Ci的权值变量Wi赋值;每当一个指标取值Ci,则将Wi值加1;
步骤4.3:选取特征子区域集合FeaSpaceClass中的权值变量Wi取值最大的特征子区域Ci,将该特征子区域作为虚拟手所要抓握的部位;若有多个特征子区域的权值变量Wi取相同的最大值,则操作虚拟手使其位姿被进一步调整,直到有某个特征子区域取得唯一的权值为止;
步骤五、根据选取规则从虚拟环境基本手势集GesSet中选择一个手势;
所述选取规则具体为:
步骤5.1:根据零件的质量wgtP选择手势,具体为:
如果wgtP≤w0,w0为以人为设定值,0kg<w0≤1kg,则确定手势类型为捏手势2fNip、3fNip、4fNip、5fNip,然后执行步骤5.2;否则,则确定手势类型为抓握手势AGrab、PGrab、Grasp,然后执行步骤5.3;
步骤5.2:当0kg<wgtP≤w1kg时,选择用2fNip手势;当w1kg<wgtP≤w2kg时,选择用3fNip手势;当w2kg<wgtP≤w3kg时,选择用4fNip手势;当w3kg<wgtP≤w4kg时,选择用4fNip手势;其中,w1<w2<w3<w4<w0;
步骤5.3:当虚拟手所要抓握的特征子区域为球体时,选择抓握手势Grasp;否则,根据虚拟手所要抓握的特征子区域的截面半径r选择是抓握手势AGrab或者PGrab,具体为:
当0mm<r≤15mm时,选择用偏握手势AGrab;当15mm<r≤40mm时,选择用对握手势PGrab。
2.如权利要求1所述的一种虚拟手自动手势选择方法,其特征在于:所述虚拟环境基本手势集GesSet中的8种手势的相关参数定义为:
定义虚拟手局部坐标系:定义虚拟手的掌心某一点为虚拟手局部坐标系原点,用OH表示;定义穿过坐标原点且与指点手势的食指矢量同方向的轴为虚拟手局部坐标系的主轴,用MajorH表示;定义在手掌平面上穿过坐标原点与主轴正交的轴线且与拇指指尖所指方向成锐角的方向为虚拟手局部坐标系的副轴方向,用MinorH表示;定义穿过坐标原点与MajorH-MinorH平面即手掌平面正交且从手背指向手心的的方向为第三轴方向,用The3thAxisH表示,此三个轴构成右手定则;
定义手指的3个关节点和指尖顶点;对于拇指,从根部到指尖顺序分别是拇指第一关节点、拇指第二关节点,拇指第三关节点和拇指指尖顶点,分别用OT1、OT2、OT3、OT4表示;OT1和OT2之间的距离、OT2和OT3之间的距离、OT3和OT4之间的距离分别用lT1、lT2、lT3表示;食指的3个关节点和指尖顶点,从根部到指尖顺序分别是食指第一关节点、食指第二关节点、食指第三关节点和食指指尖顶点,分别用OI1、OI2、OI3、OI4表示;OI1和OI2之间的距离、OI2和OI3之间的距离、OI3和OI4之间的距离分别用lI1、lI2和lI3表示;中指的3个关节点和中指指尖顶点,从根部到指尖顺序分别是中指第一关节点、中指第二关节点,中指第三关节点和中指指尖顶点,分别用OM1、OM2、OM3、OM4表示;OM1和OM2之间的距离、OM2和OM3之间的距离、OM3和OM4之间的距离分别用lM1、lM2、lM3表示;无名指的3个关节点,从根部到指尖顺序分别是无名指第一关节点、无名指第二关节点、无名指第三关节点和无名指指尖顶点,分别用OR1、OR2、OR3、OR4表示;OR1和OR2之间的距离、OR2和OR3之间的距离、OR3和OR4之间的距离分别用lR1、lR2、lR3表示;小指的3个关节点,从根部到指尖顺序分别是小指第一关节点、小指第二关节点,小指第三关节点和小指指尖顶点,分别用OS1、OS2、OS3、OS4表示;OS1和OS2之间的距离、OS2和OS3之间的距离、OS3和OS4之间的距离分别用lS1、lS2、lS3表示;各手指的第一关节点到第二关节点的部分称为第一指节,第二关节点到第三关节点的部分称为第二指节,第三关节点到指尖顶点的部分称为第三指节;
定义5个矢量vecHT1、vecHI1、vecHM1、vecHR1、vecHS1;其中,vecHT1表示原点OH到拇指的第一关节点OT1的矢量,vecHT1=OT1-OH;vecHI1表示原点OH到食指的第一关节点OI1到的矢量,vecHI1=OI1-OH;vecHM1表示原点OH到中指的第一关节点OM1的矢量,vecHM1=OM1-OH;vecHR1表示原点OH到无名指的第一关节点OR1的矢量,vecHR1=OR1-OH;vecHS1表示原点OH到小指的第一关节点OS1的矢量,vecHS1=OS1-OH;
定义拇指的3种状态和2种状态转换方式;拇指的3种状态分别用ST1、ST2和ST3表示;2种状态转换方式分别用TT1和TT2表示;拇指的状态ST1是拇指与食指并拢,拇指指尖所指方向与MajorH轴方向相同;拇指的状态ST2是拇指与食指分开,拇指指尖指向与MinorH轴方向相同;拇指的状态ST3是拇指与食指分开,拇指指尖指向与The3thAxisH轴方向相同;拇指的状态转换方式TT1是拇指在MajorH-MinorH平面的转动,即拇指从状态ST1向状态ST2转换或从状态ST2向状态ST1转换的运动过程;拇指的状态转换方式TT2是拇指在MinorH-The3thAxisH平面上的旋转运动,即拇指从状态ST2向状态ST3转换或从状态ST3向状态ST2转换的运动过程;
定义手指的运动方式:
定义拇指各指节的旋转角度;拇指从状态ST2开始,拇指的第一指节至第三指节的旋转角度分别用θT12、θT22和θT32表示;拇指从状态ST3开始,拇指的第一指节至第三指节的旋转角度分别用θT13、θT23和θT33表示;
定义除拇指外其它四指的运动方式;第一种运动方式是食指、无名指和小指在MajorH-MinorH平面内的侧向移动,中指在MajorH-MinorH平面上没有侧向运动;第二种运动方式是食指、中指、无名指和小指分别由伸直状态朝向手心的弯曲运动和其逆运动;在第一种运动方式中,食指、无名指和小指在MajorH-MinorH平面的侧向移动角度分别用θIS、θRS和θSS表示;在第二种运动方式中,食指的第一指节至第三指节的旋转角度分别用θI1、θI2和θI3表示;中指的第一指节至第三指节的旋转角度分别用θM1、θM2和θM3表示;无名指的第一指节至第三指节的旋转角度分别用θR1、θR2和θR3表示;小指的第一指节至第三指节的旋转角度分别用θS1、θS2和θS3表示。
3.如权利要求2所述的一种虚拟手自动手势选择方法,其特征在于:所述虚拟环境基本手势集GesSet中的8种手势的参数描述为:
指点手势Pnt为手背朝上,食指伸直摆放,拇指自然伸展,处于状态ST2,其余三指指尖自然弯曲向下;因此指点手势Pnt的参数描述为:
Pnt={vecI1I4=MajorH,θT12=θ11,θT22=θ12,θT32=θ13,θI1=θ14,θI2=θ15,θI3=θ16,θM1=θ17,θM2=θ18,θM3=θ19,θR1=θ17,θR2=θ18,θR3=θ19,θS1=θ17,θS2=θ18,θS3=θ19};其中,vecI1I4表示从食指的第一关节点OI1到拇指指尖OI4的矢量;θ11、θ12、θ13、θ14、θ15、θ16、θ17、θ18、θ19均为[0,180°]之间的某一定值;
拇指和食指合作的捏手势2fNip的描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后拇指和食指相对运动直到指尖中心接触为止;捏手势2fNip的终止状态参数描述为:2fNip={norm((OI1-OT1)×(OT2-OT1))=norm((OI2-OT1)×(OT2-OT1)),θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26};其中,norm(·)中的各参数为矢量,norm(·)表示取该矢量的方向;θ21、θ22、θ23、θ24、θ25、θ26均为[0,180°]之间的某一定值;
拇指、食指和中指合作的捏手势3fNip的描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,同时中指伸直与食指并拢,其它手指状态不变;然后食指和中指与拇指做并行相对运动,分别做向内弯曲直到拇指指尖与食指和中指指尖接触为止;捏手势3fNip的终止状态参数描述为:3fNip={norm((OI1+OM1-2OT1)×(OT2-OT1))=norm((OI2+OM2-2OT1)×(OT2-OT1)),θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26,θM1=θ34,θM2=θ35,θM3=θ36};其中,θ21、θ22、θ23、θ24、θ25、θ26、θ34、θ35、θ36均为[0,180°]之间的某一定值;
拇指与除小指外的其它四指合作构成的捏手势4fNip的描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,同时中指和无名指伸直与食指并拢,小指状态不变;然后食指、中指和无名指与拇指做并行相对运动,分别做向内弯曲直到拇指指尖与中指指尖接触为止;捏手势4fNip的终止状态参数描述为:4fNip={norm((OM1-OT1)×(OT2-OT1))=norm((OM2-OT1)×(OT2-OT2)),,θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26,θM1=θ34,θM2=θ35,θM3=θ36,θR1=θ44,θR2=θ45,θR3=θ46};其中,θ21、θ22、θ23、θ24、θ25、θ26、θ24、θ35、θ36、θ44、θ45、θ46均为[0,180°]之间的某一定值;
拇指与其它四指合作构成的捏手势5fNip的运动过程描述为:初始状态为指点手势Pnt,拇指从状态ST2转换到状态ST3,然后拇指与食指、中指、无名指以及小指并行相对运动,各手指同步向内做弯曲运动,直到拇指指尖与其余四指指尖接触为止;捏手势5fNip的终止状态参数描述为:5fNip={norm((OM1+OR1-2OT1)×(OT2-OT1))=norm((OM2+OR2-2OT1)×(OT2-OT1)),θT13=θ21,θT23=θ22,θT33=θ23,θI1=θ24,θI2=θ25,θI3=θ26,θM1=θ34,θM2=θ35,θM3=θ36,θR1=θ44,θR2=θ45,θR3=θ46,θS1=θ54,θS2=θ55,θS3=θ56};其中,θ21、θ22、θ23、θ24、θ25、θ26、θ34、θ35、θ36、θ44、θ45、θ46、θ54、θ55、θ56均为[0,180°]之间的某一定值;
偏握手势AGrab是拇指与其余并拢弯曲的四指的每个手指所在平面垂直的手势,其描述为:初始状态为指点手势Pnt,拇指保持状态ST2不变,中指、无名指和小指同时伸直并保持与食指并拢,然后食指、中指、无名指和小指并行同步向内弯曲至最大角度;抓握手势AGrab的终止状态参数描述为:AGrab={θT12=θ61,θT22=θ62,θT32=θ63,θI1=θ1Max,θI2=θ2MAX,θI3=θ3Max,θM1=θ1Max,θM2=θ2Max,θM3=θ3Max,θR1=θ1Max,θR2=θ2Max,θR3=θ3Max,θS1=θ1Max,θS2=θ2Max,θS3=θ3Max};其中,θ61、θ62、θ63均为[0,180°]之间的某一定值;θ1Max、θ2Max、θ3Max分别为各手指第一指节、第二指节、第三指节的最大弯曲角度;
对握手势PGrab是拇指与其它四指相扣形成的手势,其描述为:初始状态为指点手势Pnt,拇指转换到状态ST3,中指、无名指和小指伸直与食指并拢,然后拇指与其余四指并行相对运动,食指、中指、无名指和小指并行同步向内做弯曲运动,同时拇指向内做弯曲运动,直到拇指指尖和中指指尖相接触为止;对握手势PGrab的终止状态参数描述为:PGrab={θT13=θ71,θT23=θ72,θT33=θ73,θI1=θ74,θI2=θ75,θI3=θ76,θM1=θ74,θM2=θ75,θM3=θ76,θR1=θ74,θR2=θ75,θR3=θ76,θS1=θ74,θS2=θ75,θS3=θ76};其中,θ71、θ72、θ73、θ74、θ75、θ76均为[0,180°]之间的某一定值;
抓握手势Grasp是五指均匀散开并同时向内做弯曲运动的手势,其描述为:初始状态为指点手势Pnt,拇指转换到状态ST3,其余四指伸直与手掌共面并侧向张开,然后拇指与其余四指并行向内做弯曲运动,直到拇指与中指和无名指指尖接触为止;抓握手势Grasp的终止状态参数描述为:Grasp={θT13=θ81,θT23=θ82,θT33=θ83;θIS=θSMax,θI1=θ84,θI2=θ85,θI3=θ86;θM1=θ87,θM2=θ88,θM3=θ89;θRS=-θSMax,θR1=θ90,θR2=θ91,θR3=θ92;θSS=-θSMax,θS1=θ93,θS2=θ94,θS3=θ95};上述角度等式中右侧均为某常数值;其中,θ81、θ82、θ83、θ84、θ85、θ86、θ87、θ88、θ89、θ90、θ91、θ92、θ93、θ94、θ95均为[0,180°]之间的某一定值;θSMax是食指在MajorH-MinorH平面的侧向移动的最大角度;-θSMax是无名指和小指在MajorH-MinorH平面的侧向移动的最大角度。
4.如权利要求1至3之一所述的一种虚拟手自动手势选择方法,其特征在于:所述构造某一特征子空间包含的特征的一个空间分割FeaSpaceClass的具体方法为:
步骤2.1:获取该特征子空间所包含的特征的端面数量:如果所述特征为长方体,其端面有6个;如果是圆柱体,其端面有2个;如果是圆柱体经纵向剖分,则其端面有3个;如果球体,其端面数为0个;如果是球体的一部分,其端面有1个;如果圆锥体,其端面有1个;如果圆锥体的一部分,其端面有2个;
步骤2.2:将步骤2.1得到的所述特征的端面加以区分,分为开放端面和封闭端面,获得开放端面的数量;所述开放端面是指该特征端面也是整个零件的边界表面;所述封闭端面是指该特征端面与该零件的另一个特征的端面共面,即是另一个特征端面的一部分而非零件的边界表面;每个特征的开放端面的数量用Num_OpenFC表示;
步骤2.3:依次对每个开放端面做如下操作:将穿过开放端面的轴线与该开放端面的交点作为起点,用符号Of表示,沿轴线向零件内部方向取σ长度,做一与所述开放端面平行的截面,将该截面与所述开放端面之间的部分作为特征端面子区域Cj,1≤j≤Num_OpenFC,Num_OpenFC=n-1,σ是一人为设定值,0<σ≤50mm;
步骤2.4:将剩余部分作为特征中心子区域Cn;
经过上述步骤的操作,即完成对该特征子空间所包含的特征的一个空间分割FeaSpaceClass的构造。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210450617.4A CN102929393B (zh) | 2012-10-11 | 2012-11-12 | 虚拟手自动手势选择方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210383334.2 | 2012-10-11 | ||
CN201210383334 | 2012-10-11 | ||
CN2012103833342 | 2012-10-11 | ||
CN201210450617.4A CN102929393B (zh) | 2012-10-11 | 2012-11-12 | 虚拟手自动手势选择方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929393A true CN102929393A (zh) | 2013-02-13 |
CN102929393B CN102929393B (zh) | 2015-07-22 |
Family
ID=47644218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210450617.4A Expired - Fee Related CN102929393B (zh) | 2012-10-11 | 2012-11-12 | 虚拟手自动手势选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929393B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108638054A (zh) * | 2018-04-08 | 2018-10-12 | 河南科技学院 | 一种智能排爆机器人五指灵巧手控制方法 |
CN108983978A (zh) * | 2018-07-20 | 2018-12-11 | 北京理工大学 | 虚拟手控制方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105929956A (zh) * | 2016-04-26 | 2016-09-07 | 苏州冰格智能科技有限公司 | 一种基于虚拟现实的输入方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998051451A2 (en) * | 1997-05-12 | 1998-11-19 | Virtual Technologies, Inc. | Force-feedback interface device for the hand |
CN101105821A (zh) * | 2007-08-23 | 2008-01-16 | 上海交通大学 | 虚拟装配操作过程的装配工艺生成方法 |
CN101853319A (zh) * | 2010-05-14 | 2010-10-06 | 中国人民解放军军械工程学院 | 一种支持虚拟维修仿真的维修动素集的建立方法 |
CN102663197A (zh) * | 2012-04-18 | 2012-09-12 | 天津大学 | 一种基于运动捕获的虚拟手抓取的仿真方法 |
-
2012
- 2012-11-12 CN CN201210450617.4A patent/CN102929393B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998051451A2 (en) * | 1997-05-12 | 1998-11-19 | Virtual Technologies, Inc. | Force-feedback interface device for the hand |
CN101105821A (zh) * | 2007-08-23 | 2008-01-16 | 上海交通大学 | 虚拟装配操作过程的装配工艺生成方法 |
CN101853319A (zh) * | 2010-05-14 | 2010-10-06 | 中国人民解放军军械工程学院 | 一种支持虚拟维修仿真的维修动素集的建立方法 |
CN102663197A (zh) * | 2012-04-18 | 2012-09-12 | 天津大学 | 一种基于运动捕获的虚拟手抓取的仿真方法 |
Non-Patent Citations (1)
Title |
---|
程成: "虚拟装配中虚拟手构造及双手交互模式研究", 《和谐人机环境2008》, 1 August 2009 (2009-08-01) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108638054A (zh) * | 2018-04-08 | 2018-10-12 | 河南科技学院 | 一种智能排爆机器人五指灵巧手控制方法 |
CN108983978A (zh) * | 2018-07-20 | 2018-12-11 | 北京理工大学 | 虚拟手控制方法及装置 |
CN108983978B (zh) * | 2018-07-20 | 2020-11-10 | 北京理工大学 | 虚拟手控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102929393B (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955267B (zh) | 光透视增强现实系统中双手人机交互方法 | |
CN104007819B (zh) | 手势识别方法、装置及Leap Motion体感控制系统 | |
CN105929940B (zh) | 基于细分特征值法的快速三维动态手势识别方法及系统 | |
Oprea et al. | A visually realistic grasping system for object manipulation and interaction in virtual reality environments | |
CN204463032U (zh) | 一种3d场景中输入手势的系统和虚拟现实头戴设备 | |
CN108983978A (zh) | 虚拟手控制方法及装置 | |
KR101318244B1 (ko) | 3차원 사용자 인터페이스 구현 시스템 및 구현 방법 | |
CN104331154B (zh) | 实现非接触式鼠标控制的人机交互方法和系统 | |
CN205721628U (zh) | 一种快速三维动态手势识别系统及手势数据采集设备 | |
CN109739358B (zh) | 基于裸眼3d的手势碰撞检测方法及设备 | |
CN102929393B (zh) | 虚拟手自动手势选择方法 | |
CN109732593A (zh) | 一种机器人的远端控制方法、装置及终端设备 | |
CN107633551A (zh) | 一种虚拟键盘的展示方法及装置 | |
Ramani | Extracting hand grasp and motion for intent expression in mid-air shape deformation: A concrete and iterative exploration through a virtual pottery application | |
Weller et al. | User performance in complex bi-manual haptic manipulation with 3 dofs vs. 6 dofs | |
Wang et al. | Immersive wysiwyg (what you see is what you get) volume visualization | |
CN105045373B (zh) | 一种面向用户心理模型表达的三维手势交互方法 | |
CN109933194A (zh) | 一种混合现实环境中对虚拟目标物的交互方法 | |
Kang et al. | Feature-based 3D CAD modeling on smart device using multi-touch gesture | |
Feng et al. | FM: Flexible mapping from one gesture to multiple semantics | |
CN108536298A (zh) | 一种人体映射姿体与虚拟旋转体的捆绑交互约束方法 | |
CN110363273B (zh) | 一种基于高级智能对象的交互特征建模方法 | |
Pareek et al. | Human factor study in gesture based CAD environment | |
CN110032958B (zh) | 一种人体肢体语言识别方法及系统 | |
CN109948579B (zh) | 一种人体肢体语言识别方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150722 Termination date: 20171112 |
|
CF01 | Termination of patent right due to non-payment of annual fee |