发明名称 虚拟手自动手势选择方法
摘要 本发明涉及一种虚拟手自动手势选择方法,属于计算机应用领域。本发明包括:(1)为虚拟手设计一套常用的基本手势;(2)设计虚拟手的手势选择方法,具体为:①用零件特征自身的端面作为分割平面,构造零件的二叉空间分割树BSPTree;根据BSPTree将零件及零件外围空间分割成若干特征子空间。②针对步骤①得到的每个特征子空间,构造该特征子空间所包含的特征的一个空间分割FeaSpaceClass。③初步确定虚拟手的当前待抓握的零件特征。④设计一组用于判断虚拟手的抓握位置的指标,并根据该组指标的具体取值综合判断虚拟手的抓握位置。⑤根据选取规则选择一个手势。本发明方法的优点是降低了人工操作的负荷和计算复杂度,极大地提高了工作效率,可以做到实时人机交互。
申请公布号 CN102929393A 申请公布日期 2013.02.13
申请号 CN201210450617.4 申请日期 2012.11.12
申请人 北京理工大学 发明人 程成
分类号 G06F3/01(2006.01)I 主分类号 G06F3/01(2006.01)I
代理机构 代理人
主权项 一种虚拟手自动手势选择方法,其特征在于:其包括:(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。
地址 100081 北京市海淀区中关村南大街5号