|
此前,我們依次講解了軟硬件介紹及計數實例、相機的基本使用、基於形狀匹配的視覺定位、BLOB有無檢測以及測量尺寸。
本期課程,正運動技術和大家一起分享和標定有關的詳細知識內容。
視頻教程:《VPLC係列機器視覺運動控製一體機快速入門(六)》


機器視覺檢測結果
將機器視覺處理的像素結果(單位:像素)轉換成現實中使用到的實際結果(單位:毫米),或者是將機器視覺中使用的圖像坐標轉換成世界坐標的過程。

測量標定是使用已知尺寸的標準模塊,如已知半徑的小圓塊、已知寬度的小方塊、刻(ke)度(du)尺(chi)等(deng)物(wu)品(pin),在(zai)使(shi)用(yong)機(ji)器(qi)視(shi)覺(jiao)檢(jian)測(ce)出(chu)對(dui)應(ying)尺(chi)寸(cun)的(de)像(xiang)素(su)值(zhi)後(hou),求(qiu)出(chu)實(shi)際(ji)尺(chi)寸(cun)值(zhi)和(he)像(xiang)素(su)值(zhi)的(de)比(bi)例(li)即(ji)像(xiang)素(su)比(bi)例(li),之(zhi)後(hou)再(zai)將(jiang)檢(jian)測(ce)的(de)像(xiang)素(su)結(jie)果(guo)乘(cheng)以(yi)像(xiang)素(su)比(bi)例(li)即(ji)可(ke)得(de)出(chu)實(shi)際(ji)值(zhi)結(jie)果(guo)。

坐標標定是指使用機器視覺獲取幾組圖像坐標數據(至少9組),ranhoushuruduiyingdejizushijiezuobiaoshuju,genjugongshijisuanchujuzhenzuobiaozhuanhuanxishu,ranhoujiangjiancedetuxiangzuobiaojieguoanzhaozhegebiaodingxishuzhuanhuanchengshijiezuobiaojieguo。


1.測量標定
celiangbiaodingdeshishifangfabijiaojiandan,zhixuyaojiangyizhichicundebiaozhunkuaifangdaojiancepingtaizhong,ranhoushiyongshijiaoshuchudexiangsujieguoheyizhichicunjisuandedaoxiangsubilijike。
2.坐標標定--使用標定板
標(biao)定(ding)板(ban)的(de)特(te)點(dian)是(shi)特(te)征(zheng)點(dian)的(de)距(ju)離(li)是(shi)固(gu)定(ding)且(qie)已(yi)知(zhi)的(de)。我(wo)們(men)就(jiu)可(ke)以(yi)在(zai)標(biao)定(ding)板(ban)上(shang)選(xuan)擇(ze)幾(ji)組(zu)矩(ju)陣(zhen)坐(zuo)標(biao)數(shu)據(ju),把(ba)某(mou)個(ge)點(dian)設(she)置(zhi)成(cheng)坐(zuo)標(biao)原(yuan)點(dian),再(zai)根(gen)據(ju)實(shi)際(ji)圓(yuan)點(dian)(或棋盤格)的de距ju離li定ding義yi對dui應ying點dian的de實shi際ji坐zuo標biao,最zui後hou再zai使shi用yong視shi覺jiao檢jian測ce出chu對dui應ying特te征zheng點dian的de圖tu像xiang坐zuo標biao即ji可ke。得de到dao圖tu像xiang坐zuo標biao數shu據ju和he世shi界jie坐zuo標biao數shu據ju後hou就jiu可ke以yi求qiu出chu標biao定ding係xi數shu。

3.坐標標定--不使用標定板
在沒有準備標定板的條件下做坐標標定需要運動機構如機械手配合。
機械手抓取產品按照指定的位置坐標(機械手坐標)走9個點位(這9個點位需要保證在相機拍照的視野範圍內),每走到一個點位就使用相機獲取產品特征在當前位置的圖像坐標並記錄圖像坐標數據,依次走完9個點位即可。然後再根據獲取的圖像坐標數據和記錄的機械手坐標進行坐標係轉換,得出標定係數。
注意:在相機結構和檢測平台的相對位置發生變化時需要重新標定!


坐標標定流程圖

演示實例說明:本課程實例在《VPLC係列機器視覺運動控製一體機快速入門(三)--形狀匹配》實例的基礎上增加使用標定板進行坐標標定的功能,並輸出標定後的產品位置。
1.打開ZDevelop軟件:點擊[文件]→[打開項目]→選擇“基於形狀匹配的視覺定位”項目。
2.修改設計主界麵。

3.在global_variable.bas文件中增加定義坐標標定使用到的全局變量。
'***********定義坐標標定相關變量*********************
'定義是否使用標定功能標誌,0-不使用標定功能,1-使用標定功能
GLOBAL DIM d_use_calib
d_use_calib = 0
'定義標定成功標誌,0-標定未成功,1-標定成功
GLOBAL DIM d_calib_success
d_calib_success = 0
'標定參數
GLOBAL ZVOBJECT ca_param
'標定參數數組,依次為:標定類型、對比度、極性、最小麵積、最大麵積、世界坐標點間距
GLOBAL DIM d_ca_param(6) 'd開頭表示數據結構
'標定誤差,最小誤差、最大誤差、平均誤差
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)
'標定矩陣
GLOBAL ZVOBJECT ca_mat
'***********結束定義坐標標定相關變量******************
4.在InitLocator.bas文件中初始化坐標標定相關的測量參數。
'初始化坐標標定相關的變量
d_ca_param(0) = 0 '標定類型
d_ca_param(1) = 120 '對比度
d_ca_param(2) = 0 '極性
d_ca_param(3) = 80 '最小麵積
d_ca_param(4) = 20000 '最大麵積
d_ca_param(5) = 9 '世界坐標點間距
ca_min_err = 0 '最小誤差
ca_max_err = 0 '最大誤差
ca_avg_err = 0 '平均誤差
5.新建主界麵按下【坐標標定】按鈕時彈出的窗口界麵calib,並設計界麵布局。

6.在calib窗口界麵中關聯元件變量。

7.添加在主界麵按下【坐標標定】按鈕時響應的函數,並關聯動作函數名。
'點擊主界麵坐標標定按鈕時響應的函數
GLOBAL SUB btn_calib()
ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(13, 91), HMI_CONTROLSIZEY(13, 91)) '設置坐標標定窗口鎖存通道0的鎖存大小
ZV_LATCHCLEAR(0) '將鎖存通道0清空
ZV_LATCH(grabImg, 0) '顯示采集圖像顯示到鎖存通道0中
HMI_SHOWWINDOW(13)
END SUB

8.添加在calib界麵按下【提取mark點】按鈕時響應的函數,並關聯動作函數名。
'坐標標定界麵按下提取mark點按鈕時響應的函數
GLOBAL SUB btn_ca_extract()
ZVOBJECT inppts, ppts, wpts
'提取像素坐標
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點成功
else
TABLE(150) = 0 '提取mark點失敗
return
endif
'根據mrak點間距和像素坐標計算世界坐標
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點成功
else
TABLE(150) = 0 '提取mark點失敗
return
endif
'像素坐標和世界坐標放入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
'設置用於繪製mark點的圖像
ZVOBJECT color
ZV_GRAYTORGB(grabImg, color)
'和繪製mark點的十字架
DIM j, pixNum '像素個數
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點的序號
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點】按鈕時仿真效果圖。

9.添加在calib界麵按下【標定】按鈕時響應的函數,並關聯動作函數名。
'坐標標定界麵按下標定按鈕時響應的函數
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
'計算標定誤差
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界麵按下【標定】按鈕時仿真效果圖
10.添加在calib界麵按下【返回】按鈕時響應的函數,並關聯動作函數名。
'坐標標定界麵按下返回按鈕時響應的函數
global sub btn_ca_param_rtn()
HMI_CLOSEWINDOW(13)
end sub

11.修改匹配測試子函數中匹配結果輸出部分的指令代碼。
if(is_ca_success = 1 AND TABLE(300)) then
ZV_GETRIGIDVECTOR(mat_rigid1, 0, 0, 0, TABLE(4), TABLE(5), TABLE(6))'計算剛性變換矩陣
ZV_CONTAFFINE(contlist1, mat_rigid1, tsContlist1)'對輪廓或輪廓序列進行仿射變換
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))'計算剛性變換矩陣
ZV_CONTAFFINE(contlist1, mat_rigid1, tsContlist1)'對輪廓或輪廓序列進行仿射變換
ZV_CONTLIST(colorImg, tsContlist1, ZV_COLOR(0, 255, 0), 0)'在colorSubImg圖像上繪製綠色的輪廓序列
endif

【單次執行】按鈕按下時的仿真效果圖

使用標定功能的檢測效果圖

不使用標定功能的檢測效果圖
本次,正運動技術VPLC係列機器視覺運動控製一體機快速入門(六)——標定功能就分享到這裏,更多精彩內容請關注“正運動小助手”公眾號。
benwenyouzhengyundongjishuyuanchuang,huanyingdajiazhuanzai,gongtongxuexi,yiqitigaozhongguozhinengzhizaoshuiping。wenzhangbanquanguizhengyundongjishusuoyou,ruyouzhuanzaiqingzhumingwenzhanglaiyuan。
正運動技術專注於運動控製技術研究和通用運動控製軟硬件產品的研發,是國家級高新技術企業。正運動技術彙集了來自華為、中zhong興xing等deng公gong司si的de優you秀xiu人ren才cai,在zai堅jian持chi自zi主zhu創chuang新xin的de同tong時shi,積ji極ji聯lian合he各ge大da高gao校xiao協xie同tong運yun動dong控kong製zhi基ji礎chu技ji術shu的de研yan究jiu,是shi國guo內nei工gong控kong領ling域yu發fa展zhan最zui快kuai的de企qi業ye之zhi一yi,也ye是shi國guo內nei少shao有you、完整掌握運動控製核心技術和實時工控軟件平台技術的企業。主要業務有:運動控製卡_運動控製器_EtherCAT運動控製卡_EtherCAT控製器_運動控製係統_視覺控製器__運動控製PLC_運動控製_機器人控製器_視覺定位_XPCIe/XPCI係列運動控製卡等等。
|