陳有鵬,李會軍,王瑞超,高祥,張翔
基于Unity的機器人系統(tǒng)實時3D數(shù)字孿生終端設計
陳有鵬,李會軍,王瑞超,高祥,張翔
(五邑大學 智能制造學部,廣東 江門 529020)
以機器人為核心運動組件的數(shù)字孿生終端系統(tǒng),有助于無人工廠安全員對工作現(xiàn)場進行監(jiān)控,提高了無人化工廠的安全性和可控性。本文采用Unity作為虛擬現(xiàn)實的開發(fā)平臺,設計了具有離線和在線監(jiān)控功能的實時3D數(shù)字孿生終端,這種設計方法具有一定的開發(fā)敏捷性。通過建立機器人運動學模型,分析正逆運動學和路徑生成方法,提出了一種機器人腳本的設計模式,實現(xiàn)了機器人的關節(jié)運動動畫,并采用單獨的服務器作為Unity中仿真場景和機器人控制器的通信中心,利用套接字通信和機器人廠商提供的接口實現(xiàn)了仿真場景和機器人間的實時交互。通過數(shù)字孿生終端與RobotStudio離線編程環(huán)境的交互測試,驗證了該設計方案的可行性。
數(shù)字孿生;Unity;實時3D;機器人
當前,工業(yè)機器人及其組成的無人工廠已經(jīng)在制造業(yè)的多個領域得到了廣泛應用[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)外學者分別設計了多種數(shù)字孿生終端。AdrianoFagali等提出了一個由移動設備實時監(jiān)控和控制五軸數(shù)控機床系統(tǒng)[3],王豐圓[4]基于Unity動畫狀態(tài)機設計了一套面向車間的數(shù)字孿生系統(tǒng),杜瑩瑩等[5]提出了基于SQL數(shù)據(jù)庫的數(shù)字孿生方案,蔡寶等[6]利用工業(yè)標準OPCUA協(xié)議實現(xiàn)數(shù)字孿生終端和機器人實驗平臺的交互。這些數(shù)字孿生終端設計針對具體的工作場景進行設計并對通信協(xié)議和數(shù)據(jù)交互進行分析,但設計的終端缺少敏捷性,在應用于不同的實際工作站和進行項目遷移時往往需要重新開發(fā)。
對于實時3D的數(shù)字孿生終端,采用Unity游戲引擎開發(fā)3D項目是一個常見的選擇[7-9],作為一個虛擬現(xiàn)實平臺,方便移植到不同操作系統(tǒng),并有官方支持的制造業(yè)解決方案[10]。本文對數(shù)字孿生終端的開發(fā)過程和設計模式進行了詳細分析,提高了數(shù)字孿生終端的開發(fā)效率和敏捷性。采用類似本文的方式設計數(shù)字孿生終端可以實現(xiàn)對多種型號和廠商機器人的支持,通過Unity的預制件功能實現(xiàn)不同生產(chǎn)場景的快速虛擬化,同時可以支持變位機和絲桿模組等生產(chǎn)過程中的運動組件。
機器人數(shù)字孿生終端由機器人系統(tǒng)仿真場景和監(jiān)控服務器兩個部分組成。仿真場景基于Unity3D搭建,可以查看機器人系統(tǒng)并可對機器人進行虛擬操作,依據(jù)存檔文件或監(jiān)控服務器得到的數(shù)據(jù)進行仿真。監(jiān)控服務器從機器人控制器中獲得運動數(shù)據(jù)發(fā)送到仿真場景中。機器人廠商提供的接口不一定支持Unity的Mono框架,以ABBPCSDK為例,直接在Unity和通用控制臺下編譯會報錯。對于不一定支持工業(yè)標準OPC UA的非標機器人和其他運動組件,定制監(jiān)控服務器是必要的。
分別設計仿真場景和監(jiān)控服務器,其中仿真場景是Unity3D的一個場景,監(jiān)控服務器的框架與使用機器人有關,并將仿真場景和機器人控制器作為網(wǎng)絡通信時的客戶端,如圖1所示,監(jiān)控服務器作為與仿真場景和機器人控制器之間通信的中介,負責依據(jù)仿真場景的綁定在機器人控制器和仿真場景間傳輸數(shù)據(jù)。為加強系統(tǒng)的易用性,針對不同廠商的機器人提供監(jiān)控服務器各種實現(xiàn)方案,這體現(xiàn)了開發(fā)的敏捷性。

圖1 通信模式
圖2描述了數(shù)字孿生終端的使用用例。初步仿真是在終端中使用鍵鼠和控制器等輸入設備控制虛擬機器人進行關節(jié)運動和TCP運動,驗證終端的虛擬工作站對實際工作站的仿真準確性。離線編程是對機器人進行離線編程和路徑規(guī)劃的過程,這個功能可以通過不同機器人廠商提供的離線編程軟件實現(xiàn)。離線監(jiān)控是把在離線編程軟件或試生產(chǎn)過程中得到的關節(jié)坐標存檔文件在終端生成仿真動畫,并進行碰撞檢測等安全性測試的過程。在線監(jiān)控是在實際生產(chǎn)過程中監(jiān)控工作站中機器人類對象的關節(jié)坐標、生產(chǎn)情況和傳感器指數(shù)的過程。

圖2 數(shù)字孿生終端的概念用例示意圖
建立運動學模型的目的是將機器人的位姿描述在關節(jié)空間和笛卡爾空間之間轉(zhuǎn)換以實現(xiàn)虛擬機器人進行運動控制。常用的工業(yè)機器人可以有很多不同的運動學構(gòu)型,此時正運動學的形式不一致,并可能沒有逆運動學封閉解,這被認為是虛擬機器人腳本類包含“變化”的重要原因。以ABB IRB120為例,該六軸串聯(lián)機器人,有六個關節(jié)且均為旋轉(zhuǎn)關節(jié),機構(gòu)簡圖如圖3所示,改進D-H連桿參數(shù)如表1所示。

圖3 ABB IRB120機器人機構(gòu)簡圖

表1 IRB120的改進D-H連桿參數(shù)表
表中:α-1為連桿扭矩,即一個關節(jié)軸相對另個一關節(jié)軸繞其公共法線的扭矩;a-1為連桿長度,即兩個關節(jié)的軸間公共法線長度;θ為連桿轉(zhuǎn)角,即一個關節(jié)與下一個關節(jié)的公共法線和它與上一個關節(jié)的公共法線繞這個關節(jié)軸的轉(zhuǎn)角;d為連桿偏距,即一個關節(jié)與下一個關節(jié)的公共法線和它與上一個關節(jié)的公共法線沿這個關節(jié)軸的距離。
對于機器人連桿,在右手坐標系下改進D-H法的連桿變換矩陣為[11]:

通過連桿變換矩陣連乘可以得到運動學公式為:

在此基礎上,可以進一步得到基底到工具中心點的變換為:

常見六軸工業(yè)機器人滿足Pieper準則,可通過Pieper解法獲得逆運動學方程的封閉解。
在驗證虛擬示教得到結(jié)果時,除對指令代碼的解釋外,還需要得到執(zhí)行指令過程中機器人每幀內(nèi)的關節(jié)坐標,即路徑更新率為60 Hz的軌跡生成問題。原則上,虛擬機器人的軌跡生成算法應盡可能與廠商的算法接近。
以下介紹笛卡爾空間直線軌跡生成。直線軌跡生成是已知始末兩點、求取中間的插補點,對于不少于六個自由度的機器人,其笛卡爾坐標中的點使用位姿描述,即位置和旋轉(zhuǎn)姿態(tài)。在姿態(tài)以固定角或歐拉角描述時,各插補點可通過下式求出[12]:

式中:為歸一化因子,與軌跡生成中的過渡曲線相關;Δ、Δ、Δ、Δ、Δ、Δ為位姿的增量。
機器人的三維實體模型是對實體機器人的抽象和簡化,是機器人仿真系統(tǒng)的基礎。一般地,部分機器人廠商提供了對應三維CAD模型,也可以通過SolidWorks、Pro/E等3DCAD軟件建立模型,這類模型往往包含大量的網(wǎng)格、工程設計信息,缺少光照和法線貼圖,并不適合在實時3D系統(tǒng)中展示。盡管目前有多種模型轉(zhuǎn)換方法實現(xiàn)[13-14],為了在實時3D環(huán)境下更好地進行操作和展示,在三維動畫軟件中進行進一步處理,調(diào)整好關節(jié)之間的父子關系和坐標系位姿,保證實體模型和實際機器人運動學描述的差距在可控范圍內(nèi)。
圖4分別展示了廠商提供的三維CAD模型和仿真場景使用的模型。圖4(a)為SolidWorks中的模型,擁有較多的面片和細節(jié)、復雜的父子關系;圖4(b)是在Blender中修改的模型,減少了模型的面片數(shù)量、并去除了不必要的細節(jié),同時調(diào)整了機器人實體模型關節(jié)之間的父子關系和坐標系位姿,得到的實體模型可以減少數(shù)字孿生終端的性能消耗,并簡化運動動畫和監(jiān)控相關的C#腳本的復雜度。通過對機器人類對象的實體模型進行處理,可以優(yōu)化終端性能并使得不同機器人和其他運動組件可以應用相同的設計模式。
2.4.1 機器人類對象設計模式
在仿真場景中,工業(yè)機器人、變位機、絲桿模組等運動組件在需要實時控制關節(jié)空間坐標的情況下均視為機器人類對象。加工工具作為機器人最終關節(jié)的子對象,承載了加工過程相關的動畫與Shader特效。在三維動畫軟件中設置好關節(jié)間的父子關系和坐標后,運動學模型即可應用于虛擬三維實體模型。基于機器人腳本類的“變化”,尤其是集成到相關方法的正逆運動學公式和路徑生成方法的變化,并重寫相應方法,這意味著對于“變化”的封裝[15],在C#語言中是通過接口或抽象類實現(xiàn)的,圖5是簡化后的運動動畫相關腳本的對象圖。

圖4 ABB IRB120實體模型
因為腳本類不能創(chuàng)建且必須繼承自MonoBehavior[16],機器人腳本類對“變化”的封裝需要通過抽象類實現(xiàn),其主要功能如表2所示,對于不需要在基類中實現(xiàn)的單段運動指令和有限狀態(tài)機,則通過接口實現(xiàn)。同時鑒于Unity使用的PhysX物理引擎和仿真場景的連續(xù)性要求,不對機器人類對象設置除了碰撞外的物理效果。

圖5 簡化的腳本對象圖

表2 關節(jié)和機器人類的主要方法
2.4.2 實時關節(jié)空間坐標與腳本動畫生成
在除前期仿真外,希望獲得每幀的關節(jié)坐標以獲得連續(xù)的運動動畫。考慮到腳本的生命周期,在可預載腳本的Update方法中直接控制機器人的關節(jié)坐標,本文稱為抽象控制器類型,抽象控制器中對預生成的各幀關節(jié)坐標的管理是通過隊列實現(xiàn)的。
在離線編程仿真過程中,選擇與幀率相同的路徑更新率(一般為60 Hz)進行路徑生成。離線編程的腳本動畫生成流程如圖6(a)所示。
在離線監(jiān)控模式下,從離線編程軟件或?qū)嶋H生成過程中獲得關節(jié)空間的頻率往往達不到幀率,需要進行插補操作,因為實際關節(jié)坐標的獲取間隔較長,中間幀采用勻速插補,類似于直線過渡的關節(jié)空間路徑生成,只是在極短的時間段內(nèi)的一種簡化處理,插補點的關節(jié)坐標為:

式中:為關節(jié)坐標,=1,2,3,…,,為關節(jié)數(shù)量;Δ為關節(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)控服務器、監(jiān)控服務器和仿真場景的雙向通信。因此套接字(Socket)通信實現(xiàn)的TCP協(xié)議網(wǎng)絡通信是最優(yōu)的選擇。對于和機器人控制器之間的通信,以機器人廠商提供的接口為較好,其底層邏輯一般也是基于Socket通信的,也可以在機器人指令中使用Socket通信實現(xiàn)相關功能。
優(yōu)先使用機器人廠商提供的接口進行控制器與監(jiān)控服務器之間的通信。以ABBPCSDK為例,其使用需要在高版本的.NetWPF或WinForm框架下,表3是PCSDK常用命名空間的功能[17]。
只需要連接控制器并從控制器中獲取關節(jié)坐標即可,對于未在仿真場景中綁定的機器人控制器可以忽略。監(jiān)控服務器應保證與機器人控制器通信的可行性與穩(wěn)定性。

表3 PCSDK常用命名空間的功能
監(jiān)控服務器與仿真場景的通信除了需要獲取基本的關節(jié)坐標外,還需要綁定和解綁控制器,同時不希望此時的通信內(nèi)容與監(jiān)控服務器強相關。因此,需要定制與機器人型號、廠商無關的通信數(shù)據(jù)協(xié)議內(nèi)容。I/O信息和傳感器數(shù)據(jù)可以按需加入到通信數(shù)據(jù)中。
監(jiān)控服務器與仿真場景在同一設備上是最優(yōu)選擇,但在無法保證監(jiān)控服務器與機器人通信的可行性與穩(wěn)定性的情況下可以不在同一設備上。
在RobotStudio中設計的簡化系統(tǒng)在仿真場景中的鏡像如圖7所示,為了設計方便直接采用兩個IRB120機器人作為運動組件且沒有添加加工工具。

圖7 示例場景
使用鍵鼠和XBOX控制器可以在初期仿真中控制機器人進行關節(jié)運動和TCP運動,如圖8所示。

在RobotStudio中進行離線編程并記錄關節(jié)坐標形成存檔文件后,在終端中可以看到離線監(jiān)控過程中機器人的運動情況如圖9所示。
監(jiān)控服務器與RobotStudio虛擬控制器安裝于同一臺設備。通過終端的交互查找RobotStudio中的虛擬控制器,其信息和終端中的顯示如圖10所示,綁定控制器后開啟監(jiān)控功能并在RobotStudio中開啟仿真,如圖11所示,場景中的關節(jié)坐標與RobotStudio中一致。
由此可知,文中設計的終端基本可以達到要求。

圖9 離線監(jiān)控模式

圖10 在線控制器的地址和信息顯示
本文提出一種機器人數(shù)字孿生終端設計方案,包括機器人的運動學模型和實體模型、動畫腳本的設計模式和通信方法。該設計方法可支持不同廠商的機器人和變位機、絲桿模組等類機器人對象,設計的動畫生成腳本可適用于長時間下的離線仿真。最后使用Socket通信和PC SDK實現(xiàn)對ABB機器人的在線監(jiān)控。通過對兩個ABB IRB120機器人組成的虛擬工作站進行了驗證,本文提出的設計方法滿足實時3D數(shù)字孿生終端的基本要求,具有較好實時性和交互性。在進一步的研究中,在線監(jiān)控和遙操作的同步、監(jiān)控服務器和終端的耦合、不同加工工藝下加工安全方案等是重要的研究方向。

圖11 RobotStudio與仿真場景的交互對比
[1]王田苗,陶永. 我國工業(yè)機器人技術(shù)現(xiàn)狀與產(chǎn)業(yè)化發(fā)展戰(zhàn)略[J]. 機械工程學報,2014,50(9):1-13.
[2]劉大同,郭凱,王本寬,等. 數(shù)字孿生技術(shù)綜述與展望[J]. 儀器儀表學報,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]. 武漢:華中科技大學,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)設計方法[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]. 重慶:重慶郵電大學,2019.
[10]Unity Technologies. 3D Software Architecture, Engineering & Constructing Unity[EB/OL]. https://store.unity3d.com,2022.
[11]JOHNJCRAIG. 贠超,譯.機器人學導論[M]. 3版. 北京:機械工業(yè)出版,2006.
[12]鄭劍飛. 六自由度機械臂分布式控制系統(tǒng)的設計與研究[D]. 哈爾濱:哈爾濱工業(yè)大學,2006.
[13]耿維忠,于江饒,焦躍軍. 一種高效的CAD模型簡化方法[J]. 機械工程與自動化,2022(1):197-199,202.
[14]于倩,顧宏斌,湯勇. 基于分類的CAD數(shù)據(jù)到VR模型轉(zhuǎn)換方法[J]. 武漢理工大學學報(信息與管理工程版),2011,33(4):548-552.
[15]王曉慶,曾文英,王明文,等. 設計模式中的面向?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);江門市基礎與理論科學研究類科技計劃項目(2021030102290004572)
陳有鵬(1993-),男,安徽宿州人,碩士研究生,主要研究方向為數(shù)字孿生、增材制造路徑規(guī)劃,E-mail:836180402@qq.com。
王瑞超(1975-),男,河南臨潁人,博士,講師,主要研究方向為高效焊接技術(shù)及數(shù)值仿真,E-mail:china66988@163.com。