摘要:針對培訓系統要求人機交互界面好以及沉浸感強等特點,在鉆床教學系統開發中采用實時3D 建構工具Quest3D,提出了一種針對鉆床教學培訓的虛擬現實系統的開發方案,將虛擬現實系統分為三維顯示模塊,運動控制模塊,場景交互模塊和場景聲控模塊等,通過Quest3D的圖形編程使得整個系統開發周期縮短,運行效率提高。成功將三維場景虛擬交互技術運用于鉆床教學培訓系統中。
關鍵詞:三維場景交互;教學培訓系統;虛擬仿真;Quest3D
1 、引言
在機床教學培訓中,由于資金的限制,很難滿足人才培養所需的設備或實驗室,并且在實際加工過程中,由于操作的不當,往往會造成設備的損失以及人員的傷害。而虛擬現實技術開發的培訓系統可以很好地解決資金和安全的難題,并能起到實時培訓的效果。
近年,國內外關于虛擬現實技術在機床中應用的研究很多。文獻[1]將Pro/E的NC代碼自動生成技術和VERICUT的加工仿真功能結合起來,提出了一種Pro/E 和VERICUT 聯合運用的虛擬機床技術。文獻[2]將Vericut 和Master-CAM結合,實現了機床的仿真過程,該仿真易學易用,可作為教學中對機床教學的一種補充。文獻[3]利用VRML 與JavaScript 并結合VC++6.0 和OpenGL 開發了一個基于Web 的加工中心虛擬加工仿真系統,可實現Web 環境下機床三維瀏覽,運動仿真,裝配顯示等功能。文獻[4]實現了在Open Inventor 平臺下數控機床的三維可視化操作仿真系統,提出了一種逼真的虛擬環境下的數控機床操作方法。文獻[5]基于VRML 和Unity3D 提出了一種虛擬現實在人機交互中的應用,但其人機交互界面性效果不是很好。
文獻[6]通過對數控車削仿真系統的開發與研究,實現了切削加工的動態顯示。文獻[7]基于VC++與OpenGL 開發了虛擬數控加工仿真系統,通過對G代碼的讀取和自定義輸入,實現了車削加工的動態仿真。文獻[8]基于Open Inventor 提出了一種數控培訓系統的現實方案,并打破了傳統數控仿真軟件的操作界面,在立體投影環境中具有深度沉浸感,交互性強。文獻[9]提出利用虛擬現實技術,網絡技術和多媒體技術,開發了基于VRML 和C/S 結構模式的集培訓與考核功能于一體的數控加工實訓系統。楊麗娟[10]利用VisualBasic 6.0 開發的可視化數控車削虛擬教學系統,雖然實現了程序編輯,機床操作,參數設置等內容,但是該系統采用界面式的操作,和現實機床的操作有所區別,不能建立很深的沉浸感,并且采用基礎語言編程,使得系統開發周期較長。楊萍,韓曉明等[11]將Quest3D 技術應用于虛擬駕駛平臺系統開發,并實現了駕駛模擬系統中運動物體的物理仿真。文獻[12]利用建模工具Solidworks和3Ds Max 建立火箭炮的火控系統的3D 模型,通過Virtools 建立互動接口,實現火箭炮的虛擬教學系統方案。
文獻[13]在虛擬機床及虛擬工藝回顧中提到早期國外對于虛擬現實在機械工藝中的研究主要在于虛擬工藝環境的研究;而近年來開辟了仿真技術,建立了一些虛擬機床以及虛擬機械加工工藝的系統,有的基于網絡,有的系統則是強調硬件交互能力。這些研究在虛擬機床仿真方面都取得了一些進展,但總的來說,這些研究主要存在以下局限性:沒有形成一套完整的系統;大多系統基于基礎語言開發的,開發難度大、周期長,功能實現起來困難;有的系統對計算機配置要求很高,一般都基于高檔圖形工作站;所有系統都是針對數控機床加工仿真的,沒有一套專門針對普通機床教學和培訓開發的系統。本文基于Quest3D 平臺提出了一種針對機床仿真教學的培訓系統,該方案從虛擬環境上不但考慮了環境的視覺,還加入了機床運行時的聲音環境,增強了系統的沉寖感;在人機交互式上,郭建,汪廣擴等[14]基于Quest3D 采用二維按鈕觸控方式,開發了一套關于車床教學的培訓系統。
而對鉆床培訓系統采用三維場景交互的方式,使系統的交互性更貼近現實。通過solid edge 建立機床的三維實體模型,接著導入3DMax 進行渲染并導出.X文件,最后通過Quest3D 平臺實現三維場景的人機交互。另外,教學系統還應起到引導學員進行正確操作的作用,該系統在界面中不但給出了機床工作時的主要參數,還給出了每個按鈕的功能及操作提示,使得界面更加人性化。用戶在操作系統的過程中,具有較為真實的多種感知體驗,強化了人員的參與感,給學習者留下較為深刻的印象。
2 、系統的總體設計
2.1 系統的總體框架
本文中虛擬鉆床教學培訓系統由五個模塊組成,分別是:三維顯示模塊、運動控制模塊、人機交互模塊、數據采集與處理模塊、場景聲控模塊。其結構如圖1。三維顯示模塊以及聲控模塊主要是對三維虛擬場景的一個模擬,是整個系統人機交互界面的基礎,人機交互模塊即實現用戶在面向三維場景時對系統進行操作,而運動控制模塊則是根據用戶的操作信息,將驅動相應的三維實體做出與之對應的運動,最終通過數據模塊將某些重要實體的運動信息采集起來經過運算處理后在場景中顯現出相應的數據。
圖1 系統總體框架
2.2 鉆床運動的總體設計
現實中,鉆床主要由床身,主軸,主軸箱,電機,工作臺,升降主軸,鉆頭以及一些按鈕或手柄組成。從實際出發,將鉆床運動分為四個部分:按鈕和手柄的運動、工作臺的運動、刀具的運動、主軸的運動。其結構如圖2。
圖2 鉆床運動框架
3 、系統的開發過程
3.1 三維顯示模塊設計
3.1.1 三維模型的建立與導入
本教學系統使用solid edge 根據收集的二維圖紙建立Z5140 鉆床的三維模型,在建模過程中,沒有畫出鉆床內部的細節,只是對機床的外觀進行了建模;將建好的模型導出為STL 格式,再導入到3DMax 軟件進行渲染,并經過坐標的變換處理后導出為.X格式文件。將.X文件以single object 的類型導入到Quest3D中。
3.1.2 系統場景的設置
場景設置主要包括光照設置、攝影機視角設置、貼圖效果設置、環境音效設置等。
場景渲染如圖3 所示。
圖3 場景渲染
對于場景的渲染,一般通過在渲染通道下加入物體相機和燈光以及需要渲染的三維物體,通過該場景渲染模塊,可以給人展示逼真的三維效果,系統選用物體注視相機(Object Inspection Camera)作為場景的交互窗口,還可以通過鼠標來旋轉場景和對場景進行縮放。
光照設置,環境音效以及貼圖效果設置的主要目的是給用戶帶來視覺沖擊,增強用戶的沉浸感和系統的交互性。光源的位置通過運動矩陣來調節,整個場景主要以平行光作為主光源,采用點光源對某些陰影部分進行光照的補償,使整個場景具有光照強度的變化的同時而又不會造成某些區域沒有光照,這樣有利于用戶對機床狀態的一個全局把控。對于機床運行時,系統給出了一個機床運行時.wav 格式的聲音文件,當用戶觸發并啟動機床時,系統將會自動發出機床運轉時的聲音,給人更深的真實性和沉浸感。
系統音效控制文件如圖4 所示。
圖4 系統音效控制文件
3.2 運動控制模塊的設計
當用戶在對機床進行操作時,通過對用戶輸入信息的采集,再對采集的信息進行邏輯判斷并執行相應的運算操作,獲取相應的物體狀態信息,最后將物體信息傳輸到物體的運動信息模塊,從而達到用戶機床能按照用戶的操作進行相應的運動的目的。運動模塊的設計思如圖5。
圖5 運動模塊設計思路
3.2.1 機床各部件基本運動的實現
三維交互場景中的機床是由多個模型裝配而成,每個模型都有一個獨立的運動矩陣,矩陣里存有模型的位置和比例信息,物體的運動則是通過改變矩陣中的位置向量和旋轉向量來改變物體的狀態。
本系統通過GUI 和機床三維實體觸控來實現物體狀態信息的切換,GUI 按鈕主要用于機床的復位操作以及工藝的選擇。機床各部件的運動關系則是通過檢測鼠標與機床實體的觸控來達到0,1 的信息的切換,并根據需要,通過expression value 通道編輯的算式使鼠標觸控時的值可以在某個范圍內循環,進而擴展鼠標觸控時的0,1 狀態到更多的狀態。本系統中主軸自動進給搖桿手柄具有3 個狀態,手柄當前值OLD 在- 1~3 之間循環,通過鼠標每次觸發的值傳給expression value 通道,通過式(1)的邏輯計算輸出狀態分別為0,1,2,實現手柄三個狀態的循環。
OLD > 2|OLD < 0?0:(A&B) - (A&C) + OLD (1)式中OLD 表示通道當前值,ABC 表示輸入的0,1 值,當前值大于2 或者小于0 時,當前值自動置0,否則在當前值的基礎上加上一個有效的用戶輸入值。程序中-1對應的手柄狀態和0 所對應的狀態相同。
速度控制操作桿一的控制文件如圖6 所示。
圖6 速度控制操作桿一的控制文件
在矩陣變換過程中,本系統通過機床實體觸控時產生的值賦值給expression value 通道,經過算式計算來實現運動矩陣的動態改變。具體實現過程為:首先通過鼠標按鍵的按下和三維實體的碰撞來產生觸控信號,然后經if 語句,當條件成立時將按鍵的有效輸入信息賦值到value 通道,再通過gan1state 通道確定gan1 最終對應的狀態信息。
3.2.2 物體運動坐標系位置的變換
由于.X文件導入Quest3D后的模型坐標可能不在幾何中心上,考慮到物體的運動與物體坐標系的位置信息有關,為此,在控制物體運動時,希望物體坐標系能在物體的幾何中心上,本文提出兩種改變坐標原點的方法。對于一些幾何中心復雜,并且與很多物體的運動相關的物體,本系統采用父子關系來實現這些部件的運動,即通過將父子關系物體移動到物體的中心,便可實現物體坐標系的間接等效移動,并且可以達到同時操控幾個物體的目的,實現物體間的協調運動。采用該項技術可以有效地避免繁瑣和重復的編程,提高編程效率,使程序更加優化,不足之處在于將物體移到另一個物體的幾何中心非常困難。但只需要將場景中父物體的運動矩陣的快捷方式連接到子物體的father通道上便可建立一對父子關系。
對于某些物體,由于自身結構的簡單,可以通過在物體通道下的Off Set Matrix 通道連接一個矩陣通道,雙擊矩陣,并切換到動畫制作界面下,改變矩陣中的相關數值,便可移動坐標到物體的幾何中心上,在移動過程中可以通過去除渲染(Culled Wire Rendering),觀察物體的線條信息更易找準物體的幾何中心。
3.3 三維實體碰撞檢測
在加工仿真過程中,需要利用碰撞檢測判斷刀具是否接觸到工件,以及顯示工件接觸到刀具過后的變形效果。由于道具模型比較復雜,且碰撞檢測是通過模型面片相交來實現的,為了減少碰撞檢測時的計算量。本系統采用規則的模型球體來參與物體的碰撞檢測,利用父子關系,使它跟隨主體運動。本系統依靠該方法成功實現鉆床鉆削工件的虛擬加工過程仿真。
3.4 機床運動參數采集和處理模塊
為了方便用戶實時了解機床的工作情況,合理調節機床運動,本系統設置了數據采集與顯示模塊。數據采集與顯示流程如圖7 所示。
圖7 數據采集與顯示流程
在虛擬環境中,所能采集到的數據是機床模型尺寸和運動參數,需要對采集的數據進行一些后處理。系統運行時,通道中的數據都是動態變化的,只需要把相關通道數據的快捷方式連接到數據采集通道,通過expressionvalue 通道對數據進行處理后,再通過2D貼圖方式顯示在GUI 界面上。
轉速數據顯示程序模塊如圖8 所示。
圖8 轉速數據顯示程序模塊
3.5 場景交互界面設計
由于鼠標在三維模型上的觸控檢測需要判斷鼠標是否與實體發生了碰撞,以及鼠標所指向的按鈕的功用是什么,該操作有哪些注意事項,這些都需要設計者予以考慮。為此,本系統通過改變操作手柄和按鈕等實體模型的顏色來提示用戶鼠標已經指向了相關手柄或者按鈕,一旦鼠標光標和手柄產生碰撞,信息提示區就會顯示該手柄的功能及對應的機床運動參數,使用戶能夠免去背誦繁雜的操作手冊。并且能指導用戶按照正確的工藝順序以及規范的操作流程進行機床的操作。對于模型顏色的改變,本系統是通過改變物體材質中的emissive 特性實現;并通過邏輯的判斷,采用2D 貼圖的方式,將文字提示信息展現在場景特定的位置。另外本系統在該項技術的基礎上建立了三維交互式操作,通過鼠標與三維實體觸碰檢測實現用戶對機床的操作,在Detect Mouse Collision 通道后,跟被碰物體便可實現鼠標與物體的碰撞檢測,通過這種碰撞檢測,為三維場景交互的設計奠定了基礎。
三維場景交互操作設計如圖9 所示。
圖9 三維場景交互操作設計
4 、系統運行仿真實例
通過把鉆床的三維實體模型導入到3Dmax 中渲染,再利用Quest3D開發平臺,成功開發了Z5140 立式鉆床虛擬教學及其培訓系統。如圖10、圖11 所示,用戶可以利用鼠標對機床模型進行視角窗口的變換;通過GUI按鈕或者機床自身的控制搖桿可進行虛擬加工仿真操作;通過數據顯示區,用戶可以在界面左上角實時了解到機床的工作參數。作為一個培訓系統,不僅應該有可以模擬真實的場景與操作,還應在故障診斷仿真功能上起到類似教師的作用[15]。設計者在界面上更加注重系統的教學功能,設置了信息提示區,使用戶能夠了解到各個觸控裝置的作用,并且給予用戶正確操作的提示,起到了操作指導的作用。
圖10 鉆削工藝仿真
圖11 擴孔工藝仿真
從圖10、圖11 可以看到,當鼠標接觸到三角搖桿時,搖桿顯示為高亮,信息區具有搖桿操作信息以及當前進行工藝正確性的提示,從而使用戶更好地了解到機床自身正確的操作規程。
5 、結束語
采用Quest3D平臺開發的程序,可以直接導出為.exe文件,該格式文件可以獨立安裝運行,與三維實體建模的仿真系統相比對運行系統的配置具有較低的要求,因為Quest3D 里面的模型是將CAD 中實體模型進行格式轉化與優化處理后的殼體模型。在開發時,設計者可以借助于Quest3D大量的功能模塊,避免了基于基礎語言開發的繁瑣編程過程,達到縮短開發周期的目的。在未來的研究中,將會在本系統的基礎上完善鉆床內部的三維模型,繼續開發一套鉆床虛擬裝配訓練系統,讓用戶通過使用本系統不僅能夠學習鉆床加工工藝,還能夠通過鉆床內部機械結構了解鉆床的基本工作原理,為以后處理機床故障奠定基礎。
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com