Volver a DK1 Path

Configurar el control de líder/seguidor

Unidad 2 de la ruta de aprendizaje bimanual DK1. Instala el DK1 SDK, configure el emparejamiento líder/seguidor, ejecuta pruebas de conexión Python para ambos brazos y verifique la sincronización. ~ 2 horas.

Unidad 2 de 6 · Configuración de Líderes/Followers · ~ 2 horas

Instale el DK1 SDK, configure el emparejamiento líder/seguidor y ejecute pruebas de conexión Python para ambos brazos. Al final de esta unidad, mover el brazo líder produce una respuesta sincronizada instantánea en ambos brazos seguidores.

La referencia completa de la instalación de SDK se encuentra en hardware/dk1/software. Esta unidad cubre los pasos de configuración específicos de un bimanual que van más allá de la instalación de un solo SDK que puede haber hecho para OpenArm.

Instalar el SDK DK1

El DK1 SDK es separado del OpenArm SDK. No intente ejecutar los brazos DK1 con el paquete OpenArm el protocolo de firmware es diferente.

# Crea un entorno virtual aislado para DK1 trabajo python3 -m venv ~/dk1-env fuente ~/dk1-env/bin/activar # Instala el DK1 SDK y las extensiones bimanual pip instalación dk1-sdk[bimanual] # Verifique la instalación python -c "importar dk1; imprimir(dk1.__versión__) " # Se espera: 0.4.0 o superior

Configurar el emparejamiento líder/seguidor

El SDK lee un archivo de configuración YAML que le dice qué dispositivo en serie es el líder y qué dispositivos son los dos brazos seguidores. Debes especificar los caminos del dispositivo en el orden correcto.

# Generar el archivo de configuración bimanual predeterminado dk1-config generar --modo bimanual --output ~/dk1-config.yaml # Abre y edita la configuración establecer sus caminos reales de dispositivo nano ~/dk1-config.yaml

Los campos clave en T0:

líder: dispositivo: /dev/ttyUSB2 # el control de liderazgo brazo baudrate: 1000000 seguidor_izquierda: dispositivo: /dev/ttyUSB0 # brazo de seguidor izquierdo baudrate: 1000000 seguidor_derecha: dispositivo: /dev/ttyUSB1 # brazo de seguidor derecho baudrate: 1000000 sincronización: frecuencia_hz: 50 # velocidad de sincronización de estado conjunto latencia_tolerancia_ms: 5 # máximo permitido retraso de sincronización

** asignación de la ruta del dispositivo:** La asignación del brazo físico a T1 depende del orden del puerto USB, que puede cambiar entre reinicios. Para crear alias estables, use las reglas T2 con teclado en el número de serie del dispositivo. ejecuta T3 para encontrar la serie para cada brazo y cree reglas en T4. Esto se cubre en detalle en hardware/dk1/software.

Prueba de conexión de Python Ambos brazos

Después de editar la configuración, ejecuta una prueba de conexión que ejerce los tres dispositivos simultáneamente:

de dk1 importar BimanualRobot robot = BimanualRobot(config_path="~/dk1-config.yaml") robot.connect() # Imprimir estados conjuntos para ambos brazos debe actualizarse a 50Hz para i en el rango(10): estado = robot.get_joint_states() imprimir(f"izquierda: {\f'{j:.2f}' para j en estado.izquierda]}") imprimirf"derecha: {\f'{j:.2f}' para j en estado.derecha]}") imprimir "---") robot.disconectar)

Una ejecución exitosa imprime 10 pares de matrices de estado conjunto con valores constantes y estables. Si ve valores NaN, un error de tiempo de espera o menos de 6 valores conjuntos por brazo, revise las asignaciones de la ruta del dispositivo en su archivo de configuración.

Verificación de sincronización

La comprobación más importante en esta unidad es verificar que el movimiento del líder produce una respuesta sincronizada del seguidor sin retraso perceptible:

Importar de dk1 BimanualRobot, LeaderFollowerSession robot = BimanualRobot(config_path="~/dk1-config.yaml") sesión = LeaderFollowerSession(robot) # Empiezar el bucle de sincronización líder/seguidor # Mover el brazo líder lentamente ambos seguidores deben reflejar inmediatamente la sesión.start() entrada("Presiona Enter para detener...") sesión.stop()

Mueve el brazo líder lentamente a través de un arco de 30° en una sola articulación. Ambos brazos del seguidor deben moverse al unísono sin retraso visible. Si un seguidor se retrasa más de medio segundo detrás del otro, revise la configuración T5 y verifique la conexión USB del brazo lento.

Errores y soluciones comunes

Error Cause Fix
SerialException: device not found Wrong device path in config, or USB not connected Run ls /dev/ttyUSB* and update config paths. Check physical USB connections.
SyncTimeoutError: follower_right Right follower arm not responding within latency tolerance Increase latency_tolerance_ms to 10, or try a different USB port. Check cable for damage.
Joint states all zeros after connect Servos not enabled — arm is in standby mode Call robot.enable_servos() before reading joint states, or enable via the web UI first.
One follower mirrors, other is stationary Leader is paired only to one follower in config Verify both follower_left and follower_right are set in the YAML config.

Unidad 2 completa cuando...

El DK1 SDK se instala y T13 devuelve 0.4.0 o más. La prueba de conexión imprime valores de estado de estado de las articulaciones estables para ambos brazos a 50Hz. Cuando comienza una sesión líder / seguidor y mueve el brazo líder, ambos brazos seguidores reflejan el movimiento sin retraso perceptible. Lo has verificado con al menos 3 movimientos conjuntos diferentes en el brazo líder.

[← Regreso a la visión general del camino]