Meta Quest 3 VR Teleop

Verwandeln Sie ein Meta Quest 3-Headset in einen Echtzeit-Roboterarm-Controller – kein Führungsarm erforderlich. Hand-Tracking-Pose-Streams über UDP an Python und dann an jeden unterstützten Arm. Latenz unter 120 ms bei Wi-Fi 6.

<120ms
End-to-End-Latenz
50 Hz
UDP-Paketrate
Keine ROS
Erforderlich
3+
Kompatible Arme

Headset → UDP → Roboterarm

Das System basiert auf einer unidirektionalen UDP-Brücke. Die Unity-App auf dem Quest 3 liest Hand-Tracking-Daten und sendet binäre Pose-Pakete über WLAN. Ein Python-Server auf dem Steuerungs-PC empfängt diese Pakete und leitet Befehle über sein natives SDK an den Roboter weiter. Kein ROS, keine Middleware – nur Sockets.

Metaquest 3 Unity-Handverfolgung
VRHandPoseSender.cs
XR Hands-Subsystem
UDP-WLAN Port 8888 / 8889
Binärpaket · 45 Bytes
~50 Hz
Python-Server UDP-Empfängerthread
Sicherheitsvalidator
Begrenzte Warteschlange
Robotersteuerung Armspezifisches SDK
Arbeitsplatzspannung
Nothalt
Robot Arm 6-DOF-Endeffektor
Bewegung in Echtzeit

Die wichtigste architektonische Erkenntnis: Nur das Robotersteuerungsmodul ändert sich zwischen den Armmodellen. Die Quest 3 Unity-App, das UDP-Protokoll und die Python-Serverinfrastruktur sind alle Arm-agnostisch. Der Wechsel von einem Arm zum anderen erfordert das Ersetzen von etwa 80 Python-Zeilen.

Kompatible Roboterarme

Das modulare Controller-Muster bedeutet, dass pro Arm nur eine Python-Datei geändert wird. Alle Arme nutzen die gleiche Quest 3 Unity-App und das gleiche UDP-Protokoll.

AgileX Piper

6-DOF-Arm · CAN-Bus über USB-Adapter · Piper_sdk Python-Bibliothek

Die Verordnung: piper_controller.py

Produktionsbereit

OpenArm

7-DOF-Arm · SocketCAN / ROS 2 MoveIt2 · Community Open Source

Die Verordnung: openarm_controller.py

Beta

DK1 Bimanual-Kit

Duale 6-DOF-Arme · nutzt Port 8888 (rechts) und 8889 (links) gleichzeitig

Die Verordnung: dk1_controller.py

Beta

VLAI L1

Duale humanoide 6-DOF-Arme · ROS 2-Brücke über TCP/IP

Die Verordnung: vlai_l1_controller.py

In der Entwicklung

Um einen neuen Arm hinzuzufügen, implementieren Sie eine Controller-Klasse mit fünf Methoden: connect, disconnect, set_pose, set_gripper, emergency_stop – und tauschen Sie den Import in teleoperation_main.py aus. Siehe die Anleitung zur Adapterschnittstelle.

System im Überblick

Headset Meta Quest 3 (Hand-Tracking-Modus)
Transport UDP über WLAN (Ports 8888/8889)
Paketpreis ~50 Hz von Unity; Roboter kommandiert mit 30 Hz
Paketgröße 45 Bytes (Binärdateien lang, Little-Endian)
End-to-End-Latenz 50–120 ms im Wi-Fi 6 LAN
Host-Laufzeit Python 3.10+ (kein ROS erforderlich)
Unity-Version 2022.3 LTS+ mit XR Hands-Paket
Primärer Referenzarm AgileX Piper (CAN-Bus über USB)
Vollständige Spezifikationen und Protokoll →

Gemeinschaft

Haben Sie eine Frage zur Quest 3-Teleoperation oder möchten Sie Ihr Setup teilen?

Fragen Sie das Forum → Discord #vr-teleop →

Bereit für Teleop?

Holen Sie sich die Unity-Skripte, den Python-Server und piper_controller.py – alles, was Sie zum Ausführen Ihrer ersten VR-Teleoperationssitzung benötigen.