基于点云的球铣加工动态仿真

摘    要:进行铣削加工动态仿真时,需要对坯件的变化进行实时计算与可视化。传统基于体素或表面网格的仿真模型,其精度与计算效率之间存在矛盾。将球头铣刀简化为球面,坯件采样为表面点云模型,仿真铣削加工过程,每次仿真步进后若坯件模型上的点穿过铣刀球面,则坯件对应部分被切削。将刀具对工件的切削近似为“挤压”过程,引入坯件表面法线使坯件点云中的点沿其法线负方向移动,避免坯件点持续移动过程中的误差积累,提出“外偏角”处理方法,解决“挤压”移动方法所产生的边界点“外偏”问题。最后使用Open3d进行动态展示,较好地实现了球铣加工时坯件的状态变化过程,仿真结果较为准确,仿真精度较高。

关键词:点云;铣削加工;动态仿真;

0 引言

加工仿真技术的基本原理是模拟数控加工环境建立计算机仿真模型,在该模型下运行加工程序以检验产品是否正确合格[1]。在进行切削仿真时,对坯件建模的常用方式有表面网格法和体素填充。体素是描述三维物体的最小单元,每个体素都可设置位置、质量、颜色等属性,加工仿真研究中常用点云形式、八叉树结构等表示及处理体素模型,有利于快速进行质量体积等几何运算。刀具经过工件体素模型时,进行碰撞检测、反馈力计算等,进而删除刀具与工件干涉的点,模拟切削加工过程,在精度要求较高时需要消耗大量的计算机内存[2,3,4,5,6]。表面网格模型是使用计算机对工件进行CAD建模时的常用保存方式,由顶点和顶点间线段近似表示工件表面,存储数据量小,常用于应力分析、虚拟装配等,缺点是能表示的表面质量较低,易产生扁平单元,降低稳定性[7,8,9]。

本文将坯件表面采样为点云模型、球头铣刀简化为球面,对切削加工过程进行仿真,建立加工过程中的坯件-刀具的动态模型并将其可视化,有以下改进创新:

(1)仅对坯件表面进行点采样,相比填充体素节省内存及减少计算量;

(2)引入法线计算新形成的表面,同时提高计算效率和计算精度;

(3)使用Python语言,Open3D库实现了动态仿真,方法不依赖特定软件平台。

1 相关研究

点云用于描述三维空间物体表面信息,每个点都包含三维坐标,也可能包含深度、密度、颜色信息等,相比于二维图像数据,特征准确,更接近人类的视觉,更容易理解三维场景,但存在无序性、密度不一致、信息不完整等特点,对点云数据处理比较复杂和困难[10]。三维点云采集技术日渐成熟,利用先进设备可以在短时间内采集物理表面海量点云数据,受技术、环实物本身等因素影响,采集到的点云模型会有孔洞、噪点、密度不均等现象,因此产生点云孔洞修补、滤波、压缩等技术研究热点[11,12]。点云逆向工程是将测量得到的点云数据进行预处理、重构以及检测来生成原产品的CAD模型,能够缩短产品设计周期、保持原有产品的成熟传承特性,广泛应用于产品的改型设计、艺术品和文物等的仿制修复和工业地理信息测量等领域[13]。

现有加工制造仿真研究多注重于有限元分析、表面形貌仿真,得益于高性能计算机技术和软件技术的发展,为研究切屑形成机理、切削力和加工表面微组织演变提供了支持[14,15,16]。文献[17]研究加工尺度上的仿真算法,提高仿真效率;Altintas等[18]提出任意立铣刀或插刀几何的通用建模方法,并设计虚拟铣削仿真系统,以改进工业中的刀具设计或工艺规划。

2 球铣仿真模型

铣削加工形式多样,一般由数控装置、伺服装置、机床主体等组成,工件由夹具固定,与固定在刀柄上的刀具相对运动。机械臂具有灵活性高、占用空间小、可协同加工等特点,普遍应用于现代化生产。本研究中仅取工件与刀具的模型,将坯件表面点采样为点云模型,控制其在相应加工坐标系中运动,模拟加工时的位置变化。铣刀在加工过程中高速旋转,其切削刃近似为球面,当坯件模型上的点在铣刀球面内时,即认为该位置被铣削。

2.1坯件点云采样

工件的建模常用格式为网格模型,通过对网格进行细化再进行点采样,转化为点云模型。本文在采样之前,根据精度要求对网格进行中点细分,得到三角形网格的网格模型。中点细分即通过计算三角形每条边的中点,将其分为四个较小的三角形[19],细分之后计算网格顶点的法线。将所有网格顶点作为点云模型的点,同时保留其对应法线,得到包含法线的坯件表面点云模型。

2.2球头铣刀模型

一般精加工时,球头铣刀只有底部参与切削,底刃在高速旋转过程中,可以近似为半球面[20]。如图1所示,将两刃的6 mm球头铣刀建模为一个半径为3 mm的半球,在每个仿真步进后距离球心小于半径R的点P将被切削,同时铣刀球面上生成新的P',即将点云模型中P点重置为P'位置,同时P'的法线设置为指向铣刀球面球心。

基于点云的球铣加工动态仿真的图1

图1 球头铣刀模型  

2.3坯件表面点的移动

由于坯件是表面点云模型,被铣削时可以近似看作是一个被“挤压”的过程,如图2所示,在一个最小仿真计算步骤中,铣刀移动Δv,球心C0移动到C1,坯件表面将被“挤压”向铣刀移动方向缩进Δv深度。联系实际铣削时新表面的形成过程并且不考虑侧滑、切削瘤等因素[21,22],“挤压”坯件表面,点P在其法线与Δv所在平面内,随铣刀球面向外侧和其法线负方向移动。

基于点云的球铣加工动态仿真的图2

图2 坯件“挤压”过程 

如图2所示,在状态0时,P点在铣刀球面外侧;在状态0和下一个状态1之间,P点被“挤压”到P'1附近,P'1为铣刀球面上距P较近的一点。

由于每一步的仿真间隔Δv小于精度要求,单个仿真步时,置P点于P'1附近若干个Δv距离内位置都不会影响单次仿真结果。但连续步进时,会造成误差积累。在铣刀内取P点法线和Δv所在平面S,点P被“挤压”时,仅此平面内“滑动”。如图3(a)所示,在平面S内,n为P点法线,被“挤压”时,P点沿法线方向移动到球面上P'点上。由于一个仿真步进内点移动距离不应超过Δv,当P'长度大于Δv时,在n负方向上取P″,P″长度等于Δv,P'为C1P″方向上与球面的交点,如图3(b)所示。

基于点云的球铣加工动态仿真的图3

图3 点沿法线负方向移动 

按照上述方法铣削边界位置时,点的法线方向与被“挤压”移动方向相同,点将被“挤压”到边界之外,产生“外偏”情况,不符合铣削实际,如图4所示。因此做以下处理,查找P点附近Δv长度距离内所有点,若存在一点P1,使得P1P'与P1的法线方向相同,则P点被“铣削”,从表面点云模型中删除。

基于点云的球铣加工动态仿真的图4

图4 点“外偏”情况 

3 动态仿真过程

Open3D是一个用于处理3D数据的开源库,可以快速进行点云表面重建、曲面对齐等操作,支持C++及Python语言,本文使用Open3D的点云类表示坯件模型,使用其KDTreeFlann方法查找判断坯件模型上的点是否在铣刀球面内,用其visualization模块进行动态可视化[23]。

3.1场景模型

本文将铣削模型简化在一个固定的坐标系中,保留坯件的点云模型和铣刀的近似球面网格模型,铣刀球面是有方向的。导入CAD模型发现,Open3D默认单位长度为1 mm。导入坯件点云模型和铣刀球面到Open3D场景中,其中球头铣刀的半径为3 mm,坯件尺寸为30mm×50mm×10mm。坯件是网格模型经过7次中点划分之后,取所有顶点得到约有98000个点的点云模型。

3.2铣削过程设计

在坯件上沿X轴和Y轴各走刀一次,铣削半径3 mm、深度1 mm的弧形槽,其中X轴走刀长度为40 mm、Y轴走刀长度60 mm,单次仿真步进Δv长度为0.2 mm。根据刀具半径、仿真步进和坯件点云密度,测试发现取图4中P1P'与P1的法线余弦值大于0.1作为方向相同判断依据时,在点不发生“外偏”的情况下被删除的点较少,得到更高的精度。

基于点云的球铣加工动态仿真的图5

图5 坯件仿真结果

3.3结果分析

在坯件上两次走刀后,得到图5所示的点云模型,弧槽的走刀起始位置和结束位置没有点发生外偏,两次走刀的相交区域没有错位点产生,符合铣削实际。分离出坯件上被铣削到的弧槽面上点云a(图6a),并将cad建模得到的网格模型中弧槽部分进行表面采样得到点云b(图6b)。计算得到点云a与点云b之间的最大距离为0.32 mm,均方根误差为0.015,仿真精度较高[24,25]。

基于点云的球铣加工动态仿真的图6

图6 仿真点云与CAD建模点云  

4 结语

本文建立的仿真模型动态地模拟了工件表面球铣时的变化过程,每次步进都产生准确结果,模型可视化且精度高。下一步工作将在此模型的基础上,研究使用深度学习方法进行复杂工件的铣削工艺设计。

文章来源:现代计算机

默认 最新
当前暂无评论,小编等你评论哦!
点赞 4 评论 收藏
关注