周方明,蔣尊宇,陳琪昊,周 磊,裴永強,陳維鵬
(1.江蘇科技大學 江蘇省先進焊接技術重點實驗室,鎮江212100)(2.中國船舶海洋動力部件有限公司,上海 201306)(3.南京合信智能裝備有限公司,南京 210000)
隨著先進制造技術的發展,實現船舶焊接制造的自動化與智能化已是必然趨勢[1].機器人焊接編程方式主要是示教編程和離線編程[2].示教編程工作效率低,由于柴油機機座內部焊縫較多,多為K型坡口的立焊和橫焊焊縫,均需多層多道焊接,焊接工藝復雜,且柴油機機座尺寸較大、結構復雜,缸內空間狹小,人工操作不便,示教編程難以滿足生產需求.雖然傳統離線編程效率高,但在實際的焊接中會因為柴油機機座的裝配、擺放導致焊縫實際位置與仿真環境的中不一致,應用性差.實際應用中需反復更改工件坐標,以解決此問題,降低了生產效率和焊接質量.因此,在柴油機機座的焊接中,需精確定位焊縫.文獻[3]采用視覺輔助的離線編程機器人去毛刺技術,通過視覺提取工件邊緣信息與離線編程的軌跡調整,可以有效提高機器人去毛刺的加工質量.文獻[4]通過結合離線編程技術和三維視覺技術,克服了離線編程需預先在仿真環境中確定工件坐標,實現了與環境和模型無關的自動機器人制造平臺.國外的商用離線編程軟件,如:Robotstudio、Roboguide等均有視覺跟蹤功能,但只針對各自品牌的機器人.上述文獻技術均缺少工藝參數自動發送和焊接監控模塊.
文中提出了一種基于激光視覺的焊接機器人離線自動編程技術,該技術無需通過示教方式對離線程序修改,從而提高了工作效率.該技術包括5個模塊:激光視覺模塊、自動編程及仿真優化模塊、焊接監控模塊、焊接參數發送模塊、通信模塊[5].
其中,激光視覺模塊是通過相機對打在焊縫上的激光條紋進行圖像處理得到焊縫特征信息,以實現焊縫的定位與跟蹤[6].自動編程及仿真優化模塊,采用離線編程軟件RobotMaster[7]生成尋位程序,對尋位程序添加視覺尋位功能,實現焊縫的尋位與跟蹤[8].焊接監控模塊和焊接參數發送模塊均采用Delphi開發[9],焊接監控模塊用于實時監控焊接參數的變化.焊接參數發送模塊用于查詢每種焊縫的工藝參數并發送給機器人[10-11].本系統不僅具有離線編程效率高的特點,還實現了發送焊接參數及焊接參數實時監控功能,提高了機器人焊接生產效率、保證了焊接質量.
焊接機器人系統主要包括FANUC機器人M-10iA、3個直線移動的外部軸、機器人控制柜、TPS5000焊機、送絲機等;激光視覺系統主要包括FUJI-CAM相機、控制盒、通信線等;發送參數模塊包括上位機、下位機程序,以太網等;PLC系統包括PLC控制柜、清槍剪絲站、安全報警裝置、安全門報警裝置,工作站如圖1.

圖1 龍門架機器人焊接工作站(帶工件)Fig.1 Gantry robot welding station (with workpiece)
如圖2,基于激光視覺的焊接機器人離線編程系統一般步驟為:首先,繪制待焊工件的三維圖,將其導入RobotMaster中,仿真運行并生成離線尋位程序;其次,通過Delphi開發的上位機界面查詢焊接工藝參數并將參數發送至機器人控制柜中;接著,對離線程序添加視覺尋位功能和多層多道焊功能.最后,將程序以FTP的形式發送到機器人控制柜中,運行機器人.在運行機器人至焊縫起始位置時,激光視覺傳感器會自動搜索起始焊位并實時跟蹤焊縫.

圖2 基于激光視覺的焊接機器人離線編程系統流程Fig.2 Flow chart of offline programming system for welding robot based on laser vision
該系統主要包括5個模塊:激光視覺模塊、離線自動編程及仿真優化模塊、焊接監控模塊、焊接參數發送模塊、通信模塊.
此次系統研制所用的激光視覺產品是加拿大賽融公司生產,本系統所使用的激光視覺產品由半導體線性激光發生器、帶濾光視覺傳感器(CCD)、高速圖像處理系統以及空冷裝置等輔助設備構成.激光與焊槍安裝位置如圖3.根據該系統的技術文件,可檢測的有效距離是59~199 mm,即焊絲至工件坡口內角的有效距離為17~157 mm,激光視覺傳感器和焊槍的夾角為15°,當焊絲與工件坡口內角的距離為80 mm時,通過三角關系可計算出激光條紋與焊絲的垂直距離:L=43.56 mm.離線編程時,將焊接起始點和以TCP坐標的Z方向偏移+80 mm,X方向偏移-43 mm,搜索的焊接結束點依據焊縫長度而定.

圖3 激光視覺傳感器與焊槍的位置關系Fig.3 Positional relationship between laser vision sensor and welding torch
確定激光傳感器的安裝位置后,通過自動標定法建立激光傳感器與機器人工具坐標之間的位置關系,以此為基礎進行坐標變換.如圖4,激光條紋反映了焊縫坡口的輪廓形狀,通過設定相機的算法及相關參數,如:坡口角度、角度容差、焊縫類型、間隙檢測等,焊接機器人便可獲取真實焊接作業環境中的焊縫中心位置數據,從而實現焊縫的尋位與跟蹤.

圖4 激光尋位Fig.4 Laser positioning
本模塊采用RobotMaster軟件實現機器人路徑優化及生成離線尋位程序.將工作站的三維模型導入到MasterCam中配置龍門架機器人工作站和焊槍,并校正了此仿真場景的外部軸和焊槍.
Robotmaster具有自動提取焊接路徑的功能,通過選擇焊接路徑和設置焊槍角度,生成焊接路徑.接著,通過設置偏移角度的正切角度和Z方向值對焊接路徑偏移,如圖5.

圖5 路徑偏移Fig.5 Path offset
焊接路徑設置后,進入龍門架焊接機器人工作站仿真界面,如圖6.激光視覺傳感器的安裝位置位于焊槍TCP的X軸正方向的正前方,故需將焊槍TCP的X軸正方向與尋位路徑正方向一致.通過Robotmaster的軸配置設置為Z軸不旋轉、工具旋轉設置一定角度,使焊槍TCP的X軸正方向與尋位路徑正方向一致.

圖6 仿真運行Fig.6 Simulation run
在現場,機座典型接頭根據離線編程的設計要求放置.將離線編寫的機器人焊接程序下載至機器人控制柜中,單步運行機器人至焊縫的編程起點位置時,測量該位置與實際的焊縫起點位置之間的偏差,如表1.根據表1的數據,仿真工作站與實際工作站TCP偏差較小,當工件位置發生變化時,影響較小.

表1 TCP偏差Table 1 TCP deviation
在實際機座應用中,經多次對比,離線自動編程效率相對示教編程提高約30%.
焊接監控模塊和參數發送模塊的實現,需完成上位機界面與下位機程序的開發.上位機界面的開發采用Delphi開發,下位機程序的開發采用C#開發.通信前,需設置機器人與上位機的IP地址和端口號一致.
2.3.1 焊接監控模塊的下位機程序及上位機界面
焊接監控模塊的下位機程序塊有:sock_conn(連接上位機的主程序名)、判讀讀寫是否異常、weld_data(獲取焊接參數的主程序名)、Cpos(獲取機器人當前位置的主程序名)、get_buffer(各種參數轉換成字符串并寫入buffer)、socket_write(發送的主程序名).其中,weld_data和get_buffer的程序如下:
代碼1 weld_data的代碼
Code1 Code for weld_data
GET_VAR(entry,′AWE1WP01′,′SCH[1].$FDBK_VOLTS′,volts,status);
GET_VAR(entry,′AWE1WP01′,′SCH[1].$FDBK_AMPS′,amps,status);
代碼2 get_buffer的代碼
Code2 Code for get_buffer
CNV_REAL_STR(lpos[1].x,5,3,buffer[1]);
CNV_REAL_STR(lpos[1].r,5,3,buffer[6]);
CNV_REAL_STR(volts,3,1,buffer[7]);
CNV_REAL_STR(amps,3,1,buffer[8]);
數據庫軟件采用Microsoft SQL Server 2008.焊接監控模塊的主要功能是實時繪制焊接電流、電壓變化曲線和保存焊接參數至數據庫中,如圖7.本系統是通過TCP/IP協議建立與機器人的socket通信,機器人實時發送焊接參數及機器人位置數據至上位機,上位機接收并保存焊接參數,便于焊后焊接質量的分析與改進.

圖7 機器人焊接監控系統界面Fig.7 Interface of robot welding monitoring system
2.3.2 焊接參數發送模塊的下位機程序和上位機界面
參數發送模塊的下位機程序,其主程序名是socket、get_parm、job_mode、set_parm,分別代表連接上位機、接收上位機發送的參數、設置工作模式、設置接收的參數.其中,get_parm和set_parm的程序如下.get_parm從上位機界面獲取的參數是八位字符串.
代碼3 get_parm的代碼
Code3 Code for get_parm
CNV_STR_INT(STR_VAR,INT_VAR);RWELD=INT_VAR DIV 1000000;INT_VAR=INT_VAR-ROUND(RWELD)*1000000;SCH=INT_VAR DIV 10000;
INT_VAR=INT_VAR-ROUND(SCH)*10000;
AMPS=INT_VAR DIV 100;
WSPEED=INT_VAR-ROUND(AMPS)*100;
代碼4 set_parm的代碼
Code4 Code for set_parm
SET_VAR(entry,str_rweld,str_sch+′.$CMD_AMPS′,amps,status);
SET_VAR(entry,str_rweld,str_sch+′.$CMD_WSPEED′,wspeed,status);
參數發送模塊的界面,如圖8.焊接參數以字符串的形式發送至機器人控制柜中.該方式發送焊接參數,相對于反復查詢工藝手冊的方式,效率明顯提高.

圖8 焊接參數發送界面Fig.8 Interface of welding parameter sendingm
通信模塊主要是實現主控計算機與機器人控制柜的通信,完成程序的傳輸、焊接參數的接收與發送等.機器人與主控計算機采用以太網通信,通信模式是TCP/IP協議,仿真后生成的離線程序,經修改編譯后,通過FTP下載至機器人控制器中.運行該程序,控制機器人運動并焊接.
根據焊縫類型和焊道,通過焊接參數發送模塊查詢待焊工件的工藝參數,確定焊道編號和焊道分別為01、01,通過以太網將焊接參數發送至機器人控制柜中;
通過RobotMaster離線編程軟件,對焊接起始點以TCP坐標的Z方向偏移+70 mm,X方向偏移-43 mm,仿真優化焊接路徑并生成離線程序,通過二次加工生成具有激光視尋位和多層多道焊功能的程序.編譯后,將程序以FTP通訊下載至機器人控制柜中.
經偏移試板,使焊縫的位置在三維空間中發生變化,再次運行程序,能精確定位焊縫位置并實時跟蹤.運行機器人完成底板與側板的焊接實驗,焊接效果如圖9.實驗表明:該技術能有效解決因工件位置發生變化,導致離線程序在焊接實行生產中不能正常使用,實現了焊縫的精確定位與跟蹤.

圖9 起始搜索點和焊接結果Fig.9 Initial search point and welding results
(1)本研究獲得的基于激光視覺的機器人離線自動編程系統,通過離線尋位程序和激光尋位系統,可有效解決因工件位置的不同,導致離線軟件不能在焊接生產中正常使用的問題,實現精確定位焊縫.
(2)本研究系統的焊接參數發送模塊和焊接監控系統模塊,是通過Delphi開發的上位機界面和C#開發的下位機程序共同實現的.其中,焊接參數發送模塊無需查找焊接手冊來確定焊接參數,可直接發送參數至機器人控制柜中,使得操作便捷;焊接監控系統模塊,能實時監控焊接參數及機器人位置,并保存焊接參數到數據庫中,便于焊后焊接質量的分析與改進.
(3)在柴油機機座生產中,應用本研究獲得的基于激光視覺的機器人離線自動編程系統,焊接生產效率提高30%以上.