盧一光,劉建群,陳宇鵬,高偉強
(廣東工業大學機電工程學院,廣東 廣州 510006)
噴涂機器人控制系統作為噴涂機器人的核心部件,如今在航天航空、汽車制造、手機制造、五金衛浴等領域已經得到廣泛應用[1-3]。目前,噴涂行業使用的機器人控制系統主要是國外公司的產品,如奧地利的KEBA 公司,其專注于機器人控制系統,在行業屬于頂尖的水平。近年來,隨著技術積累和發展,國內對噴涂機器人控制系統的研究也有了很大的進展。文獻[4]采用PC104 主板,配以ADT836 控制卡,設計了一種五關節的噴涂機器人控制系統,實現了機器人空間5 個關節的協調控制;文獻[5]基于PC+PMAC 運動控制卡設計了噴漆機器人的控制系統,在PC編寫人機界面,通過PMAC對電機進行控制。隨著生產發展要求的提高,中小企業已經開始使用自動化的噴涂設備進行產品噴涂作業。
不同于規模較大企業,中小型公司在噴涂作業上有多品種、小批量等要求,對于不同的產品,分別對每一類產品編程是非常麻煩的事情[6]。而且目前市面上的噴涂機器人控制都是采用離線或是示教盒編程的方式,對作業人員編程能力要求高,無疑增加了對中小型企業的要求和負擔。
針對以上提出的國內中小企業對于多品種、小批量、編程要求低等噴涂要求,設計一款基于OMAP-L138處理器的噴涂機器人運動控制系統。OMAP-L138處理器是由德州儀器(TI)出品的一款低功耗、高性能的雙核處理器,結合ARM和DSP的優勢,具有良好的任務調度和管理能力,同時具有強大的數據處理能力,是作為六關節噴涂機器人控制系統很好的選擇。
以OMAP-L138雙核平臺為核心,搭建硬件平臺,針對噴涂需求,進行軟件設計,完成六關節噴涂機器人控制系統的設計與開發。
設計的六關節噴涂機器人控制系統采用基于OMAP-L138平臺的方案。OMAP-L138 處理器的雙核架構兼具DSP 和精簡指令集計算機(RISC)技術的優點,采用了一個高性能的ARM926EJ-S內核和TMS320C674x DSP內核。ARM926EJ-S是一個32 位RISC 處理器內核,面向有完整的存儲器管理、高性能、低芯片尺寸以及低功耗等要求的多任務處理應用,非常適用于在系統中非實時性任務的調度和管理。
DSP 核則采用了一個2 級基于高速緩存的架構,配合專用的硬件乘法器,使得計算效率得到了很大的提高,滿足了系統對于實時性的硬件需求,也為機器人執行復雜的運動算法和高速運行提供了基礎。
這樣的架構結合了ARM 和DSP 處理器的優點,通過將實時任務和非實時任務的分離,實現處理器執行效率和性能的最大化[7]。系統總體硬件框圖,如圖1 所示。具體硬件模塊分為OMAP-L138核心板,擴展底板和端子板三層板卡。

圖1 系統總體硬件框圖Fig.1 Frame of System Hardware
OMAP-L138 核心板采用瑞泰公司提供的ICETEK-OMAPL138-KB 系列評估板,實現了最小的系統配置,并提供外設總線接口用于連接外設。ARM 和DSP 通過外設接口,實現了對FPGA、SDCard、USB、RS232、網口等外設的控制。
擴展底板搭載FPGA,針對噴涂機器人設備層的功能進行開發。FPGA 具有豐富的片上邏輯資源和I/O 數量,不僅具有高度集成度和通用性,而且可以靈活編程,可構建出具有高速并行處理能力的脈沖發生器。系統采用Cyclone Ⅱ系列的FPGA和外圍電路中的電源模塊、時鐘模塊、FLASH 等組成最小系統,通過EMIFA接口和OMAP-L138核心板進行連接和通信。
端子板主要用于連接噴涂機器人設備層,其中光耦隔離模塊用于控制器和設備端的電源信號的隔離,提高控制器的抗干擾能力;差分變單端模塊用于將伺服單元反饋的增量型差分脈沖信號轉變成I/O 可以識別的單端脈沖信號;單端變差分模塊則用于將單端脈沖信號進行差分處理,實現伺服的差分脈沖驅動。
在本系統的設計中,軟件整體架構,如圖2所示。主要分為三個部分,具體分別是ARM 端軟件、DSP 端軟件、雙核通信模塊,不同的模塊分別在不同的環境下編寫和編譯。

圖2 軟件整體架構Fig.2 Framework of System Software
其中,ARM 端軟件是在Linux 系統中編寫的,通過交叉編譯軟件Sourcery G++ Lite for ARM GNU/Linux 編譯成能在ARM內核中運行的文件。DSP 端軟件則是在CCS5.5 集成開發環境下編寫和編譯的。雙核通信模塊則是對DSPLink 文件進行解壓和配置,將源碼加入到系統中,并生成ARM 端的驅動程序鏡像dsplinkk.ko 文件和相應的DSP 端的庫文件放到相應位置,編譯運行即可進行雙核通信。
在本系統的設計中,ARM 主要負責噴涂機器人系統的非實時任務。在ARM 中移植Linux 操作系統和文件系統,執行ARM 端的程序。根據功能,其總體包括兩個模塊,包括指令傳輸模塊和指令處理模塊。
3.1.1 指令傳輸模塊
此模塊采用TCP 協議,通過網口連接ARM 和上位機進行通訊。當操作者需要從上位機對系統下達指令,此模塊負責接收并處理從上位機發送下來的指令和信息。
當上位機有指令下發的時候,ARM 會對接收到的指令幀進行檢查。如果指令幀是完整并且合法的,則把指令幀進行分類,并且把對應的信息做緩存處理,用于后續的系統運行。本系統中,指令為三類,分別是讀指令、寫指令和命令指令,系統會對不同類型的指令分別處理。
當指令為讀指令和寫指令時,系統會將指令中對應的數據參數如伺服參數、I/O 狀態、位置信息、工藝數據等寫入和讀出;當指令是命令指令時,系統會根據指令改變系統狀態,使系統執行對應的操作。在數據幀處理完成后,ARM 會對上位機進行反饋,把對應的操作結果和相應的信息發送到上位機中,完成指令的傳輸流程。
3.1.2 指令處理模塊
指令處理模塊是ARM 端程序最重要的模塊,其主要負責處理接收到的指令。接收到命令指令時,程序會改變系統當前的狀態。系統根據需求劃分成多個不同的狀態,包括空閑狀態、急停狀態、噴涂示教狀態、再現運動狀態、手動狀態、暫停狀態、急停狀態、系統錯誤狀態等。
系統采用C 語言編程,把系統不同的狀態封裝成對應的結構體,結構體中包含系統狀態相關的變量和函數指針,其中的函數指針在初始化時指向對應的函數。當接收到來自上位機的指令時,系統會根據指令信息改變當前系統狀態,并且按照流程去執行該系統狀態的相關處理函數。
DSP 在本系統中,主要負責處理實時的任務,如軌跡處理和插補等計算任務。當示教文件的數據從ARM 端傳輸到DSP端,要經過一系列的規劃和處理,才能使噴涂機器人的噴涂效果達到最優化。根據功能,DSP 的軟件分為三個模塊。分別為提取特征點模塊、曲線擬合模塊和插補模塊。
3.2.1 提取特征點模塊
設計的六關節噴涂機器人是通過手工拖拽示教的方式進行示教編程的,在人工示教過程中,系統對各個關節編碼器進行周期為10ms的采樣獲取軌跡點數據,在曲率較大的軌跡處,容易在小空間上聚集大量示教點,出現大量冗余示教點信息,影響噴涂效果。為了將這些多余的示教點剔除,在此模塊中采用了一種根據空間向量之間的夾角為判定條件的方法來提取軌跡的特征點。
從軌跡的起點開始,以連續的三個點Pi、Pi+1、Pi+2和其構成的兩個方向矢量S→i、S→i+1作為一組進行計算。特征點的判斷示意圖,如圖3所示。將S→i、S→i+1夾角θi與給定的閾值θ作比較,當θi小于等于閾值θ,則認為三點處于同一空間直線上,舍去中間點Pi+1,并且添加下一數據點Pi+3繼續重復計算,直到軌跡末端。通過這樣的方法完成軌跡特征點的提取,用較少的點來表示軌跡而不丟失軌跡自身的特征。

圖3 特征點的判斷示意圖Fig.3 Judgment of Feature Points
3.2.2 曲線擬合模塊
在提取軌跡的特征點之后,為了從離散的特征點獲取滿足噴涂需求的高精度軌跡,需要對軌跡進行擬合。NURBS曲線[8]可以統一地對自由曲線與解析形狀進行描述,并且具有靈活性強、計算穩定等特點,在工業機器人中被廣泛應用。在本模塊中,采用三次NURBS曲線對示教軌跡進行曲線擬合。根據需要給定權因子矢量,確定節點矢量,并且求解控制頂點,求得三次NURBS曲線,具體的擬合算法參見文獻[9]。
3.2.3 插補模塊
在本系統中,插補模塊中采用由同課題組的文獻[9]提出的方案。插補功能分為位置插補和姿態插補。其中位置插補是通過NURBS曲線插補完成的。
由于NURBS曲線的插補是通過小線段去逼近曲線的,因此插補的軌跡和NURBS曲線存在弦高誤差。為了限制弦高誤差,通過計算并控制插補段的速度,使插補速度小于該軌跡段所允許的最大插補速度。NURBS曲線與參數u是對應關系,通過一階泰勒公式對NURBS進行展開,根據規劃的插補速度求得噴涂機器人位置插補點對應的參數u,完成NURBS曲線的位置插補。
為了使噴涂效果更加均勻,要求在進行噴涂作業時噴槍的軸線方向要與被加工的產品的表面垂直[10],所以需要對噴涂機器人末端的姿態進行規劃。本模塊采用一種C2連續的四元數曲線對姿態進行插值,通過插值曲線的構造、角位移求解、速度規劃、姿態軌跡插補等步驟,完成對噴涂機器人末端的姿態插補,并實現了插補過程中的角速度控制。
OMAP-L138中集成了ARM和DSP,所以在本系統中,雙核通信是不可或缺的重要模塊。在本系統中,通過DSPLink實現雙核通信。DSPLink是TI公司設計的一款用于處理處理器間通信的底層驅動軟件,從應用層面將復雜的物理鏈路抽象為通用的API。不僅傳輸速度快,而且能大大減少開發的工作量。
雙核通信模塊分成ARM端和DSP端兩部分,在ARM端運行LINUX操作系統,加載dsplink.ko驅動文件,在ARM應用程序中調用DSPLINK 的函數庫。同時在DSP 端運行DSP/BIOS 實現與ARM握手通信[11]。
DSPLink 中包含多種通信模式,系統中采用的是READWRITE[12]通信方式,雙核通信機制,如圖4所示。

圖4 雙核通信機制Fig.4 Dual-Core Communication Mechanism
發送方(ARM或DSP)將需要傳輸的數據寫入L2 RAM,然后通過共享內存SHARM RAM給接收方發送一個消息,告知對方可接收數據,接收方確認后從L2 RAM 中讀取數據,做進一步的處理和調用。
通過對功能需求的分析,進行軟硬件的設計,最終完成系統的設計和研發,六關節噴涂機器人控制器實物圖,如圖5 所示。設計的六關節噴涂機器人控制系統以OMAP-138 為核心,具有8G的內存空間,可以控制8個軸,除了控制六關節機器人外,還能附加控制兩個軸(如轉臺),示教采樣周期為10ms,插補周期同樣為10ms。編程范式為手把手示教編程,操作簡單,而且可在示教過程中直接觀察、修改、優化噴涂效果。六關節噴涂機器人噴涂作業,如圖6所示。

圖5 六關節噴涂機器人控制器實物圖Fig.5 Real Product Photo of Six-Joint Spraying Robot Controller

圖6 六關節噴涂機器人噴涂作業Fig.6 Spraying Operation of Six-Joint Spraying Robot
工作人員首先對機器人進行手把手示教,然后系統通過再現運動對工件進行噴涂作業。由實際運行情況可知,此系統運行穩定,機器人運動平穩,能夠對多種不同的產品進行噴涂作業。
該噴涂系統目前已應用于實際生產,產品主要為浴缸,主要用于浴缸背面噴涂玻璃纖維和樹脂,增強浴缸的強度。浴缸的噴涂效果,如圖7所示。從實際的生產情況可知,涂層能夠很好覆蓋產品表面,達到強化表面的效果,而且大大減少噴涂材料的浪費,噴涂質量很好地滿足中小型企業的生產需求。

圖7 浴缸噴涂效果圖Fig.7 Spraying Effect of Bathtub
針對中小型企業在噴涂機器人應用上的需求,自主設計出基于OMAP-L138的六關節噴涂機器人控制系統。從實際運行的情況可知,該系統硬件選型合理,能夠滿足系統運行的需求,為系統的實現奠定了基礎;軟件采用模塊化設計,移植性和擴展性強,對不同的任務和需求有良好的適應性;該噴涂機器人控制系統能夠平穩運行,取得了較好的噴涂效果,達到了設計要求。目前該系統已經應用于實際的工業生產中,對同類的其它產品具有一定的參考價值和借鑒作用。