吳志軍, 張建富, 馮平法, 郁鼎文
(清華大學精密儀器與機械學系,北京 100084)
隨著網絡化技術的發展及虛擬實驗網絡教學的推廣和廣泛應用,虛擬網絡實驗教學系統日益成為一種重要的教學支持手段和方法,針對網絡虛擬實驗室研究和開發成為一個重要的研究方向。近幾年來,國內外學者都開展了深入的研究[1-3]。如在國外,美國卡耐基梅隆大學(Carnegie Mellon University, CMU)提出了針對基于服務和組件的網絡教學系統的設計框架 LSA(learning system architecture),約翰霍普金斯大學開發了基于Java技術的虛擬物理實驗室項目,德國Ruhr大學開發了有關控制工程的VCLAB 實驗室,新加坡國立大學開發的用于工程教育的虛擬實驗室。在國內,華中科技大學“液壓與氣壓傳動”遠程教育小組開發了液壓回路性能和液壓元件裝拆虛擬實驗,北京大學計算機科學與技術系基于 Web設計了支持大計算量和交互式的網上虛擬實驗室的基本結構(3WNVLAB),北京師范大學現代教育技術研究所研制的基于虛擬空間的三維電子線路實驗環境―Evlab系統等[4]。
國內研究內容主要集中在理論探討和虛擬實驗網絡教學平臺搭建上,網絡虛擬實驗系統在教育技術領域的應用研究關注不夠,與國外相比還很落后,尤其是專門面向學生課程實踐、支持多用戶協同的網絡虛擬實驗系統開發不夠,并對網絡虛擬實驗系統應用于教學的模式、效果分析和反饋評價的研究很少;另外,虛擬實驗網絡教學系統的架構、開發方法和技術實現手段呈現多樣化得格局,通用的網絡虛擬實驗平臺構建體系結構、支持平臺下二次開發應用的模型研究不足[5]。
本文基于機械制圖網絡教學中對裝配體虛擬拆裝的需求,分析了虛擬實驗網絡教學中協同裝配的特征,研究了實現網絡化協同裝配的方法和相關技術,提出了用于支持虛擬協同裝配的信息模型及網絡虛擬裝配實驗平臺的體系結構,論述了系統執行的過程。最后,以柱塞泵為例,簡述了系統的初步實現情況。
當前,針對虛擬協同裝配的研究主要集中在面向產品的多成員協同設計(面向設計的協同裝配)方面,即在設計階段通過虛擬裝配檢查零部件設計的合理性、是否滿足最基本的要求,及其可裝配特性等,研究的重點是:預裝配技術、裝配工藝規劃策略、可裝配性檢驗、設計優化或再設計等。而面向網絡教學的虛擬協同裝配研究的基礎是:在既有的零部件基礎上(已完成設計,并確保了設計的合理性),通過虛擬裝配讓學生體驗裝配的過程,并進行協同裝配規劃,從而實現輔助實驗教學的目的,其研究的重點是:裝配模型信息表達、裝配協同控制、裝配路徑記錄和再現等。面向虛擬實驗網絡教學和面向設計的協同裝配特征對比情況如表1所示。

表1 面向實驗教學和面向設計的協同裝配特征對比
基于面向虛擬裝配網絡教學和面向設計中協同裝配特征和研究目標的差異,兩者在關鍵實現技術和系統體系架構上既有一定的共性,又有很大的不同。對于面向實驗教學的協同裝配,一方面要解決網絡虛擬協同裝配系統在體系架構上與現有教學平臺的集成和模型信息共享;另一方面需要針對教學的需求考慮協同裝配過程中裝配路徑及順序的規劃和沖突消解問題。協同是一個以知識為基礎的計算過程,以教學為目的的協同裝配過程需要依據裝配的需求特征設計知識和規則,并就裝配問題展開設計推理。為此,構建面向虛擬網絡實驗教學的協同裝配體系并在研究其關鍵實現技術時需要考慮如下因素[7]:
(1)怎樣基于現有教學平臺構建可供共享的裝配信息模型?
(2)怎樣確定要把什么零件裝配到什么零件的什么位置上?
(3)怎樣確定裝配時的姿態,即操作零件的裝配方向?
(4)怎樣確定裝配的先后順序是否合理?
(5)怎樣確定裝配時不會發生干涉碰撞?
(6)怎樣確定裝配完成,要隨時給出裝配過程的提示信息?
(7)視角要合理,并提供多種預設選擇;
(8)有可能的多種路徑組合的解決方法,一個零件可以向多個地方裝配的解決方法,有多個相同零件的解決方法。
要實現面向虛擬實驗網絡教學的協同裝配,首先要解決的問題是建立能夠支持網絡協同裝配的虛擬模型。考慮到課程教學的不同需要及模型的普適性,在構建虛擬模型室時將模型分成三類:授課模型(指在授課系統中或在線學習時所使用的模型)、作業模型(指用于完成課程習題指導的模型)、裝配模型(指用于虛擬裝配實驗教學的真實機械產品模型)。基于對現有各種虛擬現實技術優勢分析,本文采用的是開放性、網絡兼容性和傳輸性都較好的 VRML(Virtual Reality Modeling Language)。由于當CAD系統輸出為 VRML文件時,在場景的組織結構及元素的表示方式上存在較大的差異[8]。為此,針對不同CAD系統在轉換為VRML模型時存在的這種語義表達差異,在對數據接口文件二次開發的基礎上,定義了標準的文件轉化格式,從而確保系統中模型的語義一致性,以支持網絡條件下模型裝配的虛擬現實場景瀏覽和交互功能。構建的虛擬模型室結構如圖1所示。
基于以上方法獲得的模型,其共同的特征是保留了原有CAD圖形的基本屬性信息(如零件幾何和拓撲信息以及工程設計信息)。圖1所示的模型導航樹中,授課模型和作業模型用于課程基本教學所用,如體的投影、組合體、直線及平面與立體的相交等,由于這部分模型僅作為進行虛擬協同裝配實驗的預備知識,為此原有 CAD圖形的特征屬性完全可以滿足模型的再現、移動等需求。而裝配模型用于虛擬裝配實驗,其在以上特征信息的基礎上,還需要表達裝配信息(如裝配關系、裝配約束和裝配操作指令等)及決策信息等。下一節主要闡述裝配信息模型的語義信息構成,從而形成裝配知識庫。
虛擬協同裝配是以模型庫某一待裝配體為對象,以適當的序列規劃,按照合理的約束關系和裝配順序,通過一系列的協同操作,實現裝配功能的過程。基于VRML的虛擬裝配實現中,為滿足可視化顯示和碰撞檢測的需求,通常使用面片模型(即基于標準文件轉換格式得到的虛擬模型)來表達對象。但由于片面模型不能完整的表達裝配過程涉及到的裝配信息[9]。為此,基于構建的虛擬模型,定義了支持實現虛擬裝配過程的語義知識。同時,基于Web本體語言便于計算機解析和人工讀寫、適于在分布的設計人員之間傳遞知識的優勢,裝配知識選用OWL (Web Ontology Language)來描述[10]。
裝配信息語義模型是零部件間裝配約束、裝配關系及裝配行為的抽象和概括。基于協同裝配過程中所涉及到的裝配信息需求,裝配信息語義模型(assem_onto)可以用一個四元組來表示,如式(1)所示

即以實體(entity)、方法(method)、行為(action)、操作(operation)等語義來表達裝配過程,進而形成裝配知識庫所需要的最基本語義信息。
(1)實體即為實現虛擬協同裝配的功能體(基本幾何體),表現為片面模型,亦即虛擬模型室中的裝配模型。實體分為主體(body)、從體(subody)和聯接體(linkage),表示如下


圖1 虛擬模型室
(2)行為(action)指裝配中,那些實體以何種約束方法被裝配及相應的聯接關系,包含三方面的語義,如式(3)所示

其中 裝配約束(assemConsTraints)表示為式(4)所示的幾種形式,即貼合(mate)、偏置貼合(mate偏offset)、聯接(joint)、偏置聯接( joint offset)、插入(insert)、焊接(weld)、鉚接(rivet)和粘合(adhesive)

自由度約束(freeomConsTraints)表示為式(5)所示的5種形式,即固定自由度(fixDegree)、線性自由度(linearDegree)、平面自由度(planarDegree)、旋轉自由度(rotationalDegree)、球面自由度(sphericalDegree)。

空間關系(spatialRL)包括:平行(parallel),對齊(aligned),傾斜(incline-offset),倚靠(against),夾角(include-angle),相切(tangent),共線(collinear),過盈配合(interference-fit),其用來約束配合實體(面、中心線、中心點等)間的空間運動關系,如式(6)所示

(3)語義模型中的方法(method)指裝配方法,包括聯接(joint)、定位(fixed)、緊固(fasten)、支承(bearing)、傳動(gearing)和密封(sealed)7種類型,表示如下

每一種裝配方法又表示為不同的語義,為了表達的直觀性,其語義涵蓋如圖2所示。

圖2 裝配方法語義信息
(4)操作(operation)表達為式(8)的形式,包括的最基本語義為路徑(route),順序(sequence),規則(rule)、策略(strategy)、場景(scenario)、參考(reference),用以表達裝配過程的執行情況,并在知識庫中形成實例

以上對裝配語義信息的定義,只是將實體的主要關系進行了抽象化。對于一些特殊的裝配語義可以由用戶以標準的語義描述語言自己定義和擴充,從而不斷完善裝配知識庫的語義知識,如輪與輪轂的裝配、曲柄與連桿的裝配、端蓋與箱體的裝配等。另外,實際裝配過程中通常任何一種裝配語義都是多種裝配活動的組合表達,如齒輪裝配,裝配實體為齒輪,裝配方法為齒輪副嚙合的傳動,行為中既表現為平面貼合的裝配約束,又表現為旋轉自由度和倚靠對齊的空間約束關系,在裝配操作中,同時又產生了齒輪與齒輪軸鍵聯接的裝配關系。
在面向設計的虛擬產品預裝配中,產品的可裝配性通常包含三層含義:一是檢驗零件在裝配時是否出現碰撞現象;二是檢驗零件是否有可裝配的路徑;三是檢驗利用現有的裝配手段是否可以完成裝配任務[11-12]。基于面向網絡實驗教學虛擬協同裝配的定義及其目的,不難發現可裝配性的內涵已經發生了改變,其重點是如何解決好裝配碰撞和干涉問題。由于裝配體通常是一些典型的機械部件,為此,以上提及的第三層含義是確定的。對于第二層含義,需要考慮的不再是“是否有”,而是什么樣的路徑最優。其實現辦法是事先進行多種可裝配路徑的虛擬仿真,并將得到的各種裝配路徑進行知識描述,進而保存于裝配知識庫,在協同裝配教學中根據用戶所選取裝配路徑的實時記錄進行路徑最優化的評價,輔助指導學生形成合理的裝配順序和路徑。
對于裝配碰撞和干涉問題,在現有檢查零件是否發生干涉碰撞的基礎上,同時要應對實驗教學的目的,實現干涉區域(碰撞點)的場景顯示和報警功能。具體方法是采用包裝盒層次法[13],把待裝配模型的每個基本體用一個能將其全部覆蓋的最小尺寸的長方體套住,根據零件之間的相對位置,檢測包圍盒是否干涉,如果局部包容盒不干涉,則判定零件不干涉;如果局部發生干涉,則具體分析干涉量,一方面在裝配場景中突出顯示干涉的部分并報警,另一方面進一步進行幾何求交,使用精確的公式加以計算,判定基本體是否有碰撞和干涉。以上針對每種基本體所建立的干涉檢測模型和算法,最后形成于裝配知識庫中。
面向虛擬網絡教學的協同裝配實驗系統的總體結構如圖3所示。服務器端采用多用戶服務器 MuServer,客戶端面向虛擬模型室的 VRML顯示模型,采用Web瀏覽器與VRML插件等工具,實現裝配零部件的模型調用、裝配知識獲取,以及裝配過程的可視化方式捕捉、操縱、瀏覽、同步協同等。
系統實現的主要功能包括:基于標準格式文件的CAD模型到VRML模型的轉換、可擴展的裝配信息語義生成、裝配順序/路徑規劃及干涉檢測知識獲取、協同裝配支持服務管理,以及協同裝配過程的虛擬仿真功能。系統以 VRML作為零部件顯示模型,基于預定義的裝配知識語義進行裝配順序/路徑規劃,并實現干涉/碰撞的檢測功能,同時將裝配過程信息并行公布于各客戶端;在協同裝配支持服務方面,以流式套接字方式傳輸裝配操作的 C/P(命令/參數),并支持采用令牌一致性維護機制;通過記錄每種裝配體的裝配過程,形成裝配仿真實例,可視化的展現裝配過程,指導和輔助學生進行裝配過程的擬實評價。

圖3 虛擬協同裝配實驗平臺體系結構
虛擬協同裝配的執行過程如圖4所示。主服務啟動后,客戶端用戶通過登錄認證(服務器端通過客戶端節點配置參數,基于用戶名和 IP地址判定申請人的合法性)進入虛擬裝配空間。當某一用戶獲得令牌后,在裝配語義信息模型和裝配知識庫的支持下,調用模型室中的相關模型,設定裝配基礎件和目標件進行裝配操作;并觸發相應事件,如視點變換、視訊交流、移動貼合等,系統通過監聽捕獲事件,當裝配場景發生變化的時候根據事件類型抽象封裝成C/P消息格式發送至服務器端,完成相應的裝配操作服務。需要協同裝配式,基于令牌維護機制完成裝配授權的轉換。

圖4 虛擬協同裝配過程
基于本文提出的關鍵技術及系統架構方法,初步開發完成的系統以柱塞泵為例,如圖5所示。
用戶聯網后,虛擬零部件由各種可視節點(node)構建,節點之間通過事件(Event)相互通訊,事件通過路由(Route)在場景中傳播,用戶的操作信息(如選擇零件、移動物體、用戶交互等)反映到本身的場景文件中,進而通過 Java Applet建立的網絡套接字,發送給服務器的Muserver。它判斷這是什么用戶,在裝那個裝配體,進行了什么操作,再決定發送什么信息給與此用戶在裝同一個裝配體(或處于同一小組)的用戶。此信息通過服務器與接收用戶對應的Mudispatcher發出,通過網絡套接字傳送到用戶的MuRecerver,再控制用戶的場景發生變化。同時,服務器端通過建立記錄制度,把每個用戶每一步操作寫入到文件中。各用戶可以進行協同裝配,圖5左邊兩圈表示一個用戶裝配完成一個零件,另一個場景也立即產生相應變化,右邊表示的是用戶的及時交互信息。

圖5 虛擬協同裝配示例
隨著虛擬網絡實驗教學應用需求日益增長,研究用于支持虛擬網絡實驗教學的架構方法和實現技術是一個重要的研究方向。本文以機械制圖網絡教學為背景,基于網絡實驗教學環境下對虛擬協同裝配提出的特殊需求,分析了其與面向設計的協同裝配實現技術之間在定義、目的等方面存在的差異,研究了實現虛擬實驗網絡教學中協同裝配的關鍵技術和實驗平臺體系結構。闡述了基于現有教學平臺體系下虛擬模型室的構建和 VRML模型轉換方式;定義了支持實現虛擬裝配過程的語義知識,對零部件間裝配約束、裝配關系及裝配行為進行了抽象和概括;就虛擬網絡實驗教學中的可裝配性特征進行了界定,并闡述了裝配過程中干涉/碰撞的檢測方法。基于以上關鍵實現技術,提出了面向虛擬網絡教學的協同裝配實驗系統的總體結構和系統執行過程。以柱塞泵的虛擬裝配實驗為例,初步驗證了本文提出的方法和架構的可行性。
[1]Bidarra R, Kranendonk N, Noort A, et al. Acollaborative framework for integrated part and assembly modeling [J]. Journal of Computing and Information Science in Engineering, 2002, 2(4):256-264.
[2]Chen L, Song Z J, Feng L. Internet-enabled real-time collaborative assembly modeling via an e-Assembly system: status and promise [J]. Computer-Aided Design, 2004, 36(9): 835-847.
[3]Shyamsundar N, Gadh R. Collaborative virtual prototyping of product assemblies over the Internet [J].Computer-Aided Design, 2002, 34(10): 755-768.
[4]秦偉俊, 史元春, 相培峰. 基于多層體系結構的網絡教學系統[J]. 清華大學學報(自然科學版), 2006,46 (7): 1301-1304.
[5]王建新, 凌 亮, 王偉平. 基于www的“計算機網絡”虛擬實驗室的設計與實現[J]. 計算機工程, 2005,31(6): 228-230.
[6]董興輝. 協同環境下預裝配方法與裝配規劃的研究[D].北京: 清華大學, 2003.
[7]李一丁. 虛擬現實技術在網絡課程中的應用[D]. 北京: 清華大學, 2002.
[8]武殿梁, 楊潤黨, 馬登哲, 等. 虛擬裝配環境中的裝配模型表達技術研究[J]. 計算機集成制造系統,2004, 10(11): 1364-1369.
[9]李永立, 張樹有, 劉振宇. VRML環境下基于語義的產品裝配設計技術研究[J]. 計算機輔助設計與圖形學學報, 2003, 15(2): 209-214.
[10]Kim K, Manley D, Yang H. Ontology-based assembly design and information sharing for collaborative product development [J]. Computer- Aided Design,2006, 38(12): 1233-1250.
[11]Dong T Y, Tong R F, Zhang L, et al. A collaborative approach to assembly sequence planning [J].Advanced Engineering Informatics, 2005, 19(2):155-168.
[12]張 燁, 寧汝新, 劉檢華. 面向虛擬裝配的裝配序列規劃技術研究[J]. 計算機集成制造系統, 2006,12(1): 90-94.
[13]王峻峰, 李世其, 劉繼紅. 面向協同裝配規劃的信息模型研究[J]. 計算機集成制造系統, 2009, 15(4):670-675.