Appearance
5. 軟體基礎篇
介紹
專案的編寫是採取「畫流程圖」式的圖形化編輯,只需要先點擊流程節點,再拉由左側拉入其他流程節點(或點擊手臂上特定按鈕產生流程節點),被加入的流程節點就會自動接到原先選取的流程節點下方。也可以透過點擊節點下方的 × 按鈕來斷開與下方連接的節點,或手動拉出連接線來連接兩個節點。
坐標系(Base)
常用的坐標系一共以下種:
- 機械坐標系(Robot Base):有「絕對位置」的概念,任何時候它的坐標都必然表示同樣位置
- 視覺坐標系(Vision Base):有「相對位置」的概念,每次建立視覺任務後就會自動建立,會隨辨識到的物體位置而改變原點
- 工具坐標系:一般來說只會在使用
Move時會用到,它以法蘭中心為原點,故正常情況下 Z 軸會與 Robot Base 相反(無法單獨在專案頁新建此種坐標系)
要改變採用的坐標系也很簡單,到右上角下拉式選單即可變更。
![]()
常見的坐標系,其中一般坐標系(中間的)不在此教材之介紹範圍
移動手臂
直接按住手臂上的 FREE 按鈕,就可以直接拉動手臂,將它調到想要的位置了。
若想更細致地操作手臂,則點進上方
使用控制器的 + 和 - 進行微調。
Point
在移動到想要的位置後,先確認右上角的坐標是否為自己想要的坐標系後,直接點擊手臂上 Point 按鈕或在軟體中拉入一個 Point,即可直接記錄目前坐標位置。
Vision
概念
Vision 分為兩大類型:
| Positioning | Inspection | |
|---|---|---|
| 可編輯任務 | 物件定位、TM Landmark 定位、伺服式定位、 物件校正、Smart-Pick | AOI 辨識與視覺 I/O 觸發 |
| 是否建立新坐標系 | 是 | 否 |
注意事項
Vision(Positioning)任務執行時也有 Point 功能,亦即會定位到指定位置後才開始視覺辨識,故建立 Vision 前須先檢查坐標系是否正確(通常使用 Robot Base)
操作方式
初階課程我們以物件定位和 Landmark 為主,來帶大家認識 Vision。
無論是物件定位還是 Landmark,都會用 Positioning 的 Vision 節點,因此要先移動手臂到合適位置後,再拉 Vision 節點。拉入後,點擊它左上角的,進入編輯畫面後,點擊 視覺任務 旁的 選擇 以開啟,點擊
以創建一個新視覺任務,隨便起一個名後,即可進入視覺任務的編輯畫面。進入後,確認左側選的是 Eye-in-Hand 並點擊 設定,即可依下方步驟完成物件定位或 Landmark 的視覺任務設定。
物件定位
點擊 物件定位 → 下一步,等它跑完後,就會進到物件定位的編輯流程,左側那幾個方塊就是它的辨識流程,只要照著它的順序逐一設定好即可,記憶上應該不困難。
在第一個方塊(Motion)中,點擊右側 設定工作平面 → 建立 → 是,即可進入工作平面的設定介面,在 視覺應用選擇 頁面選擇 自動 → 下一步,進入畫面後,你應該會在畫面正中央看到目前手臂的相機畫面,接著把校正板放到鏡頭可以清楚辨識處(建議可以在下方用兩到三塊麻將墊著,讓校正板保持水平),之後我們可以先點擊畫面上方
→ 是 來在校正時啟用燈光,按下 Next 後,依畫面指示按住控制器上的 PLAY 按鈕,手臂會開自動校正,跑到下方進度條全滿且指示消失後,會跳出「校正已完成」視窗,點擊 確定,之後在 工作平面名稱 處為工作平面隨便取個名字,即可點擊 Save → 確定 儲存。完成此步後,校正板就可以拿走了。
接著點擊右側 Camera 流程塊,建議可以勾選 內建光源 選項,它會自動在視覺任務時開燈,並在完成辨識後關燈,啟用此選項可以減少環境造成辨識失敗的機率。點擊 自動調整相機參數,就完成了這一步的設定。
當選著 Camera 流程塊時,它下方會出現一個
,點擊它後,在 Find 類別中找到 樣板對比(輪廓特徵),選取它,並點擊 確定。此時需在畫面中放置一個麻將,建議擺正,以利後續選取樣板的方便。選擇右側 選擇樣板,它會開啟一個樣板選擇視窗,可以用滑鼠拉出一個長方形方塊去框住麻將的「TM」Logo(建議不要選取到下方小字或上方 QR Code),選好後點擊 下一步,待它跑完後,會跳出一個 選擇樣板 視窗,圖中會列出三種選取方式,選擇一個你認為框選得最精準的樣板,並點擊 確定,即完成此步設定。注意,在建立好視覺任務後到真的去夾它之前,麻將都不能再移動位置了,否則要重新建立任務。
點擊左上角的
→ 儲存 → 是 以儲存此視覺任務。最後再點擊 是 → 設定 → 確認,跳出視覺任務設定頁,即完成。
Landmark
點擊 Landmark 定位 → 下一步,等它跑完後,就會進到 Landmark 辨識的編輯流程,與物件定位類似,左側那幾個方塊就是它的辨識流程,不過它的設定要比物件定位簡單許多。
與物件定位不同的是,在第一步,我們不需要去設定流程塊 Motion 的部分,因為 Landmark 會自動偵測,因此直接點擊左側 Camera 流程塊,再勾選 內建光源(建議),以及點擊 自動調整相機參數,之後再直接點擊流程塊的最後一步 SUMMARY,確認畫面中有在 Landmark 周圍出現一圈框框後,就可以按左上角
→ 儲存 → 是 來儲存此視覺任務。最後再點擊 是 → 設定 → 確認,跳出視覺任務設定頁,即完成。
辨識失敗時的 Case
視覺任務建立後,該節點下方會出現 Found 和 Miss 兩個分支,分別對應於「有辨識到物件」和「辨識失敗」兩種情況,前者很好理解,辨識成功就繼續寫接下來要幹嘛就好,但失敗的情況呢?處理失敗的情況,最常見的做法就是讓它不斷辨識,直到成功為止。
具體的做法是,我們要使用 Goto 節點,我們可以在選取 Vision 節點的情況下,拉入 Goto 節點,並選擇 遺失路徑,就能把 Goto 接在 Miss 分支下方,之後,我們再點 Goto 左上角的鉛筆圖示以進入編輯畫面,再點擊 Set Goto Target,此時畫面會變灰,並把所有節點高亮顯示,點擊一下 Vision 節點 → 確認,即可將 Goto 節點拉回到 Vision 節點上。如此,之後在辨識失敗時,它就會一直執行辨識,直到找到目標。
小提示
前面說過 Vision 會建立新坐標系,因此要控制夾起或放下麻將時,只要在建好 Vision 後,讓 Point 去採用 Vision Base,就可以精準地控制手臂把麻將夾或放到某處。
Set
Set 的功能相當強大,不過本章只會講解如何用它來控制夾爪的開闔。
建立
Set 可以從軟體左側拉入,或用手臂上的 SET 鈕(但競賽有可能會鎖住此方法)來建立。
設置
為了控制手臂夾爪的開闔,我們要進到 Set 的 數位輸出 設定,點擊它右邊的 選擇,並在右邊跳出來的視窗中,找到 末端模組 的 DO_0,這一項就是我們要控制的夾爪狀態。
DO_0 右邊有個圓形,點擊後,它會在 H、L、空白這三種狀態循環,H 表示「夾」、L 表示「放」,相當直觀。
點擊 輸出測試,可以將手臂調整到所設定的狀態。
Wait for
其實 Wait for 可以被用來等待輸出入、時間、變數等條件,不過本章節只會說明最常使用的用途——等待時間。
用途
以初階應用來說,它很常被用在操作完夾爪收放後。因為「夾」和「放」的操作本身是需要時間的,但在專案執行速度拉快時,它有機會會因為太快而導致「空夾」或「拋放」,為了讓夾子確實完成收放動作後,才去執行下一個動作,我們就要在夾放操作後,加上一個 Wait for。
操作方式
在編輯 Wait for 介面中,選擇 時間 右邊的 選擇,在右邊跳出來的視窗中,選擇上面那個選項(有框可輸入數值的選項,理論上為預設值),並在框中輸入要等待的時間,一般建議可以寫 500(代表 500 ms,即 0.5 sec)。
Move
用途
通常我們會在操作完夾爪的收放後,為了避免移動到下一個點位的路徑上有東西,從而導致撞機,我們會用 Move 來先把手臂向上抬高一些。
操作方式
一般來說我們會用「工具」,也就是工具坐標系的方式來進行移動,我們可以在 Z 軸輸入一個負數(向上),例如 -100(代表向上 100 mm,即 10 cm)。
Stop
它屬於一個停止節點,會接在專案最後面,讓專案在執行到它時,自動退出專案介面。Stop 節點因為代表的是「結束」,故它下方無法再連接其他節點。雖然這個節點不是硬性規定,但還是推薦養成好習慣,在專案最後面都加上一個 Stop。
執行專案
開始執行
點擊控制器上的 PLAY 按鈕,畫面就會進入執行專案的頁面,並伴隨三聲「嗶、嗶、嗶」後,隨即開始執行專案。
控制速度
在控制器下方會有一排燈號用以顯示目前的專案執行速度,預設是 5%,可以利用控制器的 + 和 - 來控制專案執行速度,新手使用時一般建議設置在 15% 以下,待熟悉手臂操作後再漸漸增加上限。
退回控制器
在執行完畢後,若沒有設置 Stop 節點,則軟體畫面會停在專案執行畫面,若欲退回專案編輯畫面,可以按下控制器的 STOP 按鈕來退出執行畫面。
另一種情況是,專案沒有執行完成,無論是因為報錯停下,或是卡在某步無限迴圈了(例如迴圈設錯或視覺任務無法找到目標而卡住等),都一樣可以利用控制器的 STOP 鈕來停止並退出執行。
常見報錯
原因和特徵
手臂可能會因為撞到東西(撞機)或者在拉到某個關節的極限(奇異點)時報錯,此時手臂上的燈會呈紅色,且軟體顯示灰色,無法操作。
解除方式
- 按住手臂上
FREE按鈕後,直接移動它離開原位(撞擊物或奇異點) - 長按控制器上
STOP按鈕後,方可解除報錯狀態 - 重新檢視並修改專案,確認報錯原因並進行修正
一移動就報錯
若手臂一移動就報錯,但仍可以進行移動時,表示手臂在某個關節已近奇異點,可能是因為被轉了一整圈,此時請不斷嘗試,找出該關節,並在手動修正後,設定手臂回到正規使用姿態,以確保手臂不會再在某關節卡住。
無法解除報錯時
可以試著使用最原始且暴力的做法——重開機。
但盡量不要用到此方法,而是學著找出問題並解決,否則若賽中無法解除報錯狀態,可能被視為未完賽。