技術(shù)頻道

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

VPLC系列機器視覺運動控制一體機快速入門(六)

時間:2021-06-17 16:07:51來源:深圳市正運動技術(shù)有限公司

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

1.png

  

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

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

3.png

 機器視覺檢測結(jié)果

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

  4.png

    

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

  5.png

    

  坐標標定是指使用機器視覺獲取幾組圖像坐標數(shù)據(jù)(至少9組),然后輸入對應(yīng)的幾組世界坐標數(shù)據(jù),根據(jù)公式計算出矩陣坐標轉(zhuǎn)換系數(shù),然后將檢測的圖像坐標結(jié)果按照這個標定系數(shù)轉(zhuǎn)換成世界坐標結(jié)果。

  6.png

7.png

      

  1.測量標定

  測量標定的實施方法比較簡單,只需要將已知尺寸的標準塊放到檢測平臺中,然后使用視覺輸出的像素結(jié)果和已知尺寸計算得到像素比例即可。

  2.坐標標定--使用標定板

  標定板的特點是特征點的距離是固定且已知的。我們就可以在標定板上選擇幾組矩陣坐標數(shù)據(jù),把某個點設(shè)置成坐標原點,再根據(jù)實際圓點(或棋盤格)的距離定義對應(yīng)點的實際坐標,最后再使用視覺檢測出對應(yīng)特征點的圖像坐標即可。得到圖像坐標數(shù)據(jù)和世界坐標數(shù)據(jù)后就可以求出標定系數(shù)。

  運動控制

    

  3.坐標標定--不使用標定板

  在沒有準備標定板的條件下做坐標標定需要運動機構(gòu)如機械手配合。

  機械手抓取產(chǎn)品按照指定的位置坐標(機械手坐標)走9個點位(這9個點位需要保證在相機拍照的視野范圍內(nèi)),每走到一個點位就使用相機獲取產(chǎn)品特征在當前位置的圖像坐標并記錄圖像坐標數(shù)據(jù),依次走完9個點位即可。然后再根據(jù)獲取的圖像坐標數(shù)據(jù)和記錄的機械手坐標進行坐標系轉(zhuǎn)換,得出標定系數(shù)。

  注意:在相機結(jié)構(gòu)和檢測平臺的相對位置發(fā)生變化時需要重新標定!

  9.png

10.png

   坐標標定流程圖

  運動控制

    

  演示實例說明:本課程實例在《VPLC系列機器視覺運動控制一體機快速入門(三)--形狀匹配》實例的基礎(chǔ)上增加使用標定板進行坐標標定的功能,并輸出標定后的產(chǎn)品位置。

  1.打開ZDevelop軟件:點擊[文件]→[打開項目]→選擇“基于形狀匹配的視覺定位”項目。

  2.修改設(shè)計主界面。

  運動控制

    

  3.在global_variable.bas文件中增加定義坐標標定使用到的全局變量。

  '***********定義坐標標定相關(guān)變量*********************

  '定義是否使用標定功能標志,0-不使用標定功能,1-使用標定功能

  GLOBAL DIM d_use_calib

  d_use_calib = 0

  '定義標定成功標志,0-標定未成功,1-標定成功

  GLOBAL DIM d_calib_success

  d_calib_success = 0

  '標定參數(shù)

  GLOBAL ZVOBJECT ca_param

  '標定參數(shù)數(shù)組,依次為:標定類型、對比度、極性、最小面積、最大面積、世界坐標點間距

  GLOBAL DIM d_ca_param(6) 'd開頭表示數(shù)據(jù)結(jié)構(gòu)

  '標定誤差,最小誤差、最大誤差、平均誤差

  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

  '***********結(jié)束定義坐標標定相關(guān)變量******************

  4.在InitLocator.bas文件中初始化坐標標定相關(guān)的測量參數(shù)。

  '初始化坐標標定相關(guān)的變量

  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,并設(shè)計界面布局。

  運動控制

    

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

  運動控制

    

  7.添加在主界面按下【坐標標定】按鈕時響應(yīng)的函數(shù),并關(guān)聯(lián)動作函數(shù)名。

  '點擊主界面坐標標定按鈕時響應(yīng)的函數(shù)

  GLOBAL SUB btn_calib()

  ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(13, 91), HMI_CONTROLSIZEY(13, 91)) '設(shè)置坐標標定窗口鎖存通道0的鎖存大小

  ZV_LATCHCLEAR(0) '將鎖存通道0清空

  ZV_LATCH(grabImg, 0) '顯示采集圖像顯示到鎖存通道0中

  HMI_SHOWWINDOW(13)

  END SUB

  運動控制

    

  8.添加在calib界面按下【提取mark點】按鈕時響應(yīng)的函數(shù),并關(guān)聯(lián)動作函數(shù)名。

  '坐標標定界面按下提取mark點按鈕時響應(yīng)的函數(shù)

  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

      '根據(jù)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

      '設(shè)置用于繪制mark點的圖像

      ZVOBJECT color

      ZV_GRAYTORGB(grabImg, color)

      '和繪制mark點的十字架

      DIM j, pixNum '像素個數(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點的序號

      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界面按下【標定】按鈕時響應(yīng)的函數(shù),并關(guān)聯(lián)動作函數(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

      '計算標定誤差

      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界面按下【返回】按鈕時響應(yīng)的函數(shù),并關(guān)聯(lián)動作函數(shù)名。

  '坐標標定界面按下返回按鈕時響應(yīng)的函數(shù)

  global sub btn_ca_param_rtn()

      HMI_CLOSEWINDOW(13)

  end sub

  運動控制

    

  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))'計算剛性變換矩陣

                      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

  運動控制 

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

  運動控制

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

  運動控制

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

  

      本次,正運動技術(shù)VPLC系列機器視覺運動控制一體機快速入門(六)——標定功能就分享到這里,更多精彩內(nèi)容請關(guān)注“正運動小助手”公眾號。

  本文由正運動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。

  

運動控制  




標簽: 運動控制機器視覺

點贊

分享到:

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

下一篇:人工智能和3D打印的進步如何...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。

相關(guān)資訊

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

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

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

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