以機器人使用視覺

在您使用一個視覺序列的結果來引導機器人之前,您必須校正該序列所使用的攝影機。若想了解詳情,請參考以下章節。
視覺校正

若您嘗試從一個需要校正的序列物件取得結果,但卻沒有校正,就會發生執行時間錯誤。

位置結果

若有一視覺序列使用了經過機器人校正的攝影機,則在該序列中,各物件所報告的所有位置結果都會位於所指定的本地座標系統內。與其他機器人/視覺系統不同的是,本系統不需要使用額外步驟來呼叫函式,將畫素座標轉換成機器人座標。這項工作將完全由Vision Guide 8.0自行處理。對於機器人本地座標系統中的零件,可輕易讀取其X、Y和U座標。
若想將末端夾具精準定位在視覺系統所判定的位置,您必須為末端夾具定義一個工具。請參見下一小節的「定義一個工具」。
下列結果可用來引導機器人:

結果 說明
RobotXYU 用於回傳X、Y和U以及所找到的狀態。
RobotToolXYU

僅使用面上式攝影機。

回傳X、Y及U座標值,以定義含找到狀態的機器人工具。

RobotX 用於回傳X座標。
RobotY 用於回傳Y座標。
RobotU 用於回傳U座標。
RobotPlacePos

僅使用面上式攝影機。

回傳以點為單位的機器人位置,以將偵測的部分置於登錄為 (RobotPlaceTargetPos) 的工作區位置。

NOTE:各物件皆需設定CalRobotPlacePos。

U座標零度位置是從機器人底座沿著Y軸筆直指出的位置。
以下是對RobotPlacePos的補充說明。

在上圖中,在機器人座標系(工作平面)上放一個向上攝像機,CalRobotPlacePos記錄工件的放置位置(RobotPlaceTargetPos)。在實際操作中,首先在視覺序列中檢測(VRun)拾取工件的位置。然後,獲取(VGet)在放置工件時機器人的位置(RobotPlacePos)。
圖的右側是移動到RobotPlacePos后的狀態。移動到RobotPlacePos時,工件的位置姿勢可以與工件放置位置匹配。
在RobotPlacePos中獲得的點,因為姿勢標誌是預設值,在移動時根據需要進行校正。下面的示例演示,如何使用向上攝像機檢測拾取工件的位置,並以減少關節移動量,將其移動到工件放置位置上方。

Function placePart  
	'Move robot into position snapshot   
	Go camshot  
	  
	VRun findPart  
	VGet findPart.Blob01.RobotPlacePos, P100  
	  
	'------------------\-  
	' When the robot is SCARA  
	Double diffJ4 'Angle difference between RobotPlacePos and latch position(J4)  
	diffJ4 = PAgl(P100, 4) \- PAgl(LatchPos(WithoutToolArm), 4)  
	If diffJ4 > 180 Then  
		Go P100 -U(360) 'Joint4 will be the shortest movement  
	ElseIf diffJ4 < -180 Then  
		Go P100 +U(360) 'Joint4 will be the shortest movement  
	Else  
		Go P100  
	EndIf  
	  
	'------------------\-  
	' When the robot is 6-axis  
	Go P100 LJM 4	 '4: Joint6 will be the shortest movement  
Fend  

若在RobotPlacePos獲得的點超出操作範圍,並可能導致錯誤4007。此時,請更改工件放置位置或使用RobotToolXYU。

定義一個工具

為機器人末端夾具來定義工具是很重要的。
這樣能告訴機器人末端夾具在哪裡,以便讓所有位置資訊皆對應至末端夾具,而非TOOL 0位置。
使用TLSET指令,在SPEL+中定義一個工具。
下列是三種定義工具偏差的方法。

以機器人管理員工具精靈來定義工具
您可以在Robot Manager中使用Tool Wizard來定義一個工具。
若想使用Tool Wizard,請執行下列步驟:

  1. 開啟Robot Manager。
  2. 按一下[Tools]頁籤。
  3. 按一下[Tool Wizard]按鈕。
  4. 請依精靈中的步驟來建立工具。

使用固定面上式攝影機來計算工具偏差
下列範例說明如何使用固定面上式攝影機來計算工具的偏差。其係使用RobotToolXYU結果來判斷工具偏差值。
函式會先執行一個序列,找出工具的尖端後,接著使用VGet RobotToolXYU擷取工具偏差值,再使用TLSet定義工具。

Function DefineTool	  
  Boolean found  
  Real xTool, yTool, uTool  
	  
  VRun findTip  
  VGet findTip.tip.RobotToolXYU, found, xTool, yTool, uTool  
  If found Then  
    TlSet 1, XY(xTool, yTool, 0, 0)  
EndIf  
Fend  

手動計算工具偏差
在下列步驟中,您必須從Jog & Teach視窗中,以Jog按鈕微動機器人。在如下列所示計算工具偏差時,您無法(使用SFREE)釋放軸,並手動移動機器人。
執行下列步驟以計算工具偏差。

提示


  • 於使用垂直6軸機器人時,請執行下列本地指令,然後再依照下一頁的步驟執行。 > Local 1 ' Here
  • 於擷取以下校正步驟的目前位置時,應使用本地1的位置。若使用Jog & Teach視窗,請將微動模式設為「Local」,將目前位置的顯示模式設為「World」,再將本地號碼設為「1」。 若使用指令視窗,請執行如下指令,以檢查本地1的位置。
    > Print Here@1  
    
  1. 將U軸定位在0º。
  2. 將工具設定為「0」(TOOL 0)。
  3. 將末端夾具微動至參考點上,然後仔細對齊。請勿變更U軸設定值。
  4. 記下目前的X和Y座標,分別標示為X1和Y1。
  5. 將U軸微動至180º位置。
  6. 將末端夾具微動至參考點上,然後仔細對齊。請勿變更U軸設定值。
  7. 記下目前的X和Y座標,分別標示為X2和Y2。
  8. 使用下列公式來計算工具偏差:
    xTool = (X2 - X1) / 2
    yTool = (Y2 - Y1) / 2
  9. 從Robot Manager上的Tools頁面或從Command視窗來定義一個工具。
    TLSET 1, XY(xTool, yTool, 0, 0)
  10. 測試工具設定值。
    將目前的工具設定成您在前一個步驟所定義的工具。例如TOOL 1。將末端夾具微動至參考點上。現在微動U軸。末端夾具應會維持在參考點上。

機器人取放電路板的工具校正

在本範例中,將使用Vision Guide 8.0來計算由機器人進行電路板取放的工具。根據電路板中兩個參考點的座標計算工具偏移。本操作需要一部固定面上式攝影機。在校正攝影機之後,您需要教導放置電路板的位置一次。

若想教導放置的位置:

  1. 以機器人取放電路板。

  2. 呼叫範例函式CalcBoardTool來計算工具1。

  3. 切換至Tool 1。

  4. 微動機器人至電路板的放置位置。

  5. 教導放置位置。

    符号 說明
    a 參考點1 (Fid1CamPos)
    b 電路板
    c 待計算的工具偏差值
    d 參考點2 (Fid2CamPos)
    e 機器人的固定位置
Function CalcBoardTool As Boolean  
  Boolean found  
  Real x, y, theta  
  Real toolX1, toolY1, toolU  
  Real toolX2, toolY2  
  
  CalcBoardTool = False  
  Jump Fid1CamPos  ' Locate fiducial 1 over camera  
  VRun SearchFid1  
  VGet SearchFid1.Corr01.RobotToolXYU, found, toolX1, toolY1, toolU  
  If Not found Then  
    Exit Function  
  EndIf  
  
  Jump Fid2CamPos  ' Locate fiducial 2 over camera  
  VRun SearchFid2  
  VGet SearchFid2.Corr01.RobotToolXYU, found, toolX2, toolY2, toolU  
  If Not found Then  
    Exit Function  
  EndIf  
  x = (toolX1 + toolX2) / 2  
  y = (toolY1 + toolY2) / 2  
  theta = Atan2(toolX1 \- toolX2, toolY1 \- toolY2)  
  toolU = RadToDeg(theta)  
  TlSet 1, XY(x, y, 0, toolU)  
  CalcBoardTool = True  
Fend  

設定攝影機位置以搜尋托盤

在使用機械臂#2組裝攝影機搜尋托盤時,會非常難以控制攝影機的成影位置。然而,可使用Arm指令來為攝影機定義一個Arm,讓攝影機輕易移動至托盤上的每一成影位置。若想深入了解Arm指令,請參考以下內容。
Epson RC+ 8.0 SPEL+ Language Reference

提示:
Arm指令只適用於SCARA機器人。