蔡奕松,孫克爭,蘇澤榮,周雪峰
(廣東省智能制造研究所 廣東省現(xiàn)代控制技術重點實驗室,廣州 510070)
SolidWorks二次開發(fā)曲面離線編程及運動仿真①
蔡奕松,孫克爭,蘇澤榮,周雪峰
(廣東省智能制造研究所 廣東省現(xiàn)代控制技術重點實驗室,廣州 510070)
為了解決人手動示教提取曲面軌跡困難且操作繁瑣的問題,采用Visual Studio對SolidWorks軟件進行二次開發(fā)的方式進行機器人的曲面離線編程,并且以DLL插件的形式自動加載到SolidWorks中.系統(tǒng)通過將曲面進行UV參數(shù)化進而實現(xiàn)離線軌跡的快速提取和機器人控制代碼的生成,再以DH參數(shù)表示機器人模型,最后通過遍歷關節(jié)角的方式實現(xiàn)機器人的運動仿真.實踐證明,該系統(tǒng)離線編程生成的控制代碼能夠直接下載到機器人控制器運行并達到了實際預期的效果.上述系統(tǒng)對工業(yè)場合的實際開發(fā)應用和國內中小型企業(yè)快速加工多種零件具有重要的意義.
曲面離線編程;UV 參數(shù)化;DH 參數(shù);遍歷關節(jié)角
采用離線編程的方式,可以有效的解決手動示教編程提取曲面軌跡困難,省去繁瑣的重復性操作,減少編程開發(fā)和機器人停止作業(yè)的時間,仿真實際運行的效果,遠離機器人工作的區(qū)間,避免工作員調試操作的危險[1].同時還可以加工多種或者更加復雜的零件,實現(xiàn)多機器人交互式的運動仿真.
從70年代開始,國外就開始開展了對機器人離線軌跡規(guī)劃以及編程系統(tǒng)的研發(fā).從80年代以后,一些發(fā)達國家例如美國、德國、日本等在大學設立了專門的研究機構開展離線編程的研發(fā),取得了相當可觀的成果[2].國外的離線編程軟件有:加拿大的Robotmaster:以色列的 Robocad[3];瑞士的 Robot Studio[4];以色列的 Robot Works[5];俄羅斯的 SprutCAM;日本的WINCAPSII;意大利的 Robomove.
與國外離線編程系統(tǒng)在工業(yè)機器人方面的研究對比,國內研發(fā)起步較晚,最早起步于90年代.主要由各大高校自主創(chuàng)新研發(fā),例如,哈爾濱工業(yè)大學基于Motoman UP20工業(yè)機器人的離線編程系統(tǒng)和采用基于SolidWorks的二次開發(fā),實現(xiàn)解決機器人的放置的難題,焊接順序規(guī)劃和多臺機器人進行離線運動仿真的功能[6];華中科技大學用C語言編寫的基于微機的離線編程系統(tǒng)和采用C++語言編寫的HOLPSS離線編程系統(tǒng);南京理工大學用AutoCAD開發(fā)的HOLPS系統(tǒng);北京工業(yè)大學基于OpenGL的針對焊接應用的離線編程與仿真系統(tǒng);上海交通大學基于PC機利用OpenGL和Visual C++編寫開發(fā)的離線編程與動態(tài)仿真系統(tǒng)等等.另外中國科學院沈陽計算技術研究所在2016年提出基于win7利用Qt和OpenGL的串聯(lián)機器人離線編程系統(tǒng)[7].
近年來逐步有部分離線編程軟件商業(yè)化如由北京華航唯實針對于拋光打磨行業(yè)的應用RobotArt;由佛山羅庚開發(fā)的 Logen Robot Studio.
綜上所述,國內的離線編程系統(tǒng)功能相對國外薄弱,仍有相當大的差距.一方面,國內大部分的離線編程系統(tǒng)都是在單機器人系統(tǒng)基礎上,利用相關CAD平臺以及一些輔助的編程開發(fā)工具進行二次開發(fā),雖然有少部分是基于SolidWorks的二次開發(fā),但沒有形成完整的系統(tǒng),只能用于仿真而不能連接機器人本體,不能投入實際應用;另一方面,國外雖然有大量成熟完整的離線編程系統(tǒng)并且大部分已商業(yè)化,但普遍授權費用高昂.當然,國外也有基于SolidWorks二次開發(fā)的軟件,如 Robot Works,但通用性弱并且軟件授權費用高,軌跡設計能力比較弱,不適合國內中小型企業(yè).
本系統(tǒng)是基于 SolidWorks 2015 利用 Visual Studio 2010進行的二次開發(fā)[8],可以在離線的情況下對機器人的作業(yè)任務進行軌跡提取、代碼生成、運動仿真等.
系統(tǒng)主要分為三個模塊:
圖1 系統(tǒng)總體架構
(1)Shell程序模塊是基于 SolidWorks 2015 進行的二次開發(fā),采用 Visual C++語言.SolidWorks 是一款用Windows平臺開發(fā)的三維參數(shù)化軟件[9],并且由Visual C++語言編寫開發(fā),本系統(tǒng)采用Visual C++語言進行SolidWorks的二次開發(fā)可以直接調用SolidWorks的底層函數(shù),還可通過基于COM技術[10]用Visual Studio 2010開發(fā)的DLL程序直接嵌入到SolidWorks內部作為插件使用,便于參數(shù)的設計.這部分是本系統(tǒng)的重點設計程序,實現(xiàn)系統(tǒng)的功能:操作界面管理、代碼生成模塊設計、機器人軌跡提取、運動學分析和運動仿真等.
(2)共享內存管理模塊(Shared Memory)實現(xiàn)進程間的通訊,主要共享內存包含指令信息、數(shù)據(jù)信息、狀態(tài)信息.
(3)機器人在線控制則是基于 Robot Communication SDK,完成機器人通訊、信息交互等功能.
系統(tǒng)總體架構如圖1所示.
SolidWorks二次開發(fā)包括SolidWorks的API接口和SolidWorks的API對象模型.
SolidWorks的 API接口:在 SolidWorks二次開發(fā)中SolidWorks作為OLE自動化服務器提供的屬性和方法構成了SolidWorks的API[11];SolidWorks的API接口即COM接口函數(shù),可供支持COM編程的工具如Visual Basic、Visual C++6.0、Delphi等直接調用并開發(fā)所需程序模塊[12].
SolidWorks的API對象模型:最高級對象SldWorks,是所有訪問SolidWorks API對象的入口,也是所有類的父類對象,因此可以由它直接或者間接地方式去訪問其子類對象,進而訪問到對象中的屬性、事件和方法[13].SldWorks的子類對象主要有ModelDoc、Environment、Frame、SWpropertySheet、Modeler、AttributeDef等.其中一個非常重要的子類是文檔模型對象ModelDoc2,ModelDoc2對象成員如圖2所示.
圖2 ModelDoc2 對象成員
本系統(tǒng)用VC++進行SolidWorks二次開發(fā)工程生成步驟流程圖如圖3所示.
圖3 SolidWorks二次開發(fā)工程生成步驟流程圖
SolidWorks二次開發(fā)基本流程如圖4所示.系統(tǒng)利用 Visual Studio 2010 對 SolidWork2015 進行二次開發(fā).首先,將模型曲面離散成曲線;接著,通過 Icurve 類的GetTessPts函數(shù)和Isurface類的EvaluateAtPoint函數(shù)將曲線離散成坐標點和切向法向量;另外,坐標轉換到裝配體坐標(機器人基坐標系)主要通過Icomponent類的get_Transform2函數(shù)和ImathPoint類的ImultiplyTransform函數(shù)實現(xiàn);通過機器人運動學算法可正解算出機器人每一個關節(jié)的轉角,最后將機器人進行軌跡路徑的運動仿真,實現(xiàn)SolidWorks的二次開發(fā)技術.
圖4 SolidWorks 二次開發(fā)基本流程
機器人DH參數(shù)化主要是通過將機器人模型各個零件的坐標系統(tǒng)一建立在裝配體基坐標系上;建立ini文件,該文件名與裝配體文件名相同并放在統(tǒng)一后錄下,并在文件中添加節(jié):[DHPara](DH 配置參數(shù))和[LinkName](各個關節(jié)的名稱).這樣即可通過獲取ini文件的形式加載機器人模型配置參數(shù).按照圖5所示機器人在原點姿態(tài)的測量方法即可獲得機器人的DH配置參數(shù) a0,a1,a2,a3,a4,df.在實際加載機器人模型中,需要對機器人進行配置參數(shù)的初始化,使加載進來的機器人模型以原點姿態(tài)放置在工作站的原點位置.
圖5 機器人的原點姿態(tài)
操作界面管理負責管理離線編程過程中用到的各個按鈕及顯示等功能,主要分成工程管理區(qū)、模型管理區(qū)、軌跡生成、仿真后處理、在線控制區(qū)、手動操作區(qū)、軌跡編輯區(qū)、項后管理區(qū)、狀態(tài)顯示區(qū)這九部分.操作界面管理如圖6所示.
圖6 操作界面管理
其中,模型管理區(qū)主要負責機器人、工具、工件和底座模型的加載.為了提高系統(tǒng)的兼容性,適應更多品牌的機器人,系統(tǒng)通過獲取ini文件的形式加載各個模型配置參數(shù).相比瑞士ABB公司推出的只針對ABB機器人Robot Studio軟件,本系統(tǒng)具有更好的兼容性.
共享內存管理模塊主要是負責在人機交互界面和機器人在線控制程序之間傳遞控制機器人本體的各種指令信息、數(shù)據(jù)信息和狀態(tài)信息.共享內存管理架構如圖7所示.
圖7 共享內存管理架構
在人機交互界面的程序中通過函數(shù)CreatSharedMem開辟一定的共享內存空間并設定共享內存大小,然后獲取共享內存映射進而用函數(shù)ReadDataFromMem和函數(shù)WriteDataToMem實現(xiàn)共享內存數(shù)據(jù)的讀寫功能.
加載完所需的模型以及配置相關參數(shù)后,可進行離線軌跡的設計.機器人曲面離線軌跡的提取主要解決:平面曲線軌跡的提取和空間曲線軌跡的提取.一條曲線可以看成由∞條直線構成的,直線的參數(shù)化表達式為:
式中P為直線上的點,D為點的方向,因此可以用一個點和一個方向向量來表示直線;類似地,一個曲面其實可以看成由無數(shù)矩形的結構構成的,這樣曲面就有這三個方向:U、V、N(法線),即 UV 坐標系,UV 坐標系可以描述曲面上點的位置信息.通常用路徑與U對應,而截面與V對應.曲面也可以看成由∞條曲線構成的,每一條曲線都有U、V這兩個方向[14].這樣,同樣我們可以用一組U參數(shù)和V切向量的數(shù)據(jù)來表示曲線,即用U參數(shù)表示曲線的基本信息,V表示曲線某個位置的切向量參數(shù),也是機器人工具坐標系x軸運動軌跡的方向.
SolidWorks本身提供了豐富的API接口函數(shù)可供開發(fā)者調用[15],通過實例化調用的對象接口,即可獲取到模型的相關屬性、事件和方法等.
對于平面曲線軌跡的提取,先是通過ICurve接口獲取選取到的模型邊緣曲線的起始點和終止點,再通過GetTessPts函數(shù)獲取代表這條曲線細分的一組點即將曲線進行離散細分成點,并獲得這些點的切向量作為機器人工具x軸的方向,再獲得曲線上這些細分出來的點的U參數(shù),這樣就完成了平面曲線軌跡的提取.再將獲取到的點用ISketchPoint和ISketchSegment進行重新草繪即可獲得機器人的運動軌跡.最后通過正運動學解算出機器人的工具在該點的姿態(tài)即目標點的位置姿態(tài),從而實現(xiàn)機器人提取的軌跡點的運動仿真.平面曲線軌跡的提取流程圖如圖8所示.
對于空間曲線軌跡的提取,本論文只針對規(guī)則曲面空間曲線軌跡的提取.對規(guī)則曲面空間曲線軌跡的提取,采用等參數(shù)線法[16]將曲面進行UV參數(shù)化,即將曲面分割成由若干個等距不規(guī)則平面堆疊而成即轉化為提取若干個平面曲線軌跡的問題,通過循環(huán)迭代平面曲線軌跡提取的方法即可將規(guī)則空間曲線的軌跡提取出來.如圖9所示為曲面UV參數(shù)化效果.
圖8 平面曲線軌跡的提取流程圖
圖9 空間曲面 UV 參數(shù)化效果
離線軌跡點生成后,通過正運動學分析[17]即可解算出每個位置姿態(tài)軌跡點對應的機器人運動姿態(tài),機器人每個軸的姿態(tài)角通過MFC的滑條控件在關節(jié)空間節(jié)里面實時顯示出來,再通過OnTimer函數(shù)每隔一定時間遍歷一次關節(jié)角更新一個軌跡點姿態(tài),這樣就可以實現(xiàn)機器人工具在工件模型上的運動仿真.機器人運動仿真效果如圖10所示.
圖10 機器人運動仿真效果
代碼生成模塊負責設計并生成機器人控制代碼文件.代碼生成模塊主要由RobProgram類負責,都是在命名空間GiaRoboticLib里實現(xiàn)的.生成的機器人控制代碼包含工具坐標數(shù)據(jù)(ToolData類),工件坐標數(shù)據(jù)(ObjData 類),目標坐標數(shù)據(jù)(RobTarget類),控制指令數(shù)據(jù)(RobInstruct類)以及一些相應的數(shù)據(jù)名稱和固定的輸出格式.RobProgram類的成員關系如圖11所示.
圖11 RobProgram 類的成員關系
本設計中通過將生成的代碼保存為機器人控制器識別的有效文件,如ABB機器人控制器所需的mod格式的有效文件直接供機器人程序下載使用.
機器人在線控制主要實現(xiàn)人機交互界面與Robot Communication SDK之間控制信息的交互通訊,其功能包括連接機器人本體的控制器和加載機器人代碼.
本系統(tǒng)以啟動插件的形式調用.dll文件的方式來自動啟動系統(tǒng)程序,即將DLL映射到進程的地址空間中[18],實現(xiàn)調用DLL中的可執(zhí)行代碼和數(shù)據(jù)模塊的方法.SolidWorks每次運行時會自動裝載 DLL 文件,因而操作簡便,省去重復性的操作過程,進而減少開發(fā)的時間.
為了檢驗系統(tǒng)功能的可行性,采取在離線狀態(tài)下利用ABB IRB4600機器人拋光打磨金屬曲面的實驗對系統(tǒng)設計功能分別進行驗證分析.
本系統(tǒng)的功能是基于SolidWorks的二次開發(fā)技術進行研發(fā)設計的.首先,通過操作界面管理模塊對機器人、工件和工具等模型進行相關配置參數(shù)并且導入工作站;接著,通過對不同曲率曲線的金屬曲面軌跡的提取設計,并且將提取到軌跡點坐標通過代碼生成模塊生成機器人代碼文件,如ABB機器人控制器支持的mod格式文件;最后,通過機器人在線控制模塊將機器人代碼下載到機器人本體的控制器里,機器人控制器再用相關指令控制機器人末端工具按照離線的軌跡運行.另外通過共享內存管理模塊實時監(jiān)控到機器人各個關節(jié)的關節(jié)角變化.
實驗過程中利用打磨頭沿著提取到的空間曲線離線軌跡在金屬曲面進行打磨作業(yè)驗證空間曲線離線軌跡提取設計的正確性.空間曲線離線軌跡的提取和運動仿真如圖12所示.
圖12 空間曲線離線軌跡的提取和運動仿真
空間曲線離線軌跡實際運行如圖13所示.可以看到機器人實際運行中始終保持軸線垂直于曲面的法線N方向,與離線軌跡設計的軌跡點Z方向相符.
圖13 空間曲線離線軌跡實際運行效果
另外在拋光打磨過程中,單單考慮離線軌跡的提取還不夠,在保持恒力和恒定轉速的情況下,對打磨頭的選取也非常重要,圖14列出了利用離線軌跡不同后數(shù)打磨頭做了五組實驗的打磨效果,后數(shù)從左到右分別為 80、180、800、2500、10000.
綜上可得,打磨頭的后數(shù)越大即打磨頭的砂礫越細,可以打磨出更加精亮的效果,結合空間曲線離線的軌跡再配上適當?shù)暮髷?shù)的打磨頭,可以達到理想的拋光打磨效果.這樣,操作人員就可以在減少手動示教繁瑣操作和解決曲面復雜軌跡提取困難的同時,快速地進行相關的拋光打磨試驗,提高生產(chǎn)和研究的速率,達到理想的效果.
圖14 不同后數(shù)打磨頭打磨效果
與瑞士ABB公司自主研發(fā)的企業(yè)專用型Robot Studio離線編程系統(tǒng)相比,本系統(tǒng)具有與Robot Studio離線編程系統(tǒng)一些類似基本開發(fā)功能的同時,具有以下三點的性能優(yōu)勢:
(1)Robot Studio 是一款基于 RAPID 編程語言的離線編程系統(tǒng),只能與ABB機器人配套使用;本系統(tǒng)可以直接通過獲取機器人的DH參數(shù)兼容更多品牌的機器人,兼容更多編程語言的離線編程系統(tǒng).
(2)Robot Studio 在三維造型方面功能薄弱[19],而本系統(tǒng)由于是在SolidWorks軟件上進行的二次開發(fā),具有強大的三維參數(shù)化建模功能.
(3)由于 Robot Studio 是 ABB 公司配套的軟件,系統(tǒng)沒有開放,用戶難以做二次開發(fā);本系統(tǒng)用戶可以在此基礎上進行相關的二次開發(fā)和升級,更適應中小型企業(yè)的用戶需求.
通過在離線狀態(tài)對不同曲率曲線的曲面軌跡點的提取和生成、自動生成機器人代碼,并對機器人進行軌跡點的運動仿真,最后通過利用機器人在線控制程序實現(xiàn)了離線編程與機器人本體的通訊,完成了整一套離線編程系統(tǒng).通過利用ABB IRB4600機器人對本系統(tǒng)設計的功能進行驗證,實踐證明,該系統(tǒng)穩(wěn)定可靠,操作簡便,可以省去繁瑣的重復性操作,解決了手動示教編程提取曲面軌跡困難的問題,另外可以用于實際工業(yè)場合的應用開發(fā),對國內中小型企業(yè)快速加工多種零件具有重要的意義.
1 宋鵬飛,和瑞林,苗金鐘,等.基于 Solidworks 的工業(yè)機器人離線編程系統(tǒng).制造業(yè)自動化,2013,35(9):1–4.
2 曹林攀.多層多道焊離線編程技術及應用研究[碩士學位論文].廈門:廈門理工學院,2016.
3 黃曉霞.用于焊接機器人離線編程系統(tǒng)的運動學分析及仿真[碩士學位論文].廣州:華南理工大學,2015.
4 孫斌.六軸工業(yè)機器人的離線編程與仿真系統(tǒng)研究[碩士學位論文].太原:太原理工大學,2014.
5 高鵬.六自由度果蔬采摘機器人離線編程系統(tǒng)設計[碩士學位論文].杭州:浙江理工大學,2013.
6 岑洎濤.跨平臺工業(yè)機器人離線編程系統(tǒng)研究與開發(fā)[碩士學位論文].廣州:廣東工業(yè)大學,2016.
7 王光道.串聯(lián)機器人控制器離線編程系統(tǒng)設計與實現(xiàn)[碩士學位論文].北京:中國科學院大學,2016.
8 王洪雨.基于SolidWorks的工業(yè)機器人離線仿真系統(tǒng)分析.企業(yè)導報,2016,(13):190.
9 吳清龍.基于三維交互的發(fā)動機遠程在線監(jiān)測及分析技術研究[碩士學位論文].濟南:山東大學,2015.
10 何西陽.基于SolidWorks的齒輪設計計算及三維建模造型系統(tǒng)的開發(fā)[碩士學位論文].青島:青島大學,2015.
11 章雙全,劉敬波,員一澤,等.基于 SolidWorks 二次開發(fā)的風機塔架參數(shù)化設計.機械制造與自動化,2015,44(2):143–145.
12 魏先讓,丁康,唐紅濤.基于 Solidworks 二次開發(fā)的組合銑鼓輪兩斜面夾具設計研究.山東工業(yè)技術,2015,(15):236–238.
13 薛美榮,林建邦,張世龍.基于 SolidWorks 二次開發(fā)的自動建模技術研究.科技創(chuàng)新與應用,2016,(17):48–49.
14 劉殿海.基于UG的不規(guī)則曲面運動軌跡生成研究[碩士學位論文].哈爾濱:哈爾濱工程大學,2012.
15 張彬.基于SolidWorks的旋風筒參數(shù)化設計二次開發(fā).水泥,2016,(8):36–38.
16 楊宇航.基于砂帶磨削工藝的航空發(fā)動機葉片數(shù)控加工自動編程方法研究[碩士學位論文].重慶:重慶大學,2015.
17 Craig JJ.機器人學導論.貟超,譯.3 版.北京:機械工業(yè)出版社,2006.
18 朱英翔,陳燕,余啟志.基于 SolidWorks 的焊件參數(shù)化自動建模研究.微型機與應用,2016,35(22):84–87,91.
19 王純祥,程茁,陳楊.基于 Robotstudio 的弧焊機器人離線編程.重慶科技學院學報(自然科學版),2014,16(5):153–156.
Off-Line Programming and Motion Simulation of the Curved Surface Based on Secondary Development of SolidWorks
CAI Yi-Song,SUN Ke-Zheng,SU Ze-Rong,ZHOU Xue-Feng
(Robots and Automation Equipment Team,Guangdong Institute of Intelligent Manufacturing,Guangzhou 510070,China)
To tackle the problem that the extraction of the curved trajectory is difficult and the operation is complex in manual teaching,this paper uses the way that Visual Studio makes the secondary exploitation for the SolidWorks software to make the off-line programming of the curved surface of robot,and loads it automatically into SolidWorks in the form of DLL plug-in.By using UV parametric curved surface,the system realizes the rapid extraction of off-line trajectory and the generation of robot control code and finally implements the motion simulation of the robot with the model of the robot showed by DH parameter by means of traversing the joint angle.Practice has proven that the control code generated by the off-line programming can be directly downloaded to the robot controller which reaches the expected effect.Such a system is of great significance in the actual development and application of the industrial situations and domestic small and medium-sized enterprises for the rapid machining various parts.
off-line programming of the curved surface;UV parameterization;DH parameter;traverse the joint angle
蔡奕松,孫克爭,蘇澤榮,周雪峰.SolidWorks二次開發(fā)曲面離線編程及運動仿真.計算機系統(tǒng)應用,2017,26(9):75–81.http://www.c-sa.org.cn/1003-3254/5937.html
①基金項后:國家自然科學基金(51405091);廣東省重大專項(2014B090919001);廣東省應用專項(2015B090922010);廣州市珠江新星專項(201610010054)
2016-12-15;采用時間:2017-01-16