張良安,張成鑫,謝勝龍
(1.安徽工業大學機械工程學院,安徽馬鞍山 243000;2.中國計量大學機電工程學院,浙江杭州 310018)
近年來,隨著《中國制造2025》計劃以及工業4.0概念的提出,工業機器人作為可編程的機電一體化的產品,在搬運、噴涂和焊接等領域得到了廣泛的應用[1]。工業機器人最常見的編程方式主要為示教再現編程的方式。但隨著機器人工作環境越來越復雜、作業要求的精度越來越高,機器人示教再現編程方法因過程繁瑣、精度低等缺點,已然無法滿足現代化生產制造中大部分應用的要求。
隨著計算機技術和硬件產品的迅猛發展,工業機器人離線編程技術得到了實現和快速的發展[2]。離線編程不需要在線對機器人進行編程,它利用CAD技術建立機器人的虛擬仿真環境,再通過機器人真實的運動學參數模擬機器人運行軌跡,然后將運行軌跡轉化為機器人可以執行的程序,以達到機器人編程的目的[3]。相較示教再現編程,離線編程可以實現編程者遠離機器人工作環境,減少機器人停機時間,安全性與效率更高;并且離線編程系統編譯結果更直觀,碰撞檢測與軌跡規劃效果更好。
目前市面上主流的工業機器人離線編程軟件主要有RobotStudio、RobotArt、RobotMaster等。這些離線編程軟件一般比較昂貴,開放性與通用性較差,不便于進行二次開發。因此,很多學者針對機器人不同的應用環境對離線編程系統作了相應的研發,如焊接、涂膠等應用領域[4-6]。但這些機器人離線編程系統實現方式都是先通過點位標定示教,然后規劃機器人的運行軌跡。這樣不可避免地產生標定誤差,影響機器人運動精度[7]。
為了提高離線編程系統的可操作性與精度,學者們進行了大量的研究,目前使用最多的是視覺傳感器。通過視覺傳感器采集圖像,利用圖像處理算法提取所需信息,然后離線編程系統根據這些信息規劃機器人的目標路徑,實現機器人的自主移動。如周方明等[8]研究了基于激光視覺的焊接機器人離線自動編程技術,通過離線尋位程序和激光尋位系統,實現精確定位焊縫。倪自強等[9]開發了基于視覺引導的工業機器人示教編程系統,在雙目視覺引導下完成對特定軌跡的示教編程。白鳳民等[10]研究了三維視覺在激光焊接機器人離線編程系統中的應用,結合三維視覺實現激光焊接空間曲線的離線編程。但這些研究往往僅局限于單一的三維建模軟件平臺,通用性較差。近年來,虛擬現實建模語言(Virtual Reality Modeling Language, VRML)作為一種三維世界的場景建模語言,在虛擬現實技術中得到了廣泛的應用。由于具有平臺無關性,因此該語言能解決離線編程的跨平臺問題[11]。
基于此,本文作者利用VRML技術開發了一套基于機器視覺的工業機器人離線編程系統。首先基于模塊化思想對系統進行了設計,然后詳細介紹了各個模塊的原理與設計,最后以一種六軸工業機器人為測試對象驗證了該離線編程系統的基本功能。
基于視覺的工業機器人離線編程系統采用模塊化方法進行設計。系統被劃分為不同的功能模塊,各模塊之間采用開放的程序接口和通信平臺相連接,各功能模塊通過讀取配置文件進行功能的集成,由此提高系統的可重構性。系統的模塊設計結構如圖1所示。系統主要由以下幾個模塊組成:機器視覺模塊、虛擬環境模塊、運動學模塊、軌跡規劃模塊、離線程序模塊和外部通信模塊。

圖1 離線編程系統框架Fig.1 Framework of offline programming system
根據上述系統組成框架搭建的機器人離線編程系統如圖2所示。系統包括視覺系統、六軸SCARA機器人本體、機器人控制器以及工控機。視覺系統選用500萬像素黑白CMOS工業相機,8 mm手動調焦鏡頭以及光源。工業相機通過支架垂直固定拍攝區域正上方,光源固定于相機正下方。六軸SCARA機器人本體關節全部采用運動控制卡驅動,并將其嵌入工控機中。視覺系統以及離線編程軟件全部在LabVIEW環境下運行。相關設備元件信息見表1。

圖2 機器人離線編程系統Fig.2 Offline programming system of industrial robot

表1 設備元件參數Tab.1 Parameters of equipments
基于視覺的工業機器人離線編程系統工作流程如圖3所示。首先通過視覺系統采集目標加工工件圖片,并對其進行相關圖像處理,提取目標點位,步驟如圖3(b)所示;之后離線編程系統通過運動學模塊與軌跡規劃模塊進行運算,并自動生成離線程序,步驟如圖3(c)所示;同時虛擬模型界面對結果進行仿真驗證,最后利用在線通信的方式將程序導入機器人控制器中,控制機器人的實際運動。

圖3 離線編程系統工作流程
機器視覺模塊主要包括圖像采集、圖像處理與數據轉換幾個部分。圖像采集系統是對目標加工路徑進行原圖像采集;圖像處理系統是對采集到的原圖像進行相應的視覺算法處理;數據轉換的作用是將圖像處理后的圖像坐標點位轉換成實際的機器人坐標。
(1) 圖像采集系統
圖像采集系統主要包括工業相機、鏡頭、光源、圖像采集設備、圖像處理設備等部分[12]。工業相機用于采集目標物體的數字圖像;鏡頭用于將物體表面反射或透射的成像光束匯聚于焦平面上的圖像傳感器;圖像采集設備可以將來自圖像傳感器的信號傳輸給工業計算機。圖4所示為系統的結構示意。

圖4 視覺系統結構Fig.4 Structure of vision system
(2) 圖像處理系統
圖像處理系統在整個機器視覺模塊中起著至關重要的作用,在圖像采集系統采集到原圖像后,利用圖像處理算法對圖像進行處理后提取目標特征數據。圖像的處理過程如圖5所示。

圖5 圖像處理過程Fig.5 Image processing
圖像采集系統采集的原始圖像往往包含很多的噪聲與畸變,這些嚴重影響了圖像的質量,不利于從中提取目標特征。導致這一現象的原因有很多,如圖像經A/D轉換、線路傳輸等都會產生噪聲污染。因此,必須要對原始圖像進行圖像濾波等預處理。圖像濾波的作用是把被處理圖像的大部分細節特征進行保留,同時對圖像中的噪聲進行抑制。
在對圖像預處理后,需要對圖像進行閾值分割處理。閾值分割通常采用二值化方法(Threshold)處理。其原理是利用圖像中需要提取的目標區域和背景在灰度上的差異,并通過選擇適當的閾值進行分類。其數學表達式為

(1)
圖像在閾值分割后進入形態學處理,突出目標特征。常用的形態學處理函數有Basic基礎形態學、Adv.Morphology高級形態學、Particle Filter粒子過濾等。最后采用LabVIEW視覺助手中機器視覺模塊(Machine Vision)提取目標特征數據,輸出到數據轉換系統中做進一步分析處理。
(3) 數據轉換系統
數據轉換系統作用是通過對相機與機器人進行標定,建立圖像坐標與實際場景中機器人坐標之間的關系。經圖像處理系統處理后得到的圖像點位數據通過該系統轉換為機器人坐標下的點位數據。轉換原理基于圖像上的點位坐標與空間里面的目標物體表面實際點的幾何位置存在映射的關系。這一關系可以用式(2)來描述:
(2)
式中:Xc、Yc、Zc為相機坐標系;Xw、Yw、Zw為機器人世界坐標系;R為旋轉矩陣;M為平移矩陣。
虛擬環境模塊是工業機器人離線編程系統的前提與基礎,其主要任務是在編程軟件中建立機器人與運行環境的虛擬環境,實現工業機器人的仿真模擬。為了更好地建立實體環境與虛擬環境之間的關系,文中主要利用LabVIEW中的3D Picture Control工具包以及通用三維建模軟件實現虛擬環境的搭建。具體流程如下:
(1) 建立機器人與外部運行環境的三維模型。目前市面上廣泛使用的三維建模軟件有SolidWorks、UG等。這些軟件功能強大,組件繁多,都具有強大的三維建模功能,并且都支持VRML虛擬現實應用技術。利用該類軟件可以快速準確地對機器人以及運行環境進行三維建模。
(2) 通過標準數據接口導出三維模型。為了LabVIEW可以調用相關部件,需要在三維建模軟件中將各部件通過VRML標準接口導出為wrl格式的文件[13]。由于文中選用的工業機器人具有6個自由度,因此整體可以拆分成7個相互獨立運動的零部件。
(3) LabVIEW環境中實現虛擬環境搭建。3D Picture control為LabVIEW專門進行三維圖形建模的模塊。其作用為將導出的wrl格式的部件導入LabVIEW的三維環境中,并且根據實際參數建立各部件之間的相對位置關系。
經過上述步驟實現LabVIEW中機器人的虛擬仿真環境搭建。整體步驟如圖6所示。

圖6 虛擬仿真環境搭建流程Fig.6 Flow of virtual simulation environment building
離線編程系統中的運動學模塊是機器人仿真運動的基礎。只有先對機器人的運動學進行分析,才能保證離線編程系統中機器人運動時姿態的準確性。機器人運動學包括運動學正解與運動學逆解。機器人的正運動學分析首先需要建立運動學模型,文中采用改進D-H坐標法,建立機器人的連桿坐標系,如圖7所示。并根據機器人的連桿坐標系列出D-H的參數,如表2所示。

圖7 機器人連桿坐標系Fig.7 Linkage coordinate of robot

表2 機器人D-H參數Tab.2 D-H parameters of robot

(3)

由于在離線編程過程中需要根據機器人的目標位姿計算出機器人各關節角的角度,故需要對機器人進行逆運動學分析,可采用文獻[15]中介紹的代數法,根據機器人的末端軌跡依次求出各關節變量(θ1、θ2、d3、θ4、θ5、θ6)的計算公式。
為了使虛擬仿真環境中的機器人具有相關運動功能,開發了機器人軌跡規劃模塊。通過封裝機器人軌跡規劃算法,使得離線編程系統中機器人的仿真運動軌跡更加符合實際情況。文中采用文獻[16]中介紹的修正梯形運動規律對機器人進行軌跡規劃。
基于上述文獻中的修正梯形運動規律,對視覺模塊輸出的機器人起始點與終止點之間的運動軌跡進行關節空間插補或笛卡爾空間插補[17],得到運動過程中各時間機器人末端運動的位置;再將其通過運動學算法模塊中運動學逆解的計算公式求得各時間對應的機器人關節值。
離線編程模塊是整個系統的重要組成部分,該模塊包括離線程序的自動生成、編譯以及運行等功能,如圖8所示。

圖8 離線程序模塊功能結構Fig.8 Function structure of offline program module
(1) 離線程序生成
離線程序模塊基于運動學模塊與軌跡規劃模塊將目標點位位姿數據自動轉化為機器人的離線程序并將其保存在本地。為了提高離線編程程序的可讀性,文中開發了一套較為完善的機器人離線編程語言系統,如表3所示。該編程語言主要由指令項和數據項兩部分組成。指令項代表的是機器人的運動方式,如關節插補(MOVP)或直線插補(MOVL);數據項是機器人的點位數據,存儲的是機器人末端點位所對應的各個關節的數據。

表3 機器人離線編程語言系統Tab.3 Offline programming language system of robot
(2) 離線程序編譯
離線程序編譯是對自動生成的程序進行數據解析,一是判斷點位數據在本地是否成功保存,二是提取關鍵點的角度值或位姿信息,為后續的仿真運行提供數據基礎。
(3) 離線程序運行
離線程序運行是將程序編譯后解析出的指令以及數據導入虛擬環境中,通過其中的三維場景對程序指令實現機器人的虛擬仿真運動。機器人作業的過程可以通過圖形用戶界面直觀地顯示,仿真結果可用來對離線編程代碼進行可行性分析。若結果不符合期望,則需要根據仿真結果對離線程序進行相應修改。
經由上述離線程序模塊對離線程序進行自動生成以及驗證無誤后,即可將離線程序導入到機器人控制系統進行外部加工作業。由于機器人的運動控制由控制器與驅動器實現,離線程序的指令結構與機器人控制系統的運行指令并不兼容。因此在將離線程序導入機器人控制系統之前,還需將它轉換成機器人控制器能夠識別的數據參數。具體過程如下:首先在LabVIEW中調用運動控制卡的動態鏈接庫,將其API函數封裝成運動控制VI并嵌入PC控制系統;再將離線程序進行數據轉換后發送到機器人的運動控制卡中;最后通過TCP/IP協議建立工控機與機器人驅動器之間的通信,運動控制卡根據導入的數據發送相應的運動指令給機器人驅動器,由它控制機器人的實際運動。圖9所示為具體通信流程。

圖9 系統通信流程Fig.9 Flow of system communication
實驗中目標加工路徑選用常見的直線路徑。經由圖像采集系統采集的原圖像以及經過圖像處理系統處理后的圖像如圖10所示,從中提取的路徑起始點與末端點的坐標以及通過坐標轉換輸入到離線編程系統中的坐標如表4所示。

圖10 視覺系統

表4 目標加工點位數據Tab.4 Data of target machining point
離線編程系統根據加工路徑的起始點與終止點自動進行軌跡規劃以及程序生成,并在虛擬仿真環境中仿真運行。仿真運行結果如圖11所示。

圖11 仿真運行結果Fig.11 Simulation operation results
最后通過在線通信的方式將離線程序導入機器人控制器中,控制物理機器人運行。物理機器人運行結果如圖12所示。運行的路徑數據與目標加工路徑的數據對比如表5所示。

圖12 物理機器人運行結果Fig.12 Experimental results of industrial robot

表5 實際運行路徑數據與仿真數據的對比
由物理機器人的運行結果可知:實際運行路徑與目標加工路徑的最大誤差為0.4 mm,證明了基于視覺的離線編程系統滿足精度要求。
運行過程中關節的角速度曲線如圖13所示??梢钥闯觯簷C器人在運行過程中關節角速度變化連續且平滑、無突變,可滿足工業應用需求。

圖13 運行過程中機器人關節速度Fig.13 Joint speed of robot during operation
為解決傳統離線編程系統通用性差、可靠性低和二次開發難度大等問題,文中基于VRML技術開發一套基于機器視覺的工業機器人離線編程系統。該離線編程系統具有不需要依賴于具體的CAD軟件的優點,同時機器視覺的引入極大地提高工業機器人對外部環境的感知能力和加工作業時的精度。