劉建星 陳淑玲 蘭志鵬 龔本強 邢紅義
摘 要:CAD是目前工業(yè)設計時必須使用的設計手段,可以說工業(yè)設計離不開CAD,AutoCAD是歷史最悠久的CAD系統(tǒng)。DXF是AutoCAD的一種矢量圖形交換文件,有兩類存儲格式:ASCII格式和二進制格式,ASCII格式具備良好的可讀性,DXF已被廣泛使用,絕大多數(shù)CAD軟件都能讀入或輸出DXF文件。DXF文件由多個Section(段)組成,每個Section描述一個矢量元素,DXF是完成產(chǎn)品設計后,進行機器人加工軌跡規(guī)劃的優(yōu)選手段之一。工件坐標系是工業(yè)機器人系統(tǒng)里以工件為參照所建立的直角坐標系,ABB工業(yè)機器人工件坐標系是很完善的坐標系轉(zhuǎn)換,包括了坐標平移和旋轉(zhuǎn)。有了工件坐標系,有了產(chǎn)品設計的DXF,進行工業(yè)機器人TCP(工具中心點)軌跡規(guī)劃就很方便了,可從DXF中提取軌跡的矢量特征,從而引導工業(yè)機器人實訓規(guī)劃軌跡循跡。自編軟件提取矢量特征切實可行,自主算法適用于教學。
關(guān)鍵詞:CAD與DXF格式;C++與矢量特征提取;RAPID編程;ABB工業(yè)機器人運動軌跡引導
1 引言
現(xiàn)代工業(yè)設計離不開CAD(計算機輔助設計)。AutoCAD是歷史最悠久且應用廣泛的CAD系統(tǒng),DXF格式是AutoCAD軟件系統(tǒng)的一種圖形交換文件,絕大多數(shù)CAD軟件都能導入和輸出DXF格式的文件。DXF是一種矢量數(shù)據(jù)格式,詳細描述了繪圖矢量的全部特征。DXF有兩種存儲格式:ASCII格式和二進制格式。其中,ASCII具有良好的可讀性,可使用眾多的文本編輯器查看和修改。
智能制造是現(xiàn)代制造業(yè)的發(fā)展方向和重要環(huán)節(jié)。柔性生產(chǎn)系統(tǒng)則是智能制造過程中無可替代的加工方法和制作手段。工業(yè)機器人(又稱機械手或機械臂)是柔性生產(chǎn)系統(tǒng)的關(guān)鍵設備。經(jīng)過多年的發(fā)展,工業(yè)機器人已具備:重復定位精度高、連續(xù)工作時間長、程序編寫簡單易行、配套設備齊全,是柔性生產(chǎn)過程中不可或缺的設備?,F(xiàn)代工業(yè)機器人系統(tǒng)已具備可自行定義的工件坐標系,它以工件的基準面為參考,是一種全面的坐標轉(zhuǎn)換,包括原點位移和坐標軸旋轉(zhuǎn),為我們的使用工業(yè)機器人提供了極大的便利。
一般來說,機器人的工作過程是對“機器人IO”、“TCP軌跡”、“工作節(jié)拍”,這三大要點的精準控制,做好了,就能使機器人優(yōu)質(zhì)高效的工作。如果加工路線都能發(fā)生偏離,那么,何以言優(yōu)質(zhì)加工。故此,軌跡規(guī)劃就是機器人優(yōu)質(zhì)工作的重要前提之一。有了產(chǎn)品設計圖,加工工件上各個加工軌跡點的相對位置就能準確定位,在工件坐標系下,進行工業(yè)機器人TCP的軌跡規(guī)劃就有章可循,定位準確。
C語言在1970年由Bell實驗室發(fā)明,結(jié)合了匯編語言和高級語言的優(yōu)點,代碼少、高效靈活、易移植。C++是C語言的拓展延伸。既能實現(xiàn)C語言的過程化程序設計,又能進行以抽象數(shù)據(jù)類型為特點的基于對象的封裝型程序設計。C++我們并不陌生,編程簡單易行,因此,我們可以自行編寫C++程序,從DXF文件中讀取產(chǎn)品設計圖中的軌跡矢量特征,形成TCP運動軌跡引導文件。
RAPID編程環(huán)境是工業(yè)機器人的編程手段之一,ABB工業(yè)機器人就是采用RAPID編程環(huán)境進行機器人程序編制的,本文就是利用ABB機器人的程序?qū)CP運動軌跡引導文件進行解讀,根據(jù)TCP運動軌跡引導文件的數(shù)據(jù),實現(xiàn)機器人TCP運動軌跡引導。
2 相關(guān)技術(shù)
2.1 AutoCAD之DXF 與軌跡特征
AutoDesk CAD是AutoDesk公司開發(fā)的CAD軟件。是歷史最悠久的CAD軟件,也是應用最廣泛的CAD軟件之一。產(chǎn)品設計完成后,產(chǎn)品上各個點的相對位置就是已知的,不管是哪一種設計軟件,只要將產(chǎn)品設計圖輸出成DXF格式,我們就能進行機器人TCP的軌跡規(guī)劃與引導。
DXF是AutoCAD定義的圖形交換文件,是一種開放型數(shù)據(jù)格式,用于與其它軟件進行CAD設計圖形數(shù)據(jù)交換,DXF文件里包含了產(chǎn)品軌跡特征,絕大多數(shù)CAD系統(tǒng)都能導入和輸出DXF格式文件。DXF有二種存儲格式:ASCII格式和二進制格式。本文只討論ASCII格式。
ASCII格式的DXF文件由幾個“段”組成,其基本元素是“數(shù)據(jù)對”,若干“數(shù)據(jù)對”組成一個“段”。“數(shù)據(jù)對”由“組碼”和“組值”組成,“組碼”和“組值”各自獨占一行?!敖M碼”是正整數(shù)型字符串,“組值”是實數(shù)型或文本型字符串。
一般來說,一個DXF文件包括“標題(HEADER)”段、“類(CLASSES)”段、“表(TABLES)”段、“快(BLOCKS)”段、“實體(ENTITIES)”段、“對象(OBJECTS)”段及“EOF(文件結(jié)束)”標志組成。
組碼“0””和字符串“SECTION”為段頭,組碼“0”和字符串“ENDSEC”為段尾。組碼“2”和段名(如HEADER、ENTITIES等等)聲明本段的作用。
特別說明:與本文相關(guān)的是“實體(ENTITIES)”段,本段描述了軌跡的相關(guān)數(shù)據(jù),如:軌跡的類型(直線、圓弧線、圓形)、軌跡特征點的坐標值。根據(jù)這些特征值就能實現(xiàn)對機器人的TCP軌跡引導。
2.2 工業(yè)機器人
現(xiàn)代工業(yè)機器人具備重復定位復精度高、連續(xù)工作時間長、程序編寫簡單易行的優(yōu)點,是柔性加工系統(tǒng)的優(yōu)選設備。在所有加工過程中,加工軌跡直接影響加工質(zhì)量,因此,機器人的軌跡規(guī)劃是機器人編程工作的重中之重。
2.2.1 工業(yè)機器人的工件坐標系
絕大多數(shù)工業(yè)機器人都提供了可由用戶自行定義的工件坐標系,這是一個完美的坐標轉(zhuǎn)換功能。用戶可以以待加工產(chǎn)品(即工件)的基準平面來定義工件坐標。這個工件坐標系與機器人的安裝位置無關(guān),必須在機器人的可達范圍內(nèi),只與工件的擺放位置相關(guān)。
定義工件坐標系時,需要選定坐標系原點、確定X軸和Y軸的方向??梢远x多個工件坐標系,在機器人工作時按需使用;自行定義的工件坐標系可以在機器人基座標系里實現(xiàn)偏移和旋轉(zhuǎn)。
使用已完成定義工件坐標系時,機器人控制器自動進行坐標系轉(zhuǎn)換,根據(jù)坐標系轉(zhuǎn)換的計算結(jié)果,實現(xiàn)機器人TCP的運動軌跡控制。
2.2.2 工業(yè)機器人TCP軌跡規(guī)劃
本文擬采用:從產(chǎn)品設計圖輸出DXF文件,在DXF文件里,提取軌跡特征,根據(jù)軌跡特征,進行TCP運動軌跡控制,實訓TCP軌跡規(guī)劃。
DXF文件里的軌跡特征皆是以產(chǎn)品設計時的基準面為參考的,因此TCP軌跡規(guī)劃以產(chǎn)品設計的基準參考面來實現(xiàn)才能更精準;前節(jié)所述的工件坐標系可為我們實現(xiàn)軌跡規(guī)劃提供極大的幫助。
2.2.3 工業(yè)機器人編程
工業(yè)機器人自帶程序編輯器,提供了直線運動指令、圓弧運動指令。直線與圓弧軌跡直接使用運動指令,復雜圖形(如橢圓)則采用短直線段多次逼近來模擬。
2.3 C語言
C語言是目前很常見的一種計算機編程語言。具備跨平臺通用性強、編譯方式簡單易行、生成后機器代碼少的特點。
本文以Microsoft的Visual Studio 2019中的VC++為編譯平臺,自編程序,實現(xiàn)DXF軌跡特征提取。
3 軟件設計
C語言開發(fā)平臺采用Microsoft的Visual Studio官網(wǎng)提供的免費Community版[1]。
關(guān)于VC++的詳細內(nèi)容可參考相關(guān)資料[2]。
關(guān)于DXF的內(nèi)容可參考相關(guān)資料[3][4]。
關(guān)于工業(yè)機器人的內(nèi)容可參考相關(guān)資料[5][6]。
CAD軟件早已廣泛應用于工業(yè)設計,因此,產(chǎn)品設計與DXF文件生成本文不作討論。本文只闡述DXF特征提取和機器人TCP軌跡規(guī)劃。
3.1 提取軌跡特征
DXF文件包含了產(chǎn)品設計時的圖層、線型、視窗、輪廓等等。這些都是產(chǎn)品的關(guān)鍵特征,我們進行機器人TCP軌跡規(guī)劃與引導時,只需要軌跡特征。因此,我們只需要將軌跡特征提取出來,利用軌跡特征進行軌跡規(guī)劃。
DXF文件軌跡特征簡述:
說明:每對雙引號內(nèi)的字符獨占一行,小寫字母d代表十進制數(shù)字。
“2”和“ENTITIES”:本段為實體段;
“100”和“AcDBLine”:直線軌跡特征數(shù)據(jù)開始;
“10”和“ddd.dd”:直線段起點X坐標;
“20”和“ddd.dd”:直線段起點Y坐標;
“30”和“ddd.dd”:直線段起點Z坐標;
“11”和“ddd.dd”:直線段終點X坐標;
“21”和“ddd.dd”:直線段終點Y坐標;
“31”和“ddd.dd”:直線段終點Z坐標;
“100”和“AcDBCircle”:圓形軌跡特征數(shù)據(jù)開始;
“10”和“ddd.dd”:圓心X坐標;
“20”和“ddd.dd”:圓心Y坐標;
“30”和“ddd.dd”:圓心Z坐標;
“40”和“ddd.dd”:圓半徑;
更多特征描述,可參考DXF的相關(guān)資料[3][4]。
知道了軌跡特征的含義,從ASCII格式的DXF文件中提取就簡單易行了,自行編寫一個小程序即可。
軌跡特征提取流程圖見圖1:
3.2 軌跡規(guī)劃
自行編寫軌跡規(guī)劃輔助程序從特征文件生成引導數(shù)據(jù)。簡單圖形,如直線線段、圓弧線段、圓形圖形可直接應用移動指令進行軌跡引導;復雜圖形,如橢圓、樣條曲線,則需依據(jù)設計公差進行多線段逼近。
軌跡規(guī)劃的所有目標點的坐標值皆以工件設計數(shù)據(jù)為依據(jù),與機器人坐標無關(guān),進行機器人引導時,必須在工件坐標系里進行。
參考DXF文件格式,根據(jù)已提取到的軌跡特征文件,自定義軌跡引導文件;根據(jù)機器人移動指令的特點,軌跡引導文件格式如下:
(1)以ASCII格式存儲,便于識別;(2)以數(shù)據(jù)組的形式組成機器人運動引導數(shù)據(jù),便于機器人程序編程;(3)一個引導數(shù)據(jù)組獨占一行,行首字母代表運動方式,后續(xù)若干運動參數(shù)。(4)引導參數(shù)以半角逗號“,”為參數(shù)分隔符、以半角分號“;”為數(shù)據(jù)組終止符。(5)L代表直線段軌跡,后續(xù)行為3個實數(shù)數(shù)值,分別代表X、Y、Z軸坐標值;(6)C代表圓弧,后續(xù)行為6個實數(shù)數(shù)值,分別代表2個(圓?。c的X、Y、Z軸坐標值。(7)復雜圖形采用多線段逼近。(8)引導文件只包括軌跡數(shù)據(jù)。節(jié)拍控制、工具指向等,在機器人編程時完成。
生成引導數(shù)據(jù)流程圖,見圖2:
3.3 RAPID編程實習機器人運動引導
有了機器人TCP運動軌跡的引導數(shù)據(jù),根據(jù)引導數(shù)據(jù)指定的運動方式和參數(shù),正確調(diào)用機器人運動指令,以中間變量傳遞運動指令參數(shù),即可實現(xiàn)機器人TCP運動軌跡的引導。
從引導數(shù)據(jù)文件的第一行開始,每讀入一行引導數(shù)據(jù)進行一次運動引導,至最后一行結(jié)束;根據(jù)設計要求,在需要的時候,插入工作過渡點、插入節(jié)拍控制、IO控制指令等。
如:
在第一個軌跡循跡結(jié)束,移至非連續(xù)的下一個軌跡起點時,就需要離開加工面,避開可能干涉的區(qū)域,然后,再移至下一個軌跡起始點。這個過程就需要添加一些移動指令;
節(jié)拍控制和IO控制也不能在DXF文件里體現(xiàn)出來,只有在RAPID編程環(huán)境下添加。
4 結(jié)語
(1)DXF格式的產(chǎn)品設計圖包含了易提取的軌跡特征,可用于工業(yè)機器人的軌跡規(guī)劃。(2)自編寫程序從DXF文件里快速提取軌跡特征,忽略與軌跡無關(guān)的數(shù)據(jù)。(3)機器人的移動指令不能完全擬合軌跡,需在加工公差范圍內(nèi)采用短直線段逼近。(4)RAPID編程環(huán)境可實現(xiàn)利用軌跡特征的圖形交換文件進行機器人TCP的軌跡引導。(5)非連續(xù)軌跡間的過渡移動指令需另行添加。(6)機器人IO控制、節(jié)拍控制指令需另行添加。
參考文獻:
[1]Visual Studio官網(wǎng):https://visualstudio.microsoft.com/zh-hans/downloads/.
[2]明日科技.Visual C 從入門到精通。清華大學出版社.
[3]DXF文件分析:https://wenku.baidu.com/view/ab13d7fcd5bbfd0a78567311.html.
[4]DXF組碼址:https://wenku.baidu.com/view/739eda482e3f5727a5e962a8.html?sxt s=1563506815490.
[5]葉暉,管小清.工業(yè)機器人實操與應用技巧.機械工業(yè)出版社.
[6]龔仲華,龔曉雯.ABB工業(yè)機器人編程全集.人民郵電出版社.