吳常鋮,楊德華,曹青青,費(fèi) 飛,宋天賜
(1. 東南大學(xué)儀器科學(xué)與工程學(xué)院,江蘇 南京 210096; 2. 南京航空航天大學(xué)自動(dòng)化學(xué)院,江蘇 南京 211106;3. 南京工業(yè)職業(yè)技術(shù)大學(xué)航空工程學(xué)院,江蘇 南京 210023)
微小位移的檢測(cè)是精密儀器系統(tǒng)的重要組成部分,高精度的微小位移的檢測(cè)是精密系統(tǒng)可靠、穩(wěn)定運(yùn)行的重要保證。在角位移測(cè)量中,編碼器是最常用的傳感器之一,如伺服電機(jī)中通常安裝有增量式光電/霍爾編碼器。為了實(shí)現(xiàn)絕對(duì)角位移測(cè)量,文獻(xiàn)[1]提出了基于偽隨機(jī)數(shù)的光電軸角編碼器。除了編碼器外,目前機(jī)器視覺(jué)[2-4]、慣性傳感器[5-8]等也大量應(yīng)用于各類角度測(cè)量系統(tǒng)中。另外,也有學(xué)者將光纖傳感器、扭力彈簧、接近開(kāi)關(guān)等用于角位移的測(cè)量。如文獻(xiàn)[9]基于Sagnac干涉儀設(shè)計(jì)了一種旋轉(zhuǎn)角度測(cè)量系統(tǒng),測(cè)量誤差優(yōu)于1%。文獻(xiàn)[10]提出了一種基于扭力彈簧和應(yīng)變片的關(guān)節(jié)旋轉(zhuǎn)角度測(cè)量方法。文獻(xiàn)[11]采用接近開(kāi)關(guān)配合PLC構(gòu)建了馬達(dá)旋轉(zhuǎn)角度及速測(cè)測(cè)量系統(tǒng)。
現(xiàn)有眾多角位移測(cè)量方法可以分為接觸式測(cè)量和非接觸式測(cè)量。其中,非接觸式測(cè)量方法可在不干擾旋轉(zhuǎn)體運(yùn)動(dòng)的情況下實(shí)現(xiàn)角度測(cè)量,這類方法在精密機(jī)械的智能化改造中有重要的應(yīng)用,它可以在不拆卸機(jī)構(gòu)和添加機(jī)械連接件的情況下實(shí)現(xiàn)轉(zhuǎn)角的精密測(cè)量。非接觸式角度測(cè)量中,視覺(jué)是最常見(jiàn)的一種方法。文獻(xiàn)[12]提出一種基于SIFT特征計(jì)算物體旋轉(zhuǎn)角度測(cè)量方法,圖像畸變不大時(shí),該方法的測(cè)量誤差在3°以內(nèi)。文獻(xiàn)[13]提出了基于ORB的快速角度測(cè)量方法,能夠?qū)Σ煌叨?、旋轉(zhuǎn)、遮擋的目標(biāo)進(jìn)行角度測(cè)量,誤差在0. 3°左右。文獻(xiàn)[14]提出了一種改進(jìn)的LSD方法并將其用于旋轉(zhuǎn)角度檢測(cè),該方法通過(guò)取消圖像縮放、增加梯度大小閾值和減少對(duì)齊點(diǎn)密度閾值來(lái)降低圖像檢測(cè)中非連續(xù)線段和錯(cuò)誤線段的發(fā)生概率。
上述現(xiàn)有基于視覺(jué)的旋轉(zhuǎn)角度檢測(cè)方法,雖然都能較好地實(shí)現(xiàn)物體角位移的測(cè)量,但是都需要在被測(cè)對(duì)象的旋轉(zhuǎn)軸方向上放置攝像頭來(lái)獲取圖像信息。因此,這些方法不適用于串聯(lián)桿件或兩端連有其他部件且無(wú)法在其旋轉(zhuǎn)軸線上布設(shè)攝像頭的桿件的旋轉(zhuǎn)角度測(cè)量。本文針對(duì)這一問(wèn)題,提出了一種基于視覺(jué)和最大長(zhǎng)度序列的角度測(cè)量方法并進(jìn)行了相關(guān)實(shí)驗(yàn)測(cè)試。該方法通過(guò)在柱狀旋轉(zhuǎn)體表面粘貼視覺(jué)靶標(biāo),利用攝像頭從側(cè)面獲取旋轉(zhuǎn)體周向的圖像信息來(lái)實(shí)現(xiàn)角位移的測(cè)量。
最大長(zhǎng)度序列又叫偽隨機(jī)序列、偽噪聲碼或偽隨機(jī)碼,它是由帶線性反饋的移存器產(chǎn)生的周期最長(zhǎng)的一種序列。對(duì)于n位二進(jìn)制偽隨機(jī)數(shù)的最大長(zhǎng)度序列,其總長(zhǎng)為MLS=2n–1位[15-16]。由于序列中,任意n個(gè)連續(xù)的二進(jìn)制位組成的編碼是唯一的,因此該序列可用于定位。
本文構(gòu)造出一個(gè)n=7最大長(zhǎng)度序列,并根據(jù)序列設(shè)計(jì)靶標(biāo)如圖1所示。設(shè)計(jì)的靶標(biāo)以黑色為背景,長(zhǎng)短不同的兩種白色條紋分別代表“1”和“0”,白色條紋的寬度為2 mm,相鄰的兩個(gè)白色條紋間隔2 mm。
圖1 靶標(biāo)
如圖2所示,將靶標(biāo)粘貼在被測(cè)平臺(tái)上,同時(shí)在被測(cè)平臺(tái)上方放置攝像頭。平臺(tái)移動(dòng)過(guò)程中,攝像頭拍攝靶標(biāo)照片,對(duì)圖像進(jìn)行處理即可得到平臺(tái)的位移信息。
圖2 直線位移測(cè)量平臺(tái)
假設(shè)獲取到的靶標(biāo)圖像為M×N的圖像,則圖像的像素值矩陣可表示為:
其中f(i,j)代表圖中第i行第j列像素點(diǎn)的像素值。
對(duì)圖像進(jìn)行二值化處理后,采用下式計(jì)算圖像中每列像素點(diǎn)的像素值均值,即可將二維的圖像轉(zhuǎn)換為一維的曲線:
利用列像素均值曲線識(shí)別出圖像中的白色條碼,并判別白色條碼在靶標(biāo)中的位置,即可得到被測(cè)對(duì)象的絕對(duì)位置。圖3分別為靶標(biāo)二值化圖像及其對(duì)應(yīng)的列像素均值曲線。
圖3 靶標(biāo)二值化圖像及其對(duì)應(yīng)的列像素均值曲線
1.2.1 相位檢測(cè)
由圖3(b)可知,列像素均值曲線是以靶標(biāo)中黑、白條紋的寬度之和為周期的方波。采用下式對(duì)該曲線進(jìn)行擬合,可獲得曲線的相位信息:
式中:G——灰度;
φ——相位;
A——幅值;
B——直流分量。
圖4為圖3(b)對(duì)應(yīng)的正弦擬合曲線,該曲線的相位 φ可提供精密的位移信息。
圖4 列像素均值曲線的正弦擬合曲線
1.2.2 序列位置檢測(cè)
靶標(biāo)圖像中連續(xù)7個(gè)白色條紋構(gòu)成一個(gè)編碼,該編碼在整個(gè)靶標(biāo)中的位置以0.5T的誤差決定了平臺(tái)當(dāng)前的位移。檢測(cè)圖像中編碼在整個(gè)靶標(biāo)中的位置主要包括以下兩個(gè)步驟:
1)生成編碼
檢測(cè)靶標(biāo)的列像素均值曲線中上升沿和下降沿的位置,圖像中第i個(gè)上升沿和第i個(gè)下降沿之間的曲線對(duì)應(yīng)于第i個(gè)白色條紋;按順序計(jì)算第i個(gè)上升沿和第i個(gè)下降沿之間列像素均值曲線的均值,即計(jì)算第i個(gè)白色條紋的像素均值;以圖像中所有白色條紋的像素均值的一半作為閾值,某個(gè)白色條紋的像素均值大于該閾值,則該條紋的邏輯值為“1”,否則為“0”。將圖像中前7個(gè)條紋的邏輯值拼接在一起即可得到圖像的當(dāng)前編碼。
2)查詢編碼位置
以滑動(dòng)窗的形式將圖像的編碼與靶標(biāo)的編碼序列進(jìn)行對(duì)比,即可得到圖像編碼在靶標(biāo)序列中的位置P。
1.2.3 位移計(jì)算
根據(jù)圖像編碼在靶標(biāo)序列中的位置P和圖像編碼的相位 φ,采用下式可得到圖像在靶標(biāo)中的絕對(duì)位置:
其中T為編碼周期長(zhǎng)度,即黑白條紋的寬度之和。
進(jìn)行位移測(cè)量時(shí),分別計(jì)算測(cè)量起始點(diǎn)、終止點(diǎn)在靶標(biāo)中的絕對(duì)位置:
即可得到兩點(diǎn)間的相對(duì)位移為:
式中:P1、P2——測(cè)量起始點(diǎn)和終止點(diǎn)圖像中編碼的序列位置;
φ1和 φ2——測(cè)量起始點(diǎn)和終止點(diǎn)圖像中編碼的相位。
將靶標(biāo)粘貼在柱狀待測(cè)旋轉(zhuǎn)體的表面,利用攝像頭拍攝旋轉(zhuǎn)體運(yùn)動(dòng)過(guò)程中靶標(biāo)的圖像,計(jì)算靶標(biāo)的位移后即可采用下式求得旋轉(zhuǎn)體的旋轉(zhuǎn)角度:
式中:x——靶標(biāo)的位移;
R——旋轉(zhuǎn)體的半徑。
由于靶標(biāo)覆蓋在旋轉(zhuǎn)體表面時(shí),其首尾連接處無(wú)法形成完整的靶標(biāo)條紋,因此無(wú)法實(shí)現(xiàn)360°轉(zhuǎn)角的測(cè)量。
為了實(shí)現(xiàn)360°轉(zhuǎn)角的測(cè)量,本文采用雙靶標(biāo)構(gòu)建了旋轉(zhuǎn)角度測(cè)量實(shí)驗(yàn)平臺(tái)。將兩個(gè)完全相同的靶標(biāo)粘貼在旋轉(zhuǎn)平臺(tái)上,調(diào)整兩個(gè)靶標(biāo)的相對(duì)旋轉(zhuǎn)位置,使得上靶標(biāo)的首尾連接處和下靶標(biāo)的首尾連接處不會(huì)同時(shí)出現(xiàn)在攝像頭的視場(chǎng)中。選取上靶標(biāo)首尾連接處和下靶標(biāo)首尾連接處均不出現(xiàn)在攝像頭視場(chǎng)中的任一位置作為起始點(diǎn),記錄此時(shí)攝像頭視場(chǎng)中兩個(gè)靶標(biāo)的初始位置。測(cè)量過(guò)程中,主要以下靶標(biāo)的圖像信息計(jì)算旋轉(zhuǎn)角度,當(dāng)下靶標(biāo)首尾連接處出現(xiàn)在攝像頭視場(chǎng)中時(shí),則采用上靶標(biāo)進(jìn)行角度測(cè)量。由于記錄了測(cè)量起始位置時(shí)上下兩個(gè)靶標(biāo)的相對(duì)位置,因此利用上下靶標(biāo)的圖像計(jì)算出來(lái)的角度信息可以進(jìn)行一一對(duì)應(yīng),從而實(shí)現(xiàn)了360°旋轉(zhuǎn)角度的測(cè)量。
由于靶標(biāo)粘貼在柱狀體表面后,攝像頭拍攝到的靶標(biāo)圖像存在變形,白色條碼由攝像頭視場(chǎng)中間向左右兩邊按照一定規(guī)律逐漸變窄,欲獲取正常的編碼信息,即靶標(biāo)等長(zhǎng),且間距相等,需對(duì)圖像進(jìn)行拉伸鋪平操作。
如圖5所示,當(dāng)攝像頭視場(chǎng)左右中心線正對(duì)著被測(cè)旋轉(zhuǎn)體中心時(shí),整個(gè)靶標(biāo)在圖像中的長(zhǎng)度為2R,但實(shí)際長(zhǎng)度為πR。對(duì)于靶標(biāo)中的任意一點(diǎn),記該點(diǎn)在圖像中距離o點(diǎn)的長(zhǎng)度為x,距離o點(diǎn)的實(shí)際長(zhǎng)度為y,則有:
圖5 圖像拉伸分析示意圖
式中:R——旋轉(zhuǎn)體的半徑;
θ——co和cp的夾角;
c——旋轉(zhuǎn)體截面的圓心。
由式(9)、式(10)可得:
其中,< >為四舍五入運(yùn)算。在圖像中,x對(duì)應(yīng)于拉伸前圖像的像素橫坐標(biāo),y對(duì)應(yīng)于拉伸后圖像的像素橫坐標(biāo),因此可采用式(11)對(duì)圖像進(jìn)行拉伸變換。圖6和圖7分別為拉伸變換前后的靶標(biāo)圖像。
圖6 拉伸前的圖片
圖7 拉伸后的圖片
如圖7所示,拉伸變換后的圖像中存在斷裂的情況,這些斷裂帶破壞了完整的條碼結(jié)構(gòu),此時(shí)的圖像無(wú)法用于位移計(jì)算。本文采用最鄰近插值法對(duì)拉伸變換后的圖像進(jìn)行修復(fù)。
由式(11)可得拉伸前后圖片的像素橫坐標(biāo)關(guān)系為:
因此,根據(jù)最鄰近插值原理,將圖7中像素點(diǎn)(py,qj)的像素值替換為圖6中像素點(diǎn) (px,qj)的像素值即可完成圖像修復(fù)。插值修復(fù)后的圖像如圖8所示。
進(jìn)行角位移測(cè)量時(shí),攝像頭拍攝測(cè)量起始點(diǎn)和終止點(diǎn)的靶標(biāo)圖像,對(duì)圖像進(jìn)行拉伸變換、插值修復(fù)后即可采用2中所述方法計(jì)算靶標(biāo)的直線位移量,結(jié)合式(7)、式(8),可得角位移為:
為驗(yàn)證角度測(cè)量系統(tǒng)的有效性,采用圖9所示的實(shí)驗(yàn)平臺(tái)進(jìn)行了實(shí)驗(yàn)研究。該實(shí)驗(yàn)平臺(tái)選用大恒光電的GCD-0120800M電控旋轉(zhuǎn)臺(tái)作為旋轉(zhuǎn)體,該旋轉(zhuǎn)臺(tái)的直徑為80 mm,采用步進(jìn)電機(jī)控制旋轉(zhuǎn)角度,旋轉(zhuǎn)角度分辨率為 0.00067°;選用具有200萬(wàn)像素的U2901型攝像頭進(jìn)行靶標(biāo)圖像的捕捉。實(shí)驗(yàn)時(shí),將靶標(biāo)粘貼在旋轉(zhuǎn)臺(tái)的外側(cè),攝像頭正對(duì)著靶標(biāo)捕獲圖像。
圖9 角度測(cè)量系統(tǒng)實(shí)驗(yàn)平臺(tái)
控制旋轉(zhuǎn)臺(tái)在0°~360°范圍內(nèi),以30°為間隔進(jìn)行運(yùn)動(dòng),在此過(guò)程中攝像頭拍攝靶標(biāo)圖像并進(jìn)行角度計(jì)算。忽略旋轉(zhuǎn)平臺(tái)的運(yùn)動(dòng)誤差,得到如圖10所示的平臺(tái)在正、反行程運(yùn)動(dòng)3次的實(shí)驗(yàn)結(jié)果。采用正弦擬合和線性擬合對(duì)測(cè)量結(jié)果進(jìn)行標(biāo)定校正,校正后的測(cè)量誤差如圖11所示。
圖10 行程測(cè)試實(shí)驗(yàn)結(jié)果
圖11 標(biāo)定后的誤差曲線
重復(fù)3.1中所述的實(shí)驗(yàn),得到校正后的實(shí)驗(yàn)結(jié)果如表1所示。
表1 角度測(cè)量實(shí)驗(yàn)數(shù)據(jù)
3.2.1 非線性誤差
依據(jù)表1中的實(shí)驗(yàn)結(jié)果,采用式(14)得到角度測(cè)量的非線性誤差ξL為0.027%。
式中:YFS——滿量程輸出;
ΔYL,max——各個(gè)校準(zhǔn)點(diǎn)上的實(shí)際平均輸出與理論輸出的最大差值。
3.2.2 遲滯誤差
采用式(15)得到角度測(cè)量的遲滯誤差ξH為0.048%。
其中ΔYH,max為正行程和反行程平均校準(zhǔn)特性之間的最大差值。
3.2.3 重復(fù)性誤差
采用式(16),取置信概率系數(shù)為3,得到角度測(cè)量的重復(fù)性誤差ξR為0.016%。
式中:m——校準(zhǔn)點(diǎn)個(gè)數(shù);
SI,i和SD,i——第i個(gè)校準(zhǔn)點(diǎn)上正行程和反行程校準(zhǔn)數(shù)據(jù)的標(biāo)準(zhǔn)偏差。
3.2.4 總誤差
采用式(17)得到角度測(cè)量的總誤差A(yù)為0.057%。
3.2.5 穩(wěn)定性
轉(zhuǎn)臺(tái)靜止?fàn)顟B(tài)下,每間隔5 s記錄一次靶標(biāo)圖像,共記錄50次,得到角度測(cè)量結(jié)果如圖12所示。該實(shí)驗(yàn)中測(cè)量誤差的均方差為0.00013°,誤差的絕對(duì)值均值為 0.00011°。
圖12 穩(wěn)定性測(cè)試實(shí)驗(yàn)結(jié)果
3.2.6 分辨率
控制轉(zhuǎn)臺(tái)在 0°~1°范圍內(nèi),以 0.1°為間隔進(jìn)行運(yùn)動(dòng),得到實(shí)驗(yàn)結(jié)果如圖13所示。該實(shí)驗(yàn)中測(cè)量誤差的均方根差為0.015°,誤差的絕對(duì)值均值為0.011°。該結(jié)果表明,角度測(cè)量分辨率優(yōu)于0.1°。
圖13 分辨率測(cè)試實(shí)驗(yàn)結(jié)果
本文構(gòu)建了基于視覺(jué)和最大長(zhǎng)度序列的旋轉(zhuǎn)角度測(cè)量系統(tǒng),采用雙靶標(biāo)方案實(shí)現(xiàn)了柱狀體0°~360°旋轉(zhuǎn)角度的非接觸式測(cè)量。該系統(tǒng)利用攝像頭獲取粘貼在柱狀體側(cè)面的靶標(biāo)圖像,經(jīng)過(guò)圖像拉伸變換、靶標(biāo)序列及相位識(shí)別后即可實(shí)現(xiàn)角度的測(cè)量。測(cè)試結(jié)果表明,該系統(tǒng)的非線性誤差為0.027% FS、遲滯誤差為0.048% FS、重復(fù)性誤差為0.016% FS、測(cè)量總誤差為0.057% FS、分辨率優(yōu)于0.1°。該系統(tǒng)可以在不拆卸機(jī)構(gòu)和添加機(jī)械連接件的情況下實(shí)現(xiàn)旋轉(zhuǎn)體轉(zhuǎn)角的精密測(cè)量,在精密機(jī)械的智能化改造中有一定的應(yīng)用價(jià)值。