博客專欄

EEPW首頁(yè) > 博客 > LabVIEW實(shí)現(xiàn)PCB電路板坐標(biāo)定位(實(shí)戰(zhàn)篇—2)

LabVIEW實(shí)現(xiàn)PCB電路板坐標(biāo)定位(實(shí)戰(zhàn)篇—2)

發(fā)布人:美男子玩編程 時(shí)間:2022-06-22 來(lái)源:工程師 發(fā)布文章

1


項(xiàng)目背景


在機(jī)器視覺(jué)實(shí)際工程實(shí)踐中,有時(shí)使用NI Vision定義的默認(rèn)坐標(biāo)系進(jìn)行測(cè)量控制并不是很直接。例如,檢測(cè)目標(biāo)并不總在固定的位置出現(xiàn),而是在ROI區(qū)域內(nèi)平移或旋轉(zhuǎn),甚至有些時(shí)候必須通過(guò)平移、旋轉(zhuǎn)工作面上的檢測(cè)目標(biāo)或通過(guò)移動(dòng)相機(jī),對(duì)部件上的幾個(gè)不同部位分別進(jìn)行檢測(cè)才能完成任務(wù)。


這樣進(jìn)行圖像識(shí)別、處理是非常麻煩的,此時(shí)就需要對(duì)圖像進(jìn)行坐標(biāo)校準(zhǔn)。


使用機(jī)器視覺(jué)系統(tǒng)進(jìn)行測(cè)控時(shí),各種計(jì)算結(jié)果都需要基于坐標(biāo)系來(lái)表示。平面坐標(biāo)系可以使用坐標(biāo)原點(diǎn)(Original)、橫軸的角度(Angle)以及縱軸的方向(Axis Direction)來(lái)表示。


當(dāng)使用NI Vision提供的VI對(duì)所建立的機(jī)器視覺(jué)系統(tǒng)進(jìn)行校準(zhǔn)后,所得到的像素和世界坐標(biāo)之間的映射關(guān)系是建立在默認(rèn)校準(zhǔn)坐標(biāo)系基礎(chǔ)之上的。默認(rèn)情況下NI Vision的系統(tǒng)校準(zhǔn)VI按照以下原則定義校準(zhǔn)坐標(biāo)系:

1、坐標(biāo)原點(diǎn)。若手工輸入一系列校準(zhǔn)點(diǎn),則坐標(biāo)原點(diǎn)被置于用戶定義的坐標(biāo)原點(diǎn),通常是兩個(gè)方向上坐標(biāo)值均為最小的點(diǎn)中心。若使用校準(zhǔn)點(diǎn)陣,則以左上角點(diǎn)中心為坐標(biāo)原點(diǎn);

2、橫軸的角度為0。亦即橫軸由點(diǎn)陣首行各點(diǎn)確定的矢量而定;

3、縱軸的方向?yàn)殚g接方向(Indirect)??v軸方向與笛卡兒直角坐標(biāo)系的縱軸方向(Direct)相反。


下圖給出了NI Vision確定默認(rèn)坐標(biāo)系的示意圖,其中左圖為校準(zhǔn)點(diǎn)陣的世界坐標(biāo)系,右圖為某種可能的圖像像素坐標(biāo)系:


圖片


舉個(gè)例子,下圖中的3個(gè)工件在視場(chǎng)中分別位于不同的位置并且有旋轉(zhuǎn)。為了能準(zhǔn)確測(cè)量小孔的位置和大小,可以對(duì)每個(gè)工件自動(dòng)檢測(cè)其左邊緣和上邊緣,并以它們的交點(diǎn)為坐標(biāo)原點(diǎn),以上邊緣為x軸,定義間接類型的坐標(biāo)系。這樣一來(lái),雖然每個(gè)工件在視場(chǎng)中的位置不同,但合格工件中的小孔相對(duì)于每個(gè)自動(dòng)定義的坐標(biāo)系位置具有一致性。如果機(jī)器視覺(jué)算法相對(duì)于每個(gè)自定義的坐標(biāo)系放置檢測(cè)小孔的ROI,無(wú)論工件如何在視場(chǎng)中變化,都能實(shí)現(xiàn)自動(dòng)檢測(cè),直接返回測(cè)量結(jié)果。


圖片

為檢測(cè)過(guò)程自動(dòng)定義參考坐標(biāo)系



2


坐標(biāo)校準(zhǔn)原理



機(jī)器視覺(jué)系統(tǒng)實(shí)現(xiàn)坐標(biāo)校準(zhǔn)有3種方法:


1、角度法


角度法適合沒(méi)有畸變且新坐標(biāo)原點(diǎn)仍位于圖像中的機(jī)器視覺(jué)系統(tǒng),它通過(guò)設(shè)定新坐標(biāo)系的坐標(biāo)原點(diǎn)、橫軸與原坐標(biāo)系橫軸之間的旋轉(zhuǎn)角以及新坐標(biāo)系縱軸的方向來(lái)設(shè)置新坐標(biāo),如下圖所示:


圖片


2、雙點(diǎn)法


雙點(diǎn)法適合有畸變且可以直接從圖像中確定新坐標(biāo)原點(diǎn)位置的機(jī)器視覺(jué)系統(tǒng)。它通過(guò)指定新坐標(biāo)原點(diǎn)和一個(gè)位于坐標(biāo)系橫軸正方向上的點(diǎn)以及坐標(biāo)系的類型(直接或間接)來(lái)設(shè)定新坐標(biāo)系。坐標(biāo)原點(diǎn)和橫坐標(biāo)上的點(diǎn)所構(gòu)成的直線與圖像水平方向的夾角指明了新坐標(biāo)系的旋轉(zhuǎn)角。


例如,下圖中A、B兩點(diǎn)確定了坐標(biāo)系的橫軸,且A點(diǎn)為坐標(biāo)原點(diǎn)。由于坐標(biāo)系為間接類型,因此,Y'軸與X'軸夾角為270°。由于在畸變的系統(tǒng)中,當(dāng)被測(cè)目標(biāo)沿著水平或垂直方向移動(dòng)時(shí),仍能相對(duì)準(zhǔn)確地確定其上的邊緣,而基于兩個(gè)邊緣點(diǎn)就可以確定穩(wěn)定的坐標(biāo)系,所以這種方法比角度法對(duì)畸變系統(tǒng)有更強(qiáng)的適應(yīng)性。


圖片


3、三點(diǎn)法


有時(shí)候機(jī)器視覺(jué)系統(tǒng)不僅有畸變,而且被測(cè)目標(biāo)還會(huì)在圖像中平移、旋轉(zhuǎn)。這種情況下可以使用多點(diǎn)法來(lái)設(shè)置新坐標(biāo)系。多點(diǎn)法先使用兩個(gè)點(diǎn)確定一條坐標(biāo)軸及其方向,但并不將這兩點(diǎn)中的一點(diǎn)作為坐標(biāo)原點(diǎn),而是用第三點(diǎn)與前兩點(diǎn)所成直線的垂直交點(diǎn)來(lái)確定坐標(biāo)原點(diǎn)。獲得坐標(biāo)原點(diǎn)后,再基于坐標(biāo)系的類型,就可確定另一坐標(biāo)軸,如下圖所示:


圖片


舉個(gè)例子,下圖中(左圖)的坐標(biāo)系以標(biāo)尺1cm處的點(diǎn)為原點(diǎn),7cm處的兩點(diǎn)作為橫軸正方向上的一點(diǎn)來(lái)確定坐標(biāo)系橫軸。由于指定坐標(biāo)系的縱軸為間接方向,因此坐標(biāo)系位置可以被唯一確定。在右圖中很難直接找到合適的坐標(biāo)原點(diǎn),因此先檢測(cè)左側(cè)和頂端的目標(biāo)邊緣,隨后用頂端邊緣線段的起止點(diǎn)AB確定橫軸,而左側(cè)邊緣中的C點(diǎn)或D點(diǎn)與橫軸的垂直交點(diǎn)O為原點(diǎn),最后根據(jù)縱軸的方向就可以唯一確定坐標(biāo)系。


圖片

雙點(diǎn)法和三點(diǎn)法確定坐標(biāo)系



3


坐標(biāo)校準(zhǔn)方法



Nl Vision使用IMAQ Set Calibration Axis Info 2函數(shù)為圖像重新設(shè)置坐標(biāo)系。該函數(shù)位于LabVIEW的視覺(jué)與運(yùn)動(dòng)→Vision Utilities→Calibration函數(shù)選板中,如下圖所示:


圖片


函數(shù)說(shuō)明及使用可參見(jiàn)幫助手冊(cè):


圖片


NI Vision使用位于視覺(jué)與運(yùn)動(dòng)→Machine Vision→Analytic Geometry函數(shù)選板中的IMAQ Build CoordSys(Points)封裝了雙點(diǎn)法和三點(diǎn)法,開(kāi)發(fā)時(shí)可直接根據(jù)目標(biāo)上的特征點(diǎn),調(diào)用該VI來(lái)確定參考或測(cè)量坐標(biāo)系,如下圖所示:


圖片


具體使用可參見(jiàn)幫助手冊(cè)。



4


環(huán)境搭建



基礎(chǔ)環(huán)境搭建請(qǐng)參見(jiàn):LabVIEW軟件、驅(qū)動(dòng)安裝及編程方法(理論篇—2)


除此之外,還需要安裝:OpenG Libraries驅(qū)動(dòng),OpenG庫(kù)是由OpenG社區(qū)創(chuàng)建并根據(jù)BSD-3-Clause許可證(獲得Open Source Initiative批準(zhǔn))共享的數(shù)百個(gè)開(kāi)源VI的集合。


可直接在VI Package Manage中進(jìn)行安裝,如下所示:


圖片



5


項(xiàng)目實(shí)踐



接下來(lái)根據(jù)過(guò)孔和PCB邊角實(shí)現(xiàn)下圖PCB電路板坐標(biāo)定位,達(dá)到無(wú)論在任何角度,均可定位PCB的效果。


圖片


程序設(shè)計(jì)思路如下:

  • 程序一開(kāi)始先使用IMAQ Create分別在內(nèi)存中為電路板一個(gè)角的模板圖像(對(duì)應(yīng)corner.png圖像文件)、電路板上的小孔模板圖像(對(duì)應(yīng)hole.png圖像文件)以及應(yīng)用程序處理過(guò)程中需要的臨時(shí)緩沖分配空間,并由IMAQ ReadFile把相應(yīng)圖像文件中的數(shù)據(jù)讀入內(nèi)存。

  • 緊接著使用IMAQ Learn Pattern 4對(duì)兩個(gè)模板的特征進(jìn)行學(xué)習(xí)。

    由于Angle Range參數(shù)被設(shè)置為0~360°,因此,無(wú)論目標(biāo)圖像在平面上旋轉(zhuǎn)多少度,函數(shù)都能按照學(xué)習(xí)到的特征準(zhǔn)確地將模板與目標(biāo)匹配。

  • IMAQ Set Simple Calibration 2以從文件Roundcard01.tif中讀入的圖像為模板,指定了縱橫兩個(gè)方向上像素間距分別代表世界坐標(biāo)中的0.15mm。

    當(dāng)然,此時(shí)假定相機(jī)垂直于觀測(cè)目標(biāo),且鏡頭畸變可忽略不計(jì)。

  • 一旦上述準(zhǔn)備工作就緒,F(xiàn)or循環(huán)就逐一對(duì)roundcard文件夾中的各個(gè)文件所保存的目標(biāo)圖像進(jìn)行分析。

    在讀入目標(biāo)圖像后,IMAQ Match Pattern 4會(huì)先根據(jù)學(xué)習(xí)到的特征匹配電路板的一角。

    Parameters參數(shù)指定了匹配時(shí)只需要找到一個(gè)目標(biāo),且假定目標(biāo)圖像相對(duì)模板來(lái)說(shuō)只在±45°范圍內(nèi)旋轉(zhuǎn)。

    找到電路板一角后,OverlayPatternMatchingResults會(huì)在目標(biāo)圖像中標(biāo)注出所匹配到的電路板一角的中心,并用矩形無(wú)損圖層框出匹配結(jié)果。

  • 為了能在后續(xù)測(cè)試過(guò)程中,無(wú)論圖像在視場(chǎng)中做何變化,都能直接得到電路板小孔相對(duì)于其一角的距離,需要重新設(shè)置以電路板一角為參照的系統(tǒng)校準(zhǔn)坐標(biāo)系。

    IMAQ Set Calibration Info將之前基于RoundCard01.tif中的圖像設(shè)置的校準(zhǔn)信息應(yīng)用到For循環(huán)正在處理的目標(biāo)圖像中。

    IMAQ Set Calibration Axis Info用來(lái)重新指定校準(zhǔn)坐標(biāo)系。

    新的坐標(biāo)系原點(diǎn)設(shè)定在所匹配到的電路板一角中心處。

    x軸旋轉(zhuǎn)角度由模板匹配過(guò)程中,識(shí)別到的目標(biāo)圖像旋轉(zhuǎn)角度確定。

    需要注意的是,當(dāng)坐標(biāo)系縱軸設(shè)定為直接坐標(biāo)方向時(shí),x軸相對(duì)于默認(rèn)坐標(biāo)系縱橫的旋轉(zhuǎn)角度為負(fù)值,反之為正值。

  • 設(shè)定好新的校準(zhǔn)坐標(biāo)系和校準(zhǔn)信息后,就可以使用IMAQ Match Pattern 4匹配需要在電路板上尋找的小孔位置。

    與之前匹配電路板一角的情況類似,當(dāng)匹配過(guò)程找到小孔的位置后,Overlay Coordinate System和Overlay Pattern Matching Results將在圖像中繪制新定義的坐標(biāo)系縱軸和橫軸,標(biāo)記出小孔的位置并框出對(duì)小孔的匹配結(jié)果。

    一旦得到小孔在圖像中的位置,就可以依據(jù)校準(zhǔn)信息和像素坐標(biāo)計(jì)算得到小孔在校準(zhǔn)坐標(biāo)系中的世界坐標(biāo)。

    這一工作由IMAQ Convert Pixel to Real World來(lái)完成。


程序?qū)崿F(xiàn)如下所示:


圖片


下面顯示了對(duì)幾個(gè)目標(biāo)圖像進(jìn)行檢測(cè)時(shí)的圖像顯示情況,以及某一目標(biāo)圖像中測(cè)量得到的小孔像素位置坐標(biāo)和其在校準(zhǔn)坐標(biāo)系中的世界坐標(biāo)。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: LabVIEW

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉