袁 偉,郎 璞,張孫嘉,趙 潔,姚壽文
(1.中國人民解放軍駐318廠軍事代表室, 北京 100053;2.內(nèi)蒙古第一機械集團有限公司,內(nèi)蒙古 包頭 014032;3.浙江工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院(軟件學(xué)院), 杭州 310014; 4.北京理工大學(xué), 北京 100081)
沉浸(Immersion)、交互(Interaction)和想象(Imagination)是虛擬環(huán)境的三大特點,即所謂的3I。沉浸性是指虛擬環(huán)境給人提供聲臨其境的感覺。交互性是指參與者與虛擬環(huán)境的溝通。想象性是指虛擬環(huán)境應(yīng)能用于解決工程實際問題,即開發(fā)的虛擬環(huán)境可滿足于某種應(yīng)用需求[1]。其中,交互是實現(xiàn)人在虛擬環(huán)境的沉浸感以及知識探索的重要條件,是虛擬現(xiàn)實為用戶提供體驗、走向應(yīng)用的核心環(huán)節(jié)[2]。交互一般指通過手、身體、聲音、觸覺、味覺等和虛擬環(huán)境的交互,以及虛擬環(huán)境也提供給人聲音、視覺、觸覺等反饋。人與虛擬環(huán)境的交互是通過特定的輸入設(shè)備,如Data Glove數(shù)據(jù)手套、LeapMotion手勢捕捉裝置、Kinect動作捕捉、眼球追蹤裝置等作為輸入,計算機將計算處理過后的數(shù)據(jù)信息以圖片、視頻、聲音等多種渠道反饋給使用者。
Valve公司、Facebook公司和微軟公司分別開發(fā)的HTC Vive系列頭盔顯示器、Oculus rift系列頭盔顯示器和微軟公司的HoloLens集成全息頭環(huán),是目前主流的虛擬現(xiàn)實輸出設(shè)備。HTC Vive和Oculus rift利用雙目立體視覺原理,左右兩個透鏡分別渲染圖片,并通過高精度陀螺儀定位頭部位姿,能夠給佩戴者提供高沉浸感的體驗,而這些輸出設(shè)備的驅(qū)動程序需要使用渲染引擎進行程序開發(fā)及調(diào)試,目前常用的渲染引擎有Unity3D、UnReal4和OSG等。
面向裝配培訓(xùn)與傳統(tǒng)CAD的裝配相比,人性化的人機交互是重點,即在虛擬環(huán)境中,應(yīng)當(dāng)通過直接操作零件和自然語言命令完成裝配操作[3],且應(yīng)包含培訓(xùn)人員與待裝配對象(包括零件拾取、零件信息顯示)的交互以及與裝配培訓(xùn)過程中對應(yīng)的信息輸出兩個方面。人機交互中不僅需要輸入設(shè)備及算法,電腦及虛擬環(huán)境的反饋和信息顯示也是至關(guān)重要的部分,可以基于文字和特征表示的增強信息為用戶提供裝配知識來引導(dǎo)裝配操作[4]。目前,應(yīng)用虛擬裝配技術(shù)進行一些培訓(xùn)方面的研究[5],但缺乏良好的交互性。此外,目前的虛擬培訓(xùn)重點關(guān)注的是培訓(xùn)人員與待裝配對象的交互,即培訓(xùn)人員用手或工具拾取零件進行裝配這種交互,而裝配對象通過碰撞檢測、參數(shù)匹配等手段對能否裝配以及裝配難易對培訓(xùn)者的反饋則相對缺乏,更不用說,電子培訓(xùn)手冊與培訓(xùn)者的交互了。
裝配培訓(xùn)人機交互中除了人與裝配對象交互外,還需要人與電子手冊的交互,即提供基于文字和特征表示的增強信息為用戶提供裝配知識來指導(dǎo)操作者進行裝配操作。在虛擬裝配中,之所以應(yīng)用虛擬環(huán)境是為了追求極高的沉浸感,良好的沉浸感包括人的感官體驗和認知。從認知角度出發(fā),人與環(huán)境若有足夠的交互手段將場景中的信息直觀顯示給用戶,除了提升用戶體驗,還可以增強用戶的培訓(xùn)效果,達到事半功倍的效果。
采用硬件進行數(shù)據(jù)輸入,硬件本身的性能指標(biāo)基本決定了最終所能實現(xiàn)的功能??紤]到實際裝配過程中是通過手和工裝裝配零件,因此應(yīng)該選擇具手勢識別功能的設(shè)備作為硬件輸入,并配合工裝工具的模擬以提高裝配的真實性和增強交互性。目前,應(yīng)用的手勢捕捉裝置有三維數(shù)據(jù)手套[6]和LeapMotion手勢捕捉裝置[7-8]。其中,三維數(shù)據(jù)手套配套設(shè)備復(fù)雜、成本高并且沒有較好的二次開發(fā)接口,LeapMotion手勢捕捉裝置價格便宜,且可與HTC Vive頭顯設(shè)備裝配為一體,并且有支持各類開發(fā)平臺的工具包,也是今年來人機交互的研究重點。本文的交互設(shè)備包含HTC手柄、LeapMotion及定位裝置,輸出設(shè)備為HTC Vive頭顯及配套設(shè)施。由于HTC Vive提供了大量支持Untiy3D的源碼和資源。因此,本文采用了Unity3D作為程序開發(fā)和渲染引擎。圖1為虛擬裝配培訓(xùn)交互平臺數(shù)據(jù)的流向圖,包括人機交互硬件及軟件及各組成的功能。
人手是裝配操作者最重要的交互裝配手段。人手是一個靈活而復(fù)雜的多肢節(jié)系統(tǒng),由手掌、手腕和手指組成。手上的骨頭共有27塊,為8塊腕骨、5塊掌骨和14塊指骨,骨之間由不同的關(guān)節(jié)連接,關(guān)節(jié)具有移動自由度或轉(zhuǎn)動自由度,使之可以做屈伸、收展或旋轉(zhuǎn)運動,如圖2所示。
本文選取LeapMotion作為裝配操作時人手捕捉輸入工具,主要原因是:首先,LeapMotion配備了雙攝像頭,采用立體視覺原理,除了捕捉目標(biāo)外,還可通過實時計算目標(biāo)的視差,實現(xiàn)空間物體的坐標(biāo)定位。其次,在捕捉手的空間圖像數(shù)據(jù)后,LeapMotion對目標(biāo)進行過濾,實時返回操作者雙手各29個關(guān)節(jié)點的空間位置坐標(biāo)(如圖2圓點的位置數(shù)據(jù)),并以齊次四階行列式的位姿矩陣保存,可供使用者的后續(xù)程序開發(fā)。同時在檢測算法上,LeapMotion采用了跟蹤前檢測(Track-Before-Detect:TBD)技術(shù),實現(xiàn)了捕捉到手的圖像后,在手消失在攝像頭之前,LeapMotion都可以準確跟蹤并捕捉手的數(shù)據(jù)。因此,LeapMotion可以滿足真正意義上人手拾取零件,模擬產(chǎn)品的實際裝配過程。
工人在實際裝配中,利用不同的手勢拾取工具或零件,通過人手拾取工具輔助或利用人手完成相應(yīng)的裝配操作。因此,虛擬手抓取虛擬物體是關(guān)鍵,如文獻[9-13]對虛擬手手型及抓取等相關(guān)問題進行了研究。一般而言,操作者在裝配過程中手的變化主要是各個手指的彎曲角度以及骨骼關(guān)節(jié)點的相對位置關(guān)系。例如,操作者做出一個抓取的手勢時,圖3中所有的5個指節(jié)都會發(fā)生彎曲,每一節(jié)指骨的指向都呈現(xiàn)一個特定的角度。手捏取時,除了指骨關(guān)節(jié)有角度彎曲之外,食指和拇指的第一節(jié)之間的空間位置也會近似重合。其他的各類手勢也類似,骨節(jié)的角度和骨節(jié)的位置都會發(fā)生改變。手掌翻轉(zhuǎn)時,手掌平面的法向量也會發(fā)生改變,方向與指節(jié)位置相關(guān)。手勢判斷是裝配培訓(xùn)工人與虛擬環(huán)境交互的關(guān)鍵,但僅憑LeapMotion提供的接口函數(shù)實時返回操作者手部各個關(guān)節(jié)點的空間位置坐標(biāo),計算機是無法判斷當(dāng)前操作者采用的是何種手勢以及手勢是否合理,因此需要研究手勢的判定方法。
根據(jù)以上分析,本文對LeapMotion采集的骨節(jié)數(shù)據(jù)進行處理,獲得手勢的基本判斷數(shù)據(jù):
2) 手指特定骨節(jié)之間的空間距離,
為提高LeapMotion采集數(shù)據(jù)處理的魯棒性以及消除計算誤差,為了保證虛擬環(huán)境中手勢抓取物體的穩(wěn)定性,本文研究了常用的幾類抓握零件手勢,并進行分類,通過虛擬環(huán)境中虛擬手抓握物體的實驗,設(shè)計了相應(yīng)的閾值,建立了判定條件,實現(xiàn)滿足裝配需求的手勢基本功能。
如圖4所示,操作者在進行操作時,LeapMotion實時捕捉到了手的位置數(shù)據(jù),計算三類數(shù)據(jù),根據(jù)實驗設(shè)定好的角度和位置閾值判斷抓握是否合理,且當(dāng)手滿足抓取姿勢且手指(哪個關(guān)節(jié))關(guān)節(jié)點位置與零件位置接近時,零件抓取要求滿足,零件被拾取,此時零件將伴隨手的移動而移動,若手勢不能滿足閾值條件,則零件被釋放,手與零件分離。
同理,對手勢、點選、托舉等進行分類,定義各類手勢所對應(yīng)的手指骨節(jié)的相應(yīng)彎曲角度以及閾值,并與對應(yīng)的響應(yīng)函數(shù)進行匹配,可以實現(xiàn)多種手勢識別及功能。
在虛擬場景中,虛擬手的形態(tài)和實際手的形態(tài)越一致,操作者的沉浸感越好,越能讓操作者置身于裝配操作培訓(xùn)中,越能提升虛擬培訓(xùn)的價值。為了逼真的復(fù)現(xiàn)人手,本文使用骨骼蒙皮模型建立虛擬手手型,并采用骨骼動畫的方式實現(xiàn)手指、手掌和關(guān)節(jié)等手部動作的模擬。
骨骼蒙皮(Skinned Mesh)是一種應(yīng)用于3D模型動畫的技術(shù)。3D模型動畫的基本原理是讓模型中各頂點的位置隨時間變化,主要有Morph動畫,關(guān)節(jié)動畫和骨骼蒙皮動畫。從動畫數(shù)據(jù)的角度來說,三者都采用關(guān)鍵幀技術(shù),即只給出關(guān)鍵幀的數(shù)據(jù),其他幀的數(shù)據(jù)使用插值得到。
骨骼蒙皮動畫可以解決關(guān)節(jié)動畫的裂縫問題,且具有非常好的網(wǎng)格隨動效果。骨骼動畫的基本原理可概括為:在骨骼控制下,通過頂點混合動態(tài)計算蒙皮網(wǎng)格的頂點,而骨骼的運動相對于其父骨骼,并由動畫關(guān)鍵幀數(shù)據(jù)驅(qū)動。骨骼是模型運動時的主要運動變換節(jié)點,骨骼決定了模型整體在世界坐標(biāo)系中的位置和朝向。蒙皮則是一個網(wǎng)格化繪制的物體整體模型。骨骼蒙皮設(shè)計的關(guān)鍵是網(wǎng)格模型中各個關(guān)鍵節(jié)點和各個骨骼綁定的權(quán)重。如圖5所示,紅色曲線表示骨骼以不同的權(quán)重影響著周圍網(wǎng)格模型節(jié)點的位置。當(dāng)骨骼的位置發(fā)生變換時,整個網(wǎng)格模型也會隨之改變外形。
在程序運行時,根據(jù)LeapMotion捕捉到的關(guān)鍵骨骼節(jié)點位置坐標(biāo),以設(shè)計好的權(quán)值對骨骼位置進行實時更新,虛擬環(huán)境中虛擬手外形效果如圖6所示。通過上述方法最終實現(xiàn)在虛擬環(huán)境中虛擬手對操作者手勢的模擬復(fù)現(xiàn)功能。
交互式電子手冊(Interactive Electronic Technical Manual,IETM)綜合應(yīng)用了計算機技術(shù)、專家系統(tǒng)、數(shù)據(jù)庫管理和多媒體信息表示等先進技術(shù),將內(nèi)容豐富的技術(shù)資料有機地組織管理起來,充分利用計算機與人的交互能力,以聲音、圖像、影像、文字等方式生動準確地展現(xiàn)產(chǎn)品的各種技術(shù)信息,為訓(xùn)練、使用和保障活動提供有效的技術(shù)支持。然而,目前人與電子手冊的交互還是以鍵盤為主或觸屏技術(shù)實現(xiàn)交互,培訓(xùn)者缺乏直觀的感受,對結(jié)構(gòu)和原理的理解主要以文字為主,造成學(xué)習(xí)效率不高,操作繁瑣。
許多傳統(tǒng)的虛擬環(huán)境人機交互方式過于單一,信息傳遞方式有限,觸發(fā)條件的激活僅僅依靠硬件按鈕或鼠標(biāo)點擊,場景、物體都只能提供一個畫面展示的效果,因此達不到良好的沉浸感,使得裝配過程體驗不佳。本文從信息顯示和操作輸入兩個角度出發(fā),利用計算機圖形學(xué)相關(guān)知識,進行虛擬環(huán)境內(nèi)界面設(shè)計和操作平臺開發(fā)。
在虛擬環(huán)境中進行裝配時,場景中存在許多零件,許多零件功能近似、尺寸接近,僅靠外形難以進行區(qū)分,即便在實際裝配中也需要對零件進行匹配確認后再進行裝配,因而在虛擬環(huán)境中需要有一個在裝配過程中能夠顯示被拾取零件信息的機制。此外,限于目前碰撞檢測技術(shù)和觸覺反饋技術(shù)的制約,虛擬環(huán)境中裝配時的零件及裝配特征不匹配無法直觀通過感覺體現(xiàn),且對裝配錯誤和參數(shù)不匹配等裝配錯誤也無法通過直觀的感覺體現(xiàn),因此需要提供一個能夠?qū)Σ僮髡哌M行信息提示的交互界面。
HUD(Head Up Display)技術(shù)是一個從軍事領(lǐng)域起源的技術(shù),最初運用在航空器上的飛行輔助儀器中,能將影像直接投射在飛行員的頭盔前方,飛行員可以不需要低頭就能夠看到所有重要資訊,并且無論頭部如何移動,圖像一直投射在視角正前方。在虛擬環(huán)境中,操作者也是佩戴著頭盔進行操作,操作過程中頭盔所處的位置和視角也會不斷發(fā)生變化,將HUD技術(shù)原理應(yīng)用到虛擬環(huán)境當(dāng)中,將裝配相關(guān)信息投射在眼前,可以實現(xiàn)裝配過程中信息資訊實時顯示。
HUD技術(shù)提供隨視角而變換位置且視距固定的顯示界面,關(guān)鍵在于求取顯示界面的空間位姿矩陣和確定信息顯示內(nèi)容。頭盔作為虛擬場景中相機節(jié)點的定位基礎(chǔ),可以通過其內(nèi)部的高精度陀螺儀獲得頭盔視點的空間位置和方向。當(dāng)視距確定以后,可以通過數(shù)學(xué)推算獲得信息面板的位姿矩陣,具體參考文獻[8]。
在虛擬環(huán)境中進行虛擬裝配,操作者的目的不同,使用意義也不同。對于研發(fā)人員來說,對虛擬樣機進行裝配可以檢驗設(shè)計上的一些缺陷,以及分析裝配可達性。而對于維修人員,則是起到訓(xùn)練的功能,如大型機械和重型裝備的維修訓(xùn)練,使用實物進行訓(xùn)練,實際條件難以滿足,成本高,因此虛擬環(huán)境的使用是很好的選擇。在虛擬環(huán)境中為裝配培訓(xùn)和教學(xué)提供電子指導(dǎo)手冊,以圖文說明、影像資料及演示動畫等信息在虛擬電子屏上向使用者展示,可以充分滿足相關(guān)人員的自學(xué)要求。
交互電子手冊主要由以下組成部分構(gòu)成:交互式虛擬按鈕,在虛擬環(huán)境中模擬實際操作按鈕用作輸入操作。虛擬顯示屏幕窗口,模擬大屏幕進行零件圖片和裝配教學(xué)視頻的顯示。資源和響應(yīng)管理器,存儲視頻圖片資源并接受按鈕響應(yīng)控制資源的顯示輸出。交互按鈕的開發(fā)主要考慮到與虛擬手之間的觸碰響應(yīng)和功能函數(shù)映射,因此每一個按鈕都有自身的碰撞包圍盒用于和虛擬手進行碰撞檢測,根據(jù)包圍盒的穿透深度來確定按壓程度,當(dāng)按鈕完全按下之后,該按鈕綁定的功能函數(shù)被調(diào)用。
本文中的交互式電子手冊實現(xiàn)了裝配培訓(xùn)教學(xué)功能,可以在虛擬環(huán)境中展示實際裝配過程圖及播放教學(xué)視頻。操作者可以根據(jù)教學(xué)圖片和視頻進行虛擬環(huán)境中零件裝配操作。圖7是使用電子手冊進行裝配培訓(xùn)的示例,可知在虛擬環(huán)境下操作與實際操作保持了一致,教學(xué)直觀,訓(xùn)練效果顯著。
圖8是電子手冊交互操作的截圖,可以看到當(dāng)手掌面朝操作者時,在虛擬環(huán)境中會調(diào)出一個交互式操作面板,可以用虛擬手對面板上的按鈕操作,從而控制電子手冊屏幕內(nèi)容的顯示。
本文建立了面向交互裝配培訓(xùn)的技術(shù)流程,為更好滿足裝配培訓(xùn)人機交互需求,針對手勢捕捉裝置LeapMotion所提取的數(shù)據(jù),研究了手勢識別判斷和響應(yīng)功能,采用了HUD技術(shù)實現(xiàn)了裝配過程中裝配信息實時顯示,并研究了電子手冊的交互方法。
構(gòu)建了包含手勢捕捉裝置LeapMotion、HTC Vive頭顯和虛擬場景的渲染引擎Unity3D的人機交互平臺系統(tǒng);采用了LeapMotion作為虛擬環(huán)境輸入的硬件設(shè)備,根據(jù)特定節(jié)點之間的距離和節(jié)點連線所在向量,研究了手勢劃分;使用骨骼動畫技術(shù)重構(gòu)手模型,根據(jù)捕捉到的人手關(guān)鍵節(jié)點的位置驅(qū)動虛擬手模型,實現(xiàn)了虛擬手的空間運動,滿足了虛擬環(huán)境裝配培訓(xùn)人手的交互需求。為了更好地滿足裝配培訓(xùn)人機交互性需求,應(yīng)用HUD技術(shù)實現(xiàn)了虛擬培訓(xùn)環(huán)境下培訓(xùn)信息的輸出顯示,開發(fā)了基于虛擬面板交互操作的電子手冊,更好地提升了裝配培訓(xùn)效果。