Septiembre 2009
_________________________________________
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. DESCRIPCIÓN DEL ROBOT MOWAY
Algunas de las habilidades más destacables del microbot son las siguientes:
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.
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.
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