崔澤強(qiáng) , 任 明 , 俞澤育 , 榮 盼
(溫州大學(xué)機(jī)電工程學(xué)院,浙江 溫州 325035)
工業(yè)機(jī)器人分揀系統(tǒng)結(jié)構(gòu)復(fù)雜、操作困難、內(nèi)部結(jié)構(gòu)難以展示,且費(fèi)用較高,使得學(xué)生在學(xué)習(xí)過程中只能借助想象,教學(xué)效果不佳。IdeaVR以其較好的沉浸性和交互性,構(gòu)建了一個(gè)基于現(xiàn)實(shí)工業(yè)機(jī)器人分揀系統(tǒng)的虛擬分揀系統(tǒng)[1-4],可以讓學(xué)生在學(xué)習(xí)過程中進(jìn)行動(dòng)手操作、觀察機(jī)器人內(nèi)部結(jié)構(gòu),借助于IdeaVR建立三維虛擬仿真平臺(tái),學(xué)生能更好理解工業(yè)機(jī)器人分揀系統(tǒng),使得教學(xué)更加順利。
在建立虛擬工業(yè)機(jī)器人分揀系統(tǒng)平臺(tái)前,首先需要了解自動(dòng)化生產(chǎn)所需要的生產(chǎn)設(shè)備,學(xué)習(xí)各設(shè)備的使用方法以及其原理,然后需要實(shí)地測量各設(shè)備的數(shù)據(jù)參數(shù),了解各零件的運(yùn)動(dòng)方式,并在SolidWorks軟件中進(jìn)行實(shí)體建模與裝配,裝配完成后導(dǎo)入3D Max中改變格式,改變格式后將其導(dǎo)入到IdeaVR中進(jìn)行調(diào)整位置、添加光源、模型貼圖、場景渲染、添加物理效果等優(yōu)化設(shè)計(jì),若優(yōu)化設(shè)計(jì)出現(xiàn)問題,則重新進(jìn)行三維實(shí)體建模?;贗deaVR工業(yè)機(jī)器人分揀系統(tǒng)的虛擬仿真平臺(tái)開發(fā)過程如圖1所示。
建立虛擬工業(yè)機(jī)器人分揀系統(tǒng)平臺(tái)包括建立虛擬場景和建立虛擬機(jī)器人兩部分。由于在IdeaVR引擎中構(gòu)建復(fù)雜的幾何體相對困難,不利于工業(yè)機(jī)器人虛擬體的構(gòu)建,因此采用SolidWorks軟件進(jìn)行工業(yè)機(jī)器人的構(gòu)建設(shè)計(jì)。SolidWorks軟件能夠方便設(shè)計(jì)具有復(fù)雜功能的物體圖形,利用該軟件設(shè)計(jì)工業(yè)機(jī)器人的虛擬構(gòu)建,建模結(jié)束后,將模型導(dǎo)入到3D Max中轉(zhuǎn)換格式。建立的工業(yè)機(jī)器人分揀系統(tǒng)虛擬場景如圖2所示。
圖1 基于IdeaVR工業(yè)機(jī)器人分揀系統(tǒng)的虛擬仿真平臺(tái)開發(fā)過程
圖2 虛擬場景
導(dǎo)入到IdeaVR的模型以及虛擬場景會(huì)與實(shí)際場景存在一定的差距,可以進(jìn)行調(diào)整位置、添加光源、模型貼圖、場景渲染、添加物理效果等操作,讓虛擬現(xiàn)實(shí)場景可以真實(shí)還原現(xiàn)實(shí)場景。在虛擬現(xiàn)實(shí)內(nèi)容的制作中,模型的材質(zhì)貼圖直接決定了最終整個(gè)項(xiàng)目的畫面呈現(xiàn)效果。受美術(shù)資源制作難度限制,有些模型無法達(dá)到所需要精度,這就意味著需要通過合理處理材質(zhì)貼圖來進(jìn)行彌補(bǔ),從而達(dá)到令人滿意的視覺渲染效果。
場景渲染設(shè)計(jì)對虛擬仿真系統(tǒng)的整體沉浸性、真實(shí)性非常重要。在渲染過程中,如果渲染的程度過小,虛擬環(huán)境的真實(shí)性將會(huì)降低,給操作者造成較差的虛擬仿真體驗(yàn)。但如果渲染的程度過大,會(huì)造成虛擬引擎的負(fù)擔(dān)過重,從而影響虛擬仿真系統(tǒng)的整體的流暢度?;趫鼍颁秩镜睦碚摚槍I(yè)機(jī)器人虛擬仿真教學(xué)系統(tǒng),考慮到其實(shí)際應(yīng)用環(huán)境,使得設(shè)計(jì)的系統(tǒng)能夠更好地進(jìn)行教學(xué)推廣。因此,選擇使用IdeaVR引擎中自帶的著色器處理工業(yè)機(jī)器人的表面材質(zhì),將機(jī)器人表面的光滑度調(diào)節(jié)到適當(dāng)?shù)臄?shù)值。本虛擬仿真系統(tǒng)場景的燈光使用上,采用了引擎中自帶的點(diǎn)光源與平行光源相結(jié)合的方式。通過這種處理方式,可以通過簡化虛擬場景中物體的具體細(xì)節(jié)來減少復(fù)性,進(jìn)而減輕虛擬場景的運(yùn)行負(fù)擔(dān),同時(shí)整體虛擬場景的視覺效果不受到較大的影響,從而使得虛擬場景運(yùn)行更加流暢。
在 IdeaVR 創(chuàng)世中,加入了物理引擎應(yīng)用系統(tǒng),賦予虛擬場景中的物體物理屬性,可以讓場景中的物體符合現(xiàn)實(shí)世界中的物理定律。提供物理系統(tǒng)中的剛體和布料的模擬,通過賦予場景中物體剛體及柔性體屬性,使得虛擬場景更加真實(shí)和生動(dòng)。
導(dǎo)入IVREngine類:import IVREngine
通過這個(gè)類調(diào)用項(xiàng)目運(yùn)行路徑、引擎運(yùn)行時(shí)的屏幕尺寸等參數(shù)。例如通過IVREngine.getWidth()可以獲取屏幕寬度。
定義登錄類Login:class Login
定義初始化函數(shù)Start()每次類加載時(shí)會(huì)自動(dòng)調(diào)用這個(gè)函數(shù),用于獲取引擎信息、生成UI控制界面:def Start(self):
通過函數(shù)獲取需要渲染的屏幕大?。簊elf.width =IVREngine.getWidth()
self.height = IVREngine.getHeight()
得到項(xiàng)目根目錄路徑:self.fileDir = IVREngine.getProjectPath()
獲取全局GUI,用其調(diào)用各種控件:self.gui =IVREngine.engineGui()
設(shè)置登錄界面背景圖片:
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))
同樣的,可以通過函數(shù)生成用戶名欄、密碼欄、登錄按鈕等UI界面。
結(jié)束后通過OnDestroy函數(shù)進(jìn)行資源釋放:
def OnDestroy(self):
if self.backGround != None:
del self.backGround
if self.layout != None:
del self.layout
在編程控制前,首先需要實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)學(xué)方程的構(gòu)建,本次仿真系統(tǒng)設(shè)計(jì)使用ABB機(jī)器人是:IRB 1410型機(jī)器人。其主要參數(shù)如3圖所示。
圖3 IRB 1410型機(jī)器主要參數(shù)圖
據(jù)此建立DH參數(shù)表:
通過代碼建立每一個(gè)軸的齊次矩陣A1~A6,并對它們進(jìn)行相乘運(yùn)算獲得最終的運(yùn)動(dòng)學(xué)方程,這里以A1矩陣為例:
通過一個(gè)統(tǒng)一的函數(shù)生成所有的UI按鈕,每個(gè)按鈕通過傳入不同的參數(shù),來改變按鈕的形狀與功能,每個(gè)按鈕都會(huì)傳入對應(yīng)的控制函數(shù)名,并生成相應(yīng)的實(shí)例對象,當(dāng)按鍵按下時(shí)就會(huì)調(diào)用對應(yīng)的控制函數(shù)。Button.setCallback()函數(shù)用于在鼠標(biāo)按下時(shí)調(diào)用:IVREngine.createWidgetCallback(cmd)函數(shù),這個(gè)函數(shù)將調(diào)用對應(yīng)的command方法以控制ABB機(jī)器人的運(yùn)動(dòng):
設(shè)置機(jī)器人的控制函數(shù),可以通過UI控制機(jī)器人的運(yùn)動(dòng)。一共有6個(gè)控制函數(shù),通過t鍵可以切換控制模式,在每次調(diào)用控制函數(shù)時(shí)都會(huì)更新UI界面當(dāng)中的運(yùn)動(dòng)學(xué)參數(shù)。
本項(xiàng)目通過IdeaVR將工業(yè)機(jī)器人分揀系統(tǒng)與虛擬現(xiàn)實(shí)技術(shù)結(jié)合,提供了一種全新的教學(xué)方式,使得學(xué)生在學(xué)習(xí)過程中更容易了解工業(yè)機(jī)器人分揀系統(tǒng)的內(nèi)部結(jié)構(gòu)及其運(yùn)行方式,增加了學(xué)習(xí)的趣味性、直觀性。并且使每個(gè)同學(xué)都有充裕時(shí)間進(jìn)行操作,有效解決了教學(xué)過程中資源不足的問題。