陳勝奮,謝明紅
(華僑大學機電學院,福建廈門 361021)
隨著科技的發展,工業機器人在很多方面得到了應用,例如焊接、裝配、運輸、包裝及產品檢驗[1]。但在將工業機器人直接利用來對工件進行成型加工,還是一個相對新的研究領域。目前國內制造業的發展飛快,廣泛地應用使用了CAD/CAM軟件,同時對復雜曲面或形狀工件的需求量日益增加。所以CAD/CAM生成的刀位文件已經在五軸數控機床上得到廣泛的應用,但對工業機器人來說卻相差甚遠,國內外研究現狀也是差距很大,目前,國內基本還是采用傳統示教方法[2]。所以將CAD/CAM的數據進行處理與加工機器人進行連接,這對工業機器人加工是非常必要的,可以輕松實現復雜工件加工。然而,加工機器人控制器一般不接受CAD/CAM等刀位數據,因此,國內外很多學者對特定環境下的NC代碼進行研究。如SMITSI等[3]對機器人離線編程的軌跡規劃和加工代碼進行研究,NETO Pedro等[4]提出一種新的基于CAD的離線機器人編程解決方案。王引等人[5]對將G代碼的數據信息轉化成虛擬刀具5個點的坐標進行研究。總之研究一種能將刀位文件轉換為工業機器人工作語言的后置處理器,將會開辟工業機器人應用新的領域,極大推動國內工業行業的發展。
數控加工中的刀位文件中的加工信息數據是以工件坐標系為參考基準即加工坐標系,并沒把具體的加工設備結構及其他參數考慮進去。因此后置處理器的任務就是通過讀取CAD/CAM軟件處理生成的刀位文件,然后根據加工設備的一些具體參數,運動特性及控制指令格式,進行坐標系變換,逆運動學求解,解的唯一性選擇,最后生成加工設備可以讀取的數據文件[6]。加工機器人的后置處理流程如圖1所示。

圖1 加工機器人的后置處理框圖
目前,機器人制造廠商所開發的機器人加工語言不盡相同,對坐標系的定義也不一樣。圖2是加工機器人末端執行器(刀具)方位進行定義。

圖2 機器人各坐標系名稱
利用PRO/E生成刀位文件[7]。PRO/E處理輸出的刀位文件包含工藝參數,刀心的位置矢量和姿態矢量以及其他指令。刀位文件中的坐標系是建立在工件坐標系上的,而工業機器人控制系統能夠識別的語言中數據是建立在機器人坐標系上的,并且只是關節的轉動角度。因此要開發一種根據工業機器人的結構參數,通過相應坐標的轉換,分離變量法求逆解,把刀具的位置矢量和姿態矢量轉換成工業機器人6個關節的轉動角度的后置處理器。
如圖2所示,OtXtYtZt為刀具坐標系,OwXwYwZw為工件坐標系,OX0Y0Z0為機器人基坐標系,OsXsYsZ為工作臺坐標系。當工業機器人擺放固定時,機器人基坐標系就固定不變,Z軸垂直于底座。工件坐標系是把工件上的某點當作坐標系原點從而建立的一個坐標系,這樣便于數據編程,這也是CAD/CAM生成刀位文件的參考坐標系,方向與基坐標系一致;刀具坐標系中刀尖點是其坐標原點,固定在刀具上,Z軸垂直于刀軸。工作臺坐標系是固定在工作臺上,當工作臺擺放固定時,工作臺坐標系也是固定的,方向與機器人基坐標系一致。安裝刀具,使刀具的軸線與第6軸的軸線重合。Om(軸4、軸5和軸6的交點)為刀具旋轉中心,顯然,目的就是把刀位文件中的數據即工件坐標系下的坐標,轉換為機器人基坐標系下刀具的運動,進而求出各個關節角的角度。
如圖2所示,在初始狀態下,工件坐標系和刀具坐標系的方向是一致的。刀具坐標系原點Ot到Om的向量為rm(0,0,l)。刀具在工件坐標系下的姿態矢量為u(i,j,k)和位置矢量rp(x,y,z)。
根據上述的坐標變換,可得:

POm是Om在工件坐標系下的坐標,POt是刀位點在工件坐標系的坐標即為u。a是刀軸單位矢量即為rp。
當工業機器人和工作臺安裝固定不動時,機器人坐標系與工作臺坐標系相對位置也就固定下來。當工件裝夾到工作臺上面時,工作臺坐標系和工件坐標系的相對位姿也可以確定。設機器人坐標系與工作臺坐標系相對位置為ro1(ex1,ey1,ez1),可以通過固定工件時得到工作臺坐標系與工件坐標系相對位置ro2(ex2,ey2,ez2),工件坐標系的方向與機器人的坐標系一致(可以通過裝夾做到)。工件坐標系和機器人基坐標系之間的轉換矩陣為

當機器人坐標系與工件坐標系不一致時,則需要在后處理過程中進行坐標變換。設工件坐標系相對基坐標系的旋轉矩陣M和平移矢量ro在機器人控制器中定義,編程時作為已知參數輸入。以POOm表示Om在機器人基坐標系中的位置,則映射關系如下:

同理可得aO表示刀軸在機器人坐標系下的姿態,則映射關系如下:

對于6自由度工業機器人,當最后3個關節軸相交于一點時,這樣是存在解析解,把這種求解稱為工業機器人的解耦。
通常用歐拉角來表示空間物體的姿態[8]。由于五軸數控G代碼對歐拉角的(α,β,γ)中的γ沒有給出(γ為刀具軸線旋轉方向),因此一般六自由度工業機器人對于五軸G代碼是冗余的。可以通過固定第6個軸的轉動(即θ6為0)來去除冗余。
如圖3所示,數控加工機器人最后3個關節軸相交于點O4,所以可以對點O4進行解耦,將6個關節軸分為(θ1,θ2,θ3)和(θ4,θ5,θ6)兩個部分,分別對這兩組解進行求逆解。

各個連桿的參數如表1所示。

表1 各個連桿的參數表

求取所需的逆解,可以采取分離變量法來求解。從前面可以知道,手腕的位置只與θ1,θ2,θ3角度有關,所以可以得到下式:

這樣可以求出θ1,θ2,θ3,再把θ1,θ2,θ3代入式(7)可以求出θ4,θ5,θ6。
對于6個自由度的工業機器人來講,逆解θi是通過反三角函數求得,而反三角函數解往往存在不只一個,所以關節角θi,i=1,2,…,6,是一般都存在多組解的。當對避障問題不進行考慮的情況下,文中所用目標函數D如下:

式中:li(i=1,2,3)是關節i直接驅動的連桿的長度。用計算“最短行程”解作為目標函數,使得選擇的解是體現每次轉動的位移最小。即D取到最小值時,θ1,θ2,θ3就是所求的最優解。
由于最后3個旋轉軸相交于一點,連桿長度為0,不能采用目標函數D。所以文中采用最優解是直接取代數均值來作為目標函數T。

這樣可以得到θ4,θ5,θ6的最優解。
由于機床結構參數都不相同,很難得到通用的加工代碼,但機床結構參數不影響加工時刀具的加工軌跡及姿態和通用信息,所以就可以用刀位文件來保存這些數據。不同CAD/CAM軟件生成的格式又不大相同。文中的刀位文件是由PROE軟件生成的,它包含了刀具的位姿狀態和一些指令信息,下面簡要介紹Proe刀位文件中的一些具體信息所代表的含義。

表2 PRO/E刀位文件命令符的功能
在讀取PROE刀位原文件的時候,先判斷讀到是否是標識符,否則就一直往下讀。直到出現標識符,提取標識符,繼續讀取文件遇到GOTO時開始記錄運算,然后就將接下來讀到的字符轉換成數據結構類型。轉換后就可以提取到GOTO后的位姿矢量數據,在讀到GOTO后面字符的時候,須把整個數據讀完。字符在刀位文件中是分兩行,獲得數據后就按照前面的得到的公式進行計算,得到最終所要的數據。然后再接著讀取后面的內容,重復此過程,直到出現標識符FINI就完成了整個刀位文件讀取和數據的轉換。用此種方式轉換一個原文件所需時間相對較短。而將整個刀位文件讀取后再轉換,這種方式所需的時間比上種方式多了很多。
G代碼后置處理包括刀位原文件文件的讀取,提取關鍵標識符,刀位坐標,刀軸姿態,然后將提取到的數據根據機器人的結構轉換成機器人各個關節的轉動角度,最后生成加工代碼。當然PROE刀位文件中也包含了一些冗余的信息注釋,在讀取的時候可以直接讀過去,例如MFGNO指令,這樣可以除去冗余信息。

圖3 后置處理流程圖
后置處理流程圖如圖3所示。
根據圖3的流程圖,可以定義一個結構體,用來存取工業機器人所需的加工代碼信息。
首先讀入刀位文件,提取刀位坐標及姿態和工藝等參數信息存放在對應后置處理前的變量里,應用運動學反解求出機械臂的各關節角,并存放在后置處理后的變量中,然后把計算后的結果顯示到界面,即可生成作業程序。
struct NODE
{
int Flag;//判斷G01還是G00
double Feed;//進給速度
int Speed;//保存主軸轉速
double x,y,z;//刀位文件中的刀位點坐標
double posture[3];//刀位文件中的刀具姿態
double post_x,post_y,post_z;//后置處理后的刀位點坐標
double post_posture[3];//后置處理后的刀具姿態
Float A,B,C,I,J,K;//機器人加工時各個關節角位置
};
代碼轉換過程是將APT文件讀入,讀取標識符,提取刀位數據、刀具參數、工藝參數等。利用刀位數據和工業機器人自身結構參數求解工業機器人的位姿矢量,然后再將運動參數求得機械臂各個關節角度。
打開軟件,點擊“讀取文件”按鈕,選擇要加工的刀位原文件代碼,在軟件界面上顯示如圖4所示。點擊“轉換”按鈕,進入刀位數據的后置處理,得到工業機器人加工代碼,在軟件上顯示圖5所示。

圖4 讀入刀位文件數據界面

圖5 機器人加工代碼生成界面
通過對CAD/CAM軟件生成的刀位文件數據進行分析,提取刀位數據信息及一些控制指令。結合6R機器人的結構,通過各坐標系之間的平移和旋轉變換,推導出工件坐標系下的刀位數據在機器人基坐標系下各個關節角度。結合各個關節角的最優解生成機器人加工代碼控制指令,最終達到控制機器人的運動目的。
[1]郭益友.工業機械手在機械制造工藝中的發展及應用[J].淮南職業技術學院學報,2002,2(1):36-38.
[2]許陽,劉建群,劉雷.基于CPAC的六自由度開放式機器人控制系統的開發[J].制造業自動化,2013,35(5):29-31.
[3]MITSI S,Bouzakis K-D.Off-line Programming of an Industrial Robot For Manufacturing[J].The International Journal of Advanced Manufacturing Technology,2005,26(3):262-267.
[4]NETO Pedro,MENDES Nuno.Direct Off-line Robot Programming Via a Common CAD Package[J].Robotics and Autonomous Systems,2013,61(8):896-910.
[5]王引,仇曉黎,劉明燈,等.基于NC代碼的工業機器人加工軌跡規劃研究[J].組合機床與自動化加工技術,2012(8):14-17.
[6]劉雄偉,張定華,王增強,等.數控加工理論與編程技術[M].北京:機械工業出版社,2000.
[7]葛衛京,杜娟,智紅英,等.Pro/E后置處理程序的研究[J].太原科技大學學報,2013,34(8):303-304.
[8]崔鯤,孫論強,吳林.V01弧焊機器人運動學反解及臂形標志的確定[J].機器人,1997,19(6):444-446.