CN118314262A - 带式输送系统的数字孪生构建方法 - Google Patents
带式输送系统的数字孪生构建方法 Download PDFInfo
- Publication number
- CN118314262A CN118314262A CN202410531479.5A CN202410531479A CN118314262A CN 118314262 A CN118314262 A CN 118314262A CN 202410531479 A CN202410531479 A CN 202410531479A CN 118314262 A CN118314262 A CN 118314262A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- unity
- data
- belt
- belt conveyor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010276 construction Methods 0.000 title claims abstract description 16
- 238000004891 communication Methods 0.000 claims abstract description 25
- 239000000463 material Substances 0.000 claims abstract description 22
- 238000009877 rendering Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims description 17
- 208000028257 Joubert syndrome with oculorenal defect Diseases 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 claims description 2
- 230000002688 persistence Effects 0.000 claims description 2
- 239000003245 coal Substances 0.000 abstract description 15
- 238000012544 monitoring process Methods 0.000 abstract description 8
- 230000033001 locomotion Effects 0.000 abstract description 4
- 230000008859 change Effects 0.000 abstract description 2
- 238000004088 simulation Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 206010063385 Intellectualisation Diseases 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000003337 fertilizer Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本发明公开了一种带式输送系统的数字孪生构建方法,通过激光雷达扫描输送带上的物料,将物料转换为点云数据发送给后端;后端再通过WebSocket网络通信转发给Unity;在Unity中完成对点云数据的实时渲染作为皮带上物料的数字孪生体。可以较准确模拟实际矿井下皮带输送机的运行环境,从而更加真实地反映设备的运行状态;实时更新监测数据,随着实际设备运行状态的变化而动态调整模拟结果,保持与实际情况的一致性。将激光雷达扫描出来的煤炭点云数据在Unity引擎中渲染出来以监控煤炭运输状况,利用Unity的图形渲染功能,将点云数据以合适的方式呈现在虚拟环境中,从而解决了煤炭模型形状、位置以及运动的不确定性。
Description
技术领域
本发明属于数字孪生智慧输送机技术领域,尤其涉及一种带式输送系统的数字孪生构建方法。
背景技术
带式输送机是组成作业流水线必不可少的经济型物料运输设备,因其运量大、运距长、效率高、运行稳定、可输送多种不同性质、种类的物料,能适应多种路线运输以及易于实现自动控制等优点,被广泛应用于粮食生产、冶金制造、化工设备、煤炭运输、矿山挖掘、港口搬运等多个领域。随着科学技术的不断发展,人工智能、大数据、智能制造等新型产业技术的迅猛崛起,智能化的概念正逐渐渗透到各行各业以及生活中,带式输送机的智能化也因此受到了广泛关注。目前带式输送机仍处于自动化阶段,技术相对落后、差错率高,且工作人员需对传感器传输过来的输送机状态数据进行健康判定;当输送机发生故障时,只能根据经验设置参数范围从而判断部件是否故障,并非根据输送机实时运输工况实时调整动态参数,这样极易出现故障误报、精确度低等问题。
为了降低井下煤矿皮带运输场景中工人监测煤矿运输状态及操作输送机的人力成本、改善施工场景的安全性、优化运营效率,实现运输产业从自动化到智能化的升级。亟需一种可以远程实时监测、诊断和控制输送机运行状况的系统平台,以适应快速变化的市场需求和技术进步。
发明内容
本发明的目的是构建用于远程实时监测、诊断和控制输送机运行状况的系统平台,本发明提出了一种带式输送系统的数字孪生构建方法,通过激光雷达扫描输送带上的物料,将物料转换为点云数据发送给后端;后端再通过WebSocket网络通信转发给Unity;在Unity中完成对点云数据的实时渲染作为皮带上物料的数字孪生体。
在一般的数字孪生体中,都是数据作用于一个具体的数字模型,使其在指定时间,完成预定好的动作。而本发明场景中,存在煤矿物料这一不确定物体因素,因其在不同时间,输送带上的形状、位置、大小都是随机的。在对其进行数字孪生时,本发明则可以实现对点云数据的实时渲染。
进一步的,将输送带上扫描出来的所有点云数据,如果直接打包在前后端之间传输,难免会给服务器带来较大的资源负担,更何况为了保证实时性,需要很高的通信频率。因此,在本发明中,设计出扫描出来的将点云以“片段”的形式进行传输。Unity从后端获取点云片段数据,并存入到缓冲区列表中,Unity引擎只需要实时渲染接收到的点云片段,使其跟随传送带位移,当位移的距离达到“片段”的厚度d时,便渲染出下一段点云片段。这样就实现了大量点云数据的简单切割和拼接操作,这样不仅缓解了大量点云数据在前后端之间的传送压力,也避免了Unity引擎大量,重复渲染点云的压力。
进一步的,所述在Unity中完成对点云数据的实时渲染,是通过Mesh对象的SetIndices方法来自定义绘制模式。首先将接收到的一组点云数据存放入顶点缓冲区,将绘制模式设置为MeshTopology.Points,这会告诉Unity引擎在渲染时只绘制点。接着需要在点云对象上设计和挂载的材质和着色器,修改点云在引擎场景中的渲染效果。最后,考虑到渲染大量的点可能会影响性能,可以使用层次剔除(Culling)来排除在视野之外的点来优化性能。
进一步的,Unity引擎中模拟皮带输送机的运作,首先需要皮带输送机的3D模型。模型由SolidWorks软件进行建模,并导入3dsMax软件中进一步简化处理,并制作皮带运作时的动画,最后导出为FBX格式的模型文件。Unity引擎仅仅是导入皮带模型且可以运行动画是不够的,还需要通过WebSokcet网络通信获取信号来控制皮带运行的时机和速度。
进一步的,后端在接收激光雷达采集到的点云数据时,需要对其进行一定数据量的缓存。在考虑到高频率、高吞吐量、低延迟等特点,首先将点云数据中的每一个点转换为Vector3对象,每轮接收到的所有点数存储到LinkedList集合中,最后选择Redis内存数据库中的List数据结构进行缓存。这样可以保证数据存储和读取的顺序性,也可以将Redis集合中所有的点数据取出,用于打开网页时初始化渲染已接收到的点云数据。
进一步的,所述后端采用Flask作为搭建框架,包括如下步骤:
步骤1.1,配置Flask框架;
将Flask类的实例化并赋值给app变量,使用所述实例注册路由、处理请求和响应;
步骤1.2,使用Flask-CORS扩展以支持跨域请求,解决跨域问题;
步骤1.3,配置Mysql数据库和Redis数据库,所述Rediso数据库用于数据缓存、Mysql数据库用于数据持久化存储;
Redis是一种高性能的键值对存储系统,常被用作数据库、缓存或消息传递中间件。它支持多种类型的数据结构,如字符串、列表、集合、散列表、有序集合等。Redis的特点是所有数据都保存在内存中,这使得数据的读写速度非常快。因此后端从激光雷达那里获取的点云数据可以先暂时缓存到Redis数据库中(数据量很大,可以突出从Redis数据库取出时速度快的优势),当网页端上线,Unity会连接到后端中的WebSocket服务端,这两者之间通信的数据从Redis数据库中获取。
步骤1.4,配置Socket.io库,数字模型与物料、带式输送物理设备之间采用WebSocket作为通信协议。
进一步的,本发明的带式输送系统的数字孪生构建方法,还包括前端的搭建,具体包括配置Vue项目环境、搭建网页框架、测试前后端通信以及在Vue框架中嵌入Unity画面。
进一步的,采用Docker进行容器化部署Vue前端和Flask后端。
Docker是可以打包程序和运行环境,把环境和程序一起发布的容器。当需要部署程序时,可以使用Docker将程序所需要的运行环境一起打包和部署。其他人拿到程序后可以直接运行,避免出现一次编译到处调试的尴尬局面。Docker这种容器化的部署方式,非常适合不同语言环境编写不同模块,最后融合在一起的项目,以及跨平台部署。
有益效果:采用本发明的带式输送系统的数字孪生构建方法,可以较准确模拟实际矿井下皮带输送机的运行环境,从而更加真实地反映设备的运行状态;
实时更新监测数据,随着实际设备运行状态的变化而动态调整模拟结果,保持与实际情况的一致性。整合多种数据源,包括传感器数据、图像数据等,通过综合分析和处理,提供更全面的设备运行状态信息;
将激光雷达扫描出来的煤炭点云数据在Unity引擎中渲染出来以监控煤炭运输状况,利用Unity的图形渲染功能,将点云数据以合适的方式呈现在虚拟环境中,从而解决了煤炭模型形状、位置以及运动的不确定性。
附图说明
图1是带式输送机模型图;
图2是本发明系统架构图;
图3是数据通信整体流程图;
图4是Flash功能模块图;
图5是本发明系统前端架构图;
图6是Unity引擎渲染煤矿点云流程图;
图7是组件依赖存在共享情况图;
图8是容器化部署应用之间隔离图;
图9是完成前后端部署后的效果图。
具体实施方式
带式输送机是一种在众多行业中广泛应用的高效持续输送设备,如图1,由于具有可传输距离长,连续输送能力高,可重构性强等优点,成为输送松散物料如粮食、煤炭、肥料、砂料等最有效的手段,然而在井下等复杂的工作环境下,由于其工作环境恶劣且长期高负荷运行,可能会引发输送带打滑和跑偏,从而损坏设备甚至发生事故,直接影响了物料运输效率及安全性能。现有的带式输送机监测方法主要关注某个关键零件的状态并且监测零件的信号源单一,无法提供输送机整体的状态监测。为了确保输送机的正常运行,需要对整个输送机系统进行综合、全面的监测和管理。近年来基于数字孪生输送机的智能监测逐渐受到关注。数字孪生以数字化的方式建立物理实体的多维、多时空尺度的动态虚拟模型来仿真和刻画物理实体在真实环境中的属性、行为、规则,实时动态展示设备信息。将实际传感器数据与数字孪生模型进行信息融合,可以更高效地对输送机的整体运行状态进行综合监测;
本发明提出的一种带式输送系统的数字孪生构建方法,通过B/S框架,如图2,搭建前后端,通过Socket TCP网络通信的方式,向下位机发送报文和解读接收到的报文,以读取PLC线圈数据,完成设备数据的收集、处理、维护、传输等功能,最后将处理好的数据结合图表、输送机模型,动态地展示在浏览器上。通过开发不同的前端平台,从而实现跨平台、可移植的功能,用户可随时随地通过浏览器监控输送机运行状况;
具体的,本发明的发明提出的一种带式输送系统的数字孪生构建方法,包括如下步骤:
首先,搭建Flask应用框架作为服务后端,Flask是一个轻量级的可定制框架,它可以很好地结合MVC(Model-View-Controller)模式进行开发,完成功能丰富的中小型网站或Web服务的实现,在此数字孪生系统中担任同下位机进行Socket TCP通信获取皮带数据、为前端提供API数据接口、与MySQL数据库交互、同Unity进行WebSocket通信控制皮带运动等功能,Flask作为本发明中的后端框架,在皮带数字孪生系统中的作用主要有:与下位机进行Socket TCP通信以获取皮带设备的原生数据和发送控制指令、数据处理与缓存、与Unity进行WebSocket通信,提供点云信息、与MySQL数据库交互,进行数据的存取、验证前端登录信息等,数据通信整体流程图如图3所示。
为了完成以上功能,如图4所示。后端Flask框架需要额外导入的功能模块有用于存储数据的MySQL数据库、用于缓存数据的Redis数据库、用于WebSocket通信的Socket.io库、用于解决跨域问题(CORS)的flask-cors库,另外自身处理客户端发起的HTTP请求可以通过定义路由(route)和视图函数(view function)来实现。
1.配置Flask框架
系统在已安装Python环境的情况下,可以在Python项目中通过命令`pip installFlask`安装Flask框架,并将Flask类的实例化并赋值给app变量,之后,便可以使用这个实例注册路由、处理请求和响应等。
通过被@app.route装饰器装饰的视图函数负责注册路由,处理客户端发送到特定端点的HTTP请求,并返回响应。本发明中,注册路由需要完成的功能有验证用户及其权限、管理实时数仓中的数据、获取数据库中的数据等。
2.解决跨域问题(CORS)
跨源资源共享(CORS,Cross-Origin Resource Sharing)是一种安全机制,用于克服AJAX请求的同源策略限制。同源策略是Web安全的一个重要概念,它阻止一个域的JavaScript脚本与另一个域的内容进行交互。CORS通过允许服务器指定哪些来源可以访问资源,从而使得安全地跨域请求成为可能。
在Flask框架中解决CORS问题,一种常见的做法是使用Flask-CORS扩展。它既可以使所有的路由指定某个域允许跨域请求,也可以配置某个视图函数,让特定的路由、特定的请求头,支持跨域请求。
3.配置Mysql数据库和Redis数据库
服务器已经安装Mysql环境的前提下,Flask要操作数据库,必须要先安装Python操作Mysql的驱动pymysql,这个驱动可以使用原生的SQL语句对数据库进行操作,而Flask中很少直接写原生SQL语句去操作数据库,而是通过SQLAlchemy提供的ORM(Object/Relational Mapping,对象-关系映射)技术,类似于操作普通Python对象一样,实现对数据库的增、删、改、查操作。因此,为了更加简便的使用数据库,可以安装并导入Flask对SQLAlchemy的封装库,'flask-sqlalchemy'库,并在Flask中注册服务器中Mysql的用户名、密码、数据库、表格等参数即可使用。
服务器已经安装Redis环境的前提下,Flask若要操作Redis,直接安装和导入Redis Python库,并在Flask中注册服务器中的Redis的IP地址、端口号、数据库编号等参数即可使用。
4.配置Socket.io库
数字孪生系统的重要特征之一就是数字模型与物理设备之间的高实时性,而前端如果通过传统的HTTP请求获取数据,既消耗更多的资源,又无法保证很好的实时性,因此选用WebSocket作为两者之间的通信协议更符合要求。
Socket.IO是建立在WebSocket之上的库,提供更多的功能和灵活性,它支持房间管理、广播、命名空间、重连机制等高级特性,使开发者能够更轻松地构建复杂的实时应用。
本发明中用到的主要事件有@socketio.on('connect')客户端连接事件,@socketio.on('disconnect')客户端断开事件,@socketio.on('message')接收消息事件,@socketio.on('error')客户端连接出现错误时触发的事件等。当客户端触发连接事件时,可以获取其独有会话ID,并加以维护实现对其单独的通信;也可以使所有的客户端进入到一个房间内,然后对房间内的用户实现广播通信。在实际部署环境下,实现把皮带运行参数数据以及点云数据广播给所有客户端,实现多平台中的浏览器都是相同的内容。
其次,搭建Vue框架作为网页前端,Vue是一款用于构建用户界面的JavaScript框架,它基于标准HTML、CSS和JavaScript构建,并提供一套声明式的、组件化的编程模型,可以高效地开发网页用户界面。在此数字孪生系统中担任搭建可视化数据大屏网页、呈现Unity的画布等功能,使用户全面客观的观察到皮带运行状态及关键数据。最后,将皮带的3D模型导入到Unity引擎中,并根据从后端获取到的数据,控制煤炭点云的生成和皮带的运动;Vue框架在皮带数字孪生系统中的作用主要有:渲染Unity场景、将皮带上运输煤炭的流量通过Echarts图表生动的展示出来、通过网页远程监控皮带、获取并浏览数据库相关数据。框架图如图5所示。
为了完成以上功能,需要进行的步骤如下:
1.配置Vue项目环境
在系统安装和配置好Node.js的前提下,通过指令`npminstall-g@vue/cli`安装Vue脚手架并创建Vue项目。
2.搭建网页框架
通过HTML+CSS+JavaScript标准的Web页面技术,搭配Echarts(图表)、Element-Plus(UI组件库)、Swiper(轮播图)等插件,搭建出网页的结构内容、外观布局以及交互和动态效果。
3.测试前后端通信
Vue.js通过安装和导入axios组件,便可以通过JavaScript代码实现向后端发送HTTP请求和处理响应,从而实现前后端之间的HTTP通信。
通过安装和导入socket.io-client组件,在已知后端IP地址与端口号,并解决CORS的前提下,在mounted生命周期中便可实现与后端建立WebSocket连接。将网页上的组件如按钮、滑块等触发事件绑定到发送消息的方法上,即可实现前后端之间的通信,以完成网页上的交互功能。
4.导入Unity发布的Webgl(Web Graphics Library)包
为了在网页中呈现Unity的画面,需要将Unity发布的平台选择为Webgl并构建打包成静态文件,至少包括HTML文件、加载器文件、数据文件、框架文件、内存文件。加载器文件、数据文件、框架文件、内存文件存放入Vue项目的静态文件位置,根据HTML文件中的内容,自定义vue组件框架,并将静态文件的访问路径配置好,即可实现在Vue框架中嵌入Unity画面。
对于Unity功能实现,本发明中Unity引擎需要实时渲染激光雷达扫描出来的煤矿点云数据以及模拟皮带的运转状态。Unity是一款功能强大的跨平台游戏引擎,它不仅仅局限于游戏开发,还被广泛用于创建虚拟现实(VR)、增强现实(AR)、模拟器等各种交互式3D应用程序。因其支持多种平台开发,强大的3D渲染引擎以及高可定制性等优点,非常适用于数字孪生中的应用场景。
1.点云渲染
在Unity中,Mesh类是用于定义和管理3D网格几何体的数据结构。Mesh包含了顶点、三角形索引、法线、UV坐标等信息,它定义了一个物体的形状和表面属性。通过填充顶点数据,制定合适的Shader和材质,便可以实现将缓冲区中的点云数据(List<Vector3>)渲染出来。
Unity通过websocket通信的方式,从Redis数据库中获取最新的点云片段数据,并存入到缓冲区列表中。假定点云片段厚度为1cm,则渲染出来的点云整体位移了1cm时就立即渲染缓冲区中最先加入的点云片段。当渲染出来的点云片段中,若达到了传送带终点位置,则使该段渲染过的点云片段做自由落体运动进入料箱,并从Redis数据库中删除该片段。整体实现的过程如图6所示。
2.模拟皮带运作
皮带输送机的模型由Solidworks软件进行建模,为了转换成Unity支持的FBX格式的文件,需要在3dsMax中进行格式的中转。首先3dsMax中导入Solidworks导出的STEP格式的文件,再导出成FBX格式的文件。在这个过程中,3dsMax作为建模软件,可以在其中制作皮带运行时的动画,Unity导入这个模型时会包含动画这部分。因此只需要在皮带对象上挂载Animator组件,并在动画控制器中挂载模型运行的动画,并加以控制动画播放的速度,即可实现控制皮带模型的运作。
为方便项目部署的练习,因此选用阿里云服务器进行测试,操作系统选择Linux系统下的Centos7平台,以确保务器环境的高效和稳定。为了实现前后端的分离,使用Docker进行容器化部署。Docker容器化部署是一种将应用程序、其依赖项和配置打包到一个容器中,并在任何支持容器的环境中运行的技术。它提供了一个轻量级的虚拟化环境,避免依赖之间存在不兼容的问题,如图7和图8所示,确保开发、测试和生产环境之间的一致性,部署应用程序时既方便又简单。另外容器化部署还具有可移植性强、易于管理等优点。
首先做好部署前的准备,在云服务器中安装OpenSSH用于实现终端远程控制服务器。安装Docker用于实现容器化部署项目,通过`docker.pull`指令拉取Nginx、python3.9、MySQL等镜像。Vue前端项目通过`npm run build`指令打包整个项目;Flask后端项目安装gunicorn和gevent用于提高Flask应用的性能和并发能力,Gunicorn(Green Unicorn)是一个WSGI HTTP服务器,用于将HTTP请求转发给Flask应用。Gevent是一个基于libev的Python网络库,它提供了协程的支持。最后通过指令`pip freeze>requirement.txt`导出项目所有的依赖包名。
在部署Vue前端项目时,通过编写nginx.conf文件来定义服务器块、指定监听端口、设置静态文件目录、配置代理等。最后结合vue打包的文件和nginx.conf配置文件,通过`docker run`部署的指令启动nginx容器完成前端部署。
在部署Flask后端项目时,首先编写gunicorn.conf文件用于指定Gunicorn HTTP服务器的运行参数和行为,比如指定绑定地址和端口、指定工作进程数量、配置工作模式等。之后需要编写Dockerfile文件定义Docker镜像的构建过程,包括指定基础镜像、安装软件包、添加文件和目录、配置环境变量、定义容器启动时执行的命令、暴露的端口等。完成前两步便可通过`docker build`指令完成构建后端镜像,之后通过`docker run`指令启动该镜像便可完成后端的部署,网页效果如图9所示。
本发明设计的一种带式输送系统的数字孪生构建方法,通过实时获取设备的运行数据,在Unity引擎下模拟皮带输送机的运行,对皮带输送机的电机、输送带等主要部件的运行状态进行实时可视化检测,同时实现对激光雷达扫描出来的物料点云数据进行实时渲染。归功于B/S架构的跨平台性、灵活性、便捷性等优点,客户可以无需下载任何应用程序,可以在任何支持浏览器的设备上远程监控皮带输送机的运作状态,包括PC、平板、手机等多种终端设备,在更高授权状态下,也可以实现对皮带输送机的远程操控。
Claims (9)
1.带式输送系统的数字孪生构建方法,其特征在于,通过激光雷达扫描输送带上的物料,将物料转换为点云数据发送给后端;
后端再通过WebSocket网络通信转发给Unity;
在Unity中完成对点云数据的实时渲染作为皮带上物料的数字孪生体。
2.根据权利要求1所述带式输送系统的数字孪生构建方法,其特征在于,所述将物料转换为点云数据发送给后端,具体是以点云片段的形式发送给后端。
3.根据权利要求2所述带式输送系统的数字孪生构建方法,其特征在于,Unity从后端获取点云片段数据,并存入到缓冲区列表中;设点云片段厚度为d,则渲染出来的点云整体位移了d时,再渲染缓冲区中最先加入的点云片段。
4.根据权利要求1所述带式输送系统的数字孪生构建方法,其特征在于,所述在Unity中完成对点云数据的实时渲染,具体是通过Mesh对象的SetIndices方法来自定义绘制模式;
首先,将接收到的一组点云数据存放入顶点缓冲区,将绘制模式设置为MeshTopology.Points;接着在点云对象上设计和挂载的材质和着色器,修改点云在引擎场景中的渲染效果;最后,使用层次剔除来排除在视野之外的点。
5.根据权利要求1所述带式输送系统的数字孪生构建方法,其特征在于,还包括使用Unity模拟皮带运作;
首先,使用Solidworks软件对皮带输送机建模,导出的STEP格式的文件,在dsMax中进行格式中转,并制作皮带运行时的动画,从dsMax中导出FBX格式的文件,再导入Unity。
6.根据权利要求1所述带式输送系统的数字孪生构建方法,其特征在于
后端在接收激光雷达采集到的点云数据时,首先将点云数据中的每一个点转换为Vector3对象,每轮接收到的所有点数存储到LinkedList集合中,最后选择Redis内存数据库中的List数据结构进行缓存。
7.根据权利要求1所述带式输送系统的数字孪生构建方法,其特征在于,所述后端采用Flask作为搭建框架,包括如下步骤:
步骤1.1,配置Flask框架;
将Flask类的实例化并赋值给app变量,使用所述实例注册路由、处理请求和响应;
步骤1.2,使用Flask-CORS扩展以支持跨域请求;
步骤1.3,配置Mysql数据库和Redis数据库,所述Rediso数据库用于数据缓存、Mysql数据库用于数据持久化存储;
步骤1.4,配置Socket.io库,数字模型与物料、带式输送物理设备之间采用WebSocket作为通信协议。
8.根据权利要求7所述带式输送系统的数字孪生构建方法,其特征在于,还包括前端的搭建,具体包括配置Vue项目环境、搭建网页框架、测试前后端通信以及在Vue框架中嵌入Unity画面。
9.根据权利要求8所述带式输送系统的数字孪生构建方法,其特征在于,采用Docker进行容器化部署Vue前端和Flask后端。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118314262A true CN118314262A (zh) | 2024-07-09 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460232B (zh) | 一种组态页面的制作和监控方法 | |
Potenziani et al. | 3DHOP: 3D heritage online presenter | |
US6466239B2 (en) | Method and apparatus for editing data used in creating a three-dimensional virtual reality environment | |
US6518989B1 (en) | Graphic data generating apparatus, graphic data generation method, and medium of the same | |
US6262734B1 (en) | Graphic data generating apparatus, graphic data generation method, and medium of the same | |
Evans et al. | 3D graphics on the web: A survey | |
US10013157B2 (en) | Composing web-based interactive 3D scenes using high order visual editor commands | |
CN102012906B (zh) | 基于SaaS架构的三维场景管理平台及编辑浏览方法 | |
US6552721B1 (en) | Graphic data generating apparatus, graphic data generation method, and medium of the same | |
CN105955888B (zh) | 一种页面调试预览方法及系统 | |
US6401237B1 (en) | Method and apparatus for editing data used in creating a three-dimensional virtual reality environment | |
CN116610881A (zh) | 一种基于低代码软件的WebGL浏览交互方法 | |
KR20130017337A (ko) | 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. | |
Friston et al. | 3DRepo4Unity: Dynamic loading of version controlled 3D assets into the Unity game engine | |
Boutsi et al. | Interactive online visualization of complex 3D geometries | |
CN113835691B (zh) | 一种iOS应用开发方法、系统、设备、介质和程序产品 | |
Baglivo et al. | X3D/X3DOM, Blender Game Engine and OSG4WEB: open source visualisation for cultural heritage environments | |
EP0899695A1 (en) | Pattern data generator, pattern data generating method and its medium | |
CN112807695A (zh) | 游戏场景生成方法和装置、可读存储介质、电子设备 | |
CN117095121A (zh) | 基于浏览器的云原生三维模型处理方法、装置和电子设备 | |
CN118314262A (zh) | 带式输送系统的数字孪生构建方法 | |
CN115422723A (zh) | 基于Opendds的Modelica平台与UE4的协同仿真方法 | |
CN116775174A (zh) | 一种基于用户界面框架的处理方法、装置、设备及介质 | |
CN110990104B (zh) | 一种基于Unity3D的纹理渲染方法及装置 | |
CN108876925A (zh) | 虚拟现实场景处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |