朱婷婷,岑豫皖
(安徽工業(yè)大學(xué),安徽馬鞍山243002)
多關(guān)節(jié)機器人研究的一個重要方面是運動學(xué)研究,通過建立其運動學(xué)數(shù)學(xué)方程并通過求正解及逆解,可得到機械臂關(guān)節(jié)空間和位姿空間的相互關(guān)系。在研究運動學(xué)方程和各種正解及逆解算法的基礎(chǔ)上,為了更直觀和方便地研究機械臂運動學(xué)規(guī)律,克服機器人關(guān)節(jié)運動的強耦合給其空間運動軌跡分析造成的困難,開發(fā)可視化機器人仿真平臺已成為機器人運動學(xué)研究關(guān)注的熱點之一。
多關(guān)節(jié)機器人運動學(xué)仿真及可視化的主要方法有:(1)應(yīng)用或編寫專業(yè)機器人仿真軟件。近年來國內(nèi)外已有許多功能齊全的、商品化的機器人設(shè)計和研究仿真軟件[1]。文獻(xiàn)[2]在推導(dǎo)和分析液壓挖掘機工作裝置運動軌跡和受力規(guī)律的基礎(chǔ)上,開發(fā)了工作裝置挖掘性能可視化軟件[2],該軟件可快速準(zhǔn)確地描繪出工作裝置挖掘范圍,并且該軟件繪制的挖掘力云圖可直觀描述挖掘機在某一區(qū)域的挖掘性能。顯然開發(fā)這類軟件是一項復(fù)雜艱巨的系統(tǒng)工作。(2)采用Pro/E、ADAMS 或SolidWorks 等三維建模軟件。ADAMS 軟件是虛擬樣機領(lǐng)域非常優(yōu)秀的軟件。它的功能很強大,給用戶提供了友好的界面、快速簡便的建模功能、強大的函數(shù)庫、交互式仿真和動畫顯示功能等等。但是用ADAMS 建立三維實體模型十分困難,需要借助Pro/E 等來輔助建模。在機器人工作空間研究中,需定義油缸的先后動作順序和設(shè)置驅(qū)動函數(shù)方可得到工作空間[3-4],這種方法建模復(fù)雜,后續(xù)的分析和仿真較困難。(3)基于MATLAB 的方法。MATLAB 是一種功能強大的數(shù)學(xué)計算軟件,并且隨著各種工具箱的增加,其仿真功能、編程功能等也與日俱增。由于在機器人的研究中,所處理的數(shù)據(jù)和各種數(shù)據(jù)的計算量很大,而且大都是關(guān)于矩陣的運算,因此,目前很多機械人可視化仿真軟件是基于MATLAB 平臺的。如曾建軍[5]在研究排爆機器人遙操作性能時,采用MATLAB 進(jìn)行數(shù)值計算,應(yīng)用OpenGL建立圖形用戶界面,但是其建模過程太過復(fù)雜。劉曉玉等[6]在MATLAB 中建立了機器人運動學(xué)可視化仿真平臺,利用MATLAB 集成仿真環(huán)境,分別實現(xiàn)了機器人正逆運動學(xué)計算、機器人點動和聯(lián)動操作的動畫演示等功能。徐兵等人[7]在MLTLAB/simulink 環(huán)境下對挖掘機進(jìn)行動力學(xué)建模和仿真。這類仿真通常利用MATLAB 強大的計算功能和繪圖及動畫功能,但是其三維建模和運動仿真都需要從最底層的MATLAB程序編起,過程比較繁瑣。
Robotics Toolbox 是一套基于MATLAB 的應(yīng)用工具箱,提供了許多機器人學(xué)研究中需要的功能函數(shù),方便了對機器人進(jìn)行建模和仿真[8]。MATLAB 不僅擁有高性能數(shù)值計算能力,而且能開發(fā)出界面友好、使用方便的圖形界面,在系統(tǒng)仿真模型研究中得到了廣泛的應(yīng)用。GUI(Graphical User Interfaces)也叫圖形用戶界面,在該界面上,用戶可以選擇相應(yīng)控件來創(chuàng)建界面對象,在屬性編輯器中修改對象的屬性,通過findobj 命令獲取所需對象的句柄,編寫相應(yīng)的回調(diào)函數(shù),即可完成GUI 整個基本過程的設(shè)計。文中基于Robotics Toolbox 工具箱建立了拆除機器人仿真模型,在GUI 環(huán)境中建立圖形用戶界面,該界面可以進(jìn)行正、逆運動學(xué)仿真研究,快速繪制工作裝置總工作空間和特定姿態(tài)角下的工作空間,在工作空間利用鼠標(biāo)自動拾取目標(biāo)點的坐標(biāo)數(shù)值并進(jìn)行運動學(xué)逆解計算,動態(tài)顯示運動軌跡等功能。
拆除機器人是一種借助液壓錘或液壓剪等工具實施破拆作業(yè)的特種機器人,它通過高頻液壓振動對建筑、路面、巖石等堅硬物體進(jìn)行打擊,廣泛應(yīng)用于市政、礦山和搶險救災(zāi)等領(lǐng)域。拆除機器人典型結(jié)構(gòu)如圖1所示,工作裝置可繞底盤360°旋轉(zhuǎn),并由3 節(jié)桿組成多關(guān)節(jié)機械臂,液壓錘等破拆工具裝于機械臂末端。根據(jù)工作需要,液壓錘通常要求在桿系平面內(nèi)以特定姿態(tài)角作用于破拆物體。
圖1 拆除機器人結(jié)構(gòu)圖
在機械臂運動學(xué)分析研究中,通常將其工作裝置處理成多自由度的串聯(lián)機械手,圖2 是根據(jù)工作裝置結(jié)構(gòu)圖建立的D-H 坐標(biāo)系。D-H 坐標(biāo)系參數(shù)見表1。
圖2 機器人工作裝置D-H 坐標(biāo)系
表1 D-H 坐標(biāo)系參數(shù)
根據(jù)表1 的D-H 參數(shù),通過以下指令可以方便地在Robotics Toolbox 工具箱內(nèi)建立機器人模型:
L{1}=link([0 a1θ100 0 ],'standard');
L{2}=link([0 a2θ200 0 ],'standard');
L{3}=link([0 a3θ300 0 ],'standard');
L{4}=link([0 a4θ400 0 ],'standard');
my4r=robot(L,'拆除機器人');其中:θ10、θ20、θ30、θ40分別是各關(guān)節(jié)的初始角度。任意給定一個關(guān)節(jié)矩陣
q= [θ1θ2θ3θ4]
運行命令
plot(my4r,q);
即可得到該關(guān)節(jié)矩陣下的拆除機器人模型。然后定義各關(guān)節(jié)角最大值、最小值和各關(guān)節(jié)的先后動作順序,使用jtraj 命令在關(guān)節(jié)空間進(jìn)行插值和fkine 命令運行插值后的每組關(guān)節(jié)坐標(biāo)并且記錄下運行后得到的各組末端坐標(biāo),將所有坐標(biāo)點采用squeeze 函數(shù)降維處理后繪制出來即是相應(yīng)工作空間,如圖3所示。
圖3 總工作空間
圖3 繪制的是機器人在非特定姿態(tài)角下所能到達(dá)的總空間,在每次實際作業(yè)中,應(yīng)根據(jù)作業(yè)要求選擇最佳工作角,而特定姿態(tài)角下所能到達(dá)的空間肯定小于總工作空間,所以為提高仿真準(zhǔn)確性應(yīng)根據(jù)其特定姿態(tài)角繪制相應(yīng)工作空間。不失一般性,拆除機械人運動學(xué)分析通常是在桿系所構(gòu)成的平面內(nèi)進(jìn)行,不需考慮機器人的平移和轉(zhuǎn)動,此時可采用view(2)命令,將圖形視角切換到xy 平面,如圖4所示,圖中較小的封閉范圍是姿態(tài)角為-90°即末端垂直于地面時的工作空間。
圖4 xy 平面視圖
GUI 界面的設(shè)計主要采用靜態(tài)文本框、列表框、可編輯文本框、觸控按鈕、面板和坐標(biāo)軸等控件來實現(xiàn)一些功能。各個控件的功能通過編寫相應(yīng)的回調(diào)函數(shù)來實現(xiàn)。
圖5所示為所設(shè)計的GUI 界面,它由圖形動態(tài)顯示、目標(biāo)位置和姿態(tài)角設(shè)置、運行指令和運動學(xué)逆解結(jié)果顯示等四大功能組成,通過操作界面的觸控按鈕和滑動條就可以完成姿態(tài)角調(diào)整、工作空間繪制、作業(yè)目標(biāo)點的自動拾取、運動學(xué)逆解獲取期望的各關(guān)節(jié)角度和驅(qū)動空間中各液壓缸的運動位置,為機械人的控制提供依據(jù)。幾個主要功能如下:
(1)預(yù)設(shè)目標(biāo)姿態(tài)角。可以通過手動輸入或滑動條調(diào)節(jié);
(2)繪制目標(biāo)姿態(tài)角下工作空間。由“繪制當(dāng)前工作空間”按鈕控制;
(3)預(yù)設(shè)目標(biāo)位置。在工作空間范圍內(nèi)單擊鼠標(biāo),選擇目標(biāo)點,該點坐標(biāo)就會自動在“目標(biāo)位姿”區(qū)的X、Y 后的編輯框中給出;
(4)求運動學(xué)逆解。點擊“參數(shù)面板”區(qū)的“求解”按鈕就會根據(jù)設(shè)定的目標(biāo)位姿自動得到“各關(guān)節(jié)當(dāng)前值”和“各油缸當(dāng)前長度”;
(5)動畫仿真和數(shù)據(jù)更新。點擊“運行”按鈕即可驅(qū)動機器人按得到的“各關(guān)節(jié)當(dāng)前值”運動到期望位姿,并且在圖上繪出該段的運動軌跡,同時更新機器人的“當(dāng)前位姿”。
圖5 GUI 界面
完成整個界面設(shè)計和所有程序后,想要將建成的GUI 界面轉(zhuǎn)變成exe 文件,從而脫離MATLAB 環(huán)境獨立運行,可以借助MATLAB 中的mcc 編譯功能來實現(xiàn),將主程序函數(shù)文件編譯成可獨立執(zhí)行的* .exe文件,成為脫離MATLAB 環(huán)境的獨立運行的應(yīng)用程序。雙擊編譯后的exe 文件,即可進(jìn)入初始界面,進(jìn)行仿真實驗,圖6所示是界面運行后的截圖。
圖6 運行后的界面
表2 是在該程序下進(jìn)行3 組仿真實驗結(jié)果,x、y、φ 分別是期望的x 軸、y 軸坐標(biāo)(mm)和姿態(tài)角(°),點擊“逆解”按鈕獲得各關(guān)節(jié)期望角度,并自動地通過改變關(guān)節(jié)矩陣q [θ1θ2θ3θ4]的輸入得到新的動態(tài)圖形,其末端位置就是仿真結(jié)果得到的x軸、y 軸坐標(biāo)(mm)和姿態(tài)角(°),分別用x0,y0,φ0表示,可以看出兩者誤差很小,表明該界面下的運動學(xué)仿真是合理的。
表2 實驗數(shù)據(jù)對比表
(1)以MATLAB 為平臺,利用Robotics Toolbox工具箱建立了拆除機器人運動學(xué)模型,建立了簡單直觀的GUI 圖形用戶界面。該軟件可以脫離MATLAB環(huán)境獨立運行,實現(xiàn)了三維機器人模型自動繪制總工作空間和特定姿態(tài)角下的工作空間;
(2)在界面中可以進(jìn)行正、逆運動學(xué)仿真研究,用戶只需在相應(yīng)的編輯框中輸入相應(yīng)的參數(shù),就可以在輸出框及圖形框中獲得相應(yīng)的結(jié)果,從而可以方便地對結(jié)果進(jìn)行分析。
(3)實驗結(jié)果表明:所提供的程序和算法精度較高,展示了參數(shù)的可調(diào)控性及程序的可行性。
【1】衣勇,宋雪萍.機器人仿真研究的現(xiàn)狀與發(fā)展趨勢[J].機械工程師,2009(7):63-65.
【2】李獻(xiàn)杰,李作浩,黃勃,等.挖掘機工作裝置的可視化性能分析[J].機床與液壓,2011,39(17):113-116
【3】劉軍偉.基于虛擬樣機的智能拆除機器人工作裝置設(shè)計與研究[D].西安:長安大學(xué),2010.
【4】尹成龍,牛多青.基于SolidWorks 的挖掘機虛擬樣機設(shè)計及工作裝置運動仿真[J].機械制造,2009,47(4):15-17
【5】曾建軍.排爆機器人遙操作性能研究[D].上海:上海交通大學(xué),2010.
【6】劉曉玉,何洪生.基于MATLAB 的某型機器人運動學(xué)可視化仿真平臺實現(xiàn)[J].自動化技術(shù)與應(yīng)用,2011,30(7):66-71.
【7】徐兵,朱曉軍,劉偉,等.挖掘機工作裝置運動學(xué)建模與仿真[J].機床與液壓,2011,39(9):97-99.
【8】CORKE P.A Robotics Toolbox for MATLAB[J].IEEE Robotics and Automation Magazine,1996,3(1):24-32.