趙洪利,胡周兵
(中國民航大學航空工程學院,天津 300300)
摘要:基于UNITY強大的虛擬仿真功能和便捷的交互性,在UNITY虛擬仿真平臺下,通過與KINECT的交互接口設計.實現在虛擬維修環(huán)境下對虛擬人的運動控制,以虛擬人來進行相關部件維修操作。結合維修過程分解的思想并引用維修動素概念,通過設計維修動素類的時間方法來實現在虛擬維修系統(tǒng)中對航空設備維修性時間參數的分析與估計,為產品研制階段并行開展維修性定量分析提供了方法和思路。
關鍵詞:UNITY;虛擬維修;仿真中圖分類號:TP391.9
0 引言
近幾年,虛擬維修已經成為大型設備進行維修性分析、核查、輔助維修操作訓練非常有效的技術手段。為了驗證產品的維修性,沉浸式虛擬維修系統(tǒng)提供了非常逼真的維修環(huán)境,它能讓工人感覺像處在真實的維修操作過程中。而模擬仿真工人的動作是至關重要的一步。很多知名的虛擬人物實驗室為虛擬人物模型開發(fā)了他們自己的實驗系統(tǒng),比如著名的仿真軟件JACK、3D顯示系統(tǒng)CAVE、達索公司開發(fā)的DELMIA等。近兩年光學運動捕捉技術得到應用,通過捕獲運動數據驅動虛擬人模型,使得虛擬人物動作控制變得高效和精確,但該方法所使用的運動捕捉設備成本偏高,難以推廣和廣泛應用。針對此情況筆者通過KINECT和UNITY的交互來實現對虛擬人的運動控制,在此基礎上提出了基于UNITY的交互式虛擬維修仿真系統(tǒng),在此系統(tǒng)中人只要通過身體動作就能控制虛擬人的運動,既方便又提高了仿真效率,同時降低了開發(fā)成本。
1 虛擬維修仿真系統(tǒng)總體方案設計
整個虛擬仿真維修系統(tǒng)的開發(fā)研究大體分為兩個部分:①基于UNITY結合KINECT實現對虛擬人的運動控制;②基于維修過程分解并引用標準維修動素概念,設計維修動素類的時間方法進行維修時間仿真。圖1為虛擬仿真維修系統(tǒng)總體結構框圖。
2虛擬人的運動控制
虛擬人模型的運動控制是通過控制模型的各個骨骼實現的。虛擬人在虛擬環(huán)境中的位置和方位是靠它的根節(jié)點決定的。模型的每個骨骼都有一個局部坐標系,對應每個骨骼的坐標方向是有定義的,并且保持不變。所以控制虛擬人的方法就是通過旋轉模型指定骨骼的局部坐標系以改變它在虛擬環(huán)境中的方位?每個節(jié)點下都至少有一個骨骼,每個骨骼只對應有一個父節(jié)點。骨骼隨父節(jié)點而變化,節(jié)點隨著上級骨骼而變化,這樣在同一坐標系下所有骨骼和節(jié)點都會隨著更新變化,從而達到了虛擬人運動的效果。
結合KINECT和UNITY的虛擬交互,KINECT可獲得人體骨架關節(jié)點信息,分為24個關節(jié),對應地選擇總共24個主要身體關節(jié)點來建立虛擬人模型,各相鄰關節(jié)相互連接,其中腰關節(jié)為根節(jié)點,它控制虛擬人的位置和方位。圖2為虛擬人骨骼框架圖。
結合KINECT和UNITY的交互來實現虛擬人動作仿真,進行接口設計來保證數據的傳輸和信息匹配。接口的功能主要有:①進行運動數據重定向,把KINECT獲得的運動數據經過一系列運算重新定向到虛擬角色模型而使動作保持原有特性;②實現虛擬角色骨骼模型與運動數據節(jié)點的綁定,其中KinectModelController是一個非常關鍵的程序,它依附在想要應用KINECT控制的虛擬角色模型上,為了讓模型能夠跟上人的節(jié)奏,需要將模型上控制模型動作的各個關鍵骨骼依附到這個腳本程序對應的公有變量中,也就是將模型中的骨骼與KINECT識別到的人的骨骼綁定起來。KinectModelController部分程序代碼如下所示:
在Update方法中除了調用Rotatejoint()方法旋轉虛擬人模型骨骼來控制軀干運動,還需定義一個方法驅動虛擬人模型走動。最后人需要站在KINECT攝像頭可視范圍內,通過身體動作就能實現對虛擬人的運動控制?刂铺摂M人運動的效果如圖3所示。
3維修時間仿真
3.1 維修動素庫的建立
裝備維修是一個復雜的過程,需針對某個維修活動作層次化分解,分解為維修活動層、維修任務層、基本維修任務層和標準維修動素層。在虛擬環(huán)境中,虛擬人維修動作的速度是可以人為操控的,所以不能按照傳統(tǒng)的記錄維修時間的方法來統(tǒng)計虛擬維修作業(yè)時間,需要建立一套裝備基本維修動素庫,且每個維修動素都有一個對應的標準時間值(各動素時間是根據實際維修操作采集的數據,具有較高的可靠性)。標準維修動素持續(xù)時間短、相對變化小、具有相對獨立性和固定的作業(yè)流程。對于各種裝備的各種故障所對應的維修動作,歸納出經典的裝備維修事件,將其全部分解到不可再分解的基本維系動素,如走一步、伸手、抓取工具、移動工具到維修部位、旋轉一圈螺釘等。通過統(tǒng)計、整理,分析出足夠多的動素,建立裝備維修動素庫。按照維修過程分解的步驟,對“拆卸航空發(fā)動機放氣活門”這一維修事件進行分解,可分為6個基本維修任務,然后將各基本維修任務分解為標準維修動素。“拆卸放氣活門”分解情況如圖4所示。
3.2 維修時間模型設計
傳統(tǒng)維修時間驗證主要依托裝備實物樣機進行,然而在裝備設計階段一般缺乏物理樣機。目前裝備的設計階段數字樣機已成為裝備維修性設計協(xié)調的主要手段,這就導致維修時間驗證工作難以進行,因此可通過設計維修動素類的時間方法來對維修時間進行仿真估計。
基于維修動素庫進行分析,并結合實際維修操作情況,將類型相近或者在維修過程中某些連續(xù)的動素進行歸類,每個動素類可包含多個動素。這些基本的動素類包括抓取動素類、定位動素類、放置動素類、旋轉動素類、運送動素類、控制動素類、走動素類、調整姿勢類等。
設計動素類的時間方法需考慮各種因素,動素類時間方法輸出值會隨各因素的變化而發(fā)生變化。例如定位操作的目的是確定維修操作的具體部位,影響定位操作的因素有視角的大小、光線的強弱、空間可達度等。
為確定的各個維修動素類設計動素類的時間方法,以實現在虛擬維修仿真系統(tǒng)中的調用,F以定義“旋轉動素類”時間方法為例進行分析,具體步驟如下:1斷旋轉對象的尺寸規(guī)格;②判斷是否使用工具;③分析操作空間的影響。部分代碼如下:
實際維修操作過程中,人的因素是非常重要的,它決定了工作的效率。隨著人操作姿勢的舒適度、疲勞度、操作的熟練度不一樣,人工作的效率就會不同,因此需要定義一個修正方法來返回一個修正系數對仿真數據進行修正。
4虛擬維修仿真效果
在虛擬維修環(huán)境中,為實現虛擬人和各數字模型之間的交互,還需在各動素類中定義一個對應的交互方法,并將各維修動素類程序集成到虛擬仿真系統(tǒng)中。由KINECT控制虛擬人走動到操作部位并調整好操作姿勢,在操作過程中,虛擬人每一個動作都實時觸發(fā)對應動素類的交互方法和調用時間函數,從而既達到了虛擬人運動仿真的目的,也實現了對維修時間的估計。
以“拆卸航空發(fā)動機放氣活門”這一維修任務進行仿真,統(tǒng)計得出仿真時間為553.3 s,再根據修正方法輸出的修正系數對仿真數據進行修正,得到最終的維修作業(yè)時間,通過驗證該方法與實際維修操作情況基本相符。“拆卸航空發(fā)動機放氣活門”仿真效果如圖
5、圖6所示。
5結語
本文提出了一種基于UNITY仿真平臺并結合了KINECT關鍵技術的虛擬維修仿真系統(tǒng)。該系統(tǒng)通過人用身體控制虛擬人模型進行維修過程的仿真,根據維修過程分解的思想設計維修動素類時間方法,在仿真過程中通過調用時間方法以實現維修時間的模擬計算。通過實例驗證,表明該方法基本符合實際維修操作情況,為實現產品設計階段并行開展產品維修時間的驗證工作提供了方法和思路。