徐勁力,牛強強,陳春曉
(武漢理工大學機電工程學院,湖北 武漢 430070)
隨著計算機技術的快速發(fā)展,機械產(chǎn)品在設計開發(fā)及相關培訓中越來越多的與計算機技術相結(jié)合[1],逐漸形成一種全新的產(chǎn)品開發(fā)與培訓模式。在機械產(chǎn)品拆卸領域中,因傳統(tǒng)的拆卸方式對設備及場地要求較高,且實物拆卸成本高,因而虛擬仿真技術被大量應用。文獻[2]基于Virtool虛擬仿真平臺對某變速箱進行了虛擬拆卸;文獻[3]利用Pro/Toolkit建立二次開發(fā)平臺,實現(xiàn)了產(chǎn)品的拆卸再制造過程仿真;文獻[4]采用力反饋裝置開發(fā)了交互式虛擬拆卸系統(tǒng);文獻[5]研究了數(shù)據(jù)手套和運動跟蹤器在拆卸路徑規(guī)劃中的應用。以上研究大多采用虛擬現(xiàn)實技術對產(chǎn)品進行虛擬拆卸,所設計系統(tǒng)現(xiàn)實感比較差。
為了獲得更好的沉浸性和真實感,采用增強現(xiàn)實技術[6]進行汽車后橋虛擬拆卸系統(tǒng)的研究。系統(tǒng)設計以Unity3D為三維引擎,結(jié)合HoloLens設備,在現(xiàn)實環(huán)境中實現(xiàn)汽車后橋的虛擬拆卸。對工程前期的設計及培訓具有現(xiàn)實意義。
虛擬拆卸系統(tǒng)開發(fā)過程涉及到汽車后橋零部件的建模,模型的優(yōu)化處理以及增強現(xiàn)實環(huán)境的搭建。綜合考慮各種軟件及開發(fā)平臺的綜合性能及軟件之間的數(shù)據(jù)轉(zhuǎn)換和兼容性,采用的流程進行系統(tǒng)設計,如圖1所示。首先,利用UG建立汽車后橋三維模型,在3DMAX中對模型進行優(yōu)化處理;以Unity3D為三維引擎,借助其強大的物理引擎[7],快速建立人機交互界面,完成增強現(xiàn)實環(huán)境的搭建;利用HoloLens設備實現(xiàn)后橋的虛擬拆裝。HoloLens具有凝視、手勢交互、語音識別及空間映射等功能[8],可以快速而簡潔實現(xiàn)交互功能,空間映射功能可以通過設備掃描周圍環(huán)境將虛擬物體放置于環(huán)境中的任意位置,設備具有良好的沉浸性。

圖1 系統(tǒng)總體設計流程Fig.1 Overall Design Flow of the System
該系統(tǒng)主要包括汽車后橋零部件展示模塊,后橋自動拆卸模塊以及手動拆卸模塊。在零部件展示模塊,后橋所有部件以爆炸視圖形式展開,并能展示各部件部件的名稱,對主要零部件的功能進行介紹,主要幫助操作人員對后橋所有零部件有基本的認識;自動拆卸模塊利用動畫展示后橋的全部拆卸過程,為后橋的手動拆卸做鋪墊;手動拆卸模塊是該系統(tǒng)的核心功能模塊,人機交互、碰撞檢測等增強現(xiàn)實相關技術均在該模塊使用。
手動拆卸模塊的主要目的是利用手勢控制虛擬模型的移動,以達到后橋拆卸的目的。該模塊有兩種模式:輔助拆卸和自由拆卸。輔助拆卸模塊必須按規(guī)定的順序,根據(jù)零部件坐標、文字提示等幫助操作人員一步步實現(xiàn)后橋的拆卸;自由拆卸模塊則完全由操作人員本人控制,可以隨意進行各部件的拆除。
增強現(xiàn)實環(huán)境下對汽車后橋進行拆卸,首先需要利用Holo-Lens空間映射功能來進行環(huán)境建立,并在碰撞檢測的基礎上實現(xiàn)人機交互功能。所涉及到的關鍵技術有空間映射技術、手勢交互技術、語音識別功能以及碰撞檢測技術。
空間映射是利用基于視覺的SLAM(Simultaneous Localization and Mapping)技術[9]對真實環(huán)境進行三維場景重建,以使虛擬模型可以放置于真實環(huán)境中,實現(xiàn)虛擬世界與真實世界的結(jié)合。

圖2 空間映射技術下掃描的周圍環(huán)境模型Fig.2 Environment Model Based on Spatial Mapping Technology
HoloLens設備以四個環(huán)境感知攝像頭和一個深度攝像頭為硬件載體實現(xiàn)SLAM技術的應用。環(huán)境感知攝像頭用來進行數(shù)據(jù)采集,獲取真實場景的圖像;深度攝像頭可以獲得圖像中每個像素的深度值,從而計算出攝像頭的相對位置;最后基于Kinect Fusion算法[10],進行三維場景的構(gòu)建,即通過不同角度的深度圖,計算并繪制出精確的周圍環(huán)境和三維物體的3D模型,將虛擬模型加載到所繪制出的環(huán)境地圖中,即可實現(xiàn)虛擬模型在現(xiàn)實環(huán)境中的顯示。后橋拆卸真實環(huán)境經(jīng)過空間映射功能掃描后的模型圖片,如圖2所示。
碰撞檢測技術是實現(xiàn)增強現(xiàn)實的基本技術,碰撞檢測主要應用于以下兩個方面:所建立系統(tǒng)中的一切人機交互活動,包括模型的選取、移動以及功能模塊的切換等,需要基于凝視射線的碰撞檢測技術進行;檢測虛擬模型拆卸過程中是否發(fā)生相交,若相交則反饋相關結(jié)果;使模型與地面產(chǎn)生碰撞效果。
3.2.1 凝視原理
增強現(xiàn)實環(huán)境中,虛擬模型的選取通過凝視射線碰撞檢測進行,即通過向視線方向發(fā)送一條射線,當射線與虛擬物體發(fā)生碰撞時,即返回虛擬物體的碰撞信息。HoloLens主攝像機所在位置為世界零點O(0,0,0),相機的可視范圍為圖示四棱錐內(nèi)范圍,主攝像機到裁剪面S1和S2的距離分別為相機所能看到物體的最近和最遠距離,如圖3所示。視線方向會一直存在一條射線,當物體出現(xiàn)在HoloLens主攝像機的可視范圍內(nèi),且射線與虛擬物體發(fā)生碰撞時,即會得到虛擬物體的碰撞信息同時射線停止發(fā)射。圖示P(x,y,z)點為射線與虛擬物體的碰撞點,P1(x1,y1,z1)點為射線與近裁剪面的交點。

圖3 凝視原理Fig.3 Gaze Principle
凝視射線由式(1)確定,式中O,W,α均為三維空間向量,O(0,0,0)為射線的起點,W為射線上的某一個點,t為時間,α為射線的方向向量。

射線到達P1點的時間為t1,通過射線從發(fā)出到停止發(fā)射的時間t0,可以得到P點坐標,進而得知發(fā)生碰撞的物體。

3.2.2 碰撞檢測
Unity3D中,在模型之間進行碰撞檢測有兩種方式,一種是利用碰撞器,一種是利用觸發(fā)器。基本原理都是基于包圍盒算法將模型以碰撞體包圍起來,代替模型進行碰撞檢測。其中,碰撞器會改變物體的運動狀態(tài),不能互相穿透對方;觸發(fā)器則不干涉部件運動狀態(tài)。因此在模型與空間映射技術創(chuàng)建的地面之間建立碰撞器關系,使模型可以落在地面上;模型之間采用觸發(fā)器進行干涉檢測。
人機交互是虛擬拆卸系統(tǒng)的核心技術,操作人員需要通過人機交互技術實現(xiàn)與系統(tǒng)中虛擬物體的交互操作。在設計中采用語音識別、手勢交互進行操作人員與模型之間的交互操作。
3.3.1 語音識別
語音識別是HoloLens設備的主要輸入控制方式之一,不需要借助手勢,只需凝視要進行控制的對象并說出語音指令,即可令其進行相關操作。語音識別主要對手動拆裝模塊所需手勢進行切換,主要語音指令為“Move Model”和“Rotate Model”。在程序編寫時,語音識別的設計需要借助語音識別器KeywordRecognizer,將關鍵詞存儲于字典中,并為每一個關鍵詞添加相關觸發(fā)事件,在對語音識別器進行注冊后進行識別。
3.3.2 手勢交互
通過手勢進行與虛擬信息之間的交互能夠提高系統(tǒng)的沉浸性,手勢交互的關鍵是對各種手勢進行識別并進行相關操作。在凝視原理的基礎上進行手勢交互的設計,當凝視射線與物體相撞時,若識別到相關手勢則觸發(fā)相關事件。
本系統(tǒng)中,所主要使用的手勢為點擊(Air Tap)和拖拽(Tap and Hold)手勢。點擊手勢用于交互界面按鈕點擊操作,拖拽手勢包括旋轉(zhuǎn)手勢Navigation以及平移手勢Manipulation,用來旋轉(zhuǎn)和移動模型。通過調(diào)用系統(tǒng)內(nèi)部預先定義的函數(shù)(API)用于觸發(fā)手勢識別事件,包括對手部位置和速度進行識別的底層API以及借助手勢識別器進行預設手勢識別的高層API。
為了使虛擬模型在增強現(xiàn)實環(huán)境中建立的各功能模塊真實而流暢的顯示,需要對模型進行預處理。主要包括三維模型的建立,模型的優(yōu)化與渲染。
4.1.1 虛擬模型的建立與優(yōu)化
在UG中根據(jù)CAD圖紙?zhí)峁┑某叽鐚ζ嚭髽蜻M行建模,并創(chuàng)建用于盛放小型零部件的工具盒。因為汽車后橋模型結(jié)構(gòu)復雜,為保證虛擬仿真系統(tǒng)設計及運行的流暢性,需要在3DMAX中,保證模型不失真的前提下進行優(yōu)化處理,以減少多余的頂點和面。優(yōu)化時,采用3DMAX中的專業(yè)優(yōu)化功能對模型進行優(yōu)化,根據(jù)自定義閥值按比例對模型的頂點數(shù)和面數(shù)進行減少,優(yōu)化后的模型面數(shù)減少了6706182個,頂點數(shù)減少了3353111個。在優(yōu)化完成后,需要將各零部件的坐標中心移至部件重心上,同時將整個裝配體移至世界坐標的原點,以方便在Unity3D中對部件進行操作。
4.1.2 虛擬模型的渲染

圖4 渲染后的虛擬模型Fig.4 Optimized Rear Axle Model
模型的渲染在Unity3D中進行,主要采取兩種方式,對汽車后橋橋殼和輪轂等被涂成黑色的外部部件以及在進行拆裝時所用的盒體,采取貼圖的方式進行渲染;其余部件根據(jù)其金屬屬性的顏色值,采用材質(zhì)球添加的方式進行渲染。虛擬模型的最終渲染結(jié)果,如圖4所示。
在Unity3D中設計各功能模塊,以實現(xiàn)后橋零部件的展示和虛擬拆卸。具體設計過程如下:
(1)零部件展示模塊:通過Unity3D中DOTween Animation動畫制作組件制作后橋模型的爆炸視圖,設計物體運動路徑并控制運行時間,讓模型按照設計好的路徑進行移動或旋轉(zhuǎn),利用插值算法使運動過程平滑。后橋爆炸過程由后橋輪轂開始,依次對后橋半軸—殼體—主減速器—差速器進行爆炸處理。
(2)后橋自動拆卸模塊:根據(jù)汽車后橋的拆裝過程,在Unity3D的Scene場景中通過移動零部件模擬拆裝過程,以確定各個零部件的移動路徑,記錄下每個零部件位置。利用Unity3D的Animation組件改變零部件不同時刻的位置坐標(Position)以及旋轉(zhuǎn)坐標(Rotation)來控制每一幀的具體位置,可以實現(xiàn)零部件的旋轉(zhuǎn)和移動,以達到自動拆卸后橋的目的。
(3)后橋手動拆卸模塊:通過人機交互技術實現(xiàn)模型的手動拆卸,在拆卸過程中,配合干涉檢測技術保證拆卸步驟和部件移動路徑的正確性。手動拆卸交互功能實現(xiàn)的主要流程,如圖5所示。通過加載拖拽手勢和語音指令來執(zhí)行相關操作。

圖5 手動拆卸模塊交互功能的實現(xiàn)流程Fig.5 Realization Process of Interactive Function of Manual Disassembly Module
在手動拆卸中的輔助拆卸模塊,利用個零部件實時坐標和終點坐標協(xié)助操作人員完成拆卸;自由拆卸模塊則完全根據(jù)操作人員意愿進行拆卸,當零部件靠近地面或工具盒時,為部件自動添加重力屬性,使其自動落在地面或工具盒中。
利用Visual Studio將unity3D中建立好的系統(tǒng)以APP的形式發(fā)布于HoloLens設備中。系統(tǒng)發(fā)布之前,為保證各功能的正常運行,需打開unity3D中的語音輸入功能Microphone,空間映射功能SpatialPerception以及虛擬現(xiàn)實支持命令Virture Reality Supported;發(fā)布時,利用HoloLens的IP地址將電腦與HoloLens關聯(lián)在一起,在HoloLens中生成應用。
打開生成的應用,根據(jù)人機交互界面的提示進行相關操作。首先需要利用空間映射技術將后橋虛擬模型放置在拆裝臺架上,如圖6所示;在手動拆卸模塊利用平移和旋轉(zhuǎn)手勢移動主減速器總成,旋轉(zhuǎn)差速器總成,如圖7所示。自由拆卸模式下的最終拆卸結(jié)果,如圖8所示。

圖6 將后橋虛擬模型放置于真實臺架上Fig.6 Place the Rear Axle Virtual Model on the Bench

圖7 利用平移和旋轉(zhuǎn)手勢移動模型Fig.7 Moving Model Using Moving and Rotating Gestures

圖8 后橋在自由拆卸模式下最終拆卸結(jié)果Fig.8 Result of Final Disassembly of Rear Axle under Free Disassembly
通過Unity3D和HoloLens設備所建立的汽車后橋虛擬拆卸系統(tǒng),可以將汽車后橋模型放置于現(xiàn)實環(huán)境中,完成了后橋零部件的展示和自動拆卸,并可以通過操作人員與虛擬模型之間的交互操作實現(xiàn)后橋的拆卸。該系統(tǒng)具有良好的操作性,可以實現(xiàn)快速的人機交互,從而掌握汽車后橋的拆卸過程。使該系統(tǒng)在汽車后橋的產(chǎn)品設計及拆卸培訓中具有廣闊的應用前景。