時(shí)間:2021-06-17 16:07:51來(lái)源:深圳市正運(yùn)動(dòng)技術(shù)有限公司
此前,我們依次講解了軟硬件介紹及計(jì)數(shù)實(shí)例、相機(jī)的基本使用、基于形狀匹配的視覺(jué)定位、BLOB有無(wú)檢測(cè)以及測(cè)量尺寸。
本期課程,正運(yùn)動(dòng)技術(shù)和大家一起分享和標(biāo)定有關(guān)的詳細(xì)知識(shí)內(nèi)容。
機(jī)器視覺(jué)檢測(cè)結(jié)果
將機(jī)器視覺(jué)處理的像素結(jié)果(單位:像素)轉(zhuǎn)換成現(xiàn)實(shí)中使用到的實(shí)際結(jié)果(單位:毫米),或者是將機(jī)器視覺(jué)中使用的圖像坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)的過(guò)程。
測(cè)量標(biāo)定是使用已知尺寸的標(biāo)準(zhǔn)模塊,如已知半徑的小圓塊、已知寬度的小方塊、刻度尺等物品,在使用機(jī)器視覺(jué)檢測(cè)出對(duì)應(yīng)尺寸的像素值后,求出實(shí)際尺寸值和像素值的比例即像素比例,之后再將檢測(cè)的像素結(jié)果乘以像素比例即可得出實(shí)際值結(jié)果。
坐標(biāo)標(biāo)定是指使用機(jī)器視覺(jué)獲取幾組圖像坐標(biāo)數(shù)據(jù)(至少9組),然后輸入對(duì)應(yīng)的幾組世界坐標(biāo)數(shù)據(jù),根據(jù)公式計(jì)算出矩陣坐標(biāo)轉(zhuǎn)換系數(shù),然后將檢測(cè)的圖像坐標(biāo)結(jié)果按照這個(gè)標(biāo)定系數(shù)轉(zhuǎn)換成世界坐標(biāo)結(jié)果。
1.測(cè)量標(biāo)定
測(cè)量標(biāo)定的實(shí)施方法比較簡(jiǎn)單,只需要將已知尺寸的標(biāo)準(zhǔn)塊放到檢測(cè)平臺(tái)中,然后使用視覺(jué)輸出的像素結(jié)果和已知尺寸計(jì)算得到像素比例即可。
2.坐標(biāo)標(biāo)定--使用標(biāo)定板
標(biāo)定板的特點(diǎn)是特征點(diǎn)的距離是固定且已知的。我們就可以在標(biāo)定板上選擇幾組矩陣坐標(biāo)數(shù)據(jù),把某個(gè)點(diǎn)設(shè)置成坐標(biāo)原點(diǎn),再根據(jù)實(shí)際圓點(diǎn)(或棋盤(pán)格)的距離定義對(duì)應(yīng)點(diǎn)的實(shí)際坐標(biāo),最后再使用視覺(jué)檢測(cè)出對(duì)應(yīng)特征點(diǎn)的圖像坐標(biāo)即可。得到圖像坐標(biāo)數(shù)據(jù)和世界坐標(biāo)數(shù)據(jù)后就可以求出標(biāo)定系數(shù)。
3.坐標(biāo)標(biāo)定--不使用標(biāo)定板
在沒(méi)有準(zhǔn)備標(biāo)定板的條件下做坐標(biāo)標(biāo)定需要運(yùn)動(dòng)機(jī)構(gòu)如機(jī)械手配合。
機(jī)械手抓取產(chǎn)品按照指定的位置坐標(biāo)(機(jī)械手坐標(biāo))走9個(gè)點(diǎn)位(這9個(gè)點(diǎn)位需要保證在相機(jī)拍照的視野范圍內(nèi)),每走到一個(gè)點(diǎn)位就使用相機(jī)獲取產(chǎn)品特征在當(dāng)前位置的圖像坐標(biāo)并記錄圖像坐標(biāo)數(shù)據(jù),依次走完9個(gè)點(diǎn)位即可。然后再根據(jù)獲取的圖像坐標(biāo)數(shù)據(jù)和記錄的機(jī)械手坐標(biāo)進(jìn)行坐標(biāo)系轉(zhuǎn)換,得出標(biāo)定系數(shù)。
注意:在相機(jī)結(jié)構(gòu)和檢測(cè)平臺(tái)的相對(duì)位置發(fā)生變化時(shí)需要重新標(biāo)定!
坐標(biāo)標(biāo)定流程圖
演示實(shí)例說(shuō)明:本課程實(shí)例在《VPLC系列機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)快速入門(mén)(三)--形狀匹配》實(shí)例的基礎(chǔ)上增加使用標(biāo)定板進(jìn)行坐標(biāo)標(biāo)定的功能,并輸出標(biāo)定后的產(chǎn)品位置。
1.打開(kāi)ZDevelop軟件:點(diǎn)擊[文件]→[打開(kāi)項(xiàng)目]→選擇“基于形狀匹配的視覺(jué)定位”項(xiàng)目。
2.修改設(shè)計(jì)主界面。
3.在global_variable.bas文件中增加定義坐標(biāo)標(biāo)定使用到的全局變量。
'***********定義坐標(biāo)標(biāo)定相關(guān)變量*********************
'定義是否使用標(biāo)定功能標(biāo)志,0-不使用標(biāo)定功能,1-使用標(biāo)定功能
GLOBAL DIM d_use_calib
d_use_calib = 0
'定義標(biāo)定成功標(biāo)志,0-標(biāo)定未成功,1-標(biāo)定成功
GLOBAL DIM d_calib_success
d_calib_success = 0
'標(biāo)定參數(shù)
GLOBAL ZVOBJECT ca_param
'標(biāo)定參數(shù)數(shù)組,依次為:標(biāo)定類(lèi)型、對(duì)比度、極性、最小面積、最大面積、世界坐標(biāo)點(diǎn)間距
GLOBAL DIM d_ca_param(6) 'd開(kāi)頭表示數(shù)據(jù)結(jié)構(gòu)
'標(biāo)定誤差,最小誤差、最大誤差、平均誤差
GLOBAL DIM ca_min_err,ca_max_err,ca_avg_err
ca_min_err = 0
ca_max_err = 0
ca_avg_err = 0
'常用顏色變量
GLOBAL C_RED, C_GREEN, C_BLUE, C_YELLOW
C_RED = RGB(255, 0, 0)
C_GREEN = RGB( 0,255, 0)
C_BLUE = RGB( 0, 0,255)
C_YELLOW= RGB(255,255, 0)
'標(biāo)定矩陣
GLOBAL ZVOBJECT ca_mat
'***********結(jié)束定義坐標(biāo)標(biāo)定相關(guān)變量******************
4.在InitLocator.bas文件中初始化坐標(biāo)標(biāo)定相關(guān)的測(cè)量參數(shù)。
'初始化坐標(biāo)標(biāo)定相關(guān)的變量
d_ca_param(0) = 0 '標(biāo)定類(lèi)型
d_ca_param(1) = 120 '對(duì)比度
d_ca_param(2) = 0 '極性
d_ca_param(3) = 80 '最小面積
d_ca_param(4) = 20000 '最大面積
d_ca_param(5) = 9 '世界坐標(biāo)點(diǎn)間距
ca_min_err = 0 '最小誤差
ca_max_err = 0 '最大誤差
ca_avg_err = 0 '平均誤差
5.新建主界面按下【坐標(biāo)標(biāo)定】按鈕時(shí)彈出的窗口界面calib,并設(shè)計(jì)界面布局。
6.在calib窗口界面中關(guān)聯(lián)元件變量。
7.添加在主界面按下【坐標(biāo)標(biāo)定】按鈕時(shí)響應(yīng)的函數(shù),并關(guān)聯(lián)動(dòng)作函數(shù)名。
'點(diǎn)擊主界面坐標(biāo)標(biāo)定按鈕時(shí)響應(yīng)的函數(shù)
GLOBAL SUB btn_calib()
ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(13, 91), HMI_CONTROLSIZEY(13, 91)) '設(shè)置坐標(biāo)標(biāo)定窗口鎖存通道0的鎖存大小
ZV_LATCHCLEAR(0) '將鎖存通道0清空
ZV_LATCH(grabImg, 0) '顯示采集圖像顯示到鎖存通道0中
HMI_SHOWWINDOW(13)
END SUB
8.添加在calib界面按下【提取mark點(diǎn)】按鈕時(shí)響應(yīng)的函數(shù),并關(guān)聯(lián)動(dòng)作函數(shù)名。
'坐標(biāo)標(biāo)定界面按下提取mark點(diǎn)按鈕時(shí)響應(yīng)的函數(shù)
GLOBAL SUB btn_ca_extract()
ZVOBJECT inppts, ppts, wpts
'提取像素坐標(biāo)
ZV_CALGETSCAPTS(grabImg, inppts, d_ca_param(1), d_ca_param(2), d_ca_param(3), d_ca_param(4))
ZV_MATINFO (inppts, 400)
DIM row,col
row = TABLE(400)
col = TABLE(401)
if(row * col = 18) then
TABLE(150) = 1 '提取mark點(diǎn)成功
else
TABLE(150) = 0 '提取mark點(diǎn)失敗
return
endif
'根據(jù)mrak點(diǎn)間距和像素坐標(biāo)計(jì)算世界坐標(biāo)
ZV_CALGETPTSMAP(inppts,ppts,wpts,d_ca_param(5))
ZV_MATINFO (ppts, 400)
row = TABLE(400)
col = TABLE(401)
if(row * col = 18) then
TABLE(150) = 1 '提取mark點(diǎn)成功
else
TABLE(150) = 0 '提取mark點(diǎn)失敗
return
endif
'像素坐標(biāo)和世界坐標(biāo)放入table中
DIM i
FOR i=0 TO row-1
ZV_MATGETROW (ppts, i, col, 81 + i*col)
ZV_MATGETROW (wpts, i, col, 131 + i*col)
NEXT
'設(shè)置用于繪制mark點(diǎn)的圖像
ZVOBJECT color
ZV_GRAYTORGB(grabImg, color)
'和繪制mark點(diǎn)的十字架
DIM j, pixNum '像素個(gè)數(shù)
pixNum = 0
FOR i=0 TO 2
FOR j=0 TO 2
ZV_MARKER(color, TABLE(81 + 2 * pixNum), TABLE(81 + 2 * pixNum + 1), 0, 40, C_GREEN)
pixNum = pixNum + 1
NEXT
NEXT
'用文本繪制mark點(diǎn)的序號(hào)
FOR i=0 TO 8
ZV_TEXT (color, TOSTR(i,1,0), TABLE(81+2*i)-20, TABLE(81+2*i +1)-40, 20, C_BLUE)
NEXT
ZV_LATCH(color, 0)
end sub
在calib界面按下【提取mark點(diǎn)】按鈕時(shí)仿真效果圖。
9.添加在calib界面按下【標(biāo)定】按鈕時(shí)響應(yīng)的函數(shù),并關(guān)聯(lián)動(dòng)作函數(shù)名。
'坐標(biāo)標(biāo)定界面按下標(biāo)定按鈕時(shí)響應(yīng)的函數(shù)
global sub btn_ca_calib()
ZV_IMGINFO(grabImg,0)
ZV_CALCAM(ppts,wpts,ca_param,TABLE(0),TABLE(1),d_ca_param(0))
is_ca_success=1
'計(jì)算標(biāo)定誤差
ZV_CALERROR(ca_param, ppts, wpts, 0)
ca_min_err = TABLE(1)
ca_max_err = TABLE(2)
ca_avg_err = TABLE(0)
end sub
在calib界面按下【標(biāo)定】按鈕時(shí)仿真效果圖
10.添加在calib界面按下【返回】按鈕時(shí)響應(yīng)的函數(shù),并關(guān)聯(lián)動(dòng)作函數(shù)名。
'坐標(biāo)標(biāo)定界面按下返回按鈕時(shí)響應(yīng)的函數(shù)
global sub btn_ca_param_rtn()
HMI_CLOSEWINDOW(13)
end sub
11.修改匹配測(cè)試子函數(shù)中匹配結(jié)果輸出部分的指令代碼。
if(is_ca_success = 1 AND TABLE(300)) then
ZV_GETRIGIDVECTOR(mat_rigid1, 0, 0, 0, TABLE(4), TABLE(5), TABLE(6))'計(jì)算剛性變換矩陣
ZV_CONTAFFINE(contlist1, mat_rigid1, tsContlist1)'對(duì)輪廓或輪廓序列進(jìn)行仿射變換
ZV_CONTLIST(colorImg, tsContlist1, ZV_COLOR(0, 255, 0), 0)'在colorSubImg圖像上繪制綠色的輪廓序列
ZV_CALTRANSW(ca_param, TABLE(4),TABLE(5),4)
d_match_rst(0) = TABLE(3)
d_match_rst(1) = TABLE(4)
d_match_rst(2) = TABLE(5)
d_match_rst(3) = TABLE(6)
d_match_rst(4) = TABLE(7)
else
d_match_rst(0) = TABLE(3)
d_match_rst(1) = TABLE(4)
d_match_rst(2) = TABLE(5)
d_match_rst(3) = TABLE(6)
d_match_rst(4) = TABLE(7)
ZV_GETRIGIDVECTOR(mat_rigid1, 0, 0, 0, TABLE(4), TABLE(5), TABLE(6))'計(jì)算剛性變換矩陣
ZV_CONTAFFINE(contlist1, mat_rigid1, tsContlist1)'對(duì)輪廓或輪廓序列進(jìn)行仿射變換
ZV_CONTLIST(colorImg, tsContlist1, ZV_COLOR(0, 255, 0), 0)'在colorSubImg圖像上繪制綠色的輪廓序列
endif
【單次執(zhí)行】按鈕按下時(shí)的仿真效果圖
使用標(biāo)定功能的檢測(cè)效果圖
不使用標(biāo)定功能的檢測(cè)效果圖
本次,正運(yùn)動(dòng)技術(shù)VPLC系列機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)快速入門(mén)(六)——標(biāo)定功能就分享到這里,更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào)。
本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹(shù)莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測(cè)節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20