基于Unity3D、VR等技术的机械设计虚拟仿真系统构建研究
2021-04-16陈璜
陈 璜
(集美大学诚毅学院,福建 厦门 361000)
随着我国机械制造产业转型升级步伐加快,不同重工业、轻工消费品业对机械结构设计的要求越来越高,如采用最清洁原材料、最低制造成本,完成最优良结构、最好工作性能的机械产品设计制造。这一机械设计发展要求下,通过引入Unity3D物体建模技术、VR空间交互技术等,构建起Unity引擎的制造单元仿真系统,进而完成机械产品结构设计、生产加工等整体流程的预测。
1 Unity3D、VR等技术概述
Unity3D是由Unity Technologies公司开发的专业引擎,其创建原本是为游戏从业人员的三维动画建构提供软件开发工具,主要具有三方面特性。
(1)Unity3D强大的跨平台编辑性。APⅠO Unity编辑器可以对虚拟场景中的一系列图片、物体结构、其他影音资源等进行整合,然后用Visual Studio代码编辑器编辑代码。
(2)多元组件的可拓展性。相比于集成化的虚拟软件系统平台,Unity3D技术采取组件开发方式,通过功能代码编写、可伸缩功能插件的添加,为多种机械结构、虚拟空间结构的设计提供支持。如虚拟空间场景的光影效果设计中,Unity3D平台提供光源、实时阴影、光照贴图、法线贴图等光照插件,用户可以根据自身需求添加光影效果,打造出层次清晰、光彩绚丽的三维场景。
(3)Shader粒子、烟雾的虚拟场景模拟功能。Unity3D中内置PhysX引擎、Shader粒子插件、灯光烘焙、碰撞检测组件等,制造单元仿真系统的开发平台,通过更为方便、快捷的虚拟现实开发工具,创建出包括重力模拟、布料摩擦、空间碰撞等让人觉得身临其境的视觉效果。
2 国内外Unity3D技术虚拟仿真系统研究现状
2.1 国外机械设计虚拟仿真研究状况
国外欧美等发达国家对虚拟仿真技术的研究 较 早,Platform Architect MCO、Virtualizer Svlis、CODY及CREO等软件环境,都属于较为成熟的虚拟原型仿真系统。2014年,美国通用集团开发出电气虚拟现实实验室,主要在头戴设备、智能穿戴设备等的支持下,用于模拟海底环境探测、海底石油开采,提高外部工程作用的安全性和训练效率。2015年,德国Fraunhofer研究所联合法国原子能和替代能源委员会(CEA)开设虚拟装配实验系统,用于工业制造工程、太阳能电池等方面的研究。该系统通过人机虚拟场景的交互,自动记录虚拟装配过程中的用户操作、工业设计动作。2017年,美国国家航空航天局(NASA)借助多种视觉虚拟化现实技术,打造宇宙飞船模型设施、中性浮力实验室,展开航天飞机发射过程的燃料温度、飞行姿态等的捕捉,对航天飞机进入太空的整个执行流程做出数据可视化模拟。
此外,美国UⅠC机械工业虚拟现实研究所、德国比勒菲尔德大学人工智能与虚拟现实实验室、日本大阪机械制造工程及系统研究室,都纷纷开设与工艺处理、制造设计、决策支持、后勤学等相关的虚拟现实研究。如德国CODY虚拟现实实验室系统,建立有包含机械、电气制造的标准零件库,通过常规自然语言命令进行虚拟装配系统交互。日本大阪机械制造工程及系统研究室致力于三维建模、虚拟制造系统、虚拟现实与并行处理等方面的研究,建构起虚拟工厂的构造环境。
2.2 国内机械设计虚拟仿真研究状况
我国对于Unity3D虚拟仿真系统的研究,主要由清华大学国家CⅠMS工程技术研究中心、武汉理工大学智能制造与控制研究所等主导,设计基于增强现实(AR)技术的虚拟实验平台,将现实实验在虚拟仿真平台中模拟与实现。如国家CⅠMS工程技术研究中心,围绕企业高速剑杆织机项目,展开产品不同机械模块虚拟制造的模拟开发,将虚拟制造技术用于开发方案编制、产品开发执行。而武汉理工大学智能制造与控制研究所则针对产品原型、虚拟布局和虚拟装配等制造流程,进行虚拟现实技术的应用。
随后重庆大学、湖南大学等院校的研究机构,利用VRML、CREO等虚拟仿真系统技术,开发出机械液压虚拟仿真实验平台、汽车发动机虚拟实验系统,完成汽车发动机、凸轮结构等的三维模型,大大提高虚拟实验设计与仿真实用性,缩短仿真实验周期[1]。
3 机械设计虚拟仿真系统的软硬件组成结构
3.1 系统预期目标
本文利用Unity3D开发软件技术、VR交互技术,以及3DS MAX、Maya等三维建模软件,搭建起集虚拟空间场景、机械结构设计于一体的沉浸式系统。第一,该机械设计系统中存在着多种机械设备、机械零件库、装配体模型,Unity3D平台可以进行机械零部件的特征提取、数据信息整合。第二,机械设计虚拟仿真系统,需要达成多种设备立体化投影、虚拟重力模拟、碰撞检测等动态操作。第三,根据真实的机械加工制造工艺,以及机械零部件的装配逻辑顺序,进行系统完整框架、完善展示功能的交互设计,保证用户日常机械产品加工生产、虚拟交互工作的进行。
3.2 系统软硬件组成结构
机械设计虚拟仿真系统包括计算机设备、头戴式或穿戴式传感设备、CAVE投影设备等硬件结构,分为基础层、交互层、数据层等层级。在虚拟现实环境中,根据机械产品结构设计的数据信息,由手持控制器、混合动捕服务器等硬件,在用户、计算机工作站之间,建立起与虚拟装配环境的直接对话窗口,进行多元机械结构数据信息的有效处理。
关于软件组成部分则针对各类机械产品零部件的自动拆装、重组,引入不同的系统开发工具,可以满足多人机械产品交互装配、零部件虚拟检测等的要求。机械设计虚拟仿真系统包括数据层、接口层、平台层、应用层等部分,具体如图1所示。
图1 机械设计虚拟仿真系统示意
(1)数据层。数据层主要依据现有机械设备,进行数据信息加工的抽象分类,包括输入的用户数据处理,以及机械设备零部件、生产计划等数据的格式统一,一般将文件存储为JSON格式,方便系统多元用户主体的调用[2]。
(2)平台层、接口层。平台层及接口层为机械设计系统的控制层,主要功能是对虚拟空间环境、设备对象进行管理,以及加强用户、计算机工作站之间的交互连接。根据从网络中搜集的输入数据,调用可视化布局优化模块,进行机械设备生产、工艺分析等的数据传输控制,以及相对应虚拟设备模型建立、制造过程仿真的把控。
(3)应用层。仿真应用层包含人机交互、可视化三维仿真两大功能。其中,可视化三维仿真是通过利用Unity3D虚拟平台技术,以及三维模型导入、模型贴图、LOD模型渲染等,对虚拟空间场景中的机械设备结构、人机交互界面进行安置,为用户提供交互反馈、仿真流程显示等服务。而人机交互模块的功能实现,包括用户输入信息的接受、处理,借助头戴式传感、穿戴式传感等设备,在CAVE虚拟投影空间内进行机械产品设计、生产与制造的人机交互,最终确定最优布局方案。
4 基于Unity3D、VR技术的机械设计虚拟仿真平台架构及功能设计
4.1 系统虚拟仿真平台架构设计
机械设计虚拟仿真系统通常运用在企业设计部门、生产加工部门, 使低成本机械设备生产、模拟装配的虚拟仿真得以实现。当前,机械设计虚拟仿真系统采取统一建模语言(UML)进行B/S网络架构、数据层、业务逻辑层、物理功能层的设计,构建起3层分布式的系统体系结构,具体框架如图2所示[3]。
图2 机械设计虚拟仿真系统体系结构
根据图2系统框架可以得出,用户登录界面为后台验证程序的第一道屏障。该层级针对企业员工等用户的访问、数据库零部件信息使用,设置网络安全通信协议、TCP/ⅠP过滤网关,进行系统数据访问的控制。之后分别进入数据层、业务逻辑层、物理功能层。
数据层为认知类模拟板块,根据不同员工或学员对机械结构掌握、零部件拆装程序认知的熟练程度,展开全自动包装机拆装数据、减速器拆装数据等的统计,且需要进行机械零部件数据的格式统一,来为后续零部件结构设计、生产加工等提供支持。
业务逻辑层属于实操类应用板块,利用Microsoft SQL Server 2008数据库管理系统,以及选定Unity3D、VR交互、3DS MAX等软件,进行Web网络应用程序、虚拟3D模型的构建,完成企业机械设计、项目生产的模拟装配系统建设,以及用户、虚拟环境之间交互逻辑的设计。特别是在新型机械产品的开发设计过程中,可根据以上提供的机械结构拆装、重组数据,运用全自动包装机等机械设备,对原有产品零部件进行尺寸修改、拆装作业优化。
物理功能层为机械产品检测层级,是在完成整个机械设计系统虚拟化仿真后,将Web程序、虚拟建模场景进行结合,围绕滚动轴承、减速器等开展产品质量的测验,发现机械设计系统中存在的机械结构、组装问题,然后据此提出相应的改进措施。
4.2 机械模型建构与导入
在虚拟仿真实验平台中,主要先利用Web网页搭建三维仿真的虚拟场景,再围绕轴承、齿轮参数测量,以及减速器拆装测绘,进行机械设备结构的实体建模设计。一般借助于SolidWorks、3DS MAX、Maya等模型制作软件,对需要用到的机械模型进行建设,包括将描绘好的CAD图纸文件导入3DS MAX软件中,捕捉对象在X轴、Y轴、Z轴的结构数据,进行机械立体化设备的高度、角度建模,对首顶点、角点、倒角及剖面进行焊接和封口,转化为可编辑多边形来完成模型的进一步修饰。之后在3DS MAX软件中,将制作好的模型保存为STL格式导出,利用SolidWorks插件进行局部细节的优化处理,包括减少模型总数、删除实体模型看不到的零部件、删除对模型成型影响不大的细分,然后对不同模型做出多个分组,以及模型结构内重合点、面的合并,有利于后续模型LOD的渲染[4]。
4.3 模型贴图与烘焙
机械设备结构的模型贴图,对虚拟空间场景中光影效果的实现尤为重要。在基于Unity3D技术的机械设计虚拟仿真系统开发中,采取光照贴图、烘焙、法线贴图等技术,可以加强虚拟场景、模型渲染优化的效果。在利用Unity3D软件进行机械设备光照贴图后,打开Lighting窗口设置Directional Light、Point light、Baked、Mixed、Realtime,在Light光源组件中将Baking选为Baked,完成所有光照烘焙参数的相关设置后,单击Scene面板中下方的Build按钮,就可以进行虚拟场景内机械设备的烘焙[5],具体参数调整如图3所示。
图3 虚拟场景内机械设备的参数调整
此外,还会针对计算机三维图形学的细节显示要求,进行机械实体模型的法线贴图,该贴图模式采取凸凹贴图方案。其中法线贴图也是将一张二维图片附着在存在的立体化三维模型之上,可以在实时更新法线、展示模型表面额外细节的同时,对虚拟空间场景做出优化,且整个过程模型的形状不会发生改变。
4.4 虚拟模型的LOD渲染
LOD渲染也被称为细节层次渲染,是对虚拟空间场景中的运动物体,做出更高精度的模型实时渲染。但计算机设备CPU、GPU等处理器件的占用程度较高时,不能满足复杂三维场景实时渲染的要求。而LOD技术则是从低精度模型结构的绘制入手,在原始三维模型的基础上,制作出多个具有不同精度层次的三维渲染模型,使其成为实时可视化图形渲染的关键。如Unity3D平台中LOD技术的应用,更加注重对机械滚动轴承、齿轮及减速器等进行二元三角细分和自动减面计算,根据不同的分级精度完成模型处理。LOD利用多边形减面信息,将同一相关的所有LOD模型放在虚拟空间场景中的某一位置,在Unity3D平台菜单中选择Component 、Rendering、LODGroup指令,点击Add按钮,对算法产生的坍塌顶点、坍塌序列进行更加平滑处理,如图4所示[6]。
图4 LOD渲染示意
4.5 虚拟仿真模型的遮挡剔除
在机械设计虚拟仿真模型开发的过程中,不同虚拟场景、机械拆装设备等的加载往往在同一时间出现,其中大部分对象并未处于虚拟摄像机的拍摄范围内。因而利用Unity3D引擎的物体渲染,可以主动剔除一部分不重要或未被拍摄到的对象。在场景空间内创建遮挡区域,该遮挡区域由单元格(Cell)组成,每个单元格构成虚拟场景遮挡区域的一部分,Unity3D平台只对摄像机能够看到的单元格进行渲染,而其他较远距离的机械设计物件不去渲染。
5 基于Unity3D、VR技术的机械设计虚拟系统的仿真实现——以工业机器人RV减速器为例
5.1 虚拟三维模型的构建
RV减速器通常由输入轴、主轴承、曲柄轴、输出盘、滚针、支撑法兰、RV齿轮等结构组成,其在零部件虚拟仿真实现过程中,包含摆线齿轮修形、零部件加工检测、装配测试等执行流程。首先电机带动输入齿轮、正齿轮啮合,达到初级减速的目标,之后RV减速齿轮沿曲柄轴反方向转动,该转动力被输出至输出盘产生2级减速。
本虚拟开发系统采用Unity3D建模开发软件,开始轴类、盘类和齿轮类零部件等的三维模型建构,然后将利用UG NX建构完成的三维模型转换成STL格式文件,导入至3DS MAX软件进行模型渲染及优化。而在曲柄轴、输入轴、输出盘、支撑法兰、滚针和齿轮等零部件的建模中,应根据实际工件体模型要求,运用圆台离散法对不同构件的直径、长度(高度)进行切片,分割为直径20mm、长度(高度)60mm的薄片,分割薄片越多,虚拟加工精度越高。
5.2 模型虚拟贴图与拆装
根据建立好的RV减速器机械结构模型,将与机械产品相符合的物体阴影贴图附着在完成的立体化模型之上,但光照贴图阴影不会根据光源,以及机械物体摆放位置的变化而发生变化。采用Photoshop进行贴图绘制,然后将贴图导入Unity3D平台,之后将UV贴图附着在立体化三维模型之上,以及存储、显示因灯光照射而产生的模型表面细节,具体如图5所示。
图5 RV减速器机械结构贴图模型
RV减速器组件结构在预设路径下的虚拟拆装要符合RV减速器拆装工艺的逻辑执行流程,通过C#编写模型交互程序,对整个拆装流程做出动态性、交互性指导.RV减速器虚拟组件拆装包含预设路径自动拆装、手动拖动拆装两种方式,虚拟仿真系统对曲柄轴、输入轴、输出盘、支撑法兰、螺栓、滚针和齿轮等零部件的拆装,会自动记录拆卸顺序、零件逻辑位置、摆放位置。三维模型交互拆装的核心代码如下:
5.3 基于CARLA优化算法的RV减速器组件结构虚拟仿真设计
利用CARLA学习环路优化算法,对RV减速器三维模型的虚拟装拆、结构创新设计等,进行虚拟实现仿真,往往会通过策略选择器进行学习环路选择,展开不同构件结构设计、拆装创景跳转等的多模态控制。如先启动策略选择器,对全局需要使用的RV减速器组件进行搜索,在虚拟建模环境中将CARLA学习环路设定为10%环境适应度值进行相互作用,获得最优控制,具体执行流程如图6所示。
图6 CARLA学习环路优化算法执行流程
本文在RV减速器结构虚拟仿真设计中,以连续动作自动强化学习为基础,通常分为六个步骤。首先初始化机械零件个数、粒子范围、迭代次数等参量。之后通过CARLA学习环路,确定RV减速器零件结构的切片粒子位置。然后步骤三计算不同粒子的环境适应度值,再确定每一代粒子群的局部最优、全局最优位置。最后步骤五、步骤六,主要为更新粒子群速度以及局部最优、全局最优位置,重复迭代多次直到连续m代,在虚拟环境中适应度值不发生变化为止。
(1)初始化密度函数采用均匀分布的概率密度函数,依据每个参数范围,将其机械零件切片的粒子最值之差的倒数作为概率密度函数,具体公式为:
其中,x表示决策行为,f0(x)表示对应每个决策行为的密度函数。
(2)在单个决策行为执行后,确定RV减速器零件结构的切片粒子位置,具体公式为:
其中,随机数z取值范围为(0,1)。
(3)计算不同粒子的环境适应度值,决策行为表现评估的函数为:
(4)确定每一代粒子群的局部最优、全局最优位置,更新概率密度函数,在经过多次迭代后,虚拟环境中适应度值不发生变化,下面给出采取Matlab虚拟算法、CARLA学习环路优化算法的迭代执行比较结果,具体如图7所示。
图7 Matlab虚拟算法及CARLA学习环路优化算法的迭代执行结果
根据图7可以得知,在经过Matlab虚拟算法一定次数的学习后,算法执行适应度值陡然增加。而CARLA学习算法的迭代次数、迭代结果控制在10%左右,相比于Matlab虚拟算法大大改善,算法实时性显著提高,满足RV减速器结构虚拟仿真的要求。
6 结论
Unity3D、VR等虚拟网络技术,主要针对开放的联网计算机,构建虚拟实验平台的机械设计体系,对加工设备、机械产品结构进行三维模型搭建,加强虚拟场景、制造单元结构的实时渲染,包括机械通用零件、轴系结构等的贴图、烘焙与平滑计算,使用户主体不受时间、空间的限制,完成虚拟场景中的机械设备、零部件对象的操作,实现虚拟资源整合、共享的设计目标。从以上对RV减速器结构的虚拟仿真设计中可以看出,RV减速器结构建模、虚拟拆装等仿真操作,可以为工业机器人开发、功能实现提供助力。