メタクエスト 3 VR テレップ
Meta Quest 3 ヘッドセットをリアルタイム ロボット アーム コントローラーに変えます。リーダー アームは必要ありません。 ハンドトラッキング ポーズは、UDP 経由で Python にストリームされ、その後、サポートされているアームにストリームされます。 Wi-Fi 6 での遅延は 120 ミリ秒未満。
ヘッドセット → UDP → ロボットアーム
このシステムは、一方向 UDP ブリッジを中心に構築されています。 Quest 3 の Unity アプリは、ハンド トラッキング データを読み取り、Wi-Fi 経由でバイナリ ポーズ パケットをブロードキャストします。 制御 PC 上の Python サーバーはこれらのパケットを受信し、ネイティブ SDK 経由でロボットにコマンドを転送します。 ROS やミドルウェアはなく、ソケットだけが必要です。
VRHandPoseSender.cs
XR Hands サブシステム
バイナリパケット・45バイト
~50Hz
安全性バリデーター
有界キュー
ワークスペースのクランプ
非常停止
リアルタイムモーション
重要なアーキテクチャ上の洞察: アーム モデル間で変更されるのはロボット コントローラー モジュールのみです。 Quest 3 Unity アプリ、UDP プロトコル、Python サーバー インフラストラクチャはすべて arm に依存しません。 あるアームから別のアームに切り替えるには、約 80 行の Python を置き換える必要があります。
セットアップの手順
素の Quest 3 から最初のライブ遠隔操作セッションに移行するには、次の手順に従います。 使い慣れたシステムでは約 1 ~ 2 時間かかります。
ネットワークと前提条件
Quest 3 と制御 PC を同じ LAN 上に置きます。 UDP ポート 8888/8889 が開いていることを確認します
Unity アプリの構成
インスペクターでターゲット PC IP、positionOffset、rotationOffset、scaleFactor を設定します。
Python サーバーと依存関係
Piper_sdk をインストールし、CAN インターフェイスをアクティブ化し、teleoperation_main.py を実行します。
Piper_controller.py チュートリアル
本番稼働前に、connect、set_pose、set_gripper、emergency_stop を理解する
安全性検証と最初のセッション
25% の速度でドライランし、ワークスペースの境界を確認し、ライブ遠隔操作を実行します。
対応ロボットアーム
モジュラー コントローラー パターンは、アームごとに Python ファイルが 1 つだけ変更されることを意味します。 すべてのアームは同じ Quest 3 Unity アプリと UDP プロトコルを共有します。
アジャイルX パイパー
6-DOF アーム · USB アダプター経由の CAN バス · Piper_sdk Python ライブラリ
コントローラ: piper_controller.py
本番環境に対応オープンアーム
7-DOF アーム · SocketCAN / ROS 2 MoveIt2 · コミュニティ オープンソース
コントローラ: openarm_controller.py
ベータDK1 バイマニュアルキット
デュアル 6-DOF アーム · ポート 8888 (右) と 8889 (左) を同時に使用
コントローラ: dk1_controller.py
ベータVLAI L1
デュアル 6-DOF ヒューマノイド アーム · TCP/IP 上の ROS 2 ブリッジ
コントローラ: vlai_l1_controller.py
開発中新しいアームを追加するには、5 つのメソッドを含むコントローラー クラスを実装します。 connect, disconnect, set_pose, set_gripper, emergency_stop — そして、teleoperation_main.py のインポートを交換します。 を参照してください。 アダプターインターフェースガイド.
システムの概要
ガイドと参考資料
Quest 3 遠隔操作スタック全体をカバーする SVRC が厳選したコンテンツ。