基于UNITY 的虚拟机务训练系统研究
2022-10-30毕显士赵延光
毕显士, 赵延光, 黄 凯
(1.92281 部队, 山东 青岛 266550; 2.95579 部队, 四川 邛崃 611530; 3.95737 部队, 重庆 402361)
0 引言
机务训练是飞机机务人员重要的工作环节, 对培养技术的熟练度,掌握飞机设备的操作维护具有重要意义。传统模式下维修人员在具有一定理论基础后, 跟随 “师傅”进行“一对一”的操作训练。 此外,飞机更新换代越来越频繁,出现的故障难以再次完整复现,使用真机会造成大量的人力、 物力和资源的消耗, 训练效果难以达到预期。 同时,为适应航空维修保障中越来越高的科技含量,会检测、会调试、会维护、会修理、会管理(简称“五会”)己成为对航空机务人员的必然要求[1],虚拟机务训练可较好解决这种问题。
虚拟机务训练系统基于虚拟现实技术, 结合三维建模, 利用动画引擎, 目的是建起一个代替真实的训练的“实装”、“实地”和“实战”仿真环境,给训练人员提供一个高效、经济的训练平台和模式,使其能够深刻认知维护对象的组成和构造,掌握维护方法,以提高维修的熟稔度;还可根据操作流程或法规,对操作结果进行考核评估。
20 世纪90 年代以来,国外已广泛开展虚拟训练技术的应用,意大利萨勒诺大学的Abat 等开发了一种基于触觉的虚拟维修训练系统,实现了高交互性的虚拟环境,并将其应用于航空行业中[2]。 新加坡南洋理工大学的Li 等采用桌面式虚拟现实系统VREALISM 实现了虚拟维修训练[3]。国内的研究相对较晚,但发展较快,例如郝建平等人针对复杂的装备虚拟维修训练,基于Multi-Agent,采用系统设计方法,开发的虚拟维修训练系统(VMTS)结构框架,对此领域的研究具有重要意义。
本文针对某无人机机务岗位, 构建多源信息融合交互式的三维动态视景和实体行为的系统仿真, 让受训人员进入虚拟现实环境, 实时感知和操作虚拟世界中的无人机设备和零部件,获得身临其境的真实感受。
1 虚拟现实技术
虚拟现实技术(VR 技术)综合了计算机图形学、传感器、人机接口、机器视觉和人工智能等诸多先进技术,以诸如UNITY 3D 等三维引擎构建虚拟场景, 使用者凭借视觉、 听觉、 触觉等多信息通道逼真地感受虚拟三维世界,形成以参与者为中心,并可进行实时的交互的可视化环境。 其主要有三大特点:分别是沉浸性(immersion),交互性(interactivity)和构想性(imagination)[4]。 从90 年代初期开始,美国率先将虚拟现实技术应用于虚拟战场环境、单兵训练模拟、实施诸军兵种联合演习、指导员训练四个方面,并在这方面取得很好的成绩[5]。
Unity3D 提供诸如声音、图形渲染等多种功能,内置强大的编辑器,支持3D Max、Maya 等多种文件格式,只需运用一些编程语言, 就可以在它里面开发设计出高品质的游戏产品。 使用基于Direct X 和Open GL 的可实现高度优化的图形渲染库, 不仅可以支持Bump mapping、Rflection mapping,还可以支持Screen Space Ambient Occlusion 和动态阴影效果中用到的Shadow Map 技术。 Unity3D 的脚本是基于.NET Framework 开源框架的Mono类库,通过Mono 将带有GC(垃圾回收)的内存安全语言和C++图引擎桥接,不仅减少了安全隐患,也使得跨平台开发代码成为可能。 用户编写脚本的变量参数可以在编辑器里进行调整并实时的可以看到调整的效果[6]。 此外,Unity 的第三方的插件包括GUI、网络、材质、动画等,几乎涵盖了所有主题。
2 总体方案设计
虚拟机务训练系统共分为学习训练、虚拟操作训练、考核评估、系统管理等四个模块,见图1。
2.1 学习训练模块
采用设备部件三维仿真展示及文字介绍、 维修流程及三维动画维修演示、 维修手册、 图片及PPT 课件等方式,以课程为单位来管理某机种的或整个学习过程,还可实时记录受训人员的学习和训练时间。 本模块构建了一个导览式和查询式的学习平台, 给受训人员提供全面系统的基础理论和维修技能学习环境, 同时在虚拟操作训练时也可作为资料查询使用。 维修演示按照操作规定自动可交互地播放操作动画(相当于视频播放器),具有文字和语音提示功能,方便课堂教学。培训模式下可以按照最优流程单步地对模型进行操作,学习维护流程。学习完成后,通过相关的作业、单元测试还有仿真操作训练强化知识点的掌握,提供作业上传、查询、下载等功能。
2.2 虚拟操作训练模块
虚拟操作训练模块是受训人员开展日常训练的核心部分。按照无人机各系统划分,依据“系统-设备-部件”的顺序进行分解,以LRU 为基本单元建立三维模型,依据系统及各设备结构特点、检测特性,遵循机务训练手册,设计三维模型的装配信息和属性, 建立相应的维护知识库。通过交互设备受训人员可以方便地拾取部件,查看其名称和相关信息,进行组装或检测。组装中通过动态约束和碰撞检测技术判断当前部件是否可以拆装和防止零件之间相互穿越,增强机务训练的真实感。
虚拟操作训练模块还须建立起支撑机务训练的高逼真度三维虚拟环境, 将装备真实工作环境进行完整地展现, 所建立的三维模型结构与工作检测状态也要和真实设备相一致, 充分考虑装备维修保障对保障人员素质的需求,对受训人员的输入可实时响应,实现使用各种测试仪表的重复训练;实现各类设备种类复杂,层次多样的故障定位和排除的重复训练;实现各种部件的组装、测试和维护操作的重复训练;充分调动受训人员的感官神经,激发操作训练的积极性和主动性。
2.3 考核评估模块
考核评估模块分为理论知识考核和机务操作考核两部分。 理论知识考核部分采用C/S 架构,实现基于智能化的在线考核。理论知识题库以学习课程来分类管理,包括文字试卷形式、三维仿真操作等。文字类分为单选、多选、判断和实操等类型, 根据需要设定不同课目及岗位的题库,由数据库统一管理,分为试题组卷、测试界面、答题记录、考核评分和成绩查询等子模块。各种类型的题目覆盖各知识点和机种, 并有自己的难度值, 组卷时采用预处理、改进的遗传算法以及分段优化等方法,可适应机务各岗位、各技术等级人员的需求。 试卷生成后,采用在线方式在限定时间内开展考试,无需人工监控。提交后自动评卷,反馈考试成绩及具体情况。
机务操作考核可根据不同机务岗位, 选择不同的三维考核场景。 在考核操作过程中,屏蔽了一切提示内容,并具有一定的容错性,逐步记录操作者的动作,操作时间及操作顺序,将相关信息实时存储至数据库中。操作考核的难点在于如何建立科学合理的评价指标评定成绩,本文以维修大纲规定的标准流程为基准,通过操作完整性、操作时间和操作顺序三个维度, 采用模糊多准则决策方法, 考察受训人员实际操作流程在上述三个维度上与标准流程的相关性,从而建立起评价模型和计算方法,实现对受训人员操作能力的评价。
2.4 系统管理模块
系统管理模块供管理员使用, 受训人员不能使用该项功能。 本模块主要对系统中的数据在管理后台统一管理,主要包含人员信息管理、用户权限分配和制定、数据采集记录、日志管理、资源管理等方面。 本模块可修改与管理受训人员信息、自动记录操作人员动作、时间、步骤等训练和操作考核情况;修改和维护知识库、案例库与考题库;批改学习训练模块中受训人员上传的作业;记录和维护考核的结果,评定受训人员的知识等级和技能等级。
3 关键技术
3.1 虚拟环境下的设备建模与管理
虚拟机务训练系统是操作人员,设备对象,技能培养的有机整体, 以高逼真实现实装的操作为目的, 实施对象、 操作过程以及所使用配套工具与实际情况吻合度要高,因此在建立无人机全系统三维模型时,从最基础的零部件开始, 自下而上, 综合零部件及设备之间的层次关系、装配关系以及不同层次设备的约束和传递关系,结合各部件的实际物理属性,按照实际设备尺寸和功能,利用PATCH 方法、多边形法、螺旋线法等建立数字模型。 按照无人机的系统划分, 采用自顶而下参数约束集的树状结构将所有部件模型有条不紊管理起来,见图2。
图2 建模与管理层次关系图Fig.2 Modeling and management hierarchy diagram
3.2 基于虚拟现实的交互式操作与评估
虚拟机务操作训练系统为了帮助受训对象掌握和提高维修操作技能,着重于操作的正确性和完整性,主要以交互的方式完成,尽量减少主观因素造成的影响。 因此在操作流程中加入启发性知识和融入智能学习, 建立虚拟环境下操作动作的映射和检测处理, 形象地表现操作过程中信息的动态流动,增强操作的交互性,使现实中抽象和不易观察的操作动作和现象展现为可视的宏观过程。
机务岗位不同,操作熟练度不同,受训人员在训练或考核时的操作也不尽相同;操作难度等级、工具使用合理性等评价指标须用专业的知识和经验去建立, 要全面客观评估操作的优劣比较困难。 本文以各系统机务维护手册标准流程为依据,从操作时间、重定向数、操作聚合性等[7]三个方面出发,通过拓扑排序建立操作流程的评价模型,使用广度优先方法遍历评价模型,结合蚁群算法得出最优操作流程,为其他操作流程提供考核时的标准。
4 系统实现
4.1 系统软件结构
根据系统功能需求和设计模式的需要, 本系统的软件体系结构采用开放性和灵活性较高的分层软件体系结构进行设计。整个系统分成了基础数据层、通用数据访问层、基础应用层和管理应用层,是一种四层体系结构。 具体结构见图3,系统采用C/S(客户端/服务器)架构,整个系统划分为四层:
图3 软件系统架构设计图Fig.3 Drawing of software system architecture design
(1)基础层:主要采用Unity 程序库,包含了基于.NET Framework 的开源框架Mono 脚本支持库、Shader 渲染着色引擎库;NIDIA 强大的物理引擎, 以及高质量粒子系统,这些特效均可轻松上手,且效果逼真,可以方便、准确地开发出所需要的物理特效; 基于Direct X 和Open GL的一种可以实现高度优化的图形二三维渲染库。
(2)数据层:主要采用SQLite 数据库。 SQLite 是一个小型的C 程序库,实现了独立的、可嵌入、零配置的SQL数据库引擎。数据库分为五大类:用户信息库、资源库、设备信息库、三维模型库、试题库。
(3)业务逻辑层:对用户需求的支持,包含了用户登录流程、设备学习模块、仿真考核模块、后台管理模块。
(4)界面展示层:使用了Unity 自带的灵活美观的界面库UGUI、OnGUI;UIWidgets 第三方界面UI 插件, 包含Combobox、ListView、Progressbar、TileView 等 多 类 动 态 部件;HighlightingSystem 第三方高亮插件,可支持各类样式的高亮效果;
4.2 系统开发流程
本系统利用虚拟仿真技术,采用unity3D 引擎、3DsMax等三维建模软件与无人机机务训练相结合,对无人机结构尽可能地可视化还原,构建出一个从设备、到分系统,再到全机系统的训练环境,实现展示设备结构原理、训练维修技能、开展培训考核等功能,即使在无任务期间也可进行近似于真实系统的学习和训练。 系统训练流程见图4。
图4 系统训练流程图Fig.4 System training flow chart
4.2.1 三维建模
三维建模主要采用3D MAX 进行场景建模, 不同类格式模型的导入导出及动画设计,Solidworks 辅助进行无人机设备的工业设计。3D MAX 作为一款专业的三维动画软件,其主要有四种方式的建模方法。 包括:多边形建模法、NURBS 建模法、PATCH 建 模 法 以及基于插件的建模法。
飞机外形及骨架包含大量的曲面形态,因此利用PATCH方式建模;飞机内部各模块设备较为规则,主要采用多边形建模方式;建模的基础模型主要采用立方体、球体、圆柱体、切角长方体、切角圆柱体等标准几何体通过各种组合形成;对于形状和布设不规则的线缆,采用局部拼接、样条线建模、螺旋线建模等方式完成。
根据场景的需要,设置地形的大小、像素等;选择草地和树木工具及适合的天空盒,通过调整相关参数,使地形效果更加直观、具体和真实,实现了场景模型的构建。
设计完成后, 将无人机模型利用Unity 插件导出为.fbx 格式,将场景模型导出为.3ds 格式;最终利用三维可视化引擎读取加载两种模型到MFC 工程中进行显示、渲染及交互操作,模型制作流程图见图5。
图5 模型制作流程图Fig.5 Model making flow chart
4.2.2 模型交互实现
为了实现真正的模拟仿真,在系统设计与实现时,通过使用Unity3D 的漫游特征, 实现设备与操作者的交互操作。 通过虚拟系统,在内部通过键盘控制漫游角度,根据需要自由地进行切换视角,检查机体内部设备的状态。针对系统中一些关键设备和仪器的组成结构,将Unity3D与3Dmax 结合,成功实现了设备的三维展示,包括角度的旋转和移动等。 具体实现代码如下:
4.3 系统运行效果
登陆后, 系统主界面见图6。 系统主界面分为设备学习、仿真训练、考试、成绩查询四个部分,其中考试部分又分为理论考试和操作考试两类,操作考试见图7。 在训练模式下, 会显示诸如设备名称、 操作步骤提示、 错误数量、质量评价、选用工具名称及操作方法等信息, 以利于操作者更好的掌握操作训练过程和操作维护标准。 根据岗位操作系统的区别, 显示的内容会有一定的差别。
图6 系统主界面Fig.6 System main interface
图7 操作考核界面Fig.7 Operation appraisal interface
5 结束语
本文针对无人机日常机务训练需求,采用三维软件建立了某型无人机全系统模型,基于机务维护规程以虚拟现实技术构架了交互式训练系统。 解决了三维物体建模与管理、基于虚拟现实的交互式操作与评估等问题,实现了理论学习、操作训练及岗位考核等功能。 可有效提高受训人员的机务维护技能,对降低训练成本、提升训练效果有较大的帮助作用。