石 磊,金忠全
(1.西南科技大學(xué)制造科學(xué)與工程學(xué)院,四川綿陽(yáng) 621010;2.西南交通大學(xué) 機(jī)械工程學(xué)院,成都 610000)
20世紀(jì),機(jī)器人被開發(fā)出來(lái)并應(yīng)用到諸多領(lǐng)域。世界各國(guó)都競(jìng)相發(fā)展機(jī)器人技術(shù),使機(jī)器人無(wú)論是在技術(shù)上、數(shù)量上還是其應(yīng)用領(lǐng)域都有前所未有的發(fā)展。機(jī)器人仿真是機(jī)器人研究中的一項(xiàng)重要內(nèi)容,可以利用計(jì)算機(jī)的計(jì)算和可視化功能,模擬機(jī)器人的動(dòng)態(tài)特性和運(yùn)動(dòng)軌跡,在機(jī)器人示教編程、軌跡規(guī)劃、碰撞檢測(cè)等方面有著廣泛的應(yīng)用。目前,機(jī)器人的三維仿真技術(shù)大致可以分為兩類:一種是依托專業(yè)軟件實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)仿真,如利用ADAMS建立機(jī)器人仿真平臺(tái)[1-2],利用Pro/E軟件完成機(jī)械手的虛擬裝配[3],利用Solid Works軟件建立海洋平臺(tái)導(dǎo)管架弧焊機(jī)器人離線編程系統(tǒng)[4],利用CATIA V5軟件對(duì)工業(yè)機(jī)器人運(yùn)動(dòng)學(xué)進(jìn)行仿真[5]等;另一種是利用編程語(yǔ)言自行開發(fā)以實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)仿真,如利用C++編程語(yǔ)言實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)仿真[6-7],基于 Java3D的仿人型機(jī)器人三維仿真[8]等。前一種方法結(jié)合專業(yè)軟件的優(yōu)勢(shì),分析和計(jì)算功能較強(qiáng),而后一種方法自行開發(fā),具有一定的周期,但更具有自主性。
隨著仿真技術(shù)的發(fā)展,工業(yè)機(jī)器人末端位姿的運(yùn)動(dòng)軌跡需要更加實(shí)時(shí)精確。而與機(jī)器人仿真技術(shù)相關(guān)的機(jī)器人學(xué)涉及了較多的數(shù)學(xué)知識(shí),在編程和開發(fā)中存在大量的數(shù)組運(yùn)算。如果利用編程語(yǔ)言編寫這些數(shù)組運(yùn)算,將使得程序復(fù)雜、不容易調(diào)試且實(shí)時(shí)效果不理想。MATLAB在數(shù)學(xué)計(jì)算上有著得天獨(dú)厚的優(yōu)勢(shì),具有很強(qiáng)的數(shù)據(jù)運(yùn)算功能,特別是矩陣運(yùn)算。這是其他軟件或編程語(yǔ)言所無(wú)法比擬的。但MATLAB三維建模的功能明顯弱于通用的一些軟件,如3DMAX,Pro/E等等。因此采用MATLAB和Pro/E結(jié)合以構(gòu)建四自由度機(jī)器人平臺(tái)。
四自由度SCARA機(jī)器人是一種通用工業(yè)機(jī)器人[9],常用于搬取零件和裝配工作。它具有四個(gè)關(guān)節(jié)和四個(gè)運(yùn)動(dòng)自由度,其中有三個(gè)旋轉(zhuǎn)關(guān)節(jié),一個(gè)移動(dòng)關(guān)節(jié)。移動(dòng)關(guān)節(jié)用于完成末端執(zhí)行件的升降運(yùn)動(dòng)。SCARA機(jī)器人的模型如圖1。

圖1 四自由度SCARA機(jī)器人
對(duì)四自由度SCARA機(jī)器人按照D-H方法建立各連桿坐標(biāo)系,相應(yīng)的四自由度SCARA機(jī)器人連桿參數(shù)如表1。

表1 機(jī)器人連桿參數(shù)
表中參數(shù)滿足:-160°≤θ1≤160°,-110°≤θ2≤110°,0≤d3≤60mm,-266°≤θ4≤266°,L1=200mm,L2=135mm。
根據(jù)建立的連桿坐標(biāo)和連桿參數(shù),我們通過(guò)式1得到各連桿變換矩陣。

各連桿變換矩陣的乘積得到四自由度機(jī)器人的運(yùn)動(dòng)學(xué)方程式(6):

對(duì)四自由度SCARA機(jī)器人,將其分解為底座、大臂、小臂、移動(dòng)關(guān)節(jié)和末端五個(gè)模塊。在Pro/E繪制相應(yīng)模塊,選擇模塊的對(duì)應(yīng)各個(gè)連桿正確的原點(diǎn)及正確的坐標(biāo)軸指向,建立草圖,進(jìn)行拉伸,得到各個(gè)連桿的3D 模型[10]。
Pro/E建立的各連桿的3D模型(prt文件)不能直接被MATLAB調(diào)用,需要進(jìn)行格式的轉(zhuǎn)換。STL(ASCII)格式的三維模型是由許多的數(shù)據(jù)點(diǎn)構(gòu)成的,而以任意三個(gè)數(shù)據(jù)點(diǎn)組成的三角形的集合來(lái)表示物體外部輪廓形狀的幾何模型。其中,每個(gè)三角形面片由四個(gè)數(shù)據(jù)行表示,即三角形的三個(gè)頂點(diǎn)坐標(biāo)值和三角形面片的外法線矢量坐標(biāo)值,STL文件其實(shí)就是由多個(gè)三角形面片的組合而成的。在研究了MATLAB和Pro/E支持的文件類型的基礎(chǔ)上,提出了如圖2的解決方案。

圖2 模型的導(dǎo)入流程
MAT文件是MATLAB可以調(diào)用的格式。根據(jù)STL(ASCII)格式的特點(diǎn),編寫接口函數(shù),實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)工作。MAT文件存儲(chǔ)了STL文件中重要的數(shù)據(jù)信息,如三角面片的法向量坐標(biāo)值及構(gòu)成面片的三個(gè)頂點(diǎn)的坐標(biāo)值等。
可視化是仿真技術(shù)的特征之一。利用MATA-LAB三維可視化技術(shù)對(duì)機(jī)器人操作界面進(jìn)行設(shè)計(jì)。操作界面分為了運(yùn)動(dòng)區(qū)和控制區(qū),通過(guò)uicontrol,uimenu與uicontextmenu等函數(shù)構(gòu)建出需要的GUI。
建立figure對(duì)象來(lái)作為整個(gè)GUI的基礎(chǔ)窗口,并設(shè)置該窗口的相關(guān)屬性。然后建立axes或uicontrol,uimenu,uicontextmenu對(duì)象,并設(shè)置它們的相關(guān)屬性及callback函數(shù)來(lái)實(shí)現(xiàn)相關(guān)的控制操作。導(dǎo)入四自由度各連桿的3D模型數(shù)據(jù),并采用patch()函數(shù)正確組裝四自由度SCARA機(jī)器人整體模型,實(shí)現(xiàn)了圖形區(qū)的設(shè)計(jì)??刂茀^(qū)域包括包含滑動(dòng)條、文本框及控制按鈕的建立等。建立的控制區(qū)圖3所示,其中各個(gè)關(guān)節(jié)變量的范圍由SCARA機(jī)器人的設(shè)計(jì)參數(shù)決定。

圖3 機(jī)器人的運(yùn)動(dòng)控制面板
在導(dǎo)入四自由度SCARA機(jī)器人各連桿3D模型數(shù)據(jù)和建立控制區(qū)域后,編寫SCARA機(jī)器人的正運(yùn)動(dòng)學(xué)函數(shù)SCARADK()和逆運(yùn)動(dòng)學(xué)函數(shù)SCARAIK()。對(duì)于四自由度SCARA機(jī)器人,由于它的三個(gè)旋轉(zhuǎn)關(guān)節(jié)軸線平行,所以最多只有兩組解。采用行程最小的原則選取最優(yōu)解。并對(duì)SCARA機(jī)器人的正解和反解加以驗(yàn)證以保證其正確性。
搭建完畢的四自由度SCARA機(jī)器人仿真平臺(tái)如圖4。

圖4 SCARA機(jī)器人仿真平臺(tái)
假定期望軌跡為從(250,0,60)到(300,0,60)的一條直線,機(jī)器人運(yùn)動(dòng)軌跡如圖5。

圖5 SCARA機(jī)器人直線運(yùn)動(dòng)軌跡
在研究了機(jī)器人建模方法的基礎(chǔ)上,采用MATLAB和Pro/E相結(jié)合的方法搭建了四自由度SCARA機(jī)器人仿真平臺(tái),并利用三維可視化技術(shù)展示了機(jī)器人了實(shí)時(shí)動(dòng)態(tài)的運(yùn)動(dòng)情況,實(shí)現(xiàn)了機(jī)器人的運(yùn)動(dòng)學(xué)仿真。結(jié)果證明,這種建模和仿真的方法是有效的,模型是可操作的,可以為機(jī)器人進(jìn)一步分析和研究提供參考。
[1]Ting Yao,Yu-xian Gai and Hui-ying Liu,Commercial CAD Tools Based Digital Integrated Development Platform for Laser Cutting Robot,Proceedings of the 2009 IEEE International Conference on Robotics and Biomimetics,December 19-23,2009:2114-2118.
[2]毛立民,鄒劍.關(guān)節(jié)型碼垛機(jī)械手運(yùn)動(dòng)學(xué)分析及仿真[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(9):44-47.
[3]譚曉東,劉鑫,趙巖.PUMA560機(jī)械手虛擬裝配過(guò)程中的視覺分析和變換計(jì)算的研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(1):27-31.
[4]張牧,李亮玉,王天琪,等.基于Solid Works的海洋平臺(tái)導(dǎo)管架弧焊機(jī)器人離線編程系統(tǒng)[J].上海交通大學(xué)學(xué)報(bào),2008(S1):12-14.
[5]邢迪雄,張琦.基于CATIA V5的工業(yè)機(jī)器人運(yùn)動(dòng)學(xué)仿真研究[J].機(jī)械,2011(1):57-61.
[6]顧劍鋒,張興國(guó),朱龍彪.基于DSP運(yùn)動(dòng)控制器的5R工業(yè)機(jī)器人系統(tǒng)設(shè)計(jì)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2009(11):52-55.
[7]李吉平,杜江,彭健均.基于精度可控幾何模型的CRT工業(yè)機(jī)器人運(yùn)動(dòng)仿真[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(9):67-69.
[8]孫毅軍,佘蕾斌,邱長(zhǎng)伍,等.基于Java3D的仿人型機(jī)器人三維仿真[J].上海交通大學(xué)學(xué)報(bào),2007(8):1287-1291.
[9]郭其龍,張連東.SCARA型機(jī)器人魯棒控制及仿真的研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2008(2):38-41.
[10]鐘日銘.Pro/ENGINEER產(chǎn)品建模與Cinema4D渲染表現(xiàn)[M].北京:清華大學(xué)出版社,2010.