孫愷廷,朱雋垚,于存貴,周成
(1. 南京理工大學 機械工程學院,江蘇 南京 210094;2. 湖北江山重工有限責任公司 火箭炮研究院,湖北 襄陽 441057)
隨著工業機器人在工業領域的普及和推廣,工業機器人將會越來越多地代替人完成一些高難度、高風險、工作環境惡劣的工作,在這種情況下如何實現對工業機器人的有效監控就顯得非常重要了。近年來,隨著計算機仿真技術的發展,基于實時數據驅動的工業機器人三維虛擬監控系統備受關注,國內外許多學者也對此進行了研究,但是普遍存在系統開發門檻高、開發效率低、系統可移植性差、監控方式單一等問題。
目前,可實現虛擬監控系統的方式大致可以分為4類[1-6]:
1) 利用三維動畫軟件實現
通過預先設計好三維模型的各種動作,如:轉動、平移、縮放等,利用三維動畫制作軟件建模,生成控制對象各種角度、姿態對應的圖片,并按一定的規則對其進行編號。在顯示時,只需計算控制對象對應的圖片編號并加以調用顯示就可以達到實時仿真的目的。但是由于該方法只能在可知范圍內對控制對象的簡單動作進行動畫演示,在控制對象動作復雜、運動趨勢不確定的情況下采用三維動畫制作軟件的方式實現虛擬監控,往往會造成系統龐大、實時性差以及控制對象動作失真的情況。
2) 直接利用OpenGL實現
OpenGL(open graphics library,開放圖形庫)是一種適用于渲染2D、3D矢量圖形的跨語言、跨平臺的應用程序編程接口(API)。這個接口由近350個不同的函數調用組成,是一種獨立于硬件設備和操作系統的圖形與硬件的接口,開發人員可以利用它開發出功能強大的交互圖形應用程序。由于OpenGL的核心API沒有窗口系統、音頻、打印、鍵盤/鼠標或其他輸入設備的概念,這就意味著如果直接使用OpenGL開發虛擬監控系統需要自己完成窗口界面的設計、交互程序的開發以及模型對事件的響應等底層程序開發工作。這些程序開發工作要求開發者熟練掌握C/C++和Java語言,這對非計算機專業的人員來說,直接使用OpenGL開發復雜的三維應用程序是比較困難的。
3) 利用Web3D技術實現
目前,Web3D的實現有幾十種可供選擇的技術和解決方案,相關的軟件有30多種,并且仍然有新的技術出現,使Web3D的渲染速度、圖形質量、造型技術、交互性以及數據的壓縮與優化等不斷得到提高。典型的Web3D技術有:Cult3D、Java3D、Atmosphere、Direct3D、Viewpoint、X3D/VRML2.0(VRML1997)等。但是,由于缺乏統一的標準,各種技術都是由不同的廠商自行開發的解決方案,使得每種技術使用的都是不同的格式和方法,而且幾乎每個廠商開發的標準都需要自己的插件支持,這極大地限制了Web3D技術的應用。
4) 基于虛擬現實技術的多軟件協同實現
采用虛擬現實開發引擎如Unity 3D、IdeaVR,結合三維實體建模軟件如Solidworks、Creo,模型渲染軟件如Maya、3Ds Max協同開發虛擬現實系統。采用多軟件協同開發的優勢在于可以充分發揮各專業軟件的性能優勢,減少系統底層開發的工作量,降低了系統的開發門檻,縮短了系統的開發周期。
綜上所述,本文選擇第4種方式開發虛擬監控系統。具體來說,以ABB公司生產的六自由度串聯工業機器人IRB1400本體和IRC5控制器組成的機器人控制系統為研究對象,通過Creo三維實體建模、3DS Max模型渲染、Unity3D虛擬場景構建以及TingWorx采集數據實現虛擬監控系統的成功上線。系統的開發可分為3個階段:模型構建、實時數據采集傳輸以及基于實時數據的模型驅動。
在工業機器人的三維虛擬監控系統開發中,首先要進行的就是三維模型的構建。建模是對現實對象或真實環境的模擬,逼真的模型是實現虛擬現實系統真實感和沉浸感的基礎[7]。
本系統三維模型構建的具體步驟:
1)模型數據的采集
本系統以個性化印章生產線中的搬運機器人為原型,工業機器人的外觀、幾何參數來自于設備廠商,紋理信息來自實地拍攝的照片,其他場景、設備信息根據需求實地測量或者合理設計獲得。
2)模型創建
采用Creo軟件創建工業機器人三維實體模型。為提高三維虛擬監控系統的性能,在模型創建時就需要刪除機械臂、控制柜內部等具體結構中一些不可見的、不必要的幾何元素。
3) 模型渲染
在3DS Max軟件中,渲染創建好的三維實體模型,利用材質、紋理貼圖模擬真實材料的質感,使模型具有真實材質紋理的感官效果。為方便后續在Unity3D中定義機械臂的動作,每一個運動單元都應是一個獨立的物體,如圖1所示。

圖1 機械臂關節獨立示意圖
4) 場景搭建
將3DS Max軟件渲染完成的模型以.FBX格式導入Unity3D中,然后將機械臂以及其他模型添加到場景的合適位置,調整模型各個屬性的參數值,添加燈光效果,使模型具有光學上的真實感。場景模型如圖2所示。

圖2 系統場景模型
工業機器人三維虛擬監控系統是由真實的設備數據進行驅動的,因此需要將機械臂各關節的實時角度、末端的世界坐標以及末端執行器的狀態信息采集、傳輸到數據庫。具體實現過程可分為兩步進行:使用ABB提供的PC SDK開發上位機程序讀取需要監測的數據信息;基于Remoting協議采用C#語言編寫應用程序將數據與ThingWorx進行對接。
ABB提供的PC SDK允許系統集成商、第三方或個人用戶為IRC5控制器添加自定義的應用程序。這種自定義的、獨立的應用程序通過網絡與機器人控制器進行通信,并可以作為獨立的PC應用程序使用。本文通過該PC SDK開發的應用程序的功能主要包括兩部分:掃描在線的ABB機器人;采集所有在線機器人的六關節軸角度以及末端的世界坐標和IO信息(末端執行器狀態),數據采集結果如圖3所示。程序運行結果表明有2臺ABB機器人在線,這也是符合現場實際狀態的。

圖3 工業機器人數據采集結果
ThingWorx提供了相應的數據訪問接口,只需在開發環境中使用C#語言將數據與相應的接口進行綁定,就可以實現數據的上傳;由于ThingWorx內部已經集成了PostgreSQL數據庫,對于上傳的數據會進行自動保存,這大大簡化了開發過程。數據傳輸部分程序如圖4所示。


圖4 數據傳輸部分程序
基于實時數據的模型驅動是實現虛擬監控系統的關鍵環節,其實現過程可分為以下4部分內容:建立合理的層次關系、從ThingWorx獲取實時數據、對實時數據進行解析以及將數據與運動單元進行綁定。
虛擬場景采用場景樹進行管理,利用樹結構來表現物體之間的層級關系,子節點是父節點的子物體,所有節點是根節點的子物體。工業機器人的層次關系如圖5所示。

圖5 模型的層次關系
ThingWorx支持網頁訪問數據庫,因此本文通過編寫C#程序訪問特定網址的方式獲取實時數據,并設定數據讀取頻率。update函數可實現每秒50次的數據更新,但考慮實際應用需求和服務器處理能力,設定數據讀取頻率為10。部分程序如圖6所示。

圖6 獲取實時數據
因為數據庫中包含車間所有設備的狀態數據,如圖7所示。因此在獲取實時數據后,還需要對數據進行匹配和解析。部分程序如圖8所示。

圖7 數據庫中的實時數據

圖8 數據解析
這里使用了Unity3D提供的Dotween插件,它提供了常用運動的API函數,可以快速對模型的運動進行定義。部分程序如圖9所示。

圖9 基于實時數據的模型驅動
工業機器人三維虛擬監控系統最終是通過網頁的形式進行發布的。本文通過示教器手動隨機操作機器人的方式驗證系統的監控效果,并通過調整Dotween API函數的參數,實現模型運動與真實運動的同步。現場調試過程如圖10所示。

圖10 現場調試
本文研究了一種基于多軟件協同的方式實現工業機器人三維虛擬監控系統,提出一種基于Creo、3DS Max、Unity3D、ThingWorx軟件相結合的工業機器人三維虛擬監控系統的快速開發方法。使用SDK編寫自定義的數據采集程序實現工業機器人實時數據的上傳,簡化了系統的結構;采用虛擬現實的方式實現監控過程,其效果更加逼真,人機交互性更好;采用網頁的形式進行發布,允許移動智能終端的訪問,提高了監控的便捷性。由于本監控系統僅作為數字化車間三維虛擬監控系統的一部分內容,整體系統還未開發完畢,對工業機器人的監控只是作為系統可行性的驗證,接下來將整合整個車間的生產過程,并在場景性能優化、人機交互、可視化管控等方面繼續研究。