miércoles, 12 de noviembre de 2014

Introducción

El presente trabajo es un algoritmo diseñado para que el robot NAO ejecute las tareas de localización, alcance y pateo de una pelota, esto con miras a una futura participación de la Universidad de La Sabana en la competencia de robótica “Robocup”. Se hace un avance sobre los trabajos que ya se habían realizado previamente que solucionaban estas tareas, y se hace una nueva propuesta para optimizar la ejecución conjunta de las tres tareas mencionadas previamente. El algoritmo se desarrollará en tres entregables, cada uno dedicado a las tareas objetivo del presente trabajo, y se realizaran mediciones rigurosas para comprobar el funcionamiento correcto de cada uno de los entregables.

martes, 11 de noviembre de 2014

Marco de referencia



En este trabajo se integran conceptos de computer vision y de robótica con el objetivo de que NAO realice las tres tareas mencionadas previamente: localización, acercamiento y pateo de una pelota. Los conceptos de computer vision se aplican en la parte de localización de una pelota, mientras que la teoría sobre robótica es aplicada para las tareas de acercamiento y pateo de una pelota.
Una imagen en el área de computer vision es tratada como una matriz de pixeles, los cuales tienen diferentes valores de color. Este valor de color varía dependiendo del modelo que se use para representar la gama de colores. Entre los modelos más conocidos se encuentran el RGB (Red, Green, Blue), y HSV (Hue, Saturation, Value).  En este trabajo los colores se representaran usando el modelo HSV, ya que este permite distinguir mejor que el modelo RGB un color de otro, debido a que en el modelo RGB no los valores del vector RGB se relacionan con la iluminación del medio ambiente, y por tanto se relacionan entre ellos (Cheng, Jiang, Sun & Wang, 2001). Por eso, el modelo HSV ofrece una descripción del color mucho más precisa.
Con el objetivo de localizar una pelota dentro de una imagen, se usaran dos tipos de filtros: de color y de figura. Para el filtro por color, basta con describir los valores de color de cada uno de los pixeles pertenecientes a la imagen en formato HSV, y establecer el rango de valores en este mismo formato que se quieren extraer de la imagen. Luego de que una imagen es filtrada por color, será filtrada por figura. Este último filtro se hace usando una técnica llamada transformada de Hough. Para aplicar esta técnica sobre una imagen, es necesario primero extraer de dicha imagen los píxeles que tienen sus características más notables, o bordes, usando una técnica llamada filtro de Canny. Esta extracción de bordes se hace para crear una imagen basada en la original cuyo procesamiento es más ligero, por lo que funciona como un parámetro de entrada adecuado para la transformada de Hough.
El filtro de Canny detecta los píxeles en los que haya un cambio significativo de color, de iluminación, de superficie o de profundidad, calculando las derivadas parciales para los ejes x e y de la imagen en función de su intensidad, con lo que se obtiene la magnitud y dirección del gradiente para cada pixel. Luego, se seleccionan los píxeles cuya magnitud de gradiente es más grande, y después dichos píxeles se unen para reconstruir la imagen original. Esos píxeles son los llamados “bordes” (Canny, 1986).
Por su parte, la transformada de Hough usa la muestra de píxeles dada por el filtro de Canny, y usa un sistema de votación para determinar cuáles corresponden a un círculo. Este método recorre la imagen píxel por píxel, y en una matriz de tres dimensiones, que corresponden al centro de un círculo y a las coordenadas x e y de su centro, almacena los valores de todos los círculos que podrían pasar por ese punto. Si dos píxeles pertenecen al mismo círculo, entonces cuando la transformada de Hough analice y almacene los valores de todos los círculos que pasen por este punto, habrá unos parámetros de círculo que estén repetidos, por lo que dichos parámetros recibirán un voto. Si hay parámetros de círculo cuyos votos superan cierto umbral, entonces la transformada determinará que en la imagen hay un círculo con dichos parámetros (Duda & Hart, 1972).
El robot NAO tiene un módulo de cinemática inversa que facilita las tareas de acercamiento a la pelota y pateo. La cinemática inversa es la técnica que permite determinar la rotación o movimiento de una cadena de motores que pertenecen a un objeto para lograr que este se ubique en una posición concreta (Paul, 1981). 

lunes, 10 de noviembre de 2014

Problema de Investigación



La robótica humanoide es un campo de la robótica orientado a la construcción de robots con una estructura similar a la del cuerpo humano, que generalmente cumplen funciones de interacción con seres humanos (Sorbello, et al, 2014). Además, son usados como herramientas de investigación en varias áreas de la ciencia como un modelo del cuerpo humano. En la actualidad existen varios proyectos que promueven la investigación a través de la robótica humanoide en campos como la inteligencia artificial, como es el caso del proyecto “Robocup”, que es un torneo que promueve la competencia de robots humanoides autónomos en varios campos como el fútbol, rescate de personas e interacción cotidiana con humanos.
En particular, para el área de futbol dentro de la Robocup se presentan varios problemas que afectan el funcionamiento del robot mientras este participa en dicha competición, especialmente si el robot humanoide tiene que mantenerse en movimiento durante un tiempo prolongado, lo que es habitual en la Robocup. Algunos de estos problemas son el sobrecalentamiento de los motores, la baja fricción del suelo y una posible iluminación adecuada del terreno de juego. A pesar de que el campo de juego de la Robocup está adecuado especialmente para esta competición, de modo que casi se encuentra en condiciones ideales de iluminación y de fricción del suelo, dichas condiciones ideales todavía no se han logrado, por lo que los algoritmos desarrollados para la Robocup deben hacer frente a dichos problemas.
Hasta el momento existen diversos trabajos que afrontan algunos de estos problemas (Taiana, et al, 2010), (Ahmad, Lima, 2013), (Kanehiro, et al, 2012), sin embargo, ninguno de estos trabajos tiene una solución lo suficientemente eficiente y efectiva para los problemas de localización de un objeto y de estabilidad del robot mientras está ejecutando un movimiento complejo como el de pateo de una pelota.
Gracias a los avances que se han hecho hasta el momento en los campos de computer vision y en locomoción de un robot humanoide, se puede pensar que existe la posibilidad de mejorar estos algoritmos para que funcionen de una manera más rápida y en condiciones menos favorables tanto de iluminación como de fricción del suelo. En particular, dichos algoritmos se pueden mejorar para que el robot ejecute de forma eficiente y efectiva las tareas de localización de una pelota, alcance de esta, y pateo.
El problema estaría planteado así: ¿Cómo se puede mejorar los algoritmos planteados hasta el momento para las tareas de localización, alcance y pateo de una pelota?
Si el problema puede ser resuelto, se realizará un avance hacia el objetivo de la robótica humanoide de lograr una interacción robot-humano fluida en la vida real para que el robot ayude al humano en sus problemas cotidianos, ya que el robot podrá ejecutar algunas de sus funciones bajo condiciones no ideales, lo que le ampliará su campo de acción y los entornos en los que se puede desempeñar. Este desarrollo es parte del gran número de trabajos e investigaciones que se deben hacer para lograr el objetivo de la robótica humanoide, sin embargo, será un paso bastante importante.

domingo, 9 de noviembre de 2014

Justificación y reelevancia: ¿Por qué y para qué?

El presente trabajo se realiza con miras a una futura participación de la Universidad de La Sabana en la  competencia "Robocup", más especificamente dentro de su modalidad "Robocup soccer". Robocup es un proyecto internacional fundado en 1997 para promover, a través de diferentes competencias con robots autónomos, el desarrollo de investigaciones en inteligencia artificial, robótica, computer vision, entre otras áreas del conocimiento. La modalidad "Robocup Soccer" está orientada a que robots humanoides sean capaces de jugar fútbol de forma autónoma, lo cual requiere de bastantes algoritmos que ejecutan tareas que van desde el control de los movimientos de caminata y pateo de un robot y la identificación de objetos dentro de un espacio tridimensional hasta el control de varios robots a la vez, de modo que puedan jugar en equipo.
Este proyecto está orientado al control de los movimientos de caminata y pateo del robot, basandose en información del espacio tridimensional que el robot puede obtener gracias a su cámara, es decir, el algoritmo será una nueva propuesta para controlar la localización de una pelota, además de su alcance y pateo para el robot humanoide NAO.Se decidió hacer esta propuesta debido a que los algoritmos que existen hasta el día de hoy que se encargan de realizar las mismas tareas tienen deficiencias a la hora de responder a condiciones variables del entorno como cambios de iluminación, una fricción baja del suelo o el sobrecalentamiento de los motores del robot. Dichas condiciones son recurrentes en competencias como la Robocup, por lo que se hace necesario un algoritmo robusto que sea capaz de responder a dichas variables.
Gracias al desarrollo de este trabajo, se realizará un avance importante en el campo de la robótica humanoide, ya que se podrá reducir el efecto que algunas variables externas como la iluminación, fricción del suelo o sobrecalentamiento de los motores tienen sobre la efectividad de un robot humanoide al ejecutar las tareas que tiene asignadas, lo que representa un avance importante para la robótica humanoide.

sábado, 8 de noviembre de 2014

Variables, objetivos e hipótesis

Variables

  • Independiente: Algoritmo a implementar.
  • Dependiente: Eficiencia del robot al ejecutar las tareas de localización, alcance y pateo de una pelota. 

Unidad de análisis

  • Robot humanoide  

Enlace lógico

  • Las variables se relacionan causalmente  

Objetivos


Objetivo general

Aumentar la eficiencia de un robot humanoide al ejecutar las tareas de localización, alcance y pateo de una pelota usando un nuevo algoritmo de computer vision, y de este modo hacer posible la participación de la Universidad de La Sabana en la competencia Robocup.

Objetivos especificos

  • Crear un algoritmo que use recursos de computer vision para lograr distinguir una pelota roja dentro de una imagen, además de estimar sus características más importantes: radio, y la localización de su punto central en coordenadas cartesianas.  
  • Elaborar un programa que de órdenes precisas a NAO en tiempo real sobre cómo llegar a la pelota usando los datos que se obtuvieron sobre esta previamente.
  • Implementar en el robot el movimiento de pateo.

Hipótesis


Gracias a la implementación de un nuevo algoritmo se incrementará la eficiencia de un robot humanoide al ejecutar las tareas de localización, alcance y pateo de una pelota.

viernes, 7 de noviembre de 2014

Alcance de la investigación

Existe una gran cantidad de tareas necesarias para que un robot humanoide pueda ejecutar la actividad de jugar fútbol, que van desde la localización de la pelota, el pateo de esta, establecer un objetivo de pateo, hasta la coordinación del robot con otros de su mismo equipo para poder hacer un gol. Este trabajo se centra en tres tareas en especifico: localización de una pelota en un espacio tridimensional, a través de algoritmos de computer vision, y la localización y pateo de esta usando algoritmos de control de equilibrio y cinemática inversa. Además, el algoritmo estará orientado a mejorar el rendimiento del robot al ejecutar las tareas mencionadas previamente teniendo en cuenta la influencia de las variables de iluminación del entorno, fricción del suelo y sobrecalentamiento de los motores del robot. El manejo de otras variables externas como interferencia en la comunicación servidor-robot se manejará en trabajos futuros.

jueves, 6 de noviembre de 2014

Limitaciones y supuestos

Limitaciones

Las limitaciones más trascendentales para este trabajo tienen que ver con el hardware, ya que este tiene varias particularidades que afectan el desempeño del robot a la hora de ejecutar una tarea. La cámara del robot NAO es de baja resolución y carece de obturador, por lo que no es capaz de hacer una imagen precisa del entorno cuando el robot se está moviendo, lo que afecta bastante el trabajo teniendo en cuenta que el presente algoritmo está diseñado para analizar las imágenes que el robot captura en tiempo real para determinar la posición de la pelota. Entonces, al capturar imágenes mientras el robot camina, seguramente se obtendrá una posición de la pelota que no es lo sufucuentemente precisa.
La segunda limitante tiene que ver con los motores del robot, ya que sin importar el algoritmo que se realice para controlar la influencia de su sobrecalentamiento sobre los movimientos del robot, existe un umbral de temperatura para estos motores que si es sobrepasado el robot se desactivará, lo que limita el funcionamiento del presente trabajo.

Supuestos

Para el desarrollo del presente trabajo se implementaron dos librerías de código, las cuales tienen métodos predefinidos que facilitan y aceleran la construcción de software referente a las áreas de computer vision y trabajo con el robot humanoide NAO, que son OpenCV y jNAOqi. Un supuesto de este trabajo es el correcto funcionamiento de los métodos que tienen ambas librerias para el desarrollo del algoritmo en cuestión. Estas librerias han sido probadas por millones de personas alrededor del mundo, razón por la que fueron escogidas para el desarrollo del presente algoritmo.
Además, las mediciones de los ángulos de los motores del robot NAO seran tomadas de los datos dados por el mismo robot, basandose en el supuesto de que estas mediciones son bastante precisas. Este supuesto se da gracias a la garantia que da el fabricante del robot sobre la precisión de dichas medidas.