張園凱,馬立新,王秀晶,崔毅剛,田新誠
1. 山東大學 山東濟南 250061
2. 歐德神思軟件系統(tǒng)(北京)有限公司 山東濟南 250101
3.中國重汽集團濟南動力有限公司 山東濟南 250220
當前,焊接機器人的示教回放模式在工業(yè)生產(chǎn)中仍然發(fā)揮著重要的作用。這種模式下,在焊接前,復雜的示教和編程工作必不可少,且這項工作對操作人員的技術(shù)水平有很高的要求。為了克服上述問題,許多研究者利用不同傳感器對不同工件進行焊縫提取和焊接路徑規(guī)劃進行了研究。
在進行焊接機器人的研究中,三維視覺傳感器應(yīng)用較為廣泛。機器人焊接任務(wù)中常用的三維視覺傳感器有線性結(jié)構(gòu)光視覺傳感器[1]和三維面陣結(jié)構(gòu)光視覺傳感器[2]。線性結(jié)構(gòu)光只能獲得局部信息,多用于焊縫的在線識別和跟蹤,不適用于焊接機器人的離線三維路徑規(guī)劃。三維面陣結(jié)構(gòu)光可以獲取焊接環(huán)境的全局信息,適用于焊接機器人的離線三維路徑規(guī)劃。采用三維面陣結(jié)構(gòu)光傳感器產(chǎn)生工件點云并對點云進行處理,已經(jīng)成為一種實現(xiàn)焊接機器人的無示教、免編程進行路徑規(guī)劃的新方案。
隨著社會和基礎(chǔ)設(shè)施建設(shè)的發(fā)展,鋼籠、鋼網(wǎng)等結(jié)構(gòu)件得到了廣泛的應(yīng)用,但鋼網(wǎng)焊接時交叉點較多,導致示教過程繁瑣。采用點云處理對鋼網(wǎng)焊接路徑進行規(guī)劃,是解決焊接機器人焊接前復雜的示教和編程問題的重要方法。
本文提出了一種基于點云的鋼網(wǎng)焊接路徑自動規(guī)劃方法,實現(xiàn)了焊接機器人的焊接路徑規(guī)劃,無需示教和編程。
試驗平臺的機器人焊接系統(tǒng)如圖1所示。該系統(tǒng)由焊接執(zhí)行系統(tǒng)和三維視覺系統(tǒng)兩部分組成。焊接執(zhí)行系統(tǒng)包括焊槍、送絲器、機械臂、機器人控制器和十字鋼網(wǎng),用于完成鋼網(wǎng)交叉點的焊接。該三維視覺系統(tǒng)[3]包括三維面陣結(jié)構(gòu)光相機和工業(yè)計算機(IPC),用于獲取攝像機視野內(nèi)的十字鋼網(wǎng)的三維信息。
圖1 機器人焊接系統(tǒng)
本文采用的鋼網(wǎng)模型如圖2所示,鋼網(wǎng)模型的上下鋼筋搭接處有縫隙。上部鋼筋由左右兩個固定尺寸的支撐板支撐。
圖2 鋼網(wǎng)模型
在基于點云的鋼網(wǎng)焊接路徑規(guī)劃過程中,首先,通過工業(yè)機器人控制器將機械臂移動到鋼網(wǎng)上方,將攝相機視場調(diào)整到合理范圍,記錄此點位為拍攝點。對于一張鋼網(wǎng),由于相機視場拍攝到的交叉點有限,所以我們連續(xù)移動機械臂,多次記錄拍攝點生成拍攝路徑;然后,機器人控制器依次從IPC讀取拍攝點,并控制機械臂到達該點,打開相機拍攝形成點云,通過MicroB傳輸?shù)絀PC;最后,IPC通過相關(guān)點云處理方法計算出3D攝相機視野內(nèi)鋼網(wǎng)的焊接路徑,并將焊接路徑發(fā)送給機器人控制器。待機器人按照機器人控制器指令完成當前拍攝點的焊接任務(wù)后,再繼續(xù)下一個拍攝點的焊接任務(wù)。
初始鋼網(wǎng)點云包含了相機視場內(nèi)的所有特征,為了防止不相關(guān)特征對鋼網(wǎng)焊接路徑規(guī)劃的干擾,對初始鋼網(wǎng)點云采用直通濾波進行過濾。直通濾波器的原理是沿著指定的維度執(zhí)行截取,也就是說,刪掉指定范圍內(nèi)或外的值[4]。該方法對初始點云的過濾主要是去除支撐平臺的點云。由于拍攝距離和姿勢基本不變,所以第一次拍攝時確定的濾波參數(shù)可以在后續(xù)拍攝中使用,提高了處理效率。直通濾波示意如圖3所示。
圖3 直通濾波示意
點云直通濾波后,還剩下鋼網(wǎng)點云和背景點云。此時,通過點云分割去除背景點云,即可得到獨立的鋼網(wǎng)點云。利用點云庫中的平面點云分割算法去除背景平面點云。當使用點云庫中的點云分割算法時,首先,選擇模型類型為平面(SACMODEL PLANE);然后,使用隨機樣本一致性(RANSAC)方法作為選擇的魯棒估計,得到了該平面。最后,通過設(shè)置距離閾值對平面模型點云和離群點云進行分類,所有距離小于閾值的點視為內(nèi)點,其他點視為離群點,保留內(nèi)點就可得到去除平面后的鋼網(wǎng)點云。背景平面點云的厚度約為6mm,因此將距離閾值設(shè)為6mm。背景點云去除后的鋼網(wǎng)點云如圖4所示。
圖4 去除背景后的鋼網(wǎng)點云
在鋼網(wǎng)焊接路徑規(guī)劃過程中,需要對鋼筋點云進行線性擬合等操作。因此,可以通過點云聚類的方法將同一鋼筋的點云分為同一類,形成獨立的鋼筋點云,以便于后續(xù)操作。
鋼筋點云聚類的方法與點云平面分割方法相似。使用點云庫里的線性模型(S A C M O D E L LINE)。直線也用RANSAC方法[5]作為選擇的魯棒估計,再通過設(shè)置距離閾值確定內(nèi)點和離群點。通過程序設(shè)置,迭代進行擬合,將每條線的內(nèi)部點分別存儲,獲得4個獨立的鋼筋點云,分割完成的點云如圖5所示,其中4種顏色代表4根鋼筋。
圖5 分割完成后的鋼筋點云
通過點云預處理操作,將鋼網(wǎng)點云劃分為獨立的鋼筋點云。在此基礎(chǔ)上,獲取鋼網(wǎng)的焊接點坐標,最終實現(xiàn)鋼網(wǎng)的焊接路徑規(guī)劃。
如圖6所示,當3D相機主光軸與鋼網(wǎng)平面的夾角為90°±5°時,捕獲的點云是每根鋼筋的上半部分,并且點云沿z軸逐漸稀疏。此時,采用SVD方法對各鋼筋點云進行線性擬合。根據(jù)奇異值分解法的原理,擬合直線位于鋼筋點云中心軸線與上表面之間。
圖6 鋼網(wǎng)點云的三視圖
圖7為十字交叉鋼筋的俯視圖,從中可以看出,十字交叉的兩根鋼筋的公垂線是上層鋼筋的上表面與下層鋼筋的上表面連接的。為了對公垂線的精確求解,需要對鋼筋點云擬合線在其上表面的定位進行約束。因此,我們需要使用點云濾波去除鋼材兩側(cè)的稀疏點,將鋼筋上表面的剩余點云作為擬合線的樣本點。根據(jù)圖8中半徑離群點去除原理:計算每個點半徑d內(nèi)點的個數(shù),當半徑內(nèi)點的數(shù)目小于設(shè)定的數(shù)目時,該點被刪除。濾波完成后的鋼網(wǎng)點云如圖9所示。
圖7 十字交叉鋼筋俯視圖
圖8 半徑離群點移除原理
圖9 半徑離群點移除后鋼網(wǎng)點云的三視圖
基于SVD方法擬合空間直線的思路很簡單,即最小化所有樣本點到擬合直線的距離。
矩陣A的奇異值分解由式(2)求得。
U是一個n×n的正交矩陣。S是一個由r個奇異值沿對角線從大到小排列的方陣,其中,r是矩陣A的秩。V是一個3×3沿列方向從大到小排列的奇異向量矩陣,得到直線的方向與最大奇異值對應(yīng)的奇異向量相同,因此選擇V矩陣的第一列作為擬合直線的方向,將三行一列的奇異向量矩陣表示為Vd。已知直線過點,且求得直線的方向向量Vd,從而得到直線的參數(shù)方程為:
擬合線的長度可根據(jù)式(3)確定,最后得到的擬合直線如圖10所示。
圖10 點云直線擬合后的三視圖
在得到鋼筋點云的擬合直線后,需要找到交叉擬合直線的公垂直線。如圖11所示,1號鋼筋和3號鋼筋的擬合直線分別設(shè)為AB和CD,AB和CD的公垂線是MN。
圖11 交叉擬合直線的公垂線
由圖11可以得到向量之間的關(guān)系式(4):
利用式(4)可以求得k1、k2,進而求得點M、N的坐標。最終求得交叉擬合直線的公垂線段,如圖12所示。
圖12 鋼網(wǎng)交叉處的公垂線
焊接路徑規(guī)劃需根據(jù)交叉鋼筋的間隙寬度確定。當間隙寬度小于2mm時,鋼網(wǎng)焊接采用點焊。當間隙寬度大于2mm時,鋼網(wǎng)焊接采用弧焊。因此,在確定焊接路徑之前,應(yīng)先計算交叉鋼筋的間隙寬度。在得到公垂線段的兩個端點MN的坐標后,根據(jù)得到的MN長度利用式(5)求得。
公垂線段MN的長度是指下鋼筋上表面到上鋼筋上表面的距離。因此,公垂線段MN的長度減去上鋼筋的直徑dup可以得到交叉鋼筋之間的間隙寬度。焊接前上鋼筋直徑已準確測量。
在得到交叉鋼筋的間隙寬度后,我們開始規(guī)劃焊接路徑。如圖13所示,點P為上下鋼筋間隙的中點,點E1是P沿著方向取鋼筋1的半徑dup/2得到的。點F1、F2是P分別沿著方向取鋼筋3的半徑ddown/2得到的。點G1、H1是點E1分別沿著方向取鋼筋3的半徑ddown/2得到的。
圖13 焊接路徑規(guī)劃示意
在獲得鋼網(wǎng)焊接路徑后,通過誤差分析和焊接平臺試驗結(jié)果分析,驗證了基于點云的鋼網(wǎng)焊接路徑規(guī)劃方法的可行性和準確性。
誤差分析是為了驗證基于點云的鋼網(wǎng)焊接路徑規(guī)劃方法是否滿足焊接精度要求,并驗證其可行性。首先,求出焊接路徑規(guī)劃所需點的坐標,利用相關(guān)點計算出了交叉鋼筋的間隙寬度,并與實際交叉鋼筋的間隙寬度進行了比較,計算出其誤差。最后,根據(jù)此誤差確定了基于點云的鋼網(wǎng)焊接路徑規(guī)劃方法的可行性。在本試驗中,3D相機視場中有4根兩兩交叉的鋼筋,生成4個焊接位置。4個焊接位置的交叉鋼筋計算見表1。
表1 4個焊接位置的間隙兩端的坐標 (mm)
根據(jù)間隙兩端的坐標,得到了4個焊接位置的間隙寬度和誤差,結(jié)果見表2。通過計算出的交叉間隙寬度與實際間隙寬度的比較,可以發(fā)現(xiàn)最大誤差為0.75mm,最小誤差為0.49mm,平均誤差為0.635mm。相機本身精度為±0.5 mm[7],考慮到3D相機的拍攝誤差,可以得出計算得到的交叉鋼筋間隙寬度與實際間隙寬度之間的誤差滿足精度要求。因此,基于點云的鋼網(wǎng)焊接路徑規(guī)劃方法是可行的,滿足了焊接精度的要求。
表2 4個焊接位置的間隙寬度和誤差(mm)
焊接機器人需要進行合理準確的手眼標定,以實現(xiàn)焊槍前端對焊點位置的準確定位。本試驗的手眼標定原理[8]如圖14所示。
圖14 手眼標定原理
在手眼標定方法中,式(7)適用于機器人運動過程中的任意兩種姿態(tài)。
根據(jù)式(7),我們進行多次標定計算,最后選擇誤差較小的外部轉(zhuǎn)換矩陣末端T相機。
我們記錄了3D相機的拍攝位姿(-272.08,647.67,419,-174.76,3.37,20.09)。根據(jù)拍照姿態(tài)和外部矩陣,得到了機器人底座坐標系中4個焊接位置的焊點對應(yīng)的焊槍前端坐標,結(jié)果見表3。同時,通過手工教學獲得了機器人坐標系中4個焊接位置的焊點對應(yīng)的焊槍前端坐標,結(jié)果見表4。
表3 手眼標定后獲得的焊點對應(yīng)焊槍前端坐標(mm)
最后分析了表3和表4中對應(yīng)焊點坐標的空間距離誤差,誤差均在1mm以內(nèi),如圖15所示。通過實際操作的試驗和誤差分析,發(fā)現(xiàn)所有的誤差都≤1mm,在允許的合理范圍內(nèi),不影響焊接效果。試驗證明,本文提出的方法可以在不進行示教和編程的情況下準確地實現(xiàn)焊接路徑規(guī)劃。
圖15 焊點坐標與手工教學之間的誤差分析
表4 手工教學獲得的焊點對應(yīng)的焊槍前端坐標 (mm)
本文研究了一種基于點云的焊接機器人鋼網(wǎng)焊接路徑規(guī)劃方法,為精確規(guī)劃鋼網(wǎng)焊接路徑和獨立焊接奠定了基礎(chǔ),省去了焊接路徑規(guī)劃中復雜的示教和編程工作。
1)將三維面陣結(jié)構(gòu)光相機應(yīng)用于工業(yè)焊接場景,可以快速方便地獲取工件的點云,提高了焊接效率。
2)該方法解決了鋼網(wǎng)焊接前復雜的示教和編程問題。通過點云庫與數(shù)學理論的結(jié)合,可以準確地規(guī)劃鋼網(wǎng)的焊接路徑,無需在焊接前進行示教和編程,即可完成焊接任務(wù)。
3)通過分析基于點云的方法誤差和焊接平臺試驗結(jié)果,驗證了鋼網(wǎng)焊接路徑規(guī)劃方法的可行性和準確性。