技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于OpenGL的工業(yè)機(jī)器人三維仿真設(shè)計(jì)與實(shí)現(xiàn)

基于OpenGL的工業(yè)機(jī)器人三維仿真設(shè)計(jì)與實(shí)現(xiàn)

時(shí)間:2009-04-06 21:16:03來源:chendong

導(dǎo)語:?研究了OpenGL在工業(yè)機(jī)器人仿真中的應(yīng)用及其實(shí)現(xiàn)方法,利用OpenGL卓越的渲染功能對(duì)場(chǎng)景和機(jī)器人進(jìn)行繪制,形成真實(shí)感比較強(qiáng)的三雄仿真環(huán)境

摘要:研究了OpenGL在工業(yè)機(jī)器人仿真中的應(yīng)用及其實(shí)現(xiàn)方法,利用OpenGL卓越的渲染功能對(duì)場(chǎng)景和機(jī)器人進(jìn)行繪制,形成真實(shí)感比較強(qiáng)的三雄仿真環(huán)境,介紹了自行開發(fā)的機(jī)器人離線壕程程序RobotM,RobotM具有機(jī)器人模型的創(chuàng)建、動(dòng)畫仿真、自動(dòng)路徑產(chǎn)生等功能,實(shí)現(xiàn)了機(jī)器人離線鳊程與仿真系統(tǒng)。

關(guān)鍵詞:機(jī)器人;三維仿真;OpenGL;離線壕程

1 引言

隨著機(jī)器人技術(shù)的運(yùn)用與發(fā)展,機(jī)器人編程技術(shù)成為一個(gè)很重要的問題。機(jī)器人離線編程(OIP,OffLineProgram)具有不需要停止機(jī)器人工作和可以通過圖形仿真來避免實(shí)際機(jī)器人運(yùn)動(dòng)中的碰撞等優(yōu)點(diǎn)。目前國(guó)內(nèi)基本沒有針對(duì)機(jī)器人仿真的成型工具,國(guó)外有一些商品軟件如RoboCAD,ROTSY,Evision等系統(tǒng),但是RoboCAD價(jià)格比較昂貴,不能夠普遍推廣;ROTSY是基于Motoman機(jī)器人的一套仿真系統(tǒng),但是他的普遍性不強(qiáng)而且價(jià)格也比較高。本文以江蘇省“十五”攻關(guān)項(xiàng)目網(wǎng)絡(luò)化焊接機(jī)器人研制課題為背景,設(shè)計(jì)了基于OpenGL的工業(yè)機(jī)器人三維仿真機(jī)離線軟件RobotM,完成了對(duì)于Couma機(jī)器人的離線仿真程序開發(fā)。

OpenGI是與圖形硬件無關(guān)的程序設(shè)計(jì)接口,而且OpenGI的類庫(kù)完成三維圖形的底層操作,同時(shí)又具有建模方便、實(shí)時(shí)三維仿真、真實(shí)感強(qiáng)、平臺(tái)獨(dú)立性、真實(shí)性強(qiáng)、對(duì)于系統(tǒng)的要求并不是很高等優(yōu)點(diǎn)。所以RobotM利用OpenGL和微軟的VC+開發(fā)工具以及MFC類庫(kù)作為底層的圖形庫(kù)接口實(shí)現(xiàn)仿真設(shè)計(jì)。離線仿真原理如圖1所示。

2 系統(tǒng)結(jié)構(gòu)詳述

系統(tǒng)模塊圖如圖2所示。

圖2說明了RobotM采用了分層次結(jié)構(gòu)設(shè)計(jì)的方法,將整體程序設(shè)計(jì)成為3層結(jié)構(gòu),每一層的設(shè)計(jì)都相對(duì)獨(dú)立,從而提高了程序的可移植性并且減輕了程序的維護(hù)難度。

2.1模型層設(shè)計(jì)

模型層利用OpenGI和MFC類庫(kù),構(gòu)建了一系列底層的類對(duì)象,RobotM利用這些封裝好的類對(duì)象來構(gòu)建場(chǎng)景以及完成場(chǎng)景和用戶的交互。在RobotM設(shè)計(jì)中增加了空間實(shí)體、空間模型、機(jī)器人模型的概念。

空間實(shí)體就是單個(gè)的最簡(jiǎn)單的部件,而空間模型是若干個(gè)實(shí)體按照一定方式的組合。由于機(jī)器人仿真具有一定的特殊性,把機(jī)器人設(shè)定為一個(gè)實(shí)體或者一個(gè)模型顯然是不合適的,所以可以把機(jī)器人以每一個(gè)轉(zhuǎn)軸為界限分割成若干部分,而把分割好的各個(gè)部分都作為空間模型,從而形成了若干空間實(shí)體一空間模型,若干空間模型一機(jī)器人模型的組合方式。

利用這種分層次的組合方式可以很容易控制仿真程序的顯示和交互,例如利用RobotM仿真一個(gè)汽車焊接生產(chǎn)線時(shí),用一個(gè)空間模型對(duì)象來描述汽車對(duì)象可以很容易地控制這個(gè)汽車對(duì)象。RobotM對(duì)于每種空間實(shí)體類型都利用OpenGI提供的GlgenList/glCallList函數(shù)實(shí)現(xiàn)了一套構(gòu)建/繪制的函數(shù),利用空間實(shí)體一空間模型一機(jī)器人模型的組織方式和C++面向?qū)ο蠹夹g(shù)中的多態(tài)性,最終把機(jī)器人模型和空間模型的繪制工作都?xì)w結(jié)為空間實(shí)體對(duì)象的繪制。

RobotM把仿真內(nèi)容保存為流文件。文件是按照分層結(jié)構(gòu)且以相對(duì)路徑存儲(chǔ)并設(shè)計(jì)的,即工作區(qū)、機(jī)器人模型、空間模型、路徑等文件如圖2所示,用戶通過打開工作區(qū)文件從而搜索并獲取其他類型文件的信息以建立場(chǎng)景對(duì)象。機(jī)器人、模型、路徑文件都可以為其他的工程所用,具有比較良好的重用性;相對(duì)路徑使得用戶即使改變了工程目錄存放的位置也不會(huì)影響文件的獲取,增加了RobotM的健壯性。

2.2場(chǎng)景層設(shè)計(jì)

場(chǎng)景層主要功能是完成場(chǎng)景中對(duì)象的建立、保存、繪制以及交互。作為模型層和示教層的中間層,場(chǎng)景層是機(jī)器人仿真系統(tǒng)中的連接部分。場(chǎng)景層從文件建立的過程如圖3所示。

由圖3可以看出場(chǎng)景的建立是一個(gè)從若干文件到仿真程序的空間實(shí)體對(duì)象的轉(zhuǎn)換過程,RobotM把用戶選取的工作區(qū)和其他一系列的文件轉(zhuǎn)化為RobotM可以識(shí)別的數(shù)據(jù)結(jié)構(gòu)對(duì)象;同樣的,把RobotM中的數(shù)據(jù)結(jié)構(gòu)對(duì)象根據(jù)一定規(guī)則寫入文件完成了保存過程。場(chǎng)景的繪制是仿真程序的重要部分。場(chǎng)景層利用模型層的實(shí)體繪制的接口,通過場(chǎng)景一(機(jī)器人)一空間模型一空間實(shí)體的方式調(diào)用各自的繪制函數(shù),RobotM需要在屏幕上顯示動(dòng)畫來表示仿真結(jié)果,所以程序的繪制效率十分重要。

除了運(yùn)用普通的OpenGI繪制的各種增加效率的方式之外,本文為提高繪圖效率,在RobotM中提出了“必要重構(gòu)”的方法。即利用幾個(gè)BOOI量做為場(chǎng)景的各個(gè)部分(包括機(jī)器人模型、空間模型等部分)的重構(gòu)標(biāo)志(重構(gòu)是指利用OpenGL提供的glGenIist函數(shù)將需要繪制的內(nèi)容保存在內(nèi)存區(qū)域中,每次繪制時(shí)直接從中提取,而不需要再次組織)。RobotM在繪制的每一幀都只重構(gòu)改變過位置或者旋轉(zhuǎn)角度的對(duì)象(機(jī)器人模型和空間模型對(duì)象包括在內(nèi)),而對(duì)于沒有改變的對(duì)象則直接調(diào)用glCallList將對(duì)象繪制出來。這樣每一幀的繪制效率有很大提高,在程序仿真的時(shí)候不會(huì)出現(xiàn)顯示打頓的現(xiàn)象。

基于OpenGI的工業(yè)機(jī)器人三雛仿真設(shè)計(jì)與實(shí)現(xiàn)場(chǎng)景的交互提供給用戶比較便捷的操作功能。用戶根據(jù)自己的需要可以修改觀察和控制整個(gè)場(chǎng)景的方式(如旋轉(zhuǎn)、平移、改變光照等),還可以直接用鼠標(biāo)在場(chǎng)景中選取目標(biāo)點(diǎn)或者空間實(shí)體。

2.3示教層設(shè)計(jì)

示教層主要是完成離線編程設(shè)計(jì)。上2層已經(jīng)為示教層的設(shè)計(jì)打下了良好的基礎(chǔ)。機(jī)器人離線編程的關(guān)鍵內(nèi)容是能夠根據(jù)用戶的輸入確定仿真程序中機(jī)器人的運(yùn)動(dòng)方式和機(jī)器人運(yùn)動(dòng)位置,這種關(guān)系與實(shí)際機(jī)器人和示教盒之間的關(guān)系相類似。RobotM通過保存各個(gè)位置點(diǎn)和各個(gè)點(diǎn)之間的運(yùn)動(dòng)方式來描述機(jī)器人運(yùn)動(dòng)的軌跡來實(shí)現(xiàn)仿真。

RobotM有一個(gè)小型解釋器,他能夠?qū)崿F(xiàn)機(jī)器人編程語言和RobotM能夠識(shí)別的運(yùn)動(dòng)文件格式的相互轉(zhuǎn)換。由于機(jī)器人編程實(shí)現(xiàn)的運(yùn)動(dòng)程序編譯器有自己的語法和語義,所以RobotM必須能夠?qū)崿F(xiàn)控制柜運(yùn)行的機(jī)器人控制文件和RobotM設(shè)計(jì)的程序相互轉(zhuǎn)換。

RobotM提供了2種確定機(jī)器人仿真運(yùn)動(dòng)末端點(diǎn)的方式:即轉(zhuǎn)角運(yùn)動(dòng)和定點(diǎn)運(yùn)動(dòng)。轉(zhuǎn)角運(yùn)動(dòng)如同實(shí)際機(jī)器人運(yùn)動(dòng)中的示教盒示教,能夠通過用戶輸入在仿真程序中,使得指定的機(jī)器人各個(gè)關(guān)節(jié)部分運(yùn)動(dòng),從而實(shí)現(xiàn)機(jī)器人的轉(zhuǎn)角運(yùn)動(dòng);而定點(diǎn)運(yùn)動(dòng)是RobotM中相對(duì)來說比較重要的同時(shí)也是轉(zhuǎn)角運(yùn)動(dòng)無法做到的。利用場(chǎng)景層提供的接口,用glLoadName給場(chǎng)景中的每個(gè)需要確定位置的空間實(shí)體/空間模型/機(jī)器人模型創(chuàng)建惟一標(biāo)示的ID,在用戶鼠標(biāo)選取空間中的點(diǎn)時(shí)利用ID來確定用戶所選取的對(duì)象,在獲取對(duì)象之后利用OpenGI的glUnProjeet函數(shù)獲取鼠標(biāo)點(diǎn)擊位置在空間中的“世界”坐標(biāo)系下的位置,完成鼠標(biāo)平面坐標(biāo)一空間坐標(biāo)的轉(zhuǎn)換,利用仿真機(jī)器人的運(yùn)動(dòng)方法使仿真機(jī)器人末端點(diǎn)運(yùn)動(dòng)到該空間坐標(biāo),從而確定機(jī)器人需要運(yùn)動(dòng)到的某個(gè)點(diǎn)的位置。

通過若干步的上述2種過程的重復(fù),完成這一系列點(diǎn)的設(shè)置,可以創(chuàng)建出路徑文件。路徑文件可以用來仿真也可以下傳到機(jī)器人控制柜。

2.4輔助模塊設(shè)計(jì)

機(jī)器人仿真程序還有其他一些獨(dú)立模塊并沒有歸結(jié)到上述3層結(jié)構(gòu)中。但是這些模塊和上述3層之間有著緊密聯(lián)系。

2.4.1算法模塊

考慮到機(jī)器人仿真程序需要對(duì)路徑進(jìn)行仿真,所以必須提供相應(yīng)的機(jī)器人的正逆解算法以及關(guān)節(jié)插補(bǔ)、直線插補(bǔ)、圓弧插補(bǔ)等算法。由于對(duì)于不同的機(jī)器人有不同的正逆解,所以在仿真系統(tǒng)中,實(shí)現(xiàn)一個(gè)通用的上述算法比較困難,所以嘗試用文件來描述機(jī)器人的各項(xiàng)參數(shù),取得了比較好的效果。

2.4.2其他模型模塊

仿真程序提供了不同的構(gòu)建模型的方式,分別為Mdl,3DS,Obj文件格式。也就是說提供了不同的文件接口,通過這些文件接口可以在場(chǎng)景中實(shí)現(xiàn)不同的構(gòu)建模型方式。

2.4.3通信模塊

把機(jī)器人仿真程序產(chǎn)生的文件下傳到控制柜或者讀取控制柜中的文件,利用RS232/BSC實(shí)現(xiàn)了文件的上下傳。 RobotM系統(tǒng)實(shí)現(xiàn)如圖4所示,首先構(gòu)建了SIASUN機(jī)器人模型。

3 結(jié)語

本文介紹了作者開發(fā)的機(jī)器人離線編程系統(tǒng)RobotM,描述了系統(tǒng)的主要功能及其原理。而今后的主要工作是添加路徑規(guī)劃和碰撞檢測(cè)模塊的設(shè)計(jì)。

參考文獻(xiàn)

[1]林銳,石教英.基:Y:OpenGI的場(chǎng)景管理、三維交互與用戶界面設(shè)計(jì)I-j].計(jì)算機(jī)應(yīng)用,2000,(3).

[2]陳志翔,黃勇.弧焊機(jī)器人離線編程系統(tǒng)分析與設(shè)計(jì)I-j].機(jī)械工程學(xué)報(bào),2OOl,(1O).

[3]潘愛民,DavidKruglinskiJ.VisualC技術(shù)內(nèi)幕[M].第4版.王國(guó)印,譯.北京:清華大學(xué)出版社,1999.

 
編輯:陳東

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于DSP的視頻檢測(cè)和遠(yuǎn)程控制...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)