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