金 昭,李長安,竇亞萍,楊慕升,隋文濤
(山東理工大學(xué) 機(jī)械工程學(xué)院,山東 淄博 255000)
斜齒輪在工程中應(yīng)用廣泛,相對于直齒輪,具有運(yùn)轉(zhuǎn)平穩(wěn)、承載能力高、噪音小等優(yōu)點(diǎn)。斜齒輪螺旋角的大小沒有固定的標(biāo)準(zhǔn),不同廠家生產(chǎn)的斜齒輪的螺旋角常常不同。工業(yè)測量斜齒輪螺旋角主要采用接觸式測量方法,分為萬能角度尺法、拓印法、導(dǎo)程儀法、滾齒機(jī)法等。根據(jù)GB/T 6315—2008,萬能角度尺的測量精度為2′或5′,測量耗時一般為18 s左右[1]4。接觸式測量耗費(fèi)工時較多,越來越難以適應(yīng)工業(yè)快速生產(chǎn)[2]。斜齒輪螺旋角的非接觸式測量方法主要為激光測量法、結(jié)構(gòu)光法[3]10、機(jī)器視覺法[4,5]等。訾豪等人[6]提出了一種基于激光位移傳感器的斜齒圓柱齒輪螺旋角測量方法,該方法中的激光測頭需要精密的機(jī)械傳動裝置。石維等人[7]提出了一種基于斜齒輪上下端面圖像處理的斜齒輪螺旋角測量方法,該方法需要手動操作,速度較慢。宋栓軍等人[1]1提出了一種基于齒輪側(cè)面圖像處理的斜齒輪螺旋角測量方法,李捷等人[8]提出了一種結(jié)合Hough變換和兩直線夾角公式的螺旋角檢測方法;這兩種方法可以應(yīng)用于在線測量中,但測量大螺旋角斜齒輪時誤差較大,且對齒輪側(cè)面的圖像處理效果較差。
筆者通過計算得出斜齒輪齒線在二維空間上的投影解析式,對其進(jìn)行MATLAB仿真,驗(yàn)證齒線形狀的唯一性;通過對斜齒輪側(cè)面圖像進(jìn)行處理,得到齒線的邊緣圖像,統(tǒng)計結(jié)構(gòu)元素數(shù)量得出斜齒輪旋向,再利用曲線擬合的方式得出螺旋角的值。筆者所提算法可以與齒輪端面測量系統(tǒng)結(jié)合,實(shí)現(xiàn)快速在線測量。
為了切合工業(yè)生產(chǎn)環(huán)境,斜齒輪螺旋角測量系統(tǒng)應(yīng)與端面測量系統(tǒng)相結(jié)合[9]。一種工業(yè)上在線測量齒輪端面的裝置如圖1所示。
圖1 齒輪的在線視覺測量
該裝置可實(shí)現(xiàn)每2 s測量一個齒輪的端面參數(shù)。
筆者測量系統(tǒng)主要包括環(huán)形光源1、條形光源2、2×106像素CCD相機(jī)、CMOS相機(jī),鏡頭1、雙遠(yuǎn)心鏡頭2、相機(jī)支架和計算機(jī)。測量系統(tǒng)如圖2所示。
圖2 測量系統(tǒng)示意圖
計算機(jī)的CPU是AMD的R5-4600 H。光源采用LED側(cè)面條形光源與上方光源組合照明,可以增加斜齒輪側(cè)面齒線邊緣的對比度。CCD相機(jī)相對于水平面固定,采集水平放置的斜齒輪側(cè)面圖像。CCD相機(jī)需要用2個水平儀分別調(diào)節(jié)相機(jī)的俯仰角度和左右傾斜角度。雙遠(yuǎn)心鏡頭景深為18 mm。雙遠(yuǎn)心鏡頭具有寬景深、低畸變、無透視誤差的特性。
測量的工作流程主要包括系統(tǒng)的安裝與調(diào)試、圖像的預(yù)處理、齒輪旋向和斜齒輪螺旋角的確定共3部分。其中測量系統(tǒng)的安裝與調(diào)試主要包括對光源、支架、相機(jī)、工件固定裝置的安裝與裝配誤差修正;圖像的預(yù)處理主要包括相機(jī)標(biāo)定、畸變矯正、提取ROI區(qū)域、圖像灰度化等操作;齒輪旋向和斜齒輪螺旋角的確定包括邊緣檢測、形態(tài)學(xué)處理、曲線擬合等操作,最終得出斜齒輪旋向和螺旋角β的值。
斜齒圓柱齒輪簡稱斜齒輪,斜齒輪的齒線是一系列處于同一圓柱體側(cè)面的螺旋線的組合。螺旋線在空間直角坐標(biāo)系的參數(shù)方程式如式(1~3),可表示為:
(1)
式中:c—斜齒輪的齒數(shù);n—從1開始到c間隔為1的等差數(shù)列;θ—角度參數(shù),范圍(-b/2r,0)弧度。
其中:n為1時,第一條螺旋線起點(diǎn)與原點(diǎn)的連線與x軸的角度為θ0。
(2)
(3)
式中:β—斜齒輪螺旋角;z—豎坐標(biāo),范圍[0,b];b—斜齒輪的厚度(螺旋線在z方向的高度)。
在端面坐標(biāo)系中,每個齒所對應(yīng)螺旋線旋轉(zhuǎn)的角度為(2π/c)弧度。式(3)中,r、b的符號為負(fù)時,斜齒輪為左旋,反之則為右旋。
以1.5模齒數(shù)26厚度為15 mm的45°斜齒輪為例,將式(1~3)代入?yún)?shù)后輸入MATLAB,可得齒輪齒形如圖3所示。
圖3 斜齒輪螺旋線三維示意圖
斜齒輪螺旋線在xoz平面的投影如圖4所示。
圖4 斜齒輪螺旋線在xoz平面的投影
由投影圖像圖4可知:齒線在xoz面的所有投影都不是直線,但是中間的齒線投影與直線近似。由于相機(jī)只能采集到齒輪前面的圖像,處在y>0部分的齒形曲線是不可見的,因此(0<2(n-1)π/c+θ0<π)。筆者只考慮相機(jī)能采集到圖像的齒形部分,部分齒形曲線在xoz平面上的投影如圖5所示。
圖5 相機(jī)能采集到的螺旋線
聯(lián)立式(1,3),可得x與z的函數(shù)表達(dá)式:
(4)
其他參數(shù)不變,在[0:0.05:1]弧度范圍內(nèi)改變β的大小,得到的圖像如圖6所示。
圖6 改變β時的投影圖像
由圖6可知:β的大小在一定范圍內(nèi)時,投影曲線具有唯一性。
圓柱斜齒輪軸線與上端面的交點(diǎn)在(x0,z0)時,x與z的函數(shù)表達(dá)式為:
(5)
與直接使用中間齒線上下端點(diǎn)連線的方法對比,1.5模26齒45°斜齒輪圖像齒線的上頂點(diǎn)坐標(biāo)為(-39.78,0)時,理論上比該算法多0.91%的誤差。在理想情況下,該算法的誤差僅取決于相機(jī)的分辨率以及端面視覺測量得到的齒頂圓直徑等參數(shù)的誤差。
對于標(biāo)準(zhǔn)齒輪,齒頂圓直徑一般等于分度圓直徑加上齒輪模數(shù)的2倍。齒頂圓螺旋角與分度圓螺旋角的轉(zhuǎn)換關(guān)系可表示為以下兩式:
(6)
式中:P—螺旋面導(dǎo)程(不變);d—分度圓直徑。
(7)
式中:βy—齒頂圓螺旋角;dy—齒頂圓直徑。
由式(6,7)可得分度圓螺旋角β,即:
(8)
測量圖像的像素尺寸利用了標(biāo)準(zhǔn)6×9棋盤格,每個棋盤格的尺寸為6 mm×6 mm,使用harris角點(diǎn)檢測算法檢測角點(diǎn),根據(jù)角點(diǎn)的坐標(biāo)求出每個像素代表的實(shí)際尺寸。在該文中,1個像素代表0.024 1 mm。
筆者基于MATLAB2020a平臺,首先采用張氏標(biāo)定法對相機(jī)進(jìn)行標(biāo)定,然后對圖像進(jìn)行畸變矯正、提取ROI區(qū)域、灰度化等操作。如圖1所示,在齒輪的大規(guī)模工業(yè)視覺測量中,工件使用自動擋板來使工件靜止在固定區(qū)域,采集完圖像后,擋板再給工件放行。那么,圖形的ROI區(qū)域的橫坐標(biāo)只與齒頂圓直徑有關(guān)。在測量未知參數(shù)斜齒輪時,頂部相機(jī)測量齒輪端面的齒頂圓直徑、齒數(shù)、分度圓直徑等參數(shù)。缺少這些參數(shù),就無法對提取出來的齒線邊緣進(jìn)行曲線擬合。由于齒輪的齒頂圓直徑一般是負(fù)公差,使用頂部相機(jī)測量實(shí)際齒頂圓直徑有助于減小所提方法的誤差,也有利于自動獲取ROI區(qū)域的坐標(biāo)[10]。
經(jīng)過畸變矯正后的齒輪ROI圖像如圖7所示。
圖7 斜齒圓柱齒輪ROI區(qū)域
由于實(shí)驗(yàn)條件有限,難以保證工件圖像不產(chǎn)生傾斜。所以需要測量工件傾斜角度來使圖像坐標(biāo)系與世界坐標(biāo)系相匹配,使用軸固定齒輪,通過軸的圖像獲得更為精確的傾斜角。在圖像中提取軸的ROI圖像,邊緣提取后通過最小二乘擬合得到軸傾斜的角度以及齒輪中心線的解析式。再結(jié)合ROI區(qū)域的坐標(biāo),得出圖像坐標(biāo)系原點(diǎn)的位置。
該步驟的意義在于確定r、b的正負(fù)號。先去除ROI圖像的canny邊緣圖像中面積過小的連通域,然后遍歷邊緣圖像,分別找出結(jié)構(gòu)元素1和結(jié)構(gòu)元素2的數(shù)量,根據(jù)結(jié)構(gòu)元素的數(shù)量來確定齒輪是左旋還是右旋。筆者使用的部分結(jié)構(gòu)元素可表示為:
(9)
式中:結(jié)構(gòu)元素1—+45°斜率結(jié)構(gòu)元素;結(jié)構(gòu)元素2—-45°斜率結(jié)構(gòu)元素;結(jié)構(gòu)元素5—水平結(jié)構(gòu)元素。
左旋的齒輪,它的側(cè)面圖像紋理的斜率多數(shù)是負(fù)的,右旋則相反。該算法受噪聲影響較大,需要提前對圖像高斯濾波進(jìn)行處理。該算法在781×1 558的ROI圖像上的運(yùn)行時間為27.3 ms。
幾種斜齒輪邊緣圖中,結(jié)構(gòu)元素的數(shù)量如表1所示。
表1 結(jié)構(gòu)元素的數(shù)量
由表1可知:不同旋向的斜齒輪,其2種結(jié)構(gòu)元素的數(shù)量有極大的差異,在19°到45°螺旋角以及生銹、低照度等極端情況下,都不影響算法的準(zhǔn)確性。直齒輪由于受到不規(guī)則高光反射影響,不能使用該方法判定是否是直齒輪。
以上實(shí)驗(yàn)數(shù)據(jù)證明,這種測量斜齒輪旋向的算法是可行的。
部分邊緣提取算法的結(jié)果如圖8所示。
圖8 邊緣提取算法效果對比
由圖8可知:sobel算子和結(jié)合高通濾波器的canny算子檢測出的邊緣有多處明顯斷點(diǎn),結(jié)合相位一致性的canny算子與使用高斯濾波器的canny算子效果幾乎相同;結(jié)合HDR高動態(tài)范圍成像算法[13]的canny算子在弱光處和灰度均衡化效果類似,其他區(qū)域邊緣檢測效果變差;蟻群算法[14]4檢測出的邊緣較平滑,但是沒有解決斷點(diǎn)的問題。在全局閾值的條件下,上述邊緣檢測方法效果均不佳。分區(qū)域的邊緣檢測算法只有中間部分的圖像可以使用自適應(yīng)閾值canny,左右部分圖像的高斯濾波核和邊緣檢測閾值需要手動設(shè)定,采用大津法的自適應(yīng)閾值會將齒底的反光誤識別為邊緣。采用同態(tài)濾波[15]5是最簡單有效的方法,使用該方法最終提取的齒線數(shù)量比分區(qū)域的邊緣檢測算法多1條。
在MATLAB2020a環(huán)境下,結(jié)合HDR和蟻群算法的邊緣檢測算法運(yùn)行時間均超過4 s,分區(qū)域的自適應(yīng)canny邊緣檢測、sobel、高通濾波canny等算法運(yùn)行時間小于0.1 s。結(jié)合同態(tài)濾波和canny算子的邊緣檢測算法運(yùn)行時間小于0.3 s。
綜合邊緣提取效果和運(yùn)行時間,筆者采用結(jié)合同態(tài)濾波和canny算子的邊緣檢測算法提取邊緣。
根據(jù)齒線的形狀可知,使用斜率篩選邊緣最可靠。筆者采用改進(jìn)的擊中擊不中變換算法實(shí)現(xiàn)斜率篩選,提取出需要的齒線邊緣。首先構(gòu)建結(jié)構(gòu)元素,遍歷圖像,將與結(jié)構(gòu)元素相同的部分清除,保留不相同的部分。這樣可以斷開與齒形邊緣相連接的冗余邊緣。改變結(jié)構(gòu)元素,可以將圖像中不需要的橫線和豎線去除,僅保留齒線部分邊緣。形態(tài)學(xué)處理流程如圖9所示。
圖9 形態(tài)學(xué)處理流程圖
形態(tài)學(xué)處理中的幾個關(guān)鍵步驟結(jié)果如圖10所示。
圖10 形態(tài)學(xué)處理效果圖
由圖10可知:筆者所提形態(tài)學(xué)算法對于邊緣提取的缺陷有良好的補(bǔ)償作用。
筆者在平面直角坐標(biāo)系下對曲線進(jìn)行擬合,將提取的一條邊緣上點(diǎn)的橫縱坐標(biāo)進(jìn)行如下變換,使其轉(zhuǎn)換到以工件軸線為y軸,以齒輪圖像上端面為x軸的坐標(biāo)系上,并對工件傾斜角進(jìn)行補(bǔ)償。由于MATLAB圖像坐標(biāo)系與平面直角坐標(biāo)系相反,坐標(biāo)系原點(diǎn)在圖像中對應(yīng)的坐標(biāo)(y0,x0)在平面直角坐標(biāo)系對應(yīng)的坐標(biāo)就是(x0,y0),未發(fā)生傾斜時的坐標(biāo)關(guān)系可表示為:
妙用幾何直觀,使學(xué)生在類比溝通中明了算理。如設(shè)計鞏固練習(xí)題,讓學(xué)生運(yùn)用建立的幾何直觀,掌握同類問題的解題方法。
xreal1=y_img-x0
yreal1=x_img-y0
(10)
式中:x_img—一條邊緣上點(diǎn)的橫坐標(biāo);y_img—一條邊緣上點(diǎn)的縱坐標(biāo);(xreal1,yreal1)—工件像素點(diǎn)在平面直角坐標(biāo)系中的坐標(biāo)。
傾斜矯正后的坐標(biāo)與(xreal1,yreal1)的關(guān)系可表示為:
xreal2=xreal1×cos(θrotate)-
yreal1×sin(θrotate)+x0
yreal2=xreal1×sin(θrotate)+
yreal1×cos(θrotate)+y0
(11)
式中:θrotate—工件傾斜的角度;(xreal2,yreal2)—傾斜矯正后的坐標(biāo)。
尋找各條邊緣在圖像中間區(qū)域的橫坐標(biāo),設(shè)最右邊緣解析式中的n為1,以該橫坐標(biāo)的大小對邊緣排序。選擇最長的邊緣,利用MATLAB集成的fit函數(shù)進(jìn)行擬合。設(shè)第n條齒線在y=0時的橫坐標(biāo)為xn,在一定條件下,xn的范圍可表示為:
(12)
擬合程序流程如圖11所示。
圖11 擬合算法流程圖
受邊緣提取精度影響,單根曲線擬合出來的解析式可能有誤差,應(yīng)該將此解析式的參數(shù)代入式(5),得出其他曲線的坐標(biāo)(xn,yn),然后計算圖像橫坐標(biāo)xreal2與xn的方差。在極端情況下,計算得到的n會比實(shí)際值大1,需要事先對方差設(shè)置閾值。當(dāng)方差大于該閾值時,將n減1,可以得出正確的β。
一條齒線邊緣的曲線擬合效果圖如圖12所示。
圖12 一條邊緣的擬合效果圖
以0.000 29弧度為間隔改變式(5)中β的值,利用式(5)得出坐標(biāo)值,再求其與實(shí)際坐標(biāo)的方差,使方差最小,求出最優(yōu)β。
為了驗(yàn)證該方法的可靠性,筆者進(jìn)行了實(shí)驗(yàn)驗(yàn)證。被測齒輪為2個1.5模數(shù)45°左旋斜齒輪、2個1.25模數(shù)19°左旋斜齒輪和1個1.5模數(shù)45°右旋斜齒輪(銹蝕)。不同廠家螺旋角的技術(shù)指標(biāo)略有不同。筆者所提方法測量結(jié)果和設(shè)計值的對比如表2所示。
表2 斜齒輪螺旋角測量結(jié)果
基于該文平臺,對于45°斜齒輪,文獻(xiàn)[8]算法的測量結(jié)果是44.100 6°。該文方法的相對誤差相對于文獻(xiàn)[8]降低了1.74%。根據(jù)文獻(xiàn)[1]的數(shù)據(jù),該文方法的平均相對誤差降低了0.56%。萬能角度尺的精度為2′或5′,該文方法的檢測精度接近萬能角度尺。
與使用普通工業(yè)相機(jī)相對比,近距離測量45°斜齒輪時,由于難以精確補(bǔ)償視差,中間位置視差較小的齒線測得螺旋角的相對誤差達(dá)到2.7%,兩側(cè)視差較大位置齒線測得的螺旋角誤差達(dá)到了5.01%。該文方法采用雙遠(yuǎn)心鏡頭將相對誤差降低了2%以上。
該文算法的總運(yùn)行時間約1 s,相對于文獻(xiàn)[7],檢測時間減少了約7 s,相對于萬能角度尺法檢測時間減少了約17 s,可以滿足圖1所示在線測量系統(tǒng)的需要。
該文方法的精度對比接觸式測量還有一定的差距,導(dǎo)致誤差的原因主要有如下4個方面:
(1)測量系統(tǒng)裝配誤差;
(2)圖像傾斜矯正的誤差[16];
(3)齒面缺陷和污漬。齒面缺陷和污漬導(dǎo)致部分齒線的邊緣斷開,無法參與后面的擬合過程。提取的部分齒線邊緣存在異常點(diǎn),手動將其剔除后,單條邊緣的測量誤差平均降低了約0.02°;
(4)齒輪的倒角。齒輪倒角的邊緣不在齒頂圓的圓柱面上。在沒有倒角的斜齒輪上,檢測精度比有倒角的齒輪檢測精度略高。以45°斜齒輪為例,去除部分邊緣中的倒角后,單條邊緣測量誤差平均降低了約0.1°。在沒有倒角的斜齒輪上,擬合公式中的θ0參數(shù)可以通過角點(diǎn)檢測算法提前測量得出,可以減少擬合算法的復(fù)雜度。該文算法更適合測量沒有倒角的斜齒輪。
筆者通過MATLAB仿真,驗(yàn)證了斜齒輪側(cè)面齒線形狀的唯一性,統(tǒng)計結(jié)構(gòu)元素數(shù)量得出了斜齒輪旋向,利用結(jié)合同態(tài)濾波的canny算子提取了齒輪側(cè)面邊緣;再使用改進(jìn)的擊中擊不中變換算法對邊緣進(jìn)行了篩選,得到了齒線的邊緣;最后,利用曲線擬合的方式得出了螺旋角的值。
研究結(jié)果表明:
(1)所提算法的測量系統(tǒng)結(jié)合了斜齒輪端面在線測量系統(tǒng),并在其基礎(chǔ)上進(jìn)行了改進(jìn),能夠在測量齒輪的齒數(shù)、齒頂圓直徑、分度圓直徑等參數(shù)的同時,測量斜齒輪的螺旋角和旋向,切合工業(yè)生產(chǎn)環(huán)境;
(2)與前人的研究相比,該文所提方法檢測精度較高、檢測速度較快,測量精度接近萬能角度尺法。該文所提圖像處理算法可以有效改善光照、齒面缺陷等對斜齒輪邊緣提取的不利影響。并且,前人的研究大多無法實(shí)現(xiàn)在線測量,而該文方法可以較好地實(shí)現(xiàn)在線測量;
(3)該文方法在精度上還不能完全取代傳統(tǒng)的接觸式測量方法,但在速度上較傳統(tǒng)方法有較大優(yōu)勢,可以應(yīng)用在斜齒輪制造和裝配工序中初步的精度測量和自動化分揀等部分。
在后續(xù)的研究當(dāng)中,筆者準(zhǔn)備減小邊緣提取算法對光源的依賴性,爭取在單一光源下就能取得良好的邊緣提取效果;優(yōu)化擬合算法,減小異常點(diǎn)的影響;使用C語言重新編寫程序或?qū)⒀h(huán)改寫成矩陣運(yùn)算的形式以提高運(yùn)行速度。