Unity3D如何实现数字孪生
数字孪生(Digital Twin):为物理对象建立对应的数字模型,该模型可以通过接收来自物理对象的数据而实时演化,从而与物理对象在全生命周期保持一致。基于数字孪生,我们可以进行分析、预测、诊断、训练等(即仿真),并将仿真结果反馈给物理对象,从而对物理对象进行优化和决策。
相比对数字孪生的认识,那么更重要的是如何实现数字孪生。Unity3D作为被广泛使用的实时3D创作平台,拥有很大的开发者群体,并且在多个领域被应用,比如工业中数字孪生。
使用 Unity 能够对模型数据、传感器数据或点云数据进行实时传输和渲染,在添加物理特性和行为逻辑后,不仅可以将简单、抽象的模型和数据处理为照片级的实时渲染效果,还可以在多个平台以 AR/VR/MR 的形式进行交互,实现数字孪生。
目前,使用Unity实现数字孪生,传统的方式是数据服务跟Unity之间通信实现。
首先,加工设备安装IOT设备,IOT将获取PLC数据并以JSON的格式实时上传。
其次,需要有一个接收服务,可以是写的一个简单的接收数据后端服务,接收IOT上传的数据。
再次,Unity通过HTTP或者Socket方式从服务端实时获取数据。
最后,通过实时获取的数据,在Unity中实时对映射的虚拟设备(虚拟设备以现在都是手动建模)驱动。
如果要反向控制,则反向,由Unity发出命令,服务接收命令,iot获取命令给PLC 从而控制物理设备。
这就是一个数字孪生工厂实现的过程,看着很简单,但其实像IOT到服务到Unity,数据之间通信是比较麻烦的事情,既要保证数据的实时性,还得保证数据的正确性。如下图,最能说明这个过程。
工业机械硬件控制最常用的就是PLC来实现,PLC与机械,PLC与PLC之间也会有固定的通信协议来通信。其实数字孪生的实时数据就是来自PLC。这里大家就会想到,那我们直接用Unity和PLC通信就可以,为什么还要有个服务?其实这样是可以的,不用IOT和后端服务,但是现在市场上有很多的通信协议,比如MQTT 、OPC-UA等等,每家PLC的通信协议不同。
福音来了。。。。
近来,Unity加大了在工业领域的投入,解决了以下问题
(1)数据通信
(2)模型从CAD到Unity的转换。
整个数字孪生平台可以表现如下图
1、模型处理,CAD数据模型处理工具Pixyz。
常规处理:
Pixyz数据模型处理:
2、数据通信,工具PREspective,这个工具作用:
提供多种工业通信协议的接口;
提供复杂物理碰撞仿真;
提供网格合并,物体单选等工具;
提供机械仿真工具;
接入物理仿真模型文件,如Matlab、Anasys等。
Unity换提供了InterAct(功能性快速开发工具)、Reflect(一键转换BIM数据至实时3D环境)和MARS(快速AR、VR开发工具)。
主要介绍一下InterAct,这个工具比较强大。
INTERACT是直接从CAD模型创建高级AR/VR和XR应用程序的强大平台。
它的高精准物理引擎可在任何AR/VR配置上提供复杂的模拟,这包括碰撞检测、人体工程学分析、超大点云数据可视化。
快速迭代:INTERACT的目标是使用虚拟仿真让决策过程更快速、更轻松和更加以人为中心。
功能下图展示:
解决了数据模型和数据通信,那整个数字孪生技术方案就显而易见:
CAD模型数据通过Pixyz转换到Unity,物理设备PLC通过PREspective工具通信和定义行为,使PLC数据实时传输到Unity驱动虚拟设备,(开发过程可借InterAct等工具),Unity发布成所需平台。
形成方案: