虚拟装配教学系统的功能设计与开发
2019-12-30无锡商业职业技术学院
无锡商业职业技术学院 郁 敏,信 轲
1 系统需求分析
虚拟装配技术已成为数字化制造技术在制造业中研究和应用的典范,将此技术应用于教学系统可以提高学生装配任务的完成质量。
在汽车专业拆装实习的教学过程中,学生主要面临如下问题。第一,学生对结构件的运动过程理解困难。第二,运动部件是否存在干涉现象很难观察并矫正。第三,复杂的装配体内部结构了解不全面。第四,拆装实习时,学生经常出现拆装顺序混乱,拆卸下来的部件装不上去等现象。针对以上问题对虚拟装配教学系统进行功能设计与开发。
2 系统框架结构设计
基于OSG的虚拟装配教学系统框架,主要由数据层、核心服务层、应用层及界面层等4个层面组成。各个层面之间协调工作,实现系统各个模块的功能。系统的框架结构设计如图1所示。
(1)界面层。使用CEGUI编程技术开发本系统的操作界面,系统中设计有VR-Space Wintracker位置跟踪器和DG5VHand 2.0数字手套的编译接口,通过以上交互设备可以进行虚拟浏览和虚拟装配等人机交互操作,通过键盘按键可以切换为鼠标和键盘控制人机交换模式。
(2)应用层。应用层主要提供CAD的数据接口,管理装配体信息。
(3)核心服务层。此层负责实现虚拟装配教学系统中关键技术,系统的关键技术主要有场景管理、约束识别、碰撞检测和运动仿真。
(4)数据层。数据层主要有两大类数据,一类是CAD 系统中提取出的三维装配体模型信息,另一类是包含有装配序列、装配路径、装配约束等装配过程信息。
3 系统功能设计
虚拟装配教学系统引入汽车车门作为模型,主要用于汽车车门的虚拟装配与拆卸仿真。为了更好地解决实际教学过程中存在的问题,系统设计并开发了车门虚拟漫游、车门附件运动仿真、车门虚拟装配仿真、多人协同管理、车门装配序列规划及爆炸图展示等6个模块。系统模块设计图如图2所示。
图1 系统总体框架结构图
图2 系统模块设计图
4 系统功能实现
4.1 虚拟漫游模块
虚拟漫游模块主要是使用交互设备来改变摄像机位置和朝向,使用户从不同的角度来观察虚拟场景的效果。虚拟漫游的实现过程如图3所示。在Viewer初始化之后,在场景中添加漫游器,通过handle处理输入的事件,使用矩阵控制摄像机的位置,将摄像机的信息反馈到Viewer中,进行场景的更新。
从场景中选择一个目标节点进行跟随。通过将摄像机聚焦到场景图形节点的方法,将视口的摄像机将跟随节点的世界坐标进行放置,系统实行了对运动目标的聚焦浏览功能,此功能可以更为精确地观察运动部件内部是否存在运动干涉。
4.2 车门附件运动仿真模块
车门运动附件主要包括玻璃升降器、门锁及铰链等。系统运动仿真动画制作过程如图4所示。
首先利用UG软件建立车门模型,接着将车门模型的零件以STL格式转出,导入3dmax软件中。使用3dmax材质编辑器给模型加上材质和表面贴图。接着制作玻璃升降器、门锁、铰链的运动仿真模型。最后将模型文件以.ive的格式导出,转入到基于OSG的汽车车门虚拟装配教学系统,OSG加载并渲染车门模型。
本系统将虚拟漫游技术和3dmax的动画技术相结合,开发车门附件运动仿真模块,对车门附件的组成和工作原理的展示更加生动直观,学生还可以用来校核车门附件是否存在运动干涉。
4.3 虚拟装配仿真模块
虚拟装配仿真模块可实现汽车车门的虚拟装配和拆卸仿真,检验零件的可装配性。此模块工作流程设计如图5所示。装配时,先抓取一个零件,建立或解除零件间的约束信息,移动零件。装配过程全程进行碰撞检测,如果出现碰撞,则弹出对话框“模型中发生碰撞,请返回上一帧操作”。系统可记录下每个零件的装配序列和路径,回放装配过程,修改优化装配路径和序列。调用装配文件,还可实现装配动画播放功能。装配动画可以很好地指导学生完成装配操作。
4.3.1 碰撞检测
汽车车门虚拟装配教学系统将ODE和OSG结合起来,利用ODE的碰撞检测算法,编程实现实时检测模型运动是否发生碰撞。如图6所示,图中画圈区域为在安装门锁时,门锁和安装孔边缘发生碰撞,系统自动弹出“模型中发生碰撞,请返回上一帧操作”的提示框。
图3 场景漫游实现流程图
图4 运动仿真实现过程图
图5 装配仿真模块工作流程图
4.3.2 路径记录与回放
在OSG中,使用类osg::Animation Path记录零件的装配路径。实现过程如图7所示,先定义一个结构体,结构体内存有模型的节点名称、动作时每帧的位姿矩阵信息,信息传入结构体形成向量组列表。路径信息用Animation.txt文件进行记录。
图6 安装过程碰撞检测图(截屏)
每个零件的运动路径信息存储在Animation.txt文件中,调用Animation.txt文件可对零件的装配路径进行回放。使用OSG中的osg::Animation Path Call Back 类中Updata Callback 函数来实现路径回放功能。
图7 路径记录流程图
4.4 多人协同管理模块
将Socket编程技术运用到本系统中,基于Socket程序灵活的移植性能,它可以平稳地在此系统中运行,实现多人同时操作装配的功能。
学生在弹出的对话框中输入自己电脑的IP地址,便完成客户端登陆进入虚拟装配教学系统。学生可以同时对同一个装配体进行操作,协调完成序列规划等一系列学习任务。如图8所示,图中画圈区域为三位同学拖着不同的零件同时进行车门装配任务。此功能加强了学生之间团队合作和沟通能力,提高了学生完成任务的效率。
图8 三人协同装配操作示意图(截屏)
4.5 装配序列规划模块
装配序列规划模块使用分层算法来控制车门拆装。以拆卸分层控制为例,若选取任意一个零件,搜索数据库中存储的此零件的节点信息,若此零件存在上层父节点,说明其上层装配体拆卸没有完成,用定义函数的方式阻止零件的移动;若此零件无上层父节点,说明其上层装配体拆卸完成,可以规划下一步的拆卸。依据自下而上分层拆卸原则,此算法克服了任意拆卸导致的混乱,符合正常的拆卸逻辑。
如图9所示,在拖动玻璃升降器大臂时,无法移动,系统弹出“请完成上一层级拆卸步骤!”对话框。这是因为在拆卸玻璃升降器大臂时,没有事先拆卸下升降器托架装配体,所以此步骤无法进行。
装配序列规划模块通过分层算法获得合理的装配序列,同时可对车门零部件的装配路径和序列做相应的调整,删除不合理的规划序列或路径,从而获取较优的规划结果。
图9 拆卸序列规划过程图(截屏)
4.6 爆炸图生成模块
爆炸图生成模块算法是基于零件的拆卸序列,可分别实现总装配及子装配体的全局爆炸和局部爆炸。用零件包围盒进行零件位置的描述,利用拆卸矩阵实现装配体的爆炸。获得的爆炸图可清晰地展示汽车车门装配体的内部结构,加深学生对车门内部结构的了解。如图10为车门模型爆炸全局图。
图10 车门全局爆炸图(截屏)
本文结合拆装实习教学过程中问题与需求,设计并开发了汽车车门虚拟装配教学系统。6大功能模块很好地解决了教学过程中存在的问题,提高了学生拆装实训的装配效率和精度,加强了协同拆装过程中的团队合作精神。