一種應(yīng)用于遙操作三維視景仿真的三角形相交檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于虛擬現(xiàn)實(shí)及空間遙操作的三維仿真顯示領(lǐng)域,涉及一種圖形碰撞檢測(cè) 方法,具體涉及一種應(yīng)用于遙操作三維視景仿真的三角形相交檢測(cè)方法。
【背景技術(shù)】
[0002] 遙操作在空間攻防對(duì)抗領(lǐng)域發(fā)揮著重要作用,使用空間機(jī)器人來(lái)完成各類空間任 務(wù)是空間發(fā)展趨勢(shì),規(guī)避障礙等技術(shù)具有極重要的應(yīng)用前景。然而由于時(shí)延的存在,滯后的 視覺(jué)、力覺(jué)等反饋信息無(wú)法為操作者提供實(shí)時(shí)的臨場(chǎng)感,容易誤導(dǎo)操作者的操作行為,進(jìn)而 影響遙操作任務(wù)的安全執(zhí)行。
[0003] 遙操作技術(shù)最重要的問(wèn)題是克服時(shí)延,提升操作者的臨場(chǎng)感,因此采用預(yù)測(cè)仿真 技術(shù)將操作對(duì)象的預(yù)測(cè)模型通過(guò)三維圖形顯示出來(lái),操作者與預(yù)測(cè)模型交互。由于操作者 與虛擬空間機(jī)器人模型之間沒(méi)有延時(shí),因此虛擬空間機(jī)器人模型可以立即響應(yīng)操作者的輸 入,補(bǔ)償了時(shí)延對(duì)操作者的影響。
[0004] 然而,要保證操作者與預(yù)測(cè)模型交互的實(shí)時(shí)性,取決于模型仿真計(jì)算的速度,而圖 形預(yù)測(cè)最耗時(shí)的部分在于碰撞檢測(cè),當(dāng)模型需要進(jìn)行精細(xì)碰撞檢測(cè)時(shí),碰撞檢測(cè)耗時(shí)更長(zhǎng), 而精細(xì)碰撞檢測(cè)要求對(duì)模型的每對(duì)三角形面片進(jìn)行相交測(cè)試。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于解決上述現(xiàn)有技術(shù)中的問(wèn)題,提供一種應(yīng)用于遙操作三維視景 仿真的三角形相交檢測(cè)方法。
[0006] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):
[0007] -種應(yīng)用于遙操作三維視景仿真的三角形相交檢測(cè)方法,設(shè)兩個(gè)三維空間的任 意三角形AP 1P2PjP AQ A2Q3,其頂點(diǎn)Pin P2、匕和Q i、Q2、93均為逆時(shí)針順序,其中,三角形 A P1P2P3為包圍手抓模型的三角形面片,Δ Q AQ3為包圍手抓模型操作對(duì)象的預(yù)測(cè)模型的三 角形面片,具體檢測(cè)方法包括以下步驟:
[0008] 步驟一:建立計(jì)算坐標(biāo)系
[0009] 以AP1P2P3的頂點(diǎn)P 1為原點(diǎn),p ^p2分別為兩個(gè)基向量,建立xy平面,其中Pl =P2-P1, P2= P 3-P1;p i、P2及其法向量p iXp;;構(gòu)成坐標(biāo)系X VV的三個(gè)基向量,計(jì)算[p i P2 P1Xp2]的逆矩陣為[P1 P2 P1Xp2] 1,遍歷預(yù)測(cè)模型的三角形面片;
[0010] 步驟二:頂點(diǎn)坐標(biāo)變換
[0011] 設(shè)AQ1Q2Q3的頂點(diǎn)Q在坐標(biāo)系X YV下的坐標(biāo)為Q Λ則:
[0013] 其中1彡i彡3代表三個(gè)頂點(diǎn),Qlx、Qly、Qlz表示Q i的三個(gè)分量,表 示Qi*的三個(gè)分量;
[0014] 步驟三:判斷A Q1Q2Q3與Δ p AP3所在平面的位置關(guān)系
[0015] 判斷Q1*的z *分量烏/,其中I < i彡3 :
[0016] 老Q三個(gè)值均為0,則Δ Q1Q2Q3與Δ p iP2P3共面,返回兩三角形共面標(biāo)識(shí),繼續(xù)遍 歷目標(biāo)模型的三角形面片,執(zhí)行步驟二;
[0017] 若心三個(gè)值均同號(hào),則Δ Q1Q2QA Δ P J2P3不相交,返回兩三角形不相交標(biāo)識(shí),繼 續(xù)遍歷目標(biāo)模型的三角形面片,執(zhí)行步驟二;
[0018] 若僅有一個(gè)值為0而其余值同號(hào),則Λ Q1Q2Q3與Δ P ^P3不相交,返回兩三角形 不相交標(biāo)識(shí),繼續(xù)遍歷目標(biāo)模型的三角形面片,執(zhí)行步驟二;
[0019] 若:??有兩個(gè)值為0,則Λ Q1Q2Q3與Δ P ^P3不相交,返回兩三角形不相交標(biāo)識(shí),繼 續(xù)遍歷目標(biāo)模型的三角形面片,執(zhí)行步驟二;
[0020] 若氣*存在兩個(gè)值異號(hào),則AQ1Q2Q3與Δ P ^P3所在平面相交,執(zhí)行步驟四;
[0021] 步驟四:計(jì)算Λ Q1Q2Q3與AP1P2P^在平面的交點(diǎn)
[0022] 如果的符號(hào)不同于么·和良>,令原來(lái)的Q/為Q Λ Q/為Q /,為Q 3%
[0023] 如果fty的符號(hào)不同于%和^?,令原來(lái)的Q/為Q Λ 為Q /,Q/為Q 3%
[0024] 設(shè)Λ Q1Q2Q3兩條邊與Δ P LP3的交點(diǎn)為I;、筆,則
[0028] 步驟五:交線段?與AP1P2P3的相交判定
[0029] 判斷筆、筆的坐標(biāo)關(guān)系:
[0037] 若均不符合以上七項(xiàng)條件,則Λ ?^#3與Δ Q A2Q3不相交,返回兩三角形不相交標(biāo) 識(shí),繼續(xù)遍歷目標(biāo)模型的三角形面片,執(zhí)行步驟二。
[0038] 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
[0039] 本發(fā)明針對(duì)三角形相交碰撞檢測(cè)的一般情況進(jìn)行判定,從計(jì)算三維空間中任意兩 個(gè)三角形是否相交的原理出發(fā),本發(fā)明先計(jì)算兩個(gè)三角形所在平面的交線,再判斷交線與 其中一個(gè)三角形是否相交來(lái)簡(jiǎn)化原有算法較復(fù)雜的判斷準(zhǔn)則。相比傳統(tǒng)算法,本發(fā)明不存 在交換兩三角形進(jìn)行重新計(jì)算的步驟,從而能夠通過(guò)重用同一三角形的計(jì)算結(jié)果節(jié)省大量 計(jì)算工作,從整體上提高三維圖形模型精細(xì)碰撞檢測(cè)的速度。本發(fā)明針對(duì)奇異情況,如碰撞 和三角形接觸但不穿透等特殊情況也具備較好的解決方案,是三維模型預(yù)測(cè)仿真中相對(duì)成 熟的算法。
【附圖說(shuō)明】
[0040] 圖1為本發(fā)明建立計(jì)算坐標(biāo)系示意圖;
[0041] 圖2為本發(fā)明的碰撞檢測(cè)流程圖。
【具體實(shí)施方式】
[0042] 下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說(shuō)明。
[0043] 參見圖1和圖2,本實(shí)施例描述了在一個(gè)對(duì)機(jī)械手遙操作場(chǎng)景中,采用本發(fā)明三角 形相交檢測(cè)算法,遍歷手爪模型的三角形面片,執(zhí)行以下步驟。
[0044] 步驟1 :建立計(jì)算坐標(biāo)系
[0045] 記三角形面片為Λ P1P2P3,頂點(diǎn)PinP2nP 3為逆時(shí)針順序。令p 1= P2-Ppp2= P3-P1, 解得[Pi P2 PiXp2] 1O
[0046] 遍歷目標(biāo)模型的三角形面片,執(zhí)行以下步驟。
[0047] 步驟2 :頂點(diǎn)坐標(biāo)變換
[0048] 記三角形面片為Λ Q1Q2Q3,頂點(diǎn)4、Q2、〇3為逆時(shí)針順序。
,其中I < i < 3代表三個(gè)頂點(diǎn)。
[0050] 步驟3 :判斷Δ Q1Q2Q3與Δ P LP3所在平面的位置關(guān)系
[0051] 判斷Q1*的z *分量(之,其中I < i彡3 :
[0052] (1)若烏/三個(gè)值均為0,返回兩三角形共面標(biāo)識(shí),繼續(xù)遍歷目標(biāo)模型的三角形面 片,執(zhí)彳丁步驟2 ;
[0053] (2)若錢/三個(gè)值均同號(hào),返回兩三角形不相交標(biāo)識(shí),繼續(xù)遍歷目標(biāo)模型的三角形 面片,執(zhí)行步驟2;
[0054] (3)若(?,僅有一個(gè)值為0而其余值同號(hào),返回兩三角形不相交標(biāo)識(shí),繼續(xù)遍歷目 標(biāo)模型的三角形面片,執(zhí)行步驟2 ;
[0055] (4)若氧*有兩個(gè)值為0,返回兩三角形不相交標(biāo)識(shí),繼續(xù)遍歷目標(biāo)模型的三角形面 片,執(zhí)彳丁步驟2 ;
[0056] (5)若%存在兩個(gè)值異號(hào),進(jìn)行步驟4 ;
[0057] 步驟4 :計(jì)算Δ Q1Q2Q3與Δ P LP3所在平面的交點(diǎn)
[0058] (1)如果U勺符號(hào)不同于β1ζ:.和令原來(lái)的
[0059] (2)如果的符號(hào)不同于1和込,令原來(lái)的
[0063] 步驟5 :交線段?與Δ P1P2P3的相交判定
[0071] (8)若均不符合以上七項(xiàng)條件,則AP1P2Pg Δ Q AQ3不相交,返回兩三角形不相 交標(biāo)識(shí),繼續(xù)遍歷目標(biāo)模型的三角形面片,執(zhí)行步驟2。
[0072] 以上內(nèi)容僅為說(shuō)明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按 照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明權(quán)利要求書 的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種應(yīng)用于遙操作三維視景仿真的三角形相交檢測(cè)方法,其特征在于,設(shè)兩個(gè)三維 空間的任意三角形A P1P2PjP Δ Q A2Q3,其頂點(diǎn)PpP2UP Q i、Q2、Q3均為逆時(shí)針順序,其中, 三角形AP1P2P3為包圍手抓模型的三角形面片,AQ1Q 2Q3為包圍手抓模型操作對(duì)象的預(yù)測(cè)模 型的三角形面片,具體檢測(cè)方法包括以下步驟: 步驟一:建立計(jì)算坐標(biāo)系 以Δ P1P2P3的頂點(diǎn)P為原點(diǎn),p占 p2分別為兩個(gè)基向量,建立X Vi平面,其中p i = P^P1, P2=P3-PnP^P2及其法向量P1Xp 2構(gòu)成坐標(biāo)系xVV的三個(gè)基向量,計(jì)算[Pi p2 P1Xp2] 的逆矩陣為[P1 P2 P1Xp2] \遍歷預(yù)測(cè)模型的三角形面片; 步驟二:頂點(diǎn)坐標(biāo)變換 設(shè)A Q1Q2Q3的頂點(diǎn)Q在坐標(biāo)系X W下的坐標(biāo)為Q Λ則:其中l(wèi)<i<3代表三個(gè)頂點(diǎn),Qlx、Qly、Qlz表示Q 1的三個(gè)分量,%、各、備表示Q1* 的三個(gè)分量; 步驟三:判斷Λ Q1Q2Q3與Λ P1P2P3所在平面的位置關(guān)系 判斷Q廣的ζ $分量錢/,其中I < i彡3 : 若匕三個(gè)值均為0,則AQ1Q2Q3與AP1P 2P3共面,返回兩三角形共面標(biāo)識(shí),繼續(xù)遍歷目 標(biāo)模型的三角形面片,執(zhí)行步驟二; 若C?,._三個(gè)值均同號(hào),則AQ1Q2Qg AP1P2P3不相交,返回兩三角形不相交標(biāo)識(shí),繼續(xù)遍 歷目標(biāo)模型的三角形面片,執(zhí)行步驟二; 若,?/僅有一個(gè)值為0而其余值同號(hào),則AQ1Q2Q3與AP1P 2P3不相交,返回兩三角形不相 交標(biāo)識(shí),繼續(xù)遍歷目標(biāo)模型的三角形面片,執(zhí)行步驟二; 若(?,_有兩個(gè)值為0,則AQ1Q2Q3與AP1P 2P3不相交,返回兩三角形不相交標(biāo)識(shí),繼續(xù)遍 歷目標(biāo)模型的三角形面片,執(zhí)行步驟二; 若爲(wèi)*存在兩個(gè)值異號(hào),則A 0見03與A P1P2P3所在平面相交,執(zhí)行步驟四; 步驟四:計(jì)算AQ1Q2Qg AP1P2P^在平面的交點(diǎn) 如果烏/的符號(hào)不同于K和良_·,令原來(lái)的Q2*為Q Λ Q3*為Q Λ Q;% Q 3*; 如果δ32*的符號(hào)不同于和場(chǎng)/,令原來(lái)的Q/為Q Λ 為Q /,Q/為Q 3% 設(shè)A Q1Q2Q3兩條邊與Δ P AP3的交點(diǎn)為/:、J2%則CN 105160701 A _權(quán)利要求書_ _2/2 頁(yè)步驟五:交線段?與AP1P2P3的相交判定 判斷I:、<的坐標(biāo)關(guān)系: 若則 AP1P2P3 與A Q1Q2Q3相交,結(jié)束相交檢測(cè); 若貝丨J AP1P2P3與 AQ1Q2Q3 相交,結(jié)束相交檢測(cè); 若,則A卩少仏與 △ Q1Q2Q3相交,結(jié)束相交檢測(cè); 若則AP1P2Pg AQ A2Q3相交,結(jié)束相交檢測(cè);△ Q1Q2Q3相交,結(jié)束相交檢測(cè); 若〔,則AP1P2Pg AQ A2Q3相交,結(jié)束相交檢測(cè); 若均不符合以上七項(xiàng)條件,則AP1P2Pr^ AQ AQ3不相交,返回兩三角形不相交標(biāo)識(shí), 繼續(xù)遍歷目標(biāo)模型的三角形面片,執(zhí)行步驟二。
【專利摘要】本發(fā)明公開了一種應(yīng)用于遙操作三維視景仿真的三角形相交檢測(cè)方法,針對(duì)三維圖形模型精細(xì)碰撞檢測(cè),提出了一種新型三角形相交測(cè)試算法。與傳統(tǒng)三角形相交測(cè)試算法相比,本發(fā)明不存在交換兩三角形進(jìn)行重新計(jì)算的步驟,從而能夠通過(guò)重用同一三角形的計(jì)算結(jié)果節(jié)省大量計(jì)算工作,從整體上提高三維圖形模型精細(xì)碰撞檢測(cè)的速度。
【IPC分類】G06T17/00
【公開號(hào)】CN105160701
【申請(qǐng)?zhí)枴緾N201510496876
【發(fā)明人】黃攀峰, 潘吉祥, 劉正雄, 孟中杰, 常海濤, 臺(tái)健生
【申請(qǐng)人】西北工業(yè)大學(xué)
【公開日】2015年12月16日
【申請(qǐng)日】2015年8月13日