專利名稱:虛擬手自動手勢選擇方法
技術領域:
本發明涉及一種虛擬手自動手勢選擇方法,屬于智能人機交互領域。
背景技術:
計算技術的巨大進步,使得人們可以借助圖形技術和多種交互設備在虛擬環境中進行各種交互仿真實驗和設計工作。在虛擬環境人機交互中像在現實世界中一樣的直接操作是一個重要技術方面。虛擬手手勢的動畫是直接操作的基礎設施。目前虛擬手手勢的行為都是基于數據手套等設備通過對人的真實手指動作跟蹤而獲得的,這樣的虛擬手的缺陷在于以下幾點。其一,它依賴人的生理行為和生理感知,在交互中造成很大的認知負荷,也無法提供交互的其它語義信息,比如抓握的特征信息以及抓握的手勢和深度信息;其二,基于碰撞檢測算法,其算法復雜度很高,盡管人們提出了各種各樣的改進算法來提高其效率,并沒有克服其固有的復雜度,因而,在個人計算機上尚無法完全實現實時交互。
發明內容
本發明的目的是解決現有虛擬手技術所帶來的認知負荷高的問題,從而提出了一種虛擬手自動手勢選擇方法。本發明的主要內容是根據生產和生活經驗知識抽取出一套基本手勢;構造具有真實感的虛擬手幾何和手勢動畫。將虛擬手在虛擬環境中設計為主動對象,設計虛擬手的手勢動態選擇的算法,使得在虛擬環境交互過程中虛擬手根據用戶交互意圖的表達自主地轉換手勢。本發明的目的是通過下述技術方案實現的。一種虛擬手自動手勢選擇方法,包括(I)為虛擬手設計一套在生產中和生活中常用的基本手勢,形成虛擬環境基本手勢集,用符號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表示;定義穿過坐標原點且與指點手勢的食指矢量同方向的軸為虛擬手局部坐標系的主軸,用Major11表示;定義在手掌平面上穿過坐標原點與主軸正交的軸線且與拇指指尖所指方向成銳角的方向為虛擬手局部坐標系的副軸方向,用Minor11表示;定義穿過坐標原點與MajorH-MinorH平面即手掌平面正交且從手背指向手心的的方向為第三軸方向,用The3thAxisH表示,此三個軸構成右手定則。定義手指的3個關節點和指尖頂點。對于拇指,從根部到指尖順序分別是拇指第一關節點、拇指第二關節點,拇指第三關節點和拇指指尖頂點,分別用0T1、O12> O13> O14表示。Oti和Ot2之間的距離、Ot2和Ot3之間的距離、Ot3和Ot4之間的距離分別用1T1、1T2、I13表示。食指的3個關節點和指尖頂點,從根部到指尖順序分別是食指第一關節點、食指第二關節點、食指第三關節點和食指指尖頂點,分別用0n、O12, O13> O14表示。O11和O12之間的距離、O12和O13之間的距離、O13和O14之間的距離分別用I11U12和I13表示。中指的3個關節點和中指指尖頂點,從根部到指尖順序分別是中指第一關節點、中指第二關節點,中指第三關節點和中指指尖頂點,分別用0M1, Om2, Om3> Om4表示。Omi和Om2之間的距離、Om2和Om3之間的距離、Om3和Om4之間的距離分別用ImiUm2Um3表示。無名指的3個關節點,從根部到指尖順序分別是無名指第一關節點、無名指第二關節點、無名指第三關節點和無名指指尖頂點,分別用0K1、0K2、0K3、Oe4表示。Oei和Oe2之間的距離、Oe2和Oe3之間的距離、Ok3和Oe4之間的距離分別用1K1、1K2、Ik3表示。小指的3個關節點,從根部到指尖順序分別是小指第一關節點、小指第二關節點,小指第三關節點和小指指尖頂點,分別用Osi、0S2, 0S3、Os4表示。Osi和Os2之間的距離、Os2和Os3之間的距離、Os3和Os4之間的距離分別用1S1、1S2、Is3表示。各手指的第一關節點到第二關節點的部分稱為第一指節,第二關節點到第三關節點的部分稱為第二指節,第三關節點到指尖頂點的部分稱為第三指節。定乂 5 個矢里 VeCjjTi、VeCjjn、V6。腿1、V 。服丄、veCjjsi ;其中,Vθ表原點到梅宇曰的第一關節點On的矢量,vecHT1=0n-0H ;vecHI1表示原點Oh到食指的第一關節點O11到的矢量,vecHI1=0n-0H -,Yecmi表示原點Oh到中指的第一關節點Om的矢量,vecHM1=0m_0H ;vecHE1表示原點Oh到無名指的第一關節點Oki的矢量,vecHK1=0K「0H ;vecHS1表示原點Oh到小指的第一關節點 Osi 的矢量,vecHS1=0sl-0H。定義拇指的3種狀態和2種狀態轉換方式。拇指的3種狀態分別用Sti、St2和St3表示;2種狀態轉換方式分別用Tn和Tt2表示。拇指的狀態Sn是拇指與食指并攏,拇指指尖所指方向與Major11軸方向相同;拇指的狀態St2是拇指與食指分開,拇指指尖指向與Minora軸方向相同;拇指的狀態St3是拇指與食指分開,拇指指尖指向與The3thAxisH軸方向相同。拇指的狀態轉換方式Tn是拇指在MajorH-MinorH平面的轉動,即拇指從狀態Sn向狀態St2轉換或從狀態St2向狀態Sn轉換的運動過程;拇指的狀態轉換方式Tt2是拇指在MinorH-The3thAxisH平面上的旋轉運動,即拇指從狀態St2向狀態St3轉換或從狀態St3向狀態St2轉換的運動過程。定義手指的運動方式定義拇指各指節的旋轉角度。拇指從狀態St2開始,拇指的第一指節至第三指節的旋轉角度分別用θ Τ12> θ Τ22和θ Τ32表示;拇指從狀態St3開始,拇指的第一指節至第三指節的旋轉角度分別用θη3、ΘΤ23和ΘΤ33表示。定義除拇指外其它四指的運動方式。第一種運動方式是食指、無名指和小指在MajorH-MinorH平面內的側向移動,中指在MajorH_MinorH平面上沒有側向運動;第二種運動方式是食指、中指、無名指和小指分別由伸直狀態朝向手心的彎曲運動和其逆運動。在第一種運動方式中,食指、無名指和小指在MajorH-MinorH平面的側向移動角度分別用Θ IS、Θ ES和Θ ss表示。在第二種運動方式中,食指的第一指節至第三指節的旋轉角度分別用θ n、9 12和Θ 13表示;中指的第一指節至第三指節的旋轉角度分別用ΘΜ1、和表示;無名指的第一指節至第三指節的旋轉角度分別用θ Κ1、θ Κ2和θ Κ3表示;小指的第一指節至第三指節的旋轉角度分別用QS1、0S2和0S3表示。在上述參數定義的基礎上,對虛擬環境基本手勢集GesSet中的8種手勢進行描述。指點手勢Pnt為手背朝上,食指伸直擺放,拇指自然伸展,處于狀態ST2,其余三指指尖自然彎曲向下;因此指點手勢Pnt的參數描述為Pnt={vecm4=MajorH, θ Π2= θ η,
Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)
Τ22一 12, Τ32一 13, Il一 14, 12一 15, 13一 16, Ml一 17, M2一 18, M3一 19, Rl一 R7,
θ R2= θ 18,θ R3= θ 19,θ SI= θ 17,θ S2= θ 18,θ S3= θ I9I ;其中,VeCm4 表示從食指的第一關節點
O11 到拇指指尖 O14 的矢量;θ η、Θ 12、Θ 13、Θ 14、Θ 15、Θ 16、Θ 17、Θ 18、Θ 19 均為
之間的某一定值。拇指和食指合作的捏手勢2fNip的描述為初始狀態為指點手勢Pnt,拇指從狀態St2轉換到狀態ST3,然后拇指和食指相對運動直到指尖中心接觸為止。捏手勢2fNip的終止狀態參數描述為2fNip= {norm((O11-On) X (Ot2-Oti)) =norm((O12-Oti) X (Ot2-Oti)),
θ 113= θ 21 ΘΤ23=Θ22,θ T33= θ 23 θ Il= θ 24 ΘΙ2=Θ25,θ 13= θ 261 ;其中,ηθΓΠ1(·)中的各參數
為矢量,norm( ·)表不取該矢量的方向;9 21、Θ 22、Θ 23、Θ 24、Θ 25、Θ 26均為[O, 180。]之間的某一定值。姆指、食指和中指合作的捏手勢3fNip的描述為初始狀態為指點手勢Pnt,姆指從狀態St2轉換到狀態ST3,同時中指伸直與食指并攏,其它手指狀態不變。然后食指和中指與姆指做并彳丁相對運動,分別做向內彎曲直到姆指指尖與食指和中指指尖接觸為止。捏手勢 3fNip 的終止狀態參數描述為3fNip={norm((0n+0M1-20T1) X (O12-On)) =norm((0I2+0M2-20n) X (0Τ2_0Τ1) ),θ Τ13- θ 21 9 Τ23- θ 22,θ Τ33- θ 23,θ η_ θ 24,θ Ι2_ θ 25,θ Ι3_ θ 26,θ Μ1_ θ 34,ΘΜ2=Θ35,%3=03J;其中,021、0 22、0 23、0 24、0 25、0 26、0 34、θ35、Θ 36 均為
之間的某一定值。拇指與除小指外的其它四指合作構成的捏手勢4fNip的描述為初始狀態為指點手勢Pnt,拇指從狀態St2轉換到狀態ST3,同時中指和無名指伸直與食指并攏,小指狀態不變。然后食指、中指和無名指與姆指做并彳丁相對運動,分別做向內彎曲直到姆指指尖與中指指尖接觸為止。捏手勢4fNip的終止狀態參數描述為4fNip= {norm((Omi-Oti) X (Ot2-Oti)) =
norm ( (Om2-Ot1) X (0Τ2—0T2) ),,θ T13— Θ 21 Τ23_ 22, Τ33_ 23, Il_ ^ 24, I2~ 9 25, I3_ 9 26,
9 Ml- 9 34,9 M2- 9 35,^ M3- ^ 36,^ El- ^ 44,^ E2_ ^ 45,^ E3_ ^ 46^ ;其中,^ 21、^ 22、^ 23、^ 24、^ 25、θ 26、θ 34、θ 35、θ 36、θ 44、θ 45、θ 46 均為
之間的某一定值。拇指與其它四指合作構成的捏手勢5fNip的運動過程描述為初始狀態為指點手勢Pnt,姆指從狀態St2轉換到狀態St3,然后姆指與食指、中指、無名指以及小指并彳丁相對運動,各手指冋步向內做彎曲運動,直到姆指指尖與其余四指指尖接觸為止。捏手勢5fNip的終止狀態參數描述為5fNip= {norm((0M1+0E1-20T1) XX (0T2-
\ \Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)
wTl/ / , , Τ13一 21 Τ23一 22 Τ33一 23 Il一 24 12一 25 13一 26 Ml一 34 M2一 35,9 M3- 9 36,9 El- 9 44,^ E2_ ^ 45,^ E3_ ^ 46,^ SI- ^ 54,^ S2_ ^ 55,^ S3- ^ 56^ ;其中,^ 21、日 22、^ 23、9 24、9 25、9 26、9 34、9 35、9 36、9 44、9 45、9 46、9 54、9 55、9 56 均為[ ,180° ]之間的某一定值。偏握手勢AGrab是拇指與其余并攏彎曲的四指的每個手指所在平面垂直的手勢,其描述為初始狀態為指點手勢Pnt,姆指保持狀態St2不變,中指、無名指和小指冋時伸直并保持與食指并找,然后食指、中指、無名指和小指并行同步向內彎曲至最大角度。抓握手勢 AGrab 的終止狀態參數描述為AGrab= { θ Τ12= Θ 61,θ Τ22= Θ 62,θ Τ32= Θ 63,θ η= θ 1Max,
Q=QQ=QQ=QQ=QQ=QQ=QQ=QQ=Q
12 2Max, 13 3Max, Ml IMax, M2 2Max, M3 3Max, Rl IMax, R2 2Max, R3 3Max,
θ SI= θ 1MaX,θ S2= θ 2MaX,θ S3= θ 3MaJ ;其中,θ 61> θ 62 > θ 63 均為[ ,180° ]之間的某一定值;
Θ 1Max> Θ 2Max> 93^分別為各手指第一指節、第二指節、第三指節的最大彎曲角度。對握手勢PGrab是拇指與其它四指相扣形成的手勢,其描述為初始狀態為指點手勢Pnt,拇指轉換到狀態St3,中指、無名指和小指伸直與食指并攏,然后拇指與其余四指并彳丁相對運動,食指、中指、無名指和小指并彳丁冋步向內做彎曲運動,冋時姆指向內做彎曲運動,直到姆指指尖和中指指尖相接觸為止。對握手勢PGrab的終止狀態參數描述為PGrab- { θ Τ13- Θ 71,θ Τ23- Θ 72,θ Τ33- Θ 73,θ η- Θ 74,θ Ι2- Θ 75,θ Ι3- Θ 76,θ Μ1- Θ 74,θ Μ2- Θ 75
9 M3- 9 76,9 El- 9 74,^ E2_ ^ 75,^ E3_ ^ 76,^ SI- ^ 74,^ S2_ ^ 75,^ S3- ^ 76^ ;其中,日 71、日 72、^ 73、
Θ 74、Θ 75、Θ 76均為
之間的某一定值;抓握手勢Grasp是五指均勻散開并同時向內做彎曲運動的手勢,其描述為初始狀態為指點手勢Pnt,拇指轉換到狀態St3,其余四指伸直與手掌共面并側向張開,然后拇指與其余四指并彳丁向內做彎曲運動,直到姆指與中指和無名指指尖接觸為止。抓握手勢Grasp的終止狀態參數描述為Grasp={
n3 u 81, u T23 82, T33 83, IS SMax Il 84,G I2~ G 85,G Ι3- θ 86 ; θ Μ1- Θ 87,θ Μ2- Θ 88,θ Μ3- Θ 89 ; Θ RS-- ^ SMax,^ El- ^ 90,^ E2_ ^ 91,
^ E3= ^ 92 ; ^ SS=_ ^ SMax ^ Sl= ^ 93 ^ S2= ^ 94 ^ S3= ^ 95^ ° 上述角度等式中右側均為某常數值。其中,9 81、9 82、9 83、9 84、^ 85、^ 86、^ 87、^ 88、^ 89、^ 9(1、^ 91、^ 92、^ 93、^ 94、^ 95
均為
之間的某一定值;0_!£是食指在MajorH-MinorH平面的側向移動的最大角度;_ θ SMax是無名指和小指在MajorH-MinorH平面的側向移動的最大角度。(2)設計虛擬手的手勢選擇方法,具體操作步驟為步驟一、用零件特征自身的端面作為分割平面,構造零件的二叉空間分割樹,用符號BSPTree表示。通過該零件的二叉空間分割樹BSPTree,將零件及零件外圍空間分割成若干特征子空間。所述特征是一些特定的三維幾何形狀,是組成零件對象的基本單位。所述特定的三維幾何形狀包括長方體、圓柱體或圓柱體的一部分、孔、槽、球體或球體的一部分、圓錐體或圓錐體的一部分。為每個特征定義笛卡爾局部坐標系將每個特征的幾何中心點定義為該特征的局部坐標系的原點;每個特征的中心軸線均作為該特征的笛卡爾局部坐標系的坐標軸,以及描述其三維空間占有的尺寸數據等參數,同時它有由表面面片所構成的視覺表不。步驟二、針對步驟一得到的每個特征子空間,構造該特征子空間所包含的特征的一個空間分割,該分割集用符號FeaSpaceClass表示,FeaSpaceClass= (C1, C2,…,Cj ;其中,C1, C2,…,Cn分別表不該特征被分割成的η個特征子區域。
所述構造某一特征子空間包含的特征的一個空間分割FeaSpaceClass的具體方法為步驟2. I :獲取該特征子空間所包含的特征的端面數量如果所述特征為長方體,其端面有6個;如果是圓柱體,其端面有2個;如果是圓柱體經縱向剖分,則其端面有3個;如果球體,其端面數為O個;如果是球體的一部分,其端面有I個;如果圓錐體,其端面有I個;如果圓錐體的一部分,其端面有2個。步驟2. 2 :將步驟2. I得到的所述特征的端面加以區分,分為開放端面和封閉端面,獲得開放端面的數量。所述開放端面是指該特征端面也是整個零件的邊界表面;所述封閉端面是指該特征端面與該零件的另一個特征的端面共面,即是另一個特征端面的一部分而非零件的邊界表面。每個特征的開放端面的數量用Num_0penFC表示。步驟2. 3 :依次對每個開放端面做如下操作將穿過開放端面的軸線與該開放端面的交點作為起點,用符號Of表示,沿軸線向零件內部方向取σ長度,做一與所述開放端面平行的截面,將該截面與所述開放端面之間的部分作為特征端面子區域Cpl < j ^ Num_OpenFC, Num_0penFC=n-l, σ 是一人為設定值,0〈σ < 50mm。步驟2. 4 :將剩余部分作為特征中心子區域Cn。經過上述步驟的操作,即完成對該特征子空間所包含的特征的一個空間分割FeaSpaceClass 的構造。步驟三、用戶通過簡單三維輸入設備對虛擬手進行位姿操控,使其接近目標零件,并使虛擬手的方向為非背對目標零件的某一朝向,此時虛擬手為指點手勢。然后,確定虛擬手的食指指尖O14所處的特征子空間,將該特征子空間包含的特征確定為當前待抓握的特征。步驟四、設計一組用于判斷虛擬手的抓握位置的指標,并根據該組指標的具體取值綜合判斷虛擬手的抓握位置;具體為步驟4. I :設計指標①至指標④,分別用符號Metric1至Metric4表示。每個指標的取值將是特征子區域集合FeaSpaceClass中的某個特征子區域Ci或者為空。指標①是虛擬手的原點與特征的距離指標,用符號Metric1表示;獲取距離Metric1的取值方法為從虛擬手局部坐標系原點Oh做垂直于特征主軸的一個平面,交主軸上一點,用符號O’H表示,當點Oh與點O’H之間的距離小于某一人為預先設定閾值時,確定點O’H所在特征子區域Ci, I < i < η,即Ci e FeaSpaceClass,則指標Metric1=Ci,否則為空。指標②是虛擬手的食指指尖與特征表面距離指標,用符號Metric2表示;獲取距離Metric2的取值方法為過食指指尖O14做垂直于特征主軸的平面,該平面與特征表面相交,求交線上與O14點距離最近點,用符號O' Itip表示,當點O14與點O’ Itip之間的距離小于某一人為預先設定閾值時,確定點O’ Itip所在特征子區域Ci,則指標Metric2=Ci,否則為空。指標③是虛擬手的食指光線投射指標,用符號Metric3表示。獲取食指光線投射指標Metric3的取值方法為沿從食指指根O11到指尖O14的矢量方向投射一條光線穿越特征近表面的一點,用符號P表示,確定點P所在特征子區域Ci,則指標Metric3=Ci,否則為空。指標④是虛擬手的Τ1ιθ3 Αχ 8Ι^ (即手心的朝向方向)與特征的某一個軸線(用符號Axf表示)對齊的指標,用符號Metric4表示;獲取角度距離Metric4的取值方法為若I The3thAxisH · Axf |彡I- σ 3,σ 3是某一人為設定值,O ^ σ 3 < O. 5,被選擇特征在Axf
1軸方向上有一端面FCp該端面的中心點(用符號O0表示)與虛擬手的原點間的距離(用符號d3表示)小于某個閾值,即4 = &/Χ σ4,確定點%所在特征子區域Ci,則指標Metric4=Ci,否則為空。步驟4. 2 :為每個特征子區域Ci定義一個權值變量,用Wi表示,Wi的初值均為O ;根據Metric1至Metric4的取值,改變特征子區域Ci的權值變量Wi賦值。每當一個指標取值Ci,則將Wi值加I。步驟4. 3 :選取特征子區域集合FeaSpaceClass中的權值變量Wi取值最大的特征子區域Ci,將該特征子區域作為虛擬手所要抓握的部位。若有多個特征子區域的權值變量Wi取相同的最大值,則操作虛擬手使其位姿被進一步調整,直到有某個特征子區域取得唯一的權值為止。步驟五、根據選取規則從虛擬環境基本手勢集GesSet中選擇一個手勢。所述選取規則具體為步驟5. I :根據零件的質量(用符號Wgtp表示)選擇手勢,具體為如果wgtP Swci, Wtl為以人為設定值,Okg < Wtl彡Ikg,則確定手勢類型為捏手勢2fNip、3fNip、4fNip、5fNip,然后執行步驟5.2 ;否則,則確定手勢類型為抓握手勢AGrab、PGrab、Grasp,然后執行步驟5. 3。步驟5. 2 :當 Okg < Wgtp ( W1Iig 時,選擇用 2fNip 手勢;當 W1Iig < wgtP ( w2kg 時,選擇用 3fNip 手勢;當 w2kg < Wgtp ( w3kg 時,選擇用 4fNip 手勢;當 w3kg < wgtP ( w4kg時,選擇用4fNip手勢;其中,W1 < w2〈w3〈w4〈w。。步驟5. 3 :當虛擬手所要抓握的特征子區域為球體時,選擇抓握手勢Grasp ;否則,根據虛擬手所要抓握的特征子區域的截面半徑(用符號r表示)選擇是抓握手勢AGrab或者PGrab,具體為當Omm < r ^ 15mm時,選擇用偏握手勢AGrab ;當15mm < r ^ 40mm時,選擇用對握手勢PGrab。有益效果本發明提出的一種虛擬手自動手勢選擇方法與已有技術相比較,具有以下優點①降低了人工操作的負荷,極大地提高了工作效率;②降低了計算復雜度,可以做到實時人機交互。
圖I為本發明具體實施例中8種虛擬手勢的示意圖;其中,(a)為Pnt手勢;(b)為2fNip手勢;(c)為3fNip手勢;Cd)為4fNip手勢;Ce)為5fNip手勢;(f)為AGrab手勢;(g)為PGrab手勢;(h)為Grasp手勢;圖2為本發明具體實施例中某一軸零件的特征及特征截面示意圖;其中,I-特征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的示意圖。
具體實施例方式下面結合附圖和實施示例對本發明做進一步說明。一種虛擬手自動手勢選擇方法,包括 (I)為虛擬手設計一套在生產中和生活中常用的基本手勢,形成虛擬環境基本手勢集,用符號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與指點手勢的食指所指方向同向的軸為虛擬手局部坐標系的主軸方向,用Major11表示;定義在手掌平面上與主軸正交的軸線且其與拇指指尖所指方向夾角為銳角的方向為虛擬手局部坐標系的副軸方向,用Minora表示;定義與MajorH_MinorH平面即手掌平面正交且從手背指向手心的的方向為第三軸方向,用The3thAxisH表示,此三個軸構成右手定則。定義拇指的3個關節點和指尖頂點,從根部到指尖順序分別是拇指第一關節點、拇指第二關節點,拇指第三關節點和拇指指尖頂點,分別用0T1、0T2、0T3、O14表示。On和Ot2之間的距離、Ot2和Ot3之間的距離、Ot3到Ot4的距離分別用1T1、1T2、It3表示。食指的3個關節點和指尖頂點,從根部到指尖順序分別是食指第一關節點、食指第二關節點、食指第三關節點和食指指尖頂點,分別用0η、012、013、O14表示。O11和O12之間的距離、O12和O13之間的距離、O13到O14的距離分別用ln、I12和I13表示。中指的3個關節點和中指指尖頂點,從根部到指尖順序分別是中指第一關節點、中指第二關節點,中指第三關節點和中指指尖頂點,分別用0M1、0M2、0M3、Om4表示。Omi和Om2之間的距離、Om2和Om3之間的距離、Om3到Om4的距離分別用1Μ1、1Ε> 1Μ3表示。無名指的3個關節點,從根部到指尖順序分別是無名指第一關節點、無名指第二關節點、無名指第三關節點和無名指指尖頂點,分別用0Κ1、0Ε2, 0Ε3> Oe4表示。Oei和Oe2之間的距離、Oe2和Oe3之間的距離、Oe3和Oe4之間的距離分別用1K1、1K2、Ie3表示。小指的3個關節點,從根部到指尖順序分別是小指第一關節點、小指第二關節點,小指第三關節點和小指指尖頂點,分別用Osi, Os2, Os3> Os4表示。Osi和Os2之間的距離、Os2和Os3之間的距離、Os3和Os4之間的距離分別用1S1、Is2> Is3表示。各手指的第一關節點到第二關節點的部分稱為第一指節,第二關節點到第三關節點的部分稱為第二指節,第三關節點到指尖頂點的部分稱為第三指節。定義5 個矢量 vecHT1、vecHI1、vecHM1、vecHE1> vecHS1 ;其中,vecHT1 表示原點 Oh 到拇指的第一關節點On的矢量,vecT1H=0n-0H ;vecHI1表示原點Oh到食指的第一關節點O11到的矢量,vecI1H=0n-0H -,Yecmi表示原點Oh到中指的第一關節點Om的矢量,vecM1H=0M「0H ;vecHE1表示原點Oh到無名指的第一關節點Oki的矢量,vecE1H=0E1-0H ;vecHS1表示原點Oh到小指的第一關節點 Osi 的矢量,vecslH=0sl-0H。定義拇指的3種狀態和2種狀態轉換方式。拇指的3種狀態分別用Sti、St2和St3表示;2種狀態轉換方式分別用Tn和Tt2表示。拇指的狀態Sn是拇指與食指并攏,拇指指尖所指方向與Major11軸方向相同;拇指的狀態St2是拇指與食指分開,拇指指尖指向與Minora軸方向一致;拇指的狀態St3是拇指與食指分開,拇指指尖指向與The3thAxisH軸方向相同。拇指的狀態轉換方式Tn是拇指在MajorH-MinorH平面的轉動,即拇指從狀態Sn向狀態St2轉換或從狀態St2向狀態Sn轉換的運動過程;拇指的狀態轉換方式Tt2是拇指在MinorH-The3thAxisH平面上的旋轉運動,即拇指從狀態St2向狀態St3轉換或從狀態St3向狀態St2轉換的運動過程。定義手指的運動方式定義拇指各指節的旋轉角度。拇指從狀態St2開始,在MajorH_MinorH平面的運動時,拇指的第一指節至第三指節的旋轉角度分別用θ Τ12、ΘΤ22和θ Τ32表示;拇指從狀態St3開始,在MinorH-The3thAxisH平面上運動時,拇指的第一指節至第三指節的旋轉角度分別
用 9 Τ13、θ Χ23 和 9 Τ33表示。定義除拇指外其它四指的運動方式。第一種運動方式是食指、無名指和小指在MajorH-MinorH平面內的側向移動,中指在MajorH_MinorH平面上沒有側向運動;第二種運動方式是食指、中指、無名指和小指分別由伸直狀態朝向手心的彎曲運動。在第一種運動方式中,食指、無名指和小指在MajorH-MinorH平面的側向移動角度分別用Θ IS、θ κ和Θ ss表示。在第二種運動方式中,食指的第一指節至第三指節的旋轉角度分別用ΘΙ2和O13表示;中指的第一指節至第三指節的旋轉角度分別用0M1、012和0IB表示;無名指的第一指節至第三指節的旋轉角度分別用θ Κ1、9 Κ2和Θ R3表示;小指的第一指節至第三指節的旋轉角度分別用0S1、0S2和0S3表示。在上述參數定義的基礎上,使用定義的參數對虛擬環境基本手勢集GesSet中的8種手勢進行描述。指點手勢Pnt如圖I (a)所示,為手背朝上,食指伸直擺放,拇指自然伸展,處于狀態ST2,其余三指指尖自然彎曲向下;因此指點手勢Pnt的參數描述為Pnt= Ivec1114=MajorH,
θ El= θ 4,θ R2= θ 5,θ R3= θ 6,θ SI= θ 4,θ S2= θ 5,θ S3= θ 61 ;其中,VeCm4 表不從食指的第一關
節點O11到拇指指尖O14的矢量;θ η、Θ 12、Θ 13、Θ 4、Θ 5、Θ 6均為
之間的某一定值。拇指和食指合作的捏手勢2fNip如圖I (b)所示,其運動過程描述為初始狀態為指點手勢Pnt,姆指從狀態St2轉換到狀態St3,然后姆指和食指相對運動直到指尖中心接觸為止。捏手勢2fNip的終止狀態參數描述為2fNip= {norm((Oi1-Oti) X (Ot2-Oti) ) =norm(
(O12-0T1) X (0Τ2—0Τ1) ),θ Τ13— θ 21 9 Τ23~ 9 22,9 Τ33— ^ 23,^ Il- ^ 24,^ Ι2~ ^ 25,^ Ι3— ^ 26^ ;其中,
norm( ·)中的各參數為矢量,norm( ·)表示取該矢量的方向;Θ 21、Θ 22、Θ 23、Θ 24、Θ 25、Θ 26均為
之間的某一定值。
拇指、食指和中指合作的捏手勢3fNip如圖1(c)所示,其運動過程描述為初始狀態為指點手勢Pnt,姆指從狀態St2轉換到狀態St3,然后食指和中指與姆指相對運動直到指尖中部接觸為止。捏手勢3fNip的終止狀態參數描述為3fNip= {norm((0n+0M1-20T1) X (0T2—0Τ1)) —norm ((0Ι2+0Μ2—20Τ1) X (0Τ2—0Τ1)),θ Τ13- θ 31,θ Τ23- θ 32,θ Τ33- θ 33,θ η- θ 3 4,θ Ι2- θ 35,
9 Ι3_ 9 36,9 Ml- 9 37,^ M2- ^ 38 ^ M3- ^ 39^ ;其中,^ 31、^ 32、^ 33、^ 34、^ 35、^ 36、^ 37、^ 38、^ 39
均為
之間的某一定值。拇指與除小指外的其它四指合作構成的捏手勢4fNip如圖I (d)所示,其運動過程描述為初始狀態為指點手勢Pnt,拇指從狀態St2轉換到狀態St3,然后拇指與食指、中指以及無名指相對運動直到指尖中部接觸為止。捏手勢4fNip的終止狀態參數描述為4fNip
_ {ηΟ Π ((〇μι 〇τι) X (0^2 〇τι) ) _ΠΟ!ΓΠ1 ( (0j^2X (0j2 〇τι) ),,Q 丁13_ ^ 41 ^ T23_ ^ 42,^ T33_ ^ 43,
Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)
Il一 44, 12一 45, 13一 46, Ml一 47, M2一 48, M3一 49, Rl一 50, R2一 51, R3一 52了 ;
其中,θ 41、θ 42、θ 43、θ 44、θ 45、θ 46、θ 47、θ 48、θ 49、θ 5。、θ 51、θ 52 均為
之間的
某一定值。拇指與其它四指合作構成的捏手勢5fNip如圖I (e)所示,其運動過程描述為初始狀態為指點手勢Pnt,拇指從狀態St2轉換到狀態ST3,然后拇指與食指、中指、無名指以及小指相對運動直到指尖中部接觸為止。捏手勢5fNip的終止狀態參數描述為5fNip={norm ((0M1+0E1-20T1) X (O12-O11)) =norm ((0M2+0E2-20T1) X (O12-O11)),,θ T13= θ 53, θ T23= Θ 54,
fl — ΩQ _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)Γ) _ Γ)
T33一 55,U Il一 U 56, U 12一 U 57, 13一 58, Ml一 59, M2一 60, M3一 61> Rl一 62, R2一 63,9 Ε3_ 9 64 G S1- θ 65,θ S2_ ^ 66 ^ S3- ^ 67^ ;其中,^ 53、θ 54、θ 55> θ 56、θ 5γ、θ 5g> θ 5g、θ 6(|>θ 61 > θ 62、θ 63、θ 64、θ65、θ 66、θ67 均為
之間的某一定值。拇指與其余并攏彎曲的四指各手指所在平面垂直的抓握手勢AGrab如圖I (f )所示,其運動過程描述為初始狀態為指點手勢Pnt,拇指運動到狀態St2,其余四指伸直,然后食指、中指、無名指和小指并行同步彎曲至最大角度。抓握手勢AGrab的終止狀態參數描述
為:AGrab-{ θ Τ12- Θ 68,θ Τ22- θ 69,θ Τ32- θ 70, θ η- θ 1Max, θ Ι2- θ 2Max, θ Ι3- θ 3Max, θ Μ1- θ 1Max,
θ , r0 — θ 0, r ,θ , r0— θ r,, r ,—,θ DO — θ r ,θ D。一 θ r,, r ,一^ O O 一 ^ r ,θ一 θ r,, r ^ ·
M2 2Max M3 3Max, Rl IMax9 R2 2Max R3 3Max, SI IMax9 S2 2Max9 S3 3Max」,
其中,θ 68> θ 69> θ 70均為
之間的某一定值;Θ 1Max、Θ 2Max、Θ 3Max分別為各手指第一指節、第二指節、第三指節的最大彎曲角度。拇指與其它四指相扣形成的抓握手勢PGrab如圖I (g)所示,其運動過程描述為初始狀態為指點手勢Pnt,拇指轉換到狀態St3,其余四指伸直,然后拇指與其余四指相對運動,食指、中指、無名指和小指并彳丁冋步彎曲運動。抓握手勢PGrab的終止狀態參數描述為PGrab- { θ Τ13- Θ 71,θ Τ23- Θ 72,θ Τ33- Θ 73,θ η- Θ 74,θ Ι2- Θ 75,θ Ι3- Θ 76,θ Μ1- Θ 74,θ Μ2- Θ 75,
Q M3- Q 76,Q El- Q 74,^ E2_ ^ 75,^ E3_ ^ 76,^ SI- ^ 74,^ S2_ ^ 75,^ S3- ^ 76^ ;其中,^ 71、Θ 72、Θ 73、
Θ 74、Θ 75、Θ 76均為
之間的某一定值;五指均勻散開并向內彎曲的抓握手勢Grasp如圖I (h)所示,其運動過程描述為初始狀態為指點手勢Pnt,拇指轉換到狀態St3,其余四指伸直與手掌共面并側向張開,然后姆指與其余四指并彳丁向內彎曲做相對運動,直到姆指與中指和無名指指尖接觸為止。抓握手勢 Grasp 的終止狀態參數描述為Grasp={ θ Τ13= Θ 77,θ Τ23= θ 78,θ Τ33= θ 79 ; θ IS= θ SMax
Q Il_ Q 80, Q Ι2_ Q 81 Q Ι3_ ^ 82 ; ^ Ml_ ^ 80, ^ Μ2_ ^ 81 ^ Μ3_ ^ 82 ; ^ RS__ ^ SMaxj ^ El- ^ 80
Q Ε2= Q 81,Q R3= 9 82 ; 9 SS=_ ^ SMax^ ^ SI= ^ 8。,^ S2= ^ 81,^ S3= ^ 82^ 上述角度等式中右側均為某常數值。其中,Θ 77、Θ 78、Θ 79、Θ 80> Θ 81、Θ 82均為
之間的某一定值;Θ SMax是食指在MajorH-MinorH平面的側向移動的最大角度;_ Θ SMax是無名指和小指在MajorH_MinorH平面的側向移動的最大角度。 (2)圖2中是一個軸零件,包括特征A (2)、特征B (4)、特征C (6)、特征D (8) 和特征E (10)。 虛擬手抓握一個軸零件(如圖2所示)的手勢選擇過程如下步驟一、用零件特征自身的端面作為分割平面,構造零件的二叉空間分割樹BSPTree0首先選擇特征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. I :獲取該特征子空間所包含的特征的端面數量特征A (2)有2個端面。步驟2. 2 :將步驟2. I得到的所述特征的端面進行區分,特征A (2)有I個開放端面截面FCi (I)和I個封閉端面。步驟2. 3 :依次對每個開放端面做如下操作將穿過開放端面的軸線與該開放端面的交點作為起點,用符號Of表示,沿軸線向零件內部方向,取20mm,該端點用符號Os表示,經過Os點做一與所述開放端面平行的截面,將該截面與所述開放端面之間的部分作為特征子區域C1。步驟2. 4 :將剩余部分作為特征子區域C2。經過上述步驟的操作,即完成對特征A (2)的一個空間分割FeaSpaceClass的構造。采用同樣方法,特征B (4)、特征C (6)、特征D (8)均只構造出I個特征子區域,特征E (10)構造出2個特征子區域。步驟三、用戶通過簡單三維輸入設備對虛擬手進行位姿操控,使其接近目標零件,并使虛擬手的方向為非背對目標零件的某一朝向,此時虛擬手為指點手勢。然后,繼續移動虛擬手使食指指尖O14處于包含特征D (8)的特征子空間,于是將特征D (8)確定為當前待抓握的特征。步驟四、設計一組用于判斷虛擬手的抓握位置的指標,并根據該組指標的具體取值綜合判斷虛擬手的抓握位置;具體為步驟4. I :設計指標①至指標④,分別用符號Metric1至Metric4表示。每個指標的取值將是特征子區域集合FeaSpaceClass中的某個特征子區域Ci或者為空。指標①是虛擬手的原點與特征的距離指標,用符號Metric1表示;獲取距離Metric1的取值方法為從虛擬手局部坐標系原點Oh做垂直于特征主軸的一個平面,交主軸上一點,用符號0’H表示,當點Oh與點O’H之間的距離小于某一人為預先設定閾值時,確定點O’H所在特征子區域為C1,指標Metric1=Cp指標②是虛擬手的食指指尖與特征表面距離指標,用符號Metric2表示;獲取距離Metric2的取值方法為過食指指尖O14做垂直于特征主軸的平面,該平面與特征表面相交,求交線上與O14點距離最近點,用符號O’ Itip表示,當點O14與點O’ Itip之間的距離小于某一人為預先設定閾值時,確定點O’ Itip所在特征子區域為C1,指標Metric2=Cp指標③是虛擬手的食指光線投射指標,用符號Metric3表示。獲取食指光線投射指標Metric3的取值方法為沿從食指指根O11到指尖O14的矢量方向投射一條光線穿越特征近表面的一點,用符號P表示,確定點P所在特征子區域為C1,指標Metric3=C1O指標④是虛擬手的The3thAxisH軸(即手心的朝向方向)與特征的某一個中心軸線(用符號Axf表示)對齊的指標,用符號Metric4表示;獲取角度距離Metric4的取值方法為若|The3thAXisH*AXF| ^l-O3, σ 3是某一人為設定值,O彡σ 3 < O. 5,被選擇特征軸方向Axf為空,指標Metric4的值為空。步驟4. 2 :為特征D (8)特征子區域C1定義一個權值變量F1, F1的初值為O ;根據Metric1至Metric4的取值,使特征子區域C1的權值變量F1取值為3。步驟4. 3 :選取特征子區域集合FeaSpaceClass中的權值變量最大的特征子區域C1,將該特征子區域作為虛擬手所要抓握的部位。步驟五、根據選取規則從虛擬環境基本手勢集GesSet中選擇一個手勢。所述選取規則具體為步驟5. I :根據零件的質量wgtP=5kg選擇手勢,具體為wgtP>w0, W0=Ikg,因此確定手勢類型為抓握手勢AGrab、PGrab> Grasp,然后執行步驟 5. 3。步驟5. 3 :根據虛擬手所要抓握的特征子區域的截面半徑r=30mm選擇用對握手勢PGrab。經過上述步驟的操作,即完成虛擬手的手勢選擇。以上所述的具體描述,對發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例,用于解釋本發明,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
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,…,Cj ;其中,C1, C2,…,Cn分別表不該特征被分割成的η個特征子區域; 步驟三、用戶通過簡單三維輸入設備對虛擬手進行位姿操控,使其接近目標零件,并使虛擬手的方向為非背對目標零件的某一朝向,此時虛擬手為指點手勢;然后,確定虛擬手的食指指尖O14所處的特征子空間,將該特征子空間包含的特征確定為當前待抓握的特征; 步驟四、設計一組用于判斷虛擬手的抓握位置的指標,并根據該組指標的具體取值綜合判斷虛擬手的抓握位置;具體為 步驟4. I :設計指標①至指標④,分別用符號Metric1至Metric4表示;每個指標的取值將是特征子區域集合FeaSpaceClass中的某個特征子區域Ci或者為空; 指標①是虛擬手的原點與特征的距離指標,用符號Metric1表示;獲取距離Metric1的取值方法為從虛擬手局部坐標系原點Oh做垂直于特征主軸的一個平面,交主軸上一點,用符號O' H表示,當點Oh與點O' H之間的距離小于某一人為預先設定閾值時,確定點O' η所在特征子區域Ci, I < i < η,即Ci e FeaSpaceClass,則指標Metric1=Ci,否則為空; 指標②是虛擬手的食指指尖與特征表面距離指標,用符號Metric2表示;獲取距離Metric2的取值方法為過食指指尖O14做垂直于特征主軸的平面,該平面與特征表面相交,求交線上與O14點距離最近點,用符號O' Itip表示,當點O14與點O' Itip之間的距離小于某一人為預先設定閾值時,確定點O' _所在特征子區域Ci,則指標Metric2=Ci,否則為空;指標③是虛擬手的食指光線投射指標,用符號Metric3表示;獲取食指光線投射指標Metric3的取值方法為沿從食指指根O11到指尖O14的矢量方向投射一條光線穿越特征近表面的一點,用符號P表示,確定點P所在特征子區域Ci,則指標Metric3=Ci,否則為空;指標④是虛擬手的The3thAxiSl^^與特征的某一個軸線Axf對齊的指標,用符號Metric4表示;獲取角度距離Metric4的取值方法為若| The3thAxisH .Axf | > 1_σ3,σ3是某一人為設定值,O < σ 3 < O. 5,被選擇特征在Axf軸方向上有一端面FCp該端面的中心點Ofj-與虛擬手的原點間的距尚d3小于某個闡值,即d3 = dist (Ofj-,0H) ^ σ 4,確定點Ofj所在特征子區域Ci,則指標Metric4=Ci,否則為空; 步驟4. 2 :為每個特征子區域Ci定義一個權值變量,用Wi表示,Wi的初值均為O ;根據Metric1至Metric4的取值,改變特征子區域Ci的權值變量Wi賦值;每當一個指標取值Ci,則將Wi值加I ; 步驟4. 3 :選取特征子區域集合FeaSpaceClass中的權值變量Wi取值最大的特征子區域Ci,將該特征子區域作為虛擬手所要抓握的部位;若有多個特征子區域的權值變量Wi取相同的最大值,則操作虛擬手使其位姿被進一步調整,直到有某個特征子區域取得唯一的權值為止; 步驟五、根據選取規則從虛擬環境基本手勢集GesSet中選擇一個手勢; 所述選取規則具體為 步驟5. I :根據零件的質量Wgtp選擇手勢,具體為 如果Wgtp ( W07W0為以人為設定值,Okg < W0 ^ Ikg,則確定手勢類型為捏手勢2fNip、3fNip、4fNip、5fNip,然后執行步驟5. 2 ;否則,則確定手勢類型為抓握手勢AGrab、PGrab,Grasp,然后執行步驟5.3 ;步驟 5. 2 :當 Okg < Wgtp ( W1Iig 時,選擇用 2fNip 手勢;當 W1Iig < wgtP ( w2kg 時,選擇用 3fNip 手勢;當 w2kg < Wgtp ( w3kg 時,選擇用 4fNip 手勢;當 w3kg < wgtP ( w4kg 時,選擇用 4fNip 手勢;其中,W1 < w2〈w3〈w4〈w。; 步驟5. 3 :當虛擬手所要抓握的特征子區域為球體時,選擇抓握手勢Grasp ;否則,根據虛擬手所要抓握的特征子區域的截面半徑r選擇是抓握手勢AGrab或者PGrab,具體為 當Omm < r ^ 15mm時,選擇用偏握手勢AGrab ;當15mm < r ^ 40mm時,選擇用對握手勢 PGrab。
2.如權利要求I所述的一種虛擬手自動手勢選擇方法,其特征在于所述虛擬環境基本手勢集GesSet中的8種手勢的相關參數定乂為 定義虛擬手局部坐標系定義虛擬手的掌心某一點為虛擬手局部坐標系原點,用OH表示;定義穿過坐標原點且與指點手勢的食指矢量同方向的軸為虛擬手局部坐標系的主軸,用Major11表示;定義在手掌平面上穿過坐標原點與主軸正交的軸線且與拇指指尖所指方向成銳角的方向為虛擬手局部坐標系的副軸方向,用Minor11表示;定義穿過坐標原 點與MajorH-MinorH平面即手掌平面正交且從手背指向手心的的方向為第三軸方向,用The3thAxisH表示,此三個軸構成右手定則; 定義手指的3個關節點和指尖頂點;對于拇指,從根部到指尖順序分別是拇指第一關節點、拇指第二關節點,拇指第三關節點和拇指指尖頂點,分別用On、Ot2、Ot3、Ot4表示;0T1和Ot2之間的距離、Ot2和Ot3之間的距離、Ot3和Ot4之間的距離分別用1T1、1T2、I13表示;食指的3個關節點和指尖頂點,從根部到指尖順序分別是食指第一關節點、食指第二關節點、食指第三關節點和食指指尖頂點,分別用O11、O12、O13、O14表示;0η和O12之間的距離、O12和O13之間的距離、O13和O14之間的距離分別用I11U12和I13表示;中指的3個關節點和中指指尖頂點,從根部到指尖順序分別是中指第一關節點、中指第二關節點,中指第三關節點和中指指尖頂點,分別用0M1, Om2, Om3、Om4表示;0Μ1和Om2之間的距離、Om2和Om3之間的距離、Om3和Om4之間的距離分別用1Μ1、1 2、1Μ3表示;無名指的3個關節點,從根部到指尖順序分別是無名指第一關節點、無名指第二關節點、無名指第三關節點和無名指指尖頂點,分別用Oki、0E2、Oe3>Oe4表示;0Ε1和Oe2之間的距離、Oe2和Oe3之間的距離、Oe3和Oe4之間的距離分別用1K1、Ik2、Ie3表示;小指的3個關節點,從根部到指尖順序分別是小指第一關節點、小指第二關節點,小指第三關節點和小指指尖頂點,分別用Osi, 0S2, 0S3、Os4表示;0S1和Os2之間的距離、Os2和Os3之間的距離、Os3和Os4之間的距離分別用1S1、Is2, Is3表示;各手指的第一關節點到第二關節點的部分稱為第一指節,第二關節點到第三關節點的部分稱為第二指節,第三關節點到指尖頂點的部分稱為第三指節; 定乂 5個矢里V eCjjTi、V eCjjii、V 。麗丄、V 。服丄、V ec^g^ ;其中,V θ 表原點Oh到梅 日的一關節點Oti的矢量,vecHT1 = Oti-Oh ;vecHI1表示原點Oh到食指的第一關節點O11到的矢量,Vgchii = O11-Oa ;vecHM1 表示原點 Oh 到中指的第一關節點 Omi 的矢量,vecHM1 = Omi-Oh ;vecHE1表示原點Oh到無名指的第一關節點Oki的矢量,vecHE1 = Oei-Oh ;vecHS1表示原點Oh到小指的第一關節點Osi的矢量,vecHS1 = Osi-Oh ; 定義拇指的3種狀態和2種狀態轉換方式;拇指的3種狀態分別用Sn、St2和St3表示;2種狀態轉換方式分別用Tn和Tt2表示;拇指的狀態Sn是拇指與食指并攏,拇指指尖所 指方向與Major11軸方向相同;拇指的狀態St2是拇指與食指分開,拇指指尖指向與Minor11軸方向相同;拇指的狀態St3是拇指與食指分開,拇指指尖指向與方向相同;拇指的狀態轉換方式Tn是拇指在MajorH-MinorH平面的轉動,即拇指從狀態Sn向狀態St2轉換或從狀態St2向狀態Sn轉換的運動過程;拇指的狀態轉換方式Tt2是拇指在MinorH-The3thAxisH平面上的旋轉運動,即拇指從狀態St2向狀態St3轉換或從狀態St3向狀態St2轉換的運動過程; 定義手指的運動方式 定義拇指各指節的旋轉角度;拇指從狀態St2開始,拇指的第一指節至第三指節的旋轉角度分別用θ Τ12、θ Τ22和θ Τ32表示;拇指從狀態St3開始,拇指的第一指節至第三指節的旋轉角度分別用0 Τ13、θ Τ23和θ Τ33表示; 定義除拇指外其它四指的運動方式;第一種運動方式是食指、無名指和小指在MajorH-MinorH平面內的側向移動,中指在MajorH_MinorH平面上沒有側向運動;第二種運動方式是食指、中指、無名指和小指分別由伸直狀態朝向手心的彎曲運動和其逆運動;在第一種運動方式中,食指、無名指和小指在MajorH-MinorH平面的側向移動角度分別用Θ IS、Θ ES和0SS表示;在第二種運動方式中,食指的第一指節至第三指節的旋轉角度分別用θη、ΘΙ2和ΘΙ3表示沖指的第一指節至第三指節的旋轉角度分別用ΘΜ1、θκ和ΘΜ3表示;無名指的第一指節至第三指節的旋轉角度分別用θ Κ1、θ Κ2和θ Κ3表示;小指的第一指節至第三指節的旋轉角度分別用9S1、0S2和0S3表示。
3.如權利要求2所述的一種虛擬手自動手勢選擇方法,其特征在于所述虛擬環境基本手勢集GesSet中的8種手勢的參數描述為 指點手勢Pnt為手背朝上,食指伸直擺放,拇指自然伸展,處于狀態ST2,其余三指指尖自然彎曲向下;因此指點手勢Pnt的參數描述為 Pnt=Ivec1114 = Majora, θ Τ12 = θ η, θ Τ22 = θ 12, θ Τ32 = θ 13, θ η = θ 14, θ Ι2 = θ 15,9 13 — 9 16, θ Μ1 — ^17, θ J12 — θ 18, θ Μ3 — θ 19, θ R1 — θ 17, θ R2 — θ 18, θ Ε3 — θ 19, θ S1=θ 17 0S2= θ 18 θ S3 = θ I9I ;其中,Vec1114表示從食指的第一關節點O11到拇指指尖O14的矢量;θ η、Θ 12、Θ 13、Θ 14、Θ 15、Θ 16、Θ 17、Θ 18、Θ 19 均為[O, 180° ]之間的某一定值;拇指和食指合作的捏手勢2fNip的描述為初始狀態為指點手勢Pnt,拇指從狀態Sk轉換到狀態St3,然后姆指和食指相對運動直到指尖中心接觸為止;捏手勢2fNip的終止狀態參數描述為2fNip= {norm((O11-O11) X (O12-O11)) = norm((O12-O11) X (O12-O11)), θ Τ13 =θ 21,θ Τ23 = θ 22, θ Τ33 = θ 23, θ η = θ 24,θ Ι2 = θ 25, θ Ι3 = θ 26};其中,norm( ·)中的各參數為矢量,norm( ·)表示取該矢量的方向;9 21、Θ 22、Θ 23、Θ 24、Θ 25、Θ 26均為[O, 180° ]之間的某一定值; 姆指、食指和中指合作的捏手勢3fNip的描述為初始狀態為指點手勢Pnt,姆指從狀態St2轉換到狀態St3,同時中指伸直與食指并攏,其它手指狀態不變;然后食指和中指與姆指做并彳丁相對運動,分別做向內彎曲直到姆指指尖與食指和中指指尖接觸為止;捏手勢 3fNip 的終止狀態參數描述為3fNip= {norm((0n+0M1-20T1) X (O12-On))=norm ( (0I2+0M2—20T1) X (0T2—0T1) ) , θ Τ13 — θ 21Τ23 — 22, Τ33 — 23,9 Il — 9 24,9 12 —9 25,9 13 — 9 26 9 Ml — ^ 34 ^ M2 — ^ 35 ^ M3 — ^ 36 ^ ;其中,日 21、θ 22> θ 23> θ 24、θ 25、θ 26>θ 34 > θ 35、θ 36均為
之間的某一定值; 拇指與除小指外的其它四指合作構成的捏手勢4fNip的描述為初始狀態為指點手勢Pnt,拇指從狀態St2轉換到狀態ST3,同時中指和無名指伸直與食指并攏,小指狀態不變;然后食指、中指和無名指與姆指做并彳丁相對運動,分別做向內彎曲直到姆指指尖與中指指尖接觸為止;捏手勢4fNip的終止狀態參數描述為4fNip= {norm((Omi-Oti) X (Ot2-Oti))=norm ( (Om2-Oti) X (0Τ2—0T2)),,θ τ 3 — 21T23 — 22T33 — 2311 — 2412 — 25,9 13 - 9 26,^ Ml — ^ 34 ^ M2 — ^ 35,^ M3 — ^ 36 ^ El — ^ 44 ^ E2 — ^ 45,^ E3 — ^ 46^ ;其中,Θ 21、Θ 22、Θ 23、Θ 24、Θ 25、Θ 26、Θ 24、Θ 35、Θ 36、Θ 44、Θ 45、Θ 46 均為
之間的某一定值; 拇指與其它四指合作構成的捏手勢5fNip的運動過程描述為初始狀態為指點手勢Pnt,姆指從狀態St2轉換到狀態St3 ,然后姆指與食指、中指、無名指以及小指并打相對運動,各手指冋步向內做彎曲運動,直到姆指指尖與其余四指指尖接觸為止;捏手勢 5fNip 的終止狀態參數描述為5fNip= {norm ((0M1+0E1-20T1) X (Ot2-Oti))=norm ( (O1^Or2K)ti) X (0Τ2—0T1)), Θ T13 — Θ 21,Θ T23 — ^ 22T33 — 23,9 11 — 2412 —G 25,G I3 一 Θ 26 G M1 — Θ 34 Θ 12 一 ^ 35 ^ M3 一 ^ 36,^ El 一 ^ 44 ^ E2 一 ^ 45 ^ E3 一 ^ 46,9 SI — 9 54,Θ S2 — Q 55,^ S3 — ^ 56^ ;其中,^ 21、^ 22、^ 23、^ 24、^ 25、^ 26、^ 34、^ 35、^ 36、Θ 44、9 45、9 46、9 54、9 55、9 56 均為
之間的某一定值; 偏握手勢AGrab是拇指與其余并攏彎曲的四指的每個手指所在平面垂直的手勢,其描述為初始狀態為指點手勢Pnt,姆指保持狀態St2不變,中指、無名指和小指冋時伸直并保持與食指并擾,然后食指、中指、無名指和小指并彳丁冋步向內彎曲至最大角度;抓握手勢AGrab 的終止狀態參數描述為=AGrab= { θ T12 = Θ 61,θ Τ22 = Θ 62,θ Τ32 = Θ 63,θ η = Θ 1Max,R = P)Ω —— QQ __ QQ __ QQ __ QQ __ QQ __.12 — 2ΜΑΧ, 13 — 3Max, Ml — IMax M2 — 2Max, M3 — 3Max, Rl — IMax R2 —.9 2Max,9 R3 — ^ 3Max,^ SI — ^ IMax,^ S2 — ^ 2Max,^ S3 — ^ 3Max^ ;其中,^ 61、^ 62、^ 63 均為[ο, 180° ]之間的某一定值;01Max、Θ 2Max> 03_分別為各手指第一指節、第二指節、第三指節的最大彎曲角度; 對握手勢PGrab是拇指與其它四指相扣形成的手勢,其描述為初始狀態為指點手勢Pnt,拇指轉換到狀態St3,中指、無名指和小指伸直與食指并攏,然后拇指與其余四指并行相對運動,食指、中指、無名指和小指并打冋步向內做彎曲運動,冋時姆指向內做彎曲運動,直到姆指指尖和中指指尖相接觸為止;對握手勢PGrab的終止狀態參數描述為PGrab={ θ T13—G 71,G Τ23 — θ 72 G Τ33 — G 73,^ Il — ^ 74 ^ 12 — ^ 75 ^ 13 — ^ 76 ^ Ml — ^ 74 ^ M2 —.9 75,G M3 — Θ 76 ^ Rl — G 74, Θ R2 — θ 75,Θ R3 — θ 76, Θ S1 — θ 74, Θ S2 — θ 75,Θ S3 — Θ 76};其中,Θ 71、Θ 72、Θ 73、Θ 74、Θ 75、Θ 76 均為[O,180° ]之間的某一定值; 抓握手勢Grasp是五指均勻散開并同時向內做彎曲運動的手勢,其描述為初始狀態為指點手勢Pnt,拇指轉換到狀態St3,其余四指伸直與手掌共面并側向張開,然后拇指與其余四指并彳丁向內做彎曲運動,直到姆指與中指和無名指指尖接觸為止;抓握手勢Grasp的終止狀態參數描述為=Grasp= { θ T13 = Θ 81,θ Τ23 = Θ 82,θ Τ33 = θ 83 ; Θ IS = Θ SMax,θ n =Ο 84, Ο 12 — Ο 85, Ο 13 — ^ 86 ; ^ Ml — ^ 87 ^ M2 — ^ 88, ^ M3 — ^ 89 ; ^ ES — _ ^ SMax, ^ El —.9 90,9 R2 — 9 91,9 R3 — ^ 92 ; ^ SS — _ ^ SMax,^ SI — ^ 93,^ S2 — ^ 94,^ S3 — ^ 95^ ;上述角度等式中右側均為某常數值;其中,Θ 81、Θ Θ 83、Θ 84、Θ Θ 86、Θ 87、Θ %、Θ 89、Θ 9Q、Θ 91、Θ 92> Θ 93> θ 94> Θ 95均為[O,180° ]之間的某一定值;Θ SMm是食指在Maj0rH_Min0rH平面的側向移動的最大角度;-θ SMax是無名指和小指在MajorH-MinorH平面的側向移動的最大角度。
4.如權利要求I至3之一所述的一種虛擬手自動手勢選擇方法,其特征在于所述構造某一特征子空間包含的特征的一個空間分割FeaSpaceClass的具體方法為 步驟2. I :獲取該特征子空間所包含的特征的端面數量如果所述特征為長方體,其端面有6個;如果是圓柱體,其端面有2個;如果是圓柱體經縱向剖分,則其端面有3個;如果球體,其端面數為O個;如果是球體的一部分,其端面有I個;如果圓錐體,其端面有I個;如果圓錐體的一部分,其端面有2個; 步驟2. 2 :將步驟2. I得到的所述特征的端面加以區分,分為開放端面和封閉端面,獲得開放端面的數量;所述開放端面是指該特征端面也是整個零件的邊界表面;所述封閉端面是指該特征端面與該零件的另一個特征的端面共面,即是另一個特征端面的一部分而非零件的邊界表面;每個特征的開放端面的數量用Num_OpenFC表示; 步驟2. 3 :依次對每個開放端面做如下操作將穿過開放端面的軸線與該開放端面的交點作為起點,用符號Of表示,沿軸線向零件內部方向取σ長度,做一與所述開放端面平行的截面,將該截面與所述開放端面之間的部分作為特征端面子區域Cpl < j ( Num_OpenFC, Num_0penFC=n-l, σ 是一人為設定值,0〈σ ^ 50mm ; 步驟2. 4 :將剩余部分作為特征中心子區域Cn ;經過上述步驟的操作,即完成對該特征子空間所包含的特征的一個空間分割FeaSpaceC lass 的構造。
全文摘要
本發明涉及一種虛擬手自動手勢選擇方法,屬于計算機應用領域。本發明包括(1)為虛擬手設計一套常用的基本手勢;(2)設計虛擬手的手勢選擇方法,具體為①用零件特征自身的端面作為分割平面,構造零件的二叉空間分割樹BSPTree;根據BSPTree將零件及零件外圍空間分割成若干特征子空間。②針對步驟①得到的每個特征子空間,構造該特征子空間所包含的特征的一個空間分割FeaSpaceClass。③初步確定虛擬手的當前待抓握的零件特征。④設計一組用于判斷虛擬手的抓握位置的指標,并根據該組指標的具體取值綜合判斷虛擬手的抓握位置。⑤根據選取規則選擇一個手勢。本發明方法的優點是降低了人工操作的負荷和計算復雜度,極大地提高了工作效率,可以做到實時人機交互。
文檔編號G06F3/01GK102929393SQ20121045061
公開日2013年2月13日 申請日期2012年11月12日 優先權日2012年10月11日
發明者程成 申請人:北京理工大學