黃睿, 張新*, 朱華炳, 張濤, 曾億山
(1.安徽理工大學(xué)機械工程學(xué)院, 淮南 232001; 2.合肥工業(yè)大學(xué)機械工程學(xué)院, 合肥 230031)
當(dāng)前,機器人已成為數(shù)字化經(jīng)濟(jì)時代最標(biāo)志性的智能工具,推動了自動化技術(shù)、集成化技術(shù)的快速發(fā)展[1]。如工業(yè)機器人、健康醫(yī)療機器人等不同類型的機器人被廣泛應(yīng)用于各行業(yè)中,機器人技術(shù)已然是新時代科學(xué)技術(shù)發(fā)展的重要方向。
控制系統(tǒng)是機器人的核心,其運行狀況的好壞與系統(tǒng)密不可分。目前市場上主流的工業(yè)機器人所配套的控制系統(tǒng)是封閉式結(jié)構(gòu)[2],外部人員只能在其固有的軟件平臺上進(jìn)行二次開發(fā)。即使不乏有學(xué)者基于ROS(robot operating system)[3]、嵌入式[4]等系統(tǒng)開發(fā)機器人,但ROS開發(fā)周期長、嵌入式系統(tǒng)開發(fā)難度大,借助其他系統(tǒng)平臺[5-6]也難以在短期內(nèi)開發(fā)出高性能與高實時通信的機器人控制系統(tǒng)。
不少研究人員開始采用EtherCAT(ethernet for control automation technology)技術(shù)[7-8],旨在利用實時以太網(wǎng)通信開發(fā)機器人控制系統(tǒng)。Ahn等[9]通過搭建雙通道的EtherCAT主站,成功研發(fā)出具有高實時性和高穩(wěn)定性的33自由度仿人機器人控制系統(tǒng)。Zhao等[10]基于EtherCAT通信網(wǎng)絡(luò),設(shè)計的雙足輪機器人可以實現(xiàn)高頻力控制和良好的反向驅(qū)動能力。周惠興等[11]將Beckhoff嵌入式PC計算機(personal computer, PC)作為上位機,以EtherCAT為通信基礎(chǔ),研究出的機器人控制系統(tǒng)可實時、準(zhǔn)確完成瓷磚鋪貼。周楷文等[12]基于PC控制,以 ARM嵌入式處理器(advanced RISC machine, ARM)為系統(tǒng)核心搭建了EtherCAT主站,結(jié)合MATLAB軟件平臺設(shè)計出的協(xié)作機器人控制系統(tǒng)可實現(xiàn)高實時性的數(shù)據(jù)反饋,但產(chǎn)品的升級換代會因設(shè)備的不兼容而影響二次開發(fā)。鄧劍楠等[13]基于ROS和EtherCAT研制了一種智能抹平機器人的多軸控制系統(tǒng),其機器人控制的實時性可取代人工作業(yè),但ROS開發(fā)難度較大,延長了開發(fā)周期。這些基于EtherCAT開發(fā)的控制系統(tǒng)使得機器人具有不錯地穩(wěn)定性和實時性,但目前并沒有見到一種易開發(fā)的,同時兼顧移植性、拓展性和實時性的開放式機器人控制系統(tǒng)。
為促進(jìn)、完善開放式機器人控制系統(tǒng)的發(fā)展[14],設(shè)計一種跨平臺的開源機器人控制系統(tǒng)架構(gòu)。以倍福TwinCAT3為控制系統(tǒng)的軟件開發(fā)平臺基礎(chǔ),綜合PyCharm、MATLAB、CoppeliaSim等軟件平臺,以EtherCAT與ADS (automation device specification)通信為核心,采用一主多從的工作模式。同時結(jié)合視覺和運動控制,借助數(shù)字孿生技術(shù),建立虛擬模型與機器人本體之間的聯(lián)動[15],并通過離線仿真和在線控制實驗分析,以期驗證該系統(tǒng)架構(gòu)設(shè)計的可行性。該跨平臺開源機器人控制系統(tǒng)架構(gòu)的研究推動了開源機器人控制系統(tǒng)的進(jìn)步,為未來機器人技術(shù)的發(fā)展和應(yīng)用具有深刻的指導(dǎo)和參考價值。
以實驗室自研的五自由度輕型工業(yè)機器人為例(圖1),設(shè)計了一種基于TwinCAT3 (the windows control and automation technology)的開源機器人控制系統(tǒng)架構(gòu),包括軟件和硬件。
圖1 五自由度機器人Fig.1 Five-degree-of-freedom robot
在軟件方面,選擇開源算法和軟件平臺開發(fā)機器人的視覺檢測與運動控制,如PyCharm、MATLAB、TwinCAT3等,可以縮短開發(fā)周期,降低成本。其中,以嵌入TwinCAT3的Visual Studio 2017為核心開發(fā)環(huán)境,使用Python、C/C++、ST等語言編寫程序,同時基于EtherCAT實時工業(yè)以太網(wǎng)總線技術(shù)和ADS通信協(xié)議進(jìn)行數(shù)據(jù)傳輸,滿足系統(tǒng)實時控制的需求。在硬件方面,工業(yè)相機選擇大恒圖像的水星二代系列,該系列相機具有可二次開發(fā)的軟件開發(fā)包SDK,圖像數(shù)據(jù)傳輸穩(wěn)定、快速;運動控制器選擇德國Beckhoff公司的CX系列,該系列控制器基于PC控制,憑借PC強大的計算能力,在最大限度控制255個軸時仍能高效作業(yè);關(guān)節(jié)模組選擇泰科的RJSIIZ系列,該系列模組集成化程度高,一體化結(jié)構(gòu)極大地簡化了機器人本體,而且支持EtherCAT通信協(xié)議;伺服驅(qū)動器亦選擇支持EtherCAT通信協(xié)議的松下A6SE系列,保證了整體系統(tǒng)通信的協(xié)同性與兼容性。
如圖2 所示,系統(tǒng)采用模塊化設(shè)計的思想,主要劃分為視覺模塊、運動控制模塊、算法集成與仿真控制模塊,分別負(fù)責(zé)機器人的視覺檢測、運動控制、相關(guān)算法集成與人機交互界面的設(shè)計。其中,算法集成與仿真控制模塊于PC端開發(fā),包括各開源軟件平臺,具有集成視覺與運動控制算法、仿真機器人運動和設(shè)計上位機人機交互界面的功能;視覺模塊包括工業(yè)相機和PC,具有圖像采集和處理的功能。運動控制模塊關(guān)鍵是EtherCAT主站和從站(節(jié)點或設(shè)備)的搭建,PC與倍??刂破鳛橹髡?從站設(shè)備包括RJSIIZ14/17關(guān)節(jié)模組和松下伺服驅(qū)動器,該模塊具有發(fā)送運動控制指令和接收視覺模塊與各從站設(shè)備傳感器數(shù)據(jù)信息的功能。當(dāng)五自由度機器人運動時,機器人CoppeliaSim數(shù)字孿生模型與實物虛實交互,同時人機交互界面實時顯示機器人各關(guān)節(jié)位姿信息。以這種系統(tǒng)架構(gòu)的設(shè)計方案實現(xiàn)機器人控制,可以隨時對機器人運動狀態(tài)進(jìn)行監(jiān)控并調(diào)整。
算法集成與仿真控制模塊包括上位機軟件和下位機軟件,如圖3所示。
TwinCAT3為倍福自動化控制軟件;Visual Studio 2017為核心開發(fā)環(huán)境;MATLAB為計算機軟件;CoppeliaSim為機器人仿真軟件;Qt/Pyqt5為人機交互界面開發(fā)軟件;PyCharm為Python語言開發(fā)的集成開發(fā)環(huán)境圖3 算法集成與仿真控制模塊Fig.3 Algorithm integration and simulation control module
TwinCAT3是五自由度機器人算法程序設(shè)計和開發(fā)的核心編程環(huán)境,上位機軟件集成的視覺和運動控制模塊算法在該下位機軟件系統(tǒng)中交互數(shù)據(jù)。視覺方面,PyCharm集成視覺目標(biāo)檢測算法,通過Pyqt5封裝并設(shè)計視覺檢測人機交互界面,如圖4所示;運動控制方面,MATLAB集成機器人的運動學(xué)控制和軌跡規(guī)劃算法(如多項式插值軌跡規(guī)劃等),CoppeliaSim完成對機器人數(shù)字孿生模型仿真運動,并聯(lián)合Qt設(shè)計機器人人機交互界面,如圖5所示。
圖4 目標(biāo)檢測人機交互界面Fig.4 Object detection human-computer interface
視覺模塊以TwinCAT3軟件系統(tǒng)為數(shù)據(jù)傳輸媒介與運動控制模塊進(jìn)行數(shù)據(jù)交互,借助該軟件系統(tǒng)中的ADS模塊將視覺圖像數(shù)據(jù)輸送至EtherCAT主站。
2.2.1 ADS通信
ADS是TwinCAT3軟件系統(tǒng)中各模塊之間通信的消息路由,其采用的工作模式為服務(wù)器/客戶端(server/client);是一種訪問ADS設(shè)備的接口控制通信協(xié)議[16]。協(xié)議規(guī)定ADS設(shè)備的唯一標(biāo)識為用于確定設(shè)備硬件的ADS網(wǎng)絡(luò)ID和用于確定軟件服務(wù)的端口,任何ADS通信的請求必須指定ID和端口,才能找到對應(yīng)的服務(wù)器。TwinCAT ADS模塊數(shù)據(jù)訪問的方法有兩種,一種是訪問TwinCAT PLC變量的地址,變量地址由分組索引和偏移地址組成,這種方法先訪問變量地址,再訪問變量;另一種是直接訪問PLC變量名,TwinCAT PLC程序中的任意變量都有唯一的句柄,該方法需要先獲取變量句柄,變量讀寫完成后,釋放句柄。
2.2.2 基于ADS的視覺模塊設(shè)計
為提高機器人運動精度,減少如抓取、焊接任務(wù)時的定位誤差,視覺模塊采用開源深度學(xué)習(xí)框架Pytorch搭建視覺檢測算法的網(wǎng)絡(luò)模型,利用強大的GPU硬件快速、精準(zhǔn)識別出目標(biāo)2D坐標(biāo),通過立體校正與匹配獲取目標(biāo)3D位姿,最后封裝至Pyqt5中。該模塊基于ADS通信,調(diào)用倍福提供的TcAdsDll庫構(gòu)建通信功能,以直接訪問變量名的方式,建立上位機軟件(Pyqt5)控制接口的變量與下位機軟件(TwinCAT3)PLC變量之間一一對應(yīng)的關(guān)系,完成圖像數(shù)據(jù)的傳輸。具體涉及的變量接口及通信流程如圖6所示。
首先,PC端完成Pyqt5與TwinCAT3 PLC通信地址和端口的配對;其次,打開ADS通信,將Pyqt5封裝的算法輸出接口變量名與PLC變量名完成對應(yīng)變量鏈接;最后,同步傳輸視覺圖像數(shù)據(jù)。視覺圖像數(shù)據(jù)傳輸主要分為兩部分,第一部分是將圖像數(shù)據(jù)輸送至Pyqt5人機交互界面中視覺檢測算法輸入變量的控制接口,算法處理后將數(shù)據(jù)結(jié)果存儲在輸出變量的控制接口,隨后由客戶端(Pyqt5)向服務(wù)器(TwinCAT3 PLC)發(fā)送請求;第二部分是服務(wù)器接受請求,打開通信端口,獲取對應(yīng)PLC變量句柄,從客戶端中同步讀取圖像數(shù)據(jù)結(jié)果并寫數(shù)據(jù)到PLC變量中,以便后續(xù)運動控制模塊接收該圖像數(shù)據(jù)信息,最后釋放句柄關(guān)閉端口,等待下一次請求。
運動控制模塊是五自由度機器人控制系統(tǒng)的關(guān)鍵部分,為實現(xiàn)對機器人的快速、實時控制,該模塊所選的控制器、關(guān)節(jié)模組、伺服驅(qū)動器均支持EtherCAT通信協(xié)議。
2.3.1 EtherCAT通信
在倍福基于PC和EtherCAT的控制技術(shù)中, EtherCAT通信是核心技術(shù)[17]。是一種用于過程數(shù)據(jù)的優(yōu)化協(xié)議技術(shù),解決了傳統(tǒng)專用交換機分配以太網(wǎng)包存在嚴(yán)重時間延遲的問題。該技術(shù)無需接受以太網(wǎng)數(shù)據(jù)包,可以直接解碼數(shù)據(jù)包并復(fù)制數(shù)據(jù)到每個從站設(shè)備,而后從站設(shè)備接收并處理數(shù)據(jù)。系統(tǒng)數(shù)據(jù)傳輸時間延遲只有幾納秒,加快和便捷了主站控制器與其他外部從站設(shè)備之間的通信,足以滿足控制系統(tǒng)高實時性的需求而不受時間延遲的限制。
2.3.2 基于EtherCAT的運動控制模塊設(shè)計
在機器人運動時,各從站設(shè)備的運動控制指令來自倍??刂破?機器人到達(dá)指定位置并完成特定任務(wù)所需的位姿通過各關(guān)節(jié)模組、伺服驅(qū)動電機輸出的電壓電流信號轉(zhuǎn)換而來,而這些數(shù)據(jù)信號的傳輸由EtherCAT技術(shù)支撐。
如圖7所示,機器人運動控制模塊以TwinCAT3和倍福控制器為EtherCAT主站控制器,PC端集成有MATLAB在Robotics Toolbox中開發(fā)的運動控制算法、Qt設(shè)計的機器人人機交互界面,以及CoppeliaSim數(shù)字孿生技術(shù)實時顯示機器人運動軌跡(位移、速度和加速度等數(shù)據(jù)變化曲線)的仿真控制。
TCP/IP為網(wǎng)絡(luò)通信協(xié)議;RemoteAPI為CoppeliaSim軟件API框架的遠(yuǎn)程通信接口函數(shù);Robotics Toolbox為機器人工具箱;C++ module為C++模塊圖7 運動控制模塊通信流程Fig.7 Motion control module communication process
首先,基于TCP/IP協(xié)議,借助Remote API函數(shù)分別建立CoppeliaSim與Qt、MATLAB之間的通信,通過TwinCAT3 C++ Module調(diào)用MATLAB封裝的運動控制算法;其次,完成TwinCAT3與倍??刂破髦g的Ethernet連接;最后,基于EtherCAT協(xié)議建立倍??刂破髋c機器人本體中各從站設(shè)備之間的通信。當(dāng)機器人進(jìn)行如關(guān)節(jié)空間、笛卡爾空間的軌跡規(guī)劃時,軌跡規(guī)劃算法生成各關(guān)節(jié)所有插值點數(shù)據(jù),由EtherCAT主站一邊發(fā)送該控制指令(各關(guān)節(jié)值)至CoppeliaSim中控制機器人仿真模型運動,同時運動仿真模型的位姿信息實時反饋至Qt人機交互界面;另一邊控制指令經(jīng)過數(shù)據(jù)處理后由EtherCAT發(fā)送給各從站設(shè)備,控制機器人本體按規(guī)劃的軌跡進(jìn)行運動。此外,各關(guān)節(jié)模組中的編碼器等傳感器接收、處理機器人與外界的數(shù)據(jù)信息并反饋給EtherCAT主站,等待主站控制器的下一次指令。
五自由度機器人控制系統(tǒng)按功能模式分為離線仿真和在線控制。視覺在系統(tǒng)模式切換中,始終為機器人提供目標(biāo)3D位姿,輔助其精準(zhǔn)定位。如圖8所示,綠色虛線框為離線仿真模式,視覺僅為機器人仿真提供目標(biāo)位姿,完成機器人軌跡規(guī)劃;紫色虛線框為在線控制模式,視覺提供的目標(biāo)位姿需在TwinCAT3設(shè)計的視覺伺服控制器中進(jìn)行處理,獲取機器人末端與目標(biāo)之間的誤差位姿,完成誤差位姿變量與調(diào)用MATLAB運動控制算法的C++ Module、TwinCAT PLC之間的變量鏈接,等待機器人運動的控制指令。
在機器人系統(tǒng)控制中,離線仿真主要包括軌跡規(guī)劃和仿真,視覺提供目標(biāo)位姿、MATLAB進(jìn)行軌跡規(guī)劃和CoppeliaSim完成機器人模型仿真,篩選出安全、高效的運動軌跡策略;在線控制主要包括仿真和通信,選擇合適的離線運動策略,由主站向伺服驅(qū)動器、各關(guān)節(jié)模組發(fā)出控制指令,驅(qū)動機器人本體沿期望的軌跡路線運動,同時接收各從站設(shè)備反饋的位移(d為直線滑臺的水平位移)、角度(θ1、θ2、θ3、θ4為4個旋轉(zhuǎn)關(guān)節(jié)的旋轉(zhuǎn)角度)。調(diào)用CoppeliaSim仿真,實時顯示機器人的運動狀態(tài),通過視覺伺服控制器不斷補償機器人末端位姿與目標(biāo)之間的位姿誤差,最終協(xié)助機器人到達(dá)指定位置。
為了驗證本開源機器人控制系統(tǒng)設(shè)計的可行性和有效性,在圖1所示的五自由度機械臂上進(jìn)行實驗并討論。
圖9為實現(xiàn)的機器人離線仿真。通過視覺給定的目標(biāo)位姿,采用笛卡爾空間直線軌跡規(guī)劃生成各關(guān)節(jié)所有插值點的數(shù)據(jù),借助CoppeliaSim仿真控制機器人模型各關(guān)節(jié)運動到目標(biāo)位置。分別記錄了機器人數(shù)字孿生模型在不同時刻末端的位移和速度曲線變化,可以明顯地觀察到機器人末端的運動軌跡為一條直線,同時位移和速度曲線沒有發(fā)生突變和離散,驗證了在離線仿真模式下,機器人軌跡規(guī)劃的正確性。
圖10為實現(xiàn)的機器人在線控制。根據(jù)離線仿真的軌跡規(guī)劃策略,在線控制機器人樣機按規(guī)劃的軌跡做直線運動實驗,根據(jù)視覺與從站設(shè)備反饋的數(shù)據(jù)信息實時調(diào)整機器人各關(guān)節(jié)角度θ(或d)。分別記錄機器人實物在不同時刻的運動軌跡曲線,觀察到機器人實物與CoppeliaSim仿真中機器人數(shù)字孿生模型(圖9)各關(guān)節(jié)的位姿一致,驗證了機器人在線控制的可行性,同時驗證了機器人控制系統(tǒng)的高實時性能。
T為機器人運動的不同時刻圖10 在線控制Fig.10 Online control
針對主流工業(yè)機器人為封閉式控制結(jié)構(gòu)的問題,設(shè)計一種基于TwinCAT3的開源機器人控制系統(tǒng)架構(gòu),既能拓展控制系統(tǒng)的功能,又能支持二次開發(fā)。通過上述系統(tǒng)架構(gòu)的設(shè)計,得出以下結(jié)論。
(1)系統(tǒng)采用開源可擴展架構(gòu),包含視覺、運動控制和算法集成與仿真控制模塊,以ADS、EtherCAT通信技術(shù)傳輸數(shù)據(jù)。
(2)視覺模塊借助開源深度學(xué)習(xí)算法視覺算法實現(xiàn)精準(zhǔn)定位;運動控制模塊建立了一主多從工作模式;算法集成與仿真控制模塊集成視覺、運動控制等智能算法,設(shè)計了目標(biāo)檢測和機器人人機交互界面。
(3)系統(tǒng)結(jié)合數(shù)字孿生技術(shù),通過離線與在線控制完成了仿真模型與實物之間虛實交互的聯(lián)動,優(yōu)化運動策略,提高控制精度。驗證了該系統(tǒng)架構(gòu)的可拓展性好且實時性強。