此前,我們依次講解了軟硬件介紹及計(jì)數(shù)實(shí)例、相機(jī)的基本使用、基于形狀匹配的視覺定位、BLOB有無檢測以及測量尺寸。
本期課程,正運(yùn)動(dòng)技術(shù)和大家一起分享和標(biāo)定有關(guān)的詳細(xì)知識(shí)內(nèi)容。
![2.png](http://www.zmotion.com.cn/upload/20210220/1613793330749572.png)
![3.png](http://www.zmotion.com.cn/upload/20210220/1613793345244359.png)
機(jī)器視覺檢測結(jié)果
將機(jī)器視覺處理的像素結(jié)果(單位:像素)轉(zhuǎn)換成現(xiàn)實(shí)中使用到的實(shí)際結(jié)果(單位:毫米),或者是將機(jī)器視覺中使用的圖像坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)的過程。
![4.png](http://www.zmotion.com.cn/upload/20210220/1613793367712223.png)
測量標(biāo)定是使用已知尺寸的標(biāo)準(zhǔn)模塊,如已知半徑的小圓塊、已知寬度的小方塊、刻度尺等物品,在使用機(jī)器視覺檢測出對(duì)應(yīng)尺寸的像素值后,求出實(shí)際尺寸值和像素值的比例即像素比例,之后再將檢測的像素結(jié)果乘以像素比例即可得出實(shí)際值結(jié)果。
![5.png](http://www.zmotion.com.cn/upload/20210220/1613793379918921.png)
坐標(biāo)標(biāo)定是指使用機(jī)器視覺獲取幾組圖像坐標(biāo)數(shù)據(jù)(至少9組),然后輸入對(duì)應(yīng)的幾組世界坐標(biāo)數(shù)據(jù),根據(jù)公式計(jì)算出矩陣坐標(biāo)轉(zhuǎn)換系數(shù),然后將檢測的圖像坐標(biāo)結(jié)果按照這個(gè)標(biāo)定系數(shù)轉(zhuǎn)換成世界坐標(biāo)結(jié)果。
![6.png](http://www.zmotion.com.cn/upload/20210220/1613793391238470.png)
![7.png](http://www.zmotion.com.cn/upload/20210220/1613793401471781.png)
1.測量標(biāo)定
測量標(biāo)定的實(shí)施方法比較簡單,只需要將已知尺寸的標(biāo)準(zhǔn)塊放到檢測平臺(tái)中,然后使用視覺輸出的像素結(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)(或棋盤格)的距離定義對(duì)應(yīng)點(diǎn)的實(shí)際坐標(biāo),最后再使用視覺檢測出對(duì)應(yīng)特征點(diǎn)的圖像坐標(biāo)即可。得到圖像坐標(biāo)數(shù)據(jù)和世界坐標(biāo)數(shù)據(jù)后就可以求出標(biāo)定系數(shù)。
![8.png](http://www.zmotion.com.cn/upload/20210220/1613799186936729.png)
3.坐標(biāo)標(biāo)定--不使用標(biāo)定板
在沒有準(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)和檢測平臺(tái)的相對(duì)位置發(fā)生變化時(shí)需要重新標(biāo)定!
![9.png](http://www.zmotion.com.cn/upload/20210220/1613799208587267.png)
![10.png](http://www.zmotion.com.cn/upload/20210220/1613799219249209.png)
坐標(biāo)標(biāo)定流程圖
![11.png](http://www.zmotion.com.cn/upload/20210220/1613799270360732.png)
演示實(shí)例說明:本課程實(shí)例在《VPLC系列機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)快速入門(三)--形狀匹配》實(shí)例的基礎(chǔ)上增加使用標(biāo)定板進(jìn)行坐標(biāo)標(biāo)定的功能,并輸出標(biāo)定后的產(chǎn)品位置。
1.打開ZDevelop軟件:點(diǎn)擊[文件]→[打開項(xiàng)目]→選擇“基于形狀匹配的視覺定位”項(xiàng)目。
2.修改設(shè)計(jì)主界面。
![12.png](http://www.zmotion.com.cn/upload/20210220/1613799312854228.png)
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)定類型、對(duì)比度、極性、最小面積、最大面積、世界坐標(biāo)點(diǎn)間距
GLOBAL DIM d_ca_param(6) 'd開頭表示數(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)的測量參數(shù)。
'初始化坐標(biāo)標(biāo)定相關(guān)的變量
d_ca_param(0) = 0 '標(biāo)定類型
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ì)界面布局。
![13.png](http://www.zmotion.com.cn/upload/20210220/1613799360252708.png)
6.在calib窗口界面中關(guān)聯(lián)元件變量。
![14.png](http://www.zmotion.com.cn/upload/20210220/1613799368323786.png)
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
![15.png](http://www.zmotion.com.cn/upload/20210220/1613799386815119.png)
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í)仿真效果圖。
![16.png](http://www.zmotion.com.cn/upload/20210220/1613799510648663.png)
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
![17.png](http://www.zmotion.com.cn/upload/20210220/1613799537183539.png)
在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
![18.png](http://www.zmotion.com.cn/upload/20210220/1613799565452208.png)
11.修改匹配測試子函數(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
![19.png](http://www.zmotion.com.cn/upload/20210220/1613799594166961.png)
【單次執(zhí)行】按鈕按下時(shí)的仿真效果圖
![20.png](http://www.zmotion.com.cn/upload/20210220/1613799609839652.png)
使用標(biāo)定功能的檢測效果圖
![21.png](http://www.zmotion.com.cn/upload/20210220/1613799618677382.png)
不使用標(biāo)定功能的檢測效果圖
本次,正運(yùn)動(dòng)技術(shù)VPLC系列機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)快速入門(六)——標(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í),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。
-
機(jī)器視覺
+關(guān)注
關(guān)注
162文章
4414瀏覽量
120790 -
人工智能
+關(guān)注
關(guān)注
1796文章
47791瀏覽量
240552 -
目標(biāo)定位
+關(guān)注
關(guān)注
0文章
9瀏覽量
7546 -
正運(yùn)動(dòng)技術(shù)
+關(guān)注
關(guān)注
0文章
104瀏覽量
461
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web3/M00/05/96/wKgZO2eA4wWAM0-uAATs461YeRc393.png)
DELTA并聯(lián)機(jī)械手視覺方案榮獲2024年度機(jī)器人應(yīng)用典型案例獎(jiǎng) #正運(yùn)動(dòng)技術(shù) #機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)
工業(yè)一體機(jī)在工業(yè)視覺設(shè)備中的應(yīng)用
![](https://file1.elecfans.com/web3/M00/00/C5/wKgZO2dNgi-ARv97AAseYBJde6w882.png)
瑞迅科技瑞芯微RK3588系列工控一體機(jī),CPU強(qiáng)大,6TOPS算力的高性能神經(jīng)網(wǎng)絡(luò)處理器單元 #工控一體機(jī)
機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)在DELTA并聯(lián)機(jī)械手視覺上下料應(yīng)用
![<b class='flag-5'>機(jī)器</b><b class='flag-5'>視覺</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b><b class='flag-5'>一體機(jī)</b>在DELTA并聯(lián)機(jī)械手<b class='flag-5'>視覺</b>上下料應(yīng)用](https://file1.elecfans.com//web2/M00/0A/12/wKgZomcZnROAGEw9AAG9KxejKzQ716.png)
![](https://file1.elecfans.com/web1/M00/F3/7C/wKgaoWcYWayAP4qnAAQTbFVnnrQ381.png)
機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)在DELTA并聯(lián)機(jī)械手視覺上下料的應(yīng)用#機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)
聚徽-工控一體機(jī)有什么創(chuàng)新
藍(lán)海華騰參股公司頂控科技發(fā)布運(yùn)動(dòng)控制一體機(jī)系列產(chǎn)品
機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)VPLC532E在汽車膠帶纏繞的開放式CNC應(yīng)用
![<b class='flag-5'>機(jī)器</b><b class='flag-5'>視覺</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b><b class='flag-5'>一體機(jī)</b><b class='flag-5'>VPLC</b>532E在汽車膠帶纏繞的開放式CNC應(yīng)用](https://file1.elecfans.com/web2/M00/03/4A/wKgZombCpZOAKQgKAADjv3ek7ew182.png)
VPLC系列機(jī)器視覺運(yùn)動(dòng)控制一體機(jī)在五軸聯(lián)動(dòng)點(diǎn)膠上的應(yīng)用
聚徽觸控-工控一體機(jī)和 PLC 一體機(jī)有什么不同
![](https://file1.elecfans.com/web2/M00/E8/C0/wKgaomZNROuAKmhEAAFIse3gCv8227.png)
評(píng)論