趙鳳申
(南通航運職業技術學院 機電系,南通 226010)
工業機器人以其高效、焊接質量穩定等特點,在工業生產中代替人力完成焊接、搬運、噴涂等繁重、重復性勞動工作。為提高作業效率,多采用在線示教編程,該方式主要針對圓弧、直線等簡單作業軌跡,對復雜曲線(如相貫線等)只能通過人為設定多個控制點實現運動軌跡的近似擬合,其實際運動軌跡與理論曲線的重合度受控制點數量和插補方式的影響,而較多的控制點則需要較多的設備調整和程序錄入時間,造成實際焊接效率低下,且焊接質量受到操作人員主觀因素、技術水平的影響。為解決在線示教對復雜曲線等作業任務適用性一般的問題,需要借助離線編程方法,即由計算機完成工件、機器人的三維模型構建,并采用適當的算法完成路徑規劃并生成作業文件,傳送至計算機執行,提高作業質量和效率。
本文在UG中利用UG/Open二次開發功能,建立安川工業機器人和工件的三維模型,通過在UG中拾取關鍵點并獲取精確坐標,計算出曲線的解析式,然后經由通訊協議驅動機器人連續運轉,完成焊接過程。
UG軟件功能強大,能夠接受多種格式的三維工件模型,并提供了高效的UG/Open二次開發接口,因而對于工件與機器人模型建立和虛擬仿真十分方便。
UG/Open有外部和內部兩種運行模式,內部模式在程序被加載到UG系統分配內存后,作為子進程長駐內存,并可以通過UG的交互界面獲取和創建模型,通過圖形窗口查看運行結果,外部模式則為一個獨立的可執行程序,多用于數據管理而非幾何操控。本設計采用內部模式,在Visual C++中利用向導建立輸出為DLL的工程文件,并修改入口函數名為ufusr()作為入口函數[1]。
用戶界面采用可視化工具UIStyler模塊,UIStyler提供了強大的UG風格界面設計,系統可以自動生成與對話框對應的C語言模板文件,方便用戶調用,實現UG與用戶程序的無縫銜接。
通過UG的用戶界面編輯器進入UIStyle模塊,點擊添加各種控件圖標并修改其位置參數即可完成用戶界面的構建。通過設置控件的標識符并在控件屬性對話框中設置回調函數,即可實現在控件的各種事件響應。保存該用戶界面后,系統自動生成對話框、模板和頭文件(.dlg、.c和.h文件),使用UF_STYLER_create_dialog()函數完成對話框調用,并修改、補充.c文件中的對應函數,實現控件事件響應。
在進行機器人運動仿真前,必須進行實體模型的裝配,在裝配模式下,由于機器人逆向運動學的多解性等原因,實體模型只能作UG 的Motion Simulation動力學分析, 無法實現給定路線運動仿真,造成視覺效果偏差。因此,本文按照裝配體的形式用“實體移動法”將各個部件裝配在一起組成一個整體[2],通過程序進行坐標變換改變每個關節連桿的位姿,實現當前關節及其后續關聯關節的旋轉,最終形成一個整體上視覺效果和實體機器相似的虛擬機器人,實現二者的同步運轉。
首先使用UF_PART_new()生成裝配文件并獲得該裝配文件的標識(tag),然后利用UF_ASSEM_add_part_to_assembly()函數將各部件添加到裝配體中并獲得各部件實例(Occurrence),由于部件添加時是以各自部件的工作坐標系為基準,為保持各關節的相互關系有兩種方式:一是若各個關節旋轉中心與其工作坐標系坐標原點重合,在使用前述函數添加部件時,設定形參origin[3]和csys_matrix[6]數值改變部件在裝配文件的初始位置和姿態;二是在UG中建立部件文件時,以實體機器人的基座坐標系作為UG中各部件的工作坐標系,各部件模型與工作坐標系的相互位置關系依據其在實體機器人中與基座坐標系的關系而定,只要添加各部件即自動“裝配”成了工業機器人。本文采用第二種方式,實際裝配效果如圖1所示。

圖1 “裝配”出的虛擬機器人
機器人各關節及其后續關節的運動采用UF_ASSEM_reposition_part_occurrence()函數并引用該部件的實例完成,其參數xform[4][4]即為部件繞著繞旋轉中心點各個軸旋轉特定角度對應的變換矩陣。由于旋轉中心和旋轉軸線方向受前級各關節運動的影響,因而必須計算出前級各關節旋轉后新的旋轉中心和軸線方向。根據機器人正向運動學和UG/Open的API函數,按照如下流程實現矩陣生成和關節運動:根據機器人DH參數、旋轉中心和旋轉角度,由UF_MTX4_rotation()生成旋轉矩陣,然后利用UF_MTX4_multiply()將該旋轉矩陣與平移矩陣相乘,得到單關節最終變換矩陣,然后將該變換矩陣與前級關節最終變換矩陣利用UF_MTX4_multiply()函數相乘,得出該關節的最終變換矩陣,以供后級關節運動變換使用。由于某關節的最終變換矩陣影響了次級所有關節的運動,因而需要在函數UF_ASSEM_reposition_part_occurrence()中依次引用各次級關節的實例,完成關節位姿變換。
對于復雜曲線,本設計中采取提取若干關鍵點坐標,根據曲線解算出未知幾何參數,進而構建曲線方程。其中關鍵點坐標的獲取采用uc1616()函數,在彈出點構造器后選取關鍵點,其最后一個參數的返回值即為該點在工作坐標系的坐標值。
實體機器人型號為安川SSF2000,該機器人主控制器與PC機遵循MotoCom32協議,可通過以太網或RS485總線進行通訊,用戶只需要調用其動態連接庫(DLL)文件中的相應函數即可與主控制器通訊,實現機器人的狀態讀取和命令發送。
在示教盒切換至遠程(REMOTE)模式下,PC機依次使用BscOpen()、BscSetEther()建立通訊文件、設定網絡參數,通過函數BscConnect()完成與主控制器的連接,由BscServoOn()、BscServoOf()完成伺服上電、斷電操作,由BscIsLoc()讀取機器人關節碼盤數值,使用BscPMovj()指定機器人以關節運動方式運動到特定位置,或使用BscImov()使機器人在直角坐標系下以增量方式運動。通過BscWriteIO()函數完成對主控制器的IO操作,利用BscSelectJob()和BscStartJob()調用焊接文件實現起弧、收弧以及焊接參數設定[3]。
由于復雜曲線參數較多,因而需要根據其未知參數數量指定若干關鍵點,通過使用uc1616()函數,獲取特征點的坐標值,作為已知量,帶入曲線方程,進而解出曲線的未知數。本文以工程中常見的相貫線為例進行說明,一個典型的正交相貫線如圖2所示,其中水平圓柱體直徑為R,垂直圓柱體直徑為r,兩圓柱體軸線相交于點O(x0,y0,z0),則在圖示坐標系下,相貫線的方程為:


圖2 相貫線示意圖
因而,只需要在UG中獲得其交點O的坐標值以及半徑R、r,就可以解算出該相貫線的曲線方程。采用UG Open中的uc1616()函數產生點構造器并拾取交點,獲得軸線交點O的坐標值。在選定圓柱體后,由函數UF_MODL_ask_cylinder_parms()獲取其直徑。
由于機器人接受的基本運動模式指令只有點位、直線和圓弧,這三種模式都以位置坐標作為路徑規劃參考,因而必須采用一定的插補方式完成相貫線路徑擬合。點位模式下兩點之間的軌跡按照廠家預設的優化方式實現,用戶無法選擇,圓弧運動指令則需要較多的點才能構成圓形軌跡。為提高程序效率,本設計采用直線插補模式,即相貫線的一段圓弧之間用直線連接,因而必然產生一定的路徑偏差,且該偏差與圓弧曲率半徑相關,為防止偏差過大,需要根據相貫線曲率半徑調節擬合圓弧端點位置,曲率半徑與圓心角誤差關系如圖3所示,以軌跡誤差為0.1為例,則對應的圓心角為:

以R=100為例,α為5.125°,整個圓周只需要將劃分為約71次即可,具有較高的執行效率。以α角作為式(1)中參量t的增量值,求出各關鍵點的坐標。

圖3 圓弧曲率半徑與插補誤差關系

圖4 相貫線曲率半徑隨r/R變化圖
針對實際相貫線,需要計算出其最小曲率半徑值。按照文獻[4]所述方法計算曲率半徑解析式,由于其極值符號解較為復雜,實用性不強。本設計中,依據不同r/R比值,繪制出曲率半徑圖如圖4所示。圖中R=100,沿著圖中箭頭①②方向r/R的比值依次從0.10~0.95。由圖4可見,根據r/R比值不同,最小曲率半徑出現的位置和寬度各不相同,實際使用中只要根據r/R的比值即可估算出最小曲率半徑出現的位置和寬度,在該段范圍內,使用最小曲率半徑值代入(2)式計算出角度增量值α。
本實驗室機器人未配備良好的工裝夾具,機器人本體與工件間的相對坐標待定,而規?;?、標準化設計的生產線則可避免此類問題。為克服此問題對實驗效果造成的影響,在將經過線切割的相貫線接口管子放置于V型架后,調整實體機器人末端至管子定位點(本設計為切割時人為切割的中點)并獲取該點坐標,在UG軟件中按照實際工件位置調整虛擬工件模型,然后利用前文所述方式拾取模型上的相貫線關鍵點,進而生成相貫線模型,并驅動虛擬機器人和實體機器人同步運轉。
圖5為實際運行截圖,可以看出二者姿態是一致的。圖6為機器人實際焊接的焊縫,可見其軌跡重合度較高,焊縫質量較好,證實了前文方案的有效性,其結束點的焊瘤是由于收弧時人為設定的停留時間過長而造成的,可以避免。
本文開發的基于UG/Open的離線編程系統,通過對實體機器人通訊控制,避免了復雜曲線在線示教的低效率問題,充分利用了虛擬仿真和實體結合的手段,實現了機器人的遠程虛擬示教,實際運動路徑與理論路徑重合度較好,初步解決了復雜曲線的路徑規劃實現問題。

圖5 虛擬、實體機器人的同步運動

圖6 實際焊縫圖
當然,系統還有需要進一步完善之處,如焊接參數、焊槍姿態調整和優化、避免外置焊槍與工件碰撞、焊槍與機器人自身干涉、“橫焊”“立焊”策略等問題都需要進一步研究,以提高系統的適用性。
[1] 侯永濤,丁向陽.UG/Open二次開發與實例精解[M].北京:化學工業出版社,2007.
[2] 孔凡斌,姜培剛,等.基于UG Open C的FANUC M-16iB/20工業機器人動態仿真[J].計算機應用于軟件,2008,25(6):169-170.
[3] MOTOCOM32 OPERATION MANUAL [Z].Japan:Yaskawa Electric Corporation,2008.
[4] 張學東.空間曲線的曲率計算方法[J].塔里木農墾大學學報,2002,14(2):39.