陳有鵬,李會軍,王瑞超,高祥,張翔
基于Unity的機器人系統(tǒng)實時3D數(shù)字孿生終端設(shè)計
陳有鵬,李會軍,王瑞超,高祥,張翔
(五邑大學(xué) 智能制造學(xué)部,廣東 江門 529020)
以機器人為核心運動組件的數(shù)字孿生終端系統(tǒng),有助于無人工廠安全員對工作現(xiàn)場進行監(jiān)控,提高了無人化工廠的安全性和可控性。本文采用Unity作為虛擬現(xiàn)實的開發(fā)平臺,設(shè)計了具有離線和在線監(jiān)控功能的實時3D數(shù)字孿生終端,這種設(shè)計方法具有一定的開發(fā)敏捷性。通過建立機器人運動學(xué)模型,分析正逆運動學(xué)和路徑生成方法,提出了一種機器人腳本的設(shè)計模式,實現(xiàn)了機器人的關(guān)節(jié)運動動畫,并采用單獨的服務(wù)器作為Unity中仿真場景和機器人控制器的通信中心,利用套接字通信和機器人廠商提供的接口實現(xiàn)了仿真場景和機器人間的實時交互。通過數(shù)字孿生終端與RobotStudio離線編程環(huán)境的交互測試,驗證了該設(shè)計方案的可行性。
數(shù)字孿生;Unity;實時3D;機器人
當前,工業(yè)機器人及其組成的無人工廠已經(jīng)在制造業(yè)的多個領(lǐng)域得到了廣泛應(yīng)用[1],這使得制造業(yè)工廠的集成性和智能化程度不斷提高,因此對各生產(chǎn)系統(tǒng)的在線狀態(tài)和異常監(jiān)測等成為熱點的研究方向。而數(shù)字孿生技術(shù)是指在信息化平臺內(nèi)建立、模擬一個物理實體、流程或系統(tǒng)[2],與無人工廠有很高的契合度。機器人數(shù)字孿生終端是對機器人系統(tǒng)的仿真和監(jiān)控,并可以進行示教功能的擴展,往往在生產(chǎn)流程基本定型時完成,是面向系統(tǒng)安全員的實時3D終端。近年來,國內(nèi)外學(xué)者分別設(shè)計了多種數(shù)字孿生終端。AdrianoFagali等提出了一個由移動設(shè)備實時監(jiān)控和控制五軸數(shù)控機床系統(tǒng)[3],王豐圓[4]基于Unity動畫狀態(tài)機設(shè)計了一套面向車間的數(shù)字孿生系統(tǒng),杜瑩瑩等[5]提出了基于SQL數(shù)據(jù)庫的數(shù)字孿生方案,蔡寶等[6]利用工業(yè)標準OPCUA協(xié)議實現(xiàn)數(shù)字孿生終端和機器人實驗平臺的交互。這些數(shù)字孿生終端設(shè)計針對具體的工作場景進行設(shè)計并對通信協(xié)議和數(shù)據(jù)交互進行分析,但設(shè)計的終端缺少敏捷性,在應(yīng)用于不同的實際工作站和進行項目遷移時往往需要重新開發(fā)。
對于實時3D的數(shù)字孿生終端,采用Unity游戲引擎開發(fā)3D項目是一個常見的選擇[7-9],作為一個虛擬現(xiàn)實平臺,方便移植到不同操作系統(tǒng),并有官方支持的制造業(yè)解決方案[10]。本文對數(shù)字孿生終端的開發(fā)過程和設(shè)計模式進行了詳細分析,提高了數(shù)字孿生終端的開發(fā)效率和敏捷性。采用類似本文的方式設(shè)計數(shù)字孿生終端可以實現(xiàn)對多種型號和廠商機器人的支持,通過Unity的預(yù)制件功能實現(xiàn)不同生產(chǎn)場景的快速虛擬化,同時可以支持變位機和絲桿模組等生產(chǎn)過程中的運動組件。
機器人數(shù)字孿生終端由機器人系統(tǒng)仿真場景和監(jiān)控服務(wù)器兩個部分組成。仿真場景基于Unity3D搭建,可以查看機器人系統(tǒng)并可對機器人進行虛擬操作,依據(jù)存檔文件或監(jiān)控服務(wù)器得到的數(shù)據(jù)進行仿真。監(jiān)控服務(wù)器從機器人控制器中獲得運動數(shù)據(jù)發(fā)送到仿真場景中。機器人廠商提供的接口不一定支持Unity的Mono框架,以ABBPCSDK為例,直接在Unity和通用控制臺下編譯會報錯。對于不一定支持工業(yè)標準OPC UA的非標機器人和其他運動組件,定制監(jiān)控服務(wù)器是必要的。
分別設(shè)計仿真場景和監(jiān)控服務(wù)器,其中仿真場景是Unity3D的一個場景,監(jiān)控服務(wù)器的框架與使用機器人有關(guān),并將仿真場景和機器人控制器作為網(wǎng)絡(luò)通信時的客戶端,如圖1所示,監(jiān)控服務(wù)器作為與仿真場景和機器人控制器之間通信的中介,負責(zé)依據(jù)仿真場景的綁定在機器人控制器和仿真場景間傳輸數(shù)據(jù)。為加強系統(tǒng)的易用性,針對不同廠商的機器人提供監(jiān)控服務(wù)器各種實現(xiàn)方案,這體現(xiàn)了開發(fā)的敏捷性。
圖1 通信模式
圖2描述了數(shù)字孿生終端的使用用例。初步仿真是在終端中使用鍵鼠和控制器等輸入設(shè)備控制虛擬機器人進行關(guān)節(jié)運動和TCP運動,驗證終端的虛擬工作站對實際工作站的仿真準確性。離線編程是對機器人進行離線編程和路徑規(guī)劃的過程,這個功能可以通過不同機器人廠商提供的離線編程軟件實現(xiàn)。離線監(jiān)控是把在離線編程軟件或試生產(chǎn)過程中得到的關(guān)節(jié)坐標存檔文件在終端生成仿真動畫,并進行碰撞檢測等安全性測試的過程。在線監(jiān)控是在實際生產(chǎn)過程中監(jiān)控工作站中機器人類對象的關(guān)節(jié)坐標、生產(chǎn)情況和傳感器指數(shù)的過程。
圖2 數(shù)字孿生終端的概念用例示意圖
建立運動學(xué)模型的目的是將機器人的位姿描述在關(guān)節(jié)空間和笛卡爾空間之間轉(zhuǎn)換以實現(xiàn)虛擬機器人進行運動控制。常用的工業(yè)機器人可以有很多不同的運動學(xué)構(gòu)型,此時正運動學(xué)的形式不一致,并可能沒有逆運動學(xué)封閉解,這被認為是虛擬機器人腳本類包含“變化”的重要原因。以ABB IRB120為例,該六軸串聯(lián)機器人,有六個關(guān)節(jié)且均為旋轉(zhuǎn)關(guān)節(jié),機構(gòu)簡圖如圖3所示,改進D-H連桿參數(shù)如表1所示。
圖3 ABB IRB120機器人機構(gòu)簡圖
表1 IRB120的改進D-H連桿參數(shù)表
表中:α-1為連桿扭矩,即一個關(guān)節(jié)軸相對另個一關(guān)節(jié)軸繞其公共法線的扭矩;a-1為連桿長度,即兩個關(guān)節(jié)的軸間公共法線長度;θ為連桿轉(zhuǎn)角,即一個關(guān)節(jié)與下一個關(guān)節(jié)的公共法線和它與上一個關(guān)節(jié)的公共法線繞這個關(guān)節(jié)軸的轉(zhuǎn)角;d為連桿偏距,即一個關(guān)節(jié)與下一個關(guān)節(jié)的公共法線和它與上一個關(guān)節(jié)的公共法線沿這個關(guān)節(jié)軸的距離。
對于機器人連桿,在右手坐標系下改進D-H法的連桿變換矩陣為[11]:
通過連桿變換矩陣連乘可以得到運動學(xué)公式為:
在此基礎(chǔ)上,可以進一步得到基底到工具中心點的變換為:
常見六軸工業(yè)機器人滿足Pieper準則,可通過Pieper解法獲得逆運動學(xué)方程的封閉解。
在驗證虛擬示教得到結(jié)果時,除對指令代碼的解釋外,還需要得到執(zhí)行指令過程中機器人每幀內(nèi)的關(guān)節(jié)坐標,即路徑更新率為60 Hz的軌跡生成問題。原則上,虛擬機器人的軌跡生成算法應(yīng)盡可能與廠商的算法接近。
以下介紹笛卡爾空間直線軌跡生成。直線軌跡生成是已知始末兩點、求取中間的插補點,對于不少于六個自由度的機器人,其笛卡爾坐標中的點使用位姿描述,即位置和旋轉(zhuǎn)姿態(tài)。在姿態(tài)以固定角或歐拉角描述時,各插補點可通過下式求出[12]:
式中:為歸一化因子,與軌跡生成中的過渡曲線相關(guān);Δ、Δ、Δ、Δ、Δ、Δ為位姿的增量。
機器人的三維實體模型是對實體機器人的抽象和簡化,是機器人仿真系統(tǒng)的基礎(chǔ)。一般地,部分機器人廠商提供了對應(yīng)三維CAD模型,也可以通過SolidWorks、Pro/E等3DCAD軟件建立模型,這類模型往往包含大量的網(wǎng)格、工程設(shè)計信息,缺少光照和法線貼圖,并不適合在實時3D系統(tǒng)中展示。盡管目前有多種模型轉(zhuǎn)換方法實現(xiàn)[13-14],為了在實時3D環(huán)境下更好地進行操作和展示,在三維動畫軟件中進行進一步處理,調(diào)整好關(guān)節(jié)之間的父子關(guān)系和坐標系位姿,保證實體模型和實際機器人運動學(xué)描述的差距在可控范圍內(nèi)。
圖4分別展示了廠商提供的三維CAD模型和仿真場景使用的模型。圖4(a)為SolidWorks中的模型,擁有較多的面片和細節(jié)、復(fù)雜的父子關(guān)系;圖4(b)是在Blender中修改的模型,減少了模型的面片數(shù)量、并去除了不必要的細節(jié),同時調(diào)整了機器人實體模型關(guān)節(jié)之間的父子關(guān)系和坐標系位姿,得到的實體模型可以減少數(shù)字孿生終端的性能消耗,并簡化運動動畫和監(jiān)控相關(guān)的C#腳本的復(fù)雜度。通過對機器人類對象的實體模型進行處理,可以優(yōu)化終端性能并使得不同機器人和其他運動組件可以應(yīng)用相同的設(shè)計模式。
2.4.1 機器人類對象設(shè)計模式
在仿真場景中,工業(yè)機器人、變位機、絲桿模組等運動組件在需要實時控制關(guān)節(jié)空間坐標的情況下均視為機器人類對象。加工工具作為機器人最終關(guān)節(jié)的子對象,承載了加工過程相關(guān)的動畫與Shader特效。在三維動畫軟件中設(shè)置好關(guān)節(jié)間的父子關(guān)系和坐標后,運動學(xué)模型即可應(yīng)用于虛擬三維實體模型?;跈C器人腳本類的“變化”,尤其是集成到相關(guān)方法的正逆運動學(xué)公式和路徑生成方法的變化,并重寫相應(yīng)方法,這意味著對于“變化”的封裝[15],在C#語言中是通過接口或抽象類實現(xiàn)的,圖5是簡化后的運動動畫相關(guān)腳本的對象圖。
圖4 ABB IRB120實體模型
因為腳本類不能創(chuàng)建且必須繼承自MonoBehavior[16],機器人腳本類對“變化”的封裝需要通過抽象類實現(xiàn),其主要功能如表2所示,對于不需要在基類中實現(xiàn)的單段運動指令和有限狀態(tài)機,則通過接口實現(xiàn)。同時鑒于Unity使用的PhysX物理引擎和仿真場景的連續(xù)性要求,不對機器人類對象設(shè)置除了碰撞外的物理效果。
圖5 簡化的腳本對象圖
表2 關(guān)節(jié)和機器人類的主要方法
2.4.2 實時關(guān)節(jié)空間坐標與腳本動畫生成
在除前期仿真外,希望獲得每幀的關(guān)節(jié)坐標以獲得連續(xù)的運動動畫??紤]到腳本的生命周期,在可預(yù)載腳本的Update方法中直接控制機器人的關(guān)節(jié)坐標,本文稱為抽象控制器類型,抽象控制器中對預(yù)生成的各幀關(guān)節(jié)坐標的管理是通過隊列實現(xiàn)的。
在離線編程仿真過程中,選擇與幀率相同的路徑更新率(一般為60 Hz)進行路徑生成。離線編程的腳本動畫生成流程如圖6(a)所示。
在離線監(jiān)控模式下,從離線編程軟件或?qū)嶋H生成過程中獲得關(guān)節(jié)空間的頻率往往達不到幀率,需要進行插補操作,因為實際關(guān)節(jié)坐標的獲取間隔較長,中間幀采用勻速插補,類似于直線過渡的關(guān)節(jié)空間路徑生成,只是在極短的時間段內(nèi)的一種簡化處理,插補點的關(guān)節(jié)坐標為:
式中:為關(guān)節(jié)坐標,=1,2,3,…,,為關(guān)節(jié)數(shù)量;Δ為關(guān)節(jié)坐標的增量;1為離線監(jiān)控模式的歸一化因子,由式(6)求出。
式中:=1,2,3,…,;為總插補點數(shù)。
離線監(jiān)控模式下的腳本動畫生成流程如圖6(b)所示。
動畫生成流程在FixedUpdate方法下實現(xiàn)最優(yōu)。
圖6 動畫生成流程
在線監(jiān)控功能的實現(xiàn)需要機器人控制器和監(jiān)控服務(wù)器、監(jiān)控服務(wù)器和仿真場景的雙向通信。因此套接字(Socket)通信實現(xiàn)的TCP協(xié)議網(wǎng)絡(luò)通信是最優(yōu)的選擇。對于和機器人控制器之間的通信,以機器人廠商提供的接口為較好,其底層邏輯一般也是基于Socket通信的,也可以在機器人指令中使用Socket通信實現(xiàn)相關(guān)功能。
優(yōu)先使用機器人廠商提供的接口進行控制器與監(jiān)控服務(wù)器之間的通信。以ABBPCSDK為例,其使用需要在高版本的.NetWPF或WinForm框架下,表3是PCSDK常用命名空間的功能[17]。
只需要連接控制器并從控制器中獲取關(guān)節(jié)坐標即可,對于未在仿真場景中綁定的機器人控制器可以忽略。監(jiān)控服務(wù)器應(yīng)保證與機器人控制器通信的可行性與穩(wěn)定性。
表3 PCSDK常用命名空間的功能
監(jiān)控服務(wù)器與仿真場景的通信除了需要獲取基本的關(guān)節(jié)坐標外,還需要綁定和解綁控制器,同時不希望此時的通信內(nèi)容與監(jiān)控服務(wù)器強相關(guān)。因此,需要定制與機器人型號、廠商無關(guān)的通信數(shù)據(jù)協(xié)議內(nèi)容。I/O信息和傳感器數(shù)據(jù)可以按需加入到通信數(shù)據(jù)中。
監(jiān)控服務(wù)器與仿真場景在同一設(shè)備上是最優(yōu)選擇,但在無法保證監(jiān)控服務(wù)器與機器人通信的可行性與穩(wěn)定性的情況下可以不在同一設(shè)備上。
在RobotStudio中設(shè)計的簡化系統(tǒng)在仿真場景中的鏡像如圖7所示,為了設(shè)計方便直接采用兩個IRB120機器人作為運動組件且沒有添加加工工具。
圖7 示例場景
使用鍵鼠和XBOX控制器可以在初期仿真中控制機器人進行關(guān)節(jié)運動和TCP運動,如圖8所示。
在RobotStudio中進行離線編程并記錄關(guān)節(jié)坐標形成存檔文件后,在終端中可以看到離線監(jiān)控過程中機器人的運動情況如圖9所示。
監(jiān)控服務(wù)器與RobotStudio虛擬控制器安裝于同一臺設(shè)備。通過終端的交互查找RobotStudio中的虛擬控制器,其信息和終端中的顯示如圖10所示,綁定控制器后開啟監(jiān)控功能并在RobotStudio中開啟仿真,如圖11所示,場景中的關(guān)節(jié)坐標與RobotStudio中一致。
由此可知,文中設(shè)計的終端基本可以達到要求。
圖9 離線監(jiān)控模式
圖10 在線控制器的地址和信息顯示
本文提出一種機器人數(shù)字孿生終端設(shè)計方案,包括機器人的運動學(xué)模型和實體模型、動畫腳本的設(shè)計模式和通信方法。該設(shè)計方法可支持不同廠商的機器人和變位機、絲桿模組等類機器人對象,設(shè)計的動畫生成腳本可適用于長時間下的離線仿真。最后使用Socket通信和PC SDK實現(xiàn)對ABB機器人的在線監(jiān)控。通過對兩個ABB IRB120機器人組成的虛擬工作站進行了驗證,本文提出的設(shè)計方法滿足實時3D數(shù)字孿生終端的基本要求,具有較好實時性和交互性。在進一步的研究中,在線監(jiān)控和遙操作的同步、監(jiān)控服務(wù)器和終端的耦合、不同加工工藝下加工安全方案等是重要的研究方向。
圖11 RobotStudio與仿真場景的交互對比
[1]王田苗,陶永. 我國工業(yè)機器人技術(shù)現(xiàn)狀與產(chǎn)業(yè)化發(fā)展戰(zhàn)略[J]. 機械工程學(xué)報,2014,50(9):1-13.
[2]劉大同,郭凱,王本寬,等. 數(shù)字孿生技術(shù)綜述與展望[J]. 儀器儀表學(xué)報,2018,39(11):1-10.
[3]Souza A,Martins J,Amioche H,et al. Development of a mobile application for monitoring and controlling a CNC machine using Industry 4.0 concepts[J]. The International Journal of Advanced Manufacturing Technology,2020(111):9-10.
[4]王豐圓. 基于數(shù)字化雙胞胎的三維可視化車間系統(tǒng)研究[D]. 武漢:華中科技大學(xué),2019.
[5]杜瑩瑩,羅映,彭義兵,等. 基于數(shù)字孿生的工業(yè)機器人三維可視化監(jiān)控[J/OL]. 計算機集成制造系統(tǒng),2022-10-18:1-15.
[6]蔡寶,朱文華,史秋雨,等. 虛實融合的工業(yè)機器人實驗平臺研究[J]. 機床與液壓,2021,49(23):54-60.
[7]潘俊浩,卓勇,侯亮,等. 一種基于Unity3d的工業(yè)機器人示教系統(tǒng)設(shè)計方法[J]. 組合機床與自動化加工技術(shù),2017,521(7):110-115.
[8]劉謀玉,汪地,姜海龍. 基于Unity3D的機器人仿真和遙操作系統(tǒng)研究[J]. 工業(yè)控制計算機,2016,29(9):97-99.
[9]耿琦琦. 基于數(shù)字孿生仿真建模的機器人狀態(tài)監(jiān)測技術(shù)研究[D]. 重慶:重慶郵電大學(xué),2019.
[10]Unity Technologies. 3D Software Architecture, Engineering & Constructing Unity[EB/OL]. https://store.unity3d.com,2022.
[11]JOHNJCRAIG. 贠超,譯.機器人學(xué)導(dǎo)論[M]. 3版. 北京:機械工業(yè)出版,2006.
[12]鄭劍飛. 六自由度機械臂分布式控制系統(tǒng)的設(shè)計與研究[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2006.
[13]耿維忠,于江饒,焦躍軍. 一種高效的CAD模型簡化方法[J]. 機械工程與自動化,2022(1):197-199,202.
[14]于倩,顧宏斌,湯勇. 基于分類的CAD數(shù)據(jù)到VR模型轉(zhuǎn)換方法[J]. 武漢理工大學(xué)學(xué)報(信息與管理工程版),2011,33(4):548-552.
[15]王曉慶,曾文英,王明文,等. 設(shè)計模式中的面向?qū)ο笤瓌t及其子模式[J]. 計算機工程,2003(9):192-194.
[16]宣雨松. Unity3D游戲開發(fā)[M]. 2版. 北京:人民郵電出版社,2016.
[17]Dalvand M M,Nahavandi S. Teleoperation of ABB industrial robots[J]. Industrial Robot: An International Journal,2014,41(3):286-295.
Design of Real-Time 3D Digital-Twin Terminal for Robot System Based on Unity
CHEN Youpeng,LI Huijun,WANG Ruichao,GAO Xiang,ZHANG Xiang
(Faculty of Intelligent Manufacturing, Wuyi University, Jiangmen 529020, China)
A digital twin terminal system is designed with robots as core motion components. The digital twin system can not only help safety administrator to monitor equipment, but also improve the safety and controllability of the unmanned factory. Taking Unity as the virtual reality platform development framework, this paper designed a real-time 3D digital-twin terminal with offline and online monitoring functions, which could also achieve development agility. A design pattern of robot script was proposed through the robot kinematics model with forward and inverse kinematics and path generation method. The joint motion of robot was realized. A server was used as the communication center between the simulation scene in Unity and the robot controllers. The real-time interaction between simulation scene and robots was realized using the socket protocol and the interface provided by robot manufacturers. It was verified to be feasible for the design scheme by the interactive test between the digital twin terminal and the RobotStudio offline programming environment.
digital-twin;unity;real-time 3D;robot
TP242.2
A
10.3969/j.issn.1006-0316.2022.10.003
1006-0316 (2022) 10-0015-08
2022-03-17
江門市創(chuàng)新科研團隊引進資助項目(2018630100090019844);江門市基礎(chǔ)與理論科學(xué)研究類科技計劃項目(2021030102290004572)
陳有鵬(1993-),男,安徽宿州人,碩士研究生,主要研究方向為數(shù)字孿生、增材制造路徑規(guī)劃,E-mail:836180402@qq.com。
王瑞超(1975-),男,河南臨潁人,博士,講師,主要研究方向為高效焊接技術(shù)及數(shù)值仿真,E-mail:china66988@163.com。