侯歆巖
(太原科技大學(xué),太原 030000)
機(jī)械臂是機(jī)械手工作過程中的重要組成部分,由一系列的連桿和關(guān)節(jié)組成,負(fù)責(zé)對(duì)末端執(zhí)行機(jī)構(gòu)進(jìn)行搬運(yùn),使其能到達(dá)指定的坐標(biāo)位置。為完成預(yù)定的工作目標(biāo),需要對(duì)其進(jìn)行運(yùn)動(dòng)控制。機(jī)械臂運(yùn)動(dòng)控制涉及機(jī)械臂運(yùn)動(dòng)學(xué)分析。運(yùn)動(dòng)學(xué)分析模型采用了D-H法,可通過其對(duì)機(jī)械臂進(jìn)行運(yùn)動(dòng)學(xué)求解。
本次設(shè)計(jì)的機(jī)械臂主要用于圖書館內(nèi)的自動(dòng)借還書系統(tǒng),用于對(duì)負(fù)責(zé)夾取圖書的末端執(zhí)行機(jī)構(gòu)進(jìn)行搬運(yùn),使其能準(zhǔn)確到達(dá)所需夾取圖書的位置。整個(gè)機(jī)械臂去除末端執(zhí)行機(jī)構(gòu)后具有五個(gè)關(guān)節(jié),分為底座、腰部、大臂、小臂、手腕五個(gè)部分。其中腰部負(fù)責(zé)整個(gè)機(jī)械臂本體機(jī)構(gòu)的轉(zhuǎn)動(dòng),大臂、小臂和手腕部負(fù)責(zé)末端執(zhí)行機(jī)構(gòu)位姿的變化。
本次設(shè)計(jì)的機(jī)械臂有五個(gè)關(guān)節(jié),每個(gè)關(guān)節(jié)對(duì)應(yīng)一個(gè)自由度,模型采用D-H法建立。機(jī)械臂的組成是由五個(gè)連桿以及五個(gè)關(guān)節(jié)組成。連桿使兩端的關(guān)節(jié)軸線具有固定的幾何關(guān)系,關(guān)節(jié)控制連桿的轉(zhuǎn)動(dòng)角度和轉(zhuǎn)速。在對(duì)機(jī)械臂進(jìn)行分析時(shí),需給各個(gè)連桿都建立一個(gè)坐標(biāo)系,如圖1所示。用每個(gè)連桿上的固定坐標(biāo)系表明連桿和相鄰連桿的相對(duì)位置關(guān)系。在建立好連桿各個(gè)關(guān)節(jié)的坐標(biāo)系后即可確定連桿參數(shù),連桿參數(shù)如表1所示。每個(gè)連桿由四個(gè)參數(shù)來(lái)表示,即連桿長(zhǎng)度li、連桿扭角αi、連桿距離di、連桿轉(zhuǎn)角θi[1]。
圖1 機(jī)械臂連桿坐標(biāo)系Fig.1 Coordinate system of manipulator connecting rod
表1 連桿參數(shù)表Tab.1 Parameter list of connecting rod
運(yùn)動(dòng)學(xué)正解是根據(jù)機(jī)械臂各個(gè)關(guān)節(jié)工作狀態(tài)來(lái)求解末端執(zhí)行機(jī)構(gòu)的所在位置。得出運(yùn)動(dòng)學(xué)正解方程后,可根據(jù)正解方程和各個(gè)關(guān)節(jié)所在角度計(jì)算出末端執(zhí)行機(jī)構(gòu)相對(duì)于原點(diǎn)的位置與姿態(tài)[2]。計(jì)算過程如下:
其中,法向矢量n是通過右手定則確定的矢量。方位矢量o表示執(zhí)行機(jī)構(gòu)的連線方向,接近矢量a表示末端執(zhí)行機(jī)構(gòu)接近圖書的方向,則末端執(zhí)行機(jī)構(gòu)的姿態(tài)即可表示為R=[n,o,a],末端執(zhí)行機(jī)構(gòu)的位置可根據(jù)位置矢量p確定。
通過運(yùn)動(dòng)學(xué)逆解可以在規(guī)定末端執(zhí)行機(jī)構(gòu)位置時(shí)確定每個(gè)關(guān)節(jié)的值,從而計(jì)算機(jī)械手能做到預(yù)定姿態(tài)時(shí)各個(gè)關(guān)節(jié)的位置[3]。
上述為逆解該機(jī)械臂各關(guān)節(jié)變量的求解方程。在工作時(shí)已知末端執(zhí)行機(jī)構(gòu)所處位姿,可通過上述方程求解各個(gè)關(guān)節(jié)所對(duì)應(yīng)的角度,從而控制機(jī)械臂到達(dá)相應(yīng)位置。
通過MATLAB軟件中的Robotics Toolbox,可以對(duì)該機(jī)械臂建立D-H模型,從而對(duì)機(jī)械臂的運(yùn)動(dòng)進(jìn)行可視化仿真[4]。
機(jī)械臂在到達(dá)所需工作的位置時(shí),各個(gè)關(guān)節(jié)需同時(shí)運(yùn)動(dòng)才能到達(dá)最終的目標(biāo)位置。設(shè)工作時(shí)機(jī)械臂的各個(gè)關(guān)節(jié)參數(shù)為θ=(90,90,-90,90,90),通過MATLAB編程對(duì)其進(jìn)行正運(yùn)動(dòng)學(xué)方程求解,得n=(1,0,0),o=(0,1,0),a=(0,0,1),p=(0,4950,1150)。通過模型對(duì)其進(jìn)行模擬,模擬結(jié)果如圖2所示。其位置參數(shù)與所求解相同,即計(jì)算得到的運(yùn)動(dòng)學(xué)正解是正確的。
圖2 機(jī)械臂模擬及位置參數(shù)Fig.2 Simulation and location parameter of manipulator
對(duì)其套用逆解公式求解。設(shè)當(dāng)其工作時(shí),機(jī)械臂工作位置為相對(duì)機(jī)械臂的原點(diǎn),高3500,距離1500,其末端執(zhí)行機(jī)構(gòu)姿態(tài)為n=(1,0,0),o=(0,1,0),a=(0,0,1),p=(0,3500,1500)。將其各個(gè)位置參數(shù)帶入逆運(yùn)動(dòng)學(xué)方程,可求得其逆解。得該位置有且只有唯一解為θ1=90°,θ2=161°,θ3=-132°,θ4=90°,θ5=90°。通過模型對(duì)其解進(jìn)行驗(yàn)證,將各個(gè)角度帶入,如圖3所示。從求得的解可以看出,解與實(shí)際情況之間存在誤差的原因是由于機(jī)械設(shè)計(jì)過程中各個(gè)連接件之間的尺寸及配合之間存在誤差,主要原因是對(duì)三角函數(shù)的求解存在較大誤差,而且角度輸入亦存在誤差。但最終解與機(jī)械臂位置數(shù)據(jù)基本相符,驗(yàn)證了所求運(yùn)動(dòng)學(xué)逆解的正確性。
圖3 機(jī)械臂模擬及位置參數(shù)Fig.3 Simulation and location parameter of manipulator