機器狗 (ROSPug)

機器狗 (ROSPug)

IT STEM Standard 14 20 hrs AI Coding / Algorithm Robot Coding Python

本課程使用 ROSPug 四足機器狗,帶領學生由 Python 基礎知識學習至機器人控制及電腦視覺。課程首先提供 Python 體驗單元及基礎教學,涵蓋變數、數據類型、算術運算、條件語句及迴圈;隨後進行圖像分類課堂,學生將使用 Google Teachable Machine 訓練及偵錯專屬模型。接著,學生將實際操作機器人:安全啟動、在 AP 及 STA Wi-Fi 模式下透過 WonderROS 應用程式以手機控制、透過 NoMachine 將電腦連接至內置的 Jetson Nano 開發板、錄製自訂動作檔案,以及使用 Linux 命令行、Vim 及 OpenCV。後期單元涵蓋四足運動學——腿部自由度、逆運動學、機器人座標系統,以及 walk、trot、amble 及 pace 步態;學生需編寫 rospy 腳本以發佈姿態、步態及速度訊息,控制機器人行走、轉向及巡邏。課程最後會介紹 ROS 節點、主題及發佈者,並完成整個電腦視覺工作流程:學生將擷取並標記數據集,訓練 YOLOv5 模型並進行測試,然後將其轉換為 TensorRT 引擎,最後在機器人的 ROS 節點上運行模型。

課程查詢

學習目標

  • 應用 Python 基礎知識(變數、數據類型、算術運算、條件語句及迴圈)編寫可運行的程式
  • 使用 WonderROS 應用程式及遠端桌面連接至內置的 Jetson Nano 開發板,以操作及控制 ROSPug 四足機器狗
  • 理解四足運動學及 ROS 概念,並編寫 rospy 腳本以發佈姿態、步態及速度訊息,控制機器人行走、轉向及巡邏
  • 建立完整的電腦視覺工作流程,涵蓋數據擷取與標記、訓練與測試,以至在機器人上進行 GPU 加速部署

課程大綱

Python 體驗:Mastermind | 描述猜數字遊戲的邏輯,並在 Visual Studio Code 中完成程式 | 實作:i) 生成四個不重複的數字 ii) 讀取並驗證玩家輸入的類型及長度 iii) 將猜測與答案進行比較並輸出 O / ? / X iv) 重複直至玩家獲勝
甚麼是 Python? | 描述 Python 如何逐行執行程式碼,以及變數、函數、運算符、關鍵字及數據類型的概念 | 實作:i) 使用不同數據類型的變數編寫自我介紹 ii) 使用 str()、int() 及 float() 轉換數值並將其連接 iii) 編寫程式碼以交換兩個變數的值
Python 中的算術運算 | 理解算術運算符、PEMDAS 運算次序,以及返回布林值的比較運算符 | 實作:i) 編寫程式碼以實作指定公式 ii) 使用向下取整除法 (floor division) 及模除 (modulus) 解決糖果包裝問題 iii) 執行並修改比較運算符以觀察 True 及 False 的結果
條件語句 | 理解如何使用 if、elif 及 else 控制程式流程、縮排範圍,以及 and / or / not 邏輯運算符 | 實作:i) 為成績評級系統編寫程式碼 ii) 編寫與電腦隨機選擇對戰的猜拳遊戲
迴圈語句 | 理解如何使用 for 及 while 迴圈重複執行程式碼,以及何時使用各種類型 | 實作:i) 編寫程式碼以計算一系列數字的總和及乘積 ii) 計算一個數字可以被除以多少次 iii) 生成一個直到輸入數值為止的斐波那契數列 (Fibonacci sequence) iv) 編寫一個猜數字範圍的遊戲
圖像分類 | 理解模型訓練的四個步驟、訓練數據與測試數據的劃分,以及 AI 模型的限制與偏差 | 實作:i) 訓練一個 Google Teachable Machine 模型以分類丹頂鶴及其他動物 ii) 使用未見過的圖像測試模型 iii) 透過移除具誤導性的圖像及增加更多訓練數據,改善低準確度的模型 iv) 加入第三個類別並重新訓練
ROSPug 首次運行 | 識別 ROSPug 四足機器狗的各個部分、安全啟動姿態與程序,以及 AP 與 STA Wi-Fi 模式的分別 | 實作:i) 啟動 Jetson Nano 開發板並檢查電池狀態畫面 ii) 透過 WonderROS 應用程式將手機連接至機器人 iii) 在 Robot Control 中駕駛機器人 iv) 在 Robot Performance 中運行預設動作 v) 選擇一種顏色並運行 Target Tracking
從電腦控制 ROSPug | 理解如何透過 NoMachine 連接至機器人桌面、錄製自訂動作檔案,以及使用基礎 Linux 指令及 Vim 編輯器 | 實作:i) 將伺服馬達置中並手動擺放機器人姿態,以錄製握手及坐下動作檔案 ii) 從 WonderROS 應用程式重播已儲存的動作 iii) 在終端機中練習 mkdir、ls、cd 及 ifconfig iv) 在 Vim 中建立並運行 Python 檔案 v) 安裝 OpenCV、從機器人鏡頭擷取相片,並運行預先訓練的 YOLOv8 偵測模型
行走與轉向 | 理解腿部自由度、逆運動學、機器人座標系統及預設腳部座標,以及 walk、trot、amble 及 pace 步態 | 實作:i) 編寫 rospy 腳本,發佈姿態、步態及速度訊息以 trot 步態行走 ii) 更改速度與持續時間,並比較移動距離 iii) 使用 math.radians 進行原地轉向 iv) 完成往返巡邏及循環巡邏
進階 ROSPug:ROS 與電腦視覺 | 理解 ROS 節點、主題及發佈者、常見的電腦視覺任務,以及數據準備、標記、訓練與評估的工作流程 | 實作:i) 編寫蜂鳴器節點並使用 for 迴圈使其發出三次聲響 ii) 更改行走姿態並以重複的小步轉向 iii) 使用擷取工具擷取數據集,並在 LabelImg 中以 YOLO 格式進行標記 iv) 將數據劃分為訓練集及驗證集、編寫 classes.txt 及 data.yaml,並訓練 YOLOv5 v) 使用 detect.py 測試訓練好的權重 vi) 將權重轉換為 TensorRT 引擎,並從 ROS 節點運行偵測

先修課程

硬體需求

  • ROSPug 四足機器狗 (Hiwonder) 連 Jetson Nano 擴展板及內置鏡頭
  • 智能手機或平板電腦 (用於安裝 WonderROS 應用程式)
  • 手提或桌上電腦 (需與機器人連接至同一 Wi-Fi 網絡)
  • Wi-Fi 路由器 (STA 模式必需;全班共用一部)

軟體需求

  • WonderROS 應用程式
  • NoMachine 遠端桌面
  • Visual Studio Code
  • Python 3
  • ROS / rospy
  • Linux 終端機及 Vim
  • OpenCV
  • Ultralytics YOLOv8 及 YOLOv5
  • LabelImg
  • TensorRT
  • Google Teachable Machine
  • Programiz 網上 Python 編譯器

其他要求