宋孫浩,鄭天江,張 馳,陳慶盈,楊桂林
(中科院寧波材料技術與工程研究所,寧波 315201)
近年來工業(yè)機器人已經成為“制造業(yè)皇冠上的明珠”,被越來越多地應用在制造業(yè)等領域,然而傳統(tǒng)的工業(yè)機器人不具備本質安全以及與人協(xié)同工作等能力,因而研發(fā)輕量化協(xié)作式機器人已成為機器人研究的熱點。為了提高負載載重比以及輕量化的特征,協(xié)作式的機器人往往具有模塊化的結構和緊湊的設計、安裝和調試空間,其軟硬件的設計十分重要。在協(xié)作式的一體化機器人中,往往電機直接安裝于運動部位,因而通常需要采用分布式通訊,而通訊的實時性則是制約機器人運動控制性能的關鍵。
近年來,實時工業(yè)以太網技術的快速發(fā)展為解決傳統(tǒng)運動控制器控制問題提供了良好的解決方案。EtherCAT(Ethernet for Control Automation Technology)總線是德國倍福公司提出的一種實時以太網技術,它于2007年成為國際電工委員會IEC的61158標準[1]。EtherCAT具有系統(tǒng)配置簡單、拓撲結構靈活、良好的實時性和傳輸速度快等優(yōu)點,解決了數(shù)據(jù)的長距離高速傳輸和信號干擾等問題[2]。EtherCAT總線對標準的以太網技術進行了優(yōu)化,其有效數(shù)據(jù)率可達90%以上,同時還具有良好的同步性,同步精度可小于1us,使得運動控制性能得到了極大的提升。基于EtherCAT工業(yè)以太網的運動控制系統(tǒng)已成為當前工業(yè)現(xiàn)場控制總線技術的一個重要發(fā)展方向[3]。
現(xiàn)有的輕量化機器人設計要么采用了CAN總線等技術進行通訊,要么購買標準的EtherCAT商業(yè)化模塊。采用CAN總線的問題是通訊速率比較低,采用商業(yè)的EtherCAT模塊的機器人更注重的是機器人的系統(tǒng)集成,缺乏自主設計能力,并且商業(yè)化的軟件和硬件無法自行更改設計和定制。本文針對輕量一體化機器人關節(jié)模塊的通訊技術進行了研究,機器人關節(jié)采用模塊化設計,并且驅動模塊和控制模塊分離,便于系統(tǒng)軟硬件的開發(fā)和維護。本文重點研究了控制模塊和驅動模塊的實時通訊問題以及關節(jié)模塊間的通訊問題,針對驅動模塊和控制模塊提出了一種新型的SPI總線通訊方法,針對關節(jié)之間的實時通訊問題,自主設計了實時性較強的EtherCAT模塊,并研究了其實時性。經過實驗驗證,本文提出的SPI通訊方法,收發(fā)速率快,每幀可傳輸10個Word數(shù)據(jù),通訊丟包率低,本文設計的EtherCAT模塊實時性強,可靠性高。
本設計系統(tǒng)采用“PC+運動控制器”的模式來構建機器人運動控制系統(tǒng),實現(xiàn)高速高精度運動控制功能,原理框圖如圖1所示。與傳統(tǒng)的驅控方案不同,本文的控制器和驅動器之間采用高速SPI總線通信,控制器可以實時給驅動器發(fā)送電流指令和速度指令,同時接收驅動器反饋的電流、編碼器和電機速度等數(shù)值。
控制系統(tǒng)硬件主要由基于PC的EtherCAT主站和基于EtherCAT從站ESC的運動控制器組成,采用DSP作為運動控制器的主控芯片,其通過SPI總線與伺服驅動器進行數(shù)據(jù)交互并控制電機的運轉。
圖1 基于EtherCAT的運動控制器原理框圖
由于一體化關節(jié)機器人內部空間的限制,我們對其進行了小型化設計??刂破鞯恼w硬件架構如圖2所示。
圖2 運動控制器硬件架構圖
DSP芯片選用32位實時浮點處理器TMS320F28335,其工作頻率高達150MHz,片上資源豐富,能夠實現(xiàn)復雜的控制算法。整個運動控制器可分為兩大部分:運動控制部分和EtherCAT通訊模塊。EtherCAT通訊模塊包括從站專用芯片ET1100、PHY芯片KS8721、網絡變壓器H1102和RJ45網口等。DSP和ET1100之間采用同步16位微控制器接口方式來傳輸過程數(shù)據(jù)[4]。運動控制部分包括電源模塊、存儲模塊、AD模塊、DA轉換和信號放大模塊、JTAG接口、外部中斷口、通用I/O接口、差分接收模塊以及SPI板級連接端口等。DSP通過DAC芯片和精密運算放大器電路可輸出±10V模擬電壓。編碼器輸入信號通過差分接收芯片轉換后可直接輸入DSP端口進行采集??刂破鞯腟PI端口通過LVDS差分收發(fā)器轉接后,與驅動器的SPI端口進行全雙工通信。控制器發(fā)送電流指令或控制指令給驅動器,同時接收驅動器反饋的電流值以及電機端編碼器值等數(shù)據(jù),從而實現(xiàn)控制器和驅動器之間的高速實時數(shù)據(jù)傳輸。
與傳統(tǒng)的控制器發(fā)送模擬量或PWM信號給伺服驅動器以控制電機運轉不同,在本文的運動控制系統(tǒng)中,為了實現(xiàn)模塊化設計并提升控制性能,將控制器與驅動器的接口做了改進,采用SPI總線進行通信,并使用了自定義SPI通信協(xié)議實現(xiàn)驅控之間的高速數(shù)據(jù)傳輸。
在本文的SPI通信系統(tǒng)中,SPI主設備為控制器,SPI從設備為驅動器,每次傳輸一幀數(shù)據(jù)包,傳輸過程中SPI主設備和從設備進行雙向應答。傳輸模式可以分為常規(guī)模式和調試模式,數(shù)據(jù)傳輸長度為10個Word,包括1個幀頭,7個數(shù)據(jù)和2個CHKSUM校驗值。SPI主從設備采用DMA方式傳輸數(shù)據(jù),SPI主設備和SPI從設備的接口端都配有LVDS差分收發(fā)器,延長了SPI通信距離,增強了抗干擾性能。SPI主從設備通信框圖如圖3所示。
圖3 SPI主從設備通信框圖
傳統(tǒng)的SPI通信由一個主設備和一個從設備組成,使用四條線:串行時鐘信號SCK、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和從機片選信號CS,并沒有一個有效的通信協(xié)議確保其通信的穩(wěn)定性。在本文設計的SPI通信系統(tǒng)中,增加了應答信號線ACK、復位信號線RST和異常反饋信號線ABN,如圖3所示,以完善SPI應答機制。
其中,一幀完整的數(shù)據(jù)包括:數(shù)據(jù)包幀頭標識(HeadWord)、數(shù)據(jù)長度、通信數(shù)據(jù)序列和CRC校驗值。SPI主設備和從設備的發(fā)送數(shù)組都有兩組,采用雙緩沖發(fā)送模式。SPI主從設備的通信示意圖如圖4所示。
圖4 SPI通信示意圖
待發(fā)送數(shù)據(jù)包可分為常規(guī)數(shù)據(jù)和調試數(shù)據(jù),二者對應的幀頭不同。采用常規(guī)模式時,SPI主設備可發(fā)送電機命令代碼、期望電流、速度和位置等數(shù)據(jù);在控制器進入調試模式時,可發(fā)送PID微調參數(shù),以改善驅動器電流環(huán)性能。
待接收數(shù)據(jù)包亦可分為常規(guī)數(shù)據(jù)和調試數(shù)據(jù)。SPI主設備正常通信時,可接收電機的運行狀態(tài)參數(shù)、反饋電流、編碼器值和速度值等數(shù)據(jù)。如果啟動了控制器調試模式,則切換到調試數(shù)據(jù),此時會將驅動器的PID參數(shù)和其他狀態(tài)值反饋給控制器端。
當一幀數(shù)據(jù)傳輸完畢時,SPI從設備端發(fā)送ACK應答正確信號給主設備,SPI主設備端收到應答信號后,繼續(xù)進行下一幀數(shù)據(jù)的傳輸。如果SPI主設備收到ACK應答錯誤信號,則重新發(fā)送該數(shù)據(jù)包。
SPI主設備每次都會對發(fā)送數(shù)據(jù)包進行CRC校驗,并生成兩個校驗值:CHKSUM1和CHKSUM2。主設備端在構建發(fā)送包時,計算得到兩個CHKSUM值,接收端在接收數(shù)據(jù)包時重新計算一輪,得到的結果與收到的兩個CHKSUM值做比較,不一致時作出處理。同樣,主設備在接收從設備反饋的數(shù)據(jù)包時,也會進行接收數(shù)據(jù)包CRC校驗,生成校驗值并做比對處理。
為保證數(shù)據(jù)傳輸?shù)臏蚀_性,增加了異常處理機制。當連續(xù)10次收發(fā)數(shù)據(jù)幀的過程中,若SPI從設備的數(shù)據(jù)接收端出現(xiàn)任意3次及3次以上CRC校驗錯誤,則說明SPI通信不穩(wěn)定。此時SPI從設備需通過異常反饋信號線ABN給SPI主設備發(fā)送報警信號,SPI主設備收到ABN報警信號后通過RST信號線給SPI從設備發(fā)送復位信號,同時對SPI主設備和SPI從設備進行軟復位,重新開始數(shù)據(jù)傳輸,并將通信不穩(wěn)定的次數(shù)保存到EEPROM以備 追溯。
在本文的運動控制器中,SPI傳輸速率、通信延遲以及穩(wěn)定性對整體性能有著至關重要的影響。SPI通信采用DMA方式傳輸數(shù)據(jù),以降低MCU的工作負荷。SPI通信程序使用了DSP定時器CPU-Timer 0.
經過實測,一體化機械臂單個關節(jié)所有程序的完整運行時間大約為140us,包括SPI雙機通信、EtherCAT通信、CiA402協(xié)議處理、運動控制算法和機器人軌跡規(guī)劃、絕對式編碼器數(shù)值讀取、傳感器信號采集和I/O處理等所有程序時間。為提高SPI通信速率,我們將Timer 0周期設為125us,SPI雙機通信程序每個周期都運行,控制器其他程序則分成兩個周期來運行。這樣,SPI通信速率為8kHz,整個控制器的刷新速率(EtherCAT從站速率)為4kHz,即以250us刷新一幀EtherCAT數(shù)據(jù),預留了44%(110us)的裕量。整個運動控制器的運行周期如圖5所示。
圖5 控制器運行周期
為了驗證SPI雙機通信的性能,我們對控制器和驅動器分別進行了SPI透傳測試和帶電機測試,測試實物圖如圖6所示。
圖6 運動控制器與電機調試圖
測試條件如下:
1)SPI時鐘頻率為9.375MHz,SPI程序的運行周期為125us;
2)EtherCAT從站運行周期250us,啟用DC同步時鐘模式;
3)控制器發(fā)送正弦電流,頻率為1kHz。
本測試使用了自定義的SPI通信協(xié)議,驅動器在收到控制器的SPI數(shù)據(jù)包后需要進行數(shù)據(jù)類型和幀頭的判定處理,并在下一個周期將數(shù)據(jù)回發(fā)給控制器。透傳測試結果如圖7所示,藍線為控制器給驅動器發(fā)送的正弦電流值,紅線為驅動器將收到的數(shù)據(jù)直接反饋給控制器。圖7所示的SPI透傳測試實際延遲為1個定時器周期,與設定的預期目標吻合,達到了較為理想的傳輸 效果。
圖7 控制器和驅動器SPI透傳測試
帶電機負載測試時,控制器將正弦電流發(fā)送給驅動器以控制電機的運轉,驅動器將電機端電流值實時反饋給控制器。測試曲線如圖8所示。
圖8 控制器和驅動器SPI帶電機測試
在本測試中,控制器還使用了在線調試功能,通過調試模式對驅動器的電流環(huán)PID等參數(shù)進行了多次微調。如圖8所示,藍線為控制器發(fā)送的正弦電流值,綠線為第1次參數(shù)微調后的反饋電流值,紅線為第2次微調后的反饋電流值。相比較而言,第2次微調后的電流值相位延遲更小,驅動器的帶寬性能更好。實測速度響應帶寬可達1kHz,可以滿足機器人運動控制的需求。
在運動控制系統(tǒng)中數(shù)據(jù)通訊越來越重要,評估誤碼率是評判傳輸系統(tǒng)性能的最終標準。為了驗證SPI傳輸?shù)目煽啃裕覀儗PI通訊系統(tǒng)進行了誤碼率測試。
整個測試在CCS5.4集成開發(fā)環(huán)境下進行,使用XDS100V3仿真器在線連接運動控制器并記錄參數(shù)值,實測結果如圖9所示。在電機轉速為1800 RPM時,SPI發(fā)送成功的數(shù)據(jù)包為473394個,只有1個數(shù)據(jù)包發(fā)送錯誤,誤碼率低于3×10-6,證明了采用自定義協(xié)議的SPI通信可靠性很高,非常適用于控制器和驅動器之間的高速數(shù)據(jù)傳輸。
圖9 SPI通信誤碼率測試
要研究控制器的伺服控制性能,首先要在其內部實現(xiàn)CANopen伺服運動控制行規(guī)CiA402協(xié)議。CiA402在運動控制器代碼上的實現(xiàn)可分為三個部分:CiA402狀態(tài)機、CiA402對象字典和CiA402應用程序。
CiA402定義控制設備的狀態(tài)機切換如圖10所示。該狀態(tài)機根據(jù)電壓級別分為三個區(qū)域:A區(qū)為低電壓區(qū),B區(qū)為高電壓區(qū),C區(qū)中伺服系統(tǒng)處于運行狀態(tài),此時電機有輸出電流,可啟動力矩模式。在本文的運動控制系統(tǒng)中,A區(qū)采用DC 24V,用于給控制板、驅動板和電機制動器等部件供電;B區(qū)為電機工作電壓,采用DC 48V供電;在控制板中設計了力矩傳感器接收端口,可實時采集機器人關節(jié)反饋的力矩信號值。
圖10 CiA402狀態(tài)轉換圖[5]
CiA402的應用程序支持多種運行模式,在本設計中同時采用了兩種運動控制模式,分別是周期性同步速度模式CSV和周期性同步位置模式CSP,可通過EtherCAT上位機主站修改模式參數(shù)進行切換。這樣即可根據(jù)機器人控制系統(tǒng)的算法負荷及運行需求合理選用對應的模式,靈活分配任務,提升了控制器性能。在本運動控制器中,嵌入CiA402協(xié)議對象字典中配置了24個字節(jié)的RxPDO和32個字節(jié)的TxPDO,用于實現(xiàn)CSV/CSP伺服運動控制。
EtherCAT在周期性數(shù)據(jù)通信模式下,主站和從站之間有三種同步運行模式,分別是:1)自由運行(Free-run);2)同步于數(shù)字輸入或輸出事件;3)同步于分布時鐘同步事件(DC-Sync)[6]。
為了更好地提升EtherCAT同步性能,本文控制器采用了優(yōu)化的SYNC0運動控制周期設計。EtherCAT數(shù)據(jù)幀比SYNC0同步信號提前T1時間到達,從站在SYNC0中斷產生前已對EtherCAT數(shù)據(jù)和控制計算做預處理,接到SYNC0中斷后可立即執(zhí)行其他運動控制操作,從而使同步性能更佳。
為實現(xiàn)上述效果,本文采用了雙定時器方式實現(xiàn)SYNC0中斷和SM2中斷相對位置固定偏移的調節(jié)方式,實測運行周期的波形如圖11所示。
圖11 SYNC0和控制器周期波形
在本設計中,EtherCAT從站周期設置為250us,主站SYNC0同步時鐘周期默認為500us(最快可達250us),一個主站DC周期對應兩個從站周期,從站數(shù)據(jù)包可以刷新兩次,最大程度地降低了數(shù)據(jù)丟包率,提升了主/從站的數(shù)據(jù)同步性。
圖11中的T1為DSP芯片從ET1100復制數(shù)據(jù)并計算輸出數(shù)據(jù)的預處理時間。在本控制器中需要實時刷新的PDO數(shù)據(jù)為12個Word,每個數(shù)據(jù)的讀寫時間大約為1.3us,所以我們把T1設定為20us,預留了一定的緩存時間。在控制器的DSP主程序中使用了兩個定時器:CPUTimer 0和CPU-Timer 1。其中,將Timer 0設定為主定時器,Timer 1用作輔助定時器。
在運行程序時,將Timer 1設定為20us,并首先啟動Timer 1定時器,觸發(fā)SM2中斷,進行DSP和ET1100芯片的數(shù)據(jù)計算和控制交換。Timer 1執(zhí)行完畢,則以SYNC0中斷為觸發(fā)信號,啟動Timer 0中斷。Timer 0周期設定為125us,以250us即每2個Timer 0周期刷新一幀EtherCAT數(shù)據(jù)。經過主站時鐘同步到參考從站時鐘算法處理,SYNC0中斷和SM2中斷的相對位置偏移不再變化,即EtherCAT主站時鐘已經同步到參考從站時鐘,實現(xiàn)了優(yōu)化的同步于SYNC0運行周期的效果。
EtherCAT從站的DC時鐘同步性能對于機器人運動控制系統(tǒng)的多軸精準控制有著至關重要的影響。因此,在實際項目的測試中,我們級聯(lián)了7個運動控制器、驅動器和電機等,用以實現(xiàn)七自由度的一體化關節(jié)機器人的控制系統(tǒng),如圖12所示。
圖12 七軸關節(jié)電機測試圖
首先,我們測試了第1軸和第7軸關節(jié)控制器之間的SYNC0中斷時間間隔,其代表了整個從站系統(tǒng)DC中斷的最大時間差值。測試條件如下:
1)本文采用了基于Linux系統(tǒng)的開放式PC機作為上位機,通過加入RTAI內核實時補丁以提高Linux操作系統(tǒng)的實時性,EtherCAT主站采用商業(yè)版的主站軟件安裝于操作系統(tǒng),主站啟動DC-Synchron操作模式,SYNC0對應的Cycle Time設定為500us.
2)從站運行在CSP模式下,控制周期設定為250us,用500MHz混合域示波器對其DC時鐘信號線SYNC0進行周期測量,并比較第1個從站和最后一個從站之間的SYNC0信號觸發(fā)時間間隔。
根據(jù)圖13和圖14的示波器測量結果,第1軸和第7軸控制器從站的DC周期均500us,非常準確。第7軸控制器比第1軸控制器的SYNC0中斷時間滯后88ns,即整個控制系統(tǒng)中7個從站的分布式時鐘同步精度小于100ns,能夠滿足實時運動控制的需求。
圖13 控制器SYNC0中斷時間間隔
圖14 從站之間SYNC0中斷最大時間間隔
為了進一步驗證EtherCAT DC同步模式的性能,我們采用了Free-run和DC-Sync兩種模式對主站和從站的第7軸進行了數(shù)據(jù)傳輸測試,測試結果如圖15和圖16所示。其中,藍線為主站發(fā)送的數(shù)據(jù)包,紅線為第7軸從站反饋的數(shù)據(jù)包。圖15為Free-run模式測試結果,圖16為DC-Sync模式測試結果,兩幅圖的左邊部分均為測試曲線的局部放大圖。
圖15 Free-run模式數(shù)據(jù)傳輸曲線
從測試結果來看,在Free-run模式下,第7軸從站反饋的數(shù)據(jù)會產生延時,實測大約延遲1~2個主站控制周期;而在DC-Sync模式下,由于做了優(yōu)化的控制周期處理,反饋數(shù)據(jù)和發(fā)送數(shù)據(jù)實現(xiàn)了周期性同步,在一個主站DC周期內沒有延時。由此可見,DC-Sync模式經過優(yōu)化后很好地解決了EtherCAT數(shù)據(jù)的同步性問題,有效提升了運動控制器的實時性能。
圖16 DC-Sync模式數(shù)據(jù)傳輸曲線
本文設計了一款基于EtherCAT總線的運動控制器用于一體化機器人關節(jié)模塊,其采用自定義SPI通信協(xié)議,實現(xiàn)控制器與驅動器的高速可靠數(shù)據(jù)傳輸。同時,還對控制器和驅動器、電機進行了聯(lián)調測試,實測速度響應帶寬可達1kHz。本控制器嵌入了CiA402伺服運動控制協(xié)議,并通過研究EtherCAT同步時鐘優(yōu)化技術,提升了運動控制效果。測試結果表明,本運動控制器運行穩(wěn)定,實時性強,能夠支持多種運動控制模式,很好地滿足了多軸機器人實時高速控制的需求。