基于Unity的机器人系统实时3D数字孪生终端设计

2022-11-29 02:32陈有鹏李会军王瑞超高祥张翔
机械 2022年10期
关键词:离线终端动画

陈有鹏,李会军,王瑞超,高祥,张翔

基于Unity的机器人系统实时3D数字孪生终端设计

陈有鹏,李会军,王瑞超,高祥,张翔

(五邑大学 智能制造学部,广东 江门 529020)

以机器人为核心运动组件的数字孪生终端系统,有助于无人工厂安全员对工作现场进行监控,提高了无人化工厂的安全性和可控性。本文采用Unity作为虚拟现实的开发平台,设计了具有离线和在线监控功能的实时3D数字孪生终端,这种设计方法具有一定的开发敏捷性。通过建立机器人运动学模型,分析正逆运动学和路径生成方法,提出了一种机器人脚本的设计模式,实现了机器人的关节运动动画,并采用单独的服务器作为Unity中仿真场景和机器人控制器的通信中心,利用套接字通信和机器人厂商提供的接口实现了仿真场景和机器人间的实时交互。通过数字孪生终端与RobotStudio离线编程环境的交互测试,验证了该设计方案的可行性。

数字孪生;Unity;实时3D;机器人

当前,工业机器人及其组成的无人工厂已经在制造业的多个领域得到了广泛应用[1],这使得制造业工厂的集成性和智能化程度不断提高,因此对各生产系统的在线状态和异常监测等成为热点的研究方向。而数字孪生技术是指在信息化平台内建立、模拟一个物理实体、流程或系统[2],与无人工厂有很高的契合度。机器人数字孪生终端是对机器人系统的仿真和监控,并可以进行示教功能的扩展,往往在生产流程基本定型时完成,是面向系统安全员的实时3D终端。近年来,国内外学者分别设计了多种数字孪生终端。AdrianoFagali等提出了一个由移动设备实时监控和控制五轴数控机床系统[3],王丰圆[4]基于Unity动画状态机设计了一套面向车间的数字孪生系统,杜莹莹等[5]提出了基于SQL数据库的数字孪生方案,蔡宝等[6]利用工业标准OPCUA协议实现数字孪生终端和机器人实验平台的交互。这些数字孪生终端设计针对具体的工作场景进行设计并对通信协议和数据交互进行分析,但设计的终端缺少敏捷性,在应用于不同的实际工作站和进行项目迁移时往往需要重新开发。

对于实时3D的数字孪生终端,采用Unity游戏引擎开发3D项目是一个常见的选择[7-9],作为一个虚拟现实平台,方便移植到不同操作系统,并有官方支持的制造业解决方案[10]。本文对数字孪生终端的开发过程和设计模式进行了详细分析,提高了数字孪生终端的开发效率和敏捷性。采用类似本文的方式设计数字孪生终端可以实现对多种型号和厂商机器人的支持,通过Unity的预制件功能实现不同生产场景的快速虚拟化,同时可以支持变位机和丝杆模组等生产过程中的运动组件。

1 终端的系统分析和设计

机器人数字孪生终端由机器人系统仿真场景和监控服务器两个部分组成。仿真场景基于Unity3D搭建,可以查看机器人系统并可对机器人进行虚拟操作,依据存档文件或监控服务器得到的数据进行仿真。监控服务器从机器人控制器中获得运动数据发送到仿真场景中。机器人厂商提供的接口不一定支持Unity的Mono框架,以ABBPCSDK为例,直接在Unity和通用控制台下编译会报错。对于不一定支持工业标准OPC UA的非标机器人和其他运动组件,定制监控服务器是必要的。

分别设计仿真场景和监控服务器,其中仿真场景是Unity3D的一个场景,监控服务器的框架与使用机器人有关,并将仿真场景和机器人控制器作为网络通信时的客户端,如图1所示,监控服务器作为与仿真场景和机器人控制器之间通信的中介,负责依据仿真场景的绑定在机器人控制器和仿真场景间传输数据。为加强系统的易用性,针对不同厂商的机器人提供监控服务器各种实现方案,这体现了开发的敏捷性。

图1 通信模式

图2描述了数字孪生终端的使用用例。初步仿真是在终端中使用键鼠和控制器等输入设备控制虚拟机器人进行关节运动和TCP运动,验证终端的虚拟工作站对实际工作站的仿真准确性。离线编程是对机器人进行离线编程和路径规划的过程,这个功能可以通过不同机器人厂商提供的离线编程软件实现。离线监控是把在离线编程软件或试生产过程中得到的关节坐标存档文件在终端生成仿真动画,并进行碰撞检测等安全性测试的过程。在线监控是在实际生产过程中监控工作站中机器人类对象的关节坐标、生产情况和传感器指数的过程。

图2 数字孪生终端的概念用例示意图

2 终端中机器人的虚拟模型

2.1 机器人运动学模型

建立运动学模型的目的是将机器人的位姿描述在关节空间和笛卡尔空间之间转换以实现虚拟机器人进行运动控制。常用的工业机器人可以有很多不同的运动学构型,此时正运动学的形式不一致,并可能没有逆运动学封闭解,这被认为是虚拟机器人脚本类包含“变化”的重要原因。以ABB IRB120为例,该六轴串联机器人,有六个关节且均为旋转关节,机构简图如图3所示,改进D-H连杆参数如表1所示。

图3 ABB IRB120机器人机构简图

表1 IRB120的改进D-H连杆参数表

表中:α-1为连杆扭矩,即一个关节轴相对另个一关节轴绕其公共法线的扭矩;a-1为连杆长度,即两个关节的轴间公共法线长度;θ为连杆转角,即一个关节与下一个关节的公共法线和它与上一个关节的公共法线绕这个关节轴的转角;d为连杆偏距,即一个关节与下一个关节的公共法线和它与上一个关节的公共法线沿这个关节轴的距离。

对于机器人连杆,在右手坐标系下改进D-H法的连杆变换矩阵为[11]:

通过连杆变换矩阵连乘可以得到运动学公式为:

在此基础上,可以进一步得到基底到工具中心点的变换为:

常见六轴工业机器人满足Pieper准则,可通过Pieper解法获得逆运动学方程的封闭解。

2.2 虚拟机器人轨迹生成

在验证虚拟示教得到结果时,除对指令代码的解释外,还需要得到执行指令过程中机器人每帧内的关节坐标,即路径更新率为60 Hz的轨迹生成问题。原则上,虚拟机器人的轨迹生成算法应尽可能与厂商的算法接近。

以下介绍笛卡尔空间直线轨迹生成。直线轨迹生成是已知始末两点、求取中间的插补点,对于不少于六个自由度的机器人,其笛卡尔坐标中的点使用位姿描述,即位置和旋转姿态。在姿态以固定角或欧拉角描述时,各插补点可通过下式求出[12]:

式中:为归一化因子,与轨迹生成中的过渡曲线相关;Δ、Δ、Δ、Δ、Δ、Δ为位姿的增量。

2.3 机器人的三维实体模型

机器人的三维实体模型是对实体机器人的抽象和简化,是机器人仿真系统的基础。一般地,部分机器人厂商提供了对应三维CAD模型,也可以通过SolidWorks、Pro/E等3DCAD软件建立模型,这类模型往往包含大量的网格、工程设计信息,缺少光照和法线贴图,并不适合在实时3D系统中展示。尽管目前有多种模型转换方法实现[13-14],为了在实时3D环境下更好地进行操作和展示,在三维动画软件中进行进一步处理,调整好关节之间的父子关系和坐标系位姿,保证实体模型和实际机器人运动学描述的差距在可控范围内。

图4分别展示了厂商提供的三维CAD模型和仿真场景使用的模型。图4(a)为SolidWorks中的模型,拥有较多的面片和细节、复杂的父子关系;图4(b)是在Blender中修改的模型,减少了模型的面片数量、并去除了不必要的细节,同时调整了机器人实体模型关节之间的父子关系和坐标系位姿,得到的实体模型可以减少数字孪生终端的性能消耗,并简化运动动画和监控相关的C#脚本的复杂度。通过对机器人类对象的实体模型进行处理,可以优化终端性能并使得不同机器人和其他运动组件可以应用相同的设计模式。

2.4 虚拟机器人运动动画的实现

2.4.1 机器人类对象设计模式

在仿真场景中,工业机器人、变位机、丝杆模组等运动组件在需要实时控制关节空间坐标的情况下均视为机器人类对象。加工工具作为机器人最终关节的子对象,承载了加工过程相关的动画与Shader特效。在三维动画软件中设置好关节间的父子关系和坐标后,运动学模型即可应用于虚拟三维实体模型。基于机器人脚本类的“变化”,尤其是集成到相关方法的正逆运动学公式和路径生成方法的变化,并重写相应方法,这意味着对于“变化”的封装[15],在C#语言中是通过接口或抽象类实现的,图5是简化后的运动动画相关脚本的对象图。

图4 ABB IRB120实体模型

因为脚本类不能创建且必须继承自MonoBehavior[16],机器人脚本类对“变化”的封装需要通过抽象类实现,其主要功能如表2所示,对于不需要在基类中实现的单段运动指令和有限状态机,则通过接口实现。同时鉴于Unity使用的PhysX物理引擎和仿真场景的连续性要求,不对机器人类对象设置除了碰撞外的物理效果。

图5 简化的脚本对象图

表2 关节和机器人类的主要方法

2.4.2 实时关节空间坐标与脚本动画生成

在除前期仿真外,希望获得每帧的关节坐标以获得连续的运动动画。考虑到脚本的生命周期,在可预载脚本的Update方法中直接控制机器人的关节坐标,本文称为抽象控制器类型,抽象控制器中对预生成的各帧关节坐标的管理是通过队列实现的。

在离线编程仿真过程中,选择与帧率相同的路径更新率(一般为60 Hz)进行路径生成。离线编程的脚本动画生成流程如图6(a)所示。

在离线监控模式下,从离线编程软件或实际生成过程中获得关节空间的频率往往达不到帧率,需要进行插补操作,因为实际关节坐标的获取间隔较长,中间帧采用匀速插补,类似于直线过渡的关节空间路径生成,只是在极短的时间段内的一种简化处理,插补点的关节坐标为:

式中:为关节坐标,=1,2,3,…,,为关节数量;Δ为关节坐标的增量;1为离线监控模式的归一化因子,由式(6)求出。

式中:=1,2,3,…,;为总插补点数。

离线监控模式下的脚本动画生成流程如图6(b)所示。

动画生成流程在FixedUpdate方法下实现最优。

图6 动画生成流程

3 机器人控制器与终端通信的实现

在线监控功能的实现需要机器人控制器和监控服务器、监控服务器和仿真场景的双向通信。因此套接字(Socket)通信实现的TCP协议网络通信是最优的选择。对于和机器人控制器之间的通信,以机器人厂商提供的接口为较好,其底层逻辑一般也是基于Socket通信的,也可以在机器人指令中使用Socket通信实现相关功能。

3.1 机器人控制器与监控服务器的通信

优先使用机器人厂商提供的接口进行控制器与监控服务器之间的通信。以ABBPCSDK为例,其使用需要在高版本的.NetWPF或WinForm框架下,表3是PCSDK常用命名空间的功能[17]。

只需要连接控制器并从控制器中获取关节坐标即可,对于未在仿真场景中绑定的机器人控制器可以忽略。监控服务器应保证与机器人控制器通信的可行性与稳定性。

表3 PCSDK常用命名空间的功能

3.2 监控服务器与仿真场景的通信

监控服务器与仿真场景的通信除了需要获取基本的关节坐标外,还需要绑定和解绑控制器,同时不希望此时的通信内容与监控服务器强相关。因此,需要定制与机器人型号、厂商无关的通信数据协议内容。I/O信息和传感器数据可以按需加入到通信数据中。

监控服务器与仿真场景在同一设备上是最优选择,但在无法保证监控服务器与机器人通信的可行性与稳定性的情况下可以不在同一设备上。

4 结果验证

在RobotStudio中设计的简化系统在仿真场景中的镜像如图7所示,为了设计方便直接采用两个IRB120机器人作为运动组件且没有添加加工工具。

图7 示例场景

使用键鼠和XBOX控制器可以在初期仿真中控制机器人进行关节运动和TCP运动,如图8所示。

在RobotStudio中进行离线编程并记录关节坐标形成存档文件后,在终端中可以看到离线监控过程中机器人的运动情况如图9所示。

监控服务器与RobotStudio虚拟控制器安装于同一台设备。通过终端的交互查找RobotStudio中的虚拟控制器,其信息和终端中的显示如图10所示,绑定控制器后开启监控功能并在RobotStudio中开启仿真,如图11所示,场景中的关节坐标与RobotStudio中一致。

由此可知,文中设计的终端基本可以达到要求。

图9 离线监控模式

图10 在线控制器的地址和信息显示

5 小结

本文提出一种机器人数字孪生终端设计方案,包括机器人的运动学模型和实体模型、动画脚本的设计模式和通信方法。该设计方法可支持不同厂商的机器人和变位机、丝杆模组等类机器人对象,设计的动画生成脚本可适用于长时间下的离线仿真。最后使用Socket通信和PC SDK实现对ABB机器人的在线监控。通过对两个ABB IRB120机器人组成的虚拟工作站进行了验证,本文提出的设计方法满足实时3D数字孪生终端的基本要求,具有较好实时性和交互性。在进一步的研究中,在线监控和遥操作的同步、监控服务器和终端的耦合、不同加工工艺下加工安全方案等是重要的研究方向。

图11 RobotStudio与仿真场景的交互对比

[1]王田苗,陶永. 我国工业机器人技术现状与产业化发展战略[J]. 机械工程学报,2014,50(9):1-13.

[2]刘大同,郭凯,王本宽,等. 数字孪生技术综述与展望[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]王丰圆. 基于数字化双胞胎的三维可视化车间系统研究[D]. 武汉:华中科技大学,2019.

[5]杜莹莹,罗映,彭义兵,等. 基于数字孪生的工业机器人三维可视化监控[J/OL]. 计算机集成制造系统,2022-10-18:1-15.

[6]蔡宝,朱文华,史秋雨,等. 虚实融合的工业机器人实验平台研究[J]. 机床与液压,2021,49(23):54-60.

[7]潘俊浩,卓勇,侯亮,等. 一种基于Unity3d的工业机器人示教系统设计方法[J]. 组合机床与自动化加工技术,2017,521(7):110-115.

[8]刘谋玉,汪地,姜海龙. 基于Unity3D的机器人仿真和遥操作系统研究[J]. 工业控制计算机,2016,29(9):97-99.

[9]耿琦琦. 基于数字孪生仿真建模的机器人状态监测技术研究[D]. 重庆:重庆邮电大学,2019.

[10]Unity Technologies. 3D Software Architecture, Engineering & Constructing Unity[EB/OL]. https://store.unity3d.com,2022.

[11]JOHNJCRAIG. 贠超,译.机器人学导论[M]. 3版. 北京:机械工业出版,2006.

[12]郑剑飞. 六自由度机械臂分布式控制系统的设计与研究[D]. 哈尔滨:哈尔滨工业大学,2006.

[13]耿维忠,于江饶,焦跃军. 一种高效的CAD模型简化方法[J]. 机械工程与自动化,2022(1):197-199,202.

[14]于倩,顾宏斌,汤勇. 基于分类的CAD数据到VR模型转换方法[J]. 武汉理工大学学报(信息与管理工程版),2011,33(4):548-552.

[15]王晓庆,曾文英,王明文,等. 设计模式中的面向对象原则及其子模式[J]. 计算机工程,2003(9):192-194.

[16]宣雨松. Unity3D游戏开发[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

江门市创新科研团队引进资助项目(2018630100090019844);江门市基础与理论科学研究类科技计划项目(2021030102290004572)

陈有鹏(1993-),男,安徽宿州人,硕士研究生,主要研究方向为数字孪生、增材制造路径规划,E-mail:836180402@qq.com。

王瑞超(1975-),男,河南临颍人,博士,讲师,主要研究方向为高效焊接技术及数值仿真,E-mail:china66988@163.com。

猜你喜欢
离线终端动画
异步电机离线参数辨识方法
做个动画给你看
动画发展史
浅谈ATC离线基础数据的准备
X美术馆首届三年展:“终端〉_How Do We Begin?”
我的动画梦
通信控制服务器(CCS)维护终端的设计与实现
FTGS轨道电路离线测试平台开发
GSM-R手持终端呼叫FAS失败案例分析
动画批评融入动画教育的思考