Context

查詢 PAPRLE(UIUC Kim Lab)模組化遠端操控系統的技術細節,特別是中間件架構與 VR 控制器支援範圍,以評估 Oculus Quest 2 是否可作為 leader 設備。

Key Insights

  • ROS1 + ROS2 雙支援:PAPRLE 同時支援 ROS1 和 ROS2,以及 MuJoCo 和 IsaacGym 模擬器,中間件選擇靈活
  • VR 支援僅限 Apple Vision Pro:官方支援的 VR/空間運算設備只有 Vision Pro,Quest 2/3 不在清單內。其他官方 leader 設備:Keyboard、Puppeteer、Nintendo Joycon、PS5 DualSense
  • Quest 2 可行但需自製橋接:理論路線為 Quest 2 → OpenXR/WebXR 取得 6DoF 姿態 → 發布 ROS2 topic → 接入 PAPRLE task-space mapping。技術可行,工作量中等,無開箱支援
  • 與 OPEN TEACH 的定位差異:OPEN TEACH(NYU)以 Quest 3 為核心,主打低成本($500)且開箱即用;PAPRLE 追求硬體模組化彈性,VR 支援反而是次要功能
  • 全開源:github.com/uiuckimlab/PAPRLE,含硬體設計(PAPRAS)與軟體控制

2026-04-08 補充:Oculus 連接機制、Ubuntu 支援、mocap 擴充

  • Quest 2 實際連接方式是 oculus_reader(ADB):並非 OpenXR/ROS 橋接,而是透過 RAIL Berkeley 的 oculus_reader 函式庫,在 Quest 2 安裝自製 APK,再以 ADB(有線或無線 WiFi)傳控制器姿態和按鈕狀態到 Python。這比 OpenXR 路線簡單得多,且在 Ubuntu 上完整支援(sudo apt install android-tools-adb
  • Ubuntu 是 primary 平台:官方支援 Ubuntu 20.04 (Python 3.8) 和 22.04 (Python 3.10),oculus_reader 本身也以 Ubuntu 為示範環境
  • oculus.py 的資料處理:取得左右控制器 6DoF 位姿後,透過 oculus2paprle 座標轉換矩陣對齊框架,用 SVD 確保旋轉矩陣合法,輸出 delta_eef_pose 給 Teleoperator 做 IK
  • Manus 手套:原生不支援,但可寫新 Leader 接 Manus SDK(Python binding / UDP)讀手指關節角;手腕 6DoF 需搭配獨立 tracker(如 SteamVR tracker)
  • mocap 系統(OptiTrack / Vicon):兩條路——(1) 改 puppeteer.py 改接 mocap ROS driver topic;(2) 把 lafan_dataset.py(現為 mocap CSV 離線回放)改成即時串流版本。lafan_dataset.py 已知道如何消化 mocap 格式姿態,是最快的起點
  • 新增 Leader 成本低:繼承 base.py,實作 get_status() 回傳 joint_posdelta_eef_pose,其他部分(IK、安全過濾)不需動,約 200~300 行

Connections