Meta Quest 3 VR Teleop
Transformez un casque Meta Quest 3 en un contrôleur de bras robotique en temps réel – aucun bras leader n'est requis. Le suivi manuel des flux de pose via UDP vers Python, puis vers n'importe quel bras pris en charge. Latence inférieure à 120 ms sur Wi-Fi 6.
Casque → UDP → Bras robot
Le système est construit autour d'un pont UDP unidirectionnel. L'application Unity sur le Quest 3 lit les données de suivi manuel et diffuse des paquets de pose binaires via Wi-Fi. Un serveur Python sur le PC de contrôle reçoit ces paquets et transmet les commandes au robot via son SDK natif. Pas de ROS, pas de middleware – juste des sockets.
VRHandPoseSender.cs
Sous-système XR Hands
Paquet binaire · 45 octets
~50 Hz
Validateur de sécurité
File d'attente délimitée
Serrage de l'espace de travail
Arrêt d'urgence
Mouvement en temps réel
L'idée architecturale clé : seul le module de commande du robot change d'un modèle de bras à l'autre. L'application Quest 3 Unity, le protocole UDP et l'infrastructure du serveur Python sont tous indépendants du bras. Le passage d'un bras à un autre nécessite le remplacement d'environ 80 lignes de Python.
Votre parcours d'installation
Suivez ces étapes pour passer d'un Quest 3 nu à votre première session de téléopération en direct. Prend environ 1 à 2 heures sur un système familier.
Réseau et prérequis
Mettez Quest 3 et le PC de contrôle sur le même réseau local ; vérifiez que les ports UDP 8888/8889 sont ouverts
Configuration de l'application Unity
Définissez l'adresse IP du PC cible, positionOffset, rotationOffset et scaleFactor dans l'inspecteur.
Serveur Python et dépendances
Installez piper_sdk, activez l'interface CAN, exécutez teleoperation_main.py
piper_controller.py Procédure pas à pas
Comprendre connect, set_pose, set_gripper et Emergency_stop avant de passer en ligne
Validation de sécurité et première session
Exécution à sec à une vitesse de 25 %, vérification des limites de l'espace de travail, exécution de la téléopération en direct
Soutiens-gorge robots compatibles
Le modèle de contrôleur modulaire signifie qu’un seul fichier Python change par bras. Toutes les armes partagent la même application Quest 3 Unity et le même protocole UDP.
Piper AgileX
Bras 6-DOF · Bus CAN via adaptateur USB · Bibliothèque Python piper_sdk
Contrôleuse: piper_controller.py
Prêt pour la productionBras ouvert
Bras 7-DOF · SocketCAN / ROS 2 MoveIt2 · communauté open-source
Contrôleuse: openarm_controller.py
BêtaKit bimanuel DK1
Bras doubles 6-DOF · utilise simultanément les ports 8888 (à droite) et 8889 (à gauche)
Contrôleuse: dk1_controller.py
BêtaVLAI L1
Bras humanoïdes doubles 6-DOF · Pont ROS 2 sur TCP/IP
Contrôleuse: vlai_l1_controller.py
En développementPour ajouter un nouveau bras, implémentez une classe de contrôleur avec cinq méthodes : connect, disconnect, set_pose, set_gripper, emergency_stop - et échangez l'importation dans teleoperation_main.py. Voir le guide d'interface de l'adaptateur.
Système en un coup d'œil
| Casque | Meta Quest 3 (mode de suivi manuel) |
| Transport | UDP sur Wi-Fi (ports 8888/8889) |
| Tarif des paquets | ~ 50 Hz depuis Unity ; robot commandé à 30 Hz |
| Taille du paquet | 45 octets (binaire de longueur fixe, petit-boutiste) |
| Latence de bout en bout | 50 à 120 ms sur réseau local Wi-Fi 6 |
| Exécution de l'hôte | Python 3.10+ (aucun ROS requis) |
| Version Unitaire | 2022.3 LTS+ avec pack XR Mains |
| Bras de référence primaire | AgileX Piper (bus CAN via USB) |
Guides et références
Contenu organisé par SVRC couvrant la pile complète de téléopération Quest 3.
Communauté
Vous avez une question sur la téléopération Quest 3 ou souhaitez partager votre configuration ?
Demandez au forum → Discord #vr-teleop →






