闻月,季宏斌,季勇,胡建中
(1.东南大学机械工程学院,江苏南京211189)
(2.南通棉花机械有限公司,江苏南通226300)
基于Java 3D的报废汽车拆解指导技术研究
闻月1,季宏斌2,季勇2,胡建中1
(1.东南大学机械工程学院,江苏南京211189)
(2.南通棉花机械有限公司,江苏南通226300)
针对报废汽车车型繁杂、拆解人员培训成本高的问题,基于Java 3D对报废汽车拆解指导技术展开研究。通过分析拆解工艺流程,确定了报废汽车拆解的基本工位和拆解内容。基于VRML技术,结合Java 3D技术在三维图形领域的应用,构建了基于工位的拆解模型库,开发了报废汽车拆解指导系统,实现了拆解过程的动态可视化。车轮和车门拆解实例表明,所开发技术是可行性的,对报废汽车拆解具有重要指导意义,能有效提高汽车拆解的智能化水平。
报废汽车;拆解指导;Java 3D;VRML
近年来,我国汽车行业迅猛发展,汽车销量和保有量快速增长[1]。据中国汽车工业协会统计分析,我国2016年汽车销量达2 494.80万辆,同比增长14.11%,汽车保有量达1.84亿辆,预计2020年汽车保有量将突破2亿辆。同时,随着汽车保有量的持续增长,报废汽车数量也大幅增加,2014年全国报废汽车数量达220万辆,预计2020年将高达1 800万辆左右。报废汽车是金属、非金属、油液、气体等多种材料的集合体,如果能对它进行高效环保地拆解,可以减少环境污染,且有利于资源的再生循环利用,对优化资源配置和发展循环经济具有重要意义,符合我国建设资源节约和环境友好型社会的目标[2]。
目前,报废汽车拆解技术研究主要包括拆解工艺技术研究、拆解设备研制、拆解经济效益分析和拆解信息管理等,并且大部分研究集中于拆卸序列规划方面[3]。而由于汽车车型繁杂、零件类型众多、装配结构复杂等特点,导致拆解人员培训周期长、成本高,拆解智能化水平低,仅仅通过单纯串联的拆卸序列规划很难实现报废汽车的高效精细拆解。基于Java 3D[4]的跨平台性和交互操作等特点,研究了报废汽车拆解指导技术,结合虚拟现实语言VRML技术,构建报废汽车拆解模型库,开发基于Java 3D的拆解指导系统。通过探究虚拟世界中装配体拆解的过程,实现零件拆卸运动设计和模型平移、旋转、缩放等交互式操作,动态地展现拆解过程。
Java 3D是一个交互式三维图形应用编程接口(API),是Java语言在三维图形领域的扩展。它集成了Java API的功能,可以和普通的Java 2D,Swing组件、AWT组件等很好地结合,被应用于三维动画、三维游戏和机械CAD等领域[5]。Java 3D可以产生形体的运动和变化,动态地改变观测点的位置视角,同时具有交互作用,如点击窗体时会向程序发送一个信号,从而使场景图产生一定变化。
VRML(Virtual Reality Modeling Language)是一种虚拟现实语言,是三维造型和渲染的图形描述性语言[6]。它把“虚拟现实”看做一个场景,把场景中的一切看做对象即“节点”[7],对每一个对象的描述就构成了VRML文件,以.wrl为扩展名。
Java 3D的虚拟世界也是根据场景图创建的,一个场景图是由一组具有父子关系的节点对象形成的树状结构。利用Java 3D可以构造简单的几何形体如球体、长方体等,但是要想通过程序来构造复杂的模型是不现实的。好在Java 3D提供了一组用来导入常用3D图形文件的接口,如导入VRML文件的Loader接口,所以可以在三维绘图软件如UG、PROE中建立模型,并将模型导出为VRML文件,再通过Loader接口将其导入Java 3D环境中进行操作[8]。
在定义各工位拆解任务的基础上,基于Java 3D的报废汽车拆解指导系统实现了拆解过程的3D可视化,为各工位拆解任务提供操作指导。
2.1 报废汽车拆解工艺流程
报废汽车的拆解工艺包括信息登记、预处理、粗拆解、精拆解和后处理5个部分,每个部分包含特定的拆解任务[9]。拆解工艺流程如图1所示。
图1 报废汽车拆解工艺流程图
信息登记:指对报废汽车进行分类登记,对发动机、变速器等关键总成进行检查,确定密封和破损情况,及时处理发生泄漏的部件,并将主要汽车数据录入信息系统。
预处理:指对环境有污染的油液、零部件进行无害化安全处理,包括拆除电瓶、安全气囊、收集冷媒和各种油液,并且拆除汽车车轮等。
粗拆解:一般遵循由表及里、由附件到主机、由整车拆成总成的原则进行。可划分为外部拆解、内部拆解、底盘拆解和总成拆解4个工位。外部拆解如拆除车门、车灯、保险杆等零件;内部拆解如拆除方向盘、控制面板、座椅等零件;底盘拆解如剪断排气管、拆除油箱和一些联接件;总成拆解指拆除发动机、变速器等总成部件。
精拆解:根据需求,将粗拆解拆下的总成进行专业化精细拆解,如发动机与变速器总成、车门和车轮等。
后处理:指引爆安全气囊,并且对于拆下的汽车车壳进行压实破碎处理,最后对破碎后的材料进行分类回收。
2.2 报废汽车拆解指导系统功能分析
根据拆解指导系统的开发需求,本系统为不同用户提供不同的功能。对于拆解指导的设计人员,其可对场景环境进行编辑、导入和控制汽车模型、设计零部件运动形式,拆解工作人员可以通过鼠标交互控制场景图。每个模块的具体实现功能如图2所示。
2.3 报废汽车拆解指导系统实现方法
基于Java 3D的报废汽车拆解指导系统创建一个虚拟世界的场景图,通过向场景中添加背景、灯光、局部坐标系、行为、Alpha类和Interpolator类等类的对象来实现拆解运动和交互等功能[10-11]。
图2 系统功能图
2.3.1 场景环境编辑
Java 3D提供了一个Light抽象类,各种灯光类都继承自Light类。一个灯光具有颜色、状态、有效范围等属性,在使用灯光时要指定灯光的作用范围,并且将模型放置于有效范围内才会产生光照效果。灯光具体又分为环境光、平行光、点光源、聚光灯等几种不同的类型,不同类型灯光具有不同的光照效果。该系统中使用环境光AmbientLight类和平行光DirectionalLight类即可达到观察效果,当然,也可以根据需要添加其他类型光源。Java 3D场景背景颜色可以改变,黑色为默认的颜色,也可以设置图片作为背景。
2.3.2 模型导入与控制
Java 3D自身可以定义一些简单的几何形体,但想要通过程序构造复杂的模型结构很难实现,所以可以在三维绘图软件中建立3D模型,并将模型导出为Java 3D可以识别和导入的数据结构,再通过Loader接口导入模型。本系统使用UG软件建立汽车模型,并将模型导出成VRML文件,再将其导入到Java 3D系统中。由于VRML97的Loader还未放入到Java 3D官方的Package中,所以在导入文件前需要将vrml97.jar文件放入到安装java的相应JRE或JDK目录下,方可使用该Loader接口。关键语句如下:
其中:fliename为导入模型的文件名称。
通过该步操作,可以把整个模型导入到系统中,但并没有获得对各个零件的控制,下列关键代码可以实现对各个零件的控制:
这里“partname”为零件的名称,首先将每个零件分别添加到独立的TransformGroup(局部坐标系)对象中,根据各自需要实现的运动效果再将其添加到相应的父坐标系对象中,最后汇总到一个根节点对应的坐标系对象中,并将这个坐标系对象添加到BranchGroup(场景)对象中。由于模型的VRML文件包含了每个零件从零件坐标系到装配坐标系的三维变换描述信息,所以模型导入后,各个零件仍能以一个正确的装配位置显示在根节点的坐标系对象中。基于UG建模环境和Java 3D环境坐标系统的差异性,将根节点坐标系添加到场景中时,需要使用Transform3D对象对根节点的坐标系对象进行相应的三维几何变换,使得整个模型以合适的比例和位置显示在运行窗口中。
2.3.3 拆卸运动设计
零部件的运动设计是拆解指导系统的核心部分,实现该功能需要联合使用Alpha类和Interpolator类。一般使用Interpolator的两个子类即PositionInterpolator类和RotationInterpolator类即可实现基本零部件拆卸运动路径的规划。为了实现运动时间的外部可控,将各个拆解动作的运动时间以外部配置文件的形式存储,系统通过读取配置文件,获得各个零部件的运动时间。
2.3.4 透明化显示
为了更加直观地显示和区别已拆卸和待拆卸的零部件,该系统提供了透明化显示的功能,使拆卸完毕的零部件透明显示,且透明度可更改。TransparencyInterpolator类用来修改其插值对象 TransparencyAttributes的transparency属性,即修改对象的透明度值,它根据给定的Alpha对象、起始透明度和终止透明度,通过线性插值方式计算中间的透明度,实现物体透明度的线性变换效果。
想要应用该方法修改导入Java 3D系统中的汽车模型的透明度,实现待拆卸零部件运动结束后半透明显示的效果,必须首先获得模型的Shape3D对象,对应VRML文件中的shape节点。而VRML文件中的每个零部件由多个shape节点组成,一个shape节点对应零件的一个面,直接获得对每个shape节点的控制并修改它的透明度属性不切实际,所以必须对VRML文件结构进行修改。可利用VRML的组节点Group调整模型文件的结构,将每个零件的所有shape节点放在一个group节点下即可实现对该零件shape节点的统一管理。获得shape3D对象并为其设置透明度属性的
关键代码如下:
其中:“boltgp”为VRML文件中各个零件的group节点名称;“objs”是作为插值对象的透明度属性名称。
2.3.5 鼠标交互行为
交互指程序的输出根据用户行为而产生预期的变化,报废汽车拆解指导系统为了达到直观、清晰、多角度地展现拆解动态过程的目标,需要根据用户行为作出反应。因此为系统添加鼠标控制的用户行为,实现对场景的旋转、平移和缩放操作。此外,还给系统添加了控制运动暂停和继续播放的功能,当用户连续单击鼠标2次时,动画暂停播放,当用户单击鼠标1次时,动画继续播放。系统通过OrbitBehavior类建立鼠标控制的视点,实现对场景的缩放、平移和旋转功能,关键代码如下:
根据功能要求,编写实现运动暂停和播放功能的Behavior对象,并将其添加到场景中,该对象只接收鼠标单击事件的激励,然后对这一激励行为作出暂停或继续播放的响应。运动的暂停和播放机制是通过合理设定程序里Interpolator插值器对象的setEnable属性值以及调用Alpha对象的pause方法和resume方法。
以报废汽车预处理工位上的车轮拆解和外部拆解工位上车门的拆解指导为例,说明该系统实现方法的可行性以及实际应用价值。首先,利用UG软件建立简化的报废汽车三维模型,如图3所示。
图3 报废汽车三维模型
完成汽车建模后,将三维模型导出为VRML文件并对文件结构进行适当修改,修改后的文件通过Loader接口导入Java 3D中,最后编辑内容子图,实现拆解指导功能。根据模型拆解层次关系,设计的报废汽车场景结构如图4所示。
图4 报废汽车场景结构图
报废汽车模型导入Java 3D场景后,向场景中添加Alpha对象和Interpolator对象,对场景中的零部件进行运动设计,实现拆解指导。
3.1 预处理工位——车轮拆卸
具体拆卸步骤如下。
(1)前端右侧车轮上的五根联接螺栓沿轴线方向向外直线运动一定距离,实现联接螺栓的分离;
(2)前端右侧车轮沿螺栓运动方向向外直线运动一定距离,实现车轮的拆除;
(3)重复S1~S2操作,直至4个车轮拆卸完毕。运行界面如图5所示。
图5 预处理工位——车轮拆卸指导
3.2 外部拆解工位——车门拆卸
具体拆卸步骤如下。
(1)右侧车门向外旋转90°;
(2)拆卸两根车门与车身的联接螺钉;
(3)液压剪剪断剩余的连接线束,分离车门与车身;
(4)对左侧车门重复S1~S3操作,完成车门的拆卸。
运行界面如图6所示。
图6 外部拆解工位——车门拆卸指导
(1)由于Java 3D在三维动画领域的应用及其具有实时交互性能,开发了基于Java 3D的报废汽车拆解指导系统,通过设计场景、规划零部件的拆卸运动以及实时交互操作,直观展现各工位拆解任务及其拆卸步骤,实现了零部件拆卸过程的动态可视化。
(2)分别给出报废汽车预处理工位上车轮和外部拆解工位上车门的拆卸指导实例,验证了系统实现方法的可行性。结果表明,该系统可有效降低操作人员培训成本和用户使用成本,提高报废汽车拆解的智能化水平,具有实际的应用价值。
[1]王佳,黎宇科,侯华亮.我国报废汽车回收拆解行业现状及发展建议[J].汽车工业研究,2015(12):28-33.
[2]王慧锦.我国报废汽车回收拆解行业的现状及发展对策[J].商界论坛,2015(30):263.
[3]Nikishkov G.Programming Finite Elements in Java[TM][M].Springer:London,2010:305-311.
[4]周自强,戴国洪,谭翰墨.报废汽车拆解与回收技术的发展与研究现状[J].常熟理工学院学报,2011(10):107-110.
[5]王静秋,王国忠.基于Java 3D的交互式三维动画的研究[J].计算机技术与发展,2011(09):148-152.
[6]许爱军,张文金,易丹.基于VRML的虚拟现实技术及应用[J].计算机与数字工程,2009(04):186-188.
[7]Taubin G,Horn W P,Lazarus F,et al.Geometry coding and VRML[J].Proceedings of the IEEE,1998,86(6):1 228-1 243.
[8]薛强,王守尊,邓波,等.一个基于Java 3D的虚拟装配图形仿真系统[J].交通与计算机,2005(02):96-98.
[9]戴伟华,徐国强.废旧汽车拆解工艺的选择[J].有色冶金设计与研究,2010(5):46-48.
[10]郁志辉.Java 3D编程实践[M].北京:清华大学出版社,2002:205-257.
[11]Yao H X,Liu S.Application of Virtual Reality Based on Java 3D[J].Machine Building&Automation,2009.
Study of dismantling guidance technology for scrapped vehicles based on Java 3D
WEN Yue1,JI Hongbin2,JI Yong2,HU Jianzhong1
(1.School of Mechanical Engineering,Southeast University,Nanjing 211189,China;)(2.Nantong Cotton Machinery Co.,LTD,Nantong 226300,China)
Aiming at the complexity model of scrapped vehicle and the high training cost of dismantling personnel,the dismantling guidance technology for scrapped vehicles is studied based on Java 3D.The disassembly station of scrapped vehicles and the dismantling contents are determined through the analysis of dismantling process.Also the dismantling guidance system of scrapped vehicles is developed based on VRML technology,by using Java 3D technology in the field of three-dimensional graphics applications,by which the dynamic process of disassembly visualization can be achieved.Cases of wheel and door dismantling show that the developed technology is feasible,and important for the dismantling of scrapped vehicles,also by which the intelligence of scrapped vehicles disassembly is improved effectively.
scrapped vehicles;dismantling guidance;Java 3D;VRML
X734.2
A
1674-0912(2017)07-0031-05
2017-04-09)
江苏省重点研发计划项目(BE2016110)
闻月(1992-),女,江苏南京人,硕士研究生,主要研究领域为设备状态监测及故障诊断。