肖振興
(柳州鐵道職業(yè)技術(shù)學(xué)院電子技術(shù)學(xué)院,廣西 柳州 545616)
機(jī)械手臂在工業(yè)生產(chǎn)、災(zāi)難救援、手術(shù)醫(yī)療等方面有著重要的應(yīng)用。當(dāng)前,國(guó)內(nèi)在先進(jìn)機(jī)械手臂研發(fā)和生產(chǎn)上缺乏創(chuàng)新和基礎(chǔ)性研究。國(guó)際上有ABB、KUKA 兩大領(lǐng)頭羊,其在機(jī)械手臂設(shè)計(jì)制造和控制方面均有極大造詣。在全球一體化越來(lái)越深入的今天,我國(guó)如不加強(qiáng)對(duì)應(yīng)專(zhuān)業(yè)人才培養(yǎng),必將在全球一體化浪潮處于下風(fēng),甚至?xí)霈F(xiàn)關(guān)鍵技術(shù)“卡脖子”的狀況。
引進(jìn)機(jī)械手臂進(jìn)入課堂,對(duì)提高學(xué)生專(zhuān)業(yè)學(xué)習(xí)水平和積累實(shí)踐操作經(jīng)驗(yàn)有著重要的幫助。但目前,各機(jī)械手臂生產(chǎn)商的機(jī)械手臂價(jià)格高昂,便宜的十幾萬(wàn)一套,高檔次的要上百萬(wàn),給實(shí)驗(yàn)室建設(shè)和設(shè)備操作的普及帶來(lái)昂貴的經(jīng)濟(jì)成本,也制約了機(jī)器人專(zhuān)業(yè)人才的培養(yǎng)。因此,開(kāi)發(fā)經(jīng)濟(jì)、實(shí)用、符合機(jī)械手臂發(fā)展方向的示教型機(jī)械手臂,對(duì)于機(jī)器人專(zhuān)業(yè)人才培養(yǎng)具有極大的助力。
本文設(shè)計(jì)了一款由舵機(jī)構(gòu)成的六自由度的機(jī)械臂。它由機(jī)械臂和機(jī)械手臂控制器構(gòu)成。如果一個(gè)機(jī)器人要在一個(gè)空間內(nèi)自由活動(dòng)或抓取物體,那么機(jī)器人必須可以在空間內(nèi)的X、Y、Z軸平移運(yùn)動(dòng)和繞X、Y、Z軸轉(zhuǎn)動(dòng)[1]。復(fù)雜的工業(yè)生產(chǎn)機(jī)械手臂都要具備六個(gè)自由度。為了更好地與實(shí)踐貼合,本文開(kāi)發(fā)的機(jī)械手臂也為六個(gè)自由度。
機(jī)器人空間內(nèi)運(yùn)動(dòng)坐標(biāo)如圖1 所示。
圖1 機(jī)器人空間內(nèi)運(yùn)動(dòng)坐標(biāo)圖Fig.1 Coordinate diagram of robot movement in space
機(jī)械臂的關(guān)節(jié)由若干舵機(jī)構(gòu)成。底座由金屬云臺(tái)構(gòu)成,可以360°旋轉(zhuǎn);關(guān)節(jié)之間通過(guò)連接桿鏈接,末端執(zhí)行器可以360°旋轉(zhuǎn)和夾取。機(jī)械手臂分別能夠完成機(jī)械臂的旋轉(zhuǎn)、前后、左右、末端執(zhí)行器的開(kāi)閉、張合動(dòng)作。機(jī)械手臂結(jié)構(gòu)如圖2 所示。
圖2 機(jī)械手臂結(jié)構(gòu)示意圖Fig.2 Schematic diagram of mechanical arm structure
機(jī)械臂關(guān)鍵器件舵機(jī)采用MG996R 型舵機(jī)。該型舵機(jī)控制方法簡(jiǎn)單,具有控制精度高、成本低、體積小等特點(diǎn),并可以根據(jù)數(shù)量的不同加以靈活應(yīng)用。產(chǎn)品扭矩為9 kg·cm(4.8 V)、11kg·cm(6 V);產(chǎn)品速度為0.19 s/60°(4.8 V)、0.18 s/60°(6 V);轉(zhuǎn)動(dòng)角度為180°;工作電壓為4.8~6 V;齒輪形式為金屬齒輪;死區(qū)設(shè)定為5 μs;產(chǎn)品重量為55 g;產(chǎn)品尺寸為40.7 mm×19.7 mm×42.9 mm。
從產(chǎn)品的參數(shù)可知,扭矩完全可以滿足日常教學(xué)示教的需求。
從圖2 可以看出:關(guān)節(jié)1、關(guān)節(jié)3 和關(guān)節(jié)6 可以控制機(jī)械手臂在空間內(nèi)旋轉(zhuǎn)和左右方向運(yùn)動(dòng);關(guān)節(jié)2、關(guān)節(jié)4 和關(guān)節(jié)5 控制機(jī)械臂在坐標(biāo)軸的前后方向運(yùn)動(dòng);關(guān)節(jié)7 控制末端執(zhí)行器的夾取動(dòng)作。加上末端執(zhí)行器,可以更好地進(jìn)行示教教學(xué)。它的空間位置與各連桿之間的空間位置的關(guān)系,是機(jī)械臂空間位置分析的基礎(chǔ)[2]。
控制電路板接收來(lái)自信號(hào)線的控制信號(hào),控制電機(jī)轉(zhuǎn)動(dòng)。電機(jī)帶動(dòng)一系列齒輪組,減速后傳動(dòng)至輸出舵盤(pán)。舵機(jī)的輸出軸和位置反饋電位計(jì)是相連的,在舵盤(pán)轉(zhuǎn)動(dòng)的同時(shí)帶動(dòng)位置反饋電位計(jì)。電位計(jì)輸出一個(gè)電壓信號(hào)到控制電路板,進(jìn)行反饋。然后,控制電路板根據(jù)所在位置決定電機(jī)轉(zhuǎn)動(dòng)的方向和速度,從而達(dá)到目標(biāo)并停止。其工作流程為:控制信號(hào)→控制電路板→電機(jī)轉(zhuǎn)動(dòng)→齒輪組減速→舵盤(pán)轉(zhuǎn)動(dòng)→位置反饋電位計(jì)→控制電路板反饋。轉(zhuǎn)角與輸入脈沖的關(guān)系如圖3 所示。
圖3 轉(zhuǎn)角與輸入脈沖的關(guān)系圖Fig.3 Relationship between the angle and the input pulse
舵機(jī)的控制信號(hào)為脈寬調(diào)制(pulsewidth modulation,PWM)信號(hào),周期為20 ms。其中,脈沖寬度為0.5~2.5 ms;相對(duì)應(yīng)的舵盤(pán)位置為0~180°,呈線性變化。給舵機(jī)提供一定的脈寬,它的輸出軸就會(huì)保持一定的對(duì)應(yīng)角度,無(wú)論外界轉(zhuǎn)矩怎么改變。直到給舵機(jī)提供1 個(gè)另外寬度的脈沖信號(hào)時(shí),它才會(huì)改變輸出角度。舵機(jī)內(nèi)部有1 個(gè)可以產(chǎn)生周期為20 ms、寬度為1.5 ms 的基準(zhǔn)信號(hào)的基準(zhǔn)電路。1.5 ms 的基準(zhǔn)信號(hào)剛好是90°位置的脈沖寬度值,內(nèi)部的比較器將對(duì)比外加信號(hào)與基準(zhǔn)信號(hào),判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動(dòng)信號(hào)。
機(jī)械臂控制器結(jié)構(gòu)如圖4 所示。
圖4 機(jī)械臂控制器結(jié)構(gòu)圖Fig.4 Structure of manipulator controller
舵機(jī)驅(qū)動(dòng)電路采用的是PCA9685[3]芯片。該芯片有16 個(gè)PWM 輸出通道,分辨率為12 bit,與控制器的通信采用內(nèi)部集成電路(inter-integrated circuit,IIC)方式通信,只需要2 根線即可。芯片介紹如下:①I(mǎi)IC 接口,支持高達(dá)16 路PWM 輸出,每路12 位分辨率(4096級(jí));②內(nèi)置25 MHz 晶振,可不連接外部晶振,也可以連接外部晶振,最大50 MHz;③支持2.3~5.5 V 電壓,最大耐壓值5.5 V,邏輯電平3.3 V;④具有上電復(fù)位以及軟件復(fù)位等功能。
根據(jù)其分辨率,舵機(jī)控制的脈沖周期理論精度為4.88 μs,對(duì)應(yīng)的角度控制理論精度為0.044°。
PCA9685 有16 路PWM 信號(hào)輸出。微控制器對(duì)外部控制信號(hào)進(jìn)行處理,并經(jīng)過(guò)IIC 總線送至PCA9685 內(nèi)部,控制PCA9685 實(shí)現(xiàn)對(duì)應(yīng)通道的PWM輸出,進(jìn)而控制舵機(jī)機(jī)械相應(yīng)地轉(zhuǎn)動(dòng)。
外部控制設(shè)備由矩陣鍵盤(pán)和搖桿開(kāi)關(guān)組成。矩陣鍵盤(pán)可以選定對(duì)應(yīng)的舵機(jī),再通過(guò)搖桿開(kāi)關(guān)控制選定的舵機(jī)進(jìn)行轉(zhuǎn)動(dòng)。通過(guò)連續(xù)的選定,就可以讓機(jī)械臂完成不同的操作動(dòng)作。
限于篇幅限制,本文只介紹軟件設(shè)計(jì)思路,并給出軟件設(shè)計(jì)流程圖。機(jī)械臂控制主要有單個(gè)舵機(jī)控制和動(dòng)作組控制。以下對(duì)這2 種控制方法的軟件設(shè)計(jì)思路進(jìn)行介紹。當(dāng)然,也有的機(jī)械臂采用數(shù)字信號(hào)處理(digital signal processing,DSP)[4]、現(xiàn)場(chǎng)可邏輯門(mén)陣列(field programmable gate array,FPGA)[5]作為控制器,或者使用開(kāi)源硬件Arduino 作為控制器[6]。這些方法都可以達(dá)到設(shè)計(jì)要求。
單個(gè)舵機(jī)控制是指對(duì)機(jī)械臂上的舵機(jī)進(jìn)行單獨(dú)控制。圖2 中有7 個(gè)舵機(jī)組成了機(jī)械臂的關(guān)節(jié)。每個(gè)舵機(jī)經(jīng)過(guò)一定角度的轉(zhuǎn)動(dòng),可以使末端執(zhí)行器到達(dá)設(shè)定的位置。因此,在矩陣鍵盤(pán)選擇對(duì)應(yīng)的舵機(jī)后,通過(guò)搖桿開(kāi)關(guān)控制其轉(zhuǎn)動(dòng)。連續(xù)選定不同舵機(jī)后,就可以讓機(jī)械臂完成不同的操作、到達(dá)不同的位置。
按鍵掃描程序查詢外部按鍵、控制信號(hào)的輸入。當(dāng)有按鍵信號(hào)輸入時(shí),則選定對(duì)應(yīng)舵機(jī)。繼而查詢搖桿開(kāi)關(guān)的信號(hào)輸入,以搖桿開(kāi)關(guān)的輸入信號(hào)作為舵機(jī)PWM 設(shè)定值,并經(jīng)過(guò)IIC 總線將通道地址和PWM 脈寬設(shè)定值送PCA9685 內(nèi)部,從而完成對(duì)舵機(jī)的控制。
PCA9685 芯片與微處理器的通信是以IIC 的方式進(jìn)行的。所以在對(duì)PCA9685 進(jìn)行數(shù)據(jù)讀寫(xiě)時(shí),需要進(jìn)行IIC 總線初始化、IIC 總線啟動(dòng)、IIC 總線停止信號(hào)、IIC 總線應(yīng)答信號(hào)、IIC 讀寫(xiě),以及對(duì)PCA9685 芯片讀寫(xiě)數(shù)據(jù)及復(fù)位進(jìn)行初始化和編程。
單個(gè)舵機(jī)控制程序設(shè)計(jì)流程如圖5 所示。
圖5 單個(gè)舵機(jī)控制程序設(shè)計(jì)流程圖Fig.5 Design flowchart of single steering gear control program
動(dòng)作組控制程序設(shè)計(jì)流程如圖6 所示。
圖6 動(dòng)作組控制程序設(shè)計(jì)流程圖Fig.6 Design flowchart of action group control program
動(dòng)作組控制是由多個(gè)舵機(jī)轉(zhuǎn)動(dòng)完成一定的操作,按鍵選定對(duì)應(yīng)舵機(jī),并使之轉(zhuǎn)動(dòng)一定的角度。此時(shí),微處理器記住舵機(jī)轉(zhuǎn)動(dòng)的角度并保留數(shù)據(jù),連續(xù)多次設(shè)定多個(gè)舵機(jī)的轉(zhuǎn)動(dòng)角度,并依次保留舵機(jī)轉(zhuǎn)動(dòng)角度數(shù)據(jù)。這樣,機(jī)械臂就有了一套固定的動(dòng)作。這套固定的動(dòng)作是由舵機(jī)轉(zhuǎn)動(dòng)完成的。而舵機(jī)轉(zhuǎn)動(dòng)的數(shù)據(jù)微處理器已經(jīng)保留并記錄,一鍵調(diào)用即可。按照此方法,微處理器可以保留多套動(dòng)作,通過(guò)按鍵調(diào)用演示,能夠達(dá)到很好的示教效果。機(jī)械臂完成一套動(dòng)作有許多的控制算法,如自適應(yīng)比例積分微分(proportional integral differential,PID)控制[7],可提高運(yùn)動(dòng)精度。
舵機(jī)構(gòu)成的六自由度示教型機(jī)械手臂主要由機(jī)械臂和控制器構(gòu)成,能夠模仿工業(yè)生產(chǎn)機(jī)械臂的各種操作動(dòng)作。示教型機(jī)械手臂的引入能夠提升課堂學(xué)習(xí)體驗(yàn)、增強(qiáng)學(xué)生學(xué)習(xí)興趣,使學(xué)生了解機(jī)械臂機(jī)械結(jié)構(gòu)、機(jī)械臂的運(yùn)動(dòng)學(xué)、機(jī)械臂的控制算法。示教型機(jī)械手臂制作成本低,為解決由經(jīng)濟(jì)成本帶來(lái)的實(shí)驗(yàn)設(shè)備缺乏問(wèn)題提供了設(shè)備技術(shù)解決方案。機(jī)械臂具備六個(gè)自由度,能夠模仿工業(yè)機(jī)器人機(jī)械手臂的運(yùn)動(dòng)特征。在機(jī)械臂的驅(qū)動(dòng)控制上,采用PCA9685 芯片作為PWM驅(qū)動(dòng)信號(hào)的來(lái)源。該芯片能夠輸出16 路PWM 信號(hào),且脈寬可調(diào)。本文設(shè)計(jì)對(duì)于后續(xù)的機(jī)械臂擴(kuò)展和升級(jí)也留有余地,是很好的示教型機(jī)械手臂。最終制作的樣機(jī)能夠在按鍵及手柄控制下做出不同的動(dòng)作,并且在空間上可以實(shí)現(xiàn)六個(gè)自由度運(yùn)動(dòng)。學(xué)生通過(guò)控制手柄的操作,可以直觀地觀察機(jī)械手臂的空間運(yùn)動(dòng)狀態(tài)。