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