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」重新訓新一個正確的數據。

Far :

我們定義 > 90 cm 這個距離為「Far」並訓練 AI 學習它

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」來儲存編程 ,以避免損失你的編程進度。