基于虚拟组装快速配刀的功能开发与实现

2021-02-02 08:51廖生辉唐炳洋陈子健
关键词:位姿刀具网页

廖生辉,卓 勇,唐炳洋,陈子健,张 俊

(厦门大学航空航天学院,福建厦门361102)

有效的刀具管理无疑能够降低企业生产成本,提高企业的经济效益.因此,国内外各企业均非常重视对刀具管理的研究.国外许多公司根据自身刀具使用情况推出具有其代表性的管理系统,例如Sandvik推出的Coroguide软件、Valenite Modco推出的Spectra系统、Iscar推出的Pro-Grip系统、CTMS推出的计算机刀具管理系统(CYMS)、Delkel推出的Tool Manager管理系统等[1].目前国内外刀具管理系统主要采用客户机/服务器(C/S)结构,其研究方向主要在库存管理、刀具监控、刀具寿命检测、刀具调度等方面.在图形处理研究方面,网页的图形处理技术在刀具管理系统中应用较少,其中有德国的ZOLLER系统[2].

随着近年来网页图形库(WebGL)和HTML5技术的引入,目前可以在不使用任何第三方插件的情况下从浏览器中开发图形处理单元(GPU)的功能,为刀具零件模型显示提供了新的解决方案[3].比如在虚拟装配研究方面,王世超[4]应用WebGL技术构建网络虚拟场景,对Solidworks生成的水轮机模型进行简单虚拟装配,但其装配的水轮机模型并未建立起刀具零件间的特征约束;为解决异构计算机辅助设计(CAD)模型无法装配的问题,刘巍[5]提出了一种新的虚拟装配方式并应用在可视化装配平台InteVue中;陈丽丽[6]通过提取三维软件Pro/ENGINEER中的装配信息,对虚拟装配中的碰撞检测,提出了分层精确碰撞检测算法;林齐等[7]基于C/S架构开发的刀具管理系统,其根据刀具零件参数及装配知识集对三维软件应用程序接口(API)进行二次开发,实现在三维软件场景中自动完成刀具的虚拟装配及特征约束建立,但该方法与基于网页的装配系统相比,存在不能协同开发的缺陷.本研究将根据现存刀具管理系统存在的不足,应用WebGL图形处理、三维CAD软件二次开发、前后台信息传输等技术提高刀具零部件的智能筛选及配置能力,旨在开发基于浏览/服务器(B/S)架构的具有图形化处理功能的刀具管理系统.

本研究结合网页、CAD技术,在刀具管理系统的刀具组装模块添加刀具虚拟装配功能.实际装配刀具前,在刀具组装网页中加载待装配的零件模型,通过鼠标进行一系列零件位姿调整操作及零件位姿同步后,自动识别并建立零件间约束关系,实现刀具的虚拟装配.在刀具虚拟装配的基础上,进一步实现对刀具的快速配刀及干涉的检查.

1 刀具零部件模型在线显示

1.1 基于WebGL的网页模型渲染

随着WebGL技术的普及,网页的表现能力逐步提升,特别是在图形渲染显示方面得到了更好的完善.WebGL可以为HTML5 Canvas提供硬件三维加速渲染,因此网页开发人员可以使用系统图形在浏览器中更平滑地显示三维场景和模型,还能创建复杂的导航和视觉数据化.Three.js在WebGL的基础接口之上做了一层封装,进而实现了可在浏览器中运行的三维引擎功能,浏览器不用安装插件即可创建各种三维场景,包括相机、灯光、材料等.故本研究采用Three.js对三维模型进行加载,其支持的三维模型有obj、json、stl等格式,本研究采用stl格式完成网页三维模型加载.

1.2 三维模型在线显示

为使刀具零件能够具有在网页上进行虚拟装配的图形操作功能,按编号将刀具零件的三维模型加载至网页.在加载刀具零件模型至网页时,本研究采用Three.js库文件中的立体成型术加载器(STLLoader)完成刀具零件模型的在线显示.图1为三维模型在线显示流程.具体地:

1) 利用Three.js进行场景创建与配置.刀管系统中导入Three.js库文件;应用Three.js框架下的函数分别创建场景、相机、光源、渲染器等;配置相机/光源的位置;最后用渲染器渲染Three.js场景,令网页加载Three.js场景.

2) 创建STLLoader.用STLLoader的模型加载函数“load(modelname,function(geometry){})”将模型加载至Three.js场景中;其中,“modelname”变量为包含三维模型路径的参数化驱动后的模型名称,“geometry”表示刀具零件模型,“function(geometry)”表示刀具零件模型函数描述.

3) 调用轨道控制函数“THREE.OrbitControls()”来创建control控制视野对象,用control对象的事件监听功能监听渲染器,使三维模型能够随着鼠标缩放旋转.图2为滚刀三维刀具零件模型在线显示情况.

图1 刀具零件三维模型在线显示流程图Fig.1Flow chart of three-dimension mode online display of tool parts

图2 滚刀零件三维模型在线显示Fig.2Online display of three-dimensional model of hob part

2 网页操作显示及刀具零件位姿同步

2.1 虚拟装配操作显示功能

在虚拟装配过程中,为了更好地展现装配的不同视角,加强装配操作的灵活性,本研究在页面设计时增加了旋转移动按钮、放大缩小按钮、清空按钮、隐藏显示按钮等.图3为切换至多页隐藏刀具零件时不同视角下的刀具零件装配模型.

图3 不同视角下的刀具零件装配模型Fig.3Tool parts assembly model from different perspectives

2.2 刀具零件位姿同步

网页中包含的Three.js场景作为刀具管理系统的前端,可在Three.js场景中加载stl格式的刀具零件模型,供用户控制刀具零件位姿.Creo作为刀具管理系统后台加载part格式刀具零件模型,负责零件的特征提取与识别.在虚拟装配过程中,由于网页上加载的刀具零件模型为stl格式,属于三角面片格式,stl格式的模型上点、面等特征信息已丢失,不易提取出相关信息用于特征识别[8],故本研究中采用Creo二次开发提取刀具零件模型的特征并建立约束.为了使Creo充分提取场景中刀具零件模型的特征建立有效约束,需将网页上刀具零件位姿运动的数据完整传输给Creo,其核心思想是将Three.js场景中的刀具零件运动数据传递至后台,供Creo场景中的刀具零件调整位姿.

图4 Creo/网页场景刀具零件位姿同步流程图Fig.4Flow chart of tool part posture synchronization in Creo/Web

本系统在刀具装配过程中,需要用户在系统网页中采用人机交互的方式调整待装配刀具零件的位姿.由于刀具零件在网页中是以Three.js文件来加载的,可提取的刀具零件位姿属性数据分别为平移和旋转属性,平移属性表示沿x、y、z轴移动的位移,旋转属性表示绕x、y、z轴旋转的角度.在Creo场景中,刀具零件模型的位姿分别以全局坐标系下刀具零件坐标系原点的值确定刀具零件的位置,全局坐标系下刀具零件坐标系x、y、z轴的方向向量确定刀具零件的旋转情况.图4为Creo/网页刀具零件位姿同步流程图.

由于网页与Creo场景中刀具零件的平移向量相同,故刀具零件在网页上的移动数据可直接应用至Creo场景下的刀具零件,将网页场景中移动后的坐标位置设置成Creo场景中刀具零件的坐标系原点,促使Creo场景下刀具零件移动.

Three.js场景下的刀具零件模型做绕轴转动时,是绕着相对运动坐标系的某轴进行的,而不是相对于固定的参考系,即网页中的刀具零件模型的转动为欧拉角转动[9].若在网页上操作刀具零件使其按不同顺序分别绕x、y、z轴旋转不同角度,可根据Three.js库中的旋转属性及欧拉角转动的旋转矩阵公式[10]获取刀具零件在网页中的旋转矩阵.

本研究虚拟装配的关键在于刀具零件位姿的线上线下同步.在约束建立前,网页上刀具零件的运动数据传递至Creo场景,即Creo场景中刀具零件模型位姿同步于网页场景中刀具零件模型;约束的建立见下文3.1节;建立约束后, Creo场景中刀具零件的运动数据反向传递至网页场景中的刀具零件,即网页场景中刀具零件模型位姿同步于Creo场景中刀具零件模型位姿.

下面是刀具零件之间约束关系建立后,网页场景中刀具零部件模型位姿同步于Creo场景中刀具零件位姿的流程:

1) 求Creo场景中人为操作的旋转矩阵.建立约束后,根据Creo场景中的刀具零件最终位置,求得刀具零件旋转矩阵.

2) 求解欧拉角.根据旋转矩阵,求解得出刀具零件模型分别绕x、y、z轴旋转的角度θx、θy、θz.

3) 数据传递.将Creo场景中刀具零部件沿x、y、z轴平移的位置信息Tx、Ty、Tz与绕x、y、z轴旋转角度信息θx、θy、θz传回网页场景.

4) 网页场景中刀具零部件的位姿调整.为零部件的平移、旋转属性分别赋Tx、Ty、Tz值与θx、θy、θz值.即可自动完成零部件在网页场景的位姿调整.

3 基于虚拟装配的刀具零件优选

图5 刀具编码自动生成流程图Fig.5Automatic generation flow chart of tool coding

3.1 刀具装配运动导航

当两个模型之间移动到碰撞检测[13]范围内时,激发识别操作.识别操作一般需要获取曲面的各种信息.由于曲面即可表示为S(x,y,z)也可表示为f(u,v),本文中通过“Eval3DData(UVParams)”函数获取“SurfXYZData”类,即将曲面函数f的自变量u和v构成的参数矩阵“UVParams”转换为x,y,z构成的曲面S的参数矩阵,通过“SurfXYZData.GetNormal()”和“SurfXYZData.GetPoint()”函数分别用于求解面的法向向量与面上点的信息.图5是装配约束识别流程图,主要流程有:

1) 判断模型是否为装配件.

2) 当模型为装配件时,提取装配件的轴与面,若模型为零部件,则提取零部件的轴与面.

3) 将提取到的面与面、轴与轴添加至可能装配集合.设装配集合中装配对个数为n.

4) 从装配集合中提取一个可能装配对,判断该装配是否为特殊装配面.例如圆锥面和球面.

5) 若可能装配对中面为特殊装配面,则优先对其进行装配.否则,计算位置接近度、方向匹配度、限制自由度数.

多功能轮椅组合床使病人的生活更加舒适方便,同时也降低了护理人员的劳动强度,可以普遍生产使用.这种轮椅组合床能很好地体现人性化设计给病人日常生活带来方便.它将床板、床架、电动千斤顶装置、扭簧装置、水平电动伸缩杆、电动机及控制装置等巧妙组合,通过遥控器控制水平电动伸缩杆的抽离与推进,以实现轮椅与病床的分离与结合,以及辅助代步功能.通过遥控器控制两侧电动千斤顶装置,可以使床板向左或向右转过一定角度,实现左右翻身功能,也可以通过手动控制扭簧装置,使背部和腿部的床板旋转0°~90°,实现坐卧功能.

6) 计算位置接近度R1k.设Oi和Oj分别表示两装配面i和j上的一点,Vij表示Oi和Oj两点连线表示的向量,Vi表示面i上的法向单位向量,则可求得点Oj到面i的距离为[14-15]:

dk=|Vij|·cos|()|.

(1)

7) 计算方向匹配度R2k.设两个模型A和B上的单位特征向量分别为VA和VB,则两个单位向量的夹角为αk=arccos(VA·VB),取

R2k=|sin()|,k=1,2,…,n.

(2)

8) 计算自由度数R3k.取

(3)

其中,Lk表示可能装配集合中第k个装配对建立约束所限制的自由度数量.如面-面限制3个自由度、轴-轴限制4个自由度.

9) 计算综合评价矩阵与确定元素影响因子.取R1k,R2k,R3k构造评价矩阵R,其子矩阵Rk=[R1k,R2k,R3k].取位置接近度占影响因素0.3,方向接近度占影响因素0.3,自由度数占影响因素0.4,即W=[0.3,0.3,0.4].

10) 计算最优解.取

Q=W·RT=(q1,q2,q3,…,qn).

(4)

11) 判断最优解是否满足约束识别条件.取得最优解对应的dk和αk.

当待识别特征元素为直线-直线时,若dk-d0≤0且|cosα|-|cosα0|≤0,则为识别到对齐约束,其中d0和α0分别为距离和夹角的允许误差值.

当待识别特征元素为面-面时,若dk-d0≤0且|α|-α0≤0,则为识别到对齐约束;若dk-d0≤0且|π-α|-α0≤,0则为识别到贴合约束;若dk-d0=0且|π-α|-α0≤0,则为识别到偏移d0距离.

当待识别特征元素为圆柱面-圆柱面时,若dk-d0≤0且|cosα|-|cosα0|≥0且r1-r2≤r0,其中r1为轴半径,r2为孔半径,则为识别到插入约束.

取d0=0.2×D,α0=π/9其中,D为包围碰撞盒的长度,D=1.2L,L为刀具零件模型的长度.若不满足条件,则退出装配.

12) 判断最优解是否会发生尺寸干涉、与已建立的约束发生干涉.若存在干涉,则退出装配.

以上步骤为刀具零件间的约束识别,在识别到刀具零件间相互约束的基础上,通过Creo的API中的约束建立函数“ComponentConstraint_Create(ComponentConstraintType)”建立特征元素对应的约束对象.根据约束对象建立装配件与刀具零件间的约束关系.

3.2 刀具零件智能优选

为实现装配刀具所需刀具零件的快速配置,应用虚拟组装功能开发刀具零件智能优选功能.在虚拟装配中,若网页场景下存在装配不完全的刀具,则寻找合适的刀具零件作为下一装配操作所用刀具零件.首先判断网页场景下,不完全装配刀具所含零部件是否组装过其他刀具.若没组装过其他刀具,则在Creo场景中获取装配不完全刀具主要尺寸,并从数据库中寻找尺寸匹配的其他刀具零件作为优选刀具零件,记录刀具零件的种类编号,即sap编码;若曾经组装成其他刀具,则从数据库中查找组装成同一刀具的其他刀具零件,标记为优选刀具零件,记录刀具零件sap编码,执行没组装过其他刀具的步骤.具体刀具零件优选流程见图6.

图6 智能优选流程图Fig.6flow chart of intelligent optimization

4 刀管系统实际应用

4.1 刀具虚拟装配应用

首先在刀具管理系统刀具组装模块的网页逐步加载待装配的刀具,通过移动旋转等操作控制刀具零件模型在网页上的移动距离、旋转角度并记录每次操作的信息.

刀具在虚拟装配过程中,若操作人员装配不符合尺寸条件的刀具零件时,本系统会给予操作人员提示该刀具零件不能进行装配,便于装配人员提早更换刀具零件,减少重复劳动(附录(http:∥jxmu.edu.cn/upload/20210115)图S1).

4.2 刀具快速配刀应用

刀具零件智能优选功能的优选刀具零件由两部分组成,比如组装成装配不完全刀具所包含的刀具零件型号分别为345R-1305M-KM3220与345-160Q40-13M时,系统会依次优选出10种满足刀具零件装配尺寸条件的刀具零件(附录(http:∥jxmu.edu.cn/upload/20210115)图S2).

5 结 论

本研究以某大型加工企业面临的刀具管理问题作为切入点,结合图形图像处理技术,开发了一套具有图形处理功能的智能刀具管理系统.对比传统的刀具管理系统,本系统具有如下创新之处:

1) 传统刀具管理软件大都只是记录刀具零件存储位置、刀具使用数据、刀具二维图片等信息,不利于装配人员了解刀具内部结构和刀具零件的装配效果,本研究通过系统上的刀具零件二维工程图、三维刀具零件模型、刀具零件虚拟装配的效果帮助装配人员快速熟悉系统中各刀具零件结构和刀具装配可行性.

2) 传统的刀具管理系统普遍基于C/S架构(如ZOLLER),其中的数据模型对象存储于本地,不利于共享,本研究的刀具管理系统应用B/S架构,可供多人共享数据库中的数据模型对象.

3) 本研究在刀具虚拟装配的基础上,根据刀具零件的干涉检查,开发刀具零件智能优选功能,可快速匹配出符合尺寸和装配条件的刀具零件,加快刀具装配效率.

猜你喜欢
位姿刀具网页
汽车零部件加工智能化刀具管理研究
基于HTML5与CSS3的网页设计技术研究
基于PLC的六自由度焊接机器人手臂设计与应用
数控刀具管理系统的设计及开发研究
基于位置依赖的密集融合的6D位姿估计方法
曲柄摇杆机构的动力学仿真
基于HTML5静态网页设计
基于单目视觉的工件位姿六自由度测量方法研究
搜索引擎怎样对网页排序
生路