Appearance
2. 軟體精熟篇
相信大家藉由基階課程中都已經學到軟體的基本操作方式了,因此在這篇中階教材中,我們將會以更快的速度來說明更多比賽必備的操作,要是能把這些東西都玩熟,一定能在初賽中取得好成績!
變數
要在專案中建立變數,要先到畫面上方 管理員 → 變數 來開啟變數管理的頁面,要注意,我們所有建立的變數都只會用到 專案變數,小心不要建立到 全域變數 而造成命名污染。
我們在 專案變數 → 變數 畫面,就可以建立一個變數了,變數型別有很多,可以在 型別 的下拉選單中,選擇一種資料類型,相信這些東西對於會寫程式的人來說再熟悉不過了,但若沒學過程式的人也不要緊張,我們在大多數情況下,變數都只是為了計數,因此直接選擇 int(整數)即可。名稱 同樣也要遵守稱式中變數命名規則,即只用英文、數字、底線,且不能有空格。最後的 值 實際上是選填的,若空著不填,它預設就會是 0(在 int 時),因此若是為了計數,不用特別去輸入任何數值。打完這些後,記得點擊 新增 按鈕,才算建立好變數,建立好後即可關閉變數管理頁面。
Display
顧名思義,Display 節點就是用來顯示資訊的,有點類似傳統程式語言中的輸出函式。
這個節點可以設定的東西都很直觀,文字顏色 和 背景顏色 的設定應該不用多說,比賽時若會用到 Display,也不會特別要求這部分。標題 和 內文 的輸入格式就比較特別了,一般的文字要使用 " 來包住,並且在連接變數時,會使用 +;輸入變數或特殊功能文字(如換行使用的 newline)則可以使用 內文 旁的鉛筆符號來插入;而連接這些元素的,則是使用 +。
舉個例子,若我想要輸出變數 a、b、c 的值,並成三行,我就可以把 內文 寫成:
text
"a: " + var_a + newline + "b: " + var_b + newline + "c: " + var_c小提示
雖然 Display 設定起來自由度很高,不過通常比賽中也只會要求諸如「輸出某個資訊」等,不必過於拘泥形式。
Set(變數)
前面我們已經學過利用 Set 節點來控制夾爪的開閉了,這章我們就來說如何利用 Set 來控制變數。
在 Set 編輯畫面中,點擊 變數 右邊的 選擇,並點擊右邊跳出來的變數設定視窗上方
,它會跳出一個新的 運算式編輯器 視窗,選擇左側 變數 類別,就可以利用 插入 鍵將變數插入右側輸入框中。
右側分成了三個框框,分別是上方被操作值、中間運算子、下方操作值,它們三個共同組成一個表達式,如同程式中變數控制那般。舉個例子,若我想要把變數 a 設為 0,我就可以在上方插入 var_a、中間選擇 =、下方輸入 0;或者我想把變數 a 加一,就可以在上方插入 var_a、中間選擇 +=、下方輸入 1。
操作完成後,記得點擊 確定 以儲存操作,就完成了變數控制的操作,可以關閉 Set 設定視窗了。
小提示
其實在 常數、函式、數學 類別中,也提供了許多內建好用的值或函數可供使用,有空可以自己玩玩看。此篇教材將不會特別介紹它。
另外,其實 Set 也可以同時控制好幾件事,例如同時控制兩個變數,或者同時控制變數和末端模組等,只需要用
建立一個以上的設定,就可以只用一個 Set 同時控制不止一個行為。
If
在學會了建立和控制變數後,接下來我們還得要讓機器因應不同變數狀態去執行不同任務,而為了讓機器判斷變數狀態,就得用到 If。
If 的設定方式和用 Set 控制變數的流程其實有一定相似度,開啟 If 編輯畫面,點擊 變數 右邊的 選擇,並點擊右邊跳出來的變數設定視窗上方
,它會跳出一個新的 運算式編輯器 視窗,和 Set 的設定視窗極為相似,選擇左側 變數 類別,就可以利用 插入 鍵將變數插入右側輸入框中。
右側分成了三個框框,分別是上方被判斷值、中間運算子、下方判斷值,它們三個共同組成一個表達式,如同程式中判斷變數的方式。舉個例子,若我想看變數 a 是不是不等於 5,就可以在上方插入 var_a、中間選擇 !=、下方輸入 5。
小提示
其實 If 節點不止可以判斷變數,也可以判斷末端模組狀態等等,這些都可以自己研究看看,決賽有機會會用到。此篇教材將不會特別介紹它,但若不會操作,可以至網站說明找我的聯繫方式來詢問。
另外,其實 If 也可以同時判斷好幾件事,例如同時判斷兩個變數,或者同時判斷變數和末端模組狀態等,只需要用
建立一個以上的設定,並在 變數判斷規則 中選擇 或 或 且,就可以只用一個 If 同時判斷不止一件事。
Gateway
Gateway 的設定方式與 If 極為相似,但在設定 Gateway 時,可以一次設定數個不同分支,有點像 C 語言的 switch-case 或 Python 的 match-case 語法。
要設定 Gateway,我們可以點擊 Gateway 節點的鉛筆按鈕,打開它的編輯視窗,再點擊
來新增條件,存在的條件會顯示在下方,可以透過它個各自的鉛筆圖示來設定不同條件,全部設定完後,即可完成 Gateway 的設定。
Wait for(變數)
Wait for 除了等待「時間」外,也可以用類似 If 的表達式來等到某條件達成後再繼續,不過通常這會配合其他硬體設備的狀態,比較不常用來判斷變數,故此章不詳細展開。
Pallet
大家在自己玩手臂時,不知道有沒有試過想要把那塊放麻將的小板子放滿呢?但你會發現,如果要達成這件事,在只用 Point 的情況下非常麻煩,而此時,本章介紹的 Pallet 就能派上用場了!
Pallet 可以讓使用者只需要對好三個位置,它就能夠依比例自動計算出一個長方形各點的坐標,對於放麻將的小板子而言,要設的點從原來的六個減少為了三個,還不需要手動控制變數和 If,可謂是相當方便。
打開 Pallet 的設定頁面後,在 請選取放置模式 的地方會有四種模式選,這四種放置的方式就如同它圖示展示般,很是直觀,有興趣的同學可以在自由練習時,把四種模式都設定來玩玩看。底下的 請教導三點以創造棧板放置組態 則可依照上方 請選取放置模式 圖標中的 ①、②、③ 相對位置對照設置即可。例如以 請選取放置模式 的第一種模式而言,對應板子就要設定右上角 → 左上角 → 左下角,直接把手臂拉過去對三個點後,再按下對應的 取得第一點、取得第二點、取得第三點 以設置點位。
再更底下的 行數與列數,以放麻將的板子的情況來說,就要在 ≡ 輸入 3、⦀ 輸入 2。
剩下的設定都不用動它,直接點擊 確定 後關閉視窗,即完成 Pallet 節點的設定。
Manual-Decision
簡稱 M-Decision,是流程編輯軟體中,少數可以達成人機交互的功能,也就是讓別人在跑你專案時,有辦法透過選擇來控制手臂的行為。
在 M-Decision 節點底下,還會出現數個子節點,表示不同選擇,不過,所有的設定都直接點進主要 M-Decision 的鉛筆圖示即可。標題 和 內文 的設定就如同 Display,重點是底下的 判斷設定條件 要設定好,那裡就相當於「選項」的部分,你可以點擊
來加入更多選擇,並用各選擇的鉛筆圖示來設定它們,其實只要設定好 標題 即可,它會成為選項顯示出來的文字。
你可以執行寫好的專案以測試 M-Decision,選擇選項時,可以用滑鼠直接點擊,或者控制器上 + 和 - 來調整選項,並用 PLAY 選擇。
Set(坐標參數化)
我們先前已經學過 Set 的兩種應用了,也就是末端模組和變數的控制,現在我們再來看一個和變數十分相似的功能——坐標參數化。從它的名字中,我們大概可以猜到它和變數控制的操作是很像的,只不過現在,這個變數不是我們自己設定的變數,而是坐標的數值。
為什麼要控制坐標數值?其實這個主要是應用在當你要擺放數個工件在同樣的地方時的情況,因為若夾取物件到達一模一樣的位置,那結果可想而之,它必然會撞機,因此我們可以讓它往上或是往四周移動一小段距離,使兩個工件不會撞到,無論要向哪個方向調整,都要用到坐標參數化的觀念。
在 Set 的設定頁面中,我們一樣要選擇 變數 的 選擇,並進入到和控制變數一樣的介面,不過,這次我們要開啟左側 參數化 選單。它會依賴於一個點位,也就是我們想要它偏移的那個點,在 選擇 選單中可以設定要參數化的 Point;屬性 的部分不用動它,直接看到下方的 機器人項目,它就是用來控制坐標的,在下拉選單中,我們可以看到從 float/Value[0] 到 float/Value[5],分別對應 x、y、z、Rx、Ry、Rz 六個軸,例如我們想要往上疊,就選擇 float/Value[2],再點擊 插入。
後面的操作就和變數控制一樣了,格子中分別填入 float/Value[2]、+=、20(單位:mm),如此,我們就設定好了坐標的參數化。