Ir al contenido

Meta Quest 3

Visor Meta Quest 3 con sus dos controladores

El Meta Quest 3 es la interfaz de usuario de Remote Hands. Desde el visor, el operador ve el entorno del robot, lo conduce, maneja el manipulador y elige qué datos de los sensores quiere recibir.

Una aplicación Unity para Meta Quest 3 en realidad mixta: el operador ve su entorno real por passthrough, con los controles superpuestos. Todos viven en un canvas world-space que flota frente a él, y se usan apuntando con los controladores del visor.

Vista de la interfaz de teleoperación en realidad mixta sobre Meta Quest
La interfaz tal como la ve el operador: paneles de estado y sensores superpuestos sobre el entorno real.

El canvas agrupa tres paneles:

PanelFunción
IzquierdoEstado de conexión, controles de cámara, parada de emergencia
CentralStream de video principal y grid LiDAR 2D
DerechoSliders de manipulador y gripper, rotación de cámara

La interfaz pide a la NUC solo los datos que está mostrando: los streams que nadie tiene abierto no se transmiten.

Para mover el robot hay tres modos exclusivos, y solo uno puede estar activo a la vez:

ModoQué habilitaQué arma
MobileConducción con el joystick derechoTracción
ManipSliders de manipulador y gripperCL57T
BaseRotación del brazo—

Al desactivar todos los modos, la interfaz envía stop_all y master_disarm.

El visor habla solo con la NUC, por WiFi. Cada tipo de dato viaja por su propio puerto ZeroMQ.

  1. Meta Quest 3Unity · AsyncZMQ (NetMQ)
  2. ZMQ por WiFiMeta Quest 3 → NUC: 5002 comandos JSONNUC → Meta Quest 3: 5555 video · 5001 estado · 5007 paredes y puntos
  3. NUCcoordinador · Python 3.12

Los comandos que salen por el puerto 5002 se envían varias veces seguidas, con unos milisegundos de separación: un suscriptor de ZeroMQ que acaba de conectarse pierde los primeros mensajes, y repetir el comando asegura que al menos una copia llegue. El detalle de cada puerto está en Middleware ZMQ.

Lo publicado del proyecto Unity son sus 25 scripts de C#, completos, y el contrato con la NUC. No están las escenas ni los prefabs, así que los scripts explican la lógica y el protocolo pero no bastan para recompilar esta app. Con el contrato sí se puede escribir un cliente propio que hable con el robot igual que este.

Para probar la aplicación sin el robot, una PC puede hacerse pasar por la NUC. Este script abre los mismos puertos que el coordinador: publica un video de prueba en el 5555 y muestra cada comando que el visor envía por el 5002.

  1. Conecta la PC y el visor a la misma red WiFi.
  2. Instala las dependencias: pip install pyzmq numpy opencv-python.
  3. Corre el script, que imprime la IP de la PC:
Ventana de terminal
python nuc_simulada.py
  1. En el visor, escribe esa IP como IP de la NUC.

Si el panel central muestra barras de color en movimiento con la hora, el video llega. Al mover los controles, en la consola aparece cada comando, por ejemplo:

[12:04:31] cmd {"type": "drive_cmd", "v": 0.42, "w": 0.0, "enabled": true}

Si Windows pregunta por el firewall, permite las conexiones de Python en redes privadas.