專利名稱:一種線陣ccd圖像掃描方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種線陣CXD圖像掃描方法,屬于C⑶成像技術(shù)領(lǐng)域。
背景技術(shù):
線陣CCD因其結(jié)構(gòu)簡(jiǎn)單,成本較低而得到廣泛應(yīng)用。線陣CCD的單排感光單元的數(shù)目可以做得很多,在同等測(cè)量精度的前提下,其測(cè)量范圍可以做的較大,并且由于線陣CCD實(shí)時(shí)傳輸光電變換信號(hào)和自掃描速度快、頻率響應(yīng)高,能夠?qū)崿F(xiàn)動(dòng)態(tài)測(cè)量,并能在低照度下工作,所以線陣CCD廣泛地應(yīng)用在產(chǎn)品尺寸測(cè)量和分類、非接觸尺寸測(cè)量、條形碼等許多領(lǐng)域。
現(xiàn)有技術(shù)中,實(shí)現(xiàn)掃描圖像質(zhì)量最佳的線陣CCD圖像掃描控制技術(shù)分為兩類有基于外同步控制方法和內(nèi)同步控制方法?;谕馔娇刂品椒ㄖ饕峭ㄟ^實(shí)時(shí)調(diào)節(jié)控制信號(hào)的光積分時(shí)間來達(dá)到與外部事件同步,同時(shí)控制曝光時(shí)間使或獲取到的圖像清晰,其一般實(shí)現(xiàn)途徑是通過FPGA或ARM等硬件實(shí)現(xiàn)線陣相機(jī)的外部同步控制,根據(jù)進(jìn)給平臺(tái)的運(yùn)動(dòng)速度實(shí)時(shí)調(diào)整線陣相機(jī)的采樣頻率,保證相機(jī)的線速度與被測(cè)物體的線速度一致。CN200620125875公開了一種外同步線陣C C D驅(qū)動(dòng)控制裝置,包括高速單片機(jī),高速單片機(jī)與接外部測(cè)速單元的通訊接口芯片連接,高速單片機(jī)經(jīng)電平轉(zhuǎn)換芯片與C C D芯片連接,C C D芯片與向外部處理系統(tǒng)輸出像素點(diǎn)電壓的高速運(yùn)放連接,高速單片機(jī)與向外部處理系統(tǒng)輸出像素點(diǎn)同步信號(hào)和行同步信號(hào)的電平轉(zhuǎn)換芯片連接。基于內(nèi)同步的控制方法主要是根據(jù)相機(jī)的設(shè)置的固定頻率,鏡頭焦距,線陣CCD的像素尺寸以及鏡頭的放大倍率等參數(shù)計(jì)算被測(cè)物體理論上應(yīng)該運(yùn)動(dòng)的距離和速度,從而實(shí)現(xiàn)電機(jī)轉(zhuǎn)速和拍攝頻率之間的同步,從而保證圖像穩(wěn)定、清晰、不變形及不失真?,F(xiàn)有技術(shù)存在的問題與缺點(diǎn)如下
基于外同步事件的控制方法是通過硬件實(shí)現(xiàn)的,成本較高,通用性較差,例如針對(duì)不同的廠商生產(chǎn)的線陣CCD和不同的數(shù)據(jù)傳輸協(xié)議,必須設(shè)計(jì)專用的硬件及其控制方法,此外,外界系統(tǒng)的干擾對(duì)其控制效果影響較大?;趦?nèi)部事件的控制方法由于缺少運(yùn)動(dòng)規(guī)劃,只考慮了理想狀態(tài)下線陣CXD的線速度與被測(cè)物體線速度之間的匹配關(guān)系,忽略了電機(jī)在不同控制模式下(S型曲線控制模式、T型曲線控制模式等)的加、減速過程,從而導(dǎo)致了相機(jī)在開始拍攝階段和停止拍攝前的照片發(fā)生拉伸或壓縮變形甚至是照片模糊等現(xiàn)象,增加了所獲取照片在后續(xù)圖像處理過程中的難度和圖像配準(zhǔn)的難度以及缺陷識(shí)別算法的難度,降低了系統(tǒng)的檢測(cè)效率。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提供一種線陣CXD圖像掃描方法,包括步驟I :對(duì)線陣CCD成像系統(tǒng)的掃描方向和非掃描方向進(jìn)行運(yùn)動(dòng)規(guī)劃與掃描路徑規(guī)劃;步驟2 :對(duì)線陣CCD成像系統(tǒng)的掃描與控制指令進(jìn)行編碼。進(jìn)一步,所述步驟I進(jìn)一步包括步驟11 :根據(jù)運(yùn)動(dòng)控制器的控制模式將待測(cè)物體的運(yùn)動(dòng)開始或完成過程劃分為加速運(yùn)動(dòng)階段SI、勻速運(yùn)動(dòng)階段S和減速運(yùn)動(dòng)階段S3三個(gè)部分;步驟12 :根據(jù)線陣CCD成像系統(tǒng)的有效視野范圍(FOV)計(jì)算非掃描方向上圖像重合度的大小,并根據(jù)運(yùn)動(dòng)平臺(tái)的定位精度進(jìn)行間隙補(bǔ)償;步驟13 :根據(jù)圖像處理精度、和/或機(jī)械運(yùn)動(dòng)平臺(tái)誤差確定掃描路徑規(guī)劃方式;步驟14 :運(yùn)動(dòng)規(guī)劃位置求解。一個(gè)可選的實(shí)施方式中,所述勻速運(yùn)動(dòng)階段S包括線陣CXD掃描開始預(yù)留階段Dl和正常掃描階段S2以及掃描完成前緩沖階段D2。更進(jìn)一步,所述步驟13中,若機(jī)械運(yùn)動(dòng)控制平臺(tái)具有間隙誤差,則使用單向掃描方式;若機(jī)械運(yùn)動(dòng)控制平臺(tái)不存在間隙誤差,則采用雙向掃描的路徑規(guī)劃方式。在一個(gè)優(yōu)選的實(shí)施方式中,所述步驟14具體為設(shè)待測(cè)物體的長(zhǎng)度、寬度分別為Width,Height,線陣CXD成像系統(tǒng)標(biāo)定后對(duì)物體的分辨率為Rtjbj,線陣CXD的分辨率為Res,線陣CCD的掃描頻率為f,相鄰兩次線陣CCD掃描重合度為Λ X,線陣CCD成像系統(tǒng)掃描速度為Vx,非掃描方向速度為Vy,其余待求量分別為Ι^α2α3、 4、 5、 6,計(jì)算出線陣CCD的視野寬度F0V = Robj X Res ;PCB的運(yùn)動(dòng)速度VX = Robj X f ;單次掃描的橫移(非掃描方向) 寬度Sy = FOV - Δχ ;PCB板的掃描次數(shù)N = (Width + L6)/Sy + 0.5,N值采用四舍五入取整;掃描起始點(diǎn)D在相對(duì)坐標(biāo)系X1AY1中的坐#Dx,Dy :DX = S1 + D1 + L3 = Vx2/2ax +D2 + L3;其中ax為待測(cè)物體在掃描方向上的加速度A為加速運(yùn)動(dòng)階段緩沖區(qū)的大小,D1為從勻加速到勻速后的一段緩沖區(qū)的大小,具體可根據(jù)測(cè)試情況選取經(jīng)驗(yàn)值;L3為待測(cè)物體坐標(biāo)系零點(diǎn)到相對(duì)坐標(biāo)系X1Ay中yi軸的距離;Dy = L6 - L4 ; Dy的大小為機(jī)床初始調(diào)試預(yù)設(shè)的值;PCB板掃描區(qū)段的位移S2 :若S2 > Height,S2= Height ;若S2〈Height,S2 =SxMax ;其中,SxMax為機(jī)械運(yùn)動(dòng)平臺(tái)在X軸方向最大工作距離;掃描終止點(diǎn)E的坐標(biāo)是Ex和Eyi EX = Dx + S2 + Dx = 2DX + S2, Eyi = Dy + Sy X Ni, i = I Nmax,其中 Ni 為掃描點(diǎn)的編號(hào),Nmax為掃描點(diǎn)的總數(shù)。更進(jìn)一步,所述步驟2所述對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼的步驟中,采用XML語言對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼。所述掃描控制指令包括運(yùn)動(dòng)控制指令和采集系統(tǒng)的控制指令。所述運(yùn)動(dòng)控制指令至少包括①目標(biāo)位置點(diǎn)的坐標(biāo)(Tx, Ty) 各軸運(yùn)動(dòng)速度Vx, Vy,聯(lián)合運(yùn)動(dòng)速度Vxy ;③各軸加速度AccTx、AccTy,聯(lián)合加速度AccTxy。所述線陣CXD圖像采集系統(tǒng)的控制指令包括①線陣CXD開始位置坐標(biāo)S (Sx, Sy);②線陣CXD停止采集位置坐標(biāo)E (Ex, Ey);③線陣CXD的圖像采集頻率f。所述步驟2所述對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼的步驟中,將電機(jī)控制指令、待測(cè)物體尺寸信息和線陣CCD成像系統(tǒng)參數(shù)信息以及線陣CCD圖像采集與控制指令按照掃描列的形式進(jìn)行封裝。本發(fā)明提供的技術(shù)方案簡(jiǎn)單實(shí)用,實(shí)現(xiàn)方便,通用性強(qiáng)??梢院芎媒鉀Q在被測(cè)物體運(yùn)動(dòng)開始和運(yùn)動(dòng)完成階段由于電機(jī)的加、減速過程導(dǎo)致的圖像出現(xiàn)拉伸、壓縮和模糊等扭曲變形現(xiàn)象。降低了基于線陣CCD成像系統(tǒng)的自動(dòng)光學(xué)檢測(cè)(AOI)系統(tǒng)開發(fā)效率和開發(fā)成本。
圖I是本發(fā)明線陣CCD圖像采集系統(tǒng)掃描與運(yùn)動(dòng)控制規(guī)劃流程 圖2是本發(fā)明線陣CCD成像系統(tǒng)圖像掃描方向的運(yùn)動(dòng)規(guī)劃示意圖;圖3是本發(fā)明線陣CCD成像系統(tǒng)圖像非掃描方向的運(yùn)動(dòng)規(guī)劃示意 圖4是本發(fā)明單向掃描路徑規(guī)劃示意 圖5是本發(fā)明單向掃描路徑規(guī)劃關(guān)鍵點(diǎn)的坐標(biāo)方位與移動(dòng)順序 圖6是本發(fā)明雙向掃描路徑規(guī)劃意 圖7是本發(fā)明雙向掃描路徑規(guī)劃關(guān)鍵點(diǎn)的坐標(biāo)方位與移動(dòng)順序 圖8是本發(fā)明關(guān)鍵定位點(diǎn)及其對(duì)應(yīng)坐標(biāo)系之間的映射關(guān)系 圖9是本發(fā)明PCB板掃描與控制指令坐標(biāo)位置關(guān)系示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步描述。附圖I為線陣CXD圖像采集系統(tǒng)掃描與運(yùn)動(dòng)控制規(guī)劃流程圖,該方法適用于基于線陣CCD成像系統(tǒng)的自動(dòng)光學(xué)檢測(cè)系統(tǒng)的掃描圖像質(zhì)量最佳的掃描與控制,但該技術(shù)設(shè)計(jì)到光學(xué)系統(tǒng)、機(jī)械系統(tǒng)和它們之間基準(zhǔn)點(diǎn)相互坐標(biāo)系轉(zhuǎn)換相關(guān),因此其中任何一個(gè)參數(shù)發(fā)生改變則必須對(duì)成像系統(tǒng)進(jìn)行標(biāo)定并根據(jù)運(yùn)動(dòng)規(guī)劃算法和掃描與控制指令編碼方法生成相應(yīng)的控制指令文件。如附圖I所示,系統(tǒng)初始化之后,掃描的X,Y軸首先回到絕對(duì)零點(diǎn),而后置于相對(duì)零點(diǎn)。放板之后,工作平臺(tái)運(yùn)動(dòng)到PCB板掃描起始位置C處(調(diào)試階段,C的坐標(biāo)可以設(shè)為(0,0)),判斷掃描控制命令是否準(zhǔn)備就緒,若準(zhǔn)備就緒,則從緩沖區(qū)提取指令并開始掃描;若未準(zhǔn)備就緒,則解析掃描與運(yùn)動(dòng)控制規(guī)劃指令到指令緩沖區(qū)中。掃描結(jié)束之后,判斷缺陷識(shí)別是否完成,若缺陷識(shí)別已完成,則進(jìn)一步判斷對(duì)該批PCB板的所有掃描是否都已完成,若完成則結(jié)束整個(gè)處理;若缺陷識(shí)別未完成,則繼續(xù)等待缺陷識(shí)別處理的完成,若未完成所有掃描,則將掃描的X,Y軸回歸到相對(duì)零點(diǎn),繼續(xù)下一次處理。在運(yùn)動(dòng)規(guī)劃設(shè)置上,首先分別設(shè)置X,Y軸運(yùn)動(dòng)、單向掃描、雙向掃描規(guī)劃,而后根據(jù)掃描與運(yùn)動(dòng)規(guī)劃以及PCB板的基本信息生成指令控制文件,在掃描控制指令未準(zhǔn)備好時(shí),解析掃描與運(yùn)動(dòng)控制規(guī)劃指令到指令緩沖區(qū)中。本發(fā)明的基于上述線陣CCD圖像采集系統(tǒng)掃描與運(yùn)動(dòng)控制規(guī)劃流程的一個(gè)優(yōu)選實(shí)施方式中,描述了一種線陣CCD圖像掃描方法,包括步驟I :對(duì)線陣CCD成像系統(tǒng)掃描方向和非掃描方向(與掃描方向垂直的方向)進(jìn)行運(yùn)動(dòng)規(guī)劃與掃描路徑規(guī)劃;步驟2、對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼。在一個(gè)非限制性的實(shí)施方式中,上述步驟I進(jìn)一步包括
步驟11:根據(jù)運(yùn)動(dòng)控制器的控制模式(如S型曲線控制模式、T型曲線控制模式等)將待測(cè)物體的運(yùn)動(dòng)開始或完成過程劃分為加速運(yùn)動(dòng)階段Si、勻速運(yùn)動(dòng)階段S和減速運(yùn)動(dòng)階段S3三個(gè)部分,其中,勻速運(yùn)動(dòng)階段S又包括線陣CXD掃描開始預(yù)留階段Dl和正常掃描階段S2以及掃描完成前緩沖階段D2,每一階段相對(duì)關(guān)系與描述如圖2示。步驟12 :根據(jù)線陣CXD成像系統(tǒng)的有效視野范圍(FOV)計(jì)算非掃描方向上圖像重合度的大小,重合度大小Ax = SOOXRtjbj Atjbj表示一個(gè)像素對(duì)應(yīng)的所拍攝物體的實(shí)際大小,單位為um。同時(shí)根據(jù)運(yùn)動(dòng)平臺(tái)的定位精度進(jìn)行間隙補(bǔ)償,假設(shè)XY運(yùn)動(dòng)平臺(tái)在X軸方向的間隙誤差為α,則當(dāng)任意相鄰兩次運(yùn)動(dòng),若兩次運(yùn)動(dòng)方向相同則不需要進(jìn)行間隙補(bǔ)償,否則需要在原始的目標(biāo)位置上加上α作為新的目標(biāo)位置;¥軸方向上的間隙補(bǔ)償與X方向的間隙補(bǔ)償相同。其示意圖和描述如附圖3所示。步驟13:根據(jù)圖像處理精度、和/或機(jī)械運(yùn)動(dòng)平臺(tái)誤差確定掃描路徑規(guī)劃方式。每塊掃描物體所需的掃描次數(shù)根據(jù)待掃描物體的尺寸和線陣CCD成像系統(tǒng)參數(shù)和運(yùn)動(dòng)規(guī)劃方法及參數(shù)計(jì)算出來,其中N = (PCBwidth+ L6)/ Sy + O. 5,PCBwidth SPCB板的寬度,L6S線陣CCD掃描起始點(diǎn)與印制電路板的左下角之間的橫向距離,Sy表示工作平臺(tái)Y軸單次橫向移動(dòng)的距離。若機(jī)械運(yùn)動(dòng)控制平臺(tái)具有間隙誤差,則建議使用單向掃描方式(如圖4所示);附圖5進(jìn)一步描述了單向掃描路徑規(guī)劃關(guān)鍵點(diǎn)的坐標(biāo)方位與移動(dòng)順序圖。采用單向掃描路徑規(guī)劃時(shí)關(guān)鍵位置點(diǎn)移動(dòng)順序?yàn)?br>
O — A — D — B — Dl — El — D2 — E2 — D3 — E3 …
實(shí)線路徑表示線陣相機(jī)掃描路徑,虛線部分表示空行程階段(即線陣相機(jī)不工作);虛 線的斜線部分均采用X、Y軸聯(lián)動(dòng)的運(yùn)動(dòng)方式,水平方向部分單軸運(yùn)動(dòng);矩形區(qū)域(PCB板)部分為線陣CCD工作區(qū)域;非線陣相機(jī)工作區(qū)域盡可能地提高運(yùn)動(dòng)速度,但需保證定位精度。
機(jī)床相對(duì)坐標(biāo)系零點(diǎn)的位置為A ( xA , );在AOI系統(tǒng)中機(jī)床最大的有效行程
isXMm-A
、Syifax ;線陣CXD中心M點(diǎn)在機(jī)床絕對(duì)坐標(biāo)系中的位置為M (xM , yM );線陣CXD調(diào)焦完成后的視野寬度(需要通過標(biāo)準(zhǔn)機(jī)器視覺模板進(jìn)行標(biāo)定)為FOV。若機(jī)械運(yùn)動(dòng)控制平臺(tái)不存在間隙誤差,建立采用雙向掃描的路徑規(guī)劃方式(如圖6所示),這樣可減少空行程的距離,顯著提高自動(dòng)光學(xué)檢測(cè)系統(tǒng)的掃描效率。附圖7示出了雙向掃描路徑規(guī)劃關(guān)鍵點(diǎn)的坐標(biāo)方位與移動(dòng)順序圖。其中,采用雙向掃描路徑規(guī)劃時(shí)關(guān)鍵位置點(diǎn)移動(dòng)順序?yàn)?br>
O — A — D — B — El — Dl — D2 — E2 — E3 — D3 …
實(shí)線路徑表示線陣相機(jī)掃描路徑,虛線部分表示空行程階段(即線陣相機(jī)不工作);虛線的斜線部分均采用X、Y軸聯(lián)動(dòng)的運(yùn)動(dòng)方式,水平方向部分單軸運(yùn)動(dòng);矩形區(qū)域(PCB板)部分為線陣CCD工作區(qū)域;非線陣相機(jī)工作區(qū)域盡可能地提高運(yùn)動(dòng)速度,但需保證定位精度。
機(jī)床相對(duì)坐標(biāo)系零點(diǎn)的位置為A (xA , yA );在AOI系統(tǒng)中機(jī)床最大的有效行程為、
;線陣CCD中心M點(diǎn)在機(jī)床絕對(duì)坐標(biāo)系中的位置為M Cxm , yM );線陣CCD調(diào)焦完成后的視野寬度(需要通過標(biāo)準(zhǔn)機(jī)器視覺模板進(jìn)行標(biāo)定)為F0V。步驟14 :運(yùn)動(dòng)規(guī)劃位置求解。設(shè)待測(cè)物體的長(zhǎng)度、寬度分別為Width、Height,線陣CCD成像系統(tǒng)標(biāo)定后對(duì)物體的分辨率為Rtjw,線陣CCD的分辨率為Res,線陣CCD的掃描頻率為f,相鄰兩次線陣CCD掃描重合度為Λ X,線陣CCD成像系統(tǒng)掃描速度為Vx,非掃描方向速度為Vy,其余待求量分別為L(zhǎng)p L2, L3, L4, L5, L6,各關(guān)鍵點(diǎn)之間的位置關(guān)系詳見附圖8。xOy為絕對(duì)坐標(biāo)系;XjA Y1為相對(duì)坐標(biāo)系;x2B y2為PCB板坐標(biāo)系;0為絕對(duì)坐標(biāo)零點(diǎn);A為
相對(duì)坐標(biāo)零點(diǎn);B為PCB板坐標(biāo)零點(diǎn);C、D為掃描起始零點(diǎn)C、D,E為掃描終止點(diǎn)E ;L1、L2為相對(duì)零點(diǎn)A與絕對(duì)零點(diǎn)O之間的Y,X坐標(biāo)軸距離;L3、L4為PCB板坐標(biāo)零點(diǎn)B與相對(duì)坐標(biāo)零點(diǎn)A之間的X,Y坐標(biāo)距離;L5、(L4 - L6)分別為掃描起始點(diǎn)D與相對(duì)坐標(biāo)零點(diǎn)A之間的X,Y坐標(biāo)距離,需根據(jù)PCB板尺寸參數(shù)和運(yùn)動(dòng)控制參數(shù)計(jì)算得知。則可求得
①線陣CCD的視野寬度F0V= Robj X Res ;
②PCB的運(yùn)動(dòng)速度VX= Robj X f ; ③單次掃描的橫移(非掃描方向)寬度Sy= FOV - Δχ ;
④PCB板的掃描次數(shù)N= (Width + L6)/Sy + 0.5 ; (N值采用四舍五入取整);
⑤掃描起始點(diǎn)D的坐標(biāo)(D是在相對(duì)坐標(biāo)系X1AYi中)Dx Dx = S1 + D1 + L3 = Vx2/2ax + D2 + L3 ;
其中ax為待測(cè)物體在掃描方向(X軸方向)上的加速度;S1為加速運(yùn)動(dòng)階段緩沖區(qū)的大小,D1為從勻加速到勻速后的一段緩沖區(qū)的大小,具體可根據(jù)測(cè)試情況選取經(jīng)驗(yàn)值;L3為待測(cè)物體坐標(biāo)系零點(diǎn)到相對(duì)坐標(biāo)系X1Ay中71軸的距離;Dy = L6 - L4,Dy的大小為機(jī)床初始調(diào)試預(yù)設(shè)的值。⑥PCB板掃描區(qū)段的位移S2
若 S2 > Height, S2= Height ;
若S2〈Height,S2 = SxMax ;SxMax為機(jī)械運(yùn)動(dòng)平臺(tái)在X軸方向(掃描方向)最大工作距離。理論上待測(cè)物體的寬度應(yīng)為掃描區(qū)段位移的大小,但由于有些運(yùn)動(dòng)平臺(tái)的有效工作形成實(shí)際上小于待檢測(cè)物體的尺寸,為此設(shè)定了相應(yīng)的保護(hù)機(jī)制,即當(dāng)待測(cè)物體的大小超過了運(yùn)動(dòng)平臺(tái)的有效工作行程時(shí),則掃描區(qū)段位移(線陣CXD工作位移)應(yīng)設(shè)置成運(yùn)動(dòng)平臺(tái)的線陣CCD圖像采集系統(tǒng)掃描的最大有效行程。⑦掃描終止點(diǎn)E的坐標(biāo)是Ex和Eyi
Ex = Dx + S2 + Dx = 2DX + S2, Eyi = Dy + Sy X Ni,其中 i = I Nfflax0為了計(jì)算方便,可將掃描規(guī)劃階段勻加速和勻減速的位移值設(shè)為相同。在上述步驟2所述對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼的步驟中,采用可擴(kuò)展標(biāo)記語言(XML)對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼,并結(jié)合線陣CCD圖像采集與控制的特點(diǎn),設(shè)計(jì)線陣CCD圖像采集系統(tǒng)的掃描與控制指令的編碼方法,將電機(jī)控制指令、待測(cè)物體尺寸信息和線陣CCD成像系統(tǒng)參數(shù)信息以及線陣CCD圖像采集與控制指令按照掃描列的形式進(jìn)行封裝。在一個(gè)非限制性的實(shí)施方式中,線陣CCD圖像采集系統(tǒng)掃描與控制指令的編碼主要包括運(yùn)動(dòng)控制指令的編碼和線陣CXD圖像采集指令的編碼,并采用可擴(kuò)展的標(biāo)記語言(XML)實(shí)現(xiàn)其嵌套式層次結(jié)構(gòu)描述。運(yùn)動(dòng)控制指令至少包括①目標(biāo)位置點(diǎn)的坐標(biāo)(Tx,Ty) 各軸運(yùn)動(dòng)速度Vx,Vy,聯(lián)合運(yùn)動(dòng)速度Vxy ;③各軸加速度AccTx、AccTy,聯(lián)合加速度AccTxy。在優(yōu)選的實(shí)施方式中,其編碼形式如下為struct cmdMotionCtrl_Struct
{
bool bCommandStatus; //運(yùn)動(dòng)控制指令執(zhí)行狀態(tài)O—未執(zhí)行I一已執(zhí)行int iCommandType; //運(yùn)動(dòng)控制指令類型O—單軸運(yùn)動(dòng)I一X、Y軸聯(lián)動(dòng)int iAxisNo;//當(dāng)前軸號(hào)O— X軸I一Y軸在X、Y軸聯(lián)動(dòng)時(shí)該參數(shù)無效double dVel;//當(dāng)前運(yùn)動(dòng)速度,單軸運(yùn)動(dòng)時(shí)表示該軸的運(yùn)動(dòng)速度,X、Y軸聯(lián)動(dòng)時(shí)代表X、Y軸和速度
double dAcc;//加速度,單軸運(yùn)動(dòng)時(shí)表示該軸的加速度,X、Y軸;聯(lián)動(dòng)時(shí)表示合加速
度
double dTargetPosX; //目標(biāo)位置X的坐標(biāo) double dTargetPosY; //目標(biāo)位置Y的坐標(biāo)
}
線陣CCD圖像采集系統(tǒng)的控制指令包括①線陣CCD開始位置坐標(biāo)S(Sx,Sy);②線陣C⑶停止采集位置坐標(biāo)E(Ex,Ey);③線陣C⑶的圖像采集頻率f。優(yōu)選的實(shí)施方式中,其編碼形式為
struct cmdLineCCDCtrl_Struct
{
bool bLineCXDStatus;//線陣C⑶的工作狀態(tài)O—未工作I一正處于連續(xù)采集圖像
狀態(tài)
double dStartGrabPosX; //線陣CO)開始采集圖像點(diǎn)的X坐標(biāo) double dStartGrabPosY; //線陣CO)開始采集圖像點(diǎn)的Y坐標(biāo) double dStopGrabPosX; //線陣CO)停止采集圖像點(diǎn)的X坐標(biāo) double dStopGrabPosY; //線陣CO)停止采集圖像點(diǎn)的Y坐標(biāo)
}
優(yōu)選地,實(shí)現(xiàn)圖像質(zhì)量最佳的掃描與運(yùn)動(dòng)控制控制指令的主要數(shù)據(jù)結(jié)構(gòu)如下
Struct cmdLineCCDImagingSysScanAndCtrl_Struct
{
int iCmdlndexNo;//當(dāng)前指令的索引號(hào)
int iCmdBufferSize;//指令緩沖區(qū)的大小,即指令的條數(shù)
int iCurrentCmdIndexNo; //當(dāng)前執(zhí)行指令的索引號(hào)
bool bLineCCDCtrlCmdValid;//線陣CCD采集指令是否有效O—有效I一無效 cmdMotionCtrl_Structm_CmdMotionCtrl; // 運(yùn)動(dòng)控制指令
cmdLineCCDCtrl_Struct m_CmdLineCCDCtrl; // 線陣相機(jī)米集控制指令cmdImagePreprocessing_Struct m_ cmdImagePreprocessing_Struct; // 圖像預(yù)處理指令
cmdDefaultRecognitionAlgorithm_Struct m_cmdDefaultRecognitionAlgorithm_Struct;//缺陷識(shí)別指令
}
在此基礎(chǔ)上可以利用軟件實(shí)現(xiàn)外部事件同步控制的線陣CCD成像系統(tǒng)的掃描與控制指令編碼,一種可選的實(shí)施方式中,其編碼結(jié)果如下
<AOIScanAndCtrI>
〈JobCMD CMDJobName="—AOICmd" CmdBufferSize="5〃 CurrentCmdIndexNo=//0//>
<CMD iCmdIndexNo="l" bLineCCDCtrlCmdValid="。"〉
〈CmdMotionCtrIPara bCommandStatus=〃0〃 iCommandType=〃I〃 iAxisNo=〃3〃dVel=〃10. 0000〃 dAcc=〃2. 0000〃 dTargetPosX=〃407. 2500〃 dTargetPosY=〃2. 000(Τ7><CmdLineCCDCtrIPara bLineCCDStatus = " I" dStartGrabPosX = //0. 0000〃dStartGrabPosY="0· 0000" dStopGrabPosX="0· 0000" dStopGrabPosY="0. 0000"/〉<CmdImagePreProcessingPara/>
<CmdImageDefaultRecoginzationPara/>
</CMD>
<CMD iCmdIndexNo="2" bLineCCDCtrlCmdValid="]/〉
〈CmdMotionCtrIPara bCommandStatus=〃0〃 iCommandType=〃0〃 iAxisNo=〃0〃dVel="5. 0000〃 dAcc="2. 0000〃 dTargetPosX="87. 5000〃 dTargetPosY="2. 0000V>
<CmdLineCCDCtrIPara bLineCCDStatus="I" dStartGrabPosX="400.0000"dStartGrabPosY="2. 0000" dStopGrabPosX="93. 7500" dStopGrabPosY="2. 0000"/〉<CmdImagePreProcessingPara/>
<CmdImageDefaultRecoginzationPara/>
</CMD>
<CMD iCmdIndexNo="3" bLineCCDCtrlCmdValid="。"〉
〈CmdMotionCtrIPara bCommandStatus=〃0〃 iCommandType=〃I〃 iAxisNo=〃3〃dVel=〃10. 0000〃 dAcc=〃2. 0000〃 dTargetPosX=〃407. 2500〃 dTargetPosY=〃140. 000(Τ7><CmdLineCCDCtr IPara bLineCCDStatus = " I" dSt art GrabPo sX = //0. 0000〃dStartGrabPosY="0. 0000" dStopGrabPosX="0. 0000" dStopGrabPosY="0. 0000"/〉<CmdImagePreProcessingPara/>
<CmdImageDefaultRecoginzationPara/>
</CMD>
<CMD iCmdIndexNo="4" bLineCCDCtrlCmdValid="]/〉
〈CmdMotionCtrIPara bCommandStatus=〃0〃 iCommandType=〃0〃 iAxisNo=〃0〃dVel="5. 0000〃 dAcc="2. 0000〃 dTargetPosX="87. 5000〃 dTargetPosY="140. 000(Τ7><CmdLineCCDCtrIPara bLineCCDStatus="I" dStartGrabPosX="400.0000"dStartGrabPosY="140. 0000" dStopGrabPosX="93. 7500" dStopGrabPosY="140. 0000"/〉<CmdImagePreProcessingPara/>
<CmdImageDefaultRecoginzationPara/>
</CMD>
<CMD iCmdIndexNo="5" bLineCCDCtrlCmdValid="。"〉
〈CmdMotionCtrIPara bCommandStatus=〃0〃 iCommandType=〃I〃 iAxisNo=〃3〃dVel=〃10. 0000〃 dAcc=〃2. 0000〃 dTargetPosX=〃0. 0000〃 dTargetPosY=〃0. 000(Τ7>
<CmdLineCCDCtr IPara bLineCCDStatus = " I" dSt art GrabPo sX = //0. 0000〃
權(quán)利要求
1.一種線陣CXD圖像掃描方法,其特征在于,包括 步驟I :對(duì)線陣CCD成像系統(tǒng)的掃描方向和非掃描方向進(jìn)行運(yùn)動(dòng)規(guī)劃與掃描路徑規(guī)劃; 步驟2 :對(duì)線陣CCD成像系統(tǒng)的掃描與控制指令進(jìn)行編碼。
2.如權(quán)利要求I所述的線陣CCD圖像掃描方法,其特征在于所述步驟I進(jìn)一步包括 步驟11 :根據(jù)運(yùn)動(dòng)控制器的控制模式將待測(cè)物體的運(yùn)動(dòng)開始或完成過程劃分為加速運(yùn)動(dòng)階段SI、勻速運(yùn)動(dòng)階段S和減速運(yùn)動(dòng)階段S3三個(gè)部分; 步驟12 :根據(jù)線陣CCD成像系統(tǒng)的有效視野范圍(FOV)計(jì)算非掃描方向上圖像重合度的大小,并根據(jù)運(yùn)動(dòng)平臺(tái)的定位精度進(jìn)行間隙補(bǔ)償; 步驟13 :根據(jù)圖像處理精度、和/或機(jī)械運(yùn)動(dòng)平臺(tái)誤差確定掃描路徑規(guī)劃方式; 步驟14 :運(yùn)動(dòng)規(guī)劃位置求解。
3.如權(quán)利要求2所述的線陣CCD圖像掃描方法,其特征在于 所述勻速運(yùn)動(dòng)階段S包括線陣CXD掃描開始預(yù)留階段Dl和正常掃描階段S2以及掃描完成前緩沖階段D2。
4.如權(quán)利要求2所述的線陣CCD圖像掃描方法,其特征在于 所述步驟13中,若機(jī)械運(yùn)動(dòng)控制平臺(tái)具有間隙誤差,則使用單向掃描方式;若機(jī)械運(yùn)動(dòng)控制平臺(tái)不存在間隙誤差,則采用雙向掃描的路徑規(guī)劃方式。
5.如權(quán)利要求2所述的線陣CCD圖像掃描方法,其特征在于 所述步驟14具體為設(shè)待測(cè)物體的長(zhǎng)度、寬度分別為Width、Height,線陣CXD成像系統(tǒng)標(biāo)定后對(duì)物體的分辨率為R&.,線陣CCD的分辨率為Res,線陣CCD的掃描頻率為f,相鄰兩次線陣CCD掃描重合度為A X,線陣CCD成像系統(tǒng)掃描速度為Vx,非掃描方向速度為Vy,其余待求量分別為U、L2、L3、L4、L5、L6,計(jì)算出 線陣CCD的視野寬度F0V = Robj X Res ; PCB的運(yùn)動(dòng)速度VX = Robj X f ; 單次掃描的橫移(非掃描方向)寬度Sy = FOV - Ax ; PCB板的掃描次數(shù)N = (Width + L6)/Sy + 0.5,N值采用四舍五入取整; 掃描起始點(diǎn)D在相對(duì)坐標(biāo)系X1AYi中的坐標(biāo)Dx, Dy :Dx = S1 + D1 + L3 = Vx2/2ax + D2 + L3 ; 其中ax為待測(cè)物體在掃描方向上的加速度A為加速運(yùn)動(dòng)階段緩沖區(qū)的大小,D1S從勻加速到勻速后的一段緩沖區(qū)的大小,具體可根據(jù)測(cè)試情況選取經(jīng)驗(yàn)值山3為待測(cè)物體坐標(biāo)系零點(diǎn)到相對(duì)坐標(biāo)系X1Ay中yi軸的距離;Dy = L6 - L4 ; Dy的大小為機(jī)床初始調(diào)試預(yù)設(shè)的值; PCB板掃描區(qū)段的位移S2 若 S2 > Height, S2= Height ;若 S2〈Height, S2 = Sxltlax ;其中,Sxltlax 為機(jī)械運(yùn)動(dòng)平臺(tái)在X軸方向最大工作距離; 掃描終止點(diǎn)E的坐標(biāo)是Ex和Eyi Ex = Dx + S2 + Dx = 2DX + S2, Eyi = Dy + Sy X Ni, i = I Nmax,其中 Ni 為掃描點(diǎn)的編號(hào),Nmax為掃描點(diǎn)的總數(shù)。
6.如權(quán)利要求2所述的線陣CCD圖像掃描方法,其特征在于 所述步驟2所述對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼的步驟中,采用XML語言對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼。
7.如權(quán)利要求6所述的線陣CCD圖像掃描方法,其特征在于 所述掃描控制指令包括運(yùn)動(dòng)控制指令和采集系統(tǒng)的控制指令。
8.如權(quán)利要求7所述的線陣CCD圖像掃描方法,其特征在于 所述運(yùn)動(dòng)控制指令至少包括①目標(biāo)位置點(diǎn)的坐標(biāo)(Tx,Ty) 各軸運(yùn)動(dòng)速度Vx,Vy,聯(lián)合運(yùn)動(dòng)速度Vxy ;③各軸加速度AccTx、AccTy,聯(lián)合加速度AccTxy。
9.如權(quán)利要求7所述的線陣CCD圖像掃描方法,其特征在于 所述線陣CCD圖像采集系統(tǒng)的控制指令包括①線陣CCD開始位置坐標(biāo)S(Sx,Sy) 級(jí)線陣CXD停止采集位置坐標(biāo)E (Ex,Ey);③線陣CXD的圖像采集頻率f。
10.如權(quán)利要求2所述的線陣CCD圖像掃描方法,其特征在于 所述步驟2所述對(duì)線陣CCD圖像采集系統(tǒng)掃描與控制指令進(jìn)行編碼的步驟中,將電機(jī)控制指令、待測(cè)物體尺寸信息和線陣CCD成像系統(tǒng)參數(shù)信息以及線陣CCD圖像采集與控制指令按照掃描列的形式進(jìn)行封裝。
全文摘要
本發(fā)明提供一種線陣CCD圖像掃描方法,包括步驟1.對(duì)線陣CCD成像系統(tǒng)的掃描方向和非掃描方向進(jìn)行運(yùn)動(dòng)規(guī)劃與掃描路徑規(guī)劃;步驟2.對(duì)線陣CCD成像系統(tǒng)的掃描與控制指令進(jìn)行編碼。本發(fā)明提供的技術(shù)方案可以很好解決在被測(cè)物體運(yùn)動(dòng)開始和運(yùn)動(dòng)完成階段由于電機(jī)的加、減速過程導(dǎo)致的圖像出現(xiàn)拉伸、壓縮和模糊等扭曲變形現(xiàn)象。
文檔編號(hào)G01B11/00GK102761708SQ20121015526
公開日2012年10月31日 申請(qǐng)日期2012年5月18日 優(yōu)先權(quán)日2012年5月18日
發(fā)明者馮平, 彭小波, 徐剛, 程濤, 胡國煌 申請(qǐng)人:深圳大學(xué)