張中波
ZHANG Zhong-bo
(中國(guó)民航飛行學(xué)院 航空工程學(xué)院,廣漢 618307)
虛擬維修仿真是利用虛擬現(xiàn)實(shí)技術(shù)仿真產(chǎn)品實(shí)際維修過(guò)程中的拆裝、更換零部件等活動(dòng),它是一種人機(jī)交互的過(guò)程仿真。虛擬人的維修動(dòng)作仿真是維修過(guò)程仿真的基礎(chǔ),如何方便、高效率地模擬維修動(dòng)作,成為虛擬維修的一項(xiàng)關(guān)鍵性技術(shù)。
在維修工程中,產(chǎn)品維修常被分為四個(gè)層次:維修、維修事件、維修作業(yè)和基本維修作業(yè)[1]。基本維修作業(yè)是指一項(xiàng)維修活動(dòng)可以分解成的工作單元,它是維修分解的最低層次。
目前大多數(shù)虛擬現(xiàn)實(shí)軟件都提供了虛擬人動(dòng)作仿真功能,但是這些軟件提供的都是低層的人體運(yùn)動(dòng)控制,即通過(guò)對(duì)人體關(guān)節(jié)或運(yùn)動(dòng)鏈的控制來(lái)完成人體動(dòng)作仿真。相比較而言,上述的基本維修作業(yè)描述則太過(guò)于概括,劃分比較粗糙,并不適合直接刻畫維修仿真過(guò)程,無(wú)法達(dá)到虛擬維修仿真軟件所支持的動(dòng)作細(xì)化程度。本文針對(duì)這個(gè)問(wèn)題,自頂向下建立各層次虛擬維修動(dòng)作流程,將維修動(dòng)作細(xì)分至虛擬維修軟件可以支持的程度(動(dòng)素級(jí)),然后將動(dòng)素過(guò)程流映射至Petri網(wǎng),建立虛擬維修動(dòng)作流程Petri網(wǎng)模型,最后封裝虛擬現(xiàn)實(shí)軟件的基本動(dòng)作函數(shù)為動(dòng)素單元,利用Tcl/Tk和Python語(yǔ)言驅(qū)動(dòng)Petri模型實(shí)現(xiàn)對(duì)動(dòng)素單元的重復(fù)調(diào)度使用,快速逼真地實(shí)現(xiàn)虛擬維修動(dòng)作流程仿真。
愛(ài)荷華大學(xué)CAD中心的Ranko Vujoservic[2]提出了維修作業(yè)的分解層次結(jié)構(gòu)模型,將維修作業(yè)分為四層,從上到下依次是:維修作業(yè)層、拆裝順序?qū)?、拆裝步驟層和宏運(yùn)動(dòng)層。其中,宏運(yùn)動(dòng)是由一列有序微運(yùn)動(dòng)組成的復(fù)雜的人的運(yùn)動(dòng),如姿勢(shì)改變或行走。微運(yùn)動(dòng)則是指身體部位的基本運(yùn)動(dòng),如手指彎曲、轉(zhuǎn)動(dòng)頭等。作為一種適合描述離散并發(fā)現(xiàn)象的系統(tǒng)模型,用Petri網(wǎng)控制虛擬人的運(yùn)動(dòng)是虛擬人運(yùn)動(dòng)控制的研究方向之一。賓夕法尼亞大學(xué)的Badler等[3]人提出用有限自動(dòng)機(jī)實(shí)現(xiàn)對(duì)多關(guān)節(jié)的并發(fā)控制,其所領(lǐng)導(dǎo)的人體建模與仿真中心則將這一思想應(yīng)用于高層任務(wù)決策和人體運(yùn)動(dòng)仿真。為了能夠便于在虛擬樣機(jī)的過(guò)程模型中對(duì)拆卸過(guò)程進(jìn)行描述,喬治亞工學(xué)院的SRL實(shí)驗(yàn)室將基本的動(dòng)作稱為“操作”,并將操作具體分為:抓取、移物、徒手操作和利用工具操作[4]。
軍械工程學(xué)院的李星新等[5]提出了一種包含維修、維修事件、維修作業(yè)、維修作業(yè)單元、維修動(dòng)素的分解層次結(jié)構(gòu),提出了維修動(dòng)素的概念,定義了兩類共十個(gè)維修動(dòng)素。海軍大連艦艇學(xué)院的常高祥等[6]提出了一種基于維修任務(wù)分解的虛擬人動(dòng)作模型設(shè)計(jì)方法,將虛擬維修任務(wù)分解為三個(gè)過(guò)程,建立了三個(gè)相應(yīng)的維修動(dòng)作層次化模型。上述的研究主要是從不同的層面上對(duì)維修動(dòng)作進(jìn)行分層設(shè)計(jì),其層次化建模思想值得學(xué)習(xí)。但對(duì)于分解后的動(dòng)素如何組裝,相同動(dòng)素的重復(fù)調(diào)度使用,如何高效逼真地實(shí)現(xiàn)一個(gè)維修動(dòng)作流程考慮較少。
國(guó)防科技大學(xué)的盧曉軍等[7]和海軍工程大學(xué)王政等[8]分別提出了基于Petri網(wǎng)的虛擬人行走動(dòng)作模型和虛擬手部動(dòng)素模型,他們完成了一個(gè)獨(dú)立維修動(dòng)作的Petri網(wǎng)模型,但未從任務(wù)級(jí)層面考慮一個(gè)維修動(dòng)作流程的建模。
描述一項(xiàng)維修作業(yè),一般將其視為一個(gè)維修動(dòng)作流程,然后將維修動(dòng)作流程分解成若干的基本維修動(dòng)作并描述,只要描述出每個(gè)基本維修動(dòng)作就可以完成整個(gè)維修過(guò)程的仿真,對(duì)維修動(dòng)作流程進(jìn)行層次化分解是維修仿真的前提。
目前人機(jī)功效分析中對(duì)維修動(dòng)作的分解,主要采用的是美國(guó)工程師吉爾布雷斯所創(chuàng)立的動(dòng)素分析理論,他認(rèn)為人所進(jìn)行的作業(yè)是由某些基本動(dòng)作要素(簡(jiǎn)稱動(dòng)素或基本動(dòng)素)按不同方式、不同順序組合而成的[9]。吉爾布雷斯提出了17個(gè)動(dòng)素,包括:伸手、移物、握取、裝配和拆卸等,后來(lái)美機(jī)械工程師學(xué)會(huì)增加了“發(fā)現(xiàn)”這個(gè)動(dòng)素,這樣組成人的動(dòng)作的最基本單元就是18個(gè)動(dòng)素。
產(chǎn)品的維修是由多個(gè)相對(duì)獨(dú)立維修事件組成,因此本文自維修事件層向下對(duì)維修動(dòng)作流程進(jìn)行層次化分解,按照動(dòng)作的復(fù)雜性和任務(wù)相關(guān)語(yǔ)義的抽象程度,可以將動(dòng)作流程分為維修作業(yè)層、基本維修作業(yè)層和動(dòng)素層。進(jìn)行層次化分解的思想是:為了仿真虛擬人的運(yùn)動(dòng),首先將人機(jī)工程分析中的18個(gè)基本動(dòng)素進(jìn)行擴(kuò)展,增加行走和攀爬兩類人體移動(dòng)動(dòng)素;然后將維修事件分解為維修作業(yè)流程,再將維修作業(yè)流程細(xì)分為基本維修作業(yè)流程,最后基本維修作業(yè)流程分解為動(dòng)素的組合。這些動(dòng)素可以由虛擬現(xiàn)實(shí)軟件提供的基本動(dòng)作函數(shù)封裝完成,如伸手動(dòng)素可以由肩關(guān)節(jié)運(yùn)動(dòng)函數(shù)、肘關(guān)節(jié)運(yùn)動(dòng)函數(shù)、腕關(guān)節(jié)運(yùn)動(dòng)函數(shù)和軀干協(xié)調(diào)運(yùn)動(dòng)函數(shù)封裝完成。圖1所示的是某型叉車更換油濾動(dòng)作流程層次分解圖。
圖1 某型叉車更換油濾動(dòng)作流程層次分解圖
Petri網(wǎng)能夠以圖形方式形象、深刻地描述離散事件動(dòng)態(tài)系統(tǒng)的過(guò)程,精確地描述事件順序、并發(fā)和沖突關(guān)系。為了把 Petri 網(wǎng)應(yīng)用到虛擬維修領(lǐng)域,必須把庫(kù)所和變遷賦予特有的涵義。在這里,庫(kù)所代表維修動(dòng)作進(jìn)行時(shí)設(shè)備和虛擬人等的狀態(tài),變遷則表示維修動(dòng)作的進(jìn)行,各個(gè)維修動(dòng)作或維修狀態(tài)之間的關(guān)系由庫(kù)所與變遷之間的有向弧表達(dá)。
從上面的層次分解圖可以看出,伸手、握取、移物、放手等動(dòng)素的使用頻率最高。因此,可以封裝虛擬現(xiàn)實(shí)軟件提供的基本動(dòng)作函數(shù)形成動(dòng)素單元,重復(fù)調(diào)度使用。如圖2所示,將拆卸油濾基本作業(yè)的動(dòng)素流程設(shè)計(jì)為一個(gè)Petri網(wǎng),通過(guò)一個(gè)仿真循環(huán)實(shí)現(xiàn)對(duì)伸手、握取、移物等動(dòng)素單元的多次調(diào)度。在進(jìn)行拆卸螺釘時(shí),需要左右手配合進(jìn)行,圖2所示的是右手的動(dòng)作流程,左手與右手類似。
圖2 拆卸油濾的動(dòng)素流程Petri網(wǎng)模型
模型中各個(gè)庫(kù)所和變遷的含義如表1所示。
表1 庫(kù)所和變遷的含義說(shuō)明
從圖2中可以看出,此Petri網(wǎng)模型清晰地反映出維修動(dòng)作的流程、各維修動(dòng)作間的關(guān)系,以及維修動(dòng)作狀態(tài)的轉(zhuǎn)換情況。
驗(yàn)證仿真實(shí)驗(yàn)是基于虛擬現(xiàn)實(shí)軟件Jack 4.0,在Intel(R) Core(TM) i32.53GHz CPU,ATI HD 545V顯卡,Windows XP操作系統(tǒng)的環(huán)境下,以Tcl/Tk和Python語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)完成。
圖3 更換油濾的虛擬動(dòng)作流程仿真視頻截圖
Tcl/Tk和Python語(yǔ)言驅(qū)動(dòng)Petri模型實(shí)現(xiàn)分為兩個(gè)階段完成。首先封裝Jack的基本動(dòng)作函數(shù)形成動(dòng)素單元,然后利用Tcl/Tk和Python設(shè)計(jì)上面建立的動(dòng)作流程Pertri網(wǎng)模型,在Pertri網(wǎng)模型中反復(fù)調(diào)用前面的動(dòng)素單元。圖3所示的是虛擬人更換某型叉車油濾動(dòng)作流程仿真的視頻截圖。
本文針對(duì)維修工程中基本維修作業(yè)描述過(guò)于概括,劃分比較粗糙,在虛擬維修仿真軟件中無(wú)法實(shí)現(xiàn)的問(wèn)題,提出將維修事件的維修動(dòng)作流程自頂向下進(jìn)行層次化分解,并建立了各層次動(dòng)作流程,維修動(dòng)作細(xì)分至動(dòng)素級(jí),封裝虛擬現(xiàn)實(shí)軟件提供的基本動(dòng)作函數(shù)形成動(dòng)素單元。同時(shí)為實(shí)現(xiàn)虛擬人的移動(dòng)仿真,擴(kuò)展了人機(jī)功效的動(dòng)素,增加了行走和攀爬行走和攀爬兩類人體移動(dòng)動(dòng)素。
由于Petri網(wǎng)能夠以圖形方式形象、深刻地描述離散事件動(dòng)態(tài)系統(tǒng)的過(guò)程,精確地描述事件順序、并發(fā)和沖突關(guān)系,將動(dòng)素動(dòng)作流程映射為Petri網(wǎng)模型。通過(guò)對(duì)更換某型叉車油濾的動(dòng)作流程仿真說(shuō)明,利用Tcl/Tk和Python設(shè)計(jì)動(dòng)作流程Pertri網(wǎng)模型,在Pertri網(wǎng)模型中反復(fù)調(diào)用已封裝好的動(dòng)素單元,可快速逼真地實(shí)現(xiàn)虛擬維修動(dòng)作流程仿真,也驗(yàn)證了該模型的有效性和可行性。
[1]可靠性維修性保障性術(shù)語(yǔ)集編寫組. 可靠性維修性保障性術(shù)語(yǔ)集[M],北京:國(guó)防工業(yè)出版社,2002.
[2]Ranko Vujosevic.Maintainability analysis in concurrent engineering of mechanical system[J].Research and Applications,1995,3(1):20-23.
[3]N.I.Badler,C.B.Phillips,B.L.Webber.Simulating Humans:Computer Graphics,Animation and Control[M].Oxford University Press,1993.
[4]Bauer M D,Siddique Z,Rosen D W.Virtual prototyping in simultaneous product/process design for disassembly.Dong J ed.Contemporary Methodologies,Tools and Technologies.London:Chapman Hall,1997.
[5]李星新,郝建平,柳輝.虛擬維修仿真中維修動(dòng)素的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)機(jī)械工程,2005,16(2):156-160.
[6]常高祥,徐曉剛,張雷.虛擬維修中虛擬人的動(dòng)作模型設(shè)計(jì)[J].工程圖學(xué)學(xué)報(bào),2011,No.1:99-103.
[7]盧曉軍,李焱賀,賀漢根.基于Petri網(wǎng)的虛擬人行走動(dòng)作建模及其仿真實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2005,17(11):2679-2682.
[8]王政,朱曉軍,閔少松.基于Petri網(wǎng)的虛擬維修手部動(dòng)素建模[J].船海工程,2007,36 (2):77-80.