7.7 KiB
iFactory.Godot
基于虚实交互和数模驱动,iFactory
能满足仿真(以虚映实)、控制(以虚控实)、预测(以虚预实)、优化(以虚优实)等应用服务需求,其中连接与交互是实现数字孪生动态运行和虚实空间高效融合的核心关键
基于Godot的iFactory客户端(网络服务和服务端已定义接口,预计使用KCP实现)
正在从Unity版(内网链接)一步一步移植到Godot中
该项目主要使用ECS架构,BITKit作为基本的dotnet框架
该项目为基准演示
,主要通过一些场景展现该软件的所有功能
由于Godot未提供相关的编辑器功能(例如暴露可编辑的class
和自定义接口实例
),该项目的进度并没有Unity
的实现速度快
Installation 安装过程
1.首先你需要安装 Godot4.0.3 Net 👉GodotEngine.Net
2.通过Git Clone两个仓库到与该仓库相同路径的文件夹,文件结构看起来像这样:
GitHub (你的项目文件夹的上一级)
iFactory.Godot 外网仓库链接
BITKit 外网仓库链接
AGV_System 内网仓库链接
3.最后在Godot中导入iFactory.Godot
4.安装完成⭐
Features 功能与模块
场景介绍
基于AGV小车提供的三维环境感知场景
基于AGV小车提供的三维环境感知,可视化当前小车的环境,任务和运行路线,可演示并手动控制小车
CPS数字孪生验证场景
由于塞昇提供的一体机没有独立显卡,该项目首先为塞昇提供低配可流畅运行的领克和嘉际模型小车装配过程验证
虚拟客机装配
该场景主要演示在该软件的快速规划下,自定义小车,装配路线和过程,验证及演示装配客机的过程
虚拟泊车演示
该场景主要用于验证和展示泊车AGV的调度方案,通过添加车辆(停车)和调取车辆(取车)的方式,验证泊车方案和并展示泊车过程
功能介绍
机位同步
- 超炫酷
零延迟
机位同步(可能需要一些硬件支持) - 基于角度的
Loopback
算法,解决了同步角度和位置时0>1>0的值被线性插值解析为0>0.7414>0的问题 - 基于物理
PBR
的三维模型,确保和现实中的设备看起来几乎一致 - 基于
Lancer.SCADA
返回数据的物料同步(例如SR7C1L
夹着物料多功能笔记本
放进交付气缸夹
)
实时数据
- 通过
Lancer.SCADA
返回的数据,试试展示重要数据
生产回放
- 录制生产时的数据,可离线播放生产过程
- 支持数据追溯,收集和录制重要数据,可对数据进行加工、提炼和分析,找到可能存在的重要数据
- WebGL版本支持云端回放
环境扫描
- 基于具有环境感知的设备对现场环境进行扫描,快速还原现场外观和环境
- 支持多个具有环境感知的设备同时对现场环境进行并行扫描
监控和摄像头接入
- 接入
网络摄像头
和串口摄像头
- 支持
RTSP
协议,支持网络流媒体直播(例如海康RSTP
)
布局规划
- 拖放
模型库
/预制件
到场景中,快速完成场景的基础规划 - 选中
实体
并编辑数值或节点,可快速定制模型
,例如- 自定义围墙,围栏,输送带的尺寸,如 长
4096mm
,宽256mm
- 编辑贝塞尔曲线,标记
AGV
或其他可运动设备的路线
- 快速替换预览设备的型号,例如将
KUKA.AGV
替换为Intelli.AGV
- 自定义围墙,围栏,输送带的尺寸,如 长
方案展示
基于布局规划
的方案展示场景,向用户展示方案的设计,过程与验证结果
虚实联动
- 手动控制
AGV
或机械臂
等设备 - 已支持
Lancer.AGV
可手动控制小车移动
多终端实时同步场景
PC客户端
进行布局规划,Mixed Reality
客户端(例如AR
)可直接在现场看到设备规划的位置和生产路线- 虚拟化生产过程,用户可通过
手机AR
或者AR眼睛
在现场预览生产过程并对过程进行评估AGV
夹起物料
放入装配单元
AGV
向装配单元
提供物料
装配单元
进行虚拟化装配AGV
从装配单元
取走产品,并放入交付单元
所有客户端
可对现实坐标进行标记(文字消息
图像消息
)- 标记需要改进的工序或移动的位置
- 标记用户希望的生产路线
数据查询
- 可快速查询数据库和记录,例如工单数据和异常记录
- 开发者模式下,可通过自定义数据库查询语句
智能诊断
- 基于
Lancer.SCADA
提供的数据,自动分析重要数据的值并返回异常和诊断数据 - 可通过
WebApi
接口下发异常 - 接入
微信
和E-Mail
,异常
诊断报告
等日常维护数据将自动推送给相关人员微信
将通过公众号推送工单的方式推送数据E-Mail
通过自建邮箱服务器推送数据
- 智能诊断建议
- 在无法自动解决异常时,分析并提供相关的操作建议和解决方式建议
- 异常解决后,可快速输入异常解决方式,当异常再次发生时,可快速自动解决或快速提供建议
功能清单
以下的大多数功能都正在从Unity
移植到Godot
中
- 基于
Lancer.SCADA
的基本数据请求服务WebApi/GetInfos
——请求json,处理json嵌套,向内部提交数据 - 基于
Lancer.SCADA
的基本的角度和位置同步 - 基于
AI
算法的零延迟同步 - 基于
硬件本身的api
提供的零延迟同步 - 基于
Lancer.SCADA
的装配过程同步 - 基于
ObjectMatcher
的装配过程同步——Lancer.SCADA
没有提供的数据,通过匹配关键词的方式对数据进行分析和匹配,计算出当前的物料情况 ObjectMatcher
——关键词匹配引擎,通过分析数据,得到对应的最接近的结果- 全平台通用网络通讯接口(基于KCP的基本网络服务)
NetProvider
NetClient
NetServer
- 基于
Camera3D
的虚拟相机服务观察场景
例如移动视角
拖动视角
缩放视角
保存与加载预设视角
Android
支持WebGL
支持依赖注入
——已接入Microsoft.Extension.DependencyInjection
数据库支持
——通过EntityFrameworkCore
接入数据库离线回放
——录制Lancer.SCADA
返回的数据,在线回放
——基于WebDAB
同步云端的录制数据场景编辑器
——拖动预制件到场景中,完成组合场景,可用于对现场规划进行三维浏览和布局评估网络场景
——多个平台和客户端同步场景,例如在PC上更改场景,在Mixed Reality
中可实时看到场景的更改自诊断服务
——通过解析数据,找到空值
或null
的数据并向指定接口(例如微信推送
数据库日志
)提交异常微信推送服务
——完成申请微信公众号后接入E-Mail推送服务
——通过宝塔邮局
推送文件打包服务
——保存生产回放和其他数据,都是通过该服务进行读取和写入的环境扫描
——通过对现场环境进行三维扫描和重建,得到最接近和还原的三维场景- 基于HTML或类HTML的
用户界面框架
——统一技术栈,使用html编写用户界面,例如Html
和Unity.UI Toolkit
的关系
Getting Started 使用指南
所有注释和指南都包括在代码中,用例正在编写中