Proyecto Fin de Carrera

Carmen Coll Camara

Septiembre 2009

 

Documento completo en PDF

_________________________________________

Este proyecto está centrado en el estudio de la odometría del robot móvil Moway y el desarrollo de algoritmos para mejorar su movilidad, mediante el uso del sensor de luz incorporado en el microbot.
Moway es una herramienta práctica en el mundo de la enseñanza y el aprendizaje. De pequeño tamaño, compacto, programable y autónomo, ha sido creado para comunicarse inalámbricamente con los de su especie o con un ordenador, siendo capaz de interactuar con su entorno gracias a los sensores de línea, obstáculos y luz integrados en él.


Figura 1: Moways junto a la placa USB con transceptor BZI-RF2GH4


El trabajo realizado se centra en:

  1. Estudio detallado del nivel físico del microbot.
  2. Análisis de los programas ejemplo disponibles en la página oficial de Moway.
  3. Estudio de la odometría del robot.
  4. Mejora de las capacidades móviles del microbot haciendo uso de su módulo sensor de luz.
  5. Desarrollo de tareas o juegos cooperativos.

 

 

 

1. DESCRIPCIÓN DEL ROBOT MOWAY


Algunas de las habilidades más destacables del microbot son las siguientes:

  1. Programables en diferentes lenguajes: ensamblador, en C o a través de un compilador gráfico llamado MowayGUI.
  2. Dotado de múltiples sensores que le permiten interactuar y desenvolverse en un entorno real.
  3. Permite la comunicación con los de su especie.
  4. Permite la comunicación con un ordenador.
  5. Autonomía de 2 horas.
  6. Preparado para robótica colaborativa.

El hardware del microbot está compuesto principalmente por los siguientes elementos:

Procesador
El microbot está gobernado por un microcontrolador PIC16F876A del fabricante Microchip Technology que trabaja a 4Mhz.

Sistema motriz
Se trata de un grupo motor con control de trayectoria comandado por I2C. Los microbots Moway disponen de un servo-motor doble para poder desplazarse.

Grupo de sensores e indicadores
Este grupo consta de diferentes sensores e indicadores luminosos conectados al microprocesador de Moway con los que el robot interactúa con el mundo exterior.

  1. Sensores de línea: dos optoacopladores de reflexión, del tipo KTIR0711S de Kingbright, montados en la parte inferior delantera del robot. Utilizan la reflexión de la luz infrarroja para detectar el tono del suelo en el punto en que se encuentra el robot.
  2. Detectores de obstáculos: dos sensores infrarrojos anticolisión. La distancia de alcance digital es de unos 3cm y se recomienda un entorno claro para aumentar la posibilidad de reflexión de la luz infrarroja.
  3. Sensor de intensidad de luz direccional: se trata del sensor de luz APDS-9002 situado tras una ventana en forma de media luna en la parte superior del chasis.
  4. Dos LEDS frontales
  5. LED superior bicolor.

Módulo radiofrecuencia
Además dispone de un módulo de radiofrecuencia para comunicación inalámbrica que consiste en una pareja de transceptores BZI-RF2GH4 que permiten la comunicación con otros robots o con el ordenador de forma inalámbrica

Software de grabación
El software de grabación se denomina Moway Center y se utiliza para controlar la comunicación de  la base Moway con el  microbot.


2. ERRORES EN LA ODOMETRÍA


Un aspecto clave en el desarrollo de sistemas autónomos móviles es el conocimiento en tiempo real de la posición precisa del sistema. En aplicaciones con microbots, se utiliza la odometría para estimar tanto la distancia recorrida como la trayectoria y la posición del robot en cada momento.
En los casos en los que no se puede determinar la posición exacta del vehículo debido a los errores que se generan, es imprescindible el uso de sensores tanto internos como externos. Los sensores internos proporcionan de forma continua e inmediata la localización del robot sin conocimiento alguno del entorno, calculando el número de vueltas dadas por las ruedas en cada ciclo de control de movimiento. En lo que a sensores externos se refiere, las técnicas de posicionamiento absoluto basan sus medidas en las relaciones del vehículo con elemento externos como son: sistemas de balizas, marcas activas o pasivas, o satélites.
De todos los errores, sólo aquellos debidos a imperfecciones en el diseño mecánico y sensorial del vehículo (errores sistemáticos) se mantienen constantes, pudiendo ser eliminados en el proceso de calibrado.

  1. Errores sistemáticos: diámetros de las ruedas diferentes, mal alineamiento de las ruedas, resolución discreta del encoder entre otros.
  2. Errores no sistemáticos: desplazamientos en suelos desnivelados, desplazamiento sobre objetos inesperados que se encuentren en el suelo, patinaje de las ruedas debido a suelos resbaladizos, sobre-aceleración, derrapes, fuerzas externas.

Al trabajar con Moway, se nota que no sigue fielmente la trayectoria programada, sino que se producen desviaciones y errores que se van acumulando. Se van a realizar una serie de experimentos para determinar si esos errores son sistemáticos o no, para que en el caso de que si lo sean intentar eliminarlos.
Para ello simulamos en un entorno adecuado (superficie sin desniveles, no resbaladiza, sin agentes externos que modifiquen los resultados) una serie de trayectorias muy simples, variando la velocidad y distancia del recorrido, con dos Moways diferentes, llamados Moway 01 y Moway 02.


Error en trayectoria rectilínea

Consiste en realizar un movimiento rectilíneo hacia delante regresando a continuación al punto inicial, midiendo la diferencia entre la trayectoria real y la ideal. Este experimento lo realizamos con distintas longitudes y distintas velocidades para comprobar el comportamiento de los dos microbots al variar estos dos parámetros.



Tabla 1: Errores en trayectoria rectilínea en experimento 1 para Moway 02



Figura 2: Ejemplo gráfico de errores de trayectoria rectilínea

Se observa la tendencia del robot, en la mayoría pero no en todos los casos, a desviar su trayectoria a la izquierda en su movimiento rectilíneo hacia delante. Además esta tendencia se incrementa a medida que aumenta la velocidad de su movimiento, generando una mayor diferencia respecto al eje x.
 A partir de los datos obtenidos se puede determinar que no existe ninguna relación clara entre distancia recorrida y el error cometido para ninguna de las velocidades. Una alta dispersión está presente en todos los resultados, que impide obtener esa parte sistemática del error que parece estar presente.

Error acumulado en movimiento rectilíneo
Una vez finalizadas las diez repeticiones, mediremos la distancia entre el punto en el que queda el robot y el punto de inicio. Variamos tanto la velocidad como la distancia recorrida, para intentar sacar alguna relación entre estas y el error cometido.



Figura 3: Ejemplo gráfico error acumulado


Moway 02 siempre se desvía hacia la derecha en el eje horizontal, pero no ocurre lo mismo con Moway 01, ya que este último se desvía unas veces a la derecha y otras a la izquierda.
Hay presente una alta dispersión entre los puntos a los que se llega las diez veces que se repite el mismo experimento con los mismos parámetros.
Los pequeños errores aleatorios que se producen al ejecutar cada comando, se van acumulando llevando al robot a una posición totalmente diferente, desconocida y alejada de la que se supone idealmente.


Errores en el giro
Al hacer rotar a Moway un cierto ángulo se produce un error, por lo que el robot rota un ángulo diferente al programado. Comprobaremos el comportamiento de Moway para distintos ángulos.



Figura 4: Desviación angular frente a ángulo girado para Moway 01


No existe relación lineal (ni ninguna otra aparentemente) entre el ángulo girado y la desviación producida. Por lo que se descarta la posibilidad de eliminar el error en el ángulo girado a la hora de programar.


Errores en movimiento curvo
Realizaremos un movimiento curvo con el comando MOT_CUR.

Tabla 2: Desviación en el eje radial para cada ángulo girado


Los resultados son totalmente aleatorios. No se puede hablar de ningún tipo de linealidad o dependencia, entre la desviación producida y el radio de curvatura.


Error debido al desnivel del terreno
Los resultados obtenidos en este apartado nos llevan a la conclusión de que para una superficie con inclinación inferior a 15º, el desnivel superficial no introduce un error añadido al ya presente, ligado al movimiento rectilíneo.
Cuando la inclinación va de los 20 a 25º, se observa un aumento del error por deslizamiento lateral de las ruedas respecto a la superficie.
A partir de 30º, el deslizamiento es tal que resulta imposible que Moway ascienda por la superficie.
Por lo que intentaremos que la superficie de trabajo tenga la menor inclinación posible, siendo menor de 15º. En caso contrario deberemos tener en cuenta el error añadido que se produce.


Conclusiones
Es imposible conocer la posición exacta del microbot a partir de los comandos ejecutados. Al ejecutar cualquier comando se producen errores aleatorios que no es posible eliminar a través de la programación.
A partir de aquí, debemos de indagar en el uso de balizas y en el comportamiento de los sensores de línea, luz y obstáculos incorporados en Moway.


3. DESARROLLO DE LAS CAPACIDADES DE MOWAY


Elección de la mejor fuente de luz
El sensor de luz APDS-9002 incorporado a Moway detecta mejor la parte del espectro electromagnético que va de los 400nm a los 650nm, situándose el pico de máxima sensibilidad en los 620nm que corresponde al color naranja.

Figura 5: Curva de sensibilidad en el espectro electromagnético


El foco luminoso ha de emitir luz en todas direcciones. Además la luz ambiente ha de ser muy tenue para no interferir en la aplicación.


Capacidad de detección de línea
Los dos sensores de línea KTIR0711S van conectados dos puertos analógicos de manera que es posible discernir entre distintos tonos de color.
Tras una serie de pruebas realizadas, se llega a la conclusión de que el sensor de línea detecta la luminancia (según modelo del color HSL) de la superficie sobre la que está Moway. Además se fija el número máximo de tonos de color perfectamente distinguibles por varios microbots en 6.


4. PROGRAMACIÓN GRÁFICA


MowayGUI (MowayGraphicUserInterface) es un compilador gráfico basado en diagramas de flujo con el que se puede programar aplicaciones en el robot Moway intuitivamente. Diferentes bloques representan los sensores y actuadores del robot que son conectados mediante flechas creando así el programa gráficamente. Automáticamente se genera el código en ensamblador sin necesitar ningún conocimiento de programación.
El programa se encuentra en fase Beta por lo que aún no tiene todas las funciones implementadas ni tampoco está disponible el manual completo. Se han encontrado algunas deficiencias o defectos como son: no permite operar variables sin “machacar” la variable o alguna de las variables, el número máximo de subrutinas es 7 (limitación dada por el microcontrolador) ó que el código en ensamblador contiene algunos errores.



Figura 6: Programa sencillo con MowayGUI


5. APLICACIONES


Movimiento rectilíneo con corrección de trayectoria


Dado que se producen errores aleatorios en cualquier movimiento son necesarias técnicas de posicionamiento absoluto a través de elementos externos para corregir el error producido. En esta aplicación se emplea una baliza luminosa para corregir la desviación producida al ejecutar una trayectoria rectilínea.



Figura 7: Baliza luminosa


El microbot realiza un movimiento rectilíneo de 1 metro. Al finalizar el recorrido, Moway se encuentra en un punto distinto al que debería estar en el caso de que el recorrido fuese ideal. Para corregir esa desviación, se sitúa una baliza luminosa al final del recorrido.


http://www.youtube.com/watch?v=G1100qjnsVo


 

Seguridad museo


Esta aplicación se basa en que cada cierto tiempo Moway se coloque perpendicularmente a la obra de arte que vigila, con la finalidad de comprobar que está en perfecto estado, en el caso de que se le acoplase algún tipo de cámara o dispositivo.
Moway se desplaza evitando la línea que delimita la sala y el pedestal sobre el que se sitúa la obra de arte, en este caso la Dama de Elche. Cada 10 segundos, busca el foco luminoso situado sobre el pedestal y se coloca perpendicularmente a él. Espera unos segundos y continuará su marcha.



Figura 8: Seguridad museo


Éste, es un ejercicio completo en el que hay que trabajar con todos los sensores integrados en Moway: de línea, de obstáculos y de luz.


http://www.youtube.com/watch?v=NlenWeVB2L0

 

 

 

Guía de museo


Un área importante en la que poder incorporar la ayuda de un microbot de forma satisfactoria es cultura y turismo. Existen muchas actividades que resultan monótonas y repetitivas a lo largo de una larga jornada de trabajo, como por ejemplo ir informando sobre obras de arte o edificios de interés cultural a un público que va llegando de forma discontinua.
A partir de esta idea, surge la aplicación que vamos a desarrollar en este apartado.
Moway se convierte en guía de un museo. En la sala hay 4 obras de arte. A tres de ellas llega mediante seguimiento de una serie de líneas dibujadas en el suelo. Para acercarse a la cuarta obra de arte, emplea el sensor de luz, ya que en el pedestal de dicha obra se ha colocado un foco de luz a modo de baliza luminosa.
Al llegar a cada obra, espera unos segundos. Tiempo suficiente para explicar brevemente las características más importantes, en caso de poder incorporarle un sintetizador de voz.



Figura 9: Guía de museo


http://www.youtube.com/watch?v=yQdBtNyuW7c

 

 

 


Separador de objetos


Moway recorre aleatoriamente la pista, sin salirse de ella. Al detectar un obstáculo, lo empuja hasta una u otra portería, en función del tipo de obstáculo de que se trate: si es luminoso hacia la zona más clara y si no lo es, hacia la zona más oscura.

Figura 10: Campo del separador de objetos


Esta aplicación es bastante completa. Se centra en el uso de los sensores de línea en modo analógico para distinguir la franja (tono de gris) en la que se encuentra y del sensor de luz, para distinguir qué tipo de objeto es el que ha detectado Moway: luminoso o no luminoso.
Los valores de luminancia de cada franja que compone el campo son: 255, 200, 155, 110 y 60 de la más clara a la más oscura y de 0 para la línea que rodea el campo.
El campo esta insertado en una caja, con una abertura en cada extremo a modo de porterías. En las esquinas se han colocado trozos de poliestireno expandido, para evitar que alguno de los objetos se quede en una esquina y sea más difícil dirigirlo a la portería correspondiente.



Figura 11: Objeto luminoso y no luminoso


http://www.youtube.com/watch?v=7oR2ueztNy4


 

 

Juego mesa de aire


Se ha denominado “Mesa de aire” a esta aplicación porque su principio de funcionamiento es idéntico a las mesas de aire recreativas.



Figura 12


El terreno de juego se compone de dos campos, cada uno con una portería. En cada portería se situará un microbot, cuyo cometido será impedir que le metan gol y llevar el balón lo más lejos posible de su portería para marcar gol en la portería contraria.


http://www.youtube.com/watch?v=qEARaU2A2ks

 

 


6. CONCLUSIONES


Moway es una herramienta sencilla, útil y de bajo coste que hace más ameno el aprendizaje de programación en C o ensamblador
Al estudiar la odometría del microbot, se hace notar la presencia de importantes errores no sistemáticos. Este hecho nos lleva a centrarnos más en la utilización de los sensores de línea, obstáculos y de luz incorporados en Moway y el empleo de balizas, marcas, terrenos de juego más complejos y obstáculos luminosos para desarrollar las aplicaciones.
Con la salida al mercado de la nueva tarjeta de expansión se hace posible la incorporación de sensores de obstáculos laterales, realizar cargas de la batería a distancia, dotar de luz a Moway, acoplar contadores, incorporar algún tipo de sistema de posicionamiento por infrarrojo o incluso una cámara VGA. Por lo que todavía no está todo visto en aplicaciones realizadas por Moway.

____________________________________________________

Última actualización: 24-sep-09