Skip to content

Repository files navigation

Programming for Social Robots

NTU Social Lab 內部培訓工作坊教材。 適合沒有或僅有少量程式經驗的學習者,從零開始學習社交機器人應用開發。


開始:環境建置

詳細步驟請參考 00_building_env/02_intallations.md,包含:

  • 安裝 VSCode 編輯器
  • 安裝 Python + Conda 環境管理
  • 認識 Git、依賴管理等基本概念

課程章節

  • 透過 API 存取 LLM 服務,並利用 Jupyter Notebook 製作簡易 Chatbot(connect_to_api.ipynb

用 Python 建立你的第一個聊天機器人 API

  • 認識 Client-Server 架構與 HTTP / REST API
  • 用 FastAPI 建立後端,用 Python CLI 當客戶端
  • 學會修改 System Prompt 自訂機器人角色

03 - HTTP Chat:Android App + Flask

從終端機走向手機 App

  • Client 從 Python 換成 Android App(Java)
  • 認識 MVVM 架構模式
  • 後端改用 Flask,設計分階段對話流程

即時語音串流 —— 從 HTTP 升級為 WebSocket

  • 理解 HTTP 與 WebSocket 的差異
  • 即時雙向音訊傳輸(Full-Duplex)
  • 語音活動偵測(VAD)與音訊編碼

即時影像串流 —— 初探 WebRTC

  • 認識 WebRTC 點對點通訊技術
  • 理解 Signaling(信令)、SDPICE Candidate
  • 從手機攝影機串流影像到伺服器

雙向視訊通話 —— 完整的 WebRTC 應用

  • 完整通話流程:撥打、接聽、掛斷
  • 自己架設 Node.js 信令伺服器
  • 了解 NAT 穿越(STUN / TURN)

Wizard-of-Oz 遙控機器人 —— 整合所有技術

  • 認識 Wizard-of-Oz 實驗方法
  • 三層架構:Web 控制台 + 信令伺服器 + 機器人 App
  • 結合 HTTP、WebSocket、WebRTC 與 Robot API
  • 用腳本自動化機器人表演

以整合型的 App 為例,理解 Kotlin Android 專案結構

  • 理解 Android 專案的資料夾結構與設定檔
  • 拆解 Layout XMLKotlin 的對應關係
  • 認識 Activity 生命週期、Intent 跳轉、RecyclerView + Adapter
  • 追蹤一次「撥打通話」的完整程式碼執行流程

技術進程

HTTP(一問一答)→ WebSocket(持續雙向)→ WebRTC(點對點低延遲)
   01, 02              03                    04, 05, 06

About

114-1 社會機器人專題課程材料:程式部分

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages