文享龍,趙天光,岑洎濤,蘇金宇,馬章宇
(季華實驗室智能機器人中心,廣東佛山 528000)
隨著計算機技術(shù)的飛速發(fā)展,制造業(yè)的自動化、智能化程度越來越高。焊接作為工業(yè)的“裁縫”,是制造業(yè)的重要組成部分,焊接工業(yè)的智能化和自動化將會大幅度提高汽車、船舶、橋梁、軌道交通等行業(yè)的工作效率。焊接作業(yè)的自動化、柔性化、智能化是未來產(chǎn)業(yè)發(fā)展的大趨勢,因此焊接領(lǐng)域的CAD/CAM研究,對實現(xiàn)焊接作業(yè)數(shù)字化、可視化、無人化具有十分重要的意義。在專用智能焊接軟件研發(fā)領(lǐng)域中,目前處于領(lǐng)先地位的有丹麥的Inrotech公司、日本的神鋼公司以及荷蘭的KRANENDONK公司。Inrotech的軟件系統(tǒng)方案不依賴三維模型導(dǎo)入焊縫信息,其核心技術(shù)是利用焊縫視覺識別算法系統(tǒng),實時根據(jù)焊縫的變化進行調(diào)整。神鋼公司的SMART TEACHING焊接仿真軟件系統(tǒng)可以讀取多種通用三維模型格式,自主適配焊接機器人型號以及焊接工藝數(shù)據(jù)庫參數(shù),同時可完成多機器人協(xié)作焊接。KRANENDONK公司的焊接專用軟件可以導(dǎo)入工件的三維CAD模型,機器人可自動識別焊接工件位置以及焊縫位置,然后自動生成焊接路徑。
目前,三維模型樣條曲線離散理論方法主要有等弦長離散法、等弧長離散法、等誤差離散法、偏轉(zhuǎn)角可控離散法等。文獻[8]中介紹了一種等弧長原則的NURBS樣條曲線離散算法,引入步長函數(shù)控制離散曲線段的弧長,采用積分法和迭代法調(diào)整步長函數(shù)以控制曲線的離散精度。文獻[9]中提出了一種自適應(yīng)的二叉樹分割方法,該方法能以較小的代價、較高的精度逼近同樣的曲線,在滿足離散精度的條件下計算效率較高。在焊槍姿態(tài)自動生成研究領(lǐng)域,文獻[10]中提出了一種基于VB語言的CATIA 曲面法向量生成的二次開發(fā)算法,該算法利用方向余弦法,規(guī)避了直接采用測量角度進行的一系列計算,可直接獲取模型上目標點,并生成目標點單位法向量。文獻[11]中提出一種可調(diào)整焊槍工作角與行走角的直線擺弧路徑算法,通過輸入示教點與焊槍工作角計算焊接平面,在焊接平面上得到擺弧路徑生成所需位置點信息,然后對焊槍加入焊槍行走角得到機器人焊槍法向量姿態(tài)值。
國內(nèi)外學者現(xiàn)在的研究大多是通過激光和深度相機等視覺掃描方式得到焊接工件的焊縫信息并生成焊縫軌跡數(shù)據(jù),但是對于大尺寸、復(fù)雜模型中厚板的焊接工件來說,線激光掃描容易遺漏被遮擋的部分,導(dǎo)致焊縫識別困難、大尺度工件識別定位精度低等問題。一些基于參數(shù)化模型研發(fā)的焊接仿真軟件不夠智能,無法自動識別并生成焊縫軌跡數(shù)據(jù),通用性較差,只支持部分格式的三維模型和部分型號焊接機器人。針對上述情況,本文作者開展了基于參數(shù)化模型的專用智能焊接軟件部分關(guān)鍵技術(shù)研究,具體包括參數(shù)化模型焊縫軌跡自主識別方法、焊縫軌跡曲線離散算法以及焊槍姿態(tài)自動生成方法;通過上述CAD/CAM算法功能開發(fā),自主生成焊縫軌跡路徑程序以及焊槍姿態(tài)數(shù)據(jù)信息,用于機器人實際焊接軌跡運動試驗,并驗證軌跡曲線離散算法的離散精度,可提高焊接機器人焊接效率、焊縫成型質(zhì)量及復(fù)雜焊接環(huán)境的適應(yīng)性。
作為開源的CAD/CAE軟件底層開發(fā)平臺,Open CASCADE庫提供了強大的圖形運算類、快速開發(fā)應(yīng)用框架OCAF、圖形顯示操作功能包等。主要功能特點有:(1)支持多系統(tǒng)平臺開發(fā);(2)提供基于建模數(shù)據(jù)分離可視化操作服務(wù),便于圖形顯示的選擇和管理;(3)提供豐富、全面的幾何運算功能;(4)提供三維模型可控的運動動畫仿真及碰撞干涉檢測。Open CASCADE庫為焊接仿真軟件開發(fā)人員提供了完善的平臺類庫支撐,文中的專用焊接軟件的焊縫識別算法以及焊槍姿態(tài)生成算法是基于Open CASCADE底層庫開發(fā)完成的。
對于專用智能焊接軟件平臺,第一步是導(dǎo)入通用格式的待焊工件的三維數(shù)字模型,例如Brep、 Iges、Step等中間格式的三維數(shù)字模型。以Step中間格式為例, STEPControl_Reader函數(shù)用于實現(xiàn)STEP數(shù)據(jù)與Open CASCADE模型之間的轉(zhuǎn)換,實現(xiàn)專用焊接軟件對STEP格式數(shù)據(jù)文件的輸入輸出功能,STEP格式的模型導(dǎo)入OCC環(huán)境中解析并顯示的具體實現(xiàn)方法如下:
//初始化空的中間格式三維模型,并定義模型文件路徑
Handle (HSequenceOfShape) aSequence = new HSequenceOfShape;
TCollection_Asciistring aFilePath=file.toUtf8().Data();
//定義STEP模型的讀寫器,并判斷此路徑的模型是否合法
STEPControl_Reader aReader;
IFSelect ReturnStatus status = aReader.ReadFile(aFilePath.ToCString() );
//解析讀取當前三維模型,并顯示在屏幕上
TopoDS_Shape aShape = aReader.Shape();
aSequence->Append(aShape );
圖1 焊縫軌跡高亮模型顯示狀態(tài)
在STEP模型的導(dǎo)入、導(dǎo)出過程中,其基本屬性特征包括模型的點、線、面、體、尺寸、坐標位置等信息,同時還包括模型顏色、密度分布、質(zhì)心位置以及自定義屬性(如焊縫軌跡等)。以T形焊縫為例,定義兩個垂直且相交的面,在兩個焊接立面的交線處生成樣條曲線形式的焊縫軌跡線,焊縫軌跡線的顏色與本體顏色不同,以示區(qū)分。標注有焊縫的三維工件模型導(dǎo)入自主研發(fā)的專用焊接仿真軟件的顯示狀態(tài)如圖1所示。
焊縫識別主要可以通過手動選取焊縫軌跡以及自動識別焊縫軌跡兩種方式。自動識別模型焊縫信息可以有效提高軟件自動化水平,減小人工成本和焊接仿真時間。Open CASCADE對三維幾何模型的描述方法為邊界表示法,其描述形體的信息包括幾何信息和拓撲信息兩個方面:拓撲信息描述形體上的頂點、邊、面的連接方式;而邊的形狀尺寸、頂點在空間坐標系中的位置等則是幾何信息,幾何信息主要描述形體的大小、尺寸、位置和形狀等。如圖2所示,在邊界表示法中,邊界表示就按照體-面-環(huán)-邊-點的層次,詳細記錄構(gòu)成形體的所有幾何信息及其相互連接的拓撲關(guān)系。因此在進行圖形特征運算和遍歷操作中,可以直接獲取三維模型的相關(guān)幾何信息及其拓撲關(guān)系。
圖2 模型邊界表示法拓撲關(guān)系示意
在焊接仿真軟件中,工件模型文件導(dǎo)入到軟件解析后其焊縫軌跡線段是高亮顯示的。通過拓撲解析參數(shù)化模型的點、線、面、體特征,遍歷模型的線段特征信息,然后判斷每條線段顏色屬性則可找出焊縫軌跡線段。OCC開發(fā)庫中, TopExp_Explorer類可以遍歷指定類型的拓撲對象,因此參數(shù)模型的所有線段遍歷并判斷識別出焊縫軌跡的具體方法如下:
//對當前模型的線段特征進行拓撲解析
TopExp_Explorer anExp (aShape,TopAbs_EDGE);
//定義for循環(huán)遍歷模型的每一條線段
for (;anExp.More();anExp.Next() )
{ const TopoDS_Edge& anEdge= TopoDS::Edge(anExp.Current());
//獲取每條線段的顏色屬性,并判斷是否為焊縫軌跡線段
Quantity_Color Col = anEdge.GetColor();
if (Col.Color ()== Quantity_NOC_RED)
TopoDS_Edge weld_edge=anEdge;
return weld_edge;}
焊縫軌跡根據(jù)其線段類型,可分為長直焊縫、圓弧焊縫、NURBS樣條曲線焊縫等。理論上長直焊縫以及圓弧焊縫給出相應(yīng)的首尾點坐標和直徑等特征值,機器人即可按照輸入信息走完焊接軌跡。但對于NURBS樣條曲線焊縫,則需要通過焊縫軌跡點離散成微小直線段來擬合焊縫軌跡。等步長離散法或等弦長離散法生成的離散點軌跡與實際焊縫軌跡的擬合度不好。如圖3所示:當焊縫樣條曲線的曲率變化較小時,其離散曲線的擬合精度較好,當B、C區(qū)域曲率變化較大時,焊縫軌跡的離散擬合精度較差,焊槍焊接軌跡可能偏離實際焊縫區(qū)域,導(dǎo)致虛焊、漏焊等焊接瑕疵問題。本文作者采用改進的等誤差離散法來確定參數(shù)化焊縫軌跡系列離散點,力求在保證離散精度的前提下提高計算效率,快速離散出符合焊接精度要求的軌跡坐標點。
圖3 樣條曲線離散示意
等誤差離散算法按以下6個步驟實施:
(1)定義當前次NURBS 樣條曲線的數(shù)學表達式
(1)
其中:={,,…,}為樣條曲線控制頂點;={,,…,}為權(quán)重因子;,()為定義在非周期節(jié)點矢量上的次B樣條基函數(shù);={0,…,0,+1,…,,1,…,1} 為節(jié)點矢量。
(2)求得當前樣條曲線的總弧長的表達式
(2)
(3)按照初始曲線弧長步長5 mm把樣條曲線離散成段,若不為整數(shù),則對進行取整處理,然后對相應(yīng)的弧長步長進行調(diào)整,達到曲線等分分配。
(4)對離散的每一個小分段依次進行弓高誤差判斷,計算公式為
(3)
(4)
(5)
圖4 等誤差離散法計算示意
如圖4所示,為相鄰離散點的小分段,為段弦長,為曲線的曲率半徑,其中曲率半徑為曲率的倒數(shù),即為段的弓高誤差。
(5)若段的弓高誤差滿足焊縫軌跡偏差值要求,則繼續(xù)判斷下一個弧長分段的弓高誤差值;若不滿足軌跡偏差要求,則對段進行中間點((+)2,(+)2,(+)2)插值,然后判斷段的弓高誤差是否滿足焊縫軌跡偏差值要求,若不滿足則繼續(xù)插值迭代判斷,直至當前曲線分段都滿足弓高誤差要求。
(6)輸出滿足焊縫軌跡偏差要求的軌跡離散點數(shù)據(jù)
圖5 等誤差法焊縫軌跡離散效果
由上述等誤差離散算法可知,弓高誤差與離散點弦長的平方成正比,與離散點的曲率半徑成反比。使用等誤差離散逼近法將樣條曲線離散點控制在焊接軌跡誤差要求范圍內(nèi),以保證焊接行走軌跡弓高誤差滿足焊縫軌跡最大偏差要求。等誤差離散算法已經(jīng)在文中開發(fā)的專用焊接仿真軟件中實現(xiàn),樣條曲線焊縫軌跡離散坐標點的生成效果如圖5所示。
若焊接仿真軟件中只有焊縫軌跡坐標點信息,焊接機器人無法知道焊接工件的位置及形狀,焊槍可能在焊接行走過程中與焊接工件發(fā)生碰撞干涉。因此在離散焊縫軌跡點的過程中還需自動生成合適的焊槍法向量姿態(tài)信息,保證焊槍姿態(tài)能垂直于焊縫行走前進方向,且距離兩個焊接連接面有合適角度,防止碰撞干涉。
面上某一點的法向量指的是在該點處與面垂直的方向。對于平面,其上各點的法向是一樣的,統(tǒng)一為這個平面的法向。如圖6所示,在平面內(nèi),有兩條相交的線段,假設(shè)其中一條為矢量,另一條為矢量,且平面法向量為。則平面法向量就等于兩個矢量的叉積,即=×。
圖6 平面法向量表示
如圖7所示,復(fù)雜解析曲面是由數(shù)學方程描述的平滑可微的曲面,利用、參數(shù)方程可精確表示曲面。通過計算曲面上一點、方向上的一次微分即可得到曲面在該點處的切線。
圖7 曲面法向量表示
點在曲面、方向上微分方程為
(6)
(7)
其中:()、()為解析曲面在、參數(shù)空間內(nèi)的函數(shù)表達式。由上式的微分表達式可得,解析曲面在點處法向量表達式為
(8)
按照焊槍姿態(tài)標準定義,通常使用焊槍工作角和焊槍行走角來表征焊槍姿態(tài)。如圖8所示,對于平面拼接焊縫和標準T形焊縫,通常要求焊槍行走角能夠始終垂直于焊縫軌跡前進方向,同時焊槍工作角為焊縫連接兩個立面的角平分線,即焊槍法向量姿態(tài)為焊槍軸線所示。
圖8 焊槍焊接行走姿態(tài)示意
根據(jù)上述焊接標準規(guī)范,設(shè)計焊槍法向量姿態(tài)自動生成的算法流程如下:
(1)導(dǎo)入焊接工件三維模型到焊接仿真軟件;
(2)圖形特征遍歷識別找到模型中焊縫軌跡線段;
(3)反向拓撲焊縫軌跡線的父特征,得到焊縫軌跡的兩個焊接連接面和;
(4)判斷焊接連接面和是否為平面,若是則通過平面特征方程給出當前離散點法向量;若否則對當前焊接軌跡點計算焊接連接面的一次微分得到該點在連接曲面的法向量;
(5)計算兩個焊接連接面法向量的角平分線,得到當前點的焊槍姿態(tài)法向量,并進入下一個焊縫離散點的焊槍法向量生成程序;
(6)所有焊縫離散點的焊槍姿態(tài)法向量生成完成后,輸出焊槍姿態(tài)法向量數(shù)據(jù)信息。
依據(jù)上述焊槍法向量姿態(tài)生成算法流程,給出焊槍姿態(tài)生成具體方法如下:
//拓撲當前焊縫線段的父特征焊接面
MapShapesAncestors(aShape,TopAbs_EDGE,TopAbs_FACE,shapeMap);
TopoDS_Face faces=shapeMap.FindFromKey(anEdge);
//判斷焊接面是否為平面,若是則求平面的法向量特征值
if (faces.GetType() == GeomAbs_Plane)
{gp_Pln apln=faces.Plane();
apln.Coefficients(l1,l2,l3,l4);
gp_Dir V1=gp_Dir(l1,l2,l3);}
else
//若否則將曲面轉(zhuǎn)換成(u,v)表示的參數(shù)曲面,求曲面當前點法向量
{BRepLProp_SLProps theProp(BRepAdaptor_Surface(faces),1,Confusion());
theProp.SetParameters(ui,vi);
gp_Dir vi = theProp.Normal();}
圖9 焊槍法向量姿態(tài)生成模型
船舶小組立工件焊槍法向量生成并顯示的效果如圖9所示,工件模型遍歷的焊接連接面紅色高亮顯示,密集的紅色法向量即為焊槍在焊縫軌跡的每個離散點上的姿態(tài)法向量方向。
為對比等弧長和等誤差離散法的離散精度是否符合焊接軌跡誤差控制要求,將焊縫軌跡樣條曲線導(dǎo)入到MATLAB中,分別使用等弧長離散法、等誤差離散法進行離散精度仿真。確定等弧長步長系數(shù),將曲線進行離散,求出離散點后用短直線逼近焊縫軌跡樣條曲線。等弧長離散法各分段逼近誤差如表1所示,曲線離散擬合效果如圖10所示。使用等誤差離散法確定初始離散步長,并對每一個初始分段進行弓高誤差判斷迭代,對不滿足焊縫軌跡誤差要求的小分段進行中間點插值,直到所有分段都滿足誤差要求,得到的等誤差法離散點的各分段逼近誤差如表2所示,曲線離散擬合效果如圖11所示。
表1 等弧長離散法各分線段逼近誤差 單位:mm
圖10 等弧長法焊縫曲線離散擬合示意
表2 等誤差離散法各分線段逼近誤差 單位:mm
圖11 等誤差法焊縫曲線離散擬合示意
根據(jù)焊接標準規(guī)范,焊縫軌跡仿真的樣條曲線弓高誤差精度需要限定在0.50 mm以內(nèi),才能保證整個機器人焊接行走軌跡精度符合焊接要求,不會發(fā)生虛焊、漏焊等焊接瑕疵問題。經(jīng)過MATLAB軌跡離散擬合數(shù)據(jù)仿真所得的圖表對比可知,等弧長離散法弧長的步長難以直接確定,無法有效控制曲線離散的弓高誤差,若焊縫樣條曲線曲率過大可能會出現(xiàn)部分區(qū)域離散線段的弓高誤差超過0.5 mm的焊接精度要求,出現(xiàn)虛焊、漏焊的情況。采用改進的等誤差離散法,弓高誤差判斷方法簡單清晰,可迭代性強,易于計算和編碼實現(xiàn),可有效控制焊縫軌跡曲線坐標點離散精度。
針對典型船舶小組立工件進行虛擬焊接仿真實驗和機器人焊縫軌跡行走實驗,使用的仿真驗證平臺是自主開發(fā)的專用焊接仿真軟件JIHUA_WELD。焊接仿真實驗步驟包括工件模型導(dǎo)入、焊縫識別及離散、焊槍法向量姿態(tài)自動生成、機器人焊接軌跡行走動態(tài)仿真等過程。整個專用焊接軟件焊接仿真實驗中,機器人最后焊接軌跡行走動態(tài)仿真過程如圖12所示。
圖12 機器人焊縫軌跡行走仿真過程
將專用焊接仿真軟件與機器人通信連接,并將機器人焊縫行走軌跡程序以及焊槍法向量姿態(tài)數(shù)據(jù)信息傳輸?shù)綑C器人控制器中,機器人沿著實際的船舶小組立工件的焊縫軌跡進行軌跡行走實驗,如圖13所示。機器人在行進過程中焊槍姿態(tài)能夠穩(wěn)定地處于兩個焊接立面夾角中間位置,且焊絲能夠穩(wěn)定地處于焊縫軌跡點上方1~2 mm處,證明專用焊接仿真軟件離散出的焊接軌跡坐標點以及焊槍姿態(tài)信息可以使機器人精準、穩(wěn)定地完成相應(yīng)的焊接任務(wù)。
圖13 機器人焊縫軌跡行走實驗
為解決專用焊接軟件自主識別焊縫軌跡、焊縫軌跡曲線離散以及實時生成焊槍姿態(tài)的任務(wù)需求,結(jié)合Open CASCADE平臺,提出一種基于參數(shù)化模型的焊縫軌跡識別與等誤差曲線離散算法;同時根據(jù)參數(shù)模型特征,利用、參數(shù)曲面微分法計算曲面離散點處的法向量特征,自動生成焊槍行走的法向量姿態(tài)。開發(fā)專用焊接仿真軟件,并通過焊接仿真實驗、MATLAB焊縫軌跡離散精度分析以及機器人焊縫軌跡行走實驗,驗證了焊縫軌跡等誤差離散法與焊槍法向量姿態(tài)生成方法的精確性和有效性。