快速入門:Vision Guide 8.0教學檔

教學檔概觀

本章的目的是帶領您完成一個簡單的視覺應用,以協助向您介紹一些Vision Guide 8.0的基本使用概念,並向您展示其易用性。在多數情況下,將只會說明操作步驟,而不會說明所完成的詳情。這是為了幫助您盡快熟悉本教學檔中所說明的用例。然後在後續的章節中,您將會閱讀到細節。
我們將不會在本教學檔中使用實際的零件,而會使用簡單的物件圖例,以供您製作備份,並放置在攝影機下,以此練習教學檔。
本教學檔將會示範如何建立一個簡單的應用,以使用視覺來尋找零件,然後將機器人移動至零件處。本教學檔假設您的機器人為水平式多關節機器人類型,攝影機組裝在第2支機械臂連結點的末端。

本章節包括下列各小節:

  • 本教學檔所需要的項目。
  • 攝影機鏡頭設定。
  • 建立一個新Epson RC+ 8.0專案。
  • 建立一個新的視覺序列。
  • 使用Blob物件來尋找零件。
  • 撰寫SPEL+程式,和視覺序列配合使用。
  • 針對裝了攝影機的機器人進行校正。
  • 使用視覺來指示機器人移動至零件。
  • 尋找並移動至多個類似的零件。

在本章後續 本教學檔所需要的項目 中,將會有兩頁內容說明視覺教學檔的列印目標。這些頁面將會在教學檔中使用。
在目標頁面之後,會有一個稱為 啟動Epson RC+ 8.0並建立一個新專案 的小節。將會從該小節開始介紹真正的教學檔。

本教學檔所需要的項目。

本教學檔將可引導您透過Vision Guide 8.0來使用Epson機器人。本教學檔的學習前提為您已對使用Epson RC+ 8.0和Epson機器人有一定的了解。若您對於使用Epson RC+ 8.0還有一些不確定之處,在您開始本教學檔之前,您可能需要再花一些時間複習。在練習本教學檔時,需要備妥下列項目:

  • Epson RC+ 8.0必須安裝在您的電腦上。
  • 必須為Vision Guide 8.0安裝攝影機,並能正確運作。
  • 應針對連接於機器人前方的工作平台,將Epson機器人組裝至該平台的基台上,以方便機器人可以存取工作平台。
  • 如果機器人為SCARA機器人,則攝影機安裝至機器人的機械臂#2。如果機器人為6軸機器人,則攝影機應安裝在機器人的機械臂#6的凸緣。若所使用的特定機器人需要攝影機組裝支架,可向Epson購買。請以面下式的形式來組裝攝影機。

提示


針對PC、攝影機、以及控制器連接至Ethernet開關時,請確認已關閉PC的主電源、控制器電源及攝影機電源。若未關閉電源,可能會造成損壞。

  • 應將包含目標零件圖例的頁面製作備份,並放置在攝影機下。(在本清單後的下一節中,可找到目標零件的圖例。)
  • 應選擇視野約為40 mm × 30 mm的攝影機鏡頭。在此處的測試中,我們使用的是Vision Guide 8.0移動式攝影機(帶NET 1044BU攝影機的CV1),附16 mm的鏡頭,離工作平台的距離約210 mm。然而,若想要更準確地對焦,可能還需要進行一些調整。我們將會引導您操作。
  • 在本教學檔中,並不會取放任何零件。然而,我們會將機器人移動至目標面上所繪製的零件位置。您需要在機械臂#3(J3軸)上連接一個夾具或操作桿。本教學檔假設操作桿連接到機械臂#3(J3)上。從Z軸柄中心直接朝下的操作桿可順利運作。本夾具或操作桿將用於校正,以及用來移動至目標頁面上的目標零件。


教學檔用的單一目標特徵(一個墊圈的圖例)


教學檔用的多個目標特徵(多個墊圈的圖例)

啟動新Epson RC+ 8.0並建立一個新專案

  1. 開啟控制器。
  2. 在Windows桌面上的[Epson RC+ 8.0]圖示上按兩下,以啟動Epson RC+ 8.0。
  3. 在Epson RC+ 8.0功能表的Project功能表上按一下。
  4. 在Project功能表的New Project功能表項目上按一下。會出現[New Project]對話框。
  5. 輸入新專案的名稱。我們建議您使用您的名字,並在最後加上「tut」字母。藉由這樣的方式,每個試作教學檔的人都會擁有獨特的專案名稱。關於我們的專案,在此使用「vgtut」的名稱。在您在名稱欄位輸入名稱之後,請按一下OK按鈕。您現在應該已建立一個稱為 xxxxtut 的新專案。

建立一個新的視覺序列。

  1. 一旦您建立新的Epson RC+ 8.0專案後,您將會注意到許多工具列圖示皆變為啟用(不再是灰色)。找到Vision Guide工具列上的 [Vision]按鈕。按一下此按鈕開啟Vision Guide視窗。
  2. 在Vision Guide 8.0視窗中進行操作之前,必須先建立一個視覺序列。按一下Vision Guide工具列上的 [New Sequence]按鈕,即可建立一個視覺序列。(請記住,本工具列按鈕位於Vision Guide視窗工具列上,而非在Epson RC+ 8.0主工具列上。)現在將會出現[New Sequence]對話框。
  3. 為新的視覺序列輸入「blobtut」名稱,並按一下OK按鈕。後續我們會在Epson RC+ 8.0程式碼中使用「blobtut」名稱,以確保輸入與上列拼法完全相同的名稱(不含引號)。現在我們已建立一個稱為「blobtut」的新視覺序列,現在開始,我們在會在本視覺序列上進行所有操作。

教學檔使用的攝影機鏡頭設定方式

稍早我們曾提到,本教學檔的目標視野應約為40 mm × 30 mm。距工作平台的工作距離(WD)約為210 mm。我們已測試過,在從167 mm到最遠至240 mm的距離範圍內,16 mm的鏡頭及1 mm的接寫環可順利以本視野運作。這表示16 mm的鏡頭及1 mm的接寫環或許也適合您用來練習教學檔。
若您尚未對攝影機加上鏡頭,並嘗試將鏡頭對焦,最好能在此時執行這些操作。在安裝章節中會有關於如何判定使用哪種鏡頭,以及如何對焦的說明。若您還不熟悉如何選擇攝影機鏡頭,以及如何將攝影機對焦至零件,那麼在執行操作之前,請先閱讀上述資訊。
若想檢查是否對焦,您需要從Vision Guide 8.0檢視影像。因為已經開啟Vision Guide視窗,現在我們只需確認能在目標面上正確看到目標特徵即可。在下一小節中將會說明其操作步驟。

將移動式攝影機定位在目標面上,並將鏡頭對焦

  1. 拿出您稍早製作的目標面備份。選擇在中間列印於單一墊圈特徵的目標面,放置在工作平台上,方便機器人能輕易將攝影機定位於其上的位置。最佳位置通常是在機器人正前方。
  2. 現在請移動機器人,讓攝影機位於墊圈圖片的上方。您應該可以手動移動機器人,而不需要開啟伺服電源。
  3. 您應該可以在Vision Guide視窗的影像顯示區中看到目標特徵(墊圈)。調整攝影機鏡頭焦距,以便對焦至目標特徵。若您無法看到目標特徵,或無法正確對焦,請參考「安裝」章節中的「檢查及調整適當焦距」小節。本小節將會詳述選擇攝影機鏡頭及為其對焦。

現在攝影機應該直接位於目標面上所繪製的目標特徵上方。您應該可以在Vision Guide視窗的影像顯示區中清楚看到目標。現在應該會出現如下圖所示的Vision Guide視窗。請注意,目標特徵(墊圈)會顯示在Vision Guide視窗的影像顯示區中央。


在影像顯示區中央,含有目標特徵的Vision Guide視窗

使用Blob物件來尋找零件

請注意,目標特徵(墊圈)位於Vision Guide視窗的影像顯示區中央,我們可以建立一個Blob物件來尋找墊圈。下列內容中說明建立與設定Blob物件後,尋找墊圈的步驟。

步驟1:建立一個新的Blob物件

  1. 按一下Vision Guide工具列上的[All Tools] - [New Blob]按鈕。在您按下New Blob工具列按鈕之後,請勿再一直按著滑鼠左鍵。
  2. 現在將滑鼠朝下移動至影像顯示區中央的墊圈影像。當您移出Vision Guide工具列時,滑鼠指標就會變成Blob物件圖示。
  3. 持續將滑鼠移動至影像顯示區中央,並按一下滑鼠左鍵。這會將新Blob物件放置在影像顯示區上。

您應該會看到與下圖所示相似的畫面。

含有新Blob物件「Blob01」的Vision Guide視窗

步驟2:設定Blob物件的位置及大小
現在我們必須針對Blob物件,設定搜尋視窗的位置及大小。
「Blob01」Blob物件的搜尋視窗,是您在下圖的墊圈左邊所看到的方塊。讓我們將本搜尋視窗放大,以便我們可以在接近整個視野內搜尋墊圈。

  1. 將滑鼠指標移至Blob物件的名稱標籤上,並按下滑鼠左鍵。在持續按下滑鼠左鍵的同時,將Blob物件拖曳至影像顯示區的左上角,讓搜尋視窗的左上角幾乎接觸到影像顯示區的左上角。
  2. 將滑鼠指標移至Blob01搜尋視窗的右下方大小調整把手上,並按下滑鼠左鍵。在持續按下滑鼠左鍵的同時,將右下方的大小調整把手拖曳至影像顯示區的右下角。現在Blob物件的搜尋視窗應該會涵蓋整個影像顯示區。如此便可尋找位於攝影機視野內的任何值檢出。

下列的Screen擷取畫面顯示「Blob01」Blob物件的搜尋視窗,該物件經過重新定位及調整大小,因此能涵蓋整個影像顯示區。

採用大搜尋視窗的「Blob01」Blob物件

步驟3:設定屬性及執行Blob物件
搜尋視窗現在已大到能在搜尋視窗內看到墊圈了。我們現在準備測試Blob物件,以確認能夠找到墊圈。

  1. 按一下在[Vision Guide]視窗右上邊樹中的Blob01物件。如此即可顯示Blob01物件的屬性及結果。

  2. 請查看Properties清單,并尋找Name屬性。在Name屬性的Value欄位上按兩下,以醒目來標示目前的名稱。現在輸入「washer」的名稱(如下圖)。我們已將Blob物件名稱變更為「washer」。若您查看Name下拉式清單的[Jog] (微動)頁籤上方,以及搜尋視窗的名稱標籤,您會看到兩個地方的名稱皆已改變。

    Blob01物件的屬性

  3. 在您查看Properties清單時,您可能也會想要檢查Polarity屬性。因為剛建立一個新的值檢出,Polarity的預設值為DarkOnLight,這表示會在淺色背景上尋找深色的值檢出。我們也可以將此屬性變更為LightOnDark。但因為我們想要在淺色背景上尋找深色的值檢出(墊圈),因此並不需要改變Polarity屬性。

  4. 現在我們準備執行Blob物件「washer」。
    若想執行物件,請按一下位於執行面板左下角的Run按鈕。如此即會執行Blob物件「washer」,在本案例中,Blob物件將會尋找看來像是墊圈的值檢出。
    您可以在執行Blob物件之後,檢查搜尋視窗的顏色,以辨別是否找到Blob。若Blob物件找到值檢出,搜尋視窗會變成綠色,否則就會變成紅色。
    您也可以檢查Results清單,以查看是否找到Blob。請接著繼續操作。

  5. 現在請稍微移動含有您目標墊圈的紙張,並再次按一下[Run]按鈕。
    請確認將墊圈保持在您所建立的搜尋視窗內。您可以在影像顯示視窗中看到已找到值檢出的新位置,並以綠色醒目標示。
    (若您移動紙張,讓墊圈超出搜尋視窗邊界之外,那麼Blob物件將無法找到墊圈,而您會看到搜尋視窗因為找不到物件而變成紅色。)

步驟4:檢查結果
現在您已執行過稱為「washer」的Blob物件,您可以檢查本物件所回傳的結果。上述的結果會顯示在一份Results清單上,該清單位於屬性清單正下方。

  1. 查看Results清單中稱為Found的結果。由於已找到值檢出,這時Found結果的值應為True。若未找到值檢出,Found結果就會顯示False。
  2. 您也可以在Results清單的上方看到Area結果,針對所找到的值檢出,顯示其面積。
  3. 使用捲軸將結果清單移動至底部。在Blob結果清單下方,您將可以看到Time結果。本結果告訴我們花費多少時間才找到本值檢出。

    向下捲動Results清單,以顯示Time結果

注意


環境照明及外部設備雜訊可能會影響視覺序列影像及結果。可能會取得毀損的影像,且偵測到的位置可能是物件的搜尋區域中的任何位置。建立影像處理序列,所使用的物件務必要使用必要值以下的搜尋區域。

步驟5:儲存視覺序列
這時我們或許應該儲存工作。正如任何應用程式般,經常定期儲存您的工作是一種好習慣。Epson RC+ 8.0的Project Management功能可一次儲存與本專案相關的所有內容。可以下列的單一簡單步驟完成:
按一下Epson RC+ 8.0工具列上的 [Save]按鈕。
現在我們已成功建立一個新的Blob物件、一個已正確定位及調整大小的搜尋視窗,同時已執行過Blob物件來尋找值檢出。
現在讓我們執行下一步,撰寫一個簡單的程式,用於從SPEL+語言執行視覺序列,然後從中讀取一些結果,以便在應用程式中使用。

撰寫SPEL+程式,和視覺序列配合使用

Vision Guide 8.0的最強大功能之一為:在點擊環境中所建立的任何視覺序列,都可以從SPEL+語言使用。這代表視覺序列是Epson RC+視覺應用的核心部份,而不只是後續必須以SPEL+重新撰寫所有程式碼的原型化工具。將視覺序列和SPEL+語言整合在一起,能為您提供利用兩種方式優點的最佳操作環境。
讓我們撰寫一個快速程式,以了解是否找到值檢出、檢查值檢出的面積,然後以本資訊列印出一個訊息。兩種方式的優點:點擊開發環境的易用性,以及語言所能提供的強大力量及彈性。

開啟稱為MAIN.PRG的程式檔
因為您已熟悉Epson RC+ 8.0環境,應該也已經熟悉如何開啟main.prg程式檔案。由於某些使用者可能不知道如何開啟檔案,我們在此說明基本操作步驟:

  1. 按一下Epson RC+ 8.0工具列上的 [Open File]按鈕。您將會看到下列的[Open File]對話框:

    Epson RC+ 8.0[Open File]對話框

  2. 正如您在[Open File]對話框所見,因為您尚未建立任何其他程式,因此會將main.prg程式檔案醒目標示。請按一下對話框左下方的[Open]按鈕,以開啟main.prg程式檔案。

建立SPEL+程式以處理視覺序列
下列顯示一個範例程式,該程式將會執行視覺序列「blobtut」,並針對「washer」的Blob物件,檢查相關的某些屬性。
例如,我們將會檢查是否找到值檢出。若找到值檢出,將會顯示一個「The washer was found!」訊息,以及值檢出的區域。若未找到值檢出,將會顯示一個「The washer was not found!」的訊息。
現在您應該可以看到一個編輯視窗,其中Title列上顯示MAIN.PRG。游標將位於編輯視窗第1行的開始處。(這是在程式中開始輸入文字的最佳位置。)請繼續操作,並將下列程式輸入編輯視窗中。請不必顧慮大小寫。編輯器會自動將所有關鍵字變為大寫。

Function main  
  Real area  
  Boolean found  
  
  VRun blobtut  
  VGet blobtut.washer.Found, found  
  
  If found = True Then  
    VGet blobtut.washer.Area, area  
    Print "The washer was found!"  
    Print "The washer area is: ", area, "Pixels"  
  Else  
    Print "The washer was not found!"  
  EndIf  
Fend  

執行主功能
您應該已經熟悉Epson RC+ 8.0的Run視窗。我們將會使用Run視窗,來執行在前一小節所建立的範例程式。下列是其操作步驟:

  1. 按一下Epson RC+ 8.0工具列上的 [Open Run Window]按鈕。如此會顯示Run視窗。請注意下圖,Run視窗會分割成2個部份。Run視窗的左半部是影像顯示區(請注意,墊圈會出現在中間),Run視窗的右半邊是用來顯示文字訊息的文字區域。

    提示


    若Run視窗僅顯示Text Area (b),而未同時出現影像顯示區(a),請按一下Run視窗上的Display Video核取方塊。

    含有Image Display及Text Area的Run視窗

  2. 按一下位於Run視窗左下角的[Start]按鈕。如此會執行稱為「main」的函式。

  3. 您可以在步驟4的圖片中看到執行「main」函式的範例結果。請注意,在找到值檢出時,在Run視窗左邊的影像顯示區會以綠色醒目標示。Run視窗的右邊會顯示一串文字,表示已找到值檢出,以及值檢出的面積。

  4. 針對位於Run視窗左上角的Run視窗,按兩下其Control功能表方塊。如此即會關閉Run視窗。

    在執行「main」之後的範例Run視窗顯示內容

使用移動式攝影機校正機器人

當機器人上裝有移動式攝影機(安裝於水平式多關節機器人的接點2末端)時,本教學檔的這個部份將會引導您如何校正該機器人。
使用校正,可讓視覺系統自動計算和轉換機器人坐標系和相機坐標系。在經過校正之後,就可以使用視覺系統來尋找零件的機器人座標位置,以方便機器人取放零件。
但在開始校正之前,必須啟動馬達,並校正機器人(歸位),備妥機器人以供使用。

步驟1:啟動馬達

  1. 按一下Epson RC+ 8.0工具列上的 [Robot Manager]按鈕。會出現下列螢幕。
  2. 按一下螢幕上方的[Motor: Off]按鈕。
  3. 將出現一個訊息方塊,詢問您「Ready to turn robot motors ON」。按一下[Yes]按鈕後,將啟動機器人的馬達。

步驟2:使用工具設定頁籤來設定工具值
為了以視覺系統使用機器人來執行引導應用,需要針對組裝在機械臂末端的工具或夾具,精準測量其位置。某些工具會與Z軸法蘭及其他對齊Z軸中心組裝的工具偏離。即使再仔細組裝機器人工具,幾乎無可避免都會與Z軸中心有一些偏差。因此我們必須使用SPEL+的Tools功能來補償調整。
要使用Vision Guide執行機器人引導,必須善加了解各項工具。我們將會使用Tool Wizard功能,來為校正操作桿(夾具)建立一個工具。

  1. 按一下[Tools]頁籤。
  2. 按一下[Tool Wizard]按鈕。
  3. 對於Tool Wizard的第\1個參考點,應該將機器人微動至目標位置(在您紙張目標上的墊圈的位置),以便讓操作桿或夾具位於墊圈正中央。您必須將機器人向下微動,以便接近到幾乎快碰觸到紙張,但不要真正接觸到紙張。在紙張上方約5-10 mm空間的距離皆可。您只需要儘可能微動接近紙張,以便能清楚看到操作桿(或夾具)位於墊圈正中央即可。
  4. 至於Tool Wizard的第\2個參考點,請將U軸微動約180º,然後將機器人(或移駐夾)微動,直到置於墊圈中央為止。
  5. 按一下[Finish]按鈕以定義新工具,並結束Tool Wizard。我們剛才已為Tool 1定義了參數。
    Tool 1的新工具值將會如下圖所示。

    [Tools]頁籤(用來定義工具)

步驟3:測試新工具
現在您應該已回到Jog and Teach Window。因為將機器人定位在目標位置(墊圈)上後並未微動過機器人,機器人的操作桿(或夾具)應仍剛好位在目標位置上方。

  1. 將機器人朝Z方向(+Z)向上微動約10至15 mm。這可以在有問題的情況下,讓操作桿(或夾具)離開工作平台。
  2. 按一下Jogging視窗的[Tool]按鈕,然後按下向下箭頭。
  3. 因為我們想要選擇Tool 1,因此請按一下「1」。(請記住,這是我們在步驟4中所教導的工具。)
  4. 現在嘗試以正向或負向微動U軸。您應該可以看到夾具(或操作桿)的尖端保持在其目前的XY位置,而機器人繞著此點旋轉。(對於偏離Z軸中心的工具,常可看到其此情況。若您使用從Z軸垂直向下的操作桿,可能不容易看到。)
  5. 在U軸移動時,您應該會看到夾具(操作桿)的移動稍微偏離其XY位置。但在完成每次的U軸微動步驟之後,夾具應該就會回到目標(墊圈)的XY位置。
  6. 若您的工具無法正確運作,請回到步驟2一開始,並再試一次。
  7. 關閉Robot Manager。現在即已完成定義及測試工具。

步驟4:啟動攝影機校正程序
我們現在已準備好校正機器人及移動式攝影機。

  1. 按一下Epson RC+ 8.0工具列上的 [Vision]按鈕,將Vision Development Window重新呼叫至畫面的前景位置。
  2. 按一下Vision Guide工具列上的 [New calibration]按鈕。就會開啟[New Calibration]對話框。
  3. 輸入新校正的名稱。輸入「downcal」的名稱(不含引號),然後按一下OK按鈕。
  4. 在[Calibration]視窗的屬性清單中,將CameraOrientation屬性設為「Mobile J2」。
  5. 將RobotTool屬性變更為1。如此可以在教導參考點進行校正時,選擇使用Tool 1。
  6. 將TargetSequence屬性設定為blobtut。在校正過程中,我們將會使用本序列來尋找零件。

步驟5:教導校正點

  1. 按一下位於視頻顯示下方的[Teach Points]按鈕。
  2. Vision Guide視窗將會變成Teach Points模式,如下圖所示。請注意,將會在Vision Guide視窗上方看到一個訊息,要求您「Jog to top left camera position」,如下圖所示。此即將機器人(及攝影機)微動至可在Vision Guide視窗的影像顯示區左上角看到墊圈的位置。下圖顯示您應微動機器人的約略位置。正如您在圖中所見,這是校正所需9個攝影機位置的第1個位置。

    教導攝影機位置以進行校正
  3. 教導第1個攝影機位置:對機器人進行微動,以便讓攝影機定位於「可以在Vision Guide視窗的影像顯示區左上角位置看到墊圈」的地方。
  4. 按一下Vision Guide視窗上的Teach按鈕。
  5. 教導第2個攝影機位置:將機器人微動至第1個攝影機位置的右邊,以便讓攝影機定位於「可在Vision Guide視窗的影像顯示區中間上方位置看到墊圈」的地方。
  6. 按一下Vision Guide視窗上的Teach按鈕。
  7. 教導第3個攝影機位置:將機器人微動至第2個攝影機位置的右邊,以便讓攝影機定位於「可在Vision Guide視窗的影像顯示區右上方位置看到墊圈」的地方。
  8. 按一下Vision Guide視窗上的Teach按鈕。
  9. 教導第4個攝影機位置:將機器人微動至,第3個攝影機位置位置的下列,以便讓攝影機定位於「可在Vision Guide視窗的影像顯示區中間右邊位置看到墊圈」的地方。之後,攝影機位置會以鋸齒形圖樣顯示。
  10. 按一下Vision Guide視窗上的Teach按鈕。
  11. 教導第5 至第 9個攝影機位置:針對第5到第9個攝影機位置,繼續依照Vision Guide視窗下方所指示的方式微動機器人和教導點。Vision Guide視窗將會顯示每一攝影機位置要移動至哪個位置。下面是攝影機位置5至9的說明:
    5 - center
    6 - left center
    7 - bottom left
    8 - bottom center
    9 - bottom right
  12. 接下來,在視窗上方所顯示的訊息聲明「Jog to fixed reference」。這表示會對機器人進行微動,以便將夾具(操作桿)置於校正目標零件中央(在本案例中為墊圈)。由於正在將機器人夾具與校正目標對齊,因此此時您可以忽略視訊顯示。繼續操作並將機器人微動,以便讓夾具位於墊圈的中央。此定位工作是非常重要的,因為您需要將機器人向下微動接近墊圈,才能準確對齊。
  13. 一旦您將機器人夾具定位在墊圈的中心後,按一下Vision Guide視窗下方的[Teach]按鈕。
  14. 將Z軸向上微動到足以讓夾具離開工作平台,以及避免因為機器人夾具過低,而在校正過程中碰撞到其他物體。當我們教導9個校正點時,將會對每個點使用本Z高度。
  15. 在教導完最後一個攝影機位置之後,將會出現一個對話框,說明「All calibration points are now taught」。按一下Finish按鈕以繼續。

現在已完成Calibration所需要教導的點。

步驟6:執行攝影機校正
下列所示的步驟為完成攝影機校正程序的最後步驟:

  1. 按一下Vision Guide視窗[Calibration]頁籤下方的[Calibrate]按鈕。
  2. 將會出現一個訊息方塊,顯示「CAUTION Robot will move during calibration at Speed 10, Accel 10 Continue?」的訊息。按一下[Yes]按鈕以繼續校正。
    在校正過程中,機器人將會各移動至9個點2次。如果您需要在機器人移動時中止校正,請按一下[Calibration Cycle]對話框下方的[Abort]按鈕。
  3. 在完成校正週期之後,會出現[Calibration Complete]對話框,並顯示校正結果資料。檢查資料,然後按一下[OK]按鈕。
  4. 請注意,校正結果會顯示在[Calibration]視窗的Results清單中。

步驟7:為blobtut序列指定「downcal」校正
現在已建立「downcal」校正,我們需要將此校正指定給我們的視覺序列(blobtut)。這會為blobtut序列提供以機器人及攝影機座標值計算結果的能力。

  1. 從[Vision Guide]視窗的序列樹按一下視覺序列:「blobtut」,以呼叫[Sequence]至前景。
  2. 在Calibration屬性的值欄位上按一下,然後按一下向下箭頭,最後在顯示名稱為「downcal」的校正上按一下,將Calibration屬性設定為「downcal」。這是剛才建立完成的校正。
  3. 按一下顯示在序列和校正樹右邊的[Jog]按鈕,以顯示[Jog]頁籤。
  4. 使用微動按鈕將攝影機定位在墊圈上,以便讓您可以在影像顯示區內看到墊圈。
  5. 從序列樹按一下「washer」物件,以將[Object]視窗呼叫至前景。
  6. 按一下[Run Object]按鈕,以執行「washer」物件。在找到零件時,請查看Result清單。您將會看到CameraX、CameraY、RobotX、RobotY和RobotU等結果不再顯示「nocal」結果。現在您會看到相對於機器人及攝影機座標系統的座標位置資料。

教導點以進行視覺引導

現在我們必須教導幾個點,以定義墊圈取放位置的Z高度、攝影機將會拍攝墊圈照片加以處理的位置,以及可供本教學檔用來作為開始位置的一個安全位置。

步驟1:定義「camshot」位置
機器人必須朝零件移動,直到可在畫面上的影像顯示區內看到墊圈為止。將機器人定位在讓墊圈位於影像顯示區中間,而不要太接近任何一個搜尋視窗邊緣的位置,會是最佳的作法。由於剛執行過墊圈物件,攝影機應該仍位於「可取得包含墊圈的影像」的良好位置。

  1. 按一下Epson RC+ 8.0工具列上的[Robot Manager]按鈕。然後按一下 [Jog & Teach] 頁籤。
  2. 因為我們想要使用Tool 1來教導攝影機鏡頭位置,請檢查標示為Tool的下拉式清單,確認設定為1。若不是設定為1,請按一下下拉式清單方塊上的箭頭,將Tool設為1。
  3. 確認在Point #欄位中目前的點是P0。若不是點P0,請在點編號欄位中選擇P0。
  4. 在[Jog & Teach]視窗上按一下[Teach]按鈕。將會提示您輸入標籤名稱。請輸入「camshot」的標籤名稱。如此將會教導「camshot」位置。

步驟2:定義一個遠離墊圈的安全位置
在一個遠離墊圈的位置上,我們需要一個已教導過的點,其用來作為在程式開始時所要移動的安全位置。

  1. 在點欄位中選擇P1。
  2. 將機器人的Z軸向上微動,然後以X和Y方向微動,將機器人定位在安全的位置。這就像是您程式的開始位置。在移動至墊圈之前,機器人都會先移動至本位置。
  3. 在[Jog & Teach]頁面上按一下[Teach]按鈕。為標籤輸入「safept」。如此將會教導「safept」位置。

步驟3:為「墊圈」取放位置計算Z高度
如果是在處理一個用來取放真正墊圈的實際應用程式,而非移動至墊圈的圖例,就必須為墊圈取放位置設定Z高度。現在來為墊圈位置找出一個良好的Z高度。這種情況說明夾具已安裝在機械臂#3(J3)上。

注意


請務必仔細地為機器人運動設定Z高度。若所計算的Z高度不正確,可能會造成系統故障和/或安全性問題。

  1. 按一下Epson RC+ 8.0工具列上的- [Tools]- [Robot Manager]- [Jog & Teach]頁籤。
  2. 使用Jog按鈕,將機器人的夾具定位在墊圈上方約5至10 mm的位置。注意夾具定位的位置,以免碰到墊圈。
  3. 在機器人夾具剛好在墊圈上方時,記下目前的Z座標值。後續會在程式中使用本Z座標,將機器人移動至本高度。
  4. 在點欄位中選擇P2。
  5. 在[Jog & Teach]視窗上按一下[Teach]按鈕。請輸入「washpos」的標籤名稱。如此將會教導初始「washpos」位置。(但將使用視覺系統來計算新的X和Y位置,然後移動至此點。我們也將依據目前的Z座標位置,在程式中設定一個固定Z高度。)

使用視覺和機器人移動至零件

現在只需要修改我們的程式,讓視覺系統和機器人合力找出墊圈的位置,並移動至墊圈即可。

步驟1:修改SPEL+程式

  1. 按一下Epson RC+ 8.0工具列上的 - [Open File]按鈕。

  2. 由於您尚未建立任何其他的程式,此時MAIN.PRG程式檔案應已有醒目標示。請按一下對話框左下方的[Open]按鈕,以開啟MAIN.PRG程式檔案。您應該可以看到先前曾在本教學檔中執行過的下列程式。

    Function main  
      Real area  
      Boolean found  
      
      VRun blobtut  
    VGet blobtut.washer.found, found  
       
      If found = True Then  
        VGet blobtut.washer.area, area  
        Print "The washer was found!"  
        Print "The washer area is:", area, "Pixels"  
      Else  
        Print "The washer was not found!"  
      EndIf  
    Fend  
    
  3. 現在請修改程式,使其成為下頁所示的內容。

    提示


    請記得,SPEL+語言使用撇號「'」來表示註解。在撇號之後的任何字元,都會被視為註解,並非正確執行程式所必備。(這表示您可以省略撇號之後的任何字元,一直到行末出現另一個撇號為止。)

    Function main  
      
       '***********************************************  
      ' 以下為非常重要的敘述:	*  
      ' 請使用「教導點以進行視覺引導」步驟3中記錄的	*  
      ' Z座標值。	*  
      ' 在以下的「xx」中代入Z座標值(負數)。	*  
      '***********************************************  
      #define ZHeight -xx	  
      
      Real area, x, y, u  
      Boolean found  
      Integer answer  
      String msg$, answer$  
      
      Power Low          '以緩慢的速度及加速度執行機器人  
      Tool 1             '使用工具 1 進行定位  
      Jump safept        '移動機器人至安全起動位置  
    
      Do                 '繼續循環直到使用者停止  
        Jump camshot     '移動機器人以拍照  
        VRun blobtut     '執行視覺序列 blobtut  
        VGet blobtut.washer.RobotXYU, found, x, y, u  
      
        If found = True Then  
          VGet blobtut.washer.area, area  
          Print "The washer was found!"  
          Print "The washer area is: ", area, "Pixels"  
          washpos = XY(x, y, ZHeight, u) 'Set pos to move to  
          Jump washpos	  
          msg$ = "The washer was found!"  
        Else  
           msg$ = "The washer was not found!"  
        EndIf  
         msg$ = msg$ + CRLF + "Run another cycle(Y/N)?"  
        Print msg$  
        Input answer$  
        If Ucase$(answer$) <> "Y" Then  
        Exit Do  
        EndIf  
      Loop  
    Fend  
    

步驟2:執行程式以尋找墊圈,並移動至墊圈

  1. 按一下Epson RC+ 8.0工具列上的 - [Open Run Window]按鈕。如此即會使程式進行編譯,然後開啟Run視窗。
  2. 按一下Run視窗上的[Start]按鈕。
  3. 現在程式將會尋找墊圈,並將機器人移動至墊圈。在您成功找到墊圈之後,試著稍微移動墊圈,然後在詢問您是否想要執行另一個週期的對話框中按一下[Yes]按鈕。
    若未找到墊圈,就會出現另一個對話框,詢問您是否想要再試一次。
    在對話框中按一下[No],程式就會停止執行。