domingo, 1 de junio de 2014

Para las las propuestas solución sin éxito se ha encontrado una solución estable:
Control Fuzzy para piano kinect (2da parte)
Como se ocupo la lógica difusa para solucionar el problema de sensibilidad ¿?

Como hemos mencionado anteriormente, se ha escogido ocupar lógica difusa por lo puntos mencionados en el post anterior.
La lógica difusa trabaja de la siguiente manera
Para esto entonces lo primero que necesitamos es variables de entrada. En una primera instancia se ocuparon solo 2 variables de entrada, sabiendo que se tienen que ocupar 3 por lo que son 3 ejes dimensionales (x,y,z), pero para probar la lógica difusa se ocuparon 2:
·         Eje x (horizontal)
·         Eje z (profundidad)
Para estas variables de entrada, se crearon 3 conjuntos difusos con sus funciones de pertenencia correspondiente:
·         Fuera  1
·         Dentro
·         Fuera 2
Conjuntos difusos.jpeg
El siguiente paso es, el de inferencia, para esto necesitamos reglas, que hay que crear dependiendo de las variables de entrada y de los conjuntos difusos creados:
  1. IF (X IS Fuera1) AND (Z IS Fuera1) THEN Exito IS NoToca
  2. IF (X IS Fuera1) AND (Z IS Dentro) THEN Exito IS NoToca
  3. IF (X IS Fuera1) AND (Z IS Fuera2) THEN Exito IS NoToca
  4. IF (X IS Dentro) AND (Z IS Fuera1) THEN Exito IS NoToca
  5. IF (X IS Dentro) AND (Z IS Dentro) THEN Exito IS Toca
  6. IF (X IS Dentro) AND (Z IS Fuera2) THEN Exito IS NoToca
  7. IF (X IS Fuera2) AND (Z IS Fuera1) THEN Exito IS NoToca
  8. IF (X IS Fuera2) AND (Z IS Dentro) THEN Exito IS NoToca 
  9. IF (X IS Fuera2) AND (Z IS Fuera2) THEN Exito IS NoToca
Cabe destacar que estas reglas hacen un puente entre las variables de entrada y las variables de salida.
Como se puede observar la mayoría de las reglas hace que la tecla no suene,  y por el contrario existe una única regla que hace que la tecla suene y es cuando la variable x perteneciente al eje x y la variable z perteneciente al eje z están dentro del área de la tecla.

La última parte del proceso de lógica difusa es la defuzificacion, donde se generan variables de salida. Este proceso lo hacemos por medio del método mandami, el cual nos entrega un % de pertenencia. Este grado de partencia, nos define si el pie esta dentro de la tecla o fuera.  
Se crearon conjuntos difusos para las salidas:
Diagrama3.jpeg

Después de haber aplicado la lógica difusa para el proyecto, este es el resultado:





No hay comentarios:

Publicar un comentario