Ir al artículo

Teleoperación y reproducción de sesiones

Comprobado 2026-11-01

Resultado: un mapeo conjunto marcado permite que el líder controle al seguidor y una sesión guardada se puede reproducir sin el líder.

Prepara dos buses de comunicación.

Utilice adaptadores en serie separados para líder y seguidor, de 1 a 6 pares de juntas, límites no vacíos guardados, modo de posición normal y resolución unitaria. El líder podrá utilizar firmware de fábrica; el seguidor requiere la extensión v9.

Cada bus debe contener exactamente sus ID configurados. Deshabilite el torque del líder de antemano: la herramienta nunca escribe al líder. La configuración del seguidor debe estar bloqueada sin escritura heredada diferida. Prepare perfiles y, si es necesario, un modelo de gravedad utilizando la guía de configuración.

Configurar el archivo

macOS / Linux
cp tools/teleoperation/example.json tools/teleoperation/controller.local.json
Windows PowerShell
Copy-Item tools/teleoperation/example.json tools/teleoperation/controller.local.json

Establezca distintos leaderPort y followerPort, velocidad en baudios y todos los pares de joints. El ejemplo fuente contiene un par; ampliarlo para el brazo real. Proporcione a cada seguidor un perfil, con rutas relativas al archivo del controlador.

{"leaderId": 1, "followerId": 1, "mapping": "angle", "direction": 1}

Esta es una entrada de matriz joints, no un archivo completo. Opciones de mapeo:

campo Significado
mapping: "angle" Preservar el desplazamiento del conteo desde el punto medio del límite guardado; asume escalas de codificador y engranajes compatibles
mapping: "range" Escale cada mitad del recorrido del líder a la mitad del seguidor correspondiente, útil para diferentes pinzas
direction 1 o −1
leaderMiddle, followerMiddle Centros opcionales solo para range, estrictamente dentro de los límites respectivos

El punto medio límite puede diferir del recuento de referencia 2048. Por lo tanto, las posturas de calibración coincidentes no garantizan objetivos coincidentes cuando los límites son asimétricos. Los objetivos están limitados a los límites de seguidores.

Vista previa y comienzo

Este comando lee ambos buses y obtiene una vista previa del mapeo sin cambiar la configuración:

macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json

Compare las posiciones y objetivos informados con la configuración física y verifique la dirección de cada par. Apoye ambos mecanismos y deje espacio para que el seguidor se acerque a la postura del líder. Luego inicie explícitamente el control:

macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json --run
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json --run

El hz solicitado oscila entre 1 y 60 Hz y el valor predeterminado es 60; La tasa real depende del bus, la computadora, la retroalimentación y el registro. Los períodos perdidos se omiten en lugar de enviarse en ráfagas de recuperación. No ejecute otro controlador en el mismo bus.

Comprobación: no hay cuadros obsoletos ni errores de retroalimentación, dirección correcta y límites de recorrido esperados. La finalización normal y Ctrl+C mantienen el control activado. Con un modelo de gravedad, la finalización espera el descanso; sin uno, el proceso puede salir mientras el motor continúa hacia el último objetivo. La herramienta no mueve automáticamente el brazo a una posición de estacionamiento.

Repetición sin el líder

Los registros se guardan en logs/motion/. Seleccione SESSION.ndjson que contiene límites de líder de verificación previa y mapeo seguido de eventos de comando. Mantenga el mismo mapeo conjunto en el archivo del controlador actual. La repetición abre solo el seguidor:

macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run

El primer comando muestra una vista previa; el segundo se mueve. La repetición utiliza posiciones y límites de líder registrados, límites de seguidores actuales, perfiles actuales y gravedad actual. No reproduce logros o esfuerzos de control históricos. Las pausas grabadas permanecen; el procesamiento retrasa el tiempo en lugar de emitir ráfagas de recuperación.

Un registro que exprese una orden prevista no prueba la aceptación del motor. Al revisar una sesión fallida, compare los comandos previstos, la transmisión real y la retroalimentación.


Inicio de la documentación · Revisión de la fuente: a995f77. Extensión 9.0.