APP下载

基于强化学习和虚拟现实技术的机械仿真教学系统研究

2020-01-19张永春单丽君

中国设备工程 2020年22期
关键词:减速器引擎虚拟现实

林 木,张永春,单丽君

(1.大连海洋大学,辽宁 大连 116000;2.大连交通大学,辽宁 大连 116021)

近年来,由于一些易于使用和可扩展仿真平台的出现,深度强化学习研究和算法设计取得了重大进展。这些仿真平台不仅可以促进算法的改进,还可以通过虚拟仿真平台训练模型并将其部署在现实世界中,比如,我们可以将虚拟仿真平台中训练的机器人部署到现实世界中工作,在训练过程中,虚拟仿真平台可以提供安全、受控和高效的培训环境。

同时,基于这些仿真平台的机械虚拟仿真教学也一直是国内外虚拟制造技术教学的研究热点,该教学方式从产品装配的视角出发,综合利用了计算机辅助设计、虚拟现实技术、建模与仿真技术、信息物理系统等,为学生开展探索实验、合作学习和创新实践建立了一个身临其境的虚拟环境,为实验平台建设增添了思路。这其中由于机械臂具有较大的市场份额和广阔的应用前景,而减速器是机械中的典型机构,高校和教育机构均高度重视机械臂和减速器的教学及应用,并将其作为机械类学生在教学和实践中的重要研究对象。

1 系统框架及仿真环境搭建

1.1 系统框架结构

基于Unity3D引擎开发虚拟互动体验平台的过程,实质上就是开发虚拟现实内容的过程,首先,使用3D建模软件构建机械臂及实验平台环境的仿真模型,然后将FBX格式的3D模型导入Unity3D引擎中,通过程序脚本,添加交互功能,如,场景漫游、碰撞检测、交互界面等,以便学生可以在仿真实验平台中以第一人称视角观察各种机械,实现沉浸式交互,增加学生对机械的认知,达到预期的实践教学效果。

1.2 机械三维建模及实验室环境构建

在创建机械3D模型过程中,模型中包含的信息(名称、尺寸、单位、坐标、轴心、材质等)必须符合生产规范,这有助于模型编程和软件之间的导入和导出。

在对机械进行建模后,还需要将纹理贴图分配给相应的模型,最后,将机械模型打包以FBX格式导出。需要注意的是,模型在导出过程中要将模型Y轴设置为向上,这样才能与Unity3D引擎中的坐标系保持一致,同时,要选中“嵌入的媒体”选项,这样模型上的贴图文件在导入Unity3D引擎后才会保存在单独的文件夹中,从而避免贴图丢失。使用Unity3D引擎创建一个新项目,并将从3ds Max导出的模型导入到项目中。同时,使用类似的建模技术和资源包(如Unity3D引擎随附的Skybox)构建了实验室环境。

1.3 机械臂AI训练环境搭建

机械臂的AI训练是基于Unity ML-Agents实现的,Unity是一个游戏开发平台,由游戏引擎和称为Unity Editor的图形用户界面组成。ML-Agents是一款开源的Unity插件,可以让游戏和模拟作为训练智能Agent的环境。通过简单易用的Python API,Agent可以使用强化学习,模仿学习,神经元演化或其他机器学习方法进行训练。

ML-Agents插件提供了一组核心功能和其他功能。核心功能使开发人员和研究人员可以使用Unity Editor和关联的C#脚本定义环境,然后将构建的环境直接与Python API进行交互。附加功能包括一组示例环境和基准算法。示例环境既可以用作基础算法,也可以用作模板来构建或修改新环境。基准算法可以用于训练使用该方法创建的任何环境中的代理,同时,也是更高级算法的起点。

Unity深度强化学习工具中,动作的执行者称之为代理(Agent),它内嵌在环境中;策略则是动作执行的最终目标,Brain负责为其相关代理提供决策策略,引导动作的执行;在动作执行前与执行后都会有一个状态,两个状态的改变依据策略的标准,获得一个回报值;Academy实现与外部训练工具的信息交互,并负责统筹整个训练。

Unity ML-Agents的官方推荐环境为:Phython2/3 64位;jupyter notebook;TensorFlow (1.0+) (Training);Visual Studio 2017;Unity3d 2017+。本系统基于Unity ML-Agents的较近版本,利用ml-agents-0.8.0、Anaconda3实现了深度强化学习环境搭建。

2 系统功能实现

机械的功能分析和结构识别是教学过程中的主要教学内容,因此,本实验室系统的主要功能有:仿真实验室机械模具展示及漫游功能、机械动态功能展示、减速器虚拟装配和机械臂AI训练。

2.1 仿真实验室机械展示及漫游功能

实验室漫游是以第一人称视角,借助VR硬件进入虚拟现实实验室察看机械结构及其动态功能。在Unity3D引擎中实现第一人称视角漫游时,将VR预设体放置在场景中,调整位置离地面大约1.7m,从而模拟人眼高度,实现了环境漫游及观察点的瞬移。

2.2 减速器功能展示及虚拟装配

Unity3D引擎中包含了NVIDIA PhysX物理引擎可以动态模拟“关节”连接。减速器需要实现零件之间的相对旋转,因此,设计“关节”主要是铰链,固定在基座上的零件通过固定关节连接。

为了在仿真实验平台系统中实现减速器动力学的物理效果,Unity3D引擎提供了多种碰撞器组件。在减速器仿真实验系统的模型展示部分,通过脚本移位方法GameObject.transform.Translate()实现运动驱动,以实现零部件和虚拟装配体的动态展示。

虚拟装配必须符合实际减速器装配工艺路线,因此,交互式装配程序需要添加逻辑判断功能,使得整个装配过程是符合逻辑的交互式动态控制。

2.3 机械臂 AI训练

由Unity3D打开ml-agents-0.8.0中的Unity SDK项目。创建Academy,新建一个空物体,添加一个C#脚本,将继承类改为Academy,并添加using ML Agents命名空间。类似过程创建Agent(继承类为Agent)。并通过“资源”为“Academy”创建“Brain”,并将其添加给Academy和agent。

将机械臂按层级设置好父子关系,并由关键点实现自由度。之后在Agent脚本中设置机械臂各关节和目标物体,并基于“赏罚”训练逻辑实现机械臂抓取目标物的训练。

设置好后,就可以开始训练了,在经过几个小时的训练后,最终将训练好的二进制文件在Unity3D中加载,点击编辑器上方的Play按钮,实现训练结果,随着目标物的随机移动,机械臂可以实现对其准确抓取。

3 结语

随着强化学习和虚拟现实技术的不断发展,虚拟现实以及AI内容的开发变得越来越简便。本仿真实验室系统与现有解决方案相比,在方便性和交互性方面都有了不同程度的改进与提高,将功能强大的深度强化学习和虚拟现实技术应用到工程技术类教学中,提高了机械结构认知、动作控制、课程设计等教学环节的教学效果和教学效率,使学生借助该系统更好地理解老师的理论讲解,并避免了在真实机械实践中出现的安全隐患,对提升教学质量有积极影响。

猜你喜欢

减速器引擎虚拟现实
新海珠,新引擎,新活力!
虚拟现实技术在中学校园中的应用
车坛往事4:引擎进化之屡次失败的蒸汽机车
驼峰第三制动位减速器夹停钩车问题的改进
提高车辆减速器缓解可靠性方案探讨
低密度超音速减速器
蓝谷: “涉蓝”新引擎
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
基于ANSYS Workbench 的ATB260 减速器箱体模态分析