文獻(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ī)器人開(kāi)發(fā)了專用的控制系統(tǒng),且系統(tǒng)的接口沒(méi)有開(kāi)放給用戶,不具有通用性,給以后的擴(kuò)展和升級(jí)造成了很大的困難[1]。因此,如何使機(jī)器人控制系統(tǒng)能夠很方便地進(jìn)行重構(gòu),在從一套控制系統(tǒng)換成另一套控制系統(tǒng)時(shí),盡可能少做改動(dòng)[2],已經(jīng)成為目前一個(gè)研究的熱門(mén)方向。對(duì)于這種開(kāi)放式系統(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ù)線、地址線和讀寫(xiě)控制線,允許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)一拍。常見(jià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ì)算公式:
可見(jiàn)該運(yùn)動(dòng)控制器已經(jīng)能夠很好地實(shí)現(xiàn)簡(jiǎn)單路徑以及其組合的行走,并可以實(shí)現(xiàn)兩段路徑之間的平滑過(guò)渡。此時(shí)各關(guān)節(jié)的角加速度如圖5所示。
由此可見(jiàn),系統(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的開(kāi)放式數(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.