学术论文投稿/征稿

欢迎您!请

登录 注册

手机学刊吧

学刊吧移动端二维码

微信关注

学刊吧微信公众号二维码
关于我们
首页 > 学术论文库 > 理工论文 装载机虚拟仿真系统的研究论文

装载机虚拟仿真系统的研究论文

9

2023-02-07 09:33:42    来源:    作者:lvyifei

摘要:摘要:装载机是一种常用工程机械, 装载机认知和拆装实验由于零部件笨重、缺乏安全性一直是一个难题。虚拟仿真实验是解决 这项问题的有效方法。对装载机虚拟仿真实验的网络化管理系统, 数字化文件系统和人机交互系统进行研究, 实现一到两种部件 的虚拟装配实验。结合主传动实际装配以及拆卸视频, 确定软件中主传动模型的实际拆装过程, 通过 Unity3D 软件对主传动拆装进 行虚拟仿真, 主传动的拆装均通过代码实现, 同时注意使用时视角自由切换功能和显示零件名称功能的实现。利用 Unity3D 软件实 现

  摘要:装载机是一种常用工程机械,装载机认知和拆装实验由于零部件笨重、缺乏安全性一直是一个难题。虚拟仿真实验是解决这项问题的有效方法。对装载机虚拟仿真实验的网络化管理系统,数字化文件系统和人机交互系统进行研究,实现一到两种部件的虚拟装配实验。结合主传动实际装配以及拆卸视频,确定软件中主传动模型的实际拆装过程,通过Unity3D软件对主传动拆装进行虚拟仿真,主传动的拆装均通过代码实现,同时注意使用时视角自由切换功能和显示零件名称功能的实现。利用Unity3D软件实现环境的搭建,开发人机交互按钮界面与实验报错功能的实现。这不仅减少了实机拆装对机械可能带来的损伤,减少二次故障率。同时,通过拆装虚拟训练系统进行装配训练,使操作形象、直观、方便,具有很高的经济和教学价值。

  关键词:虚拟仿真;装配;Unity3D

  0引言

  目前,机械装配类虚拟实验多以汽车、发动机、叶轮等载体,多借助爆炸图、立体动画以及图文介绍等表达结构关系和标准拆装要领。而机械类相关沉浸式体验虚拟过程、多路径装配的研究较少。焦祥等[1]利用Solidworks、3Ds Max等软件实现了场景模型和夹具原件模型的构建。成功将装配素材导入到Unity3D平台中,实现了夹具拆装实训的虚拟仿真。丁毓峰[2]利用Unity3D的虚拟场景搭建和Web开发技术,实现了Web网页和Unity3D软件的交互。陈晨等[3]利用VR技术和Make Real3D软件构思了一种新的设计模式。独创性地提出了使用动态捕捉与仿真交互的想法,合理地证明了虚拟仿真技术的不受时空限制的优越性。杜来红等[4]根据企业里的实际生产情况,利用HumanCAD设计了虚拟装配环境。在对分配阀的装配过程进行典型案例分析的过程中,证明了在虚拟环境下进行装配可以准确发现问题,并且后续可以以此提出解决措施,大大减少相似错误的发生率。成建群等[5]通过研究Unity3D引擎的架构,研发了一种轻量化服务器。体现了虚拟仿真系统所具有的良好的开发前景,较好地满足了数据库与互联网网页开发的需求。

搜狗截图23年02月07日0933_21.png

  通过以上的综述可以看出,应用虚拟实验平台对工程机械装配的开发很少涉及,尤其是高校与企业迫切需要这一方面传统教学模式的改革。另外,对装载机零件建模的优化设计以及平台的开发还很少有实际性的研究。

  1虚拟仿真系统总体设计

  1.1 Unity3D平台的人机交互界面设计

  UI设计是一门高深的学问,本文所展示的UI设计是在Unity3D环境下开发设计出的实验操作功能界面。本着简洁大方的设计理念,通过canvas实现多个按钮的设计,包括预期拆除、装配的功能按钮,也包括为了方便实验而设计的重置与返回主视角按钮,同时不忘预留退出按钮的位置。报错界面的设计也是简约美观,醒目的弹框报错文本与返回主界面的按钮,更使得操作流畅,富有人性化。字体的选择,大小的设置都是经过反复推敲与测试,按钮的功能不仅与预期功能相契合,也符合简约大方的设计理念。

  1.2数据库与网站搭建

  在智能制造领域大热的今天,数据库技术逐渐崭露头角。本文所设计的虚拟仿真实验系统也在该方面进行了少量的研究。主要运用的技术软件有Tomcat、Eclipse、Mysql等,主要设计的方向是对Unity3D所生成的WebGL文件进行二次开发,主要目标是实现简单服务器的搭建、网站式登录界面的设计与登录信息数据库的连接。

  1.3虚拟仿真系统总体设计

  本次虚拟仿真系统功能的实现,主要使用的是Unity3D软件。在版本上选择的是Unity 2017.3.1f1,因2019版本后的Uni⁃ty3D软件,许多默认的素材包和脚本功能需要自行下载,而一些方便快捷的素材在2019版本后的使用中,往往要进行版本的自适应,代码和导出exe文件时容易出现报错的现象。

  本次虚拟仿真系统的主要功能:实现主传动装配体的拆装功能,实现装、拆操作时视角的自由切换,实现鼠标悬停显示零件名的功能等。

  2基于Unity3D环境下的主传动拆装交互实现2.1虚拟拆装功能的实现

  本次针对零件的虚拟拆装,选用了Unity3D的Dotween插件,往transform属性方向编写代码来实现功能。通过transform拓展方法里的position程序段,可以巧妙地预设零件的初始位置和末位置。程序设置后,使用顺序语句,对各个零件进行0~21的设定,通过鼠标点击事件实现拆、装动作的开始。另一方面,Dotween插件也能实现Camera的视角移动,不仅可以调整屏幕视角的宽高比,也可以改变相机进切面、远切面的值,可以按照屏幕百分比计算显示的范围。并且在后续切换主视角的开发中Dowteen插件的运动曲线的设置也起了一定的作用。

  将FBX格式下的文件拖入Unity3D操作界面下的Assets文件夹下,为了方便操作,在Assets文件下新建Scprits文件夹预存写好的组成代码,同时在Game文件下添加一个Cube,将主传动FBX格式的文件拖入Cube中,同时取消勾选“Mesh Ren⁃derer”使其消隐。此时调整好主摄像机和放零件的Cube的位置关系,以确保主画面中能够完整显示主传动零件。记录此时Inspector功能框下的transform坐标,之后再预设好该零件的末位置。在Scprits文件夹中将组成代码直接拖入该零件的Inspec⁃tor功能框下,此时即可挂上First Pos的坐标与Second Pos的坐标,即为零件拆装前后的两个坐标。

  在第一个零件组成代码下应该输入0,声明为第一个拆装的零件。以此类推22个零件,组成代码都应该挂好两个坐标与0~21的排序。后期为了实现不同零件的区别展示,此时可以创建素材球,不同的素材球将体现不同的外观色彩显示。最重要的是,为了实现点击不同的零件触发不同的零件的操作指令,需要在每一个零件的Inspector功能框下通过“Add Compo⁃nent”增加碰撞事件,即增加“Mesh Collider”功能。

  2.2鼠标悬停显示零件名称和报错功能的实现

  本文交互界面框架的设计主要实现原理是通过在Game界面下右键后添加UI,应当注意的是按钮的排布不应该超过整个画布的设置,而画布大小的设置应当先去Game界面下在分辨率一栏中修改,本文设置为目前较常用的1 920×1 080格式。而之所以在鼠标悬停显示零件名称功能和报错功能的实现中,着重强调按钮功能的设计,也是因为在实现文字显示和报错功能时,离不开按钮功能选择后的前置环境。可以说在设计时是层层嵌套、环环相扣的。在对整个Canvas挂脚本的时候,会用到设置好的按钮为目标,也会用到0~21排序的主传动零件,更会用到一开始便设计好的主相机的位置。在添加报错UI时,为了使其达到触发显示,应该取消勾选其的显示性,并在其子列表下添加文本于关闭报错按钮于关闭报错按钮的文本。当鼠标点击顺序与预设的0~21序号顺序不同时,就会触发报错UI的运行,弹出报错对话框。

  而另一功能显示零件名称,本文是通过预设体Prefab实现,进行预设时可以输入任意零件名,合理设置字体大小与格式后,返回Word文件,通过“Add Component”功能添加“Image”,选择”Source Image”,导入找到的显示文字的文本框图片资源,合理设置文本框大小、透明度等功能。最后在将预设好的Word Follow脚本拖入其“Inspector”界面,控制好显示物体名称功能的偏移量等设置。

  2.3视角自由移动的实现

  Unity3D软件高仿真性的一个主要原因便是其强大的相机功能。对于本文的第一人称视角实现主传动零件的拆装,视角的全方位移动与自由地拉近拉远,极大程度地影响着虚拟环境的视觉体验,本文不仅在最初导入FBX文件的时候就考虑到了Cube与主相机的位置关系,同时将文件放入Cube中也是为了通过Cube的旋转和位置属性,去实现主相机的旋转和拉近拉远。本文的鼠标控制视角的自由移动代码便是由此而生,挂在了Main Camera下,作用的Target便是一开始设置的Cube。

  整个实验的外部环境的设计,使用的是skybox功能。天空盒的资源可以从网络上进行下载,下载完成后通过点击“as⁃sets”-“importpackage”-“skyboxes”即可导入虚拟环境。注意有些skybox导入后仍要手动修改图片的顺序才能正常使用。

  3主传动拆装实验系统界面设计

  3.1界面设计原理

  本文的界面设计实现了在Unity环境下通过按钮控制多个界面切换,其主要思路是设计认知与实验操作两个模块。认知模块包含主传动拆装的目的,主传动结构介绍和虚拟拆装的顺序介绍3个子界面,界面与界面之间的切换通过“返回”按钮实现。实验操作模块链接上一章所做的虚拟装配环境。每个子二级界面各自拥有独立界面,拥有一个返回认知模块主界面的按钮。在实际编程之前,列好每一个界面的功能和其返回按钮对应的界面关系,可以较好的理清楚各个界面直接的跳转关系,这样既方便在Unity中进行代码的设计,又能起到检查整个界面框架的完整性的功能。3.2界面跳转功能的实现

  本次界面设计共需要制作5张界面,即:主界面、实验理论模块界面、主传动拆装实验目的界面、主传动结构介绍界面和虚拟拆装顺序介绍界面。认清各个界面的跳转关系后,即可开始素材的准备以及界面按钮的设计规划。

  在通过if判断语句实现实现按需显示界面之后,需要对5个界面进行逻辑设计,基于Unity Engine.Scene Management控件,实现从主界面上“虚拟拆装实验模块”按钮导向上一章的Unity虚拟拆装环境,实现从Unity虚拟拆装环境下的“退出”按钮返回主界面。

  在实现了各个模块与对应界面的逻辑切换后,便是对各个界面的详细内容进行设计。鉴于Unity3D中强大的UI模块,撇去按钮模块,本文的界面设计还采用了text和image模块。其中text模块实现的是简单的文字显示功能,包括所显示文字的字体、字号、格式、颜色等。而image模块则是背景图片功能的选择,在将原素材导入Unity项目之后,需要将其更改为“Sprite(2D and UI)”才可以使用。

  4服务器搭建与基于Java的网页开发

  4.1 Jsp网页开发步骤

  当点击上一章所发布的index.html后,将直接进入实验界面。而对于一个实验系统而言,仍缺少适当的用户登录与注册功能,尚未实现与数据库连接的功能,更不用说记录一些基本的登录用户信息,这样的实验系统是不完善的。为此,本文通过使用Eclipse软件,进一步补充了该部分的功能。具体的开发流程如下:首先,配置适当版本的JDK,本文使用的是ver⁃sion11;其次,配置Web服务器,本文使用的是Tomcat9;最后,在Eclipse中完成整个网页界面的开发,本文使用的Eclipse版本为Eclipse2020-12-R。

  4.2 JDK配置方法

  在进行JDK配置前,应安装好所需要的适宜版本的JDK文件。JDK文件的具体配置方法如下:打开控制面板—系统—高级系统设置—环境变量—系统变量—新建,在变量名中输入“JAVA_HOME”,在变量值中输入下载JDK文件的地址,之后点击确定即可。调试可以通过在命令程序符中输入java-ver⁃sion进行,JDK已经配置完毕。

  4.3配置Web服务器

  同样地,在进行Web服务器配置前,应该先安装好适当版本的Tomcat文件。安装完成后打开Bin文件夹中的Startup文件即可获得端口,本文获取的端口为7878。配置成功后,在浏览器中输入localhost:7788,服务器搭建完成。

  4.4 JDK基于Eclipse环境下的Web开发

  由于本次网页的设计,主要是想对从Unity3D平台发布出来的WebGL网页进行二次开发,所以需要Eclipse版本符合web项目开发的要求,本文选取的是Eclipse2020-12-R的版本。

  启动后,在电脑上新建一个命名为simmis的Workplace,之后点击launch进入开发界面。在File中新建一个Dynamic Web Project,命名为testsumilateMIS,version选择2.5,Target runtime选择对应的Tomcatv9.0。至此web工程项目便有了雏形,之后便需要不断地在Webcontent文件下进行页面的开发设计。首先先新建一个命名为index的首页jsp file,注意应将字符集改为utf-8。之后即可在Body中进行首页的开发设计。本文将首页分为4个部分,分别是头部(header)、菜单栏(menu)、展示区(show)与页脚(footer)。为了避免index命名重复,将第六章生成的Web文件更名为“show”,同时将3

  个文件统一导入Webcontent文件下。之后对header.jsp、menu.jsp与footer.jsp进行开发设计,达到首页上头部显示欢迎来到仿真系统平台,菜单栏上显示仿真系统|用户登录|用户注册,展示区显示Unity3D导出的html文件,页脚处显示版权的功能。在show.html中可以通过更改title的方法,更改右下角显示的字符串,完成index界面设计。

  完成了index界面的设计后,应该对该界面上的菜单栏显示的功能按钮进行设计,此时在考虑登录功能的开发前,应该先进行虚拟仿真系统数据库的建立,之后再进行登录与注册功能的脚本开发。本文采用的数据库为userinfo表,选用的MySQL版本为8.0。数据库建立完成后,通过在Java Resources文件下创建多个工具包与库,逐步分层实现网站的注册与登录功能。

  5结束语

  基于广大机械专业对装载机拆装学习与实训的实际需求,本文对装载机上主传动部分进行了一定程度地虚拟拆装。基于Unity3D平台,对装载机主传动部分进行了虚拟仿真系统的开发,实现了装载机主传动虚拟拆装操作、实现了鼠标自由控制视角的旋转和距离、实现了鼠标悬停显示零件名的功能、实现了拆装顺序设计与报错功能、实现了拆装过程中主视角的返回与随时重置拆装操作的功能。基于Eclipse平台对数据库进行了有效连接,实现了实验系统应该具备的用户注册与登录功能。该实验系统有助于增强机械专业的教学质量,提高教学效率,能让操作者更好地掌握主传动拆装时的技术要点与结构原理。

  参考文献:

  [1]焦祥,芦敏,许文.虚拟现实技术在夹具拆装实训中的应用[J].南方农机,2020,51(21):32-33.

  [2]丁毓峰,徐鑫,闵新普,等.基于Unity3D的机电产品虚拟拆装实验系统[J].实验室研究与探索,2020,39(3):118-122.

  [3]陈晨,周建钊,何晓晖,等.虚拟装配及运动仿真系统设计与实现[J].装备制造技术,2020(11):52-55.

  [4]杜来红,房亚东,陈桦.虚拟环境下的轨道车分配阀装配人机工程仿真研究[J].现代制造工程,2021(1):102-107.

  [5]成建群.基于Unity3D平台机械装配虚拟实验室的开发和应用研究[J].现代制造技术与装备,2020,56(11):111-113.

  [6]王子正.汽车发动机拆装实训与学习虚拟仿真系统研发[J].沈阳:沈阳大学,2017.

  [7]姚寿文.虚拟现实辅助机械设计[M].北京:北京理工大学出版社,2020.

  [8]林博.虚拟环境下面向设计的传动装置动态装配研究[D].北京:北京理工大学,2018.

  [9]周雪松,丰美丽.虛拟实验技术的研究现状及发展趋势[J].自动化仪表,2008(4):4-7.

  [10]段化鹏.虛拟现实中物理引擎关键技术的研究与应用[D].青岛:山东科技大学,2010.

  [11]吴景.基于Unity3D的虚拟实验系统的设计[D].广州:广东工业大学,2015.

  [12]倪萌.基于Unity3D的汽车发动机虛拟装配训练考评系统的设计与实现[D].北京:北京工业大学,2014.