李 偉,奚春彥
(1.中國科學(xué)院 研究生院,北京 10039;2.中國科學(xué)院 沈陽計算技術(shù)研究所,沈陽 110168)
在當(dāng)今迅猛發(fā)展的工業(yè)自動化時代里,越來越多的環(huán)節(jié)需要自動化程度更高的設(shè)備來完成,加之人工成本的不斷上升,工業(yè)環(huán)境更高要求,工業(yè)機器人的應(yīng)用大大提高了工作效率,節(jié)約生產(chǎn)成本,并且工業(yè)機器人是“高檔數(shù)控機床與基礎(chǔ)制造裝備”重大專項中重要的功能部件[1]。在工業(yè)機器人的應(yīng)用過程中,需要對應(yīng)用了機器人的加工生產(chǎn)線進(jìn)行調(diào)試,由于數(shù)控設(shè)備的價格昂貴,調(diào)試人員的誤操作可能會危及機床設(shè)備甚至操作者自身的人身安全。因此,先期的工作不適合在實際設(shè)備上運行。
機器人仿真系統(tǒng)作為機器人設(shè)計和研究中安全可靠、靈活方便的工具,具有重要的作用,它可應(yīng)用于機器人的許多方面[2]。仿真系統(tǒng)的應(yīng)用使調(diào)試人員在實際操作之前能在數(shù)控系統(tǒng)上進(jìn)行模擬操作,減少失誤以及提高工作效率。另外,對于剛接觸工業(yè)機器人的操作員來說,此系統(tǒng)可以提供與現(xiàn)實工業(yè)機器人幾乎相同的操作步驟,在操作員真正操作工業(yè)機器人之前,可以增加其操作的熟練程度,增加安全系數(shù)[3]。
本文基于GLS25 桁架自動化加工單元,設(shè)計了基于OpenCASCADE 的應(yīng)用了桁架機器人的數(shù)控加工生產(chǎn)線的仿真系統(tǒng),通過離線示教編程,模擬桁架機器人在數(shù)控加工生產(chǎn)線上的運動過程,在調(diào)試機器人之前,能夠檢測程序的正確性。避免了直接操作實體可能造成的事故和不必要的損失。
桁架機器人即直接坐標(biāo)機器人,由3 個相互垂直的移動運動軸(PPP 型)組成。一般情況下X、Y 軸為水平軸,Z 軸為垂直軸,而且三個軸都是主動軸,其自由度為3。桁架機器人的結(jié)構(gòu)如圖1 所示,由相互垂直的三個軸構(gòu)成空間直角坐標(biāo)系,空間中的任意一點即可用空間坐標(biāo)(x,y,z)來表示[4-5]。
圖1 桁架機器人結(jié)構(gòu)示意圖
其中GLS25 桁架自動化加工單元的運動軸為兩軸,其工作流程示意圖如圖2 所示,主要由以下幾部分組成:1 為雙面工件爪,2 為第一數(shù)控加工機床,3 為反轉(zhuǎn)盤,4 為工件盤,5 為第二數(shù)控加工加床。工件爪的移動方向如圖中方向所示。具體工作流程如下[6-7]。
圖2 GLS25 工作流程圖
①雙面工件爪移動到工件盤上方抓取未加工的工件。
②雙面工件爪將移動到第一數(shù)控加工機床,將工件放入卡盤,卡盤卡住工件,雙面工具爪松開工件,開始對工件進(jìn)行第一次加工。
③雙面工具爪移動到工件盤上方,如果下方有未加工的工件,抓取工件,如果沒有則工件盤轉(zhuǎn)動,將有未加工工件的一列轉(zhuǎn)動到工件爪下方,然后再抓取工件,如果工件盤已沒有未加工的工件則工作停止。
④移動到第一數(shù)控加工機床,卡盤松開工件,雙面工具爪未抓取工件的一面抓取已加工一次的工件,雙面工具爪翻轉(zhuǎn),重復(fù)②過程。
⑤雙面工具爪移動到反轉(zhuǎn)盤處,將已加工一次的工件反轉(zhuǎn)后再抓起。
⑥移動到第二數(shù)控加工機床,將已加工一次的工件放入卡盤,卡盤卡住工件,雙面工具爪松開工件,開始對工件進(jìn)行第二次加工。
⑦重復(fù)①~⑤過程
⑧移動到第二數(shù)控加工機床,卡盤松開工件,雙面工具爪未抓取工件的一面抓取加工完成的工件,雙面工具爪翻轉(zhuǎn),重復(fù)⑥過程。
⑨移動到工件盤,將加工完成的工件放入工件盤的一列中。
⑩重復(fù)上述過程。
OCAF 對于Open CASCADE 是一個其類庫的輔助工具,是一種基于Open CASCADE 的RAD(Rapid Application Development,快速開發(fā)工具)框架,為用戶(即開發(fā)人員)提供了一個快速開發(fā)的手段[8]。
首先利用OCAF 建立了一套獨立的支撐框架,這個支撐框架的主要作用就是為系統(tǒng)的建模模塊、可視化模塊及數(shù)據(jù)管理模塊等提供與模塊無關(guān)的底層支撐,這樣就實現(xiàn)了系統(tǒng)模塊化設(shè)計。在這個支撐框架的基礎(chǔ)上,完成了離線示教編程模塊、模型仿真模塊、運動仿真模塊、機器人語言編譯模塊的設(shè)計開發(fā)。系統(tǒng)中使用的類庫模型包括應(yīng)用框架、數(shù)據(jù)轉(zhuǎn)換類、建模數(shù)據(jù)類以及可視化類。其中每個類庫模型及其內(nèi)容如表1 所示[8]。
表1 類庫模塊及其內(nèi)容
基于GLS25 桁架自動化加工單元,仿真系統(tǒng)對桁架機器人以及數(shù)控加工生產(chǎn)線等物體建立初始實體模型,根據(jù)系統(tǒng)各組成部件的位置信息和幾何信息,形成加工環(huán)境的三維實體顯示,通過離線示教編程界面獲取調(diào)試程序,系統(tǒng)根據(jù)調(diào)試程序控制桁架機器人運動,從而檢測調(diào)試程序是否正確,并且輸出能夠應(yīng)用于數(shù)控系統(tǒng)上的G 代碼,同時能夠載入用戶編寫的G 代碼,通過運動檢測其正確性。仿真系統(tǒng)的整體設(shè)計如圖3 所示。
圖3 仿真系統(tǒng)整體結(jié)構(gòu)
2.1.1 界面以及控制指令
以MFC 的SDI(Single Document Interface)應(yīng)用程序為基礎(chǔ),通過向MFC 框架類中添加相應(yīng)的OpenCASCADE 類庫提供的相關(guān)方法,完成基于
OCAF (Open CASCADE Application Framework)的單文檔程序框架的設(shè)計,在此基礎(chǔ)上設(shè)計離線示教編程界面,離線示教編程界面如圖4 所示。
圖4 離線示教編程界面
根據(jù)數(shù)控系統(tǒng)的G 代碼,設(shè)計指令集如表2 所示。
表2 指令集合
2.1.2 數(shù)據(jù)的存儲
根據(jù)程序指令設(shè)計其數(shù)據(jù)結(jié)構(gòu),用于存儲離線示教編程的數(shù)據(jù)[4]。本課題設(shè)計了線性鏈表,方便控制指令的添加刪除。線性鏈表中每個節(jié)點的數(shù)據(jù)結(jié)構(gòu)如下:
根據(jù)每個命令參數(shù)設(shè)置其具體參數(shù)的數(shù)據(jù),具體參數(shù)的結(jié)構(gòu)如下:
根據(jù)桁架機器人的工作流程,將其模塊化,運動部分為雙面工件爪、工件盤、反轉(zhuǎn)盤,每個必須單獨進(jìn)行建模仿真;而支架、數(shù)控加工機床為非運動模塊,可將其作為整體建模[9]。
OpenCASCADE 能夠自己創(chuàng)建一些基本模型,本課題通過自己創(chuàng)建模型,然后將其導(dǎo)入到本課題中使用。通過UG,對桁架機器人及其生產(chǎn)線進(jìn)行建模仿真,將模型導(dǎo)出為IGES 格式。在系統(tǒng)中通過OpenCASCADE 類庫模型中的數(shù)據(jù)轉(zhuǎn)換類中的接口函數(shù)將IGES 格式文件轉(zhuǎn)換為OpenCASCADE 能夠使用的模型文件。其過程為:載入文件、檢查文件一致性、設(shè)置轉(zhuǎn)換參數(shù)、完成模型轉(zhuǎn)換、提取轉(zhuǎn)換結(jié)果。
通過設(shè)計的指令集,在系統(tǒng)內(nèi)部進(jìn)行判斷編譯。首先獲取存儲數(shù)據(jù)的數(shù)據(jù)鏈表,然后通過遍歷鏈表[6],檢查每個節(jié)點的命令標(biāo)識,根據(jù)不同的命令標(biāo)志,進(jìn)行相應(yīng)的處理。根據(jù)每次處理的不同,將相應(yīng)的G 代碼添加一個字符串變量中,最終將其寫入文件,此文件能夠被數(shù)控加工系統(tǒng)讀取。同時本系統(tǒng)也可以載入其他符合格式的G 代碼文件,并通過運動檢驗其正確性。其偽代碼為:
桁架機器人為3 自由度機器人,本系統(tǒng)的桁架機器人只有兩軸,故在空間上只設(shè)計Y 軸以及Z 軸坐標(biāo)[10]。
在Y 軸運動方向上設(shè)計6 個關(guān)鍵點,依次為雙面工具爪??吭c(非零點)、第一加工點、反轉(zhuǎn)點、抓取工件點、下料放置點、第二加工點。離線示教編程過程中,當(dāng)要添加直線運動操作時,會要求輸入運動終點Z 以及Y。此時會對此點進(jìn)行判斷:當(dāng)Z 不為零時,Y 的位置必須為上述六個關(guān)鍵中的后五個點,否則判斷示教程序錯誤;當(dāng)Z 為零時,Y 的值不能超過系統(tǒng)預(yù)設(shè)的最大運動范圍,否則運動越界,示教程序錯誤。圖為運動仿真效果圖5 所示。
圖5 運動仿真界面
本文基于OpenCASCADE 設(shè)計并實現(xiàn)了桁架機器人應(yīng)用于數(shù)控加工生產(chǎn)線的仿真系統(tǒng)。用戶可以利用本系統(tǒng)進(jìn)行離線示教編程,仿真出桁架機器人運動過程,能夠方便調(diào)試人員調(diào)試桁架機器人控制系統(tǒng)。本系統(tǒng)已成功測試桁架機器人控制程序。今后的開發(fā)工作中,在對模型仿真有初步研究的基礎(chǔ)上,結(jié)合硬件數(shù)控信號的操作,建立完善的加工仿真系統(tǒng)。
[1]楊書評,宮迎輝,王海丹,等. 機器人自動化及生產(chǎn)線關(guān)鍵標(biāo)準(zhǔn)研究[J]. 制造業(yè)自動化,2010,8(32):191-193.
[2]陳素麗,任福深. 基于OpenGL 的弧焊機器人仿真設(shè)計[J]. 科學(xué)技術(shù)與程,2012,12(3):1671-1815.
[3]彭健鈞,郭銳鋒,張世民,等. 數(shù)控加工仿真系統(tǒng)的研究與應(yīng)用[J]. 小型微型計算機系統(tǒng),2010,(6):1241-1244.
[4]劉軍. 開放式直角坐標(biāo)機器人運動控制系統(tǒng)研究[D].天津:天津大學(xué),2010.
[5]楊春華,黃朝志. 基于OpenGL 的機器人數(shù)控作業(yè)的仿真[J]. 微計算機信息,2004,20(5):120-121.
[6]張新予,匡以順. 一種桁架機器人的機構(gòu)設(shè)計及實現(xiàn)[J]. 裝備制造技術(shù),2008(7):57-58.
[7]劉丹陽,化春雷,李焱,等. FANUC 0iD 數(shù)控系統(tǒng)在自動生產(chǎn)線中與桁架機器人通訊[J]. 機床電器,2011(5):16-18.
[8]張淵. 基于Open CASCADE 的虛擬三維建模平臺的開發(fā)[D]. 濟(jì)南:山東大學(xué),2007.
[9]蔣先剛,涂曉斌. 三維模型圖形接口程序設(shè)計[J]. 微計算機信息,2007,23(12-1):291-293.
[10]Zhang Wenxiang,Zou Fengshan,Qu Daokui,Xu Fang.Research of Key Technologies on 3D Simulation System of Industrial Robot[C]. Proceedings of the 7th World Congress on Intelligent Control and Automation,2008,565-568.