陸 康,武嘉年,李 紅
(1.合肥學院 生物食品與環境學院,安徽 合肥 230601;2.合肥學院 人工智能與大數據學院,安徽 合肥 230601)
UR5e協作機器人為智能制造時代下制造業的高重復性、高耗時、高危險性勞動替代提供了完美的解決方案,提高了企業生產效率,同時利用極其靈活的自動化平臺改變做事方式得到了許多企業的青睞。隨著新一代信息技術與制造業的融合與應用[1]。制造業對協作機器人的使用需求也在進一步提高。目前制造業生產線上協作機器人不僅需要面對復雜的非結構化的工作環境,同時由于生產線上設備數量較多,布置分散[2],無法及時獲取協作機器人的工況信息,一旦發生故障很容易對生產安全與效率產生重大影響。目前絕大多數的協作機器人仍然采用人工現場示教器進行操作,工作較為繁瑣,耗費大量人力且并不能第一時間掌握產線上協作機器人的實時運行工況,只有發生了異常之后,才可以做出相應的對策[4],存在重大的安全隱患。如何實現制造業的物理世界與信息世界的互聯互通,以及智能化操作是當前國內外實現智能制造的瓶頸之一[5]。
因此,建立一種新的UR5e協作機器人數字孿生系統[6].以實際生產線中的UR5e協作機器人為開發平臺,采用物聯網為技術核心[7]。通過UR5e協作機器人提供的上位機編程端口采集UR5e協作機器人的實時運行數據與各個實時控制參數,構建可視化的遠程監控;同時利用采集到的歷史運行數據并解析UR5e協作機器人各關鍵子模塊參數,建立靜態信息觸發與動態實時信息觸發,對UR5e協作機器人的工作狀態進行精確地數字化描述[8],提高UR5e協作機器人在實際生產環境中的可操作性行,降低了生產制造中因非計劃停產帶來的經濟損失,實現了通過數字孿生系統來模擬[9]、監控、診斷、預測和控制實際生產環境中的UR5e協作機器人。
UR5e協作機器人數字孿生系統以Unity3D為開發平臺[10],借助DOT NET平臺提供的編程語言C#,實現對UR5e協作機器人在實際生產環境中工作狀態的監控、預警功能。Unity3D是一款實時3D互動內容創作和運營平臺,可用于三維場景的構建。它的靈活性使開發者能夠為超過20個平臺創作和優化內容,這些平臺包括iOS、安卓、Windows、谷歌Stadia,微軟Hololens等等。Unity3D同時具備強大的渲染能力,能夠導入3DMax等外部建模的軟件模型,使UR5e協作機器人的虛擬實體更加逼真;其C#腳本編程語言可根據實際任務的需求在源代碼的基礎之上二次開發。也可以編程實現與UR5e協作機器人物理實體的通信。
基于Unity3D的UR5e協作機器人數字孿生系統支持靜態信息觸發、動態實時信息觸發、采集實際生產環境中UR5e協作機器人的運行狀態,包括目標轉動軸當前位置、關節轉動角度、關節移動的加速度等。同時也預留了UR5e協作機器人作為服務器的通訊端口便于進行功能擴展和二次開發。該系統主要包含三大模塊:UR5e協作機器人的動、靜態信息觸發模塊、信息可視化模塊[11],以及系統接口模塊。UR5e協作機器人的數字孿生系統功能結構見圖1。

圖1 UR5e協作機器人的數字孿生系統功能結構
從丹麥尤傲UR協作機器人廠家獲取UR5e協作機器人的3D模型并導入到3D Max建模軟件中,因在實際工作期間UR5e協作機器人的轉動工作是協調的,低能量損耗的。所以需將各個子模塊的邏輯關系在Unity 3D引擎中根據各個部件旋轉軸與它們的父子級關系重新構建。UR5e協作機器人的虛擬實體模型如圖2。

圖2 在選中條件下UR5e機器人在3D Max中放大后的正交
導入到Unity 3D中的虛擬實體模型缺乏邏輯關系的支撐,需要根據UR5e協作機器人的物理實體的重新定義協調、低能量損耗的邏輯關系。在導入到Unity 3D中的虛擬實體模型中將UR5e協作機器人包括7個子模塊。如表1所示。

表1 UR5e協作機器人子模塊信息參數
各個子模塊自下而上分別為:基座模塊、基座關節模塊、肩膀關節模塊、軸部關節模塊、腕關節模塊一、腕關節模塊二、腕關節模塊三、工具法蘭模塊,其中定義基座座模塊為所有人的父級,其他部分自下而上地分別為自己上一層的父級,而自己的下一級則為自己的父級。
UR5e協作機器人自身作為服務器提供了3個通信接口:30001、30002、30003。其中30001端口是第一客戶端口,客戶端可發送腳本代碼給服務器,服務器自動以5 Hz的頻率返回機器人狀態與補充消息到客戶端;30002作為第二客戶端端口,它可以自動返回機器人的狀態消息,客戶端可發送腳本代碼安全文件傳輸協議,服務器自動以5Hz的頻率返回機器人狀態與消息到客戶端,30003端口作為實時反饋端口,自動返回機器人的狀態與消息的同時,客戶端可發送腳本代碼安全文件傳輸協議,服務器自動以125 Hz的頻率返回機器人狀態與消息到客戶端。通過30003上位機編程接口可以與UR5e協作機器人進行通信。UR5e協作機器人數字孿生系統數據處理與流程控制如圖3所示。

圖3 UR5e協作機器人數字孿生系統數據處理與流程控制
經實際實驗測試,30003端口會收到1108字節。實際情況下,在返回的數據包的前4個字節中,給出了數據包中包含信息的字節數。根據UR5e協作機器人官方提供的文檔可以得到30003端口實時反饋的數據是UR5e協作機器人運行狀態所包含的信息。信息數據包以字節數組的形式返回全部信息,通過其官方文檔得到各個運行狀態信息的總長度、數據類型、數據個數以及所對應的字節位置。信息數據包的總長度對應著反饋信息數據的前4個數據,例如關節實際位置信息對應著的是Double類型的字節數組,數據個數為6個,其對應位置處于字節數組中26~31的位置。部分信息參數如表2所示。

表2 30003接口實時反饋信息參數
通過Unity3D平臺支持的C#腳本作為編程語言,將UR5e協作機器人作為服務器,出于對高精密器械的要求,因TCP協議相較于UDP協議更安全更可靠,使用TCP/IP協議作為動、靜態信息觸發的網絡通訊協議,保證采集到的UR5e協作機器人實時運行狀態下關節轉動角度、關節當前加速度等數據的精確性。
UR5e協作機器人動、靜態信息觸發需要對數據進行操作和管理,而數據的數據庫設計包括存放于本地的靜態數據和UR5e協作機器人的動態運行數據。與數據庫的通訊方式采用TCP/IP通訊協議方式。主要用于收集、存放以及傳輸UR5e協作機器人的關節轉動角度、關節當前電流、關節當前加速度等數信息等,通訊方式架構示意如圖4所示。

圖4 UR5e協作機器人數字孿生系統通訊方式架構示意
使用UR5e協作機器人自身提供的30003通訊端口,將接收到的實時六軸轉動數據同步到Unity3D之前創建好的UR5e協作機器人的虛擬實體模型中。在Unity 3D虛擬場景中創建6個變量分別來存儲UR5e協作機器人的實時轉動數據,編寫代碼控制并實時更新六軸轉動數據,根據Unity3D中C#腳本,經實際實驗對比發現自身提供FixedUpdate方法可以滿足實時更新的操作,因Unity 3D中自帶的FixedUpdate方法在固定的時間間隔執行,不受FPS(畫面每秒傳輸幀數)的影響,在Unity3D中需對3D模型進行物理處理的情況下會使用到FixedUpdate方法。FixedUpdate方法的時間間隔也可以在項目設置中進行更改,根據UR協作機器人的30003端口來更新在Unity3D中建立好UR5e協作機器人的虛擬實體模型。方法其生命周期流程如圖5所示。

圖5 C#腳本生命周期流程
通過上位機發送控制命令從而遠程控制UR5e協作機器人運動,即通過TCP/IP通訊協議向UR5e協作機器人提供的30003口發送控制請求數據包。所使用的編程語言是官方提供的URScript,實驗室所用UR5e協作機器人的型號是CB-Series,經實驗驗證比較,30003通訊端口頻率為125Hz,接收信息與反饋信息速度高于30001與30002端口,包含的信息較為全面,控制較為便捷。適合作為UR5e協作機器人上位機編程通信端口。表3為根據實驗整理出的運動控制參數表。

表3 運動控制參數
發送的指令中,空間位置以m為單位,速度單位為m/s,加速度單位為m/s2。指令后需加回車符號換行,即” ”。常用控制指令主要有3個,只需使用前2個即可很好地控制機器人運動。使用TCP/IP通訊協議與Unity3D的虛擬實體模型,將現實中的UR5e協作機器人映射到了虛擬空間中,有別于傳統模型[12],UR5e協作機器人數字孿生系統實現了虛實之間的交互,能實時更新與動態演化,如圖6所示為UR5e協作機器人基于RoboDK的六軸轉動數據的獲取。

圖6 UR5e協作機器人六軸轉動數據的獲取
相較于傳統的示教器模式以及人工面對面調試模式,數字孿生系統可以實時的顯示UR5e協作機器人的動態運行數據,若發現異??梢愿鶕A設的閾值提前發出警報。實現了工作狀態智能化[9],實際生產線上位機實時檢監控圖如圖7所示。

圖7 實際生產線上位機實時檢監控
根據實際生產線上存在著協作機器人與智能制造存在不能及時進行互聯互通的信息交流問題,設計了基于Unity3D的UR5e協作機器人數字孿生系統研究,通過動、靜態信息觸發,實時信息交互以及設置閾值進行工作狀態預警功能等二次開發。實現了對UR5e協作機器人的智能化管理[10]。已運用在實際生產的協作機器人中。運行結果表明,數字孿生系統與UR5e協作機器人相結合可以代替人工和示教器,減輕制造業工作人員的勞動負擔,同時重點解決了信息不能及時反饋傳達等問題。
經實驗證明,制造業生產線搭配UR5e協作機器人數字孿生系統使得生產線上的UR5e協作機器人更加智能,更加方便管理,同時也具備執行較為危險復雜的勞動過程的能力。數字孿生技術在產品研發上為現代化工業智能制造做出了巨大貢獻。同時也提高了勞動的效率,節省了工廠的生產資源和時間。據報道,已有相關商業工具和平臺可支持數字孿生構建和應用,如MATLAB的Simulink[13],ANSYS的Twin Builder[14],微軟的Azure[15],達索的3D Experience[16]等。通過物理實體與數字孿生體之間的數據交互,使得數字孿生體可以精確化、數字化來描述UR5e協作機器人。達到通過數字孿生體來模擬、監控、診斷、預測和控制UR5e協作機器人的物理實體的目的。通過對UR5e協作機器人的數字孿生可以讓企業通過上位機端來實時監控UR5e協作機器人的行動,使UR5e協作機器人來完成一系列復雜動作,不需要通過示教器,使得企業對UR5e協作機器人的操制變得更便捷、更直觀。為企業生產節約了時間成本,降低了企業技術工人的操控難度,達到對UR5e協作機器人進行數字孿生的目的。
因本文對UR5e協作機器人的數字孿生工作是空載情況下進行的研究,并未對UR5e協作機器人在負載情況下或在進行裝配工作中的數據進行采集與實驗。當前的客戶端應用僅限于Unity3D平臺,對UR5e機器人的服務器端開發并不完善,若接下來開展進一步的研究,會將重心放在對UR5e協作機器人在負載情況下的數據采集,開發UR5e協作機器人的數字孿生服務器平臺,為UR5e機器人添加更多的傳感器,應用機器學習算法,進一步對UR5e機器人歷史運行數據的分析,包括進行多次工作后UR5e協作機器人,通過UR5e機器人的服務器系統來進一步提高生產線人員的對當前UR5e機器人設備的了解程度。通過自身誤差的自適應算法研究。通過采集到的UR5e協作機器人動態變化下數據來對UR5e協作機器人與它的數字孿生體的控制以及誤差自適應,相互反饋與迭代優化達到使UR5e協作機器人始終處于低能量損耗和高效準確的狀態下進行工作,形成良性循環。保證訓練好的算法又返回到實際工廠中去實現流程的自動化。通過完善UR5e協作機器人的服務系統與運行數據的進一步分析應用向“互聯網+”“中國制造2025”和現代服務業靠近。