🧪 Se publican nuevos tutoriales — del brazo robótico al sensor
Saltar al contenido
Comprar este productoTienda oficialSitio web oficial

04 · Teleoperación por teclado ​

Controla manualmente con el teclado el brazo real o simulado "moviendo" sus articulaciones: es la forma de control más rápida cuando no se dispone del brazo líder y también uno de los medios para grabar datos de demostración.

Requisito previo: para la parte de simulación basta con completar 01; para la parte de robot real también hay que completar 03. COM172/juxi_so101 en los comandos son ejemplos: comprueba el puerto según el capítulo 03 y sustitúyelo; usa como id el nombre que elegiste al calibrar.

Comandos ​

bash
export UV_CACHE_DIR='C:\Users\admin\AppData\Local\Temp\uv-cache'

# 真机从动臂
uv run --frozen --with mujoco python examples/so101_mujoco/teleoperate.py \
    --robot.type=so101_follower --robot.port=COM172 --robot.id=juxi_so101 \
    --robot.use_degrees=false --robot.max_relative_target=5 \
    --teleop.type=so101_keyboard --teleop.rate=150

# 仿真从动臂(MuJoCo 窗口自动打开)
uv run --frozen --with mujoco python examples/so101_mujoco/teleoperate.py \
    --teleop.rate=150

(teleoperate.py ya usa por defecto --robot.type=so101_mujoco --teleop.type=so101_keyboard.)

Teclas (actúan mientras se mantienen pulsadas; escucha global: da igual qué ventana tenga el foco) ​

TeclaAcciónTeclaAcción
w / sshoulder_lift arriba / abajoa / zshoulder_pan izquierda / derecha
e / delbow_flex extender / flexionart / gwrist_flex + / −
y / hwrist_roll + / −u / jpinza abrir / cerrar

Las teclas se eligieron evitando deliberadamente las teclas de control de grabación (n/r/q, flechas, Esc), de modo que la teleoperación y la grabación pueden ejecutarse a la vez.

Parámetros clave ​

ParámetroFunciónValor recomendado
--teleop.rateVelocidad objetivo mientras se mantiene pulsada una tecla (unidades/segundo)El valor por defecto, 60, es lento; en el robot real 150 resulta adecuado
--robot.max_relative_targetCuántas unidades como máximo puede moverse una articulación por ciclo de control (límite de velocidad de seguridad)Robot real 5 (teleoperación a 60 Hz) / 10 (grabación a 30 Hz)
--robot.use_degrees=falseUsar proporción de recorrido (−100 a 100) en lugar de gradosObligatorio en el robot real; de lo contrario las unidades no coinciden (la simulación ya es coherente por defecto)

Comportamiento ​

  • No escribas durante la teleoperación: la escucha de teclado es global y no consume las pulsaciones; pulsar en cualquier ventana del ordenador una tecla mapeada (w a s z e d t g y h u j, incluidos los caracteres de entrada en un chat) también acciona el brazo. Con el modo de brazo líder este problema no existe.
  • El brazo se mueve en el instante de conexión: el brazo seguidor real primero recibe torque (se vuelve rígido) y luego se mueve hacia la "pose media" (el objetivo antes de pulsar teclas); el brazo simulado converge directamente hacia la pose media. Deja espacio alrededor.
  • Salir: Ctrl-C en ese terminal (o pulsar Esc; la escucha de teclado se desconecta y el programa sale limpiamente). Tras salir, el robot real pierde el torque y se vuelve blando; sujétalo con la mano; es un comportamiento normal.
  • Las ráfagas de WARNING clamped to be safe en el log de arranque son la salida normal del limitador de velocidad mientras "alcanza" el objetivo; se detienen automáticamente al llegar.