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

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

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

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

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

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

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

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

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

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

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