E1 · Guion estándar
5 minEjecuta el teleop con el guion del kit y 80 ms.
Listo cuando: python3 kit/teleop_sim.py --roteiro kit/passos.json | tail -1 → alvos atingidos: 5/6.
Clase 5 · 15 min
La teleoperación es la forma más rápida de que un humanoide haga una tarea nueva y de reunir demostraciones para un VLA. El operador mueve los brazos con unas gafas de VR y el robot repite; el retraso es lo que lo arruina. En esta clase teleoperas los dos brazos del G1 con un guion y mides a partir de qué latencia todo se desmorona.
Comenzar la clase
Objetivo: teleoperar los dos brazos del G1 con un guion de objetivos con latencia y medir cuántos objetivos alcanza la mano.
Haz clic en cada bloque.
Teleop es lazo cerrado con un humano adentro: un retraso grande hace que el operador corrija lo que ya pasó.
Haz clic en cada una.
SONIC tiene un checkpoint de "baja latencia" (16/06/2026) que mira 4 cuadros futuros a 20 ms: cerca de 80 ms de horizonte de referencia. El checkpoint estándar mira 10 cuadros (cerca de 200 ms).
El propio README avisa: esos números no son la latencia total de la teleoperación, que incluye sensor, red, preprocesamiento e inferencia.
El repositorio GR00T-WholeBodyControl trae teleop por VR con PICO, CloudXR dentro del proceso vía isaacteleop[cloudxr] (16/06/2026) e IsaacTeleop 1.4 con Jetson AGX Orin (14/09/2026).
El 07/05/2026 ganó el flujo VLA de punta a punta en el G1: recolectar por teleop, ajustar GR00T N1.7 e implantar con SONIC.
HOVER (ICRA 2025, reportado) destiló varios modos de comando (VR, mocap, exoesqueleto, joystick) en una policy de cerca de 1,5M parámetros.
SONIC usa un espacio de tokens único para VR, video humano y VLA: el mismo control obedece a cualquiera de ellos (clase 7).
El guion kit/passos.json hace el papel del operador: seis desplazamientos de control, alternando las manos. El sexto, a propósito, pide 60 cm al frente.
F=${FTH:-$HOME/fth}; cd $F/corpo-inteiro && . $F/.venv/bin/activate
python3 kit/teleop_sim.py --roteiro kit/passos.json; echo "saída: $?"{
"descricao": "Roteiro de teleoperação: deslocamentos do controle de cada mão (em metros, a partir da posição inicial da mão), como um operador de VR moveria. Cada alvo vale até 'janela' segundos depois de enviado.",
"tolerancia_cm": 3,
"alvos": [
{"t": 0.2, "mao": "direita", "dx": 0.20, "dy": 0.00, "dz": 0.15, "janela": 0.6},
{"t": 0.9, "mao": "esquerda", "dx": 0.20, "dy": 0.00, "dz": 0.15, "janela": 0.6},
{"t": 1.6, "mao": "direita", "dx": 0.25, "dy": 0.10, "dz": 0.30, "janela": 0.6},
{"t": 2.3, "mao": "esquerda", "dx": 0.25, "dy": -0.10, "dz": 0.30, "janela": 0.6},
{"t": 3.0, "mao": "direita", "dx": 0.15, "dy": -0.05, "dz": 0.05, "janela": 0.6},
{"t": 3.7, "mao": "direita", "dx": 0.60, "dy": 0.00, "dz": 0.20, "janela": 0.6}
]
}latência do operador ao robô: 80 ms · tolerância: 3 cm · controle a 50 Hz alvo 1 · t=0.2 s · mão direita · atingido em 162 ms alvo 2 · t=0.9 s · mão esquerda · atingido em 160 ms alvo 3 · t=1.6 s · mão direita · atingido em 174 ms alvo 4 · t=2.3 s · mão esquerda · atingido em 154 ms alvo 5 · t=3.0 s · mão direita · atingido em 166 ms alvo 6 · t=3.7 s · mão direita · não atingido (chegou a 21.7 cm) robô de pé: sim alvos atingidos: 5/6 saída: 0
Cada objetivo tarda cerca de 80 ms de latencia + 80 ms de movimiento. El 6.º no se alcanza con ninguna latencia: está fuera del alcance del brazo.
ERRO no roteiro: mão 'esquerdo' (use direita ou esquerda) saída: 1
El guion acepta solo "direita" y "esquerda". Un error de tipeo se detiene antes de mover el robot, no en medio de la sesión.
alvos atingidos: 6/6
El 6.º objetivo con dx 0,25 en vez de 0,60: todos alcanzados.
El mismo guion con cinco latencias. La ventana de cada objetivo es de 0,6 s.
F=${FTH:-$HOME/fth}; cd $F/corpo-inteiro && . $F/.venv/bin/activate
for ms in 0 80 300 450 550; do
echo "$ms ms → $(python3 kit/teleop_sim.py --roteiro kit/passos.json --latencia-ms $ms | tail -1)"
done0 ms → alvos atingidos: 5/6 80 ms → alvos atingidos: 5/6 300 ms → alvos atingidos: 5/6 450 ms → alvos atingidos: 4/6 550 ms → alvos atingidos: 0/6
Hasta 300 ms sobra ventana. A 450 ms un objetivo ya pierde la ventana; a 550 ms ninguno se alcanza a tiempo. En un operador de verdad, el efecto aparece antes: empieza a corregir el retraso.
Guion, latencia y alcance.
Ejecuta el teleop con el guion del kit y 80 ms.
Listo cuando: python3 kit/teleop_sim.py --roteiro kit/passos.json | tail -1 → alvos atingidos: 5/6.
Copia el guion a ~/fth/movimentos/passos-meu.json y trae el 6.º objetivo al alcance (dx menor que 0,3).
Listo cuando: python3 kit/teleop_sim.py --roteiro ~/fth/movimentos/passos-meu.json | tail -1 → alvos atingidos: 6/6.
Ejecuta el barrido de latencia y di, en una frase, por qué 550 ms anula todo con una ventana de 0,6 s.
Listo cuando: python3 kit/teleop_sim.py --roteiro kit/passos.json --latencia-ms 550 | tail -1 → alvos atingidos: 0/6.
La explicación aparece después de tu respuesta.
Pregunta 1 de 3
El checkpoint de baja latencia de SONIC tiene 4 cuadros a 20 ms. ¿Qué son esos 80 ms?competencia
Pregunta 2 de 3
El objetivo 6 no se alcanza ni con latencia cero. ¿Qué indica eso?
Pregunta 3 de 3
¿Para qué sirve la teleoperation de cuerpo completo además de operar el robot en el momento?
Elige una alternativa. La explicación aparece después de tu intento.