CONSTRUCCIÓN DE ROBOTS MOVILES A BAJO COSTO (PDF

CONSTRUCCIÓN DE ROBOTS MOVILES A BAJO
COSTO
Santiago Margni – Germán López – Gonzalo Tejera – Carlos Martinez1
1
Instituto de Computación, Facultad de Ingeniería, Universidad de la República,
J. Herrera y Reissig 565, Montevideo, Uruguay
[email protected]
[email protected]
[email protected]
[email protected]
Resumen. El objetivo primario es construir un robot de bajo costo que sea capaz de moverse en forma autónoma, recibiendo ordenes desde un PC, de modo
que todo el procesamiento referente al comportamiento se realice remoto. El
proyecto incluye la investigación, el modelado, el diseño y construcción de un
robot prototipo que pueda evolucionar en un jugador de fútbol de robots según
las reglamentaciones de la FIRA. Los principios seguidos por el diseño son: la
modularidad, la extensibilidad y la implementación a través de una electrónica
simple. El robot se compone de un módulo de comunicaciones que recibe mensajes provenientes de un sistema de control y los reenvía por un bus i2C al módulo destino. Los módulos son comandados por microcontroladores de la empresa Microchip. El sistema de control está compuesto por un PC y un circuito
emisor de radio frecuencia, estos se comunican vía RS-232. Debido al diseño
extensible y modular alcanzado, es posible incorporar nuevos módulos (ejemplo: brazo robot) con poco esfuerzo más que la propia construcción del mismo
y los agregados al software del PC.
Palabras clave: robot-móvil, bajo-costo, radio-frecuencia, i2C y USART.
1 Introducción
Este manuscrito intenta proveer un modelo de robot y una implementación de un
prototipo móvil de bajo costo con la posibilidad de evolucionar en un jugador de
fútbol de la FIRA [1]. El costo total de la implementación construida para validar el
modelo fue inferior a U$S 100, sin tomar en cuenta el precio del PC.
En el manuscrito se propone un modelo de robot genérico, orientado a múltiples
aplicaciones junto con la construcción de un robot móvil con procesamiento remoto.
La idea de este tipo de distribución de procesamiento está inspirada por el cuadro de
fútbol, es sostenida por la mayor capacidad de procesamiento de un PC y es aplicable
a la mayoría de las situaciones en que varios robots colaboran entre sí.
Todas las ideas plasmadas en este manuscrito en cuanto al modelado y diseño del
sistema se basan en un enfoque informático. Esto se debe a que el mismo resume el
trabajo final de un Proyecto de Grado de la Carrera Ingeniería en Computación realizado por dos estudiantes junto a sus tutores en un año de proyecto.
1.1 Trabajos Relacionados
El trabajo se enmarca en un proyecto de mayor porte compuesto por este y otros dos
trabajos referentes a Visión (análisis de imágenes) [12] y comportamiento (simulación de fútbol de robots) [13], con el objetivo general de crear un cuadro de fútbol
para competir en un campeonato de FIRA.
1.2 Outline
En el capítulo 2, se plantean los objetivos generales del proyecto, los principios de
diseño seguidos y el modelo propuesto.
El capítulo 3, refiere a la implementación del sistema, los módulos que lo componen, las formas de comunicación entre módulos, los lenguajes de programación y una
reseña sobre la extensibilidad de la implementación.
En el capítulo 4 se describen el origen y costo de los materiales utilizados en la
construcción del sistema.
En el capítulo 5 se presentan las conclusiones del manuscrito y las principales líneas de desarrollo futuro.
2 Objetivos y modelado.
2.1 Objetivos.
El principal objetivo del proyecto es la investigación, el diseño de un modelo de robot
móvil y la construcción de un prototipo que pueda evolucionar en un jugador de fútbol de robots según las reglamentaciones de la FIRA.
Las características del robot deberán ser :
Un jugador de fútbol tiene como límites de tamaño un cubo de 7.5 cm de lado
como máximo. Un objetivo de construcción del prototipo es mantener el orden de
magnitud de estas medidas.
• El prototipo debe ser construido con la mayor cantidad de elementos o componentes reciclados (obtenidos de maquinas en desuso o en funcionando pero obsoletas debido a su antigüedad como impresoras, lectoras, discos duros, tarjetas,
etc.), esto es fundamental para bajar los costos.
• El robot debe procesar el comportamiento en forma remota, tiene que existir un
procesador de comportamiento (un programa en un PC), que envíe ordenes al robot de modo que éste actúe en consecuencia. Por lo tanto debe haber una forma
de comunicación inalámbrica entre el robot y el procesador de comportamiento.
• Se debe construir una biblioteca que corra en un PC que sea capaz de enviar
ordenes al robot.
• Para trasladarse el robot debe tener 2 ruedas, con un motor por cada rueda y una
tercera rueda de apoyo para la sustentación.
• La comunicación entre el procesador de comportamiento y el robot debe ser
bidireccional, el robot debe responder cuando recibe ordenes.
Estos objetivos, así como las características del sistema se fundamentan tanto en
obtener las bases para las funcionalidades que un jugador de fútbol requiere, como
también razones de corte más académico.
•
2.2 Principios de diseño.
El diseño tiene una fuerte influencia informática, que es notoria en lo modular de
la arquitectura y en el corrimiento hacia el software de los problemas en los casos en
que sea posible.
Los principios de diseño más importantes en la definición del sistema fueron :
• Composición de módulos con interfaces definidas.
• Módulos de bajo acoplamiento.
• Módulos con alta cohesión.
• Extensibilidad y facilidad para cambiar módulos.
• Electrónica simple aunque conlleve mayor complejidad en el software.
• Reutilización de materiales buscando minimizar costos.
• Perseguir el objetivo práctico de hacer un jugador de fútbol de robots sin perder
de vista el objetivo académico de diseñar un modelo de robot para aplicaciones
generales.
2.3 Modelo.
El modelo de robot se diseño respetando los objetivos planteados, de modo de permitir comunicación con un PC para intercambiar datos u obedecerlo, permitir que el
robot se desplace y realice tareas dando la responsabilidad de estas a un módulo o
varios que colaboren.
La figura 1 muestra el modelo compuesto por un subsistema Control de Comportamiento y un subsistema Unidad, esta es la separación fundamental del sistema,
aunque se mantiene el acoplamiento por la forma de comunicación que ambos deben
compartir, la comunicación inalámbrica, representada por una entidad
INALAMBRICA estereotipada como <<comunicación>>.
En el subsistema Control de Comportamiento se encuentran dos nodos estereotipados como <<procesador>>. A nivel del modelo no se exigen requerimientos particulares para estos nodos, pero se define que uno es un PC y el otro un microcontrolador.
Control de
Comportamiento
Unidad
<<procesador>>
microcontrolador
<<procesador>>
PC
modulo
COMM
moduloPC
<<comunicacion>>
INALAMBRICA
<<comunicacion>>
CABLE
<<procesador>>
microcontrolador
moduloER
<<procesador>>
microcontrolador
modulo
MOTOR
<<comunicacion>>
BUS
<<procesador>>
microcontrolador
modulo
AGREGADO
Figura 1. Modelo de robot.
En el nodo PC se hace el deploy del componente moduloPC, biblioteca que permitirá la interacción del sistema con un programa externo de gestión de comportamiento, procesamiento de cálculos complejos u otros. En el nodo microcontrolador se hace
el deploy del componente moduloER. Ambos componentes utilizan la entidad
CABLE estereotipada como <<comunicación>> para dialogar entre sí.
En el subsistema Unidad se encuentran tres nodos <<procesador>>. En el primer
nodo se hace el deploy del componente moduloCOMM, en el segundo el del moduloMOTOR y en el tercero el moduloAGREGADO que ejemplifica la situación de un
nuevo modulo marcando la extensibilidad a nivel de modelo. Los componentes de los
tres nodos utilizan la entidad BUS estereotipada como <<comunicación>> como
forma de comunicación entre ellos.
Tanto el moduloER del subsistema Control de Comportamiento como el moduloCOMM del subsistema Unidad utilizan la entidad INALAMBRICA, de esto se desprende la dependencia entre ambos subsistemas e INALAMBRICA.
Se marca la diferencia entre las formas de comunicación dado que el modelo propone que la comunicación entre el moduloPC y el moduloER será utilizando la forma
de comunicación CABLE, y que los módulos moduloCOMM, moduloMOTOR y
moduloAGREGADO se comunican utilizando la forma de comunicación BUS.
El modelo no impone exigencias respecto de las formas de comunicación, de
hecho solo hace propuestas en cuanto a los nombres con los que llama a las entidades
estereotipadas <<comunicación>>, estas entidades podrían representar distintas formas de comunicación y el modelo sigue vigente; más aún la forma de comunicación
INALÁMBRICA podría ser un cable, la forma CABLE podría ser por infrarrojo y el
modelo no se vería afectado.
Tampoco se hacen exigencias respecto de donde estará la inteligencia del sistema,
sin embargo integrar la posibilidad de aparición de un PC condiciona a tener un procesador más potente que el resto y marca una tendencia a proponer que la inteligencia
se gestione en este procesador.
3 Implementación.
Basándose en el modelo presentado se propone una implementación en la que una
Unidad (o robot) ejecuta el comportamiento indicado por el Control de Comportamiento a través de la recepción de comandos.
Figura 2. Implementación del modelo.
Las Unidades son esclavas del Control y tienen un mínimo de inteligencia que les
permite analizar los mensajes que reciben, responderlos, acelerar los motores, etc. Por
lo tanto todo el comportamiento de la Unidad, y lo que debe hacer es responsabilidad
del programa que interactúa con el Control de Comportamiento.
La frontera del sistema es la biblioteca que permite que un programa externo ordene que hacer a un robot.
A continuación se presenta la descripción de cada módulo que integra el sistema.
3.1 El módulo PC.
El módulo PC es en su totalidad software, esta compuesto de una biblioteca (.dll
generada en Visual C++) que deberá ser linkeada por un programa externo para comandar el robot. La biblioteca es capaz de recibir comandos de un programa externo,
los cuales traduce en mensajes, y los envía a la Unidad correspondiente a través de un
puerto SERIE. Una vez que la Unidad responde, procesará el mensaje recibido y lo
entregará al programa cliente de la biblioteca.
3.2 El módulo ER.
El módulo ER se implementa en un circuito que se conecta con un PC a través de un
cable al puerto SERIE y con las Unidades a través de mensajes por radio frecuencia.
Este módulo es comandado por un microcontrolador PIC 16F877A [5] y tiene como
objetivo ser el puente entre los dos medios, el cable y el aire.
Figura 3 Diseño del módulo ER.
Un microcontrolador es un circuito integrado que contiene todos los componentes
de un computador; en su memoria sólo reside un programa destinado a gobernar una
aplicación determinada; sus líneas de entrada / salida soportan la conexión de sensores y actuadores del dispositivo a controlar. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamaño, suele ir incorporado
en el propio dispositivo al que gobierna.
El microcontrolador recibe los comandos del módulo PC a través de su puerto
USART, siendo necesario convertir los valores de voltaje del estándar RS-232 a TTL
por medio del circuito ICL 232 [10].
Una vez recibido un mensaje en un paquete de 3 bytes, se entrega de a 1 byte (a
través de 8 líneas de datos) al circuito codificador HT640 [6] para ser convertido en
una transmisión serial, la cual es entregada al transmisor de radio frecuencia TWS434 [9] quien por medio de su antena envía cada byte hasta la Unidad.
Los mensajes de respuesta son recibidos por el receptor de radio frecuencia RWS434 [9], quien lo entrega para su decodificación al circuito HT648L [7]. Una vez
decodificado un byte del paquete, se entrega (a través de 8 líneas de datos) al
microcontrolador para que una vez completado el paquete, éste verifique su
correctitud (CRC [2]) y lo envíe al módulo PC.
Por último cada módulo incluye tres leds, representados como un semáforo en el
esquema, para diagnostico, prueba y depuración del circuito.
3.3 El módulo COMM.
El módulo COMM se implementa como el circuito principal de la Unidad; es comandado por un microcontrolador PIC 16F877A [5], cuya labor consiste en hacer de
interface entre el emisor-receptor por radio frecuencia y los diferentes módulos de la
Unidad. Cuando el módulo COMM recibe un mensaje del módulo ER, el microcontrolador se encarga de chequear su correctitud y determinar si la Unidad destinataria
del mensaje es la del propio módulo.
Otra de las tareas principales del módulo es cumplir el rol de MASTER [5] del bus
i2C por el que se comunica con el resto de los módulos de la Unidad.
Figura 4 Diseño del módulo COMM.
Una vez procesado el mensaje y en caso de que el módulo COMM no sea el destinatario del mismo, se encarga de colocar dicho mensaje en el bus y solicitar respuesta, de ser necesario, al módulo correspondiente. Todas las respuestas de la Unidad
dirigidas al módulo PC, son armadas (calculo del código de redundancia cíclica incluido) por el propio módulo COMM.
Siendo este módulo parcialmente un espejo del módulo ER, utiliza casi los mismos
componentes.
3.4 El módulo MOTOR.
El módulo motor se implementa como el circuito al que están conectados los motores.
Para esta implementación se utilizaron 2 motores de paso extraídos de impresoras
matriz de punto en desuso. El circuito está comandado por un microcontrolador PIC
16F876A [5], quien está encargado de mantener los motores en movimiento, recibir
ordenes desde el bus i2C del que es esclavo y responder cuando le es solicitado.
Con el fin de mejorar la velocidad y torque de los motores de paso, se elevó el voltaje al valor de 10 V. Para esta tarea fueron necesarios dos arrays de transistores Darlingto implementados en los circuitos ULN2003A [8]. A cada uno de estos, se conectan 4 líneas provenientes del microcontrolador, quienes transportan las señales a enviar al motor de paso correspondiente.
Figura 5 Diseño del módulo MOTOR.
3.5 El módulo SENSOR.
El módulo sensor se implementa como el circuito al que están conectados los sensores. Para esta implementación se utilizan 5 sensores de cierre extraídos de impresoras
matriz de punto en desuso. El circuito es comandado por un microcontrolador PIC
16F876A [5], encargado de mantener y administrar la información recabada por los
sensores de la Unidad, recibe ordenes desde el bus i2C del que es esclavo y responde
a peticiones de información referente a los valores de sus sensores.
Figura 6 Diseño del módulo SENSOR.
3.6 Formas de comunicación.
Para la implementación de las formas de comunicación se utilizaron las siguientes
soluciones.
CABLE.
Se utilizó comunicación serial vía RS-232, por intermedio del módulo UART integrado al PC y la funcionalidad USART integrada a los microcontroladores PIC
16F877A. Se utilizan mensajes de 3 bytes evitando la saturación del microcontrolador
a través de un protocolo RTS/CTS para sincronización.
INALÁMBRICA.
Se utilizó comunicación inalámbrica vía radio frecuencia, por intermedio de codificadores, emisores de RF, receptores de RF y decodificadores. La frecuencia utilizada es de 315 MHz y la velocidad de transición limitada por el par codificadordecodificador es de 192 bps aproximadamente.
BUS.
Se utilizó el bus i2C debido a las funcionalidades incorporadas por los microcontroladores utilizados, así como su perfecta adaptación al modelo propuesto respetando
la extensibilidad del mismo. La velocidad de transición del BUS es de 1200 bps.
3.7 La programación.
En cuanto a la programación de los microcontroladores, inicialmente se utilizó como
lenguaje el Assembler de Microchip MPASM; luego en la búsqueda de una alternati-
va con mayor flexibilidad y facilidad de uso, se encontró el Hi Tech C Compiler; un
compilador C para PIC que salvo por algunos detalles cumple con la norma ANSI C.
El compilador C incluye bibliotecas que son de gran utilidad, aunque en la mayoría
de los casos solo se utilizaron para algunas pruebas. Se construyeron bibliotecas propias que facilitaron por ejemplo la integración de controles de tiempos en rutinas
bloqueantes.
La empresa Hi Tech proporciona una versión limitada del compilador Hi Tech
PICC compiler, la versión PICC Lite, estas limitaciones restringen su uso a 2 bancos
de memoria, menos de 2K instrucciones, restringiendo el largo del código y la cantidad de variables que se pueden usar. A pesar de las limitaciones se utilizó el PICC
Lite para mantener el bajo costo del proyecto.
El Assembler utilizado, el MPASM, es de libre distribución y es provisto por la
empresa Microchip (constructora de los microcontroladores PIC) quién también ofrece gratis el ambiente de desarrollo MPLab, al cual se integran los diferentes lenguajes
de programación para sus microcontroladores.
3.8 Extensibilidad.
El modelo es inherentemente extensible, permite agregar módulos sin cambiar nada de lo construido en la implementación actual.
Para agregar una funcionalidad que no puede desarrollarse con los módulos actuales, es necesario agregar un módulo. Esta tarea consiste en construir el nuevo modulo,
cargar los programas adecuados, asignar una dirección i2C libre, y conectarlo al bus
i2C. Dependiendo del consumo del nuevo módulo se podrá usar la fuente actual de la
Unidad, redimensionarla o agregar una nueva (siendo esto independiente del modelo)
Por otra parte es necesario agregar la programación y conjunto de mensajes en el
software de comportamiento que usa al módulo PC, siendo de destacar que no es
necesario reprogramar ninguno de los módulos existentes.
4
Costos.
En la búsqueda de minimizar los costos de la implementación del modelo, fue necesario reciclar partes y componentes de equipamiento en mal estado o fuera de uso,
siendo las impresoras matriz de punto, las fuentes de PC, las lectoras de CD-ROM,
tarjetas de red y las disqueteras las mayores proveedoras de materiales. De las partes
obtenidas se puede destacar, motores de paso, reguladores de voltaje, cristales, resistencias, condensadores, diodos, pulsadores, zócalos, disipadores de calor, sensores de
tacto, sensores infrarrojos y conectores varios.
Referente a los microcontroladores, todos los encontrados fueron del tipo ROM, lo
cual imposibilitaba su reutilización. Por esta razón, se resolvió investigar la
disponibilidad de microcontroladores tanto en el mercado uruguayo como en el
mundo a través de Internet. De esta forma, se llegó a la empresa Microchip, la cual
ofrece un programa de muestras gratis en cantidades reducidas, debiéndose abonar
únicamente el costo del envío (Contando con un servicio de mensajería dentro de
EE.UU., el valor del envío hasta Montevideo asciende a U$S 5)
Respecto a la comunicación inalámbrica, se estudió la posibilidad de utilizar componentes infrarrojos ya que se encontraban con facilidad. Las pruebas realizadas
fueron poco satisfactorias, inclinando el estudio a la transmisión por radio frecuencia.
Dicho estudio abarcó los teléfonos celulares, teléfonos inalámbricos, controles remotos de alarmas de automóviles y porteros eléctricos. La complejidad de los componentes de transmisión de estos aparatos, derivó en la búsqueda de componentes que
simplificaran el problema a un costo accesible. (El valor de la pareja emisor – receptor RF [9] utilizado asciende a U$S 10, y la pareja codificador [6] - decodificador [7]
asciende a U$S 6)
El resto de los costos corresponden a insumos (estaño, cinta de desoldar, etc.) y
componentes simples como LEDs, llaves On/Off, planchas universales de pertinax,
etc.
5
Conclusiones y trabajos futuros.
5.1 Conclusiones.
La implementación lograda validó el modelo propuesto. Si bien la construcción de
robots de bajo costo es viable y utilizando esta premisa se lograron los objetivos propuestos, la comparación de performance del prototipo implementado con robots construidos con tecnologías de punta deja al prototipo en clara desventaja, lo cual estaba
dentro de las previsiones. De todas formas cabe destacar que permite una firme introducción al estudio del problema, abarcando un amplio espectro de temas en lo que
concierne a la Ingeniería en Computación y la Ingeniería Electrónica.
Por otro lado la experiencia que brinda el desarmar equipamiento fuera de uso es
de mucha utilidad a la hora de interiorizarse en componentes electrónicos como en
técnicas de montaje y soldadura.
5.2 Trabajos Futuros.
Se destacan dos líneas de investigación que surgen como posibles trabajos futuros o
evoluciones del proyecto:
• Mejorar la implementación a través de la construcción de módulos más performantes manteniendo el modelo. Logrando de esta forma conformar un equipo
competitivo de jugadores de fútbol de FIRA integrando además los trabajos relacionados.
• Aprovechar el modelo y la implementación actual para resolver nuevas aplicaciones en las cuales puedan ser utilizadas tecnologías como agentes inteligentes,
redes neuronales y aprendizaje automático.
Referencias
1. http://www.fira.net Federation of International Robot-soccer Association. (Última visita
:05/06/04)
2. Tanenbaum A., Redes de Computadoras, Prentice Hall (1997)
3. Tanenbaum A., Sistemas Operativos Distribuidos, Prentice Hall (1996)
4. Usategui J., Romero S., Angulo I. Microbótica, Paraninfo (2000)
5. Microchip PIC16F87XA Data Sheet 28/40-pin Enhanced FLASH Microcontrollers, Microchip Technology Inc (2001)
6. HOLTEC 318 Series of Encoders Data Sheet, Holtek Semiconductor Inc (1999)
7. HOLTEC 318 Series of Decoders Data Sheet, Holtek Semiconductor Inc (1997)
8. ULN2001A, ULN2002A, ULN2003A, ULN2004A, ULQ2003A, ULQ2004A HIGHVOLTAGE HIGH-CURRENT DARLINGTON TRANSISTOR ARRAY, Texas Instruments Incorporated (2003)
9. TWS-434 TRANSMITTER RWS-434 RECEIVER, Reynolds Electronics
10. ICL232 +5V Powered, Dual RS-232 Transmitter/Receiver, Intersil Corporation (1997)
11. http://www.fing.edu.uy/~pgconrob, Proyecto de Grado Construcción de Robots de Bajo
Costo, Facultad de Ingeniería. Universidad de la República Oriental de Uruguay (2004)
12. http://www.fing.edu.uy/~pgvisrob, Proyecto de Grado Visión de Robots, Facultad de Ingeniería. Universidad de la República Oriental de Uruguay (2004)
13. http://www.fing.edu.uy/~pgfutrob, Proyecto de Grado Fútbol de Robots, Facultad de Ingeniería. Universidad de la República Oriental de Uruguay (2004).