湖南工業(yè)大學(xué) 胡云飛 譚會(huì)生 于雪鋒 逯真真
隨著自動(dòng)化技術(shù)的發(fā)展,自動(dòng)化技術(shù)在工業(yè)生產(chǎn)中的應(yīng)用也越來(lái)越廣泛,使得傳統(tǒng)的勞動(dòng)密集型產(chǎn)業(yè)逐步被自動(dòng)化生產(chǎn)所取代,碼垛機(jī)器人在工業(yè)生產(chǎn)中的應(yīng)用就是其中的一種突出表現(xiàn)。由于碼垛機(jī)器人具有占地面積小、作業(yè)范圍廣、多生產(chǎn)線作業(yè)等特點(diǎn)[1],因此通過(guò)采用碼垛機(jī)器人代替人工作業(yè),不僅可以提高工作效率、節(jié)省勞動(dòng)成本[2],而且提高了物流產(chǎn)業(yè)的自動(dòng)化程度,使得物流產(chǎn)業(yè)向著更加高效的方向發(fā)展。因此,本文將對(duì)碼垛機(jī)器人的控制系統(tǒng)設(shè)計(jì)進(jìn)行研究。
本文所研究的碼垛機(jī)器人的機(jī)械類(lèi)型為圓柱坐標(biāo)型,其機(jī)械結(jié)構(gòu)如圖1所示。由圖可知,碼垛機(jī)器人有四個(gè)自由度,分別是基座旋轉(zhuǎn)、水平移動(dòng)、垂直移動(dòng)和端拾器旋轉(zhuǎn)[3]。機(jī)器人在工作時(shí),其工作范圍構(gòu)成一圓柱形空間,在此將基座旋轉(zhuǎn)軸定義為S軸,肘部水平移動(dòng)軸定義為U軸,肩部垂直移動(dòng)軸定義為L(zhǎng)軸,腕部端拾器旋轉(zhuǎn)軸定義為T(mén)軸。故此類(lèi)型的碼垛機(jī)器人空間坐標(biāo)可以用M(r,θ,z,α)形式表示,其中r代表U軸的位移量,θ代表S軸旋轉(zhuǎn)角度,z代表L軸位移量,α代表T軸旋轉(zhuǎn)角度。以上4個(gè)關(guān)節(jié)運(yùn)動(dòng)軸全部采用交流伺服電機(jī)進(jìn)行控制,以此達(dá)到運(yùn)動(dòng)響應(yīng)快、定位精度高和驅(qū)動(dòng)負(fù)載力矩大的要求[4]。腕部可根據(jù)作業(yè)任務(wù)的種類(lèi)安裝有相應(yīng)的機(jī)械手。
圖1 圓柱坐標(biāo)型碼垛機(jī)器人
由圖2可知,碼垛機(jī)器人的硬件系統(tǒng)采用了分布式控制結(jié)構(gòu)[5],其主要由主控制器、I/O接口板、示教器、伺服電機(jī)及其驅(qū)動(dòng)器、控制柜及電源控制電路等組成。其主要任務(wù)是對(duì)來(lái)自人機(jī)界面的指令進(jìn)行處理并與周?chē)南嚓P(guān)設(shè)備進(jìn)行通信,最終實(shí)現(xiàn)對(duì)四個(gè)伺服電機(jī)的協(xié)同控制。
主控制器采用基于嵌入式ARM平臺(tái)的S3C2440微處理器,其具有豐富的外圍接口以及高達(dá)256M內(nèi)存,并配有SD卡槽。此外,ARM微處理器還具備低成本、低能耗、可靠性高等優(yōu)勢(shì)[6-8]。主控制器的功能是將示教盒傳輸來(lái)的示教信號(hào)通過(guò)RS232總線傳輸給協(xié)處理器FPGA板,使其進(jìn)行相應(yīng)的運(yùn)動(dòng)學(xué)計(jì)算和軌跡規(guī)劃。與此同時(shí),主控制器與四個(gè)交流伺服電機(jī)通過(guò)RS485總線進(jìn)行通信,對(duì)各關(guān)節(jié)運(yùn)動(dòng)軸進(jìn)行協(xié)調(diào)控制。在此期間,主控制器不斷地接收來(lái)自各個(gè)編碼器的反饋脈沖量,并結(jié)合讀取到的零位和正反限位檢測(cè)信號(hào),通過(guò)計(jì)算實(shí)際位姿與期望位姿的偏差產(chǎn)生各關(guān)節(jié)運(yùn)動(dòng)軸的伺服修正控制量,使機(jī)器人輸出的位姿達(dá)到預(yù)期狀態(tài)。
運(yùn)動(dòng)控制器采用Altera公司的FPGA芯片,這是一款基于EP2C5T144C8N芯片設(shè)計(jì)的高性能處理器,其主要任務(wù)是完成機(jī)器人的路徑規(guī)劃和產(chǎn)生用于驅(qū)動(dòng)伺服電機(jī)的變頻脈沖信號(hào),進(jìn)而實(shí)現(xiàn)機(jī)器人控制系統(tǒng)的再現(xiàn)功能。
示教盒的主體也是由嵌入式ARM板構(gòu)成,其任務(wù)是對(duì)人機(jī)界面進(jìn)行運(yùn)行管理,將機(jī)器人的狀態(tài)信息呈現(xiàn)給操作者,實(shí)現(xiàn)操作者與機(jī)器人之間的交互功能。通過(guò)外接的LCD觸摸屏,可以切換手動(dòng)示教模式和自動(dòng)運(yùn)行模式,示教模式時(shí),通過(guò)觸控LCD觸摸屏與主控制器系統(tǒng)通信來(lái)完成示教功能;運(yùn)行模式時(shí),LCD觸摸屏主要用來(lái)監(jiān)控碼垛機(jī)器人的各個(gè)運(yùn)動(dòng)軸以及控制器的當(dāng)前工作狀態(tài)。
圖2 控制系統(tǒng)硬件結(jié)構(gòu)
碼垛機(jī)器人控制系統(tǒng)軟件采用Linux操作系統(tǒng)和Qt界面,Linux操作系統(tǒng)具有可搶占式的多任務(wù)機(jī)制,而Qt界面具有優(yōu)良的高度模塊化封裝機(jī)制,因此,控制系統(tǒng)可采用模塊化結(jié)構(gòu)設(shè)計(jì)[9]。由于各個(gè)模塊具有相對(duì)較高的獨(dú)立性且相互之間通信簡(jiǎn)單,使得編寫(xiě)與調(diào)試應(yīng)用程序異常簡(jiǎn)便,同時(shí)也便于系統(tǒng)軟件擴(kuò)展和維護(hù)[10]。
碼垛機(jī)器人控制系統(tǒng)軟件模塊主要包括兩大部分:主控制系統(tǒng)模塊和示教系統(tǒng)模塊。核心板ARM子系統(tǒng)主要有6個(gè)模塊:初始化模塊、數(shù)據(jù)采集模塊、再現(xiàn)模塊、故障檢測(cè)處理模塊和兩個(gè)通訊模塊;FPGA部分主要模塊有通信模塊、寄存器模塊、命令解析模塊、軌跡插補(bǔ)模塊以及速度和脈沖生成模塊;示教系統(tǒng)的主要模塊有參數(shù)設(shè)置模塊、示教模塊、I/O故障監(jiān)控模塊、精確定時(shí)模塊和通訊模塊。
在碼垛機(jī)器人的交流伺服系統(tǒng)中,一般情況下,每個(gè)關(guān)節(jié)都采用閉環(huán)控制[11],因此,在本設(shè)計(jì)中,每個(gè)運(yùn)動(dòng)軸也都是采用完整的三環(huán)控制模式,從內(nèi)到外依次為電流環(huán)、速度環(huán)和位置環(huán)。
在本設(shè)計(jì)中,機(jī)器人的四個(gè)伺服電機(jī)驅(qū)動(dòng)器均處在速度控制模式,每個(gè)驅(qū)動(dòng)器接收來(lái)自運(yùn)動(dòng)控制器發(fā)送來(lái)的模擬電壓信號(hào)。由于伺服驅(qū)動(dòng)器本身已經(jīng)固化了用于計(jì)算電流環(huán)和速度環(huán)的參數(shù)自整定閉環(huán)PID控制算法,所以伺服系統(tǒng)對(duì)輸入速度信號(hào)的跟隨已經(jīng)相當(dāng)精確,因此,只需要對(duì)位置環(huán)的控制算法進(jìn)行設(shè)計(jì),就可以達(dá)到很精確的控制效果。
由于運(yùn)動(dòng)控制器是發(fā)送的信號(hào)是離散的數(shù)字信號(hào),因此必須采用數(shù)字式PID控制器。而數(shù)字式PID控制器分為兩種,分別是位置式數(shù)字PID和增量式數(shù)字PID控制器。
位置式數(shù)字PID控制器的計(jì)算公式為:
其中,PK為比例系數(shù),TI為積分時(shí)間常數(shù),TD為微分時(shí)間常數(shù),TS為采樣時(shí)間,e(k)為輸入偏差量,u(k)為輸出控制量。
由于位置式數(shù)字PID存在累計(jì)誤差,所以如果編碼器出現(xiàn)問(wèn)題就會(huì)造成電機(jī)偏離預(yù)計(jì)運(yùn)行位置,引發(fā)安全事故。而增量式數(shù)字PID控制器只計(jì)算相鄰的兩個(gè)u(k)之差,并不存在誤差累計(jì)問(wèn)題,即使編碼器出現(xiàn)故障,也不會(huì)對(duì)電機(jī)的運(yùn)行位置造成影響。因此,本設(shè)計(jì)選用增量式數(shù)字PID控制器。
增量式PID需要首先計(jì)算出u(k-1),其計(jì)算公式如式(2)所示:
增量式PID計(jì)算公式為:
本文設(shè)計(jì)了有針對(duì)伺服電機(jī)系統(tǒng)的前饋+PID位置環(huán)控制器,其軟件框圖如圖3所示。在每個(gè)伺服周期內(nèi),閉環(huán)控制器會(huì)首先得到下一個(gè)電機(jī)位置Pdemand,并通過(guò)分析相對(duì)編碼器的脈沖計(jì)數(shù)得到當(dāng)前電機(jī)位置Pnow,兩者之差便是PID控制器的輸入偏差e(k)。PID控制器輸出量與下一個(gè)插補(bǔ)點(diǎn)的速度與速度系數(shù)的乘積以及加速度與加速度系數(shù)的乘積之和,便是整個(gè)閉環(huán)控制器的輸出u(k),由于u(k)是一個(gè)數(shù)字電壓量,而伺服電機(jī)驅(qū)動(dòng)器需要接收的是模擬信號(hào),因此需要經(jīng)過(guò)D/A轉(zhuǎn)換器將其轉(zhuǎn)換為模擬電壓值。本設(shè)計(jì)對(duì)于同樣的運(yùn)動(dòng)控制任務(wù),閉環(huán)算法的執(zhí)行周期都比位置環(huán)伺服大大縮短,使得碼垛機(jī)器人的四軸電機(jī)聯(lián)動(dòng)具備實(shí)時(shí)性。
圖3 位置環(huán)控制器框圖
本文在嵌入式平臺(tái)上完成了碼垛機(jī)器人控制系統(tǒng)的設(shè)計(jì),系統(tǒng)采用ARM +FPGA的核心控制架構(gòu),采用了模塊化設(shè)計(jì),便于系統(tǒng)的擴(kuò)展與維護(hù),并采用針對(duì)伺服電機(jī)系統(tǒng)的帶有前饋的PID位置環(huán)控制算法,使得機(jī)器人的電機(jī)聯(lián)動(dòng)控制較精確。
[1]何明超.基于STM32F4的碼垛機(jī)器人運(yùn)動(dòng)控制器研究[D].上海交通大學(xué),2015.
[2]孫志良.碼垛機(jī)器人控制系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[D].河北工業(yè)大學(xué),2015.
[3]郭亞奎,陳富林,湯永俊.碼垛機(jī)器人控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)電一體化,2014,20(01):55-58+77.
[4]周霏,陳富林,楊杏,沈金龍.四自由度關(guān)節(jié)機(jī)器人控制系統(tǒng)的設(shè)計(jì)[J].機(jī)電一體化,2014,20(07):60-65.
[5]王彥.碼垛機(jī)器人示教盒系統(tǒng)軟硬件設(shè)計(jì)[D].上海:上海交通大學(xué),2010.
[6]馬義德,劉映杰,張新國(guó).嵌入式系統(tǒng)的現(xiàn)狀及發(fā)展前景[J].信息技術(shù),2001(12):57-59.
[7]Jack Ganssle.Changes in embedded design mathodology[J].Embedded System Programming,1999,9:35-40.
[8]孫安青.ARM Cortex-M3嵌入式開(kāi)發(fā)實(shí)例詳解:基于NXP LPC1768[M].北京:北京航空航天大學(xué)出版社,2012.
[9]李成偉,朱秀麗,贠超.碼垛機(jī)器人機(jī)構(gòu)設(shè)計(jì)與控制系統(tǒng)研究[J].機(jī)器人技術(shù),2008,25(12):9-27.
[10]藍(lán)培欽.碼垛機(jī)器人控制系統(tǒng)軟件的設(shè)計(jì)和研究[D].上海上海交通大學(xué),2010.
[11]Sciavicco L,Siciliano B.Modelling and control of robot manipulators[M].Springer,2000.