pruebas de concepto para protesis de miembro …
TRANSCRIPT
PRUEBAS DE CONCEPTO PARA PROTESIS DE
MIEMBRO SUPERIOR MEDIANTE
HERRAMIENTAS DE COMUNICACIÓN BCI
José Ricardo Arciniegas Polanco
Departamento de Ingeniería
Universidad de los Andes
Bogotá, Colombia
Abstract—El entendimiento y correcto análisis de señales
cerebrales, brinda la posibilidad de realizar una conexión entre
máquina y cerebro, y así poder conectarlos sin la necesidad de
realizar movimiento físico. Este proyecto se basa en la simulación
de movimiento de una prótesis de miembro superior controlada
por señales provenientes del cerebro, realizando: análisis de
señales, reconocimiento de patrones, diseño de sistemas
mecánicos en herramientas CAD, uso de código abierto en C++,
además del uso de MATLAB y SimMechanics para la ejecución
del proyecto. Su análisis se hizo a partir de seis bloques
fundamentales y los resultados arrojaron que es posible hacer
pruebas de concepto y lograr movimientos en prótesis simuladas de miembro superior en modo offline.
Index Terms—BCI, EEG, prótesis, señal, Emotiv.
I. INTRODUCCIÓN
Los métodos para lograr el movimiento de una prótesis
virtual mediante el reconocimiento de patrones de señales
cerebrales utilizando dispositivos como computadoras, celulares, tabletas o robots permiten a la ingeniería de
rehabilitación avanzar significativamente, pudiendo brindar la
posibilidad de recuperar la funcionalidad de algunas partes del
cuerpo a personas con discapacidades motoras.
Para lograr el objetivo de este proyecto utilizamos un grupo
de sistemas que al trabajar en conjunto, permiten al usuario
interactuar con mecanismos, utilizando el pensamiento o
señales provenientes de algún movimiento. Los sistemas,
herramientas y mecanismos utilizados son: BCI (Brain
Computer Interface) o herramienta de comunicación, el Emotiv
EPOC como instrumento de captación de información, el
análisis de la señal se realizó con la transformada de Wavelet, reconocimiento de patrones utilizando redes neuronales,
árboles de decisión, redes bayesianas y support vector machine,
el diseño de la prótesis virtual de mano con en herramientas
CAD y por medio de SimMechanics se realiza el control y
análisis dinámico de forma sencilla.
Esta tecnología se está desarrollando a gran escala para las
personas que presentan algún tipo de discapacidad, como
amputaciones o enfermedades que puedan paralizar el cuerpo
parcial o totalmente.
II. MARCO TEÓRICO
A. Extremidad Superior
La evolución en el campo de ingeniería de rehabilitación ha permitido desarrollar prótesis que brindan soluciones con
mayor grado de satisfacción, al punto de poder recrear
movimientos cada vez más naturales.
Aunque es bien conocido que el movimiento real de la
mano o dinámica completa tiene 20 grados de libertad [1],
para el desarrollo de la prótesis virtual de nuestro trabajo se
limitó el número de movimientos permitidos, con el fin de
lograr una dinámica simplificada, es decir, limitar el
movimiento de la mano y la cantidad de grados de libertad.
B. Cerebro y Frecuencias Cerebrales
El área encargada del movimiento voluntario se encuentra
ubicada sobre el lóbulo frontal, casi en contacto con el lóbulo
parietal. Esta área se llama, área motora primaria. Figura 1A.
El sistema internacional de posicionamiento de electrodos
conocido como 10-20 [1], permite localizar el área de
movimiento de las extremidades superiores sobre C3 y C4 ver
Figura 1B. Trabajar bajo estos estándares nos permite
garantizar que los experimentos son repetibles aun cuando se
realicen con un dispositivo diferente. Su nombre “10” y “20” viene del porcentaje de distancia que se tiene entre electrodo y
electrodo. La distancia longitudinal se toma desde la frente
hasta la parte de atrás de la cabeza y de oreja a oreja la
distancia transversal. El fabricante del Emotiv EPOC utiliza
este sistema para nombrar sus electrodos.
Las frecuencias cerebrales están divididas en cuatro tipos,
delta, theta, alfa y beta. Para las actividades motoras se
encuentran las frecuencias alfa (8Hz a 12Hz) y beta (12Hz a
30Hz) [2][3]. Importante aclarar que al realizar mediciones de
EEG se tienen presentes las otras frecuencias y existen también
señales de movimientos involuntarios como por ejemplo el
parpadeo. Estos movimientos son conocidos como artefactos y
para el correcto análisis de la señal, es necesario eliminarlos.
A.
B. Figura 1: A) Cerebro humano (trabajo por área)[4]
B) Sistema internacional 10-20[5]
C. Emotiv, EmoKit y BCI2000
La compañía Emotiv desarrolló dos tipos de dispositivos de
electroencefalografía portable: Emotiv EPOC y Emotiv EEG
[4]. El Emotiv EEG viene listo para realizar tareas EEG,
mientras que el EPOC necesita decodificar la información. Ver
Tabla 1
Tabla 1: Características de Emotiv EPOC y EEG [5]
BCI2000, es un programa de código abierto desarrollado
por la universidad de Standford [6], con el fin de poder realizar
mediciones y grabaciones de EEG en tiempo real bajo
condiciones específicas, por ejemplo: realizar entrenamiento de
una actividad eléctrica cerebral mediante un estímulo visual o auditivo, identificando el tiempo de inicio y fin del mismo. En
la Figura 2 es posible observar este ejemplo.
BCI2000, permite también realizar el pre-procesamiento
de la señal pudiendo observar las señales que priman en una
sesión de entrenamiento, así como los lugares en la cabeza
donde se concentran esas frecuencias (Ver Figura 3).
Figura 2: EEG con inicio (rojo) y fin (verde) de estimulo
A. 0 10 20 30 40 50 60
Af3
Af4
F3
F4
F7
F8
P7
P8
T7
T8
O1
O2
Fc5
Fc6
Frequency (Hz)
r2 Values Between Condtions 1 and 2
Channel
0.05
0.1
0.15
0.2
0.25
0.3
B.
Figura 3: A) Frecuencias que priman en entrenamiento [7]
B) Lugar sobre la cabeza donde priman frecuencias de 9 Hz
[7]
D. Análisis de la señal
Para identificar correctamente la información buscada en
cada electrodo y su correcto análisis se escogió la transformada
de Wavelet. Es una herramienta que permite realizar análisis
para señales no estacionarias en tiempo y en frecuencia [8]. En
la figura 4 se observan algunos ejemplos de la familia Wavelet.
Batería Litio (12 h)
Comunicación Wireless 2.4 GHz
No. Electrodos 14 electrodos, 2 giróscopos
Frecuencia 128 Hz
Nombre electrodos Sistema 10-20
AF3, AF4, F3, F4, F7, F8, P7, P8, T7, T8, O1, O2, FC5, FC6
La forma de funcionamiento de la transformada de Wavelet
consiste en dividir la señal en mitades, llamando a la mitad
superior D conteniendo señales de 500 Hz hasta 1 kHz y a la
mitad inferior A con señales de 0 Hz hasta 500 Hz. Para
obtener estas mitades es necesario pasar la señal por un filtro
pasa-altas para D y un filtro pasa-bajas para A. Este proceso se puede repetir varias veces con el fin de poder obtener en algún
grupo el conjunto de frecuencias deseadas (Ver Figura 5). De
esta forma se obtienen resultados rápidos y de bajo costo
computacional.
Figura 4: Ejemplos Familia de wavelets Daubechies[9]
Figura 5: Descomposición de la señal usando Wavelets [10]
E. Reconocimiento de Patrones
Es una herramienta que se usa para recrear inteligencia
artificial en una máquina. Se encarga de tomar decisiones
según un patrón de entrenamiento previamente realizado. El
entrenamiento puede ser de dos tipos, supervisado o no
supervisado [11]:
- Entrenamiento supervisado: requiere un ciclo de
entrenamiento y con la información obtenida se
realiza la clasificación. No adquiere nuevo
conocimiento con el uso del mismo, por lo tanto para este tipo de entrenamiento es necesario tener una base
de datos suficiente para obtener los resultados
esperados.
- Entrenamiento no supervisado: permite el
reentrenamiento a medida que se usa la inteligencia
artificial. Mejora el conocimiento disminuyendo el
error a mayor uso. Requiere mayor consumo de
recursos físicos del sistema en que se tenga instalado
y el tiempo de respuesta puede verse afectado.
Existen diferentes tipos de herramientas para reconocer
patrones, cada una presenta características que permiten
obtener respuestas diferentes a un mismo problema, para este
proyecto se trabajaron cuatro (4) de estos métodos [11][12], ver
tabla 2.
Tabla 2: Herramientas de reconocimiento de patrones.
Ventajas y desventajas
Herramientas Ventajas Desventajas
Support
Vector Machine
Fácil entrenamiento
Funciona satisfactoriamente a partir de 50 datos.
Requiere de gran
cantidad de memoria y CPU
Permite reconocer
solo dos patrones a la vez
Los patrones de
entrada deben ser vectores
Árboles de
decisión Permite trabajar con
muchos patrones de reconocimiento a la vez
Es posible aumentar
el número de árboles para obtener mejores resultados
Entrenamiento
lento
Es un método de respuesta media
Redes Neuronales
Es posible aumentar
el número de neuronas para mejorar la respuesta
No requiere de
procedimientos complejos para su entrenamiento y medición del error
Permite trabajar con
muchos patrones de reconocimiento a la vez
Requiere más
recursos computacionales que los otros
métodos.
Es un método
respuesta lenta
Redes Bayesianas
Fácil entrenamiento
Respuesta rápida
Permite trabajar con
muchos patrones de reconocimiento a la vez
Requiere de
grandes cantidades de datos
III. DESARROLLO DEL PROBLEMA
Este proyecto se realizó por bloques, los cuales permiten
hacer modificaciones individuales sin necesidad de afectar
significativamente el resultado de las otras partes. La Figura 6
muestra el diagrama que resume la forma como se abarco el
proyecto.
Acondicionamiento Filtrado(Wavelet) Método para
entrenamiento
EMOTIV Pre-procesamiento
Decodificación Emokit BCI2000
MatLab (EEGlab)
Interfaz CAD SimMechanics
Funcionamiento Entrenamiento
Tiempo real
Dinámica
Directa(ANFIS)
Pensamientode movimientode Extremidad
superior
2 Electrodos
Señal (Raw Data)
1 matriz por método
3 posiciones de La mano
Movimiento de la mano
Movimiento físico de prótesis
virtual de miembrosuperior
Figura 6: Diagrama de bloques del proyecto
IV. METODOLOGÍA EXPERIMENTAL
A. Emotiv
El pre-procesamiento consiste en observar a través de
BCI2000 parámetros de modo offline (valores en tiempo no
real). De este proceso se obtienen valores como las frecuencias
que priman y el electrodo que las está detectando. Teniendo en
cuenta el sistema de posicionamiento 10-20 (Figura 1B) y el
lugar de concentración de frecuencias alfa (Figura 3B), es
posible determinar los electrodos que mejor recolectarán el
patrón deseado. También se debe tener en cuenta el lugar del cerebro donde se produce el estímulo. Habiendo analizado
estos dos elementos, se escogió para este proyecto F3 y FC5
(electrodos), estos fueron los seleccionados pues Emotiv EPOC
no permite el libre movimiento de sus electrodos. Lo anterior
limita las posibilidades de obtener una señal más clara y
precisa.
B. Decodificación
La información que entrega el Emotiv EPOC viene
encriptada y para decodifícala se necesitó de una librería de código abierto llamada EmoKit [13] permitiendo obtener los
valores de cada uno de los electrodos en tiempo real y en
programación C++. Los valores se ven en la ventana de
comandos de Windows y para permitir la interacción del
usuario con una interfaz gráfica es necesario usar BCI2000.
Como BCI2000 guarda esta información en .dat, se debe
llamar este archivo usando métodos incluidos en EEGLab. Esta
función trae una matriz de 2 filas por N columnas, donde 2 son
los electrodos del Emotiv en uso y N es el número de valores
que fueron tomados durante la grabación. Esta matiz de 2xN
será la señal raw data que se usará en acondicionamiento.
C. Acondicionamiento
La señal (raw data) fue filtrada utilizando la familia Wavelet Daubechies (db) 6 a nivel 3, sobre toda la señal, antes
de separar los estímulos. Esta familia fue obtenida realizando
pruebas sobre la señal, hasta obtener la máxima separación
entre las medias de las variables (anexo). El nivel 3 de la señal
garantiza, que al tomar D3, toda la señal se encuentra dentro de
la frecuencia alfa. Esto debido a que la máxima frecuencia que
se puede medir, es la mitad de la frecuencia de muestreo del
equipo, por lo tanto D3 contiene frecuencias de 8 Hz hasta 16
Hz. En la Figura 7.
Figura 7: Transformada de wavelet de medio árbol a nivel 3
Cuando se tiene D3, se separan los valores de cada estímulo
y descanso en tres matrices (descanso, cerrar y abrir). Para esta
etapa se realizaron tres métodos, que posteriormente
permitieron el entrenamiento del reconocimiento de patrones.
Estos métodos consisten en:
Método 1: Concatena las tres matrices de señales,
tomando 50 muestras de cada una, así se obtiene una
matriz de 150xN, donde N es el número de valores
que tiene la señal. Sin embargo como el patrón de
reconocimiento está compuesto por información de
dos electrodos, es necesario concatenar ambos
electrodos, generando así una matriz de 150x(2N). Esta matriz será usada como entrada para cada uno de
los clasificadores de patrones.
Método 2: El segundo método consiste en obtener variables de cada estímulo. Esto con el fin de
garantizar valores estadísticos o característicos de la
señal, que permitan identificar patrones con mayor
facilidad. En este caso se obtendrán 7 variables [14],
que se encuentran contenidas en las ecuaciones 3 a 9.
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Estas variables estan definidas como: la energia de la
señal (IEEG), el valor absoluto medio (MAV), la
varianza (VAR), el valor cuadrático medio (RMS), la
valor de la onda acomulada sobre el tiempo (WL), el
numero de veces que la pendiente de la señal cambia
(SSC), donde N es la longitud completa del vector que contien la señal y X hace referencia a cada una de las
pocisiones que se pueden adoptar en el vector. Con
estos valores se genera una matriz de la misma forma
que se generó la del método uno. Con la diferencia
que esta es de tamaño 150x14 (7 valores por cada
electrodo), en donde se tienen 50 valores de cerrar la
mano, 50 valores de abrir la mano y 50 valores de
descanso.
Método 3: El tercer método consiste en unir las
señales de cada estimulo, obteniendo un unico vector
Z, compuesto por las 50 tomas de cada entrenamiento.
De Z se toman 50 datos a la vez, concatenando este
vector en una nueva matriz. Una vez terminado esto,
se realiza un corrimiento de una posicion en Z y se repite el proceso anterior, hasta llegar a la ultima
posición de Z. La matriz final tendrá un tamaño de
50xM, en donde M es la longitud total de Z. Es
necesario repetir lo dicho anteriormente para cada
estimulo (abrir,cerrar y descanso), obteniendo una
matriz de salida de 150x3M.
Las matrices de los estimulos, serán incluidas en
las ecuaciones 3 a 9, para finalmente obtener una
matriz de 3Mx14.Teniendo en cuenta que son dos
electrodos los que se requieren para el reconocimiento
de cada uno del patrones.
D. Funcionamiento
Tiene dos elementos esenciales, el primero busca entrenar herramientas de reconocimiento de patrones, mientras que el
segundo busca lograr utilizar esas herramientas para realizar el
movimiento de la prótesis en tiempo real.
La toma de datos para el entrenamiento de las herramientas
de clasificación de patrones se realizó en BCI2000. Se
programó una interfaz gráfica que permitía observar los
estímulos de abrir o cerrar la mano. Esta interfaz consiste en
una flecha hacia arriba para abrir la mano y hacia abajo para
cerrarla, teniendo entre estímulo y estímulo un espacio de
descanso de la misma duración que los estímulos. Ver Tabla 3
Tabla 3: Estímulos visuales para entrenamiento BCI200
Estimulo Símbolo
Cerrar
Abrir
Descanso Sin símbolo, es el tiempo que se demora
entre cambiar el símbolo del estimulo
Los parámetros de duración de los estímulos y descanso, así
como el número de repeticiones que se van a realizar para cada
toma, son valores que se configuran en BCI2000 antes de
empezar la toma de datos. El programa puede reconocer donde
debe iniciar el estímulo en la línea de tiempo y donde debe
terminar.
El protocolo de toma de datos es la siguiente:
1. El usuario debe estar sentado y erguido, en una
posición cómoda, que le permita tener sobre una
superficie su mano izquierda abierta. La mano
derecha debe estar en reposo esperando el primer
estímulo. Es necesario hacer saber al usuario que debe
realizar la menor cantidad de movimientos posibles
durante la toma de datos.
2. El usuario debe tener una buena señal en todos los
electrodos del Emotiv EPOC, según el programa entregado con el dispositivo. Gráficamente deben
estar los electrodos en verde.
3. Una segunda persona debe encargarse de dar inicio a la grabación de la señal, con el fin que el usuario
pueda concentrarse únicamente en el movimiento de
su mano.
4. El número de repeticiones por cada estimulo se
establece en 50, y el tiempo de duración de cada uno
no debe ser menor a 700ms.
5. La grabación de información termina únicamente
cuando el programa diga en pantalla TIME OUT, de
lo contrario la toma de datos debe ser repetida.
Las herramientas son: redes neuronales, árboles de decisión,
redes bayesianas y support vector machine.
Para las 3 primeras se puede meter la matriz de cada uno de
los metodos adjuntando un vector que permite reconocer a que
tipo de estimulo pertenece.
Para el caso de Support Vector Machine. Se utilizan las siete
variables de las ecuaciones 3 a 9 descritas en puntos anteriores.
Los datos recolectados se dividen en tres:
- 50 datos para abrir la mano (A).
- 50 datos para cerrar la mano (B).
- 50 datos de reposo (C).
Por cada ecuación se realizan tres gráficas distintas:
- Grafica 1: A vs B
- Gráfica 2: A vs C
- Gráfica 3: B vs C
En la gráfica resultante el eje X pertenece al electrodo F3 y
el eje Y al electrodo FC5. El objetivo de las gráficas es mostrar
las diferencias cartesianas de cada estímulo y así lograr una
línea divisora que permita distinguirlos. Como se presentan en
dos gráficas un mismo patron (A, B o C), solo se le puede
llamar acierto cuando cumple con las caracteristicas requeridas
en ambos casos. La Figura 8 ejemplifica una de las gráficas que
arroja este método.
100 200 300 400 500 600 700 800 900100
200
300
400
500
600
700
800
0
1
Support Vectors
Figura 8: Ejemplo de Support Vector Machine (rojo: descanso, verde: cerrar)
Una vez entrenados las herramientas de reconocimiento de patrones y probado el error y tiempo de respuesta de cada uno,
se pasa a ver la respuesta en tiempo real usando la función Tic
Toc de MATLAB. Esta función indica la cantidad de tiempo
que trascurre en una cantidad de código deseada. BCI2000 es
el encargado de leer la señal proveniente del Emotiv EPOC,
con lo que se llena un buffer cada segundo. Este buffer es leído
en MATLAB en paquetes de 128 datos, el programa debe estar
en la capacidad de leer estos datos en menos de un segundo
para garantizar que no se genere cola.
El proceso de tiempo real se debe realizar con el mismo
procedimiento que se utilizó para el entrenamiento de cada
herramienta; con la diferencia que debe ir uniendo uno a uno
los valores en un vector del tamaño seleccionado en el
entrenamiento. Ya no se tienen matrices de valores, sino un único vector por cada electrodo. Para el método uno y dos el
tamaño del vector es el mismo que tiene la señal de cada
estimulo, para el método tres es de 50 datos. Esto con el fin de
poder leer los datos de la señal entrante como si estuvieran
entrando uno a la vez desde BCI2000. Además no se deben
perder los valores ya leídos, pues es posible que un estímulo se
encuentre en los últimos valores del buffer presente y los
primeros del siguiente.
E. Dinámica
A cada falange de los dedos se le restringió el movimiento
a un grado de libertad (rotación), para permitir solamente giro de 0 a 90 grados. Para el control de los dedos de la mano se usó
ANFIS en MATLAB, herramienta que reune dos tipos de
inteligencia artificial, brindando una solución de control fácil y
rápida. Consiste en entregarle una matriz de las posiciones
válidas, estableciendo restricciones de movimiento de cada una
de las falanges y calculando estos valores sobre la dinámica
directa del sistema [15]. Esta dinámica se obtiene al realizar la
sumatoria de senos y cosenos de cada falange, en donde q
representa los ángulos que existen entre eslavones y L la
longitud de cada falange (Figura 9). El resultado se puede
observar en las ecuaciones 8 y 9. Para esto se crearon tres
vectores de movimiento con valores de 0 a 900. Al calcular
todas las posibilidades de posicion de un dedo se obtiene lo que
se observa en la Figura 10.
(8)
(9)
A.
B.
Figura 9: A). Diagrama de estructura de dedo
B). Falanges de los dedos, mano humana.[16]
-60 -40 -20 0 20 40 60 80 100
0
20
40
60
80
100
120
X
Y
X-Y coordenadas generadas para todas las combinaciones de q1,q2 y q3
Figura 10: Posibles posiciones para un dedo, determinadas
por las ecuaciones 1 y 2
Al entrenar la herramienta ANFIS, es posible darle la
distancia de x y y (la punta del dedo O01 debe estar en esa
coordenada), tomando como referencia el origen del sistema O, que para este caso será la unión de la falange proximal con la
mano.
Se adoptaron tres posiciones para la mano (abierta, cerrada y descanso). En la tabla 4 se observan los valores que se
asignaron para las posiciones teniendo en cuenta que las
falanges proximal, medial y distal miden 45 mm, 30 mm y 35
mm respectivamente (datos obtenidos al medir la mano de una
persona de estatura 1.90 m y peso 100 kg). Estos valores se
toman directamente de la Figura 10, al poner el puntero sobre
un punto deseado.
Tabla 4: Valores de x y y para las posiciones cerrar, descanso
y abrir.
x [mm] y [mm]
Cerrar 30,64 61,69
Descanso 18.91 94.03
Abrir 0 110
F. Interfaz
Permite observar de forma gráfica el movimiento de la
mano cuando se detecta un patrón de movimiento en la señal
EEG.
La mano fue diseñada en herramienta CAD, usando el
programa SolidWorks 2013 [17]. Este programa permite
generar estructuras en 3D y asignarle propiedades mecánicas a
las partes que lo componen; permite tambien que una vez
terminada la estructura se pueda exportar a SimMechanics
(hace parte de Simulink y este a su vez hace parte de
MATLAB [18]).
SimMechanics permite importar geometrías, asignando los
puntos de pivote de forma automática e incorporando las
propiedades mecánicas a cada uno de los bloques que lo
compone. La gran ventaja de este proceso es la facilidad y la
exactitud con la que se pueden simular estructuras. Adicional
a esto se pueden realizar mediciones de fuerzas y torques
sobre los pivotes de la estructura. En la Figura 11 se puede
observar el modelo CAD. En la Figura 12 se puede observar el
diagrama de bloques.
Figura 11: Mano en SimMechanics (sólo hay cuatro dedos
pues el dedo anular y el meñique se unen pues el número de
tareas que se realizan con esos dedos por separado son
mínimas, por lo tanto no amerita generar un control para esos
dedos por separado) [19]
Figura 12: Diagrama de bloques que componen la mano
V. RESULTADOS
Para el entrenamiento de los métodos mencionados
anteriormente se grabaron señales de dos individuos (hombre y
mujer), ambos de 25 años de edad. Estas señales fueron
grabadas con tiempos de estímulo/descanso de 1000 ms y de 700 ms. Al entrenar cada una de los métodos de
reconocimiento de patrones y probar el error y el tiempo de
respuesta de cada uno, se obtuvieron los siguientes valores
contenidos en las tablas 5, 6, 7 y 8.
Tabla 3: Error método / tiempo de respuesta
(Hombre 1000 ms)
1000 ms estimulo / 1000 ms descanso
método 1 método 2 método 3
Redes bayesianas
>73% / <1s >62% / <1s >50% / <1s
Arboles de decisión
>66% / <1s >71% / <1s >63% / <1s
Redes neuronales
>55% / >1s >55% / >1s >45% / >1s
SVM NA >30% / <1s >29% / <1s
Tabla 4: Error método / tiempo de respuesta
(Hombre 700 ms)
700 ms estimulo / 700 ms descanso
método 1 método 2 método 3
Redes bayesianas
>80% / <1s >65% / <1s >50% / <1s
Arboles de decisión
>77% / <1s >74% / <1s >35% / <1s
Redes neuronales
>55% / >1s >61% / >1s >47% / >1s
SVM NA >20% / <1s >30% / <1s
Tabla 5: Error método / tiempo de respuesta
(Mujer 1000 ms)
1000 ms estimulo / 1000 ms descanso
método 1 método 2 método 3 Redes bayesianas
>75% / <1s >60% / <1s >52% / <1s
Arboles de decisión
>65% / <1s >70% / <1s >60% / <1s
Redes neuronales
>55% / >1s >55% / >1s >50% / >1s
SVM NA >30% / <1s >30% / <1s
Tabla 6: Error método / tiempo de respuesta (Hombre 700 ms)
700 ms estimulo / 700 ms descanso
método 1 método 2 método 3
Redes bayesianas
>69% / <1s >66% / <1s >53% / <1s
Arboles de decisión
>80% / <1s >75% / <1s >45% / <1s
Redes neuronales
>50% / >1s >60% / >1s >52% / >1s
SVM NA >22% / <1s >29% / <1s
Al analizar las tablas anteriores, se puede concluir que:
- Tanto redes bayesianas como árboles de decisión,
satisfacen el requisito de leer el buffer en menos de un
segundo. Su error es muy grande.
- Redes neuronales no satisface el requisito de tiempo.
Su error es menor que el de los otros dos casos.
- SMV satisface el requisito de tiempo y tiene el menor
error de los casos estudiados.
- No se puede aplicar SVM con el primer caso, debido
a que el análisis de la señal no se puede segmentar
como lo requiere este método.
- Los resultados obtenidos con 700ms en el método tres
son menores y solo descartan el método de redes
neuronales como solución al problema.
- No existen diferencias relevantes entre hombre y
mujer para los métodos analizados.
Cuando se realiza un acierto en el análisis en tiempo real se debe integrar en la mano la posición deseada, sin embargo este
proceso no se logra ejecutar, ya que los métodos que se
ejecutan en BCI200 y MatLab, consumen la mayoría de los
recursos del computador y no permiten que el movimiento se
produzca.
La lista de los recursos del computador usado para este
proyecto:
- Intel i7 – 2640M @2.8 GHz
- RAM 8 GB
- Windows Professional X64
- 256 SSD
- Nvidia GeForce 610M
VI. APRENDIZAJE DESTACADO
- El dispositivo Emotiv tiene como objetivo reconocer
estados de ánimo. Cuando se trata de adaptar para
otros fines, presenta complicaciones, como por
ejemplo la ubicación fija de sus electrodos, pasado el
tiempo incomodidad y dolor de cabeza para el
usuario. Se aprende a trabajar con estos impases, con
el fin de obtener los mejores resultados posibles.
- Finalmente el proyecto arroja resultados
satisfactorios, sin embargo una programación en otro
lenguaje podría liberar trabajo del procesador y
permitir el movimiento el tiempo real.
- CUDA es una herramienta que permite asignar
trabajos de procesamiento a la tarjeta de video. A
pesar que MATLAB no tener todas las funciones requeridas implementadas, es posible desarrollar
métodos en otros lenguajes para hacer uso de este y
mejorar la velocidad de procesamiento.
VII. CONCLUSIONES
A continuación se enumeran las conclusiones del proyecto,
basándose en los objetivos que se plantearon para su desarrollo.
1. El prototipo de prótesis trabaja correctamente y su
funcionamiento sí puede ser dado mediante señales
cerebrales. Lo anterior no se pudo realizar en tiempo
real, en un computador con los recursos mencionados
anteriormente.
2. El modelo mecánico de la prótesis de miembro
superior, permitió su correcta simulación, análisis
dinámico y control de posición, lo cual sirvió para
observar virtualmente que la prótesis hacia el
movimiento de cerrar y abrir.
3. Las señales provenientes del Emotiv EPOC,
permitieron hacer reconocimiento de patrones y
finalmente logran el movimiento de la prótesis (abrir y
cerrar).
4. Se logró entrenar satisfactoriamente 4 métodos de
reconocimiento de patrones. Se toma SVM como el
mejor método, cumpliendo el requisito de tiempo (mejor a 1s) y el menor error tanto para el hombre
como para mujer.
5. Fue posible implementar una interfaz gráfica, que permitió al usuario observar el trabajo de
decodificación del Emotiv EPOC, además de admitir
modificaciones en parámetros requeridos de la toma de
datos.
6. Teniendo en cuenta el requisito de utilizar
herramientas de bajo costo (computador, Emotiv
EPOC), los resultados permiten concluir que es posible
mover una prótesis virtual de miembro superior,
aunque no se logre en tiempo real.
REFERENCIAS
[1] O. A. Vivas. “DISEÑO Y CONSTRUCCION DE UNA PROTESIS ROBOTICA DE MANO FUNCIONAL ADAPTADA A VARIOS AGARRES”. Universidad del Cauca, Popayán, 2010
[2] G. Shalk and J. Melinger. A Practical guide to Brain-Computer Interfacing with BCI2000. United States: Springer, 2010.
[3] G. Suzsáki. Rhythms of the Brain. New York: Oxford University Press, 2010.
[4] Emotiv.com. 2014. Emotiv | EEG System | Electroencephalography. [online] Available at: http://www.emotiv.com/ [Accessed: 13 de enero de 2014].
[5] Sistema internacional 10-20 Imagen tomada de: http://www.gtec.at/var/plain_site/storage/images/media/images/support/mount_eeg_10_20_system/10664-3-eng-GB/mount_eeg_10_20_system.png (Fecha de actualización: 13 de enero de 2014).
[6] Schalklab.org. 2014. BCI2000 Schalk Lab. Disponible en: http://www.schalklab.org/research/bci2000 [Accedido: 13 de enero de 2014].
[7] Schalklab.org. 2014. BCI2000 Schalk Lab. Disponible en: http://www.schalklab.org/research/bci2000 [Accedido: 13 de enero de 2014].
[8] S. Mallat. A Wavelet Tour of Signal Processing, 3rd edition. United States: Academic Press, 2009.
[9] Ejemplos de Familia de Wavelets Daubechies. Imagen tomada de: http://www.mathworks.com/help/wavelet/gs/introduction-to-the-wavelet-families.html#f3-1009153 (Fecha de actualización:
13 de enero de 2014).
[10] Descomposición de la señal usando Wavelets. Imagen tomada de: http://www.mathworks.com/help/wavelet/ug/about-wavelet-packet-analysis.html (Fecha de actualización: 13 de enero de 2014).
[11] G. Shmueli, N. R. Patel and P. C. Bruce. Data Mining for Business Intelligence: Concepts, Techniques, and Applications in Microsoft Office Excel with XLMiner. Canada: Weley, 2010.
[12] G. Shmueli, N. R. Patel and P. C. Bruce. Data Mining for Business Intelligence: Concepts, Techniques, and Applications in Microsoft Office Excel with XLMiner. Canada: Weley, 2010.
[13] fractalcat. 2013. emokit. Disponible en: https://github.com/openyou/emokit [Accedido: 13 de enero de 2014].
[14] C.Vigneshwari, V.Vimala, S.Vaira, G.Sumithra, “Analysis of Finger Movements Using EEG Signal”, International Journal of
Emerging Technology and Advanced Engineering, Volume 3, Issue 1, January 2013
[15] G. Singh, V. K. Bangar, “ANFIS Implementation for Robotic Arm Manipulator”, International Journal of Engineering
Research & Technology, Volume 1 Issue 4, June 2012
[16] Falanges de los dedos, mano humana. Imagen tomada de: http://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Scheme_human_hand_bones-es-Com.svg/250px-Scheme_human_hand_bones-es-Com.svg.png (Fecha de
actualización:13 de enero de 2014)
[17] Solidworks.com. 2013. Disponible en: http://www.solidworks.com/ [Accedido: 13 de enero de 2014].
[18] Mathworks.com. 2014. MATLAB - The Language of Technical Computing. Disponible en: http://www.mathworks.com/products/matlab/ [Accedido: 13 de enero de 2014].
[19] Dexterous hand for multiple robotics and biorobotics scenarios. (2014). http://www.prensilia.com/files/support/doc/DS-IH2-v02.pdf [Accedido: 13 de enero de 2014].
Anexo1
Los valores en negro pertenecen a la media de cada señal, mientras que el valor en rojo corresponde a la diferencia de las medias.
IEEG MAV
Media Media
cerrar rest abrir cerrar rest abrir
FC5 db1 556,295 552,905 562,626 4,312 4,354 4,361
3,390 9,722 6,331 0,041 0,008 0,049
F3 db1 694,899 782,642 744,602 5,387 6,163 5,772
87,743 38,040 49,703 0,776 0,390 0,385
FC5 db2 505,376 531,589 544,048 3,918 4,186 4,217
26,213 12,459 38,672 0,268 0,032 0,300
F3 db2 689,386 757,254 688,857 5,344 5,963 5,340
67,867 68,396 0,529 0,619 0,623 0,004
FC5 db3 512,904 520,091 527,320 3,976 4,095 4,088
7,187 7,230 14,417 0,119 0,007 0,112
F3 db3 678,462 735,383 688,085 5,259 5,790 5,334
56,921 47,298 9,623 0,531 0,456 0,075
FC5 db4 520,399 542,279 559,232 4,034 4,270 4,335
21,881 16,952 38,833 0,236 0,065 0,301
F3 db4 698,740 797,655 711,777 5,417 6,281 5,518
98,915 85,877 13,038 0,864 0,763 0,101
FC5 db5 556,717 561,831 568,282 4,316 4,424 4,405
5,114 6,451 11,565 0,108 0,019 0,090
F3 db5 732,868 812,970 766,989 5,681 6,401 5,946
80,102 45,981 34,121 0,720 0,456 0,265
FC5 db6 530,106 548,085 587,433 4,109 4,316 4,554
17,979 39,348 57,326 0,206 0,238 0,444
F3 db6 723,998 789,309 712,432 5,612 6,215 5,523
65,311 76,877 11,567 0,603 0,692 0,090
FC5 db7 544,933 553,862 555,794 4,224 4,361 4,308
8,929 1,932 10,861 0,137 0,053 0,084
F3 db7 720,112 799,978 744,428 5,582 6,299 5,771
79,867 55,551 24,316 0,717 0,528 0,188
FC5 db8 536,322 560,594 576,016 4,158 4,414 4,465
24,272 15,422 39,695 0,257 0,051 0,308
F3 db8 725,963 818,095 732,386 5,628 6,442 5,677
92,132 85,708 6,424 0,814 0,764 0,050
FC5 db9 558,473 561,042 579,386 4,329 4,418 4,491
2,569 18,344 20,913 0,088 0,074 0,162
F3 db9 736,323 819,130 757,538 5,708 6,450 5,872
82,807 61,592 21,215 0,742 0,577 0,164
FC5 db10 539,802 554,947 571,542 4,185 4,370 4,431
15,145 16,595 31,740
0,185 0,061 0,246
F3 db10 718,983 804,934 724,104 5,574 6,338 5,613
85,951 80,830 5,122
0,765 0,725 0,040
RMS SSC
Media Media
cerrar rest abrir cerrar rest abrir
FC5 db1 5,341 5,468 5,418 0,000 0,000 0,000
0,128 0,051 0,077 0,000 0,000 0,000
F3 db1 6,609 7,700 7,058 0,000 0,000 0,000
1,090 0,641 0,449 0,000 0,000 0,000
FC5 db2 5,364 5,663 5,698 333,829 368,085 355,643
0,299 0,035 0,334 34,256 12,442 21,814
F3 db2 7,236 7,999 7,298 458,511 517,785 469,901
0,762 0,701 0,061 59,274 47,884 11,389
FC5 db3 5,266 5,452 5,445 318,991 347,641 339,649
0,187 0,008 0,179 28,650 7,992 20,658
F3 db3 6,925 7,700 7,000 424,359 489,864 440,775
0,775 0,699 0,076 65,505 49,089 16,416
FC5 db4 5,268 5,576 5,660 295,758 327,357 311,917
0,308 0,084 0,392 31,599 15,440 16,159
F3 db4 7,003 8,099 7,128 393,658 479,563 415,329
1,096 0,971 0,125 85,905 64,234 21,671
FC5 db5 5,518 5,700 5,560 296,818 317,537 308,494
0,182 0,140 0,042 20,719 9,043 11,676
F3 db5 7,275 8,110 7,531 394,514 455,273 420,029
0,835 0,578 0,256 60,759 35,244 25,515
FC5 db6 5,305 5,526 5,760 293,223 319,797 321,724
0,221 0,234 0,455 26,574 1,927 28,501
F3 db6 7,151 7,946 7,061 399,941 455,715 406,950
0,796 0,885 0,089 55,775 48,765 7,009
FC5 db7 5,346 5,558 5,427 296,732 318,668 309,558
0,212 0,132 0,081 21,935 9,110 12,826
F3 db7 7,027 8,015 7,252 392,469 463,263 417,649
0,987 0,763 0,225 70,794 45,614 25,180
FC5 db8 5,302 5,632 5,632 300,596 332,169 318,565
0,329 0,001 0,330 31,573 13,604 17,969
F3 db8 7,145 8,081 7,164 406,892 477,200 423,121
0,936 0,917 0,019 70,308 54,079 16,229
FC5 db9 5,487 5,636 5,618 303,343 322,124 323,064
0,150 0,019 0,131 18,781 0,941 19,721
F3 db9 7,276 8,098 7,418 404,570 463,807 426,473
0,822 0,680 0,143 59,238 37,334 21,903
FC5 db10 5,296 5,479 5,602 292,634 316,633 310,279
0,183 0,123 0,307 23,999 6,354 17,645
F3 db10 7,038 7,975 7,033 389,840 459,294 403,937
0,937 0,942 0,005 69,455 55,357 14,097
SSI VAR
Media Media
cerrar rest abrir cerrar rest abrir
FC5 db1 3905,890 3946,954 3974,154 30,515 31,323 31,048
41,063 27,200 68,264 0,808 0,275 0,533
F3 db1 5898,878 8086,752 6716,129 46,085 64,176 52,470
2187,874 1370,623 817,251 18,091 11,706 6,385
FC5 db2 4027,332 4300,550 4343,115 31,440 34,120 33,903
273,217 42,565 315,782 2,680 0,217 2,463
F3 db2 7062,674 8583,851 7159,626 55,143 68,106 55,889
1521,177 1424,225 96,952 12,962 12,217 0,746
FC5 db3 3740,459 3977,695 3989,648 29,221 31,565 31,168
237,236 11,953 249,189 2,344 0,398 1,947
F3 db3 6423,132 7966,097 6617,194 50,178 63,214 51,694
1542,965 1348,904 194,062 13,036 11,520 1,516
FC5 db4 3872,253 4157,266 4291,714 30,229 32,986 33,500
285,013 134,449 419,461 2,757 0,515 3,271
F3 db4 6619,924 8831,152 6828,387 51,682 70,064 53,292
2211,228 2002,766 208,462 18,382 16,772 1,610
FC5 db5 4131,659 4349,151 4122,357 32,273 34,513 32,198
217,492 226,794 9,301 2,240 2,315 0,075
F3 db5 7096,010 8809,989 7644,823 55,427 69,911 59,712
1713,979 1165,167 548,812 14,484 10,200 4,285
FC5 db6 3927,186 4118,612 4479,070 30,676 32,682 34,989
191,426 360,458 551,885 2,006 2,306 4,313
F3 db6 6904,552 8502,590 6655,738 53,936 67,467 51,991
1598,038 1846,852 248,814 13,531 15,476 1,945
FC5 db7 3859,577 4103,572 3941,226 30,147 32,565 30,784
243,995 162,346 81,649 2,418 1,782 0,637
F3 db7 6637,632 8581,919 7075,996 51,846 68,106 55,270
1944,287 1505,923 438,364 16,260 12,836 3,424
FC5 db8 3966,359 4218,844 4282,788 30,983 33,478 33,456
252,485 63,944 316,429 2,495 0,022 2,473
F3 db8 6908,346 8835,979 6886,062 53,965 70,117 53,791
1927,633 1949,917 22,284 16,152 16,326 0,174
FC5 db9 4069,857 4298,127 4226,650 31,791 34,108 33,015
228,270 71,477 156,792 2,317 1,093 1,225
F3 db9 7126,365 8750,169 7390,094 55,664 69,436 57,725
1623,804 1360,075 263,729 13,772 11,711 2,060
FC5 db10 3891,196 3982,759 4238,380 30,394 31,601 33,107
91,563 255,621 347,183 1,207 1,506 2,713
F3 db10 6691,968 8559,927 6613,689 52,272 67,916 51,662
1867,959 1946,239 78,279 15,644 16,254 0,610
WL
Media
cerrar rest abrir
FC5 db1 222,745 222,745 231,177
0,000 8,432 8,432
F3 db1 274,828 274,828 327,065
0,000 52,237 52,237
FC5 db2 334,162 334,162 368,464
0,000 34,302 34,302
F3 db2 458,988 458,988 518,307
0,000 59,319 59,319
FC5 db3 322,239 322,239 350,934
0,000 28,695 28,695
F3 db3 429,402 429,402 494,228
0,000 64,826 64,826
FC5 db4 298,644 298,644 330,139
0,000 31,494 31,494
F3 db4 398,016 398,016 483,233
0,000 85,217 85,217
FC5 db5 297,952 297,952 318,627
0,000 20,675 20,675
F3 db5 396,178 396,178 456,837
0,000 60,659 60,659
FC5 db6 296,669 296,669 322,838
0,000 26,170 26,170
F3 db6 405,300 405,300 459,625
0,000 54,325 54,325
FC5 db7 299,524 299,524 321,554
0,000 22,031 22,031
F3 db7 396,476 396,476 466,606
0,000 70,131 70,131
FC5 db8 301,474 301,474 333,184
0,000 31,710 31,710
F3 db8 408,140 408,140 478,803
0,000 70,663 70,663
FC5 db9 306,135 306,135 324,910
0,000 18,776 18,776
F3 db9 408,757 408,757 466,832
0,000 58,075 58,075
FC5 db10 295,927 295,927 319,705
0,000 23,778 23,778
F3 db10 394,880 394,880 463,045
0,000 68,166 68,166