Robo AI - Distance 教學
學習目標 :
- 認識 Ultrasonic Sensor 為輸入
- 認識如何訓練人工智能模型
- 認識 Robo 簡單接駁及編程技巧
Distance Sensor (距離感測器) 能測量物件與 Sensor 之間的距離 (以 cm 為單位) ,
它的原理是 Sensor 會發放 Sound Wave (音波) , 當這些 wave 遇到物件時便會反彈回 sensor ,
從而測量出兩者之間的距離 。
Distance Sensor 在一般情況下是用左測量並顯示距離的 ,
但在 AI 層面上 , 我們會透過測量到的距離教導/訓練它是什麼 ,
例如 : 給予 10cm 這個距離一個標籤 "近" , 從而讓 AI 透過數據學習不同距離。
所需材料 :
Robo Main Block (Orange) x 1
Distance Sensor x 1
Connector (Green) x 1
連接教學 :
進入 https://steamhub.robowunderkind.com/ 並登入帳號。
STEAM Hub 的帳號請向我們 ETC 申請
打開左面的工具欄 , 並點擊「Web App」進入編程平台。
進入 Web App 後會有類似的畫面 , 首先使用的話 Projects 下方應為空白(沒有 project)
將開機制推向 USB Port 方向以啟動電源
點擊橙色 MAIN BLOCK LABEL , 然後按「Connect your Main Block」
開機後你應會在 pair 頁面看到你的 Robo , 選取 RW_XXXXXX (你的robo)
然後按 Pair 完成連接。
加入 Distance Sensor :
利用綠色 Connector 接駁 Distance Sensor 及橙色 Main Block
如何令 AI 判斷距離?
我們將透過 Distance Sensor 讀取到的數值(距離)給予這些數據一個 label
來訓練 AI 依照所取得的數值判斷出該距離是遠的還是近的
訓練 AI 模型 :
選擇「AI」進入 AI 訓練頁面
然後拖拉到下方 , 選擇「Create New AI Model」進行訓練
先選取「Distance Sensor」 , 然後為你的 AI 模型取名字
你需改好名字後才能進入「Next」開始訓練
學習內容 :
- 使用 2-5 個距離作為輸入,並在不同的輸入上加上(分類的)身份標籤來訓練人工智能模型。
- 訓練完成,人工智能模型就可以用來分辨出是哪種類型的輸入,並與訓練數據中的標籤進行比較,以決定分類 。
你可選擇拖拉預設的 label 到 AI Model 上
或自行按「+」自定義 label , 這些 label 名字將會是稍後訓練的內容。
建議最少設定3個label進行訓練
這個是 AI Model 的訓練頁面 ,
1) 是剛才設定的 label i.e. 訓練內容
2) 是 Distance Sensor 現時的數據
3) 是已訓練的 Data 數量 (尚未進行學習 因此為0)
4) Data Collection (已收集/學習的 Data)
建議每一組 Label 收集/訓練最少 100組 Data
Nearest :
我們定義 1-5 cm 這個距離為「Nearest」並訓練 AI 學習它
有同學可能已經發現有部份 data 並不乎合「Nearest」,
一個好的 AI 學習除了要有足夠多的數據後 , 還要確保數據都是正確的。
我們可以按下「Clear」來刪除錯誤的數據或「Replace」重新訓新一個正確的數據。
Medium :
我們定義 20 - 30 cm 這個距離為「Medium」並訓練 AI 學習它
Medium 的用處是提供一個中間點作比較 , 避免在另外兩個較極端的數據中直接區分成「Nearest」或「Far」
各個 label 定義的 distance value 可自行改變
訓練及測試 AI 模型 :
按下「Train AI Model」將剛才記錄的數據給予AI模型學習
假如你的訓練 Data 足夠及準確 , 你的 Accuracy 應超過95% Loss會低於 0.1 ;
如果你的訓練 Data Accuracy 不足80% , 出來的結果會參差不齊 , 建議重新訓練 。
按「Next」進入 Testing Phase , 然後按「Start Testing」測試你的 AI model
將你的 Robo Distance Sensor 擺放至不同距離作測試 ,
最重要的是測試 Medium 的 Prediction , 因為當訓練不足或數據太參差時 Medium 距離是最常判斷不到的。
換言之 , Medium 的判斷無誤則代表訓練結果表現良好。
簡單編程應用 :
返回 Web App 頁面 , 按「Code」進入 Robo Code App
這次使用最簡單的「Sound」 Command 作示範 ,
「Sound」為橙色的 Coding Block 意思是只需橙色 Main Block 便可使用。
Robo Coding Block 的顏色是跟它的 Sensor / Output 相對應的 , 例如 : Motor 是藍色 , Motion Block 也是藍色
由於我們剛訓練 AI 3組不同的距離 LABEL , 因此取出一樣數量的音效。
1. 點擊「Connect」進入連接 Coding 的介面
2. 將 mouse 移動至你需連接的 Coding Block , 然後按住 mouse 的 left click
這個 Coding Block 將會是這個 Connection 的開端
3. 保持按住並拖拉一條直線到下一個 Coding Block
如此類推 , 編程邏輯是由一個編程方塊(動作)連接至下一個動作
我們將第3個 Sound Block 連回至開始(第1個)的 Sound Block
從而做出一個 loop , 使以上的音效不斷循環播放。
最後記緊按「Connect」離開連接介面 , 你才可以讓 Robo 執行編程。
按「Play」測試你的編程
假如沒有發出音效有機會是 Robo 的音量太小 , 你可按下工貝欄上的「Robo Main Block」
查看 Robo 的 status , 例如 : volume , Attached Modules 等等
測試編程後 , 進入「Sensing」並取出「Distance」
一樣按住 Coding Block 直至擺放到箭嘴上 ,
當放對位置時箭嘴會由綠色變為紫色 , 這時候便可以鬆開 mouse 的 left click。
點擊 Distance Command , 默認會是 Distance Sensor (Sensing) ,
點擊 「AI」以選擇 AI Model
先選擇 AI Model (Dis AI | 剛才命名的) , 然後選擇 label i.e Nearest
你也能選用有 Robo Logo 的 Pre-Train model 進行編程
把 Distance Sensor 都設定好後便可按「Play」測試編程
會先播放「Start」的音效 , 然後依照你設定的距離 label 觸發下一個音效
儲存專題 :
Robo Web App 並沒有 Auto Save 功能 ,
因此在編程中及完成後緊記按下左下角的「Save Logo」來儲存編程 ,以避免損失你的編程進度。











