《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP和FPGA的多軸運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)
基于DSP和FPGA的多軸運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2013年第3期
馬漢波,顏鋼鋒
浙江大學(xué) 電氣工程學(xué)院,浙江 杭州310027
摘要: 傳統(tǒng)的機(jī)器人運(yùn)動(dòng)控制器都是采用PC+運(yùn)動(dòng)控制卡的方法,成本較高。提出了一種基于DSP和FPGA的通用型運(yùn)動(dòng)控制系統(tǒng),大大降低了系統(tǒng)成本。利用FPGA內(nèi)部生成的雙端口RAM作為DSP與上位機(jī)之間的緩沖區(qū),同時(shí)采取串行轉(zhuǎn)并行的策略,簡(jiǎn)化了系統(tǒng)的布線。在DSP上實(shí)現(xiàn)了直線與圓弧插補(bǔ)算法以及逆運(yùn)動(dòng)學(xué)的求解,并進(jìn)行了仿真。仿真結(jié)果表明,系統(tǒng)能夠按照預(yù)定軌跡運(yùn)動(dòng),同時(shí)各軸的速度變化也較平穩(wěn)。
中圖分類號(hào): TP242.2
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)03-0034-03
Multi-axis motion control system based on DSP and FPGA
Ma Hanbo,Yan Gangfeng
College of Electrical Engineering,Zhejiang University,Hangzhou 310027,China
Abstract: Traditional motion controllers for robots make use of PC and motion control board, which cost much. This article presents a generic motion control system,which saves cost. DPRAM implemented in FPGA is used to transmit data between DSP and upper computer. FPGA also converts data from serial to parallel and simplify the routing of board. The algorithm of curve interpolation and inverse kinematics is simulated on DSP. The result shows that this system works properly and the speed of each axis changes smoothly.
Key words : multi-axis motion control;DSP;DPRAM;interpolation

    工業(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。