机器狗 (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 编译器

其他要求