沉浸式机加工虚拟仿真实训系统研究

2024-01-09 15:39庄建军张博凯
科技和产业 2023年23期
关键词:机加工刀架车床

庄建军, 张博凯, 刘 喆

(1.南京信息工程大学 电子与信息工程学院, 南京 210044; 2.南京信息工程大学 工程训练中心, 南京 210044)

机械加工是智能制造中不可或缺的重要环节。为了更好地掌握该领域的技能和知识,进入车间实训室进行机械加工操作的学习过程是不可或缺的。目前高校学习机加工技术的主要途径还是课堂理论知识与车间实训室实习相结合的方式。现实机加工车间对学生而言较为陌生,学习过程中意外事故时有发生。加工过程中,学生缺乏理论知识,对繁多的操作步骤缺乏理解,而有限的教师和实验室设备资源也难以满足大量学生的学习需要。目前国内多数高校的理工类课程都开设了机械加工实训课程[1],实验设备作为实验室中的固定设备,缺乏扩展性和更新的可能,会随着课程进步与实际应用脱节。学校通常只能配置有限数量的车床,距离满足实际需求仍然具有一定差距[2]。

随着虚拟现实(virtual reality,VR)技术的发展和硬件设备的提升,各行各业对VR技术的需求日益旺盛,VR技术也取得了巨大进步,传统的线下教学活动已经无法满足高校师生专业学习的需求。为了突破现实硬件瓶颈限制,一些高校将虚拟仿真技术引入教学及实验。VR技术在机械加工实训教学领域中应用众多。尚振国等[3]研究了组合夹具设计“虚实结合”实验平台的开发,研发了一套标准化、可扩展的机械元件库;蔡宝等[4]研究了虚拟现实技术在铣削加工实训教学中的应用。VR技术在实验教学等领域有着巨大的潜力,能使教学、实验过程更加形象化[5],在提高学生的专注度及教学效率的同时,也可助力“新工科”“工程教育专业认证”等相关教育模式的研究与发展。

目前,高校教学方式发生了从线下到线上的重大转换,为深化教育教学与信息技术深度融合、持续推进线上线下混合式教学改革与学习革命提供了重大机遇。新冠肺炎疫情的爆发让线下实训难以进行,一些需要和工厂企业合作的培训项目更是受到防控的阻碍[6]。基于虚拟现实平台的机加工实训系统为机械加工教学提供了新手段。该系统针对VR技术在机械加工领域的应用,选取其中一部分进行详细功能设计和开发介绍,将实训过程搬到虚拟空间中,细化理论知识,精讲操作环节,将机械加工知识有逻辑性地呈现在学习者面前。将基于VR技术的仿真实训系统引入到教学中可以让学生自己动手在虚拟空间中反复操作,丰富实验教学过程,促进理论知识理解,激发学生学习兴趣,提高实际操作效率,降低事故发生概率。

1 机加工虚拟仿真实训系统设计

机加工虚拟仿真实训系统针对普车加工,依托 Solidworks 和 3Ds Max 建模软件完成车间地形环境和虚拟机床的建模,利用3Ds Max将实体模型转换为三角面模型降低数据处理量,完成模型优化;利用 Unity 3D 引擎和 C# 脚本语言构建多级交互系统。其开发过程以实际需求为导向,融合实际加工实验过程中多个学习操作环节,设计了场景漫游、设备认知、理论知识和操作模拟4大模块单元(图1),让用户在逼真的虚拟环境中沉浸式熟悉实训环境,认识加工设备,理解加工原理,学习理论知识,熟悉加工步骤。4大模块设计概念如下。

图1 实训系统方案

场景漫游模块:场景漫游模块设计了逼真的三维场景,模拟了现实中机械加工车间的布局,系统将用户传送到固定的起始漫游点,用户可通过键鼠操作控制漫游观察三维场景。

设备认知模块:为了使用户对车床设备有整体认知,设备认知模块设计了各零部件实物认知和各零部件功能介绍两大模块,用户即使没有接触过真实车床设备也可以迅速建立对车床的了解。

理论知识模块:为了考核新手在上手操作前对机加工理论知识的了解,系统设计了理论学习考核模块,搭建了答题系统界面,界面读取预存的题库供用户思考学习,完成后系统自动考核打分供教师评估学生的学习成果。

操作模拟模块:操作训练模块中针对机加工车间中常见的加工操作设计了演示和实操流程,用户可根据场景界面提示的步骤操作机床,依次对机械元件进行加工,锻炼使用者的操作能力。系统将现实实训室虚拟化,摆脱现实仪器设备的限制。用户仅需维护软件系统,无须架设机械加工设备。虚拟化的实验环境具有可试错、高用户量上限、教师实时测评方便、低维护成本的特点。

相较于现有的虚拟实训软件,本文中所设计的系统旨在模拟机械加工的车工学习全流程。其中,学习流程的全流程设计和新颖的答题考核方式增加了系统的学习流程完整性和可玩性。操作模拟模块的设计实现了机床实操的虚拟化,即使没有真实的机械加工设备,用户也能在虚拟实验环境中进行实操训练,从而摆脱了现实仪器设备的限制,充分发挥虚拟实训的优势。

2 实训系统技术实现

2.1 整体实现逻辑

机加工虚拟仿真实训系统根据现实中车间的比例制作地形环境和机加工车床模型,借助Solidworks和3Ds Max三维建模软件搭建模拟机床模型和虚拟车间地形的布局,创建虚拟元件资产库。三维模型的准备包含几何形状建模、贴图建模、运动逻辑建模[3]。三维模型制作的流程主要包括以下几部分:收集整理模型所需资料、三维建模、模型优化、材质贴图、渲染烘焙、输出文件[7]。几何形状建模依托Solidworks软件搭建车间车床设备的基本几何形状白模,建模过程中考虑区分静止部件和运动部件,方便后续编辑部件的运动逻辑。为了让用户体验更加真实的操作设备,贴图建模使用Photoshop设计制作了符合实际效果的三维模型贴图和交互界面样式,经过校正处理后作为几何模型的贴图素材[8]。将制作好的模型和界面导入Unity 3D环境中进行运动建模,在Visual Studio中使用C#语言编写逻辑交互功能,通过部件的旋转和平移模拟机械加工的切削过程。系统搭建的技术实现逻辑如图2所示。

图2 实训系统设计的技术实现逻辑

2.2 环境和设备建模

Unity3D支持导入多种格式的模型和贴图,将在Solidworks和3Ds Max中搭建的车床模型等数字资产导入Unity 3D中[9],赋予材质贴图并设计相应操作交互即可搭建逼真的虚拟实训场景。由于 Solidworks 建立的模型为实体模型,直接导入 Unity 3D中会产生较大计算量降低系统演示性能,因此输出STL格式并导入3Ds Max中,运行软件的面优化命令,添加面平滑命令将实体模型转换为三角面模型,减少模型之间重叠或相交的多余面[10],降低 Unity 平台的数据处理量,完成模型优化[11]。

2.3 UI交互设计

本系统注重体现三维沉浸感的交互,最主要的方式是通过射线与碰撞实现用户可以通过在三维空间中沿着一条无限长的射线进行选取和操作,响应碰撞事件来完成相应的交互。射线轨迹一旦与添加了碰撞器的物体发生碰撞,软件会记录碰撞,执行操作(图3)。系统中的射线可以实现如点击悬浮在半空的用户界面(UI)以及虚拟按键等目标选择操作[12]。为了模拟学生在机加工学习中的多个关键环节,针对设备认知、理论知识和实际操作展开教学,场景中设计了手部菜单,方便用户导航至不同功能场景操作学习。手部面板利用Unity中的 UI 面板进行制作,利用Canvas组件搭建菜单面板,面板上各按钮用Button 组件控制[13]。在实际操作过程中,通过不断按下鼠标中键可对手部菜单进行显示/隐藏切换,避免遮挡视线中进行的操作。系统按照用户学习的逻辑层级设计了两级渐进式菜单,用户可以逐步点击按钮到达自己需要了解学习的部件信息。菜单以列表形式展示,有逻辑性,让整个系统清晰易懂。交互界面友好,使学习者能够直观地操作和使用系统(图4)。场景中添加了背景音乐,轻松舒缓,使用户在轻松愉快的氛围里完成操作与学习。

图3 碰撞检测逻辑

图4 手部菜单和设备认知模块展示

界面设计遵循置界面于用户控制之下、减少用户的记忆负担、保持界面一致性等原则[14]。设备认知模块中设计了两层级的菜单按钮,可使用手柄上的指针与菜单按钮进行交互,点击不同部件的按钮弹出对应部位文字介绍,同时对指定部分进行蓝色外发光提示。通过手部菜单的多层级操作,用户可以了解车床的各个组成部分,通过各部分的介绍文字学习使用车床的规范操作。为了更好地展示文字效果,采用outline外发光处理各按钮,上下偏移和左右偏移根据实际效果设置。颜色透明通道选择合适的透明度,这样可以让文字显得更有质感。对于“主轮箱”“交换齿轮箱”“三爪卡盘”“刀架”“进给箱”“丝杠”“光杠”“操作杠”8个不同的部件按钮添加不同的按钮监听,以便实现点击不同按钮时出现监听内容,包括外发光、按钮文字提示以及介绍文字。

由于车床不同部位案例数量较多,设计中如何将它们方便、高效地展示是一个关键问题。因为每个按钮都对应一个部位、一个介绍铭牌和一个介绍面板。所以统一格式划分为一个类,命名为Buttons。外部分别将按钮以及对应部件,对应介绍面板拖入buttons列表内,方便直接调用。外发光以及部位介绍面板显示隐藏。

2.4 理论知识模块和操作模拟模块实现

为方便教师考核学生对理论知识的掌握情况,系统设计了理论知识考核模块。将预编写的题库写入Excel文档,再通过FileStream函数对Excel里的数据按照规定的格式进行读取并调用。

记分系统针对答题对错进行得分统计,得出用户成绩通过点击手部菜单上的“理论知识”按钮,可直接瞬移到答题指定位置。手柄上的指针与UI进行交互,选择选项点击确定即可完成答题。模块根据每题得分累加,满分为100分(图5)。

图5 理论知识模块界面

2.5 操作模拟模块实现

针对机床操作模拟,系统设计了用户可定义的多个自由度,包含转速控制、车刀架横向运动、车刀架纵向运动等。Transform类是Unity中最为常用的应用程序接口(API)之一,它被用于描述和控制物体的位置、旋转、缩放属性。通过使用Transform类,可以轻松地在三维世界中定位和操纵游戏对象[15]。部件操作动画是根据用户操作,调用相应的Transform组件,控制车床各组成零部件的移动来实现的[16]。通过Unity3D的iTween函数灵活控制虚拟车床零部件的移动和旋转,脚本继承VRTK_InteractableObject组件以进行物体交互。系统在车床上方设计了悬浮的转速控制滑块,灵活控制卡盘转轴的转速并每隔0.5 s抓取显示(图6)。车刀包含横向、纵向运动等多个操作自由度,用户触发相应的进给运动按钮后,将手轮旋转到正确的位置,此时丝杠或光杠开始旋转,并带动溜板箱里的传动机构,从而实现刀架的纵向或横向平移运动[17]。在虚拟操作中,如果模型互相穿透重叠也就是产生“穿模”现象将会大大影响模拟效果。为了使三维物体接触碰撞后不重叠,需要对组件中的 Constraints 属性进行设置,为物体添加刚体组件[18]。系统设计中强调安全生产,用户需抓取并戴上安全帽及手套才可继续后续操作。

图6 车刀座运动及转速显示

切削算法是实现机械切削效果的核心,在计算机图形学、数值模拟中有很多常用的算法。切削过程基于对运动过程的积分解析,常见的积分算法包括欧拉前向法、欧拉后向法、Verlet积分等。各种积分算法各自有不同的特点和应用场景。各种积分算法的基本逻辑是:确定时间步长dt,然后根据这一刻的初始值计算延时dt的速度量和位移量,执行切削操作。在模拟车刀切削过程中,各种数值积分算法有各自的优缺点。

具体仿真中,欧拉前向模拟物体运动效果的精度有限。因此,在使用欧拉前向法进行切削模拟时,需要根据具体需求进行调整,缩短仿真的时间步长或者加入更多的物理模型来优化模拟效果。欧拉前向法简单易懂,易于实现,但它的稳定性不够,并且误差会随着时间步长的增加而增大,不够精确,容易出现震荡。因此,为了保证仿真加工过程的精度,仿真使用Verlet积分法。Verlet积分算法具有很好的保真度和稳定性,而且计算精度比欧拉法高,不易出现震荡现象。系统场景中,游戏物体由一系列的多边形顶点组成。运动和加工过程中这些顶点的位置可以通过Verlet积分进行更新。在每个时间步长内,计算车刀和工件的运动和受力情况,并使用Verlet积分来更新顶点的位置。

根据速度和加速度计算物体的位置,并且使用平均速度来推导位置,然后用新位置重新计算加速度,模拟物体在给定时间步长内的运动,由此更新物体的状态。根据牛顿第二定律,可以计算出物体在每个时间步长内的加速度,然后使用以下公式来更新其位置和速度:

p(t+dt)=2p(t)-p(t-dt)+a(t)dt2

(1)

式中:p(t)为物体在时间t时的位置;a(t)为粒子在当前时间点受到的加速度(通常由牛顿第二定律计算得出);dt为时间步长。Verlet积分算法的优点是它是无条件稳定的,而且在处理非线性问题时具有很好的保真度。Verlet积分算法基于基本的牛顿运动定律,即力等于质量乘以加速度。由于它只依赖上一时刻的位置和加速度信息,因此在实现时并不需要存储过多的历史数据。

车床的运动方向包含横向、纵向运动维度。车床的车刀架是进行切削的主要部件之一,它的运动方式决定了车削加工的效率和精度。车刀架主要有以下运动方式。

前后横移:车刀架左右横移是指车刀架沿着床身横向移动,用于调整车刀与工件的距离和定位位置。车刀架前后横移可以通过手动操作或自动控制来实现,自动控制可以提高生产效率和加工精度。

垂直升降:车刀架垂直升降是指车刀架沿着床身竖直方向上下移动,用于调整车刀与工件的接触压力和切削深度。车刀架垂直升降可以通过手动操作或自动控制来实现,自动控制可以根据加工工艺和工件形状实时调整升降速度和位置,提高加工精度和表面质量。

多种运动方式的组合和协调,可以实现各种不同的车削加工操作,如粗车、精车、车削圆柱面、车削锥面、车削螺纹、退刀等。

车刀架运动脚本实现了车床操作的启动、前移、切削、退刀等功能。在进入前移状态后,程序会先将前移操作的互动框高亮显示,然后给互动框绑定 clickRotate2.action 委托,在进行前移操作后会使互动框高亮取消,进入切削状态。

在进入切削状态后,程序会将切削操作的互动框高亮,并给互动框绑定 clickRotate.action 委托,在进行切削操作后会使互动框高亮取消,进入退刀状态。

为模拟车刀架运动物理交互,脚本需继承VRTK_InteractableObject。

2.6 切削过程仿真实现与优化

针对车刀切削过程,本模块采用Verlet积分方法模拟其物理过程。算法使用了协程和动态时间步长(Time.deltaTime)来优化性能并保证切削过程在不同设备上具有一致的表现。

协程:协程是一种编程结构,允许脚本在多帧之间分配计算任务,从而提高性能。在Unity中,协程是通过IEnumerator接口实现的,可以在执行过程中暂停和恢复。在本脚本中,使用协程来执行切削操作,每次迭代都执行一次碰撞检测和切削形状更新。

动态时间步长:由于模拟切削过程需要一定的运算量,若设置固定的时间步长(如0.01 s),系统运行过程中硬件配置和计算量会影响游戏过程的帧率,固定的时间步长无法与实际帧率相匹配,因此需要根据实际帧率动态调整时间步长。为此,算法使用Time.deltaTime作为时间步长,它表示上一帧到当前帧所用的时间。Time.deltaTime表示上一帧到当前帧所用的时间,可以用作动态时间步长。这可以确保在不同设备上具有一致的表现。在本脚本中,使用Time.deltaTime来计算刀具的新位置。

Verlet积分算法是一种常用的数值积分算法,由于速度量基于隐式推导,速度和位置的同步性较高。车刀切削脚本实现了一个基于Verlet积分算法的车床运动切削算法,并增加了碰撞检测和切削形状更新。在Start()方法中,首先获取待加工物体的MeshFilter组件,并获取其网格数据。初始化位置和加速度数组,其中oldPositions初始化为网格顶点数组,currentPositions和accelerations与其大小相同。开始模拟,通过启动协程SimulationCoroutine()来进行模拟。在SimulationCoroutine()方法中:

1)获取待加工物体的MeshFilter组件和网格数据。

2)获取网格的法线数据,用于计算切削力的方向。

3)遍历质点的当前位置数组currentPositions。

4)计算受到的力,这里将切削力定义为切削力量基准cutForce乘以切削深度cutDepth乘以前进速度feedRate再乘以法线向量normals[i],表示力的方向与法线方向一致。

5)计算加速度,假设质量为1,所以加速度等于力。

6)使用Verlet积分算法更新位置,根据式(1)来计算新的位置。

7)更新位置数组,将当前位置保存到旧的位置数组,将新的位置保存到当前位置数组。

8)更新网格的顶点数据,将当前位置数组赋值给网格的顶点数组,并重新计算网格的边界和法线。

9)等待下一帧,通过yield return null来让协程暂停,并在下一帧继续执行。

脚本为切削过程添加了切削参数,包含切削深度、前进速度等。通过添加了两个切削参数:切削深度(cutDepth)和前进速度(feedRate),这两个参数是以公有字段(public fields)的形式定义的,因此可以在Unity编辑器中直接设置。定义参数如下:

public float cutDepth = 0.1f; //切削深度;

public float feedRate = 0.01f; //前进速度。

此外,为模拟真实切削过程,脚本实现了一个更真实的切削力模型,切削力会随着切削深度、前进速度等参数的变化而变化。车刀前进的阻力应与切削深度成正比。定义切削力参数如下:

Vector3 force = cutForce * cutDepth *

feedRate * normals[i]。

cutForce是切削力的基准值,normals[i]是物体表面在顶点处的法线方向,切削力沿着法线方向作用。最后,脚本用切削力数值来计算加速度,将加速度导入Verlet积分法,根据记录的每时刻位置计算下一时刻位置坐标,从而更新顶点位置、完成切削过程。

3 硬件平台与系统发布

系统选用Oculus Quest 2作为操作的硬件平台。作为Meta公司于2020年Facebook Connect上正式推出的一款的VR一体机,它使用液晶显示屏(LCD),搭载高通Snapdragon XR2作为计算平台,配备6 GB运行内存。单眼分辨率为1 832×1 920,双眼分辨率为3 664×1 920,支持72 Hz和90 Hz的刷新率。Oculus Quest 2包含一对6自由度感知的操作手柄,可以实现本机加工虚拟实训系统的所有手势操作功能,如对物体的抓取、手柄射线、虚拟按钮点击等。Unity 3D为开发者提供了适用于各种VR设备的接口,可以在诸如Oculus Quest 2等设备上消费VR内容。

系统调用VRTK组件中的VRTK_ ControllerEvents脚本,该脚本包含虚拟环境中的多种交互手势,包括VRTK_Interact Grab(抓取)、VRTK_Interact Touch(触摸)、 VRTK_Interact Use(可使用特定物体,扣动手柄扳机启动)、Controller_SimplePointer(远程定点移动)[19]。配置好Unity 3D环境,导入模型资产并设计交互后,用户可以利用VRTK组件和Oculus Quest 2等VR头显设备进行交互,浏览虚拟场景并完成学习训练。系统内的场景内容和理论题库可以灵活定制,教师可预设机加工操作步骤让用户根据情况学习不同的理论知识和加工步骤,增加系统的交互性和实用性。系统各模块紧密衔接,有利于用户入门机加工操作,通过鼠标、键盘以及 VR 眼镜、手柄等交互设备沉浸在虚拟现实环境中,建立起对车床机械加工的整体认知。

4 结语

设计了一种基于VR技术的机加工虚拟仿真实训教学系统,包括场景漫游、设备认知、理论知识和操作模拟4大模块单元,系统具有较强的实战性,对于操作者不需要依赖真实车床,只需要程序运行即可对车床进行操作与学习,能够较好地实现人与车床的交互。现如今,VR早已步入机械行业[20],能够让使用者更快更好地学会如何操作机器,从而最大程度降低受伤的风险,诸如此类的应用中VR车床只是其中之一。虚拟实验在虚拟的空间中模拟了机械加工的交互界面,为用户沉浸式地提供了富有构想性的交互体验[21]。随着现代信息化技术的不断发展,虚拟现实技术也逐渐渗透到工程实践和教学的各个方面,虚拟现实与系统仿真实验实训教学改革是一项有益的探索。

猜你喜欢
机加工刀架车床
CW6163B车床在线铣削烧结台车操作实践
车床三爪卡盘找正组合工具
两例CA6140 刀架卡紧故障的解决方案
基于人机工程学的卧式车床整机防护装置的设计
C730B车床PLC改造
基于ArtCAM的数控雕铣机加工浮雕零件研究
车床刀架快速移动电机是怎样控制刀架横向和纵向移动的?
CM6132型卧式车床控制系统的PLC改造
钛二维机加工的切削力预测
冲管机加工艺的分析与探讨