盧一光,劉建群,陳宇鵬,高偉強
(廣東工業(yè)大學(xué)機電工程學(xué)院,廣東 廣州 510006)
噴涂機器人控制系統(tǒng)作為噴涂機器人的核心部件,如今在航天航空、汽車制造、手機制造、五金衛(wèi)浴等領(lǐng)域已經(jīng)得到廣泛應(yīng)用[1-3]。目前,噴涂行業(yè)使用的機器人控制系統(tǒng)主要是國外公司的產(chǎn)品,如奧地利的KEBA 公司,其專注于機器人控制系統(tǒng),在行業(yè)屬于頂尖的水平。近年來,隨著技術(shù)積累和發(fā)展,國內(nèi)對噴涂機器人控制系統(tǒng)的研究也有了很大的進展。文獻[4]采用PC104 主板,配以ADT836 控制卡,設(shè)計了一種五關(guān)節(jié)的噴涂機器人控制系統(tǒng),實現(xiàn)了機器人空間5 個關(guān)節(jié)的協(xié)調(diào)控制;文獻[5]基于PC+PMAC 運動控制卡設(shè)計了噴漆機器人的控制系統(tǒng),在PC編寫人機界面,通過PMAC對電機進行控制。隨著生產(chǎn)發(fā)展要求的提高,中小企業(yè)已經(jīng)開始使用自動化的噴涂設(shè)備進行產(chǎn)品噴涂作業(yè)。
不同于規(guī)模較大企業(yè),中小型公司在噴涂作業(yè)上有多品種、小批量等要求,對于不同的產(chǎn)品,分別對每一類產(chǎn)品編程是非常麻煩的事情[6]。而且目前市面上的噴涂機器人控制都是采用離線或是示教盒編程的方式,對作業(yè)人員編程能力要求高,無疑增加了對中小型企業(yè)的要求和負擔(dān)。
針對以上提出的國內(nèi)中小企業(yè)對于多品種、小批量、編程要求低等噴涂要求,設(shè)計一款基于OMAP-L138處理器的噴涂機器人運動控制系統(tǒng)。OMAP-L138處理器是由德州儀器(TI)出品的一款低功耗、高性能的雙核處理器,結(jié)合ARM和DSP的優(yōu)勢,具有良好的任務(wù)調(diào)度和管理能力,同時具有強大的數(shù)據(jù)處理能力,是作為六關(guān)節(jié)噴涂機器人控制系統(tǒng)很好的選擇。
以O(shè)MAP-L138雙核平臺為核心,搭建硬件平臺,針對噴涂需求,進行軟件設(shè)計,完成六關(guān)節(jié)噴涂機器人控制系統(tǒng)的設(shè)計與開發(fā)。
設(shè)計的六關(guān)節(jié)噴涂機器人控制系統(tǒng)采用基于OMAP-L138平臺的方案。OMAP-L138 處理器的雙核架構(gòu)兼具DSP 和精簡指令集計算機(RISC)技術(shù)的優(yōu)點,采用了一個高性能的ARM926EJ-S內(nèi)核和TMS320C674x DSP內(nèi)核。ARM926EJ-S是一個32 位RISC 處理器內(nèi)核,面向有完整的存儲器管理、高性能、低芯片尺寸以及低功耗等要求的多任務(wù)處理應(yīng)用,非常適用于在系統(tǒng)中非實時性任務(wù)的調(diào)度和管理。
DSP 核則采用了一個2 級基于高速緩存的架構(gòu),配合專用的硬件乘法器,使得計算效率得到了很大的提高,滿足了系統(tǒng)對于實時性的硬件需求,也為機器人執(zhí)行復(fù)雜的運動算法和高速運行提供了基礎(chǔ)。
這樣的架構(gòu)結(jié)合了ARM 和DSP 處理器的優(yōu)點,通過將實時任務(wù)和非實時任務(wù)的分離,實現(xiàn)處理器執(zhí)行效率和性能的最大化[7]。系統(tǒng)總體硬件框圖,如圖1 所示。具體硬件模塊分為OMAP-L138核心板,擴展底板和端子板三層板卡。
圖1 系統(tǒng)總體硬件框圖Fig.1 Frame of System Hardware
OMAP-L138 核心板采用瑞泰公司提供的ICETEK-OMAPL138-KB 系列評估板,實現(xiàn)了最小的系統(tǒng)配置,并提供外設(shè)總線接口用于連接外設(shè)。ARM 和DSP 通過外設(shè)接口,實現(xiàn)了對FPGA、SDCard、USB、RS232、網(wǎng)口等外設(shè)的控制。
擴展底板搭載FPGA,針對噴涂機器人設(shè)備層的功能進行開發(fā)。FPGA 具有豐富的片上邏輯資源和I/O 數(shù)量,不僅具有高度集成度和通用性,而且可以靈活編程,可構(gòu)建出具有高速并行處理能力的脈沖發(fā)生器。系統(tǒng)采用Cyclone Ⅱ系列的FPGA和外圍電路中的電源模塊、時鐘模塊、FLASH 等組成最小系統(tǒng),通過EMIFA接口和OMAP-L138核心板進行連接和通信。
端子板主要用于連接噴涂機器人設(shè)備層,其中光耦隔離模塊用于控制器和設(shè)備端的電源信號的隔離,提高控制器的抗干擾能力;差分變單端模塊用于將伺服單元反饋的增量型差分脈沖信號轉(zhuǎn)變成I/O 可以識別的單端脈沖信號;單端變差分模塊則用于將單端脈沖信號進行差分處理,實現(xiàn)伺服的差分脈沖驅(qū)動。
在本系統(tǒng)的設(shè)計中,軟件整體架構(gòu),如圖2所示。主要分為三個部分,具體分別是ARM 端軟件、DSP 端軟件、雙核通信模塊,不同的模塊分別在不同的環(huán)境下編寫和編譯。
圖2 軟件整體架構(gòu)Fig.2 Framework of System Software
其中,ARM 端軟件是在Linux 系統(tǒng)中編寫的,通過交叉編譯軟件Sourcery G++ Lite for ARM GNU/Linux 編譯成能在ARM內(nèi)核中運行的文件。DSP 端軟件則是在CCS5.5 集成開發(fā)環(huán)境下編寫和編譯的。雙核通信模塊則是對DSPLink 文件進行解壓和配置,將源碼加入到系統(tǒng)中,并生成ARM 端的驅(qū)動程序鏡像dsplinkk.ko 文件和相應(yīng)的DSP 端的庫文件放到相應(yīng)位置,編譯運行即可進行雙核通信。
在本系統(tǒng)的設(shè)計中,ARM 主要負責(zé)噴涂機器人系統(tǒng)的非實時任務(wù)。在ARM 中移植Linux 操作系統(tǒng)和文件系統(tǒng),執(zhí)行ARM 端的程序。根據(jù)功能,其總體包括兩個模塊,包括指令傳輸模塊和指令處理模塊。
3.1.1 指令傳輸模塊
此模塊采用TCP 協(xié)議,通過網(wǎng)口連接ARM 和上位機進行通訊。當(dāng)操作者需要從上位機對系統(tǒng)下達指令,此模塊負責(zé)接收并處理從上位機發(fā)送下來的指令和信息。
當(dāng)上位機有指令下發(fā)的時候,ARM 會對接收到的指令幀進行檢查。如果指令幀是完整并且合法的,則把指令幀進行分類,并且把對應(yīng)的信息做緩存處理,用于后續(xù)的系統(tǒng)運行。本系統(tǒng)中,指令為三類,分別是讀指令、寫指令和命令指令,系統(tǒng)會對不同類型的指令分別處理。
當(dāng)指令為讀指令和寫指令時,系統(tǒng)會將指令中對應(yīng)的數(shù)據(jù)參數(shù)如伺服參數(shù)、I/O 狀態(tài)、位置信息、工藝數(shù)據(jù)等寫入和讀出;當(dāng)指令是命令指令時,系統(tǒng)會根據(jù)指令改變系統(tǒng)狀態(tài),使系統(tǒng)執(zhí)行對應(yīng)的操作。在數(shù)據(jù)幀處理完成后,ARM 會對上位機進行反饋,把對應(yīng)的操作結(jié)果和相應(yīng)的信息發(fā)送到上位機中,完成指令的傳輸流程。
3.1.2 指令處理模塊
指令處理模塊是ARM 端程序最重要的模塊,其主要負責(zé)處理接收到的指令。接收到命令指令時,程序會改變系統(tǒng)當(dāng)前的狀態(tài)。系統(tǒng)根據(jù)需求劃分成多個不同的狀態(tài),包括空閑狀態(tài)、急停狀態(tài)、噴涂示教狀態(tài)、再現(xiàn)運動狀態(tài)、手動狀態(tài)、暫停狀態(tài)、急停狀態(tài)、系統(tǒng)錯誤狀態(tài)等。
系統(tǒng)采用C 語言編程,把系統(tǒng)不同的狀態(tài)封裝成對應(yīng)的結(jié)構(gòu)體,結(jié)構(gòu)體中包含系統(tǒng)狀態(tài)相關(guān)的變量和函數(shù)指針,其中的函數(shù)指針在初始化時指向?qū)?yīng)的函數(shù)。當(dāng)接收到來自上位機的指令時,系統(tǒng)會根據(jù)指令信息改變當(dāng)前系統(tǒng)狀態(tài),并且按照流程去執(zhí)行該系統(tǒng)狀態(tài)的相關(guān)處理函數(shù)。
DSP 在本系統(tǒng)中,主要負責(zé)處理實時的任務(wù),如軌跡處理和插補等計算任務(wù)。當(dāng)示教文件的數(shù)據(jù)從ARM 端傳輸?shù)紻SP端,要經(jīng)過一系列的規(guī)劃和處理,才能使噴涂機器人的噴涂效果達到最優(yōu)化。根據(jù)功能,DSP 的軟件分為三個模塊。分別為提取特征點模塊、曲線擬合模塊和插補模塊。
3.2.1 提取特征點模塊
設(shè)計的六關(guān)節(jié)噴涂機器人是通過手工拖拽示教的方式進行示教編程的,在人工示教過程中,系統(tǒng)對各個關(guān)節(jié)編碼器進行周期為10ms的采樣獲取軌跡點數(shù)據(jù),在曲率較大的軌跡處,容易在小空間上聚集大量示教點,出現(xiàn)大量冗余示教點信息,影響噴涂效果。為了將這些多余的示教點剔除,在此模塊中采用了一種根據(jù)空間向量之間的夾角為判定條件的方法來提取軌跡的特征點。
從軌跡的起點開始,以連續(xù)的三個點Pi、Pi+1、Pi+2和其構(gòu)成的兩個方向矢量S→i、S→i+1作為一組進行計算。特征點的判斷示意圖,如圖3所示。將S→i、S→i+1夾角θi與給定的閾值θ作比較,當(dāng)θi小于等于閾值θ,則認為三點處于同一空間直線上,舍去中間點Pi+1,并且添加下一數(shù)據(jù)點Pi+3繼續(xù)重復(fù)計算,直到軌跡末端。通過這樣的方法完成軌跡特征點的提取,用較少的點來表示軌跡而不丟失軌跡自身的特征。
圖3 特征點的判斷示意圖Fig.3 Judgment of Feature Points
3.2.2 曲線擬合模塊
在提取軌跡的特征點之后,為了從離散的特征點獲取滿足噴涂需求的高精度軌跡,需要對軌跡進行擬合。NURBS曲線[8]可以統(tǒng)一地對自由曲線與解析形狀進行描述,并且具有靈活性強、計算穩(wěn)定等特點,在工業(yè)機器人中被廣泛應(yīng)用。在本模塊中,采用三次NURBS曲線對示教軌跡進行曲線擬合。根據(jù)需要給定權(quán)因子矢量,確定節(jié)點矢量,并且求解控制頂點,求得三次NURBS曲線,具體的擬合算法參見文獻[9]。
3.2.3 插補模塊
在本系統(tǒng)中,插補模塊中采用由同課題組的文獻[9]提出的方案。插補功能分為位置插補和姿態(tài)插補。其中位置插補是通過NURBS曲線插補完成的。
由于NURBS曲線的插補是通過小線段去逼近曲線的,因此插補的軌跡和NURBS曲線存在弦高誤差。為了限制弦高誤差,通過計算并控制插補段的速度,使插補速度小于該軌跡段所允許的最大插補速度。NURBS曲線與參數(shù)u是對應(yīng)關(guān)系,通過一階泰勒公式對NURBS進行展開,根據(jù)規(guī)劃的插補速度求得噴涂機器人位置插補點對應(yīng)的參數(shù)u,完成NURBS曲線的位置插補。
為了使噴涂效果更加均勻,要求在進行噴涂作業(yè)時噴槍的軸線方向要與被加工的產(chǎn)品的表面垂直[10],所以需要對噴涂機器人末端的姿態(tài)進行規(guī)劃。本模塊采用一種C2連續(xù)的四元數(shù)曲線對姿態(tài)進行插值,通過插值曲線的構(gòu)造、角位移求解、速度規(guī)劃、姿態(tài)軌跡插補等步驟,完成對噴涂機器人末端的姿態(tài)插補,并實現(xiàn)了插補過程中的角速度控制。
OMAP-L138中集成了ARM和DSP,所以在本系統(tǒng)中,雙核通信是不可或缺的重要模塊。在本系統(tǒng)中,通過DSPLink實現(xiàn)雙核通信。DSPLink是TI公司設(shè)計的一款用于處理處理器間通信的底層驅(qū)動軟件,從應(yīng)用層面將復(fù)雜的物理鏈路抽象為通用的API。不僅傳輸速度快,而且能大大減少開發(fā)的工作量。
雙核通信模塊分成ARM端和DSP端兩部分,在ARM端運行LINUX操作系統(tǒng),加載dsplink.ko驅(qū)動文件,在ARM應(yīng)用程序中調(diào)用DSPLINK 的函數(shù)庫。同時在DSP 端運行DSP/BIOS 實現(xiàn)與ARM握手通信[11]。
DSPLink 中包含多種通信模式,系統(tǒng)中采用的是READWRITE[12]通信方式,雙核通信機制,如圖4所示。
圖4 雙核通信機制Fig.4 Dual-Core Communication Mechanism
發(fā)送方(ARM或DSP)將需要傳輸?shù)臄?shù)據(jù)寫入L2 RAM,然后通過共享內(nèi)存SHARM RAM給接收方發(fā)送一個消息,告知對方可接收數(shù)據(jù),接收方確認后從L2 RAM 中讀取數(shù)據(jù),做進一步的處理和調(diào)用。
通過對功能需求的分析,進行軟硬件的設(shè)計,最終完成系統(tǒng)的設(shè)計和研發(fā),六關(guān)節(jié)噴涂機器人控制器實物圖,如圖5 所示。設(shè)計的六關(guān)節(jié)噴涂機器人控制系統(tǒng)以O(shè)MAP-138 為核心,具有8G的內(nèi)存空間,可以控制8個軸,除了控制六關(guān)節(jié)機器人外,還能附加控制兩個軸(如轉(zhuǎn)臺),示教采樣周期為10ms,插補周期同樣為10ms。編程范式為手把手示教編程,操作簡單,而且可在示教過程中直接觀察、修改、優(yōu)化噴涂效果。六關(guān)節(jié)噴涂機器人噴涂作業(yè),如圖6所示。
圖5 六關(guān)節(jié)噴涂機器人控制器實物圖Fig.5 Real Product Photo of Six-Joint Spraying Robot Controller
圖6 六關(guān)節(jié)噴涂機器人噴涂作業(yè)Fig.6 Spraying Operation of Six-Joint Spraying Robot
工作人員首先對機器人進行手把手示教,然后系統(tǒng)通過再現(xiàn)運動對工件進行噴涂作業(yè)。由實際運行情況可知,此系統(tǒng)運行穩(wěn)定,機器人運動平穩(wěn),能夠?qū)Χ喾N不同的產(chǎn)品進行噴涂作業(yè)。
該噴涂系統(tǒng)目前已應(yīng)用于實際生產(chǎn),產(chǎn)品主要為浴缸,主要用于浴缸背面噴涂玻璃纖維和樹脂,增強浴缸的強度。浴缸的噴涂效果,如圖7所示。從實際的生產(chǎn)情況可知,涂層能夠很好覆蓋產(chǎn)品表面,達到強化表面的效果,而且大大減少噴涂材料的浪費,噴涂質(zhì)量很好地滿足中小型企業(yè)的生產(chǎn)需求。
圖7 浴缸噴涂效果圖Fig.7 Spraying Effect of Bathtub
針對中小型企業(yè)在噴涂機器人應(yīng)用上的需求,自主設(shè)計出基于OMAP-L138的六關(guān)節(jié)噴涂機器人控制系統(tǒng)。從實際運行的情況可知,該系統(tǒng)硬件選型合理,能夠滿足系統(tǒng)運行的需求,為系統(tǒng)的實現(xiàn)奠定了基礎(chǔ);軟件采用模塊化設(shè)計,移植性和擴展性強,對不同的任務(wù)和需求有良好的適應(yīng)性;該噴涂機器人控制系統(tǒng)能夠平穩(wěn)運行,取得了較好的噴涂效果,達到了設(shè)計要求。目前該系統(tǒng)已經(jīng)應(yīng)用于實際的工業(yè)生產(chǎn)中,對同類的其它產(chǎn)品具有一定的參考價值和借鑒作用。