宋艷芳,徐穎若,張繼方
(1.同濟大學汽車學院,上海 201800;2.河南工業職業技術學院汽車工程學院,河南 南陽 473000)
車輛零件加工裝配技術日益成熟[1],在量產與自動化檢測領域也取得了長足的發展,但隨著零件表面復雜度和檢測精度都越來越高[2],為了進一步滿足復雜零配件三維結構的自動化檢測,從而實現智能裝配的最終目標,面向復雜結構汽車零件的自動檢測技術的研究成為了熱點。
國外工業發展起步較早,在工業自動化檢測與控制方面具有領先地位,世界上第一臺可編程機器人由美國斯坦福大學生產,目前已在汽車加工、零件裝配等領域廣泛應用。ABB公司設計的并聯機器人成功應用于汽車零件加工中,其小巧的結構在車架內部零件安裝過程中具有很好的適用性。Connolly[8]研究的傳感式校正系統被應用于機器臂控制,在復雜零件結構檢測中精度可優于400 μm。寶馬公司推行的智能化汽車裝配工程體系采用了虛擬現實與裝配工藝流程相結合的設計思路,其中使用的數字孿生(Digital twin)技術就包含傳感數據的獲取,即自動檢測系統。國內中科院自動化所研發的新松機器人就是自動化檢測與控制有效結合的典型研究成果,其應用于汽車裝配領域的布線工藝環節,具有很大的市場占比。浙江大學的裝配技術國家重點實驗室研發的虛擬裝配軟件模塊,完成了檢測數據與控制系統的數據對接,自動裝配系統智能化發展提供了新的思路。同濟大學汽車學院開展了汽車零件測量數據對仿真裝配過程的校正研究,本文基于此基礎針對汽車零件自動檢測的掃描路徑優化問題,給出了基于分層完成目標區域三次B樣條插值的設計思路,構建了驗證測試實驗。
為了自動檢測復雜面形汽車零件的表面并實現精確重構[15],使機械臂掃描路徑更準確,實現為質檢、安裝等提供準確的修正數據,設計了自動檢測系統,如圖1所示。

圖1 基于三次B樣條分層插值的自動檢測系統Fig.1 Automatic detection system based on cubic B-spline hierarchical interpolation
系統主要分為兩大部分,一是計算分析部分,其中包括處理模塊、掃描路徑規劃模塊、分析算法模塊;二是執行部分,其中包含機械臂控制模塊、機械臂、光學探頭。首先,處理模塊通過數據采集卡讀取由光學探頭獲取得到的測試件點云數據;然后,通過對測試數據進行三維重建獲得測試件的位置與位姿信息;其次,在與工件數學模型對比的基礎上,計算測試件實際位置與姿態和理論位置與姿態之間的差異;最后,結合測試獲得的偏差數據信息,通過三次B樣條分層插值算法完成對掃描路徑的優化,從而實現優化自動檢測掃描路徑的目的。
待測件點云的獲取采用結構光配合雙目視覺的方法實現,由線陣CCD完成待測區域光信號的采集,利用捕獲靶標點信號完成目標的三維重構。設雙目視覺系統的坐標系分別是P1和P2,如圖2所示,當需要完成點云拼接時,將兩個坐標系的數據進行對齊即可實現目標點云的組合。

圖2 雙目測量的工作機理示意圖Fig.2 Schematic diagram of the working mechanism of binocular measurement
雙目系統統一坐標系后設其主點為(u0,v0),兩個相機的焦距與間距分別為F和D,在兩個相機的像面位置上的點分別是P1(u1,v1)和P2(u2,v2)。則待測物坐標可以寫成:
(1)
兩個相機之間的坐標變換可以通過旋轉矩陣和位移矩陣實現,兩坐標系之間的變換符合以下矩陣變換規則:
(2)
式中,P表示位移矩陣;R為表示旋轉矩陣,上標為選用坐標系,下標為目標坐標系,兩個坐標系下的數據互換是可逆的。
機械臂的掃描路徑常采用B樣條曲線構成,由于裝配等過程容易造成誤差引入,簡單的擬合曲線難以符合精度要求,故本文采用三次B樣條,并且基于數據特征進行分層插值,從而實現根據測試數據特點進行掃描路徑優化的目的。傳統B樣條曲線可以通過m個頂點和n個節點來控制,則定義B樣條曲線為:
(3)
其中,i為n個節點中的第i個;節點值;j為m個頂點中的第j個;k為B樣條的次數(本文中采用三次,即k=3);di為控制點數據;ui為節點矢量。
由于汽車零件的表面結構復雜,在構建掃描曲線的時候如果不分類處理,在具有階躍變化的位置很容易造成細節丟失,從而導致掃描精度降低。所以,采用數據分層的方式可以很好地解決諸如直角、棱邊、孔洞等結構的點云數據拼接問題。數據分層的依據由測試面的連續程度決定,即采用測試曲面上待測點的曲率決定。這樣分層的優勢有兩個:一是由曲率變化分層可以準確反映出曲面的形態與特征,二是由曲率計算法向量時可以直接為機械臂掃描路徑優化提供位姿補償信息。由此可見,基于曲率連續性的數據分層可以實現測量數據與掃描路徑的數據關聯,在此基礎上,確定節點與頂點的矢量表達就能完成曲線插值重建。對于數據點qi而言,構造三次B樣條曲線時要將首末數據點映射到B樣條曲線的對應端點上,并且將數據點依次對應到段與段的連接點上,從而得到m段曲線。由此得到的三次B樣條曲線將存在(n+1)個控制頂點dj。節點矢量的集合可以表示為:
再次,村落民俗志書寫應兼顧村民立場,這是走出傳統書寫模式中主體“缺席”誤區的關鍵。趙世瑜曾提出歷史人類學應掌握一種“逆推順述”的研究技術和敘事技巧,最近又將之視為一種觀察歷史的方法論,頗值得注意:
U=[u0,u1,…,un+k+1]
則其固支條件及定義域有:
u∈[u3,un+1]=[0,1]
其中,u0=u1=u2=u3=0,un+1=un+2=un+3=un+4=1。由此將節點矢量的構造過程在各個分層數據中進行遍歷,從而獲得每個數據分層中擬合曲線的節點矢量信息。
由于采用三次B樣條,故k=3代入式(3),得到三次B樣條函數:
(4)
然后將定義域[u3,un+1]中符合u∈[ui,ui+1]的節點依次導入方程后,有:
(5)
由此利用式(5)完成對控制頂點的解析,通過頂點方程的矩陣表達可以寫成:
(6)
其中,a1、b1、c1為邊界條件的首行非零系數;an-1,bn-1,cn-1為邊界條件的末行非零系數;ai,bi,ci是中間行系數;d表示控制頂點(下標為頂點號);e表示頂點矢量(下標為對應頂點)。所有系數可由節點矢量的差分量計算得到,有:
(7)
待測目標采用AtlaScan型雙目掃描儀完成數據采集,該設備最大采樣速率為900 /ms,分辨率最高為0.01 mm,仿真時根據設計需要的測試速度與重建精度,系統采樣速率與精度選用500 /ms與0.05 mm。采集后的原始點云數據無法直接使用,因為目標點云與背景點云混疊在一起。所以需要先將數據導入MATLAB中完成雜散點濾波,濾波方法采用點云相鄰域連通的方式實現。對于本測試中的零件而言,其曲面變化復雜程度并不高,所以只需要兩個數據獲取就能夠得到完整的目標點云集合,然后對每一次獲取的點云進行背景點云濾波,將目標點云數據保留后再完成三維目標的重建。
采用100 mm×100 mm掃描區域獲取待測目標的點云數據,要求待測目標具有直角、棱邊及孔洞等特征。由雙目視覺系統獲取待測目標結構的點云,導入MATLAB后,對雜散點進行濾波后可以得到目標的點云分布如圖3(a)所示。通過點云數據的三次B樣條分層插值完成對缺失信息的補償,從而達到優化掃描路徑的目的。在Qualify中,分別重建了無插值與經插值優化的重建效果,如圖3(b)所示。


(b)重建數據圖3 模擬汽車零件的點云與三維重建Fig.3 Point cloud and 3D reconstruction of simulated auto parts
將雙目系統獲取的基于靶標點的點云數據輸入MATLAB后,利用邊界濾波消除多余的噪聲點,最終形成圖3(a)中的點云數據集合,由此可以看出零件的大體外形輪廓。采用三角面片法將點云連通,從而構成目標的三維模型,重建得到零件的結構如圖3(b)所示。在三維重建結構中抽取各個位置上的斜率信息與數模中對應位置上的斜率進行比較,就可以得到預設的掃描路徑與實際目標位置之間存在的誤差,故對測試得到的三維重建數據進行三次B樣條分層插值,就能夠將與數模之間的誤差以補償矩陣的形式給出,從而反饋控制調整機械臂軌跡,實現對系統掃描路徑的優化。
實驗中零件外形點云獲取采用的是AtlaScan型雙目掃描儀,系統采樣速率為500 /ms,采樣精度為0.05 mm,標準測試位置范圍80 mm×80 mm。獲取點云過程中利用數據連通特性完成目標點云與背景點云的區分,具體實現手段是對一個計算范圍內的點云求解斜率均值,當相鄰區域的點云斜率均值明顯大于或小于其相鄰域的計算結果時,認為該檢測區域與相鄰區域不同源,從而在已知目標表面的斜率范圍的基礎上,可以對所有點云數據區域進行遍歷,最終將背景點云與雜散飛點等濾除掉。并且在完成數據運算時,可以通過降低已有目標點云數據總量的方法提高系統對目標重建的速度與邊界。
為了驗證本系統對掃描路徑的優化效果,對上文中仿真分析的同一個零件進行掃描路徑規劃對比,零件尺寸范圍80 mm×40 mm×40 mm,激光掃描范圍為80 mm×80 mm,由此可見,在一個維向上僅需完成一次掃描即可獲得零件在該維度上的投影數據。重建的曲面精度實際上會決定樣件掃描時機械臂與樣件表面的位姿關系,而不同的位姿關系計算得到的測試點位置是不同,也就是說,最終可以通過計算不同掃描路徑條件下的位置偏移誤差進行量化對比。
將實際掃描得到的點云數據與數模點云數據進行點云匹配后,就可以計算兩組數據之間的偏差,該偏差就是用于優化自動檢測結構掃描路徑的補償信息。由于零件為三維結構,故采用測試點位置之間的絕對距離表征該偏差值,有:
(8)
其中,Δx、Δy、Δz分別表示測試點云數據與數模點云數據在x、y、z位置上的位置偏差量,則直接重建與采用三次B樣條分層插值后重建的三坐標偏差數據及絕對距離偏差的計算結果如表1所示。

表1 偏差程度對比表Tab.1 Comparison table of deviation degree
由表1可知,優化后重建結果在x、y、z軸方向上的位置偏差的最大值和平均值都有所減小,減小程度約為原有測試值的1/3左右。分析認為,由于采用了三次B樣條分層插值算法,通過實測數據點之間插值補償的方式使擬合曲線更加接近真實值的。相比之下,由于在三個坐標軸方向上的位置偏差均有所改善,故其測試點位的絕對距離修正效果更為明顯,約為優化前的1/4。
根據算法對零件三維結構重建面形的誤差校正,通過對誤差數據的分布形式,給出了相應的自動檢測掃描路徑的規劃結果。對300個樣本點的測試偏差結果和基于此偏差結果的路徑補償歸一化系數,如圖4所示。從圖4(a)中可以看出,測試點的絕對距離誤差范圍集中在0.2~0.8 mm之間,該數據可以為自動掃描路徑的優化提供依據。也就是當絕對距離超過設定閾值時,通過程序判斷該時刻x,y和z軸上正負值,并根據其正負關系(正值表示相對原路徑點分離的程度,負值表示相對原路徑點接近的程度)對掃描路徑進行修正,修正參數由路徑補償歸一化系數決定。而歸一化系數如圖4(b)所示,可以看出其分布趨勢基本與Dxyz倒數接近,因為其就是用來補償數模導出的掃描路徑。綜上所述,當采用本系統可以利用三次B樣條分層插值算法對重建零件進行補償,從而實現減小實際裝配過程中掃描路徑的誤差。


圖4 測試點間的偏差程度與補償系數Fig.4 The degree of deviation between the test points and the compensation coefficient
本文針對汽車零件自動檢測過程中由于環境干擾會導致機械臂掃描軌跡與實際零件面形偏差增大的問題,提出了一種基于三次B樣條分層插值算法,用于改善點云數據重建效果。在計算三個坐標軸方向上不同偏差程度的基礎上,完成了基于測試點絕對距離的偏移誤差判斷,最終將包含該特征信息的數據以路徑補償歸一化系數的形式對掃描軌跡進行修正,達到了優化掃描軌跡的目的。可見,該算法為自動檢測的在線修正提出了新的思路。