技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > VPLC系列機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)快速入門(mén)(六)

VPLC系列機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)快速入門(mén)(六)

時(shí)間:2021-06-17 16:07:51來(lái)源:深圳市正運(yùn)動(dòng)技術(shù)有限公司

導(dǎo)語(yǔ):?VPLC系列機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)實(shí)現(xiàn)測(cè)量標(biāo)定的功能,將機(jī)器視覺(jué)處理的像素結(jié)果(單位:像素)轉(zhuǎn)換成現(xiàn)實(shí)中使用到的實(shí)際結(jié)果(單位:毫米),或者是將機(jī)器視覺(jué)中使用的圖像坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)的過(guò)程。

1.png

  

此前,我們依次講解了軟硬件介紹及計(jì)數(shù)實(shí)例、相機(jī)的基本使用、基于形狀匹配的視覺(jué)定位、BLOB有無(wú)檢測(cè)以及測(cè)量尺寸。

  本期課程,正運(yùn)動(dòng)技術(shù)和大家一起分享和標(biāo)定有關(guān)的詳細(xì)知識(shí)內(nèi)容。
2.png

3.png

 機(jī)器視覺(jué)檢測(cè)結(jié)果

  將機(jī)器視覺(jué)處理的像素結(jié)果(單位:像素)轉(zhuǎn)換成現(xiàn)實(shí)中使用到的實(shí)際結(jié)果(單位:毫米),或者是將機(jī)器視覺(jué)中使用的圖像坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)的過(guò)程。

  4.png

    

  測(cè)量標(biāo)定是使用已知尺寸的標(biāo)準(zhǔn)模塊,如已知半徑的小圓塊、已知寬度的小方塊、刻度尺等物品,在使用機(jī)器視覺(jué)檢測(cè)出對(duì)應(yīng)尺寸的像素值后,求出實(shí)際尺寸值和像素值的比例即像素比例,之后再將檢測(cè)的像素結(jié)果乘以像素比例即可得出實(shí)際值結(jié)果。

  5.png

    

  坐標(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é)果。

  6.png

7.png

      

  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ù)。

  運(yùn)動(dòng)控制

    

  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)定!

  9.png

10.png

   坐標(biāo)標(biāo)定流程圖

  運(yùn)動(dòng)控制

    

  演示實(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ì)主界面。

  運(yùn)動(dòng)控制

    

  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ì)界面布局。

  運(yùn)動(dòng)控制

    

  6.在calib窗口界面中關(guān)聯(lián)元件變量。

  運(yùn)動(dòng)控制

    

  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

  運(yùn)動(dòng)控制

    

  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í)仿真效果圖。

  運(yùn)動(dòng)控制

    

  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

  運(yùn)動(dòng)控制

    在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

  運(yùn)動(dòng)控制

    

  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

  運(yùn)動(dòng)控制 

【單次執(zhí)行】按鈕按下時(shí)的仿真效果圖

  運(yùn)動(dòng)控制

    使用標(biāo)定功能的檢測(cè)效果圖

  運(yùn)動(dòng)控制

    不使用標(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)源。

  

運(yùn)動(dòng)控制  




標(biāo)簽: 運(yùn)動(dòng)控制機(jī)器視覺(jué)

點(diǎn)贊

分享到:

上一篇:自主移動(dòng)機(jī)器人四大基礎(chǔ)技術(shù)

下一篇:人工智能和3D打印的進(jìn)步如何...

中國(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)資訊

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)