Unity 数字孪生笔记 工具介绍

摘要:
从上面的总结可以看出,PREs除了具有数字孪生所必需的通信协议接口外,还包括一些仿真逻辑。数据预测经典的预测模型有很多,这里不详述异常检测异常预测模型三维显示UnityUnity就不做过多介绍了,在三维实时渲染领域已经有了很多的成功案例。那么我们这里为什么会选择使用Unity来实现数字孪生系统呢?因为在数字孪生中,如果我们缺乏实际数据的输入,那么对于机械臂来说,我们还能使用一些其他工具进行仿真,FinalIK就是其中较好的一个。

流程思考

数字孪生本质上一种基于实际物理数据的可视化方案,通过对接实际数据,在三维界面中展示孪生结果。
那么这个流程就很简单了。
Power by Draw.io
整个流程分为三块:数据来源-》数据分析-》数据展示

输入数据

首先我们需要考虑我们能拿到什么。第一,实际物体的三维数据从哪里来,第二,实际数据怎么获取到。

模型数据

工业上常常会用到CAD模型,CAD模型具有精确、统一的特点,但是CAD不是三角面片,我们不能直接导出到Unity中,而且导入之后有很多不合理的地方,例如面片杂乱、面数过高等问题。针对这个问题我们祭出我们的第一把工具:PIXYZ。
PIXYZ简介

在这里插入图片描述

具体内容这里不做介绍,大概的意思就是:

  • 能够导入CAD模型,生成对应的三维模型,导入的CAD模型的层级结构不会发生变化;
  • 提供自动化减面工具,减少工作量;
  • 提供UV生成工具,可以自定义贴图效果;
  • 提供网格工具,方便用户进行网格合并、网格减面、网格坐标系调整等;
  • 支持在runtime进行导入。

获取到这个工具之后,CAD模型的导入就不成问题了。
有同学就会问了,为啥不用Maya这些建模软件去生成呢。
首先机械模型非常复杂,Maya这些建模软件去生成,就会相当消耗人力,而且不一定精确。其次,CAD作为标准,相关的机械提供商已经有对应的CAD模型数据,再去重建就是吃力不讨好的事情。

有了模型数据之后,我们来看看信号数据的接入。

信号数据

通产机械硬件的控制会通过PLC(Program Logic Controller)来实现,PLC与机械,PLC与PLC之间也会有固定的通信协议来通信。那么这里大家就会想到,我们直接与PLC通信不就好了。对!实际信号的获取就是与PLC通信来实现。但是每家PLC的通信协议不同,需要进行大量的协议适配工作。
这里我们要说到我们的第二把工具:PREspective(后面统称PREs)
这个工具是Unity的工业插件之一,可以找Unity的人申请License。
这个工具的作用是:

  • 提供多种工业通信协议的接口;
  • 提供复杂物理碰撞仿真;
  • 提供网格合并,物体单选等工具;
  • 提供机械仿真工具;
  • 接入物理仿真模型文件,如Matlab、Anasys等。
    在这里插入图片描述

从上面的总结可以看出,PREs除了具有数字孪生所必需的通信协议接口外,还包括一些仿真逻辑。这些功能也帮组我们更好的搭建数字孪生平台。

数据分析

我们拿到实际数据之后,我们能做什么呢?我们需要做数据分析对吧,我们需要做物理模型的计算。这里其实也是使用的PREs对其他第三方的模型进行接入。
数据预测
经典的预测模型有很多,这里不详述
异常检测
异常预测模型

三维显示

Unity

Unity就不做过多介绍了,在三维实时渲染领域已经有了很多的成功案例。那么我们这里为什么会选择使用Unity来实现数字孪生系统呢?
这可以分为两方面来讨论:

  • 数字孪生对实时要求高,实时渲染引擎具有天然的优势
  • 数字孪生的开发,需要学习成本低、工具丰富的引擎
    因此,本着入门简单、稳定性能高、工具丰富的原则,Unity是不二之选。

FinalIK

这是一个反向运动学的解算插件,为什么我们会在这里提到这个插件呢。因为在数字孪生中,如果我们缺乏实际数据的输入,那么对于机械臂来说,我们还能使用一些其他工具进行仿真,FinalIK就是其中较好的一个。

免责声明:文章转载自《Unity 数字孪生笔记 工具介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇几个前端时间插件总结数据层的多租户浅谈(SAAS多租户数据库设计)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

unity inputfield 过滤emoji输入

unity版本:unity2017.1.5f1 复现步骤:InputField在安卓手机InputField连续输入两个emoji会报错 报错内容: 2020-01-08 19:56:38.366 22894-22931/? E/Unity: ArgumentOutOfRangeException: Argument is out of range....

unity3d开发环境配置

1. 首先先下载软件包:http://pan.baidu.com/s/1imYVv  4.2版本2.下载完后,解压会看到两个文件(运行第二个安装包) 3.准备安装,这里直接上图了。 这里全选,里面包括运行媒体之类的。 这里自己选择安装目录。如果你C盘空间不够,可以选择其他盘 开始安装了,等待几分钟 安装成功,去掉勾选Run暂时不需要启动。   ...

Unity打开外部程序exe/Bat文件方案

Unity调用外部程序/Bat文件 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新!助力完成 Unity 打开外部程序 exe / bat 文件为新手节省宝贵的时间,避免采坑! Chinar 教程效果:...

unity 游戏第一次安装完之后运行,切出来,点击桌面图标后黑屏问题

unity 游戏第一次安装完之后运行,切出来,点击桌面图标后黑屏问题 这个问题只会在第一次出现,之后就是桌面进入了,不会再出现这个问题了 这是一个解决办法吧: 就是将安装之后运行的游戏杀死,然后在重新进入游戏,  // 在onCreate()最前面添加一下代码 if (!isTaskRoot()) { final Intent intent = g...

unity Vectrosity插件画线

usingUnityEngine; usingVectrosity; public classmyLines : MonoBehaviour { voidStart () { //定义屏幕上的6个点,左下角为(0,0) var linePoints = new List<Vector2>() { new...

unity, 设置帧率上限

用unity做了个demo,把所有开销大的特效都去了,在真机上运行仍然卡。显示帧率来看,最高到30。原来unity在ios设备上帧率默认限制为不超过30。 可以通过Application.targetFrameRate = 60;改成最高60。注意这个设置对编辑器无效。 参考: http://answers.unity3d.com/questions/32...