Meta Quest 3 Teleoperación VR
Convierte un auricular Meta Quest 3 en un controlador de brazo robótico en tiempo real — no se requiere brazo líder. Transmisiones de pose de seguimiento de manos a través de UDP a Python, luego a cualquier brazo compatible. Latencia inferior a 120 ms en Wi-Fi 6.
Auricular → UDP → Brazo robótico
El sistema está construido alrededor de un puente UDP unidireccional. La aplicación de Unity en el Quest 3 lee datos de seguimiento de manos y transmite paquetes de pose binarios a través de Wi-Fi. Un servidor Python en la PC de control recibe esos paquetes y reenvía comandos al robot a través de su SDK nativo. Sin ROS, sin middleware — solo sockets.
VRHandPoseSender.cs
Subsistema de manos XR
Paquete binario · 45 bytes
~50 Hz
Validador de seguridad
Cola limitada
Sujeción del espacio de trabajo
Parada de emergencia
Movimiento en tiempo real
La clave arquitectónica: solo el módulo del controlador de robot cambia entre modelos de brazo. La aplicación Quest 3 de Unity, el protocolo UDP y la infraestructura del servidor de Python son todos agnósticos al brazo. Cambiar de un brazo a otro requiere reemplazar aproximadamente 80 líneas de Python.
Tu viaje de configuración
Sigue estos pasos para pasar de un Quest 3 vacío a tu primera sesión de teleoperación en vivo. Toma alrededor de 1 a 2 horas en un sistema familiar.
Red y requisitos previos
Coloca el Quest 3 y la PC de control en la misma LAN; verifica que los puertos UDP 8888/8889 estén abiertos
Configuración de la aplicación Unity
Establece la IP de la PC de destino, positionOffset, rotationOffset y scaleFactor en el Inspector
Servidor de Python y dependencias
Instala piper_sdk, activa la interfaz CAN, ejecuta teleoperation_main.py
Guía de piper_controller.py
Entiende connect, set_pose, set_gripper y emergency_stop antes de ir en vivo
Validación de seguridad y primera sesión
Prueba en seco a 25% de velocidad, verifica los límites del espacio de trabajo, ejecuta teleoperación en vivo
Brazos robóticos compatibles
El patrón de controlador modular significa que solo un archivo de Python cambia por brazo. Todos los brazos comparten la misma aplicación de Unity Quest 3 y protocolo UDP.
AgileX Piper
Brazo de 6 grados de libertad · Bus CAN a través de adaptador USB · biblioteca Python piper_sdk
Controlador: piper_controller.py
Listo para producciónOpenArm
Brazo de 7 grados de libertad · SocketCAN / ROS 2 MoveIt2 · código abierto de la comunidad
Controlador: openarm_controller.py
BetaKit Bimanual DK1
Brazos duales de 6 grados de libertad · utiliza el puerto 8888 (derecho) y 8889 (izquierdo) simultáneamente
Controlador: dk1_controller.py
BetaVLAI L1
Brazos humanoides duales de 6 grados de libertad · puente ROS 2 sobre TCP/IP
Controlador: vlai_l1_controller.py
En desarrolloPara agregar un nuevo brazo, implementa una clase de controlador con cinco métodos — connect, disconnect, set_pose, set_gripper, emergency_stop — y cambia la importación en teleoperation_main.py. Ver la guía de interfaz de adaptador.
Sistema a simple vista
Guías y referencias
Contenido curado por SVRC que cubre toda la pila de teleoperación de Quest 3.
Comunidad
¿Tienes una pregunta sobre la teleoperación del Quest 3 o quieres compartir tu configuración?
Pregunta en el foro → Discord #vr-teleop →