林 森, 李文濤, 丁乃達, 唐延東
(1.中國科學院沈陽自動化研究所 機器人學國家重點實驗室,遼寧 沈陽 110016;2.中國科學院機器人與智能制造創(chuàng)新研究院,遼寧 沈陽 110016;3.遼寧工程技術大學 電子與信息工程學院,遼寧 葫蘆島 125105)
隨著汽車維修業(yè)的快速發(fā)展,車漆表面維護及修理逐漸成為常見的汽車車身維修種類。漆面修復過程中需要多次噴漆,工作量繁重,因此具有圖像傳感設備的智能噴漆機器人系統(tǒng)研發(fā)工作顯得極其重要。
近年來,國內外研究者致力于研發(fā)噴漆機器人軌跡優(yōu)化方法。Chen H等人[1]在CAD模型基礎上首次提出基于網絡的噴漆軌跡規(guī)劃方法,但對于復雜曲面,網絡化的CAD模型很難識別數(shù)據特征。之后Chen H等人[2]再次利用CAD模型對工件表面網絡化的噴槍平面進行分片處理,提出并驗證片與片之間的有效連接算法。Andulkar M V等人[3]在離線噴漆軌跡規(guī)劃的基礎上提出增量式算法,對噴漆速度進行優(yōu)化。張鵬等人[4]利用分片造型技術對大曲率曲面進行噴漆軌跡規(guī)劃,并分析軌跡優(yōu)化組合中存在的問題,奠定自動化噴漆系統(tǒng)的基礎。雖然對不同表面特征的噴漆軌跡規(guī)劃問題研究取得了一定成果,但噴漆系統(tǒng)仍存在目標區(qū)域點云數(shù)據不夠準確,軌跡規(guī)劃方法適用性較差等問題。
本文以Kinect V2相機為噴漆系統(tǒng)的圖像傳感設備,提出基于Sampson加權算子的隨機抽樣一致性算法(random sample consensus,RANSAC),剔除錯誤匹配點對,獲得精度更高的車身劃痕區(qū)點云;提出高效的點云切片生成算法,利用處理后的點云計算切片的數(shù)據坐標與法矢量,并通過插補算法將軌跡中各點連接起來,形成連續(xù)平滑的噴槍運動軌跡,實現(xiàn)噴漆作業(yè)。
智能噴漆系統(tǒng)的整體結構如圖1所示。
圖1 智能噴漆系統(tǒng)整體結構
Kinect V2是第二代Kinect for Windows圖像傳感設備,可以同時獲取場景的顏色信息和深度信息[5]。
Kinect V2共有三個攝像頭,最左側是RGB攝像頭,右側為紅外相機和紅外線發(fā)射器組成的深度傳感器[6]。為獲得Kinect相機的內部參數(shù),采用張正友標定法[7]對相機自身進行標定。Kinect采集點云數(shù)據后,還需將數(shù)據轉換到噴漆機器人坐標系下,才能進行后續(xù)操作,因此要對Kinect與噴槍之間的相對位姿進行標定,即手眼標定[8]。本文采用奇異值分解(singular value decomposition,SVD)的方法[9]計算Kinect與噴槍之間的旋轉矩陣和平移向量,完成二者相對位姿的標定。
使用Kinect相機依次采集不同角度下的目標圖像,將圖像兩兩之間配準,通過后期拼接,可得到完整的目標點云。為保證圖像對之間的匹配精度,提出基于Sampson加權算子的RANSAC算法對匹配結果進行處理。RANSAC算法[10]使用的基礎數(shù)學模型如圖2所示。α與α′為Kinect從V和V′兩個位置采集的圖像,成像點分別為i和i′。
圖2 幾何關系示意
對應點i=(u,v,1)和i′=(u′,v′,1)存在如下關系
(1)
其中,Fcloud為待求的變換矩陣
(2)
當匹配點數(shù)大于8時,將式(2)代入式(1)展開求解可得到變換矩陣Fcloud。得到變換矩陣后,在RANSAC算法基礎上引入Sampson加權算子
(3)
Step1 隨機抽取8對匹配點,計算變換矩陣Fi。
Step2 計算每對匹配點的Sampson距離,記為dij,i∈[1,N],j∈[1,8]。比較dij與事先設置的閾值d,若dij Step3 將Step1和Step2重復循環(huán)N次,其中 (4) 式中p為至少有一個數(shù)據子集所包含的數(shù)據全是局內點的概率,通常p大于95%,s為子集中數(shù)據點的個數(shù),ε為局外點占數(shù)據集的比例。 Step4 將之前記錄的內點數(shù)量進行比較,找到對應內點數(shù)目最多的變換矩陣,記為F,與其對應的內點作為最終的內點,其余點作為外點,即需要剔除的錯誤匹配點。 如圖3所示,平面Π分別沿其法矢量方向與相反方向等距平移得到兩個新平面ΠR和ΠL,兩個平面之間的距離定義為切片厚度δ。Π與ΠL,ΠR之間構成的切片與點云的交點分別記為PLi,i∈[1,nL]和PRi,i∈[1,nR]。通過求取PLi與PRi的最近連線可近似表達該模型的局部輪廓。 圖3 切面與點云求交 由于點云數(shù)據過大,尋找PLi與PRi的最近連線將花費大量時間。因此對搜索距離最近點的算法進行改進。具體算法流程如下: 1)首先確定閾值nt,若ΠR和Π之間區(qū)域點的總數(shù)nR,滿足nR 2)在ΠL和Π之間區(qū)域中選取一點PLi,令d=δ/2。計算出PLi與Π平面之間的距離dL。如圖4所示,以PLi為中心,d為邊長構建一個正方體包圍盒,計算包圍盒內含有另一區(qū)域點的數(shù)量,記為n。若n=0,則令d=d+δ/2,重新構造包圍盒;若n>nt,則令d=dL+d/2,重新構造包圍盒;若0 圖4 立方體包圍盒 3)同樣,在PLi中查找與Pli-near距離最近的點,標記為P′Li。判斷P′Li是否與PLi重合。若重合,將PLi與Pli-near記為匹配點對,分別保存在鏈表List_ΠL和List_ΠR中;若不重合,則不保存該組點對。標識PLi已遍歷。重復步驟(1)~步驟(3),直到遍歷PLi中的每一點為止。 4)計算List_ΠL和List_ΠR中每組點對之間連線PLiPli-near與平面Π的交點,得到切片Π上的數(shù)據特征點坐標,記為Pi(xi,yi,zi)。 重復上述步驟,直到遍歷完全部點云切片,就得到點云切面上全部數(shù)據特征點坐標。 為求得特征數(shù)據點集中各點的法矢量,利用離散點云的三角拓撲結構,計算特征數(shù)據點相關三角形的法向量,可直接利用有向三角形的方向確定法向量的方向[11,12]。點云切片特征數(shù)據點構成的集合稱為采樣點集Si。如圖5所示,假設Si與m個點Pj(j=1,2,…,m)相鄰,且與Pj+1共同構成m個相關三角形。設這些三角形的單位法矢量為nj,可通過下式求得 圖5 Si法矢量估計 (5) 令Si,Pj與Pj+1構成的三角形面積為Λ,取加權因子λj=1/Λ,則Si的法矢量可按下式估算 (6) 如圖6所示,噴槍噴嘴到噴漆工件表面的垂直距離記為H。對于采樣點Si沿法矢量方向Ni進行偏移H距離之后,就可以得到點Oi,并將點Oi記為點Si的偏置點。且 圖6 工件表面偏置信息 (7) 其中,點Oi包含坐標值和單位法矢量。由全部Oi構成的點集稱為偏置點集O,點集O包含點云中的全部數(shù)據特征。采用噴漆機器人空間直線或空間圓弧插補算法[13]將O中的全部點連接起來便形成了連續(xù)的噴涂機器人空間路徑,最后將該路徑轉換為特定型號的噴漆機器人運行程序,完成噴漆工作。 實驗平臺如下:開發(fā)平臺Visual Studio 2013;圖像處理算法庫OpenCV;三維點云處理算法庫PCL1.7.2;Kinect V2相機驅動程序Kinect SDK。 當使用SURF算法進行匹配時,得到66對匹配點,匹配結果如圖7(a)所示?,F(xiàn)采用改進的RANSAC算法,得到43對匹配點。從圖7(b)可以看出,明顯的錯誤匹配點對已經剔除。 圖7 二種算法匹配結果 圖8(a),(b)分別為打過蠟的劃痕區(qū)以及Kinect獲取的該區(qū)域點云圖。利用特征點可以生成軌噴漆軌跡的法向圖,如圖8(c)所示。再根據數(shù)據點的法矢量確定噴槍的偏置參數(shù),通過插補算法將軌跡中的各點連接起來,最后形成了連續(xù)平滑的噴漆機器人噴槍運動軌跡,如圖8(d)所示。 圖8 實驗結果 如圖8的小型區(qū)域噴槍軌跡規(guī)劃,算法需運行3 s左右,大型區(qū)域如整個車門的噴槍軌跡生成,算法需運行10 s左右。與目前國內多采用的人工示教進行軌跡規(guī)劃的方法相比,本文的改進算法節(jié)省了大量時間。 如圖9(a)所示,通過可視化界面手動選取目標噴漆區(qū)域。規(guī)劃的噴漆機器人運動軌跡如圖9(b)所示,最后的噴漆效果如圖9(c)所示。噴漆后的汽車車面劃痕區(qū)已變得均勻光滑。 圖9 實際噴漆效果 采用基于Sampson加權算子的RANSAC算法剔除錯誤匹配結果,為后續(xù)處理提供精確的三維點云。提出改進的點云切片算法,減少獲取切片特征數(shù)據坐標的運行時間。根據上述研究,進行軟硬件的設計與實現(xiàn),對車體劃痕區(qū)域進行噴漆操作,驗證該系統(tǒng)的正確性。實驗證明本文噴漆系統(tǒng)具有很好的實用價值。3 噴漆機器人噴槍軌跡規(guī)劃
3.1 改進的點云切片算法
3.2 估算數(shù)據點法矢量
3.3 噴漆機器人噴槍空間運動軌跡的生成
4 系統(tǒng)實驗結果與分析
4.1 改進點云匹配算法處理結果
4.2 法矢量及軌跡規(guī)劃結果
4.3 實際噴漆效果
5 結 論