基于點云的球銑加工動態仿真

摘    要:進行銑削加工動態仿真時,需要對坯件的變化進行實時計算與可視化。傳統基于體素或表面網格的仿真模型,其精度與計算效率之間存在矛盾。將球頭銑刀簡化為球面,坯件采樣為表面點云模型,仿真銑削加工過程,每次仿真步進后若坯件模型上的點穿過銑刀球面,則坯件對應部分被切削。將刀具對工件的切削近似為“擠壓”過程,引入坯件表面法線使坯件點云中的點沿其法線負方向移動,避免坯件點持續移動過程中的誤差積累,提出“外偏角”處理方法,解決“擠壓”移動方法所產生的邊界點“外偏”問題。最后使用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 結語

本文建立的仿真模型動態地模擬了工件表面球銑時的變化過程,每次步進都產生準確結果,模型可視化且精度高。下一步工作將在此模型的基礎上,研究使用深度學習方法進行復雜工件的銑削工藝設計。

文章來源:現代計算機

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

5
1