夏 齡, 周德榮, 陳 鵬
(1. 四川民族學(xué)院 網(wǎng)絡(luò)信息中心,四川 康定626001;2. 西南交通大學(xué) 機(jī)械工程學(xué)院,四川 成都610031)
裝配設(shè)計(jì)是現(xiàn)代產(chǎn)品設(shè)計(jì)的關(guān)鍵環(huán)節(jié)之一,良好的裝配設(shè)計(jì)與裝配工藝規(guī)劃能夠提高產(chǎn)品的生產(chǎn)效率、改善產(chǎn)品的裝配質(zhì)量[1]。虛擬制造在現(xiàn)代制造體系中,是一種全新的制造方式,是現(xiàn)代制造的重要標(biāo)志[2]。虛擬裝配(Virtual Assembly,VA)是虛擬現(xiàn)實(shí)技術(shù)在設(shè)計(jì)領(lǐng)域和制造領(lǐng)域的重要應(yīng)用,是虛擬制造的重要組成部分[3],在構(gòu)建的虛擬環(huán)境(Virtual Enviroment,VE)中,使用數(shù)據(jù)手套/位置跟蹤器、鼠標(biāo)/鍵盤、力反饋操作設(shè)備等交互設(shè)備模擬產(chǎn)品的實(shí)際裝配過(guò)程,就象在真實(shí)環(huán)境中一樣對(duì)產(chǎn)品的零部件進(jìn)行各類裝配操作,并通過(guò)可視化顯示出來(lái)。利用虛擬裝配,可以分析零件之間的配合好壞、產(chǎn)品的可裝配性,規(guī)劃產(chǎn)品裝配流程與產(chǎn)品制造工藝,在產(chǎn)品設(shè)計(jì)階段驗(yàn)證裝配設(shè)計(jì)和裝配操作的正確與否,及早發(fā)現(xiàn)實(shí)際裝配中可能出現(xiàn)的問(wèn)題,并對(duì)模型進(jìn)行再修改,避免因裝配上出現(xiàn)的問(wèn)題而進(jìn)行產(chǎn)品的重新設(shè)計(jì)[4],縮短開發(fā)周期,降低開發(fā)成本。
虛擬裝配技術(shù)的研究重點(diǎn)之一是基于Web 的協(xié)同虛擬裝配系統(tǒng)。隨著制造業(yè)全球化進(jìn)程的加速,并行工程、協(xié)同設(shè)計(jì)思想都被廣泛引入現(xiàn)代制造技術(shù),異地協(xié)同技術(shù)需要一個(gè)實(shí)時(shí)互動(dòng)、安全可靠、魯棒的網(wǎng)絡(luò)環(huán)境[5]。實(shí)時(shí)協(xié)同設(shè)計(jì)系統(tǒng)受網(wǎng)絡(luò)帶寬制約,大多基于文本或二維CAD 工程圖紙?jiān)O(shè)計(jì),缺少逼真性,臨場(chǎng)感較差[6]。三維協(xié)同設(shè)計(jì)系統(tǒng)離不開商品化CAD 平臺(tái)的有力支持,在基于Web 的應(yīng)用中大受影響[7]。另外,利用虛擬現(xiàn)實(shí)建模語(yǔ)言(Virtual Reality Modeling Language,VRML)建立的基于Web 和VR 的虛擬環(huán)境雖然能滿足場(chǎng)景渲染的實(shí)時(shí)性、仿真過(guò)程的真實(shí)感以及遠(yuǎn)程異地協(xié)同工作等方面的要求,但交互手段局限于傳統(tǒng)的二維鼠標(biāo)、鍵盤等,缺少與數(shù)據(jù)手套、位置跟蹤器等設(shè)備的接口能力,不能實(shí)現(xiàn)更自然的交互操作[8]。為彌補(bǔ)上述不足,本文利用虛擬現(xiàn)實(shí)、Web 等技術(shù),以Java3D、Pro/E 為工具,將多通道人機(jī)交互、基于Web 的虛擬現(xiàn)實(shí)和CAD 技術(shù)相結(jié)合,在網(wǎng)絡(luò)環(huán)境下接入5DT Data Glove 5 型數(shù)據(jù)手套,設(shè)計(jì)了數(shù)據(jù)讀取模塊,采用手勢(shì)識(shí)別技術(shù),在有限的網(wǎng)絡(luò)帶寬下實(shí)現(xiàn)了虛擬環(huán)境中S195 型柴油機(jī)的裝配仿真。
S195 型柴油機(jī)主要用于小規(guī)模排水與灌溉、農(nóng)副產(chǎn)品加工、發(fā)電機(jī)械等場(chǎng)合,是一種目前廣泛使用的機(jī)型。S195 型柴油機(jī)上容易裝反的零件有20 種[9],如果安裝不當(dāng)將導(dǎo)致嚴(yán)重故障[10]。通過(guò)本系統(tǒng)的裝配過(guò)程仿真,可以形象直觀地了解關(guān)鍵零部件的正確安裝順序,以較低的成本避免上述錯(cuò)誤。
本文研究了基于B/S 模式的分布式系統(tǒng),設(shè)計(jì)了基于Java/Java3D 開發(fā)環(huán)境的系統(tǒng)軟硬件配置方案,開發(fā)了一個(gè)半沉浸式的虛擬裝配系統(tǒng)平臺(tái),由三維零件庫(kù)、裝配約束庫(kù)、手勢(shì)定義模塊、裝配信息管理模塊、數(shù)據(jù)手套的數(shù)據(jù)讀取模塊、虛擬場(chǎng)景管理模塊等部分組成。在此平臺(tái)下,用戶配戴數(shù)據(jù)手套,在基于Web的虛擬交互環(huán)境下對(duì)系統(tǒng)中的虛擬零件進(jìn)行操作,完成整個(gè)裝配過(guò)程。系統(tǒng)采用B/S 模式的網(wǎng)絡(luò)環(huán)境,用戶通過(guò)瀏覽器訪問(wèn)系統(tǒng)服務(wù)器,登錄系統(tǒng)主界面,進(jìn)行基于Web 的虛擬裝配。
系統(tǒng)硬件環(huán)境由PC 機(jī)(3.2GHz 雙核CPU、1GB獨(dú)立顯卡、4GB 內(nèi)存)、5DT Data Glove 5 型數(shù)據(jù)手套(右手,5 個(gè)自由度)組成。主界面采用HTML 網(wǎng)頁(yè)嵌套Java Applet 和Java3D 虛擬環(huán)境。Java3D API 是在OpenGL 和VRML 基礎(chǔ)上發(fā)展起來(lái)的一組API,隱藏了許多編程細(xì)節(jié),提供了一套抽象、交互式的3D 對(duì)象形為和控制模型,可以方便地設(shè)計(jì)出復(fù)雜的三維虛擬場(chǎng)景[11]。與VRML 不同,Java3D 具有外部設(shè)備接口,使得多通道人機(jī)交互成為可能。同時(shí),作為Java 的輔助包,Java3D 可以實(shí)現(xiàn)更多的網(wǎng)絡(luò)功能。由于Java3D 傳輸?shù)氖巧扇S圖像的控制程序和數(shù)據(jù),對(duì)網(wǎng)絡(luò)負(fù)荷影響極小,利于三維數(shù)據(jù)在Web 環(huán)境中的實(shí)時(shí)傳輸和渲染[12]。
虛擬手的建模必須遵循手的解剖結(jié)構(gòu)、手的運(yùn)動(dòng)學(xué)模型和系統(tǒng)使用的數(shù)據(jù)手套情況。本系統(tǒng)使用5DT Data Glove 5 型數(shù)據(jù)手套,配備5 個(gè)光纖傳感器,分布位置如圖1 如示。
圖1 數(shù)據(jù)手套傳感器分布位置
虛擬手需要對(duì)數(shù)據(jù)手套的數(shù)據(jù)作出實(shí)時(shí)響應(yīng),而手由手掌和多個(gè)關(guān)節(jié)組成,意味著虛擬手建模需要將手分解成許多個(gè)部分進(jìn)行一一對(duì)應(yīng)建模,這是十分繁雜的工作。在本系統(tǒng)中,虛擬手只用于手勢(shì)識(shí)別而不涉及具體的虛擬操作,對(duì)虛擬手模型的精度沒(méi)有特殊要求,可不進(jìn)行碰撞檢測(cè)。但由于手掌較復(fù)雜,手掌的建模采用CAD/CAM/CAE 一體化的三維軟件Pro/E的曲面造型功能來(lái)實(shí)現(xiàn),各手指指段和關(guān)節(jié)點(diǎn)分別用圓柱體和球體來(lái)實(shí)現(xiàn)[13]。關(guān)節(jié)點(diǎn)球體是為了避免手指彎曲時(shí)出現(xiàn)指段間的“裂痕”現(xiàn)象,以保證手操作的真實(shí)感。所用的圓柱體和球體建模直接在VRML 中完成。
經(jīng)過(guò)分析,將S195 型柴油機(jī)劃分成若干個(gè)零部件,如曲軸連桿活塞、齒輪傳動(dòng)、氣門活塞等,包括飛輪、噴油泵、滾輪、滾輪銷、凸輪、氣門導(dǎo)管、推桿、柱塞套等。零部件模型可使用Java3D 本身的三維造型功能完成,也可采用CAD 一類的建模軟件生成,再通過(guò)Java3D 第三方導(dǎo)入器導(dǎo)入到虛擬場(chǎng)景中。由于機(jī)械零部件構(gòu)造的復(fù)雜性,本文中的3D 零部件模型采用后一種方法來(lái)生成。先使用Pro/E 軟件對(duì)零部件進(jìn)行建模,以VRML 格式保存起來(lái),再對(duì)其進(jìn)行優(yōu)化處理,按規(guī)則保存到零部件庫(kù)中。零部件按指定規(guī)則命名后,用戶即可通過(guò)系統(tǒng)的Applet 控制界面,將零件導(dǎo)入或移出虛擬場(chǎng)景。為降低系統(tǒng)復(fù)雜度、擴(kuò)大系統(tǒng)適用性、提高系統(tǒng)可擴(kuò)展性,修改零部件模型采用虛擬環(huán)境之外的建模軟件來(lái)完成。VRML 文件定義的不是渲染后的場(chǎng)景,而是客戶端的渲染指令,所以其大小遠(yuǎn)小于其他三維文件格式,彌補(bǔ)了由于三維模型過(guò)大不利于網(wǎng)絡(luò)傳輸?shù)牟蛔恪?/p>
虛擬約束的實(shí)現(xiàn)是虛擬裝配過(guò)程仿真中的重要問(wèn)題之一[14]。裝配約束庫(kù)是系統(tǒng)的核心模塊。產(chǎn)品零部件之間的約束條件或裝配關(guān)系是通過(guò)裝配零件的位置和方向的改變來(lái)實(shí)現(xiàn)的。以軸孔裝配為例,軸和孔的約束本質(zhì)上是限制軸(稱為目標(biāo)零件)的運(yùn)動(dòng),施加約束后,軸只能沿孔(稱為基準(zhǔn)零件)的軸線方向移動(dòng)或旋轉(zhuǎn)(此時(shí),軸的自由度減少為2)。
虛擬裝配具有人機(jī)交互操作、多通道融合等特點(diǎn),而人機(jī)交互是虛擬裝配的技術(shù)瓶頸之一。為克服傳統(tǒng)輸入輸出設(shè)備的不足,本系統(tǒng)設(shè)計(jì)為支持多通道輸入,零部件的裝配過(guò)程通過(guò)鍵盤、鼠標(biāo)控制,目標(biāo)零件與基準(zhǔn)零件之間的約束關(guān)系通過(guò)數(shù)據(jù)手套的手勢(shì)確定。在分析各種常用手勢(shì)基礎(chǔ)上,本文定義了全伸展、握拳、一型、V 型、OK 型五種手勢(shì),五種手勢(shì)對(duì)應(yīng)的含義與映射約束關(guān)系如圖2 所示。
圖2 手勢(shì)與映射約束
用戶在裝配零件時(shí),根據(jù)零部件的裝配情況,利用數(shù)據(jù)手套中定義的手勢(shì)來(lái)選擇所需的約束條件,使用鍵盤或鼠標(biāo)對(duì)零部件進(jìn)行旋轉(zhuǎn)、平移等虛擬裝配操作。
在Web 環(huán)境下,本文實(shí)現(xiàn)了基于手勢(shì)識(shí)別的S195型柴油機(jī)的半沉浸式虛擬裝配。虛擬現(xiàn)實(shí)系統(tǒng)開發(fā)的重要環(huán)節(jié)之一是虛擬現(xiàn)實(shí)硬件設(shè)備的接入[15]。Java 提供了通信API(包含于javax.comm 包中),將comm.jar擴(kuò)展類庫(kù)加入到JDK 安裝文件夾的jrelibext 目錄下,通過(guò)與具體機(jī)器無(wú)關(guān)的方式,實(shí)現(xiàn)對(duì)數(shù)據(jù)手套的控制。本文通過(guò)RS-232 串口實(shí)時(shí)讀取數(shù)據(jù)手套的數(shù)據(jù)。
圖3 所示場(chǎng)景為系統(tǒng)導(dǎo)入活塞,虛擬手是伸展手勢(shì),此時(shí)沒(méi)有施加任何約束。系統(tǒng)下一步導(dǎo)入連桿,當(dāng)連桿移動(dòng)到活塞附近時(shí),進(jìn)行位置檢測(cè),如果滿足條件則讀取數(shù)據(jù)手套的數(shù)據(jù),并將該數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的約束。此時(shí)虛擬手為V 型手勢(shì),系統(tǒng)施加的約束是基準(zhǔn)軸線重合,使連桿和活塞的中心軸對(duì)齊,實(shí)現(xiàn)軸孔配合約束,如圖4 所示。
圖3 伸展手勢(shì),未施加任何約束
圖4 V 手勢(shì),施加基準(zhǔn)軸線重合約束
當(dāng)虛擬手的手勢(shì)變?yōu)镺K 型手勢(shì)后,映射基準(zhǔn)軸線平行約束,系統(tǒng)自動(dòng)遍歷最后導(dǎo)入的兩個(gè)零件的幾何特征,找到定義該約束的基準(zhǔn)軸線,施加基準(zhǔn)軸線平行約束。圖5 所示為完成了虛擬裝配的場(chǎng)景。
圖5 OK 手勢(shì),施加基準(zhǔn)軸線平行約束
零件裝配時(shí),系統(tǒng)按設(shè)定的時(shí)間間隔自動(dòng)對(duì)零件的裝配位置信息進(jìn)行取樣并保存在記錄文件中。當(dāng)裝配結(jié)束后,通過(guò)提取該零部件的位置信息,零件可以沿著記錄文件中保存的位置信息運(yùn)動(dòng),再現(xiàn)裝配時(shí)的軌跡,實(shí)現(xiàn)零件的裝配過(guò)程仿真。
本文利用Java3D、Pro/E、虛擬現(xiàn)實(shí)、Web 等技術(shù),將多通道人機(jī)交互、基于Web 的虛擬現(xiàn)實(shí)和CAD 技術(shù)相結(jié)合,研究了虛擬手建模、手勢(shì)定義和識(shí)別、裝配仿真等問(wèn)題,在網(wǎng)絡(luò)環(huán)境下接入5DT Data Glove 5 型數(shù)據(jù)手套,設(shè)計(jì)了數(shù)據(jù)讀取模塊,采用手勢(shì)識(shí)別技術(shù),構(gòu)建了B/S 模式的VR 系統(tǒng),充分發(fā)揮Web3D 的優(yōu)勢(shì),在有限的網(wǎng)絡(luò)帶寬下實(shí)現(xiàn)了虛擬環(huán)境中S195 型柴油機(jī)的裝配仿真,以多通道的交互式平臺(tái)支持產(chǎn)品的協(xié)同設(shè)計(jì)。通過(guò)本系統(tǒng)的裝配過(guò)程仿真,可以形象直觀地了解關(guān)鍵零部件的正確安裝順序,避免發(fā)生零件裝反、安裝不當(dāng)?shù)葐?wèn)題,為實(shí)際操作人員提供了一種先進(jìn)高效的培訓(xùn)手段。
[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] 曹毅杰. 虛擬制造及其應(yīng)用[J].制造業(yè)自動(dòng)化,2012,34(12):75-77,85.
[3] 范孝良,梁宇紅.基于UG 的機(jī)床夾具虛擬裝配技術(shù)研究[J]. 機(jī)械設(shè)計(jì)與制造,2011(8):237-239.
[4] 唐秀楨.基于Web 的虛擬裝配系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[D]. 成都:西南交通大學(xué),2006.
[5] 行開新,田 凌.支持異地協(xié)同設(shè)計(jì)的異構(gòu)CAD 虛擬裝配系統(tǒng)[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2009(2):226-231.
[6] 唐秀楨.基于Web 的虛擬裝配系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[D]. 成都:西南交通大學(xué),2006.
[7] 劉川江.基于Web3D 的虛擬家具展示及交易系統(tǒng)的研究及實(shí)現(xiàn)[D].成都:電子科技大學(xué),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 柴油機(jī)上17 個(gè)易裝反零件[J]. 農(nóng)機(jī)具之友,1996(1):16-17.
[10] 張廣成.S195 柴油機(jī)安裝不當(dāng)引起的故障20 則[J]. 廣西農(nóng)業(yè)機(jī)械化,1994(6):27-28.
[11] 都志輝,劉 鵬,陳 渝,等.Java3D 編程實(shí)踐[M].北京:清華大學(xué)出版社,2002.
[12] 陳 鵬,王培俊,唐秀楨.基于Web 的立體顯示和多通道實(shí)時(shí)交互技術(shù)的研究[J]. 機(jī)械與電子,2006(9):58-60.
[13] 王文靜.基于數(shù)據(jù)手套及OBB 算法的虛擬裝配系統(tǒng)研究[D].成都:西南交通大學(xué),2009.
[14] 張志賢,劉檢華,寧汝新. 虛擬裝配中的裝配約束實(shí)現(xiàn)技術(shù)研究[J].系統(tǒng)仿真學(xué)報(bào),2011,23(9):1878-1883.
[15] (美)Grigore C Burdea,(法)Philippe Coiffet.虛擬現(xiàn)實(shí)技術(shù)[M].北京:電子工業(yè)出版社,2005.