傳送帶追蹤動作(視覺追蹤)

下一步,來建立使用視覺的傳送帶追蹤動作。

機器人透過Pick & Place將視覺偵測到的工件(零件)從傳送帶移動至工作台。

步驟概要

  1. 建立虛擬控制器並設定機器人
  2. 建立專案
  3. 新增相當於工件(零件)的物件
  4. 新增並設定相當於工作台的物件
  5. 新增並設定傳送帶物件
  6. 進行傳送帶物件的供應設定與確認
  7. 新增並設定虛擬相機
  8. 新增傳送帶追蹤設定
  9. 執行視覺校準
  10. 建立視覺序列
  11. 執行並設定傳送帶校準
  12. 確認工件(零件)的偵測
  13. 建立並執行程式

步驟詳細說明

  1. 準備

    1. 建立新的虛擬控制器連線。
      在系統設定中,將機器人1設定為"GX8-C652S"(名稱為robot1)。

    2. 建立專案"ConvTrack_Vision"。

    3. 新增相當於由傳送帶搬送之工件(零件)的Box物件(SBox_1),並進行以下設定。

      • 變更為適當的顏色
      • 位置設定(Position X, Y, Z): 550, 550, 25(移動至不妨礙作業的位置)
    4. 新增作為工件(零件)放置位置的工作台(Box物件),並進行以下設定。

      • 物件名稱(Name): Table
      • 尺寸設定(Half size X, Y, Z): 40, 300, 50
      • 位置設定(Position X, Y, Z): -550, 0, 50
    5. 新增傳送帶物件,並進行以下設定。

      • 位置設定(Position X, Y, Z): -400, 0, 100
      • 姿勢設定(Rotation Z): 90
      • 尺寸設定(Half size Height, Width): 500, 100
    6. 進行工件(零件)的供應設定。

      • 點擊上一個步驟中新增之傳送帶物件的"Operation" - "Supply"屬性。
      • 在顯示的供應設定對話方塊中,勾選[供應啟用]。
      • 在[基本物件]中設定前述步驟所新增的"SBox_1"。
      • 將[間隔]的[Min]與[Max]分別設定為"3.000"。
      • 將[偏移]的[Z]設定為"26.000"。

    7. 新增相機設定。

      1. 在Epson RC+ 8.0功能表 - [設置] - [系統配置]的[視覺]中,新增虛擬相機。

      2. 勾選[虛擬],選擇"acA640-120gm"作為型號,然後點擊[應用]按鈕。

      3. 對相機物件進行以下設定,並配置於傳送帶物件上方。

        • 位置設定(Position X, Y, Z): -400, -400, 700
        • 姿勢設定(Rotation X): 180

    8. 新增傳送帶追蹤設定,並進行以下設定。

      1. 在Epson RC+ 8.0功能表 - [設置] - [系統配置]的[控制器] - [傳送帶編碼器]中,確認已新增編碼器。

      2. 在Epson RC+ 8.0功能表 - [工具] - [傳送帶跟蹤]中,新增傳送帶追蹤設定。

      3. 在[類型]中選擇[視覺]。

      4. 對傳送帶物件進行以下設定。

        • 將"Operation"屬性設為"LinkTracking"
        • 將"Conveyor ID"屬性設為"1"

    9. 執行視覺校準。
      此處以"ConveyorCalib"為名稱建立並執行校準。
      視覺校準完成後,將使用的校準用CAD資料移動至不妨礙作業的位置。

      關於相機校準,請參閱以下手冊。

      "Epson RC+ 選配 Vision Guide Software - 視覺校正 - 校正流程 - 校正流程: 獨立式攝影機"

    10. 建立視覺序列,並依照以下步驟確認是否能正確偵測工件(零件)。

      1. 在傳送帶操作面板中操作傳送帶物件,搬送1個作為工件的Box。

      2. 在Box位於相機視野範圍內的位置停止傳送帶物件。

      3. 建立用於辨識此工件的序列"BoxDetection"。

      4. 執行"BoxDetection"序列,確認能正確辨識工件(零件)。

      5. 在"Calibration"屬性中設定前述步驟所建立的校準"ConveyorCalib"。

      6. 若可正常偵測工件(零件),先刪除傳送帶上的工件(零件)。

        • 在傳送帶物件上點擊滑鼠右鍵,然後選擇[刪除所有子項]

    11. 執行傳送帶校準。
      關於模擬器上的傳送帶校準,請參閱以下內容。

      機器人物件屬性 - "傳送帶校準"

      依照以下步驟進行簡易校準。

      1. 在佈局樹狀目錄中,展開機器人節點下的"Conveyor Tracking"節點。

      2. 在"Conveyor 1"上點擊滑鼠右鍵,然後點擊[使用模擬器校準]。

      3. 將"Conveyor Origin"、"Upstream Limit"、"Downstream Limit"各屬性的"Visible"屬性設為"True"。

      4. 確認傳送帶原點、上游極限、下游極限的顯示。

    12. 進行防止重複登錄的設定。
      開啟Epson RC+ 8.0功能表 - [工具] - [傳送帶跟蹤],將防止工件重複登錄的距離設定為"200mm"。

  2. 建立程式

    軟體觸發器

    將以下程式建立為Main.prg。
    此程式使用相機的軟體觸發執行傳送帶追蹤動作。

    Function main
       SimSet Conveyor_1.ClearSupply
    
       Motor On
       Power High
       Speed 100
       Accel 100, 100
    
       Cnv_Mode 1, 1
       Cnv_Accel 1, 2000
       Cnv_QueRemove 1, All
    
       Integer i
       String name$
    
       Xqt VisionDetection
    
       TmReset 0
       SimSet Conveyor_1.Start
    
       For i = 1 To 10
          Wait Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0
          Wait 0.5
    
          Jump Cnv_QueGet(1, 0) +Z(51)
    
          SimGet robot1.NearestObjToTool(0), name$
          SimSet robot1.Pick, name$
    
          Jump Here :X(-550) :Y(i * 60 - 320)
          SimSet robot1.Place, name$, Table
    
          Cnv_QueRemove 1, 0
       Next
    
       SimSet Conveyor_1.Stop
       Quit VisionDetection
    
       Print "Finished, ", Tmr(0), "[s]"
    Fend
    
    Function VisionDetection
       Integer numFound, i, state
       Real x, y, u
       Boolean found
    
       Off 10
       Wait 0.5
       Do
          VRun BoxDetection
          Cnv_Trigger (1)
    
          VGet BoxDetection.Geom01.NumberFound, numFound
          Print "Num Found ", numFound
    
          For i = 1 To numFound
             VGet BoxDetection.Geom01.CameraXYU(i), found, x, y, u
             Cnv_QueAdd 1, Cnv_Point(1, x, y)
          Next
    
          Wait 1
       Loop
    Fend
    

    硬體觸發器

    也可以使用相機物件的虛擬硬體觸發進行傳送帶追蹤。
    依照以下步驟進行硬體觸發設定。

    1. 將相機物件的"Trigger IO"屬性設定為"10"。

    2. 將傳送帶物件的"Operation" - "Trigger IO"屬性設定為與上一個步驟所設定值相同的"10"。

    3. 將Vision Guide序列"BoxDetection"的"RuntimeAcquire"屬性值設為"Strobed"。

    4. 將上述建立之程式的函數"VisionDetection"變更如下。

      Function VisionDetection
          Integer numFound, i, state
          Real x, y, u
          Boolean found
      
          Off 10
          Wait 0.5
          Do
              VRun BoxDetection
              On 10
      
              Do
        	      VGet BoxDetection.AcquireState, state
              Loop Until state = 3
      
              VGet BoxDetection.Geom01.NumberFound, numFound
              Print "Num Found ", numFound
      
              For i = 1 To numFound
        	      VGet BoxDetection.Geom01.CameraXYU(i), found, x, y, u
        	      Cnv_QueAdd 1, Cnv_Point(1, x, y)
              Next
      
              Off 10
              Wait 0.5
          Loop
      Fend
      
  3. 執行程式

    1. 點擊工具條的[打開運行窗口]按鈕,顯示[運行]視窗。

    2. 選擇函數「main」,然後點擊[開始]按鈕。