Este es el reporte final de el proyecto, se trato de ua red neuronal que funciona de interfaz para controlar una red neuronal y utilizando u sensor como entrada .
La red neuronal por medio de electrodos que se colocan en el antebrazo de una persona para que esta pueda determinar los movimientos que quiere realizar. Los datos que manda el cerebro en forma de frecuecias son interceptados en el antebraso y de esa maneracontrola el brazo robotico. Surgieron unos problemas con la aduana y los electrodos ya que lo tomaron como instrumeto medico y se utilizo un EGG.
El modo en que funciona :
Toma entradas del EGG y se van al preprocesamiento , despues se someten a un filtrado para tomar e ignorar los valores que no nos importan. Una vez tomados los datos que de importancia se colocan dentro de una lista que es la que entra a la red neuronal.
Se trabajo con un brazo robótica que se adquirió en Steren y viene un paquete de componentes electrónicos para armar un brazo mecánico que puede lograr movimientos de hasta de 270° y su pinza puede levantar objetos ligeros hasta de 100 gramos.
Dentro de los movimientos, el robot puede abrir o cerrar la tenaza, bajar o subir el brazo y moverlo hacia la derecha o izquierda, todo esto a través del control remoto integrado.
El brazo robótico tiene cinco motores de directa, y para utilizarlo se desarmao el dispositivo y controlamos utilizando un Arduino cada motor por separado para mapear cada uno con una salida de nuestra red neuronal y solo le dimos un alcanse de girdo de 180 grados.
Se utilizo Arduino para controlar cada motor de la neurona y también la idea es utilizarlo como interfaz de las señales recibidas del sensor y también para las señales mandadas al brazo robótico.
En este proyecto se realizaron varios perceptrones uno en el que estuve trabajando fue en un perceptron que pudiera realizar una operacion and, con una cantidad de entradas indefinidas.
El Perceptron es un clasificador y que es uno del tipo más simple de red neuronal artificial . Además es un tipo de red que necesita conocer los valores esperados para cada una de las entradas presentadas; su comportamiento está definido por pares de esta forma:
Ronda: 10 [Entradas]-> (Salida, Error) [0,0,0]-> (0, 0) [0,0,1]-> (0, 0) [0,1,0]-> (0, 0) [0,1,1]-> (0, 0) [1,0,0]-> (0, 0) [1,0,1]-> (0, 0) [1,1,0]-> (0, 0) [1,1,1]-> (1, 0) Porcentaje de error: 0.0 Ronda: 20 [Entradas]-> (Salida, Error) [0,0,0]-> (0, 0) [0,0,1]-> (0, 0) [0,1,0]-> (0, 0) [0,1,1]-> (0, 0) [1,0,0]-> (0, 0) [1,0,1]-> (0, 0) [1,1,0]-> (0, 0) [1,1,1]-> (1, 0) Porcentaje de error: 0.0 Ronda: 30 [Entradas]-> (Salida, Error) [0,0,0]-> (0, 0) [0,0,1]-> (0, 0) [0,1,0]-> (0, 0) [0,1,1]-> (0, 0) [1,0,0]-> (0, 0) [1,0,1]-> (0, 0) [1,1,0]-> (0, 0) [1,1,1]-> (1, 0) Porcentaje de error: 0.0 Ronda: 40 [Entradas]-> (Salida, Error) [0,0,0]-> (0, 0) [0,0,1]-> (0, 0) [0,1,0]-> (0, 0) [0,1,1]-> (0, 0) [1,0,0]-> (0, 0) [1,0,1]-> (0, 0) [1,1,0]-> (0, 0) [1,1,1]-> (1, 0) Porcentaje de error: 0.0 Ronda: 50 [Entradas]-> (Salida, Error) [0,0,0]-> (0, 0) [0,0,1]-> (0, 0) [0,1,0]-> (0, 0) [0,1,1]-> (0, 0) [1,0,0]-> (0, 0) [1,0,1]-> (0, 0) [1,1,0]-> (0, 0) [1,1,1]-> (1, 0) Porcentaje de error: 0.0
Cuando pj es aplicado a la red, la salida de la red es comparada con el valor esperado tj.
Links codigo
perceptron https://gist.github.com/4117900
brazo mecanico https://gist.github.com/4117995
preprocesamiento https://gist.github.com/4118313
repositorio https://github.com/saulG/redesNeuronales
Hay un chorro de errores en la redacción del reporte; 8 pts por ello. Tu código no está en el repositorio del resto del equipo y en realidad es una sola neurona y no una red neuronal como debería ser... Van 12 pts por el código.
ResponderEliminarPresenta el examen ordinario para subir puntos. Si el resultado después del examen ordinario no basta para alcanzar los 70 puntos, en el extraordinario les pondré a programar SIN internet (guarda lo que ocupes de notas en tu compu) una red multicapa con backpropagation y sumo los puntos que sacas en eso a tu acumulado de primera oportunidad. Pero pues, si estudias bien para el ordinario (libro cerrado), no tendré que ponerte segundas.
ResponderEliminar