Poppy Humanoid controlado por señales Myoelectricas(EMG)

En esta Documentación he escrito todo el procedimiento realizado hasta el momento para poder controlar un brazo de Poppy Humanoid a través de las señales EMG, como parte de mi formación de stage, que estoy realizando en el centro de investigación INRIA, en colaboración con el INCIA.

Este documento esta dividido de la siguiente manera:

  • Conexión Matlab-Python
  • Calibración PID
  • Cinemática Inversa
  • Control EMG

Primeramente, realicé un programa que me permita conectar Matlab con Python, debido a que Matlab es un potente programa matemático. Implementé dos tipos de conexión, una serial y otra utilizando el protocolo TCP/IP, y así poder enviar los comandos necesarios para mover el brazo de Poppy. Code here

Luego de tener una conexión exitosa entre Matlab y Python, hice un programa que me permita hacer la calibración del PID de los motores, para obtener mejores tiempos de respuesta en movimientos bruscos. Haciendo uso de la Visión Artificial para el seguimiento de un color, definí los ejes coordenados como el rango de movimiento de los motores de Poppy. El propósito de este programa es que al realizar un tracking del color genero puntos de posición de forma continua y muy próximos que luego son traducidos en ángulos para cada motor. Al comienzo los movimientos eran toscos, luego empecé a variar los parámetros PID y conseguí obtener movimientos muy fluidos.

Luego de tener un correcto control de los motores, procedí a realizar el cálculo de la cinemática inversa del brazo de Poppy a tres grados de libertad, dejando fijo el cuarto motor, como los grados de libertad son solo tres decidí probar el Método Geométrico para el cálculo y los resultados fueron satisfactorios (code here) . Próximamente haré la misma implementación pero utilizando las matrices Jacobinas, con el objetivo de ingresar el cuarto motor en el cálculo y así poder emular movimientos mas humanos

Hasta este momento solo he mencionado toda la parte de control del brazo, ahora voy a proceder a mostrar el proceso realizado para la adquisición de datos EMG.

Para la adquisición de datos se ha utilizado equipos de la marca DELSYS.

El procedimiento es el siguiente:

  • Obtención de datos.
  • Normalizar la señal obtenida.
  • Aplicación de Filtro Wavelet (configurado a db10 y 6 niveles de descomposicion)
  • Calcular la RMS de la señal por ventanas de tiempo

Una vez echo todos los procemientos podemos realizar un control simple de movimiento por amplitud de señal, relacionando cada incremento de amplitud como un incremento de angulo y cuando relajemos el brazo, los motores regresan a su posicion inicial, en el video siguiente se puede ver una pequeña experiencia.

Luego de esta experiencia la siguiente etapa es hacer uso de un soporte dotado de un sensor de Fuerza, para relacionar las señales EMG con la fuerza ejercida en distintas direcciones, y de esta manera poder mover un punto en el espacio con las señales myoelectricas. El movimiento de este punto sera ingresado en la cinematica inversa, para mover el brazo con 3 grados de libertad.

El procedimiento pensado consiste en procesar las señales hasta la etapa de filtrado, luego realizar un Analisis de Componente Independiente (ICA) para poder encontrar las fuentes, en nuestro caso mejorar las señales. Una vez reconstruidas las fuentes obtenemos la RMS de las fuentes, La RMS de todas las fuentes las relacionaremos con las fuerzas haciendo uso de la Regresion Lineal Multivariable; de esta manera obtendremos un modelo matematico capaz de explicar las fuerzas a partir de cinco fuentes EMG.

El modelo parte de la siguiente premisa:

Fuerza=b0 + b1*Source1 + b2*source2 + b3*source3+ b4*source4 + b5*source5

donde b(0…5) son los coeficientes que relacionan las 5 fuentes con respecto a la fuerza

El resultado se puede apreciar en los graficos siguientes:

En la primera y segunda imagen vemos la comparacion entre el movimiento predicho por las señales EMG y el movimiento real que se muestrea por el sensor de fuerza, realizados en direccion arriba e izquierda respectivamente.

Este modelo me permitira mover el brazo de Poppy aprovechando la cinematica inversa; la Simulacion de los resultados son mas que satisfactorios, ahora estoy procediendo a implementar este sistema, muy pronto actualizaré este tema con un video mostrando los resultados.

6 Likes