崔澤強 , 任 明 , 俞澤育 , 榮 盼
(溫州大學機電工程學院,浙江 溫州 325035)
工業機器人分揀系統結構復雜、操作困難、內部結構難以展示,且費用較高,使得學生在學習過程中只能借助想象,教學效果不佳。IdeaVR以其較好的沉浸性和交互性,構建了一個基于現實工業機器人分揀系統的虛擬分揀系統[1-4],可以讓學生在學習過程中進行動手操作、觀察機器人內部結構,借助于IdeaVR建立三維虛擬仿真平臺,學生能更好理解工業機器人分揀系統,使得教學更加順利。
在建立虛擬工業機器人分揀系統平臺前,首先需要了解自動化生產所需要的生產設備,學習各設備的使用方法以及其原理,然后需要實地測量各設備的數據參數,了解各零件的運動方式,并在SolidWorks軟件中進行實體建模與裝配,裝配完成后導入3D Max中改變格式,改變格式后將其導入到IdeaVR中進行調整位置、添加光源、模型貼圖、場景渲染、添加物理效果等優化設計,若優化設計出現問題,則重新進行三維實體建模?;贗deaVR工業機器人分揀系統的虛擬仿真平臺開發過程如圖1所示。
建立虛擬工業機器人分揀系統平臺包括建立虛擬場景和建立虛擬機器人兩部分。由于在IdeaVR引擎中構建復雜的幾何體相對困難,不利于工業機器人虛擬體的構建,因此采用SolidWorks軟件進行工業機器人的構建設計。SolidWorks軟件能夠方便設計具有復雜功能的物體圖形,利用該軟件設計工業機器人的虛擬構建,建模結束后,將模型導入到3D Max中轉換格式。建立的工業機器人分揀系統虛擬場景如圖2所示。

圖1 基于IdeaVR工業機器人分揀系統的虛擬仿真平臺開發過程

圖2 虛擬場景
導入到IdeaVR的模型以及虛擬場景會與實際場景存在一定的差距,可以進行調整位置、添加光源、模型貼圖、場景渲染、添加物理效果等操作,讓虛擬現實場景可以真實還原現實場景。在虛擬現實內容的制作中,模型的材質貼圖直接決定了最終整個項目的畫面呈現效果。受美術資源制作難度限制,有些模型無法達到所需要精度,這就意味著需要通過合理處理材質貼圖來進行彌補,從而達到令人滿意的視覺渲染效果。
場景渲染設計對虛擬仿真系統的整體沉浸性、真實性非常重要。在渲染過程中,如果渲染的程度過小,虛擬環境的真實性將會降低,給操作者造成較差的虛擬仿真體驗。但如果渲染的程度過大,會造成虛擬引擎的負擔過重,從而影響虛擬仿真系統的整體的流暢度?;趫鼍颁秩镜睦碚摚槍I機器人虛擬仿真教學系統,考慮到其實際應用環境,使得設計的系統能夠更好地進行教學推廣。因此,選擇使用IdeaVR引擎中自帶的著色器處理工業機器人的表面材質,將機器人表面的光滑度調節到適當的數值。本虛擬仿真系統場景的燈光使用上,采用了引擎中自帶的點光源與平行光源相結合的方式。通過這種處理方式,可以通過簡化虛擬場景中物體的具體細節來減少復性,進而減輕虛擬場景的運行負擔,同時整體虛擬場景的視覺效果不受到較大的影響,從而使得虛擬場景運行更加流暢。
在 IdeaVR 創世中,加入了物理引擎應用系統,賦予虛擬場景中的物體物理屬性,可以讓場景中的物體符合現實世界中的物理定律。提供物理系統中的剛體和布料的模擬,通過賦予場景中物體剛體及柔性體屬性,使得虛擬場景更加真實和生動。
導入IVREngine類:import IVREngine
通過這個類調用項目運行路徑、引擎運行時的屏幕尺寸等參數。例如通過IVREngine.getWidth()可以獲取屏幕寬度。
定義登錄類Login:class Login
定義初始化函數Start()每次類加載時會自動調用這個函數,用于獲取引擎信息、生成UI控制界面:def Start(self):
通過函數獲取需要渲染的屏幕大?。簊elf.width =IVREngine.getWidth()
self.height = IVREngine.getHeight()
得到項目根目錄路徑:self.fileDir = IVREngine.getProjectPath()
獲取全局GUI,用其調用各種控件:self.gui =IVREngine.engineGui()
設置登錄界面背景圖片:
self.backGround = IVREngine.WidgetSprite(self.gui)
self.backGround.setWidth(self.width)
self.backGround.setHeight(self.height)
self.backGround.setTexture( self.fileDir + ‘/python/Login/backGround.jpg‘)
self.backGround.setColor(IVREngine.vec4(1,1,1,1))
同樣的,可以通過函數生成用戶名欄、密碼欄、登錄按鈕等UI界面。
結束后通過OnDestroy函數進行資源釋放:
def OnDestroy(self):
if self.backGround != None:
del self.backGround
if self.layout != None:
del self.layout
在編程控制前,首先需要實現機器人運動學方程的構建,本次仿真系統設計使用ABB機器人是:IRB 1410型機器人。其主要參數如3圖所示。

圖3 IRB 1410型機器主要參數圖
據此建立DH參數表:

通過代碼建立每一個軸的齊次矩陣A1~A6,并對它們進行相乘運算獲得最終的運動學方程,這里以A1矩陣為例:


通過一個統一的函數生成所有的UI按鈕,每個按鈕通過傳入不同的參數,來改變按鈕的形狀與功能,每個按鈕都會傳入對應的控制函數名,并生成相應的實例對象,當按鍵按下時就會調用對應的控制函數。Button.setCallback()函數用于在鼠標按下時調用:IVREngine.createWidgetCallback(cmd)函數,這個函數將調用對應的command方法以控制ABB機器人的運動:

設置機器人的控制函數,可以通過UI控制機器人的運動。一共有6個控制函數,通過t鍵可以切換控制模式,在每次調用控制函數時都會更新UI界面當中的運動學參數。

本項目通過IdeaVR將工業機器人分揀系統與虛擬現實技術結合,提供了一種全新的教學方式,使得學生在學習過程中更容易了解工業機器人分揀系統的內部結構及其運行方式,增加了學習的趣味性、直觀性。并且使每個同學都有充裕時間進行操作,有效解決了教學過程中資源不足的問題。