, ,,
(浙江工業(yè)大學 信息工程學院,浙江 杭州 310023)
工業(yè)機械手具有使用方便、不污染環(huán)境、動作靈活迅速、工作安全可靠、操作維修簡便以及適于在惡劣環(huán)境下工作等特點.它一方面可以減少勞動力,另一方面還可以大大提高生產(chǎn)效率,因此在工業(yè)生產(chǎn)中有著廣闊的應(yīng)用前景.工業(yè)機械手[1-3]一般由執(zhí)行系統(tǒng)、驅(qū)動系統(tǒng)和控制系統(tǒng)組成,在市場上,由PLC或嵌入式控制器設(shè)計的機械手居多,如基于PLC控制的氣動機械手系統(tǒng)[4]、基于ARM嵌入式的三維機械手遠程控制系統(tǒng)[5-6].PLC擁有編程容易、可靠性強、開發(fā)簡單等方面的優(yōu)勢[7-8].ARM是面向批量的、降低成本的和開發(fā)系列產(chǎn)品的,它具有運算處理能力強、與PC通訊方便、成本低、針對應(yīng)用優(yōu)化設(shè)計等方面的優(yōu)勢.這里采用STM32F103ZET6芯片來設(shè)計控制器,所設(shè)計的伺服控制系統(tǒng)可保證機械手高精度、高效率地運行.
該機械手由底座、機械手臂、手爪、伺服電機、行星減速器、光電開關(guān)及STM32控制部分組成[9].機械手共有三個自由度,動作由伺服電機驅(qū)動,STM32控制,可以完成手臂左右移動,手臂前后伸展,手臂上下移動以及抓取工件等動作.機械手能準確地抓取工件,并送到指定位置.機械手機械部分如圖1所示.
圖1 機械手結(jié)構(gòu)簡圖
機械手每軸兩端都有一個光電開關(guān),用于設(shè)定原點與限位.對于每個光電開關(guān),在控制器中除了高低電平外,還有邊沿的變化,原點和限位可以通過這兩種變化確定.當電源開啟時,機械手開始回原點,原點定義為:X軸的最右端,Y軸的最左端,Z軸的最下端.在機械手回原點動作時,光電開關(guān)是用來定位的,其余的時候都用作限位,確保機械手的運行安全.
機械手控制系統(tǒng)主要由基于ARM Cortex-M3的STM32的控制板、伺服系統(tǒng)、接口板和觸摸屏組成,如圖2所示.
圖2 機械手控制系統(tǒng)
整個控制系統(tǒng)的核心是基于ARM Cortex-M3芯片的STM32的控制板,它經(jīng)由脈沖輸出端向伺服驅(qū)動器發(fā)出定量的脈沖來控制伺服電機的轉(zhuǎn)動.這里選用的STM32F103ZET6芯片[10-11],其內(nèi)核是ARM 32位的Cortex-M3 CPU,最高工作頻率為72 MHz,擁有單周期乘法和硬件除法,處理速度快.此外,該芯片擁有8個定時器,其中2個為系統(tǒng)定時器,可以用作系統(tǒng)定時,其余的6個定時器都可以用于發(fā)送脈沖或者對外部輸入脈沖進行計數(shù).這里所用的機械手為笛卡爾型三軸空間直角坐標機械手,需要三個定時器發(fā)送脈沖,同時需要三個定時器接收編碼器反饋信號,所以STM32F103ZET6芯片剛好滿足要求.
伺服系統(tǒng)包含兩部分:伺服電機和伺服驅(qū)動器.伺服驅(qū)動器根據(jù)輸出端的脈沖輸出數(shù)量和頻率分別控制伺服電機的轉(zhuǎn)動圈數(shù)和轉(zhuǎn)動速度,因而能夠準確地控制機械手的運行速度和距離.這里選用的是臺達ASDA-AB系列的伺服驅(qū)動器,其性價比高,操作模式有位置模式、速度模式、扭矩模式、混合模式,根據(jù)需要選定本次設(shè)計的操作模式為外部脈沖輸入位置模式.伺服電機與伺服驅(qū)動器相連,并通過一定的機械結(jié)構(gòu)(減速器和皮帶)帶動機械臂.選用ECMA系列伺服電機,Z軸垂直于地面,如果手爪抓的東西過重,在重力影響下機械手會沿Z軸緩緩下降,所以Z軸電機選用的是帶剎車的伺服電機.由于伺服電機帶有自鎖功能,考慮到成本和功能,X軸與Y軸選用普通伺服電機既能達到要求.
接口板的位置在控制板和伺服控制系統(tǒng)之間,它的作用是對控制器信號和伺服控制器信號進行隔離.接口板自帶電源,控制板信號經(jīng)過光耦轉(zhuǎn)換成24 V信號再輸給伺服啟動器.反之,伺服驅(qū)動器信號經(jīng)過光耦轉(zhuǎn)成3.3 V信號再輸給控制板.接口板能有效地轉(zhuǎn)換信號電平,并減少控制板和伺服驅(qū)動之間的干擾.
系統(tǒng)各類參數(shù)能夠通過觸摸屏直觀的顯示出來,并且通過觸摸屏與后臺的控制系統(tǒng)進行通信可以修改參數(shù),為用戶提供良好的人機交互界面,簡化了對機械手現(xiàn)場的操作.這里選用迪文科技生產(chǎn)的人機界面交互模組DWIN_HMI,它自身含有電源模塊、處理器、TFT屏、存儲單元以及接口電路,內(nèi)部還包含了一整套的指令集.通過串口通信,控制板可以將數(shù)據(jù)按固定的協(xié)議格式傳到DWIN_HMI上顯示,而且用戶在DWIN_HMI上的操作能迅速地傳到控制器上進行處理.
硬件平臺構(gòu)建好后,根據(jù)機械手的基本功能要求,在其基礎(chǔ)上搭建系統(tǒng)的軟件環(huán)境進而通過設(shè)計好的算法來控制機械手并驗證算法的效果.該程序設(shè)計中包含3個環(huán)節(jié):初始化、示教、軌跡規(guī)劃,程序流程圖如3所示.
圖3 程序流程圖
2.1.1 初始化
初始化包括:芯片的時鐘初始化、定時器初始化、中斷初始化、編碼器初始化、觸摸屏初始化等.定時器的脈沖頻率設(shè)置公式為
(1)
其中:Fout為定時器輸出頻率;Te為時鐘預(yù)分頻系數(shù);Td為自動重載寄存器周期值;Tk為定時器的時鐘輸入.STM32芯片的定時器時鐘輸入為72 MHz,只需要合理地選擇時鐘預(yù)分頻系數(shù)和自動重載寄存器周期值,就可以確定所要發(fā)送的脈沖頻率.
2.1.2 示 教
在人機界面中,設(shè)計了兩個界面分別用于示教[12]和軌跡規(guī)劃.系統(tǒng)啟動后,首先判斷是否示教,如果需要,那么進入手動示教界面,如圖4所示.
圖4 手動示教界面
手動示教界面中有節(jié)點選擇和X,Y,Z三軸的運動方式選擇,其具體流程如圖3(b)所示.操作時,首先選擇節(jié)點,接著選擇X,Y,Z軸的運動方式.當機械手運動到所需要位置,按下停止鍵,如果還有偏差,繼續(xù)移動直至滿意再按停止鍵.最后按確定鍵,此時在選中的節(jié)點右側(cè)顯示機械手在X,Y,Z三個方向上的絕對距離,同時數(shù)據(jù)保存到存儲單元.如果需要重新記錄該節(jié)點數(shù)據(jù),即重新選中該節(jié)點,然后將機械手示教到要求位置后,按確定鍵.
2.1.3 軌跡規(guī)劃
示教結(jié)束之后就是軌跡規(guī)劃環(huán)節(jié),其界面如圖5所示.
圖5 步驟確定
圖中運動順序中有10個方框,分別對應(yīng)右側(cè)10個步驟選擇,節(jié)點選擇中的8個節(jié)點與手動示教界面的8個節(jié)點相對應(yīng),其具體操作流程如圖3(c)所示.在程序設(shè)計中,運動順序的形式是一個數(shù)據(jù)表,其形式見表1.
表1 數(shù)據(jù)表
軌跡規(guī)劃是對示教節(jié)點進行操作,首先步驟選擇,然后節(jié)點選擇,最后將數(shù)據(jù)存入新數(shù)據(jù)表,其形式見表2.根據(jù)軌跡規(guī)劃得到的新數(shù)據(jù)表,表示一條軌跡,再現(xiàn)時,機械手按照運動順序設(shè)定的步驟運行.
表2 新數(shù)據(jù)表
表中節(jié)點順序表示實際機械手的運行順序,如表2所示,機械手的運動順序為1—5—3.機械手按照新數(shù)據(jù)表中的節(jié)點數(shù)據(jù),進行點對點運動.按表2所示,機械手先運動到節(jié)點1,然后運動到節(jié)點5,最后運動到節(jié)點3,從而再現(xiàn)預(yù)設(shè)的軌跡.
在笛卡爾空間中,當機械手的運動軌跡為多段路徑時,坐標運動軌跡可以簡化成X,Y,Z三軸的運動合成.運動過程可以分解成若干已知坐標點、速度極值、加速度極值等信息的運動問題.在機械手運行過程中,如何根據(jù)微小段之間的拐角大小對速度進行加減速控制進而保證速度平滑過渡,讓各段微小線段的平均運行速度都保持比較高的值,從而實現(xiàn)機械手高速運動同時保證運動的穩(wěn)定性,是運動控制系統(tǒng)的一個重點和難點[13],筆者采用的是S曲線加減速的方法來解決這一問題.
S曲線加減速算法分為5段和7段[14-15],這里采用的是5段S曲線加減速算法,其過程是由加加速、減加速、勻速、加減速、減減速這5個階段按照先后順序組成的.對單一路徑的運動進行分析,這里S為給定運動距離,在計算中為已知量,且S=Sup+Sgv+Sdown(Sup為升速過程位移;Sgv為勻速過程位移;Sdomn為降速過程位移),V為速度值,a為加速度值,J為加速度的變化率,其為一恒值,Vs為初始速度值,Ve為末速度值,Vmax為最大速度值.其中:加加速段時間與減加速段的時間相等,均為T1;加減速段時間和減減速段的時間相等,均為T2,勻速運動段時間為T3.
圖6 S曲線加減速
這里考慮的是點對點運動,即開始和結(jié)束都是靜止的,所以初速度Vs=0,末速度Ve=0,時間T1=T2.根據(jù)設(shè)定加速度的變化率J、速度最大值Vmax和已知的總位移S,就能計算得到T1,T2,T3.得到T1,T2,T3后,就能計算得到各個參數(shù)值.
1) 如果Sev≥0,根據(jù)勻速階段速度公式
(2)
可得
(3)
將J,Vmax和已知的Vs=0代入,求得
(4)
由于T1=T2,根據(jù)第五階段位移表達式
(5)
可得
(6)
則
(7)
2) 如果Sev<0,表明沒有勻速區(qū),即T3為0,且速度最大值達不到Vmax,由于Sup=Sdomn,根據(jù)位移公式可知
(8)
(9)
通過以上計算可以得到T1,T2,T3,然后代入位移表達式,可以得到每個時間段結(jié)束時,機械手與起始點的相對位移S1,S2,S3,S4,S5,再依據(jù)此位移和實際編碼器反饋得到位移進行比較確定時間段,繼而求出每個時間段的實時速度V,具體流程如圖7所示.
圖7 五段S曲線加減速的實現(xiàn)
求得實時速度V后,將其換算到脈沖頻率,在下一個時刻控制器按此頻率發(fā)送脈沖給伺服系統(tǒng),即實現(xiàn)伺服系統(tǒng)的S曲線加減速控制.
2.3.1 實際長度轉(zhuǎn)脈沖數(shù)
在控制系統(tǒng)中,控制器發(fā)送脈沖給伺服驅(qū)動器,根據(jù)發(fā)送的脈沖個數(shù)來定位,而在觸摸屏上顯示的是實際長度.STM32根據(jù)實際長度計算出向伺服驅(qū)動器發(fā)送的脈沖數(shù),具體公式為
(10)
其中:P標為實際脈沖數(shù);S實為實際長度;P標為標準脈沖數(shù);S標為標準長度;R為電子齒輪比.標準長度指電機旋轉(zhuǎn)一周所對應(yīng)的長度,標準脈沖數(shù)指電機旋轉(zhuǎn)一周所需要的脈沖數(shù).電子齒輪比指通過更改電子齒輪比的分倍頻,來實現(xiàn)不同的脈沖當量.例如電子齒輪比等于1時,如果電機的每周脈沖數(shù)為10 000,那么當電子齒輪比等于0.5時,則電機每周所需的脈沖數(shù)為20 000.
2.3.2 脈沖個數(shù)與實際長度的轉(zhuǎn)換
通過觸摸屏顯示機械手運行距離,可以讓操作人員更好地了解機械手的工作狀況.其具體方法是控制器讀取編碼器反饋回來的脈沖信號,然后換算為實際長度值,并顯示在觸摸屏上.脈沖個數(shù)轉(zhuǎn)換成實際長度表示為
(11)
其中:Pb為編碼器反饋脈沖數(shù),它的計數(shù)分為絕對計數(shù)與相對計數(shù).在本次設(shè)計中,觸摸屏上顯示的位置指的是機械手的絕對位置.
2.3.3 脈沖頻率與實際速度
由于這里的機械手是笛卡爾型機械手,機械手的實際速度可以看成X,Y,Z三個方向的速度合成.考慮單軸運行速度,它與控制器發(fā)送脈沖的頻率有關(guān),具體公式為
(12)
其中:V為實際速度;V脈沖為脈沖發(fā)送速度,即脈沖頻率.
實驗中,設(shè)定最高速度為v=188.5 mm/s,J=100 mm/s3,R=1,P標=10 000,S標=94.247 7 mm.首先,示教所需要的節(jié)點,如圖8所示.然后,對節(jié)點進行軌跡規(guī)劃,為實驗方便,選擇從節(jié)點1到節(jié)點2,具體如圖9所示.
按五段S曲線加減速算法,根據(jù)控制器計算,可以直接從芯片寄存器中讀取T1,T2,T3,如表3所示.機械手按照設(shè)定從節(jié)點1運行到節(jié)點2,三軸運行的實際情況如表4所示.
圖8 節(jié)點記錄
圖9 軌跡規(guī)劃
表3 加減速臨界時間
表4 實驗結(jié)果
實驗結(jié)果表明:筆者設(shè)計的三軸機械臂軟硬件均能按照設(shè)計的要求正常運行,進一步驗證了基于嵌入式系統(tǒng)的三軸機械臂設(shè)計的可行性.根據(jù)實驗數(shù)據(jù)可知伺服系統(tǒng)的脈沖定位精度在一個脈沖以內(nèi),可以精確定位機械手運動位置.觸摸屏則可以直觀顯示及修改各種運動參數(shù),通過觸摸屏可以對機械手進行示教,簡化了現(xiàn)場操作.
基于ARM芯片的機械手運動控制系統(tǒng)實現(xiàn)了機械手運動的示教、軌跡規(guī)劃、速度規(guī)劃和位置控制功能.從具體的實驗中進一步驗證了采用ARM控制板作為機械手臂的控制器可行性,且在ARM芯片作為控制器的基礎(chǔ)上可充分發(fā)揮其優(yōu)點,比如可利用ARM芯片與DWIN_HMI觸摸屏的通訊來進行機械手的可視化的示教,通過控制器的脈沖數(shù)及脈沖頻率與電機運行的圈數(shù)和轉(zhuǎn)速的轉(zhuǎn)換來達到機械手運動控制的目的等.采用STM32F103ZET6芯片來設(shè)計機械手的控制器,所設(shè)計的伺服控制系統(tǒng)可保證機械手高精度、高效率地運行,為ARM芯片嵌入式控制器的推廣做了理論和實驗性的論證.
參考文獻:
[1] CRAIG J J.機器人學導論[M].贠超,李成群,譯.北京:機械工業(yè)出版社,2006.
[2] 張立彬,計時鳴.農(nóng)業(yè)機器人的主要應(yīng)用領(lǐng)域和關(guān)鍵技術(shù)[J].浙江工業(yè)大學學報,2002,30(1):36-41.
[3] 王世紅,徐世許.送料機定長送料的伺服控制系統(tǒng)設(shè)計[J].機械工程與自動化,2010(1):152-154.
[4] 張州,劉廣瑞,杜大軍.基于PLC控制的氣動機械手系統(tǒng)[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2004,17(3):25-27.
[5] 向丹,王文濤.基于ARM嵌入式的三維機械手遠程控制系統(tǒng)設(shè)計[J].電子與封裝,2009,9(6):21-24.
[6] 范志榮.機械手控制系統(tǒng)的改造[J].機床與液壓,2005(3):202-203.
[7] 周元芳.結(jié)構(gòu)化及面向?qū)ο蟮某绦蛟O(shè)計方法在PLC編程中的應(yīng)用[J].浙江工業(yè)大學學報,2003,31(3):264-267.
[8] 潛立標,楊馬英,俞立.基于Web和S7300 PLC的遠程控制實驗室系統(tǒng)[J].浙江工業(yè)大學學報,2007,35(1):73-77.
[9] 王宇.多軸機械手控制系統(tǒng)的研究與開發(fā)[D].杭州:浙江工業(yè)大學信息工程學院,2012.
[10] 俞金錢.STM32系列ARM Cortex-M3核微控制器開發(fā)與應(yīng)用[M].北京:清華大學出版社,2011.
[11] 王永紅,徐煒,郝立平,等.STM32系列ARM Cortex-M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.
[12] 李建剛.巧用PLC實現(xiàn)機械手運動的示教與再現(xiàn)[J].農(nóng)業(yè)科技與裝備,2011(8):32-35.
[13] 朱海燕.七自由度仿人機械臂軌跡規(guī)劃與控制方法研究[D].杭州:浙江工業(yè)大學信息工程學院,2012.
[14] 李曉輝,鄔義杰.S曲線加減速控制新方法的研究[J].組合機床與自動化加工技術(shù),2007(10):50-53.
[15] 郭新貴,李從心.S曲線加減速算法研究[J].機床與液壓,2002(5):60-62.