夏 齡, 周德榮, 陳 鵬
(1. 四川民族學院 網絡信息中心,四川 康定626001;2. 西南交通大學 機械工程學院,四川 成都610031)
裝配設計是現代產品設計的關鍵環節之一,良好的裝配設計與裝配工藝規劃能夠提高產品的生產效率、改善產品的裝配質量[1]。虛擬制造在現代制造體系中,是一種全新的制造方式,是現代制造的重要標志[2]。虛擬裝配(Virtual Assembly,VA)是虛擬現實技術在設計領域和制造領域的重要應用,是虛擬制造的重要組成部分[3],在構建的虛擬環境(Virtual Enviroment,VE)中,使用數據手套/位置跟蹤器、鼠標/鍵盤、力反饋操作設備等交互設備模擬產品的實際裝配過程,就象在真實環境中一樣對產品的零部件進行各類裝配操作,并通過可視化顯示出來。利用虛擬裝配,可以分析零件之間的配合好壞、產品的可裝配性,規劃產品裝配流程與產品制造工藝,在產品設計階段驗證裝配設計和裝配操作的正確與否,及早發現實際裝配中可能出現的問題,并對模型進行再修改,避免因裝配上出現的問題而進行產品的重新設計[4],縮短開發周期,降低開發成本。
虛擬裝配技術的研究重點之一是基于Web 的協同虛擬裝配系統。隨著制造業全球化進程的加速,并行工程、協同設計思想都被廣泛引入現代制造技術,異地協同技術需要一個實時互動、安全可靠、魯棒的網絡環境[5]。實時協同設計系統受網絡帶寬制約,大多基于文本或二維CAD 工程圖紙設計,缺少逼真性,臨場感較差[6]。三維協同設計系統離不開商品化CAD 平臺的有力支持,在基于Web 的應用中大受影響[7]。另外,利用虛擬現實建模語言(Virtual Reality Modeling Language,VRML)建立的基于Web 和VR 的虛擬環境雖然能滿足場景渲染的實時性、仿真過程的真實感以及遠程異地協同工作等方面的要求,但交互手段局限于傳統的二維鼠標、鍵盤等,缺少與數據手套、位置跟蹤器等設備的接口能力,不能實現更自然的交互操作[8]。為彌補上述不足,本文利用虛擬現實、Web 等技術,以Java3D、Pro/E 為工具,將多通道人機交互、基于Web 的虛擬現實和CAD 技術相結合,在網絡環境下接入5DT Data Glove 5 型數據手套,設計了數據讀取模塊,采用手勢識別技術,在有限的網絡帶寬下實現了虛擬環境中S195 型柴油機的裝配仿真。
S195 型柴油機主要用于小規模排水與灌溉、農副產品加工、發電機械等場合,是一種目前廣泛使用的機型。S195 型柴油機上容易裝反的零件有20 種[9],如果安裝不當將導致嚴重故障[10]。通過本系統的裝配過程仿真,可以形象直觀地了解關鍵零部件的正確安裝順序,以較低的成本避免上述錯誤。
本文研究了基于B/S 模式的分布式系統,設計了基于Java/Java3D 開發環境的系統軟硬件配置方案,開發了一個半沉浸式的虛擬裝配系統平臺,由三維零件庫、裝配約束庫、手勢定義模塊、裝配信息管理模塊、數據手套的數據讀取模塊、虛擬場景管理模塊等部分組成。在此平臺下,用戶配戴數據手套,在基于Web的虛擬交互環境下對系統中的虛擬零件進行操作,完成整個裝配過程。系統采用B/S 模式的網絡環境,用戶通過瀏覽器訪問系統服務器,登錄系統主界面,進行基于Web 的虛擬裝配。
系統硬件環境由PC 機(3.2GHz 雙核CPU、1GB獨立顯卡、4GB 內存)、5DT Data Glove 5 型數據手套(右手,5 個自由度)組成。主界面采用HTML 網頁嵌套Java Applet 和Java3D 虛擬環境。Java3D API 是在OpenGL 和VRML 基礎上發展起來的一組API,隱藏了許多編程細節,提供了一套抽象、交互式的3D 對象形為和控制模型,可以方便地設計出復雜的三維虛擬場景[11]。與VRML 不同,Java3D 具有外部設備接口,使得多通道人機交互成為可能。同時,作為Java 的輔助包,Java3D 可以實現更多的網絡功能。由于Java3D 傳輸的是生成三維圖像的控制程序和數據,對網絡負荷影響極小,利于三維數據在Web 環境中的實時傳輸和渲染[12]。
虛擬手的建模必須遵循手的解剖結構、手的運動學模型和系統使用的數據手套情況。本系統使用5DT Data Glove 5 型數據手套,配備5 個光纖傳感器,分布位置如圖1 如示。

圖1 數據手套傳感器分布位置
虛擬手需要對數據手套的數據作出實時響應,而手由手掌和多個關節組成,意味著虛擬手建模需要將手分解成許多個部分進行一一對應建模,這是十分繁雜的工作。在本系統中,虛擬手只用于手勢識別而不涉及具體的虛擬操作,對虛擬手模型的精度沒有特殊要求,可不進行碰撞檢測。但由于手掌較復雜,手掌的建模采用CAD/CAM/CAE 一體化的三維軟件Pro/E的曲面造型功能來實現,各手指指段和關節點分別用圓柱體和球體來實現[13]。關節點球體是為了避免手指彎曲時出現指段間的“裂痕”現象,以保證手操作的真實感。所用的圓柱體和球體建模直接在VRML 中完成。
經過分析,將S195 型柴油機劃分成若干個零部件,如曲軸連桿活塞、齒輪傳動、氣門活塞等,包括飛輪、噴油泵、滾輪、滾輪銷、凸輪、氣門導管、推桿、柱塞套等。零部件模型可使用Java3D 本身的三維造型功能完成,也可采用CAD 一類的建模軟件生成,再通過Java3D 第三方導入器導入到虛擬場景中。由于機械零部件構造的復雜性,本文中的3D 零部件模型采用后一種方法來生成。先使用Pro/E 軟件對零部件進行建模,以VRML 格式保存起來,再對其進行優化處理,按規則保存到零部件庫中。零部件按指定規則命名后,用戶即可通過系統的Applet 控制界面,將零件導入或移出虛擬場景。為降低系統復雜度、擴大系統適用性、提高系統可擴展性,修改零部件模型采用虛擬環境之外的建模軟件來完成。VRML 文件定義的不是渲染后的場景,而是客戶端的渲染指令,所以其大小遠小于其他三維文件格式,彌補了由于三維模型過大不利于網絡傳輸的不足。
虛擬約束的實現是虛擬裝配過程仿真中的重要問題之一[14]。裝配約束庫是系統的核心模塊。產品零部件之間的約束條件或裝配關系是通過裝配零件的位置和方向的改變來實現的。以軸孔裝配為例,軸和孔的約束本質上是限制軸(稱為目標零件)的運動,施加約束后,軸只能沿孔(稱為基準零件)的軸線方向移動或旋轉(此時,軸的自由度減少為2)。
虛擬裝配具有人機交互操作、多通道融合等特點,而人機交互是虛擬裝配的技術瓶頸之一。為克服傳統輸入輸出設備的不足,本系統設計為支持多通道輸入,零部件的裝配過程通過鍵盤、鼠標控制,目標零件與基準零件之間的約束關系通過數據手套的手勢確定。在分析各種常用手勢基礎上,本文定義了全伸展、握拳、一型、V 型、OK 型五種手勢,五種手勢對應的含義與映射約束關系如圖2 所示。

圖2 手勢與映射約束
用戶在裝配零件時,根據零部件的裝配情況,利用數據手套中定義的手勢來選擇所需的約束條件,使用鍵盤或鼠標對零部件進行旋轉、平移等虛擬裝配操作。
在Web 環境下,本文實現了基于手勢識別的S195型柴油機的半沉浸式虛擬裝配。虛擬現實系統開發的重要環節之一是虛擬現實硬件設備的接入[15]。Java 提供了通信API(包含于javax.comm 包中),將comm.jar擴展類庫加入到JDK 安裝文件夾的jrelibext 目錄下,通過與具體機器無關的方式,實現對數據手套的控制。本文通過RS-232 串口實時讀取數據手套的數據。
圖3 所示場景為系統導入活塞,虛擬手是伸展手勢,此時沒有施加任何約束。系統下一步導入連桿,當連桿移動到活塞附近時,進行位置檢測,如果滿足條件則讀取數據手套的數據,并將該數據轉換為相應的約束。此時虛擬手為V 型手勢,系統施加的約束是基準軸線重合,使連桿和活塞的中心軸對齊,實現軸孔配合約束,如圖4 所示。

圖3 伸展手勢,未施加任何約束

圖4 V 手勢,施加基準軸線重合約束
當虛擬手的手勢變為OK 型手勢后,映射基準軸線平行約束,系統自動遍歷最后導入的兩個零件的幾何特征,找到定義該約束的基準軸線,施加基準軸線平行約束。圖5 所示為完成了虛擬裝配的場景。

圖5 OK 手勢,施加基準軸線平行約束
零件裝配時,系統按設定的時間間隔自動對零件的裝配位置信息進行取樣并保存在記錄文件中。當裝配結束后,通過提取該零部件的位置信息,零件可以沿著記錄文件中保存的位置信息運動,再現裝配時的軌跡,實現零件的裝配過程仿真。
本文利用Java3D、Pro/E、虛擬現實、Web 等技術,將多通道人機交互、基于Web 的虛擬現實和CAD 技術相結合,研究了虛擬手建模、手勢定義和識別、裝配仿真等問題,在網絡環境下接入5DT Data Glove 5 型數據手套,設計了數據讀取模塊,采用手勢識別技術,構建了B/S 模式的VR 系統,充分發揮Web3D 的優勢,在有限的網絡帶寬下實現了虛擬環境中S195 型柴油機的裝配仿真,以多通道的交互式平臺支持產品的協同設計。通過本系統的裝配過程仿真,可以形象直觀地了解關鍵零部件的正確安裝順序,避免發生零件裝反、安裝不當等問題,為實際操作人員提供了一種先進高效的培訓手段。
[1] Seth A,Vance J M,Oliver J H. Virtual Reality for Assembly Methods Prototyping:a Review[J]. Virtual reality,2011(15):5-20.
[2] 曹毅杰. 虛擬制造及其應用[J].制造業自動化,2012,34(12):75-77,85.
[3] 范孝良,梁宇紅.基于UG 的機床夾具虛擬裝配技術研究[J]. 機械設計與制造,2011(8):237-239.
[4] 唐秀楨.基于Web 的虛擬裝配系統的設計及實現[D]. 成都:西南交通大學,2006.
[5] 行開新,田 凌.支持異地協同設計的異構CAD 虛擬裝配系統[J].清華大學學報(自然科學版),2009(2):226-231.
[6] 唐秀楨.基于Web 的虛擬裝配系統的設計及實現[D]. 成都:西南交通大學,2006.
[7] 劉川江.基于Web3D 的虛擬家具展示及交易系統的研究及實現[D].成都:電子科技大學,2009.
[8] Peijun Wang,Robert Bjarnemo,Damien Motte. A Web-based Interactive Virtual Environment for Mobile Phone Customization[J].Transactions of the ASME:Journal of Computing and Information Science in Engineering,2005,3(5):67-70.
[9] 何 北.S195 柴油機上17 個易裝反零件[J]. 農機具之友,1996(1):16-17.
[10] 張廣成.S195 柴油機安裝不當引起的故障20 則[J]. 廣西農業機械化,1994(6):27-28.
[11] 都志輝,劉 鵬,陳 渝,等.Java3D 編程實踐[M].北京:清華大學出版社,2002.
[12] 陳 鵬,王培俊,唐秀楨.基于Web 的立體顯示和多通道實時交互技術的研究[J]. 機械與電子,2006(9):58-60.
[13] 王文靜.基于數據手套及OBB 算法的虛擬裝配系統研究[D].成都:西南交通大學,2009.
[14] 張志賢,劉檢華,寧汝新. 虛擬裝配中的裝配約束實現技術研究[J].系統仿真學報,2011,23(9):1878-1883.
[15] (美)Grigore C Burdea,(法)Philippe Coiffet.虛擬現實技術[M].北京:電子工業出版社,2005.