李 嘉, 侯 文, 夏文文, 楊艷芳, 陳定方
(1. 海軍潛艇學(xué)院動(dòng)力操縱系,山東 青島 266042;2.武漢理工大學(xué)智能制造與控制研究所,湖北 武漢 430063)
通過(guò)分析近幾年虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,可明確得出人們對(duì)于虛擬現(xiàn)實(shí)的要求已經(jīng)不僅僅是停留在視覺(jué)上,人們更希望可以有更好的“沉浸感”,因此對(duì)于聽(tīng)覺(jué)、觸覺(jué)等的要求就不斷增多?;诹Ψ答伒奶摂M拆卸系統(tǒng)的實(shí)現(xiàn)主要是將虛擬現(xiàn)實(shí)與力反饋器相結(jié)合,實(shí)現(xiàn)更好的人機(jī)交互。人們可以通過(guò)更多的感官來(lái)更好地實(shí)現(xiàn)與虛擬世界的交流。
自20世紀(jì)90年代以來(lái),力/觸覺(jué)反饋的研究蓬勃發(fā)展,目前已經(jīng)取得了一定的研究成果[1]。國(guó)內(nèi)外絕大多數(shù)力反饋研究是基于Phantom(一種具有6自由度輸入,可產(chǎn)生3自由度力反饋的設(shè)備),研究主要針對(duì)剛體或者柔體的力/觸覺(jué)反饋,但該力反饋設(shè)備價(jià)格昂貴,難于商用和推廣。國(guó)內(nèi)江南大學(xué)的張秋菊、童明等人自行研制了基于電磁原理的二維力交互裝置——力感鼠標(biāo),并以此為硬件基礎(chǔ),進(jìn)行了簡(jiǎn)單力覺(jué)交互實(shí)驗(yàn),但力感鼠標(biāo)的性能有待進(jìn)一步完善,不能形成量產(chǎn),無(wú)法應(yīng)用于成熟的虛擬拆裝系統(tǒng)。
基于力反饋的虛擬拆卸系統(tǒng),為了實(shí)現(xiàn)更好的沉浸感和人機(jī)交互,在系統(tǒng)實(shí)現(xiàn)過(guò)程中要解決碰撞檢測(cè)問(wèn)題。碰撞問(wèn)題牽涉到碰撞檢測(cè)和碰撞響應(yīng)兩部分內(nèi)容。碰撞響應(yīng)問(wèn)題屬于力學(xué)的研究領(lǐng)域,碰撞問(wèn)題的具體應(yīng)用很廣泛[2]。例如,虛擬環(huán)境應(yīng)用中的飛行員和宇航員的培養(yǎng)與訓(xùn)練、機(jī)器人的路徑規(guī)劃和學(xué)習(xí)、交互式動(dòng)畫(huà)系統(tǒng)、人體軀干的配合等。碰撞檢測(cè)問(wèn)題按運(yùn)動(dòng)物體所處的空間可分為二維平面碰撞檢測(cè)和三維空間碰撞檢測(cè)。由于平面物體的構(gòu)造都可用多邊形來(lái)表示,故其檢測(cè)算法相對(duì)要簡(jiǎn)單一些;而三維物體的構(gòu)造比較復(fù)雜,所以,其碰撞檢測(cè)算法也比較困難。
本系統(tǒng)利用 PHANTOM Omni力反饋裝置(如圖 1),結(jié)合 VC++與 OSG(open scene graph),實(shí)現(xiàn)了虛擬物體的拾取和交互式移動(dòng),針對(duì)典型機(jī)械裝備,開(kāi)發(fā)了基于力反饋的交互式虛擬拆卸系統(tǒng)。該系統(tǒng)目的是通過(guò)利用力反饋器設(shè)備實(shí)現(xiàn)對(duì)機(jī)械設(shè)備的虛擬拆卸,并完成維修和保養(yǎng)等基本操作。
圖1 PHANTOM Omni力反饋器
為了虛擬拆卸系統(tǒng)能實(shí)現(xiàn)應(yīng)有的功能,對(duì)于系統(tǒng)總體框架和各部分小系統(tǒng)的集成研究都是至關(guān)重要的[3]。
如圖2所示,基于力反饋的虛擬拆卸仿真系統(tǒng)主要由兩大部分組成:計(jì)算機(jī)生成的虛擬環(huán)境和力反饋設(shè)備。該系統(tǒng)是一個(gè)雙向閉環(huán)系統(tǒng),首先用戶通過(guò)操作力反饋器末端的手臂完成 6自由度的輸入,接下來(lái)由空間匹配模塊來(lái)完成位姿的轉(zhuǎn)換,位姿是不斷發(fā)生變化的,空間匹配將其作為計(jì)算機(jī)虛擬環(huán)境的輸入。力覺(jué)/觸覺(jué)渲染模塊在整個(gè)力反饋過(guò)程中發(fā)揮了很重要的作用,首先要根據(jù)虛擬環(huán)境與代理節(jié)點(diǎn)以及虛擬信息的交互狀態(tài)快速的進(jìn)行反饋力的計(jì)算,完成反饋力的計(jì)算之后要及時(shí)的將反饋力的結(jié)果發(fā)送給力反饋器設(shè)備,力反饋器設(shè)備主要任務(wù)就是根據(jù)所要輸出的反饋力的大小和方向來(lái)驅(qū)動(dòng)電機(jī)進(jìn)行轉(zhuǎn)動(dòng),目的就是把要輸出的反饋力轉(zhuǎn)化為機(jī)械能,這樣用戶才能感受到反饋力的大小。
圖2 力反饋應(yīng)用系統(tǒng)結(jié)構(gòu)圖
如上述所知,要實(shí)現(xiàn)的關(guān)鍵技術(shù)就是空間匹配模塊和力覺(jué)/觸覺(jué)渲染模塊。這兩個(gè)模塊分別是需要借助空間匹配算法和反饋力計(jì)算算法來(lái)實(shí)現(xiàn)的。
虛擬維修訓(xùn)練系統(tǒng)中,對(duì)于虛擬實(shí)體的拾取、操作與控制,依據(jù)交互設(shè)備的不同有兩種類(lèi)型交互方法[4]:基于鼠標(biāo)和鍵盤(pán)的交互方法(對(duì)應(yīng)非沉浸式虛擬維修);基于力反饋器、空間球、立體眼鏡、空間定位裝置和數(shù)據(jù)手套,采用直接操縱技術(shù)的交互方法(對(duì)沉浸式虛擬維修)。本系統(tǒng)對(duì)這兩種交互方法都進(jìn)行了探索和實(shí)現(xiàn)。
鼠標(biāo)和鍵盤(pán)交互方法的實(shí)現(xiàn)在本系統(tǒng)中是利用了兩種方法實(shí)現(xiàn)的[5]:其一,利用 3D圖形開(kāi)發(fā)庫(kù)OSG中Dragger類(lèi)實(shí)現(xiàn);其二,結(jié)合了圖形用戶接口CEGUI和3D圖形開(kāi)發(fā)庫(kù)OSG進(jìn)行了系統(tǒng)實(shí)現(xiàn)。
第一種方法,利用OSG中的Dragger類(lèi)進(jìn)行拖曳拆卸,拖曳技術(shù)可以在X、Y、Z軸3個(gè)方向?qū)α慵M(jìn)行平移操作。將拖曳器與零件節(jié)點(diǎn)共同添加到父節(jié)點(diǎn)中,即可實(shí)現(xiàn)對(duì)該零件的拖曳。該技術(shù)使操作人員手動(dòng)模擬拆卸各個(gè)零件,使操作人員對(duì)拆卸過(guò)程和順序有更清楚地練習(xí)和熟知,實(shí)現(xiàn)的效果如圖3所示。
圖3 利用拖拽技術(shù)實(shí)現(xiàn)拆卸圖
第二種方法是將圖形用戶接口CEGUI和3D圖形開(kāi)發(fā)庫(kù) OSG相結(jié)合進(jìn)行實(shí)現(xiàn),用戶可直接通過(guò)選取某一零件,零件的名稱(chēng)會(huì)在圖形界面上高亮顯示。用戶也可以按順序選擇操作的零件,選中后,與該零件匹配的拖曳器會(huì)顯現(xiàn)供用戶操作。其圖形界面如圖4所示。
圖4 結(jié)合CEGUI和OSG的虛擬拆卸圖
在本系統(tǒng)中,研究基于力反饋器的交互方法是基于osgHaptics中HapticsDevice類(lèi)的拾取法。力反饋虛擬拆卸流程如圖5所示。
圖5 虛擬拆卸流程圖
基于力反饋裝置的虛擬拆卸系統(tǒng)的實(shí)現(xiàn)的關(guān)鍵技術(shù)主要包括力反饋器與模型的關(guān)聯(lián)技術(shù)、利用力反饋器實(shí)現(xiàn)模型的拾取及碰撞檢測(cè)技術(shù)等[6]。
在設(shè)備初始化完成之后,需要為力反饋器在三維虛擬場(chǎng)景中找到一個(gè)“代理”,將力反饋器的運(yùn)動(dòng)狀態(tài)實(shí)時(shí)地反應(yīng)到圖形渲染中。
這里的關(guān)聯(lián)僅僅是將力反饋器與其在三維場(chǎng)景中的“代理”發(fā)生聯(lián)系。真正有意義的部分在于如何通過(guò)力反饋器來(lái)控制其“代理”。力反饋器與proxy_sphere節(jié)點(diǎn)進(jìn)行關(guān)聯(lián),proxy_shpere又是矩陣位移節(jié)點(diǎn) proxy_transform節(jié)點(diǎn)的子節(jié)點(diǎn),也是該分支上的葉子節(jié)點(diǎn)。其層次關(guān)系如圖6所示。
圖6 “代理”節(jié)點(diǎn)分支層次圖
從圖6可以看出,力反饋器的最終的“代理”節(jié)點(diǎn)是proxy_sphere節(jié)點(diǎn),力反饋器的運(yùn)動(dòng)能在該節(jié)點(diǎn)上實(shí)時(shí)地顯示出來(lái)。將力反饋器的運(yùn)動(dòng)軌跡在三維場(chǎng)景中能實(shí)時(shí)地反應(yīng)是利用的“代理”節(jié)點(diǎn)的父節(jié)點(diǎn),即proxy_trans節(jié)點(diǎn)。
osgHaptics是一款由 C++編寫(xiě)的,基于Windows平臺(tái)的工具包,由瑞典Umea University VRLab實(shí)驗(yàn)室開(kāi)發(fā)[7]。osgHaptics將力覺(jué)渲染融入OSG渲染庫(kù)。它采用SensAble公司的OpenHaptics設(shè)備。同時(shí),它還支持多觸覺(jué)設(shè)備。
用Visual Studio 2005打開(kāi)osgHaptics.sln文件,為 osgHaptics和 osgSensor兩個(gè)項(xiàng)目配置OpenHaptics工具包中的include、lib兩個(gè)文件夾以及相應(yīng)的 DLL文件,還需在本地計(jì)算機(jī)安裝PHANTOM 的驅(qū)動(dòng),整個(gè)環(huán)境的配置與 osgAL的編譯過(guò)程類(lèi)似。編譯成功后會(huì)生成osgHaptics.dll、osgHaptics.lib、osgSensor.dll、osgSensor.lib 4個(gè)鏈接庫(kù)。利用這4個(gè)庫(kù)以及工具包中的文件即可結(jié)合PHANTOM Omni力反饋器進(jìn)行虛擬拆卸系統(tǒng)的開(kāi)發(fā)。
力反饋器控制在虛擬場(chǎng)景中的“代理結(jié)點(diǎn)”,圖 7中黃色區(qū)域中的結(jié)點(diǎn)。該結(jié)點(diǎn)是通過(guò)讀取pen.ac這個(gè)模型實(shí)現(xiàn)的。在操作力反饋器時(shí),虛擬場(chǎng)景中的“代理結(jié)點(diǎn)”也會(huì)隨之發(fā)生位移、旋轉(zhuǎn)等。在“代理結(jié)點(diǎn)”接觸到場(chǎng)景中的模型中的零件時(shí),零件的顏色被標(biāo)記為紅色。當(dāng)“代理結(jié)點(diǎn)”與零件模型有重疊部分,在移動(dòng)力反饋器時(shí)會(huì)明顯地感覺(jué)到一定的阻力;當(dāng)“代理結(jié)點(diǎn)”與零件模型剛好接觸時(shí),此時(shí),操作員可感覺(jué)到一股巨大的阻力,相比“代理結(jié)點(diǎn)”與零件模型有重疊時(shí)的情景要大的多。在“代理結(jié)點(diǎn)”與方塊模型發(fā)生碰撞后,按下力反饋器手臂上的白色按鈕,零件模型會(huì)依附在“代理結(jié)點(diǎn)”上,操作人員操作力反饋器可將零件模型放置到合適的位置。
該類(lèi)繼承于 osgSensor::Sensor。從該類(lèi)的頭文件描述可以獲知,該類(lèi)實(shí)現(xiàn)了讀取設(shè)備數(shù)據(jù)、關(guān)閉設(shè)備、返回力反饋器的位置與角度、獲取設(shè)備的線性速度、力度等數(shù)據(jù)。其內(nèi)部還包含兩個(gè)內(nèi)部類(lèi)—RenderForce和 WorkspaceStruct。HapticsDevice類(lèi)的層次結(jié)構(gòu)簡(jiǎn)圖如圖7所示。具體的實(shí)現(xiàn)代碼如下。
圖7 HapticsDevice類(lèi)的層次結(jié)構(gòu)圖
在力反饋虛擬拆卸系統(tǒng)中,為了實(shí)現(xiàn)更好的沉浸感和達(dá)到更好的交互效果,在拆卸過(guò)程中加入了碰撞檢測(cè)技術(shù)。
ODE(open dynamics engine)有一個(gè)內(nèi)嵌的碰撞檢測(cè)系統(tǒng)[8]。ODE的碰撞檢測(cè)系統(tǒng)通過(guò)“空間”的概念可以快速的確定潛在相交的物體。ODE基本對(duì)象[9]:
仿真世界:存儲(chǔ)物體對(duì)象的容器。
剛體:仿真系統(tǒng)中主要操作的對(duì)象。具有物理屬性。
幾何體:碰撞系統(tǒng)中的基本對(duì)象。只具有幾何屬性。
碰撞空間:用來(lái)簡(jiǎn)化和加快碰撞檢測(cè)的一個(gè)對(duì)象。
本系統(tǒng)利用ODE與OSG結(jié)合實(shí)現(xiàn)的碰撞檢測(cè)。圖8所示為ODE與OSG相結(jié)合的模擬流程,主要的結(jié)合過(guò)程如下:
創(chuàng)建一個(gè)ODE動(dòng)力學(xué)世界;
(1)創(chuàng)建動(dòng)力學(xué)世界中的各種剛體;
(2)設(shè)定各個(gè)剛體的狀態(tài)(位姿、質(zhì)量、密度等)信息;
(3)創(chuàng)建動(dòng)力學(xué)世界中的關(guān)節(jié);
(4)聯(lián)結(jié)關(guān)節(jié)到剛體上;
(5)設(shè)定所有關(guān)節(jié)的參數(shù);
(6)創(chuàng)建碰撞空間和碰撞幾何對(duì)象;
(7)創(chuàng)建關(guān)節(jié)組并納入所有的接觸關(guān)節(jié);
(8)循環(huán):①根據(jù)具體情況,給剛體施加力;②根據(jù)具體情況,調(diào)整關(guān)節(jié)參數(shù);③調(diào)用碰撞檢測(cè)函數(shù);④為每個(gè)碰撞點(diǎn)創(chuàng)建一個(gè)接觸關(guān)節(jié),并將其加入接觸關(guān)節(jié)組中;⑤開(kāi)始仿真步(更新場(chǎng)景);⑥移除接觸關(guān)節(jié)組里的所有關(guān)節(jié);
(9)銷(xiāo)毀動(dòng)力學(xué)世界和碰撞世界。
圖8 ODE與OSG結(jié)合的碰撞檢測(cè)流程
建立ODE中對(duì)應(yīng)幾何體:將場(chǎng)景模型和設(shè)備模型轉(zhuǎn)化為OSG可識(shí)別模型,并將其三角化。構(gòu)建ODE幾何體對(duì)象:將ODE的模擬結(jié)果傳遞給OSG,以實(shí)現(xiàn)場(chǎng)景的數(shù)據(jù)交互與實(shí)時(shí)更新。
在項(xiàng)目研發(fā)的初期階段,結(jié)合OSG三維圖形引擎與PHANTOM Omni力反饋器,實(shí)現(xiàn)通過(guò)力反饋拾取場(chǎng)景中的物體。項(xiàng)目效果如圖9所示。
力反饋技術(shù)是虛擬拆卸系統(tǒng)中實(shí)現(xiàn)更好的人機(jī)交互訓(xùn)練的一個(gè)核心技術(shù)。本文簡(jiǎn)要敘述了PHANTOM力反饋器的使用方式及相關(guān)技術(shù),并對(duì)osgHaptics這一開(kāi)源項(xiàng)目進(jìn)行敘述,提出了基于osgHaptics中HapticsDevice類(lèi)的拾取方法,基于力反饋器與虛擬實(shí)體運(yùn)動(dòng)的關(guān)聯(lián)的拆卸方法,開(kāi)發(fā)出一套實(shí)用的基于力反饋的虛擬拆卸系統(tǒng),有效的提供了一種擁有更好“沉浸感”的虛擬拆卸境,使裝配維修人員更好的完成裝配、拆卸、維修等工作,同時(shí)還有效的推進(jìn)機(jī)械模擬訓(xùn)練的現(xiàn)代化發(fā)展[10]。
圖9 基于力反饋器的虛擬拆卸系統(tǒng)
[1] 馬文濤. 基于力反饋裝置的虛擬裝配人機(jī)交互研究[D].大連: 大連海事大學(xué),2011.
[2] 鄭太雄,何玉林. 基于觸覺(jué)反饋和運(yùn)動(dòng)約束的虛擬裝配操作[J]. 計(jì)算機(jī)工程與應(yīng)用,2004,40(5): 84-86,90.
[3] 陳定方,羅亞波. 虛擬設(shè)計(jì)[M]. 2版. 北京: 機(jī)械工業(yè)出版社,2007: 28-40.
[4] 閆鋒欣,侯增選,張定華,祁小苑,寧志鵬. 支持觸覺(jué)力反饋的虛擬油泥造型系統(tǒng)[J]. 中國(guó)機(jī)械工程,2009,20(19): 2372-2377.
[5] 肖 鵬,劉更代,徐明亮. OpenSceneGraph三維渲染引擎編程指南[M]. 北京: 清華大學(xué)出版社,2010,3:197-219,320.
[6] 夏平均,姚英學(xué). 虛擬裝配的研究綜述與分析(I)[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2008,40(5): 740-744.
[7] 范玉青. 波音 787飛機(jī)總裝配線及其特點(diǎn)[J]. 航空制造技術(shù),2011,23(Z2): 38-42.
[8] 侯 鵬,張麗新,楊碧琦,楊國(guó)云. 某型號(hào)衛(wèi)星虛擬裝配技術(shù)研究及應(yīng)用[J]. 航空制造技術(shù),2011,(22):70-73,93.
[9] 彭 濤,李世其,王峻峰,徐 遲. 基于增強(qiáng)人機(jī)交互技術(shù)的虛擬裝配[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2009,21(3): 354-361,368.
[10] 李勛祥,饒 成,陳定方. 基于 Virtools的視景系統(tǒng)優(yōu)化技術(shù)研究[J]. 武漢理工大學(xué)學(xué)報(bào)(交通科學(xué)與工程版),2008,32(1): 100-103.