14
INSTITUTO TECNOLÓGICO DE TOLUCA “MANIPULACIÓN DE ROBOT LEGO” CARRERA: MECATRÓNICA ASIGNATURA: ROBÓTICA PROFESOR: FABIAN MARTINEZ GUTIERREZ PRESENTA: VALDEZ GARCÍA EDUARDO 11280926 SEP SNEST

Manipulación Robot Lego

Embed Size (px)

DESCRIPTION

Lógica difusa.

Citation preview

SEP SNEST DGEST

INSTITUTO TECNOLGICO DE TOLUCA

MANIPULACIN DE ROBOT LEGO

CARRERA: MECATRNICA

ASIGNATURA: ROBTICA

PROFESOR: FABIAN MARTINEZ GUTIERREZ

PRESENTA:VALDEZ GARCA EDUARDO 11280926

METEPEC, EDO. DE MEXICO, MXICO ABRIL DE 2015

INTRODUCCIN

El progreso en la computacin se ha concentrado principalmente en el desarrollo de computadoras ms poderosas, con un tamao cada vez ms reducido y con mejores funcionalidades. Otra rea de investigacin importante en computacin han continuado en la bsqueda por la mejora de la interaccin a travs de interfaces de usuario ms eficientes con mayor libertad y que resulten en un entorno ms natural y amigable para el usuario.

APLICACIN DE LGICA DIFUSA PARA UN SEGUIDOR DE LNEA

La lgica difusa o lgica heurstica se basa en lo relativo de lo observado, utiliza expresiones que no son ni totalmente ciertas ni completamente falsas (lgica binaria o booleana), es decir, es la lgica aplicada a conceptos que pueden tomar un valor cualquiera de veracidad dentro de un conjunto de valores que oscilan entre dos extremos, la verdad absoluta y la falsedad total.Segn esta teora, la funcin que la represente ser una funcin de transferencia (que tomar cualquiera de los valores reales comprendidos en el intervalo [0,1]) la que determine el grado de pertenencia de un elemento a un conjunto.Vamos a utilizar la siguiente imagen como explicacin

El rectngulo de la izquierda representara una lgica binaria (blanco o negro), El de la derecha representa lgica difusa:Tenemos todo un conjunto de valores posibles, en este caso una escala de grises. Nuestro intervalo se desplaza del blanco al negro, con todos los valores intermedios. La lgica difusa se basa en reglas heursticas de la forma SI (antecedente) ENTONCES (consecuente) donde el antecedente y el consecuente son tambin conjuntos difusos, ya sea puros o resultado de operar con ellos. Los mtodos de inferencia para esta base de reglas deben ser simples, veloces y eficaces. Los resultados de dichos mtodos son un rea final, fruto de un conjunto de reas solapadas entre s (cada rea es resultado de una regla de inferencia).

Aplicando esto a la robtica, en concreto a la inteligencia artificial, la logica difusa se utiliza para la resolucin de una variedad de problemas, principalmente los relacionados con control de procesos industriales complejos y sistemas de decisin en general, la resolucin la compresin de datos. Los sistemas basados en logica difusa imitan la forma en que toman decisiones los humanos, con la ventaja de ser mucho ms rpidos. Estos sistemas son generalmente robustos y tolerantes a imprecisiones y ruidos en los datos de entrada.APLICACINLa idea es no trabajar solamente con blanco y negro, sino tambin con los valores intermedios.Si el sensor est exactamente en el borde, el valor no ser ni blanco ni negro, ser un valor entre ambos, de tal manera que, cuanto ms entra en sensor en la lnea, ms prximo al negro es el color que se percibe y viceversa.De esta manera ya no estamos limitados a girar slo a la derecha o a la izquierda, si no que podremos girar ms o menos hacia la derecha o a la izquierda, en funcin de lo prximos que estemos al negro o al blanco respectivamente. Y si estamos justo en el borde? Seguimos rectos.Para conseguir esto, debemos poder controlar los motores en funcin de esas variaciones de luz, para lo cual utilizaremos la siguiente frmula:Potencia Motor B= (Valor Sensor-Valor Negro)*Factor de correccinPotencia Motor C= (Valor Blanco-Valor Sensor)*Factor de correccinPara unos valores de 30 para negro y 70 para blanco, aplicamos un factor de correccin de 2.5 y obtenemos los siguientes resultados.

Robot Lego Mindstorms NXT por medio de una conexin bluetooth y de una NUI innovadora mediante gestos y reconocimiento de voz utilizando el Kinect y SDK de Microsoft bajo la plataforma .NET, permitiendo mejorar la Interfaz Hombre-Mquina (Man-Machine Interface, MMI por sus siglas en ingls), para que los usuarios controlaran e interactuaran con el Robot sin tener contacto fsico. Esta propuesta busca proveer una herramienta de apoyo innovadora con un dispositivo comercial de bajo costo, presentando una aplicacin que es desarrollada a lo largo de este trabajo con una NUI innovadora utilizando el Kinect, que en un futuro, se podra aplicar con robots humanoides que adems de imitar la apariencia humana, imita algunos aspectos de su conducta.

El Kinect es un equipo alargado, diseado para estar en una posicin horizontal. El dispositivo contiene, una cmara RGB, sensores de profundidad, un micrfono multi-array y un motor de inclinacin, adems de las siguientes caractersticas tcnicas:

-Cmara RGB, cmara de video con una resolucin de 640x480 a 30 FPS. -Sensores de profundidad, combinacin de un proyector de profundidad (retcula izquierda) con un sensor de profundidad (retcula derecha), se calcula la distancia en funcin del tiempo que tarda en reflejar la luz.

-Micrfono Multi-array, conjunto de cuatro micrfonos que se monta como un solo micrfono.

-Motor de inclinacin, permite ajustar el Kinect hacia arriba hacia abajo hasta 27. -Memoria RAM de 512 Mb. -Acelermetro, para estabilizar la imagen cuando se mueve. -Ventilador, no est encendido continuamente para no interferir con los micrfonos. En conjunto el Kinect, captura imgenes y movimientos de los cuerpos, adems de ofrecer reconocimiento facial y acepta comandos de voz. La intencin de utilizar el Kinect en las distintas aplicaciones computacionales est enfocada a reemplazar la entrada de teclado y ratn por gestos basados en umbrales angulares y la distancia entre las partes del cuerpo.

Hacia una interfaz de control musical en 3D totalmente expresivo. En este trabajo se muestra un sistema para manipular el sonido de un instrumento musical. El sistema toma la posicin 3D de las manos mediante Kinect y OpenNI y las enva como un flujo de mensajes bajo el protocolo Open SoundControl (que permite comunicarse con aplicaciones de edicin y sintonizacin de sonido a travs de una red). El sistema se prob extendiendo las capacidades de un vibrfono mediante el movimiento vertical y horizontal de las manos. El movimiento horizontal de la mano derecha incrementa disminuye el tono armnico y el movimiento vertical permite incrementar decrementar las frecuencias altas. Adicionalmente, el movimiento horizontal de la mano izquierda controla la proporcin del filtrado a la seal de sonido y el movimiento vertical controla la tasa de bits de codificacin.

Como se puede ver en los distintos artculos presentados anteriormente todos utilizan NUIs, de una manera innovadora haciendo uso de los movimientos y gesticulaciones del cuerpo humano como datos de entrada, as el usuario puede emplear movimientos que le parecen familiares para crear una interaccin ms natural, como si estuviera manejando objetos reales. propuesta para disear, desarrollar e implementar una herramienta computacional que permita manipular un Robot Lego Mindstorms NXT por medio de una conexin bluetooth mediante gestos y reconocimiento de voz utilizando el SDK y Kinect de Microsoft bajo la plataforma .NET, permitiendo mejorar la MMI, es decir, los usuarios controlen e interacten con el Robot sin necesidad de tener contacto fsico con un controlador tradicional. La conexin inicia por medio de una conexin bluetooth y la librera NXT.NET, posteriormente se inicia una fase de funcionamiento que se detiene hasta que se indique el cierre del sistema. La fase comienza por obtener las imgenes de video, profundidad y el esqueleto del usuario, este proceso se resume en los subtemas siguientes: Cmara de video:

El Kinect adquiere imgenes de video con un sensor CMOS de colores a una frecuencia de 30 FPS en colores RGB de 32-bits y resolucin VGA de 640480 pixeles. El canal de video monocromo CMOS es de 16-bit, resolucin QVGA de320240 pixeles con hasta 65,536 niveles de sensibilidad. En un amplio campo visual con objetos, la cmara de video trata de reconocer a qu distancia estn los distintos objetos, distinguiendo movimientos en tiempo real.

Sensores de profundidad:

Para calcular distancias entre un cuerpo y el sensor, el sensor emite un haz lser infrarrojo que proyecta un patrn de puntos sobre los cuerpos, luego la separacin entre los puntos permite calcular la distancia existente entre el Kinect y el objeto. Entre ms cerca este el objeto del Kinect ms pequea ser la distancia de separacin entre los puntos. En caso contrario, la separacin de los puntos proyectados por el Kinect ser mayor. Una cmara infrarroja capta este patrn y por hardware calcula la profundidad de cada punto. El rango de profundidad del sensor de Kinect est entre 0.4 y 4 metros.Existen 2 modos: Default y Near, para determinar distancias. Se ha elegido el modo Default ya que permite medir hasta 4 metros de distancia con respecto al sensor. Los sensores pueden llegar a distinguir la profundidad de cada objeto con una resolucin de 1 centmetro y las estimaciones de la altura y anchura con una exactitud de aproximadamente 3 milmetros. A partir del esqueleto obtenido se realiza la deteccin de acciones:

La aplicacin funciona a travs del Kinect, detectando los movimientos de la persona que interacte con el dispositivo y a su vez la aplicacin transforma estos movimientos en instrucciones.

En la figura se muestra una interfaz de nuestra propuesta denominada K-Bot. La interaccin con la aplicacin se logra al visualizar los movimientos del usuario en las pantallas (imgenes de color y profundidad) y la realizacin de accin es cuando el usuario efecta un movimiento especfico pronuncia un comando de voz, los cuales son reconocidos por la aplicacin. Utilizando en la arquitectura de nuestra propuesta. El patrn tiene tres bloques: Modelo, Vista y Controlador. El Modelo tiene los datos de la aplicacin, y la lgica de negocios de nuestra aplicacin, la Vista representa la GUI hacia el usuario y muestra el estado de la aplicacin, y el Controlador maneja las entradas del usuario y cambia los estados de la aplicacin. El punto fundamental del patrn es la alta flexibilidad, claramente aplicable a la separacin de los tres bloques, sin superponer sus responsabilidades, posibilitando a cada bloque llevarlas a cabo, pero estos bloques colaboran de forma vinculada, comunicndose entre ellos. La Fig. 5 muestra los patrones: MVC, Observador y Singleton, del ncleo fundamental de nuestra arquitectura. El patrn Observador nos posibilit mantener actualizadas las Vistas con el Modelo.

El patrn Singleton se centra en asegurar que slo haya una instancia de una clase en la memoria, y slo se tenga un acceso global al objeto, con el propsito de optimizar el uso de los recursos, en nuestra propuesta el patrn Singleton optimiza el acceso a la capa del Modelo. Estos patrones ya han sido utilizados en el desarrollo de propuestas previas.

Seguimiento del esqueleto:

El Rastreo de Esqueleto (Skeleton Tracking, ST por sus siglas en ingls) se basa en un algoritmo de reconocimiento patrones. Este algoritmo ha sido entrenado con muchas imgenes para lograr una gran precisin a la hora de identificar esqueletos. Nuestra propuesta implementa en el ST, el proceso de identificacin del esqueleto por medio de mltiples fases. Lo primero es obtener los datos del mapa de profundidad para separar los distintos jugadores que tiene en el campo de visin basndose en el fondo. Una vez que tenemos los distintos jugadores se clasifican las distintas partes del cuerpo para ms tarde obtener las articulaciones (joints), conformando los distintos puntos que componen el esqueleto. A partir de la identificacin de las distintas articulaciones se crea el esqueleto conformado por estos puntos. A continuacin muestra el proceso para el rastreo del esqueleto por medio de Kinect.

Las tcnicas para definir algortmicamente los gestos, al igual que hicimos con la postura, la comparamos con una serie de plantillas predefinidas. La tcnica de las plantillas es muy eficiente para gestos que siempre se realizan de la misma forma y que con cualquier otra tcnica sera muy difcil de detectar. Para ilustrar la tcnica de comparacin de plantillas podemos poner el golpeo de una bola jugando al tenis como se muestra a continuacin.

Este movimiento es bastante complejo como para definirlo algortmicamente y es ms fcil si tenemos una serie de plantillas (gestos) e ir comparando cada captura con ellas. El movimiento capturado no ser igual a la plantilla que tengamos pero se puede permitir un margen de error y si el resto del movimiento se sigue pareciendo al resto de plantillas podemos darlo por vlido.

CONCLUSIONES

Se puede llevar a cabo la manipulacin de un Robot de Lego de diferentes maneras e interfaces ya sea a travs de su programacin utilizando lenguajes de programacin comunes como lo son Java, C o lenguaje Arduino, utilizando interfaces Android o iOS a travs de una conexin por Bluetooth o simplemente utilizando el firmware original de Mindstorms. Siendo esto un hecho factible, hace posible que exista una infinidad de aplicaciones realizables con estos dispositivos. REFERENCIAS .1.- NUI: Interfaz de Usuario Natural, Sitio Web, Disponible en URL: http://www.microsoft.com/enus/kinectforwindows/develop/.

2.-Kinect for Windows | Voice, Movement & Gesture Recognition Technology, Disponible en URL: http://www.microsoft.com/en-us/kinectforwindows/.

3.- Microsoft, Sitio Web, Disponible en URL:http://www.microsoft.com/es-mx/default.aspx.

4.- Robot Lego Mindstorms NXT, Sitio Web, Disponible enURL: http://mindstorms.lego.com/en-us/default.aspx.

5.- NXT.NET Lego Mindstorms, Sitio Web, Disponible en URL: http://nxtnet.codeplex.com/.

6.- J. Webb, J. Ashley, Beginning Kinect Programming with the Microsoft Kinect SDK (Apress, 2012).

7.- R. Miles, Start Here! Learn the Kinect API (Microsoft,2012).

8.- S. Peralta, Interfaz de lenguaje natural usando Kinect, Tesis de Maestra en Ciencias de la computacin, CINVESTAV-IPN, Mxico, 2012.