一種機器人離線編程的構建方法與流程
2023-06-11 17:38:06 2
本發明涉及一種基於三維設計軟體環境下的工業機器人離線編程的構建方法。
背景技術:
目前,機器人編程主要有在線示教編程和離線編程兩種方式,在線示教編程為絕大多數工業機器人所採用。在線示教編程要求機器人執行新的作業任務時需停機示教,造成現場生產線停工的同時還可能使編程人員身處危險的現場壞境中。離線編程方式可以實現在遠離工作現場的情況下完成機器人編程作業,實現運動仿真等一系列功能,大幅提高編程工作效率。國內外研究人員在離線編程方面做了大量研究。其中kuka,abb,fanuc等知名專業機器人生產廠家都有自己的一套成熟的仿真軟體,可離線編程。還有的公司機器人項目組也在離線編程方面取得一定進展,可對機器人生產過程仿真,有的可讀出任務曲線作業點並生成程序。還有的機器人離線編程系統,實現了工業機器人對二維圖形的離線編程仿真功能。但目前絕大多數的離線編程模式都不能將可視化三維仿真環境與精確地編程方式相結合。
技術實現要素:
本發明人認為隨著三維繪圖軟體功能日趨強大,完全可以勝任創建工業機器人及其工作環境模型的任務,在三維軟體環境下完成機器人的離線編程仿真將是實現可視化離線編程簡捷有效的途徑。
本發明提供涉及一種基於三維設計軟體的機器人離線編程建立方法。其具體特徵:在三維軟體環境下對工業機器人及其工作環境進行三維實體建模,利用三維軟體提供的vc++二次開發嚮導swizard.swx,完成機器人離線編程系統的開發。
本發明技術方案是:離線編程系統的工作模式及組成:1.三維建模。在solidworks環境下建立機器人及其工作環境三維仿真模型;2.任務點選取。根據實際任務軌跡要求選取機器人任務點;3.調用離線編程系統。由萊單欄調用此系統,通過位姿計算模塊及逆運動學計算模塊完成任務點的位姿計算及各軸輸入角度的計算;4.生成作業程序及離線仿真。
本發明涉及一種基於三維設計軟體環境下的機器人離線編程建立方法。主要是應用solldworksapi二次開發函數及vc++程式語言,開發了solldwork8環境下運行的工業機器人離線編程系統,實現了fanucm-9001a/2000型工業機器人位姿坐標計算、機器人逆運算及作業程序自動生成等功能。經過與robosulde仿真結果對比證明,該離線編程系統穩定可靠。
具體實施方式
本發明技術架構主要按以下步驟實施:
1.對機器人及其工作環境建模:funac機器人在國內工業自動化領域有著廣泛的應用,本文以自動化生產線中物料搬運常用的fanucm-900ia/2000型機器人為對象,建立機器人及其工作環境聯線控制模型,以此為基礎進行離線編程系統的設計研發方法。
(1)機器人三維模型的繪製及裝配:通過對機器人結構及技術參數的研究,繪製機器人零部件模型,按照既定裝配關係組成裝配體。三維建模時,為保證離線編程系統的運行效率,在保留機器人所有關鍵特徵及尺寸的前提下,儘量簡化模型結構。將j1軸j2軸複雜的曲面以簡單的平面模型代替。將五軸迴轉機構簡化成「c」字形結構等。完成機器人各零件的裝配後,對各相對運動關節正確定義運動角屬性,即確定「配合」中各轉動副的轉動範圍。保證各關節在允許的範圍內可自由運動;
(2)機器人與工作壞境關係的建立:離線編程結果精度的高低,很大程度上取決於機器人及其工作環境的正確建模及精確的工作位置關係。本發明技術方案,系統架構,首先確認機器人與工作環境的位置關係,即機器人底座中心(基座坐標系原點o0)與工作中心(板料中心)的距離關係。其次規劃機器人的工作任務,確定機器人在兩工位間經過的關鍵位置,即準確確定機器人的任務點,建立機器人工作環境及工作狀態。機器人將板料從一側工作檯移動到另一側,與初始位置相比第六軸關節坐標系o6相對於基座坐標系o0繞x0軸旋轉180度,其餘軸相對於基座坐標系o0均為平行移動。
2.建構solidworks環境下的離線編程模塊:solidworks具有超強建模功能和方便的二次開發接口,通過ole/com技術提供強大的二次開發接口api,這些接口包含數百個函數,為二次開發提供強有力的支持。可以用vb,visualc++和其他支持ole的開發語言接口調用其api函數情1。本發明利用visualc++通過對對象屬性的設置和方法的調用對solidworks進行二次開發,將開發的模塊以dll插件文件的形式實現與solidworks無縫銜接;
(3)離線編程系統對話框的建立及功能:在vc++中新建工作空間,選擇工程嚮導solidworksadd-inappwizard,新建離線仿真工程。離線編程系統以插件的形式在菜單欄中被調用,點擊「開始計算」子菜單,即可顯示所設計的離線編程系統對話框。本離線編程對話框可完成位姿計算、逆運動學計算以及對作業生成模塊、離線仿真模塊的調用;
(4)機器人任務點位姿計算模塊:位姿計算模塊實現的關鍵在於對solidworks二次開發函數getselectionpoint及函數ienumeagesoriented的調用。以獲得點的位置坐標為例,通過調用函數getselectionpoint,得到當前所選目標點在模型空間坐標系中的三維坐標值。值得注意的是在定義對話框的時侯一定要聲明為非模式對話框,通過調用「cdialog::create」函數來啟動對話框。以保證不關閉主程序的情況下,對目標點的連續選取。在定義pselectmgr指針及retvalt31雙精度數組的基礎上,通過調用selectpoint函數獲得任務,並將任務點的坐標以數組的形式輸出。利用string.format(_t(」%.4f"),retval[i])i函數將上述得到的字符串數組以單個元素的形式輸出,同時利updatedata(false)數將上述結果同步輸出到對話框。即可完成目標點位置的讀取;
(5)機器人逆運動學模塊:首先對機器人進行正運動學分析,建立fanucm-900i-a/2000型機器人的dh坐標系州。根據機器人結構參數,求出機器人各坐標系間的齊次變換矩陣,得到機器人正運動學方程。確定目標點位姿坐標後,得到12個常係數非線性方程。對於正交旋轉矩陣p及向量u,v,利用變換矩陣中旋轉子矩陣的正交特型及矢量運算特性,有pu·n=u·v,及pu·v=u·p-1v,通過矢量運算,得到含有不同未知變量的4個常係數非線性方程,最終得到機器人逆運算的封閉解。按此方法生成機器人逆運算模塊;
(6)運動仿真模:solidworks提供的運動仿真模塊完全可勝任機器人的運動仿真任務。以機器人逆運算模塊得到的各關節轉角角度做為輸入值,點擊「開始仿真」按鈕,直接進入solidworks自帶的cosmosmotion運動仿真模塊,根據所建機器人運行環境實際情況設置約束、速度、力等參數,實現運動仿真;
(7)作業生成模塊:利用vc++對話框edit控制項功能,在點擊「生成作業」按鈕後彈出子對話框顯示作業文件。利用cedit.setsel(start,end)函數設置要插入文本的位置,用cedit.replace(string)函數向該位置插入字符串string,將作業點位置和姿態坐標以數組的形式(以備現場機器人位姿的手動快速定位)賦予任務點p[i]。「位姿計算」模塊每計算一個作業點點擊「生成作業」按鈕手動完成i++。生成的作業代碼如下:
jp[2]100%fine!p[2]=-46.58,212.46,99.55,90,0,0
其中「!」為fanuc程序注釋符。此作業文件符合fanuc機器人程序格式。
3.實驗驗證:roboguide是由fanuc研發的機器人仿真軟體,功能強大,可靠性強。在roboguide中建立與本研究環境相同的工作空間,並將本離線編程系統生成的作業程序導入roboguide中,運行程序,得出仿真結果。這個仿真結果與solidworks環境下運行的離線仿真結果對比,均在誤差範圍之內。
本發明利用solidworksapi--次開發函數及vc++程式語言,在solidworks環境下實現了工業機器人離線編程仿真系統的設計構建方法。系統實現了工業機器人位姿坐標的精確計算,機器人逆運算及作業程序自動生成三大功能的系統集成,並對計算結果進行了運動仿真,通過與fanuc的roboguide仿真軟體仿真結果比較證明:本發明的離線編程系統正確率,可靠性均可以達到到實際生產要求。有較好的生產利用價值。