基于Unity的智能仓库三维虚拟监控系统

known 发布于 2025-08-24 阅读(384)

王润,鲍伟,牙侯茂,杨正清,沈阳

(红河卷烟厂,云南 红河 652300)

0 引 言

随着物联网技术的快速发展,工业制造智能化,仓储信息化,数字化的发展,工业生产环境下大量设备连接与网络连接。在此过程中,设备产生了大量的数据,将这些数据进行利用分析,可以精确掌控工业生产、仓储、运输各个环节的情况,及时发现问题。Unity 软件是一款成熟的跨平台游戏引擎,在三维场景构建,虚拟现实、增强现实等方面有着良好的兼容性,同时也广泛地运用到了三维可视化,虚拟教学实验、工业控制和建筑装修等领域。

本文以云南红河烟厂技术升级改造项目为例,简述根据三维扫描技术产生的模型重新构建设备三维模型,通过Unity 3D 软件构建厂区辅料库、成品库三维场景,通过贴图和纹理的设置使其更接近真实车间内设备,通过Socket连接管理调度系统服务端以控制生产运输中的各个设备,连接Oracle 数据库进行任务调度管理的过程,让生产、运输流程中传感器获取到的各类数据可视化展示,为员工培训、工业仓储管理、设备维护保养等工作提供便捷实用的工具。在该项目中,选用Autodesk 3D MAX软件对扫描模型进行重建,使用Subtance Designer进行贴图和纹理处理,Unity程序核心逻辑功能由C#语言进行实现。

1 场景构建

利用已有的设备三维扫描模型和设计图纸,本项目选用Autodesk 3D MAX软件进行场景建模重建,3D Max由于其操作简单、动画效果逼真、插件功能完善等,成为工业、游戏建模工程师们使用最为广泛的一款软件,甚至在虚拟现实(Virtual Reality, VR)也增强现实(Augmented Reality,AR)模型构建中也有广泛的运用。

利用已有的设备三维扫描模型、CAD设计图纸及相关图片,制作数字化环境下的1:1模型,真实还原项目车间建筑物、物流设备、物料等。使用3D MAX建模软件建模,并且结合物流设备的定位信息,在模型的分类,分组,命名过程中,给数字化系统提供虚拟物体的定位,坐标距离等。

针对不同的设备采用的建模方法会有所不同,例如烟厂仓库中的一些大型机械设备,虽然其内部结构复杂、用途多样、体型庞大,但是此类设备在物流系统中没有移动、动作的需求,其建模的精致程度要求很低,内部构造可以完全省略,只需要建模设备的外部形状并放置在场景内某一位置即可。除了此类大型机械设备,一些有动作模拟要求的设备,其模型就需要达到一定的精致程度,比如机器手、自动引导小车(Automated Guided Vehicle, AGV)、双向堆垛机、环形穿梭车等,这类设备在物流系统中存在移动输送物料、动作搬运物料的动作模拟需求,并且设备的结构复杂,零件数量大,一般需要分步建模,拆分开来仔细研究其内部构造。在基础模型构建完成后,还需要对其进行材质选择,贴图优化,使模型整体效果美观逼真。

Unity支持FBX、OBJ、DXF等格式的模型导入,由于直接将3D MAX保存的MAX文件导入Unity中出现模型部分丢失的情况,所以选择将其转换为FBX格式文件后再导入Unity中。图1和图2分别是其成品库和辅料库部分场景图。

图1 辅料库场景

图2 成品库场景

用户界面(User Interface, UI)完成数据展示和用户的交互操作,数据、信息、告警都需要通过UI来实现,用户界面主要为二维图片和文字的显示。UI功能模块设计分为区域查看、库房管理、设备管理、实时控制、用户管理、物料管理等六大模块。用户界面主要为二维图片和文字的显示图3为UI的菜单界面。

图3 用户界面(菜单)

2 数据获取与调度控制

绝大多数的物联网设备都可以通过Socket或基础TCP协议与其进行通讯,对于无法直接通讯的设备,往往有统一的控制管理设备。对于Unity三维虚拟仿真系统而言,同时出于安全和设备性能方面考虑,虚拟监控平台没有必要也不应该直接与设备进行通讯和连接。在针对本项目的虚拟监控仿真系统中,由统一的边缘计算设备对数据进行采集,由位于管理系统服务端的管理调度程序对设备操作指令进行下发。因此,本系统数据直接从管理调度程序服务端提供的应用程序接口(Application Programming Interface, API)进行获取,同时管理端提供的API支持批量读取操作,进而减少了本系统获取各设备状态的需求。

管理端API需要以Socket协议进行通讯,通过此方法可以批量或者单个获取到设备的状态字及自定义信息,这些信息的含义包括设备当前运行状态,设备是否工作,设备运转是否正常,当前设备关联的任务标识信息等。通过分析这些信息,可以快速判断设备运转状况,分析设备是否未按预期工作或有其他错误。

对于物料信息、任务信息、设备基本信息、调度数据等内容由管理调度程序服务端录入 Oracle 数据库,同时,人员数据、排班数据、权限数据等系统运行所需的其他中间信息也存放于数据库内。用户使用该虚拟监控系统需要使用数据库身份验证凭据进行登陆,登陆过程中权限数据会加载到虚拟监控程序当中调整显示内容,避免用户无权操作或无权查看的功能和数据错误的尝试加载导致的问题。

控制和调度功能主要由向管理系统服务端API发送请求实现,少部分功能及虚拟仿真监控自身功能直接通过向数据库控制程序递交SQL语句实现,包括人物管理、设备管理、等用户操作功能都通过UI进行显示和确认。相比较控制管理系统客户端,通过虚拟仿真监控系统进行的众多操作都可以直接在场景中选择和进行。如可直接点选虚拟场景中的设备,即可打开设备对应的控制界面,通过控制界面可以完成简单的设备控制任务。通过场景中的物料或托盘,可以及时准确地和对应的任务进行关联,进而可对任务执行流程进行判断。存在故障报警的设备会直接在虚拟场景中报警展示,设备生命周期的全程管理,对使用时间过长、可能磨损严重的设备也会突出进行显示,减少了维修工人寻找设备的工作量。通过该三维仿真系统创建人物可直接在场景中选择任务的起始位置或终点位置,除了站台编号外,提供了另一个寻找任务目标的方式。在其他更多关于设备、物料、任务的创建时、编辑时,可获得相比管理控制系统更好的使用体验。系统通信架构图如图4所示。

图4 系统通信架构图

3 场景优化

场景的优化主要包括两个部分,场景的优化和网络的优化。场景优化目的在于提高三维虚拟仿真系统的流畅性和稳定性,网络优化目的除了应对在厂区内不同网络环境下都能流畅稳定的获取数据还为了减少网络通讯数据量,降低管理系统服务端压力。

相比较大多数通过Unity构建的游戏,将其用于仓储数字化处理的过程对优化要求更为严苛,在游戏中少有数万物体堆积在一个狭小区域的情景,但在该项目的高架库部分就存在这一的情况。针对这一情况,目前常见的解决方案主要为遮挡剔除(Occlusion Culling, OC)和多细节层次(Levels of Detail, LOD)显示实现。OC主要通过隐藏不在显示视线范围内的物体来实现减少渲染压力的效果,LOD则根据物体与观测位置的距离来显示不同精度的模型,在本项目中,根据仓库满货架情况下测试的结果,选择三级LOD来进行优化,不同设备根据前述模型的精度和设备具体情况生成或使用不同精度的模型。考虑到货架排布密集,物料同时显示带来的性能消耗难以避免,并且位于中间货架上内容难以查看,我们在系统中设置开关,可以控制高架库区货位上物料的显示与否,同时为单货架创建用户界面,通过该UI可以快速定位货位,查看货位内物料内容及关联信息。图5、图6为Unity内场景优化过程。

图5 场景优化过程

图6 场景优化过程

在移动无线网络环境下,大量的数据传送往往有很多干扰因素,在此条件下,适当降低网络传输数据量,减少数据读取次数可以大大改善使用体验。在网络环境不佳的情况下,虚拟监控系统会根据请求状况,自动调整刷新数据的延时,以此减少不必要的(如当前未激活的区域)的数据传输。同时设计查询缓存,对于需要频繁读取的数据直接通过缓存读取,而缓存定期从API批量获取并刷新,从而大大减少数据查询次数。另一方面,一个高效执行的数据库查询语句(SQL语句)可以带来较大的性能提升并降低系统负载,针对不同环境下的 SQL 语句通过反复测试调整优化,最终实现系统流畅运行的目标。

4 结 论

红河烟厂技术升级改造项目使用了3D MAX软件进行仓库模型的构建,虚拟重现了整个仓库场景,再利用Unity引擎搭建了整个虚拟监控平台,将设备和货物连接Oracle数据库,实现了实时可调控,最后设计了简单易操作的UI,使信息展示清晰易查看。这套基于Unity的智能仓库三维虚拟监控系统,将制造业与物联网、大数据技术深度融合,打破了传统人员管理仓库的模式,大大减少了仓库监控管理过程中的人力消耗,并对产品的加工情况实时追踪,提高了仓库运作效率,促进了工厂仓库的从数字化、信息化、智能化到智能化的发展。

标签:  设备 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor