文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)03-0034-03
工業(yè)機(jī)器人的控制系統(tǒng)是其核心主體,,控制算法的好壞直接關(guān)系到整個(gè)機(jī)器人的運(yùn)動(dòng)效果。最早的機(jī)器人多采用封閉式的結(jié)構(gòu),,即每個(gè)廠家針對(duì)自己的機(jī)器人開發(fā)了專用的控制系統(tǒng),,且系統(tǒng)的接口沒有開放給用戶,,不具有通用性,給以后的擴(kuò)展和升級(jí)造成了很大的困難[1],。因此,,如何使機(jī)器人控制系統(tǒng)能夠很方便地進(jìn)行重構(gòu),在從一套控制系統(tǒng)換成另一套控制系統(tǒng)時(shí),,盡可能少做改動(dòng)[2],,已經(jīng)成為目前一個(gè)研究的熱門方向。對(duì)于這種開放式系統(tǒng),,目前比較主流的構(gòu)架是PC+DSP運(yùn)動(dòng)控制卡,。PC主要負(fù)責(zé)整個(gè)系統(tǒng)的管理以及人機(jī)交互界面的運(yùn)行,DSP運(yùn)動(dòng)控制卡則實(shí)現(xiàn)插補(bǔ)算法和對(duì)伺服驅(qū)動(dòng)器的操作,。這種方法的優(yōu)點(diǎn)是可以利用現(xiàn)成的運(yùn)動(dòng)控制卡,。但是,這些板卡的價(jià)格一般都較高,,而且附帶了許多針對(duì)數(shù)控的功能模式,,同時(shí),它們還必須搭載PC環(huán)境,,這對(duì)需要考慮成本和靈活性的情況不適用,。因此,本文提出了一種基于浮點(diǎn)數(shù)DSP的多軸機(jī)器人控制系統(tǒng)解決方案,,為系統(tǒng)的小型化和廉價(jià)化提供了可能,,具有很高的實(shí)用價(jià)值。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 總體架構(gòu)
系統(tǒng)設(shè)計(jì)的難點(diǎn)在于逆運(yùn)動(dòng)學(xué)求解和插補(bǔ)算法的實(shí)時(shí)處理,。為此,,系統(tǒng)選用了具有快速計(jì)算能力的DSP處理芯片TMS320F28335作為核心單元。該處理器是TMS320C28X系列浮點(diǎn)DSP控制器,,具有32位浮點(diǎn)處理單元,,相對(duì)于單片機(jī)和ARM而言,在處理器結(jié)構(gòu)和指令系統(tǒng)方面都針對(duì)數(shù)學(xué)運(yùn)算進(jìn)行了優(yōu)化,,特別適合于機(jī)器人復(fù)雜的控制算法,。
另外,運(yùn)動(dòng)控制系統(tǒng)還需要連接伺服控制器來(lái)控制各關(guān)節(jié)的電機(jī),,以實(shí)現(xiàn)機(jī)器人的高精度定位,。一般伺服控制器都提供了大量的I/O信號(hào),如速度控制信號(hào),、異常報(bào)警信號(hào)、禁止信號(hào)等,。通常,,機(jī)器人的每個(gè)軸都需要單獨(dú)的伺服控制器,,系統(tǒng)必須具有數(shù)百路I/O口來(lái)控制電機(jī)??紤]到DSP的I/O口數(shù)量十分有限,,系統(tǒng)搭載了一塊FPGA進(jìn)行底層的邏輯操作。這里采用的是Altera公司Cyclone II系列的EP2C5Q208,,該芯片能夠提供142路的I/O口,,內(nèi)部還有大量的邏輯單元,可以滿足系統(tǒng)要求,。針對(duì)這種構(gòu)思,,給出系統(tǒng)的原理框圖如圖1所示。
1.3 DSP與上位機(jī)(ARM)數(shù)據(jù)的交換
運(yùn)動(dòng)控制系統(tǒng)的指令是由ARM給出的,,需要一種快速的數(shù)據(jù)交換機(jī)制,。常規(guī)的通信方法有兩種。第一種是ARM通過(guò)串行總線的方式直接將數(shù)據(jù)傳送給DSP,。由于機(jī)器人控制指令包含空間位置和姿態(tài),,一般都較長(zhǎng),如果采用直接傳輸?shù)姆绞?,其?zhǔn)確性和同步性很難保證,。第二種是采用雙端口RAM的方法,利用兩套完全獨(dú)立的數(shù)據(jù)線,、地址線和讀寫控制線,,允許ARM和DSP同時(shí)對(duì)該存儲(chǔ)器的不同單元進(jìn)行訪問(wèn)。但是,,外擴(kuò)的雙端口RAM需要大量的地址線和數(shù)據(jù)線,,對(duì)電路板的布局提出了很高的要求,同時(shí)芯片也消耗了大量的I/O口,,這對(duì)系統(tǒng)的擴(kuò)展是不利的,。
本系統(tǒng)采用的方案是利用FPGA來(lái)存儲(chǔ)機(jī)器人運(yùn)動(dòng)控制指令。EP2C5Q208芯片內(nèi)部存在大量的M4K內(nèi)存單元,,利用Altera的IP核可以將這些內(nèi)存單元配置成雙端口RAM,。同時(shí),利用FPGA強(qiáng)大的邏輯能力,,可以實(shí)現(xiàn)串行與并行之間的轉(zhuǎn)換,。
1.4 伺服驅(qū)動(dòng)器控制電路
對(duì)于多軸運(yùn)動(dòng)控制系統(tǒng),每一軸都需要連接伺服控制器,。伺服控制器的調(diào)速通常為方向加脈沖的方式,。即用一路信號(hào)的方向來(lái)表示正轉(zhuǎn)和反轉(zhuǎn);另一路信號(hào)每發(fā)出一個(gè)脈沖,伺服電機(jī)旋轉(zhuǎn)一拍,。常見的伺服控制器控制電壓為24 V,,它們和FPGA進(jìn)行通信時(shí)必須進(jìn)行電壓轉(zhuǎn)換??紤]到還需要對(duì)數(shù)字芯片的I/O口進(jìn)行保護(hù),,因此采用了光耦隔離電路,其接口電路如圖3所示,。
有了前三軸的角度,,可以很方便地計(jì)算后三軸的轉(zhuǎn)角[4]。由于TMS320F28335配備了支持浮點(diǎn)的寄存器和流水線,,所以所有的運(yùn)算都可以在浮點(diǎn)環(huán)境下進(jìn)行,。只要利用TI自帶的浮點(diǎn)庫(kù),即可在DSP上實(shí)現(xiàn)機(jī)器人的逆運(yùn)動(dòng)學(xué)求解,。經(jīng)過(guò)實(shí)際測(cè)算,,由DSP求逆解計(jì)算所引起的末端軌跡偏差在0.1 mm以內(nèi),精度可以滿足要求,。
2.2 插補(bǔ)算法
本系統(tǒng)主要完成直線和圓弧插補(bǔ)功能,。即利用曲線上兩端點(diǎn)(直線)或三點(diǎn)(圓)的位姿矩陣,針對(duì)運(yùn)行速度和插補(bǔ)周期,,得到運(yùn)行路徑上各點(diǎn)的姿態(tài)位置,。
具體的算法是利用幾何的方法直接求取曲線上點(diǎn)的坐標(biāo)作為該點(diǎn)機(jī)器人末端的位置。末端姿態(tài)則采用線性化的方法,,把曲線首端和尾端兩點(diǎn)的姿態(tài)向量差根據(jù)當(dāng)前速度均勻地匹配到插補(bǔ)的每一步[5],。速度控制采用S曲線加減速的方法,能夠使速度和加速度曲線都平滑過(guò)渡,,減小機(jī)械沖擊[6],。在兩條曲線交界處,速度的方向會(huì)有瞬變,,進(jìn)而產(chǎn)生很大的加速度,,對(duì)結(jié)構(gòu)造成沖擊。對(duì)此,,每次需要讀取兩條指令,,通過(guò)判斷兩條曲線的夾角來(lái)計(jì)算得到拐角處的速度。若設(shè)系統(tǒng)最大加速度為Amax,,則有如下計(jì)算公式:
可見該運(yùn)動(dòng)控制器已經(jīng)能夠很好地實(shí)現(xiàn)簡(jiǎn)單路徑以及其組合的行走,,并可以實(shí)現(xiàn)兩段路徑之間的平滑過(guò)渡。此時(shí)各關(guān)節(jié)的角加速度如圖5所示,。
由此可見,,系統(tǒng)能夠按照預(yù)定的軌跡運(yùn)行,,并且各軸的關(guān)節(jié)速度都平穩(wěn)變化。利用CCS軟件還可以觀察執(zhí)行一次插補(bǔ)所需要的時(shí)間,。實(shí)際測(cè)量得到的結(jié)果是:直線插補(bǔ)部分消耗時(shí)鐘周期15 761個(gè),,圓弧插補(bǔ)部分則需要17 591個(gè)時(shí)鐘周期,。由于DSP的時(shí)鐘頻率為150 MHz,,因此最長(zhǎng)需要的插補(bǔ)時(shí)間是117 μs,小于0.2 ms,。而若采用一般的PC+運(yùn)動(dòng)控制卡的方法,,每一次插補(bǔ)所需時(shí)間則需要分成兩部分:一部分是插補(bǔ)算法本身所消耗的時(shí)間,另一部分是從上位機(jī)通過(guò)總線傳送給DSP的時(shí)間,。這兩項(xiàng)都需要大量的時(shí)間,。而且由于帶Windows操作系統(tǒng)的PC機(jī)實(shí)現(xiàn)精確計(jì)時(shí)的能力是很弱的,因此一般的做法都是預(yù)先計(jì)算出多步的數(shù)據(jù),,然后一次性地放在運(yùn)動(dòng)控制卡的緩存中,,讓運(yùn)動(dòng)控制卡定時(shí)取數(shù)。這樣又會(huì)給速度的實(shí)時(shí)控制帶來(lái)很大的困難,。
因此,,本系統(tǒng)所采用的構(gòu)架利用DSP進(jìn)行插補(bǔ)運(yùn)算,不但節(jié)約了緩存設(shè)備容量,,而且不需要中間的傳輸環(huán)節(jié),,對(duì)系統(tǒng)的實(shí)時(shí)性有很大的提高。
本系統(tǒng)以浮點(diǎn)數(shù)DSP芯片TMS320F28335為核心,,以EP2C5Q208 FPGA為輔助器件,,實(shí)現(xiàn)了多軸機(jī)器人的運(yùn)動(dòng)控制器,整個(gè)系統(tǒng)具有小型化,、成本低,、實(shí)時(shí)性好的特點(diǎn),有很大的實(shí)際意義,。
參考文獻(xiàn)
[1] 談世哲,,梅志千,楊汝清.基于DSP的工業(yè)機(jī)器人控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)器人,,2002,,24(2):134-139.
[2] 趙春紅,秦現(xiàn)生,,唐虹.基于PC的開放式數(shù)控系統(tǒng)研究[J].機(jī)械科學(xué)與技術(shù),,2005,24(9):1108-1113.
[3] 蔡自興.機(jī)器人學(xué)基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,,2009.
[4] SPONG M W,,HUTCHINSON S,VIDYASAGAR M.Robot dynamics and ntrol[M].Wiley,2005:85-92.
[5] 葉伯生.機(jī)器人空間三點(diǎn)圓弧功能的實(shí)現(xiàn)[J].華中科技大學(xué)學(xué)報(bào),,2007,,5(8):5-8.
[6] 張得禮,周來(lái)水.數(shù)控加工運(yùn)動(dòng)的平滑處理[J].航空學(xué)報(bào),,2006,,1(1):125-130.