其实有不少人应该知道,Unity在今年六月刚刚发布了智能制造数字孪生工具包 Unity Manufacturing Toolkit(Alpha),旨在帮助零基础用户迅速构建智能制造数字孪生系统,方便连接物理与真实世界,增强研发、生产、销售能力(https://unity.cn/product/umt)。 我也很想上来就介绍这个产品以及和他相关的一切,但是在此之前,我们还是得看看,通常的流程,或者说我们不借助工具的情况下,是不是也可以做一个简单的数字孪生原型。 上一篇文章,我们提到了数字孪生本质上是一种基于真实模型和实际物理数据的可视化方案,通过对接实际数据,在三维界面中展示孪生结果,然后在此之上进行交互。除了虚实同步,未来更多是为了做到一些,现实世界中做不到,或者说代价较高的事情——比如模拟新的生产工艺,3D打印的快速验证。 这样考虑,整个流程其实就变得非常简单。从底层来看,和传统的应用其实相同,输入数据,分析数据,展示数据。

输入数据

对于输入数据,我们首先要考虑,我们可以拿到什么,拿不到什么。比如我们可以拿到模型数据,拿得到实际设备运动的信号数据。然后我们需要考虑,拿到的数据如何处理,拿不到的数据如何模拟。这里我们先分两大类来讨论数据。

模型数据

工业上常常会用到CAD模型,CAD模型具有精确、统一的特点,但是CAD不是三角面片,我们不能直接导出到Unity中,而且导入之后有很多不合理的地方,例如面片杂乱、面数过高等问题。针对这个问题我们可以看看pixyz:
pixyz可以帮助用户完成模型减面、修复、合并等操作。
能够导入CAD模型,生成对应的三维模型,并且保证导入的CAD模型的层级结构不会发生变化;提供自动化减面的工具,极大减少减面的工作量;提供UV生成工具,可以自定义贴图效果(但是这一步一般会在Unity完成)‘提供网格工具,方便用户进行网格合并、网格减面、网格坐标系调整等操作
具体内容在此不过多赘述,通过pixyz,我们可以直接将各种模型变成.fbx模型。很多人会觉得,为什么不用专业建模软件去生成,或者通过Blender来做呢?
答案很简单:因为CAD模型可以白嫖啊!
其实不只是白嫖,机械模型本身非常复杂,使用建模软件再去生成,相当消耗人力。而CAD本身作为标准,在制作机械的时候是一定要提供的,相当于机械模型的零件按照CAD的制作,肯定是准确的,厂家一定都有,一般购买设备都可以要求提供。所以能够一比一还原,肯定比重建更加容易。

信号数据

通产机械硬件的控制会通过PLC(Program Logic Controller)来实现,PLC与机械,PLC与PLC之间也会有固定的通信协议来通信。那么这里大家就会想到,我们CAD用的原始的,是不是信号也可以直接和PLC来进行通讯。没错,信号获取就是与PLC通信来实现。但是每家PLC的通信协议不同,有MQTT,Modbus,OPC_UA,各个信号都有对应的监听工具,我们可以尝试去监听,模拟。得益于Unity的拓展性,所有的信号我们都可以进行接入,只是整个信号接入的过程需要进行大量的协议适配工作,官方也提供了一些工具,或者在Assets Store可以下载到对应的插件,因为未来我们要介绍UMT,在此就不再赘述,有兴趣的同学还可以去了解一下Perspective,算是做的比较好的。

逻辑数据

这部分数据,其实更多是我们用来模拟一些不能实现的信号。比如夹爪夹起某个物体,可是实际上,这个物体的信号我们是没办法获取的。我们能做的,就是检测夹爪的信号,比如夹爪开关到某个角度,或者开始移动,来判断物体在什么位置。这部分就涉及到逻辑数据的仿真,都需要我们自己来完成脚本,并且进行逻辑绑定。

数据分析

数据分析大概分为监测和预测两类。
监测就比较简单,基本上就是数据的呈现,或者说可视化。拿到什么,展示什么,然后通过脚本添加一些限定条件,在异常情况下进行报警。
预测则比较复杂,可能涉及到一些人工智能的算法,对数据聚类、分类、进行深度学习,机器学习。这就需要和其他专业的人才进行合作。比较好的一点是,Unity可以接入各种语言,各种模型。有兴趣的可以去了解一下各类预测模型。

数据展示

数据展示就是三维展示了,Unity就不做过多介绍了,在三维实时渲染领域已经有了很多的成功案例。那么我们这里为什么会选择使用Unity来实现数字孪生系统呢?
首先,数字孪生对实时性要求较高,实时渲染引擎具有天然的优势。我们看到很多老牌的数字孪生软件,画面都比较差,更多的是数据流的模拟,而技术进步,我们也应当更新。
其次,入门简单,稳定性高,工具丰富,极大地降低了开发者搭建数字孪生场景的难度。
最后一点也是最重要的一点,Unity的可拓展性,让我们可以接入外界的一切,不论是预测模型,仿真算法,还是数据湖,传统工业软件(例如ERP,MES),所有的一切都融入到这一个虚拟世界里,才算是真正的数字孪生。
本文其实还是对整个技术栈和我们需要解决问题的梳理。后面的文章回陆续介绍,pixyz的使用,解决模型导入的问题,以及到了Unity之后,我们着重通过UMT的使用,来构建一个简单的数字孪生原型Demo。
能做出一个机械臂,就一定能做出整个工厂。
Logo

分享前沿Unity技术干货和开发经验,精彩的Unity活动和社区相关信息

更多推荐