Volver a Wiki

Teleoperación <unk> Líder-Seguidor, Bilateral y RV

Documentación de teleoperación OpenArm: guía de configuración líder-seguidor, control unilateral de posición, control bilateral de retroalimentación de fuerza con bucle de 500 Hz y teleoperación VR utilizando Meta Quest 3.

También ver el OpenArm hardware hub.

En esta página

  • [Visión general]
  • [Guía de instalación]
  • [Requisitos]
  • [Dependiencias de instalación]
  • [Construir una biblioteca]
  • [Initializar CAN]
  • [Control unilateral]
  • [Arquitectura]
  • [Parámetros] T25)
  • [Corrido]T26)
  • El Consejo Europeo de Seguridad y Seguridad de las Naciones Unidas ha adoptado una decisión en el marco de la aplicación del Reglamento (CE) n° 1333/2008.
  • [Arquitectura]
  • [Corrido]T29)
  • [Teleoperatorio de RV]

Documento de los brazos abiertos

  • [Visión general]
  • [Empezando]
  • [Hardware] T33)
  • [Software] T34)
  • [Teleoperación]
  • [Simulación]
  • [FAQ y compras]

También ver

  • [OpenArm 1 Quickstart] T38)
  • [← Todos los artículos de Wiki]
  • [Documentos oficiales ]T40)

Documentación completa de teleoperación para OpenArm: configuración de líder y seguidor, reflexión unilateral de posición, control bilateral de retroalimentación de fuerzas y teleoperación basada en realidad virtual utilizando Meta Quest 3.

Leader-Follower Fuerza de control bilaterales Feedback 500 Hz VR Meta Quest 3

Fuente: doc.openarm.dev/teleop/ ** Última actualización:** 6 de abril de 2026

1. Teleoperación de la información general

OpenArm admite una teleoperación 1:1 desde un brazo de líder a un brazo de seguimiento en dos modos de control: unilateral (espejo de posición unilateral) y bilateral (reacción de fuerza bidireccional).

Control unilateral

  • El seguidor imita directamente las posiciones del líder
  • Control unidireccional sin retroalimentación de la fuerza
  • Sencillo y robusto
  • Mejor para: pruebas iniciales, movimiento en el espacio libre

Control bilateral

  • Retorno de la fuerza bidireccional
  • El operador siente lo que el seguidor toca
  • Requiere un bucle de control de 500 Hz +
  • Mejor para: manipulación rica en contacto

Ambos modos se implementan en la biblioteca T0 y comparten la misma arquitectura multi-threaded y parámetros de control por articulación.

Guía de configuración de la teleoperación

Esta guía te guiará a través de la construcción de la biblioteca T1 desde la fuente.

Pre-requisitos

Antes de comenzar, asegúrese de que:

  • La biblioteca T2 instalada (ver [Software > Descripción del robot] T41))
  • Ubuntu 22.04 o 24.04 con configuración de SocketCAN
  • Dos unidades OpenArm (líder + seguidor) cada una con su propia interfaz CAN
  1. Clonar el repositorio de teleop.

git clone T49 cd brazo abierto

  1. Instalar dependencias.

sudo apt instalar -y software-propiedades-común sudo add-apt-repository -y ppa:abriendo el brazo/principal actualización de sudo apt sudo apt instalar -y \ libeigen3-dev libopenarm-can-dev \ Liborocos-kdl-dev \ Liburdfdom-dev Liburdfdom-headers-dev \ por qué no se trata de un proyecto de ley? de armas abiertas

  1. Construir la biblioteca de teleop.

-B construir -DCMAKE_BUILD_TYPE=Liberación Cmake --construir construir

  1. Initializar la red CAN.

Cada brazo requiere una interfaz CAN dedicada (1 brazo = 1 puerto CAN).

Interfaz única (un brazo) abierto-armo-puede-configurar-socketpuede0 -fd

# Cuatro interfaces (líder + seguidor binario) # can0 = líder derecho, can1 = líder izquierdo # can2 = seguidor derecho, can3 = seguidor izquierdo abierto-armas-puede configurar-socket-puede-4-armas-fd

Control unilateral

El control unilateral es la configuración básica de la teleoperación, donde el brazo seguidor imita directamente los movimientos del líder a través de comandos de posición. Es un esquema de control unilateral.

Arquitectura del sistema

El sistema utiliza una estructura de varios hilos con tres componentes administrados a través de una clase personalizada T3:

  • Leader Thread Leer los estados de articulación del brazo del líder a alta frecuencia
  • Followers Thread Envía comandos de posición al brazo de seguimiento
  • Admin Thread Coordina la comunicación entre líder y seguidor, maneja la lógica de clase T4

Parámetros de control

Configuración por articulación para el control unilateral:

Parameter Description
Kp Position control gain
Kd Velocity control gain
Fc Static friction level
k Friction transition sharpness (tanh slope)
Fv Viscous friction coefficient
Fo Friction offset

Formula de compensación de fricción aplicada por articulación:

Tao_f = Fc * tanh(k * dq) + Fv * dq + Fo

Control unilateral de ejecución

# brazo derecho (líder: can0, seguidor: can2) cd brazo abierto ./script/launch_unilateral.sh derecho_arm can0 can2

# brazo izquierdo (líder: can1, seguidor: can3) ./script/launch_unilateral.sh izquierda_arm can1 can3

# Interfaces CAN predeterminadas (obviar los argumentos para usar los predefinidos) # derecho _brazo: puede0 / puede2 # izquierda_brazo: puede1 / puede3

El guión de lanzamiento:

  1. Valida el argumento de lado del brazo
  2. Aplica las configuraciones predeterminadas de la interfaz CAN si no se especifica
  3. Generar URDFs temporales a través de T11
  4. Ejecuta el control binario unilateral
  5. Limpia archivos temporales en la salida

Seguridad Posición cero antes de comenzar Siempre coloque el brazo en su postura recta hacia abajo bajada antes de comenzar el guión de control. Calibre la posición cero por separado para los brazos del líder y del seguidor antes de activar el seguimiento.

No hay retroalimentación de la fuerza A diferencia del control bilateral, el control unilateral no proporciona retroalimentación de la fuerza. El operador no percibirá las fuerzas de contacto se puede aplicar una fuerza excesiva a objetos o superficies sin ser consciente.

4. Control bilateral

El control bilateral permite ** retroalimentación de fuerza bidireccional** entre los brazos del líder y el seguidor, permitiendo al operador sentir lo que el brazo del seguidor toca.

Arquitectura del sistema

El sistema de control bilateral utiliza la misma arquitectura de tres hilos que el control unilateral, con la adición de transmisión de retroalimentación de fuerza/torque de seguidor a líder:

  • Leader Thread Leer estados del líder; aplica fuerzas de reacción del seguidor
  • Followers Thread Envía comandos de posición; lee las fuerzas de contacto
  • Tread de administrador Gerenciando la clase bidireccional T12

El modo T13 de la clase maneja tanto la lógica bilateral como la unilateral se selecciona en el momento del lanzamiento.

Parámetros de control

Parámetros por articulación similares a los unilaterales (Kp, Kd, Fc, k, Fv, Fo) con ajustes adicionales críticos para la estabilidad:

  • Kp Los valores más altos dan un seguimiento de posición más rígido; demasiado alto provoca oscilaciones
  • Kd Ampliación de velocidad; crítica para la estabilidad en contacto
  • La compensación de fricción utiliza el mismo modelo tanh: T14

Control Bilateral

# brazo derecho (líder: can0, seguidor: can2) cd brazo abierto ./script/launch_bilateral.sh derecho_arm can0 can2

# brazo izquierdo (líder: can1, seguidor: can3) ./script/launch_bilateral.sh izquierda_arm can1 can3

Critical 500 Hz Mínimo El control bilateral requiere una frecuencia de bucle de control de ** 500 Hz o superior**. A partir de esto, la retroalimentación de la fuerza se vuelve inestable.

Posición cero antes de comenzar Siempre posicione los brazos del líder y del seguidor en la posición cero recta hacia abajo antes de comenzar.

Obtenga notas de ajuste

  • Comience con un Kp bajo (por ejemplo, 510) y aumente gradualmente mientras se observa la oscilación
  • Aumentar Kd a oscilaciones húmedas antes de aumentar aún más Kp
  • Prueba en el espacio libre antes de intentar tareas de contacto
  • Se pueden necesitar conjuntos de ganancia diferentes para diferentes articulaciones (las articulaciones proximales generalmente requieren un ajuste diferente que las articulaciones distales)

5. Teleoperación de la realidad virtual

OpenArm admite la teleoperación en tiempo real utilizando datos de transmisión de estimación del cuerpo humano en realidad virtual.

Características clave

  • 7DOF Control Mapas tanto de posición como de rotación para la manipulación natural e intuitiva
  • ** Control de pegamento basado en gestos** Utiliza la distancia de los dedos VR para acciones de apertura/closure en tiempo real
  • Mapado escalable Puede incorporar movimientos de brazos completos (brazo superior/brazo inferior) para movimientos más similares a los humanos
  • Operación en tiempo real Se ejecuta a ~ 20 FPS con transmisión de datos TCP

Estatus actual

El prototipo actual opera en la simulación de NVIDIA Isaac Labs, mapeando los movimientos de la mano y del brazo de Meta Quest 3 al efector final del robot para operaciones simuladas, incluida la selección y colocación de objetos.

Coming Soon Real-World Hardware La teleoperación virtual de OpenArm del mundo real está llegando pronto.

  • Integración con hardware OpenArm real para la teleoperación en el mundo real
  • Reorientación de movimiento mejorada para el movimiento de brazos similar al humano mediante seguimiento avanzado de la IK y la VR
  • Control avanzado del agarre y retroalimentación ápticas para mejorar la interacción de los objetos

Configuración de simulación de realidad virtual

La simulación de teleoperación VR utiliza el entorno de Isaac Lab. Ver la página [Simulación] T42) para la configuración de Isaac Lab. El código de teleoperación VR se publicará como parte del repositorio T15.

Arquitectura de la ciudad

Component Description
VR Device Meta Quest 3 (hand + arm tracking)
Data Protocol TCP streaming at ~20 FPS
Motion Mapping VR 6DOF pose → robot end-effector pose via IK
Gripper Control Finger pinch distance → gripper open/close
Simulation Backend NVIDIA Isaac Lab
Real Hardware Coming soon

Atrucción El contenido de esta página se basa en la documentación oficial de OpenArm en docs.openarm.dev, copyright © 20252026 Enactic, Inc.

[← Software] [T44] [Simulación →] [T45)

¿Necesitas una unidad OpenArm, piezas de repuesto, o una segunda para tu laboratorio?