傳送帶追蹤動作(視覺追蹤)
下一步,來建立使用視覺的傳送帶追蹤動作。
機器人透過Pick & Place將視覺偵測到的工件(零件)從傳送帶移動至工作台。
步驟概要
- 建立虛擬控制器並設定機器人
- 建立專案
- 新增相當於工件(零件)的物件
- 新增並設定相當於工作台的物件
- 新增並設定傳送帶物件
- 進行傳送帶物件的供應設定與確認
- 新增並設定虛擬相機
- 新增傳送帶追蹤設定
- 執行視覺校準
- 建立視覺序列
- 執行並設定傳送帶校準
- 確認工件(零件)的偵測
- 建立並執行程式
步驟詳細說明
準備
建立新的虛擬控制器連線。
在系統設定中,將機器人1設定為"GX8-C652S"(名稱為robot1)。建立專案"ConvTrack_Vision"。
新增相當於由傳送帶搬送之工件(零件)的Box物件(SBox_1),並進行以下設定。
- 變更為適當的顏色
- 位置設定(Position X, Y, Z): 550, 550, 25(移動至不妨礙作業的位置)
新增作為工件(零件)放置位置的工作台(Box物件),並進行以下設定。
- 物件名稱(Name): Table
- 尺寸設定(Half size X, Y, Z): 40, 300, 50
- 位置設定(Position X, Y, Z): -550, 0, 50
新增傳送帶物件,並進行以下設定。
- 位置設定(Position X, Y, Z): -400, 0, 100
- 姿勢設定(Rotation Z): 90
- 尺寸設定(Half size Height, Width): 500, 100
進行工件(零件)的供應設定。
- 點擊上一個步驟中新增之傳送帶物件的"Operation" - "Supply"屬性。
- 在顯示的供應設定對話方塊中,勾選[供應啟用]。
- 在[基本物件]中設定前述步驟所新增的"SBox_1"。
- 將[間隔]的[Min]與[Max]分別設定為"3.000"。
- 將[偏移]的[Z]設定為"26.000"。
新增相機設定。
在Epson RC+ 8.0功能表 - [設置] - [系統配置]的[視覺]中,新增虛擬相機。
勾選[虛擬],選擇"acA640-120gm"作為型號,然後點擊[應用]按鈕。
對相機物件進行以下設定,並配置於傳送帶物件上方。
- 位置設定(Position X, Y, Z): -400, -400, 700
- 姿勢設定(Rotation X): 180
新增傳送帶追蹤設定,並進行以下設定。
在Epson RC+ 8.0功能表 - [設置] - [系統配置]的[控制器] - [傳送帶編碼器]中,確認已新增編碼器。
在Epson RC+ 8.0功能表 - [工具] - [傳送帶跟蹤]中,新增傳送帶追蹤設定。
在[類型]中選擇[視覺]。
對傳送帶物件進行以下設定。
- 將"Operation"屬性設為"LinkTracking"
- 將"Conveyor ID"屬性設為"1"
執行視覺校準。
此處以"ConveyorCalib"為名稱建立並執行校準。
視覺校準完成後,將使用的校準用CAD資料移動至不妨礙作業的位置。關於相機校準,請參閱以下手冊。
"Epson RC+ 選配 Vision Guide Software - 視覺校正 - 校正流程 - 校正流程: 獨立式攝影機"
建立視覺序列,並依照以下步驟確認是否能正確偵測工件(零件)。
在傳送帶操作面板中操作傳送帶物件,搬送1個作為工件的Box。
在Box位於相機視野範圍內的位置停止傳送帶物件。
建立用於辨識此工件的序列"BoxDetection"。
執行"BoxDetection"序列,確認能正確辨識工件(零件)。
在"Calibration"屬性中設定前述步驟所建立的校準"ConveyorCalib"。
若可正常偵測工件(零件),先刪除傳送帶上的工件(零件)。
在傳送帶物件上點擊滑鼠右鍵,然後選擇[刪除所有子項]
執行傳送帶校準。
關於模擬器上的傳送帶校準,請參閱以下內容。機器人物件屬性 - "傳送帶校準"
依照以下步驟進行簡易校準。
在佈局樹狀目錄中,展開機器人節點下的"Conveyor Tracking"節點。
在"Conveyor 1"上點擊滑鼠右鍵,然後點擊[使用模擬器校準]。
將"Conveyor Origin"、"Upstream Limit"、"Downstream Limit"各屬性的"Visible"屬性設為"True"。
確認傳送帶原點、上游極限、下游極限的顯示。
進行防止重複登錄的設定。
開啟Epson RC+ 8.0功能表 - [工具] - [傳送帶跟蹤],將防止工件重複登錄的距離設定為"200mm"。
建立程式
軟體觸發器
將以下程式建立為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硬體觸發器
也可以使用相機物件的虛擬硬體觸發進行傳送帶追蹤。
依照以下步驟進行硬體觸發設定。將相機物件的"Trigger IO"屬性設定為"10"。
將傳送帶物件的"Operation" - "Trigger IO"屬性設定為與上一個步驟所設定值相同的"10"。
將Vision Guide序列"BoxDetection"的"RuntimeAcquire"屬性值設為"Strobed"。
將上述建立之程式的函數"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
執行程式
點擊工具條的[打開運行窗口]按鈕,顯示[運行]視窗。
選擇函數「main」,然後點擊[開始]按鈕。