無錫商業(yè)職業(yè)技術學院 郁 敏,信 軻
虛擬裝配技術已成為數字化制造技術在制造業(yè)中研究和應用的典范,將此技術應用于教學系統(tǒng)可以提高學生裝配任務的完成質量。
在汽車專業(yè)拆裝實習的教學過程中,學生主要面臨如下問題。第一,學生對結構件的運動過程理解困難。第二,運動部件是否存在干涉現象很難觀察并矯正。第三,復雜的裝配體內部結構了解不全面。第四,拆裝實習時,學生經常出現拆裝順序混亂,拆卸下來的部件裝不上去等現象。針對以上問題對虛擬裝配教學系統(tǒng)進行功能設計與開發(fā)。
基于OSG的虛擬裝配教學系統(tǒng)框架,主要由數據層、核心服務層、應用層及界面層等4個層面組成。各個層面之間協調工作,實現系統(tǒng)各個模塊的功能。系統(tǒng)的框架結構設計如圖1所示。
(1)界面層。使用CEGUI編程技術開發(fā)本系統(tǒng)的操作界面,系統(tǒng)中設計有VR-Space Wintracker位置跟蹤器和DG5VHand 2.0數字手套的編譯接口,通過以上交互設備可以進行虛擬瀏覽和虛擬裝配等人機交互操作,通過鍵盤按鍵可以切換為鼠標和鍵盤控制人機交換模式。
(2)應用層。應用層主要提供CAD的數據接口,管理裝配體信息。
(3)核心服務層。此層負責實現虛擬裝配教學系統(tǒng)中關鍵技術,系統(tǒng)的關鍵技術主要有場景管理、約束識別、碰撞檢測和運動仿真。
(4)數據層。數據層主要有兩大類數據,一類是CAD 系統(tǒng)中提取出的三維裝配體模型信息,另一類是包含有裝配序列、裝配路徑、裝配約束等裝配過程信息。
虛擬裝配教學系統(tǒng)引入汽車車門作為模型,主要用于汽車車門的虛擬裝配與拆卸仿真。為了更好地解決實際教學過程中存在的問題,系統(tǒng)設計并開發(fā)了車門虛擬漫游、車門附件運動仿真、車門虛擬裝配仿真、多人協同管理、車門裝配序列規(guī)劃及爆炸圖展示等6個模塊。系統(tǒng)模塊設計圖如圖2所示。
圖1 系統(tǒng)總體框架結構圖
圖2 系統(tǒng)模塊設計圖
虛擬漫游模塊主要是使用交互設備來改變攝像機位置和朝向,使用戶從不同的角度來觀察虛擬場景的效果。虛擬漫游的實現過程如圖3所示。在Viewer初始化之后,在場景中添加漫游器,通過handle處理輸入的事件,使用矩陣控制攝像機的位置,將攝像機的信息反饋到Viewer中,進行場景的更新。
從場景中選擇一個目標節(jié)點進行跟隨。通過將攝像機聚焦到場景圖形節(jié)點的方法,將視口的攝像機將跟隨節(jié)點的世界坐標進行放置,系統(tǒng)實行了對運動目標的聚焦瀏覽功能,此功能可以更為精確地觀察運動部件內部是否存在運動干涉。
車門運動附件主要包括玻璃升降器、門鎖及鉸鏈等。系統(tǒng)運動仿真動畫制作過程如圖4所示。
首先利用UG軟件建立車門模型,接著將車門模型的零件以STL格式轉出,導入3dmax軟件中。使用3dmax材質編輯器給模型加上材質和表面貼圖。接著制作玻璃升降器、門鎖、鉸鏈的運動仿真模型。最后將模型文件以.ive的格式導出,轉入到基于OSG的汽車車門虛擬裝配教學系統(tǒng),OSG加載并渲染車門模型。
本系統(tǒng)將虛擬漫游技術和3dmax的動畫技術相結合,開發(fā)車門附件運動仿真模塊,對車門附件的組成和工作原理的展示更加生動直觀,學生還可以用來校核車門附件是否存在運動干涉。
虛擬裝配仿真模塊可實現汽車車門的虛擬裝配和拆卸仿真,檢驗零件的可裝配性。此模塊工作流程設計如圖5所示。裝配時,先抓取一個零件,建立或解除零件間的約束信息,移動零件。裝配過程全程進行碰撞檢測,如果出現碰撞,則彈出對話框“模型中發(fā)生碰撞,請返回上一幀操作”。系統(tǒng)可記錄下每個零件的裝配序列和路徑,回放裝配過程,修改優(yōu)化裝配路徑和序列。調用裝配文件,還可實現裝配動畫播放功能。裝配動畫可以很好地指導學生完成裝配操作。
4.3.1 碰撞檢測
汽車車門虛擬裝配教學系統(tǒng)將ODE和OSG結合起來,利用ODE的碰撞檢測算法,編程實現實時檢測模型運動是否發(fā)生碰撞。如圖6所示,圖中畫圈區(qū)域為在安裝門鎖時,門鎖和安裝孔邊緣發(fā)生碰撞,系統(tǒng)自動彈出“模型中發(fā)生碰撞,請返回上一幀操作”的提示框。
圖3 場景漫游實現流程圖
圖4 運動仿真實現過程圖
圖5 裝配仿真模塊工作流程圖
4.3.2 路徑記錄與回放
在OSG中,使用類osg::Animation Path記錄零件的裝配路徑。實現過程如圖7所示,先定義一個結構體,結構體內存有模型的節(jié)點名稱、動作時每幀的位姿矩陣信息,信息傳入結構體形成向量組列表。路徑信息用Animation.txt文件進行記錄。
圖6 安裝過程碰撞檢測圖(截屏)
每個零件的運動路徑信息存儲在Animation.txt文件中,調用Animation.txt文件可對零件的裝配路徑進行回放。使用OSG中的osg::Animation Path Call Back 類中Updata Callback 函數來實現路徑回放功能。
圖7 路徑記錄流程圖
將Socket編程技術運用到本系統(tǒng)中,基于Socket程序靈活的移植性能,它可以平穩(wěn)地在此系統(tǒng)中運行,實現多人同時操作裝配的功能。
學生在彈出的對話框中輸入自己電腦的IP地址,便完成客戶端登陸進入虛擬裝配教學系統(tǒng)。學生可以同時對同一個裝配體進行操作,協調完成序列規(guī)劃等一系列學習任務。如圖8所示,圖中畫圈區(qū)域為三位同學拖著不同的零件同時進行車門裝配任務。此功能加強了學生之間團隊合作和溝通能力,提高了學生完成任務的效率。
圖8 三人協同裝配操作示意圖(截屏)
裝配序列規(guī)劃模塊使用分層算法來控制車門拆裝。以拆卸分層控制為例,若選取任意一個零件,搜索數據庫中存儲的此零件的節(jié)點信息,若此零件存在上層父節(jié)點,說明其上層裝配體拆卸沒有完成,用定義函數的方式阻止零件的移動;若此零件無上層父節(jié)點,說明其上層裝配體拆卸完成,可以規(guī)劃下一步的拆卸。依據自下而上分層拆卸原則,此算法克服了任意拆卸導致的混亂,符合正常的拆卸邏輯。
如圖9所示,在拖動玻璃升降器大臂時,無法移動,系統(tǒng)彈出“請完成上一層級拆卸步驟!”對話框。這是因為在拆卸玻璃升降器大臂時,沒有事先拆卸下升降器托架裝配體,所以此步驟無法進行。
裝配序列規(guī)劃模塊通過分層算法獲得合理的裝配序列,同時可對車門零部件的裝配路徑和序列做相應的調整,刪除不合理的規(guī)劃序列或路徑,從而獲取較優(yōu)的規(guī)劃結果。
圖9 拆卸序列規(guī)劃過程圖(截屏)
爆炸圖生成模塊算法是基于零件的拆卸序列,可分別實現總裝配及子裝配體的全局爆炸和局部爆炸。用零件包圍盒進行零件位置的描述,利用拆卸矩陣實現裝配體的爆炸。獲得的爆炸圖可清晰地展示汽車車門裝配體的內部結構,加深學生對車門內部結構的了解。如圖10為車門模型爆炸全局圖。
圖10 車門全局爆炸圖(截屏)
本文結合拆裝實習教學過程中問題與需求,設計并開發(fā)了汽車車門虛擬裝配教學系統(tǒng)。6大功能模塊很好地解決了教學過程中存在的問題,提高了學生拆裝實訓的裝配效率和精度,加強了協同拆裝過程中的團隊合作精神。