李建賓,任華麗
(1.廣西大學(xué)研究生院,廣西 南寧530007;2.武漢市黃陂區(qū)職業(yè)技術(shù)學(xué)校,湖北 武漢432200)
機(jī)器人技術(shù)作為綜合性學(xué)科,其包含了機(jī)械、控制各方面的知識,從世界上第一臺工業(yè)機(jī)器人誕生至今,機(jī)器人技術(shù)已經(jīng)有了長足的發(fā)展,并取得了很多成果,而且機(jī)器人已經(jīng)大量應(yīng)用到實際生產(chǎn)。計算機(jī)技術(shù)不斷的發(fā)展,讓仿真技術(shù)起到越來越不可忽視的作用,機(jī)器人仿真的任務(wù),是在與實際機(jī)器人不接觸情況下,對機(jī)器人進(jìn)行運(yùn)動學(xué)、動力學(xué)、軌跡規(guī)劃、碰撞檢測、性能測試等進(jìn)行復(fù)雜計算工作,可以在三維世界中控制機(jī)器人,并對機(jī)器人進(jìn)行必要的虛擬仿真示教。
在20世紀(jì)60年代,美、英、日等發(fā)達(dá)國家相繼在課堂進(jìn)行機(jī)器人教學(xué),機(jī)器人教學(xué)研究得到蓬勃發(fā)展,但是由于機(jī)器人價格昂貴,以及機(jī)器人操作需要大而獨(dú)立的試驗場地等諸多因素,不可能實現(xiàn)每位學(xué)生都同時有一臺機(jī)器人進(jìn)行實際操作,并且機(jī)器人課時安排緊張,學(xué)生學(xué)習(xí)的效果并不理想,而三維可視化仿真技術(shù)的發(fā)展,讓我們有了一個非常好的平臺對機(jī)器人進(jìn)行相應(yīng)的研究,可以交互式示教仿真。
國內(nèi)研究現(xiàn)狀:目前各高校及研究所對機(jī)器人仿真研究越來越重視,從開始探索階段,到收獲豐碩成果階段,在機(jī)器人仿真中取得了很多成果。例如清華大學(xué)THROBSM機(jī)器人仿真系統(tǒng),上海交通大學(xué)俞文偉和鄧建一開發(fā)的ROSIDY仿真軟件,清華大學(xué)崔培蓮和孫增圻PCBOBSM微機(jī)機(jī)器人仿真軟件,北京工業(yè)大學(xué)陳晏、余躍慶利用多體動力學(xué)軟件LMS Virtual.Lab和有限元分析ANSYS開發(fā)的剛?cè)狁詈蠙C(jī)器人動力學(xué)仿真系統(tǒng),華北電力大學(xué)利用MATLAB6.0,OpenGL和VC++2010三者結(jié)合開發(fā)的機(jī)器人仿真通用試驗平臺。
本文利用OpenGL的實時交互性,模擬機(jī)器人的示教/再現(xiàn)過程,可以檢驗所編寫機(jī)器人程序的正確性。在機(jī)器人物理樣機(jī)實驗之前,可以通過在仿真系統(tǒng)上進(jìn)行模擬仿真,觀察機(jī)器人模型的運(yùn)動過程以及運(yùn)動結(jié)果,這樣可以避免在操作機(jī)器人物理樣機(jī)時對周圍物體和人員造成傷害。并且此仿真系統(tǒng)可以提供與現(xiàn)實機(jī)器人物理樣機(jī)幾乎相同的操作步驟,在實際操作人員真正操作機(jī)器人物理樣機(jī)之前,可以增加操作員的操作熟練程度,增加操作員的使用安全系數(shù)。
OpenGL為開放的圖形程序接口,其前身為SGI公司開發(fā)的IRISGL,SGI公司在IRISGL基礎(chǔ)上于1992年7月發(fā)布了OpenGL的 1.0版本。后來OpenGL的1.0版本成為工業(yè)標(biāo)準(zhǔn),OpenGL作為業(yè)界2D和3D圖形接口標(biāo)準(zhǔn),應(yīng)用在成千上千萬的計算機(jī)程序中,從初期的嶄露頭角,到與Direct3D激烈競爭,中途經(jīng)歷波折發(fā)展了20多年,最后被Khronos接收后發(fā)揚(yáng)光大,OpenGL已經(jīng)發(fā)展到了目前OpenGL4.4版本,OpenGL是一種底層圖形庫,是一個完全可移植并且速度很快的3D圖形和建模庫。OpenGL不是一種編程語言,它是一個三維圖形軟件包,其具有開放性,OpenGL可以與Visual C++緊密接口,OpenGL能夠?qū)θS建模進(jìn)行渲染著色,從而繪制出逼真的三維景象,是一款非常適合做可視化仿真系統(tǒng)的工具。
在OpenGL繪制過程中,首先頂點(diǎn)數(shù)據(jù),像素數(shù)據(jù)可以在現(xiàn)實列表中顯現(xiàn)出來,通過運(yùn)算器對逐個頂點(diǎn)進(jìn)行計算,然后光柵化,最終形成圖形碎片,像素數(shù)據(jù)及操作結(jié)果存儲在紋理組裝用的內(nèi)存中,流程操作最后,圖形片元進(jìn)行一些列逐個片元操作,結(jié)果像素值送入幀緩沖器實現(xiàn)圖形顯示,圖1為OpenGL繪制流程圖。
圖1 OpenGL繪制流程圖
本示教機(jī)器人三維模型主要由底座、連桿等組成,通過利用glu庫函數(shù)(gluCylinder和gluDisk)及縮放、轉(zhuǎn)移等變換繪制出了底座,連桿的模型。通過模型轉(zhuǎn)換函數(shù)繪制出機(jī)器人三維模型,其模型轉(zhuǎn)換的函數(shù)的作用:glTtanslate{fd}(TX,TY,TZ)T 是 TYPE的縮寫,其表示將當(dāng)前的矩陣與其它矩陣相乘,并將物體平移xyz三個坐標(biāo)的指定方向,glRotate{fd}(Tangle,Tx,Ty,TZ)表示將當(dāng)前的矩陣與其它矩陣相乘,矩陣?yán)@原點(diǎn)到點(diǎn)(x,y,z)直線的逆時針旋轉(zhuǎn)的角度。glScale{fd}(TX,TY,TZ)表示將當(dāng)前的矩陣與其它矩陣相乘,沿坐標(biāo)軸縮放,然后在每點(diǎn)坐標(biāo)上分別乘以參數(shù)xyz。繪制機(jī)器人部分模型,機(jī)器人連桿可以通過對立方體進(jìn)行不同的縮放、轉(zhuǎn)移、旋轉(zhuǎn)變換來進(jìn)行繪制,圖2是基于openGL繪制的仿真軟件界面。
圖2 OpenGL中繪制的仿真軟件界面
通過軟件可以觀察六自由度示教機(jī)器人的運(yùn)動狀況,在軟件控制部分輸入末端坐標(biāo),機(jī)器人末端執(zhí)行命令并運(yùn)動到設(shè)定的坐標(biāo)點(diǎn),并通過點(diǎn)擊按鈕“逆解計算”可以得到8組在此末端設(shè)定坐標(biāo)系下相對應(yīng)的逆解。通過點(diǎn)擊“復(fù)位按鈕”,機(jī)器人恢復(fù)到初始狀態(tài)。虛擬現(xiàn)實軟件功能分為正解計算、逆解計算、給定坐標(biāo)末端運(yùn)動。通過開發(fā)此仿真軟件還可以實現(xiàn)人機(jī)交互操作模式,增強(qiáng)初學(xué)者對機(jī)器人的直觀感知,使用者可以通過在軟件中輸入機(jī)器人末端在空間的不同坐標(biāo)值來獲取機(jī)器人各關(guān)節(jié)角的姿態(tài),實現(xiàn)機(jī)器人位置逆解算法。
2.3.1 正解計算
在關(guān)節(jié)角 θ1、θ2、θ3、θ4、θ5、θ6靜態(tài)編輯框中輸入角度值,機(jī)器人末端抓持器位姿隨關(guān)節(jié)角變化而變化,六自由度機(jī)器人也隨之運(yùn)動。設(shè)定 θ1= 20°、θ2= -30°、θ3= 30°、θ4= -50°、θ5= 50°、θ6= 30°,可以得出給定某一關(guān)節(jié)角對應(yīng)的機(jī)器人位姿。如圖3為正解計算機(jī)器人位姿。
圖3 正解計算機(jī)器人位姿
2.3.2 逆解計算
在六自由度機(jī)器人逆解計算靜態(tài)編輯框輸入x、y、z坐標(biāo)值,當(dāng)設(shè)定初始末端坐標(biāo) x=790,y=0,z=769后,點(diǎn)擊“逆解計算”,對應(yīng)得到各關(guān)節(jié)角數(shù)值,點(diǎn)擊“運(yùn)動”按鈕,機(jī)器人就會隨之運(yùn)動。并得到第六組反解對應(yīng)的機(jī)器人位姿。如圖4為逆解計算機(jī)器人位姿。
圖4 逆解計算機(jī)器人位姿
2.3.3 給定坐標(biāo)末端運(yùn)動
在六自由度機(jī)器人逆解計算靜態(tài)編輯框輸入x、y、z坐標(biāo)值,可以任意給定末端坐標(biāo)x=1 200,y=0,z=100,然后點(diǎn)擊“逆解計算”,機(jī)器人末端就會隨之運(yùn)動到設(shè)定的坐標(biāo)點(diǎn)位置。并得到是給定坐標(biāo)末端運(yùn)動機(jī)器人位姿。如圖5為給定坐標(biāo)機(jī)器人末端位姿圖。
圖5 給定坐標(biāo)機(jī)器人末端位姿圖
目前市面上機(jī)器人價格過于昂貴,價格從幾千上萬不等,而且購買回來,還需要給機(jī)器人提供操作的場地,由于目前各高?;蛘哐芯克捎诮?jīng)費(fèi)或著場地的制約,不可能讓每個學(xué)員或研究者都能親自操作物理樣機(jī),而仿真技術(shù)發(fā)展,可以通過人機(jī)交互,讓我們與機(jī)器人之間在虛擬環(huán)境世界中進(jìn)行示教?;贠penGL開發(fā)的示教機(jī)器人三維動態(tài)仿真系統(tǒng),可以直觀的描述了示教機(jī)械臂運(yùn)動過程,該仿真操作簡單,滿足基本仿真要求,對示教機(jī)器人仿真技術(shù)的研究具有重要的實踐意義[1-2]。