Robots Móviles
Software y documentación para robots móviles

Baco: Microrobot y sistema de comunicaciones con PC vía radio

Participó en Rastreadores y Prueba libre en Alcabot 2001



Juan Maria de Castro Payo
Antonio Gil Olea
Alberto Sanchez Fernández
Marcos Lerena Montiel

GR.AETEL
Grupo de Robótica
Asociación de Electrónica de Telecomunicaciones
Universidad Politécnica de Madrid

1. Introducción

Baco es un sistema de comunicaciones vía radio entre un Microrobot, de quien toma el nombre el sistema, y un PC. ¿Cómo? Bueno trataremos de explicarlo algo más claramente.

Baco nace inicialmente como el diseño de un Micro-Robot autónomo rastreador diseñado por los tres componentes del Grupo de Robótica Aetel firmantes del proyecto.

La poca experiencia que los creadores tuvimos con la micro-robótica nos enseñó lo difícil que es, con los escasos medios de los que disponemos, realizar la depuración de los programas en ensamble que probábamos en nuestro rastreador. Así, nace la idea de realizar una base estacionaria a la cual nuestro robot móvil mandaría información vía radio. Esta información que nos proporciona la placa receptora de radio es enviada mediante el protocolo RS-232 a un puerto de comunicaciones del PC y tratada en diversos programas realizados con la ayuda de la herramienta Lab-Windows Cvi de National Instruments.

Baco terminó andando, aunque de forma peculiar, haciendo honor a su nombre, pero se movía y por tanto el módulo de radio dejó de cumplir su servicio.

Sin embargo, pronto descubrimos la potencialidad que un PC nos ofrece en comunicación con nuestro "robotito". Se pensaron aplicaciones inmediatas al sistema. Ya que tenemos un robot que nos manda información, utilicémosla de forma "útil".

No se tardó en buscar una nueva función. Aprovechando que Baco posee encoders y sensores, se le cargó una aplicación capaz de enviar los sensores o los encoders en tiempos prefijados y recibirlos en el ordenador, almacenarlos en memoria y posteriormente tratar su información. De esta manera se ha conseguido que se pueda dibujar en el Pc el camino recorrido por el robot o la forma que tenía la línea que siguió en un momento determinado.

Como prueba de las posibles aplicaciones de nuestro sistema, decidimos dibujar el camino que Baco va recorriendo, obteniendo así una aplicación de alguna manera aprovechable en mayor medida que la simple idea de un juguete que sigue una línea marcada en el suelo.

Pero además decidimos hacer justamente el camino contrario, esto es, que la estación del PC pueda comunicarse con el "cacharro" móvil. En este sentido desarrollamos una aplicación de telecomunicaciones en la cual el PC es el maestro y el robot un simple esclavo, totalmente ciego, es decir, que no atiende a ninguno de sus sensores, sino que el usuario puede "teledirigirlo" gracias al módulo de radio.

[ Foto de Baco al completo ]
Fig. 1: Foto de Baco al completo

Estas aplicaciones nos recuerdan, en un sentido mucho más modesto, a las aplicaciones desarrolladas para los robots de la NASA, que en definitiva son sistemas autónomos en todo momento comunicados con una estación base la cual en función de la información que estos la envían, pueden comandar dichos "robotitos" a través de sistemas de radio. El ejemplo más claro en el robot "Sojourner" que envió las fotografías de Marte a la tierra. Este Micro-robot, tenía un sistema de navegación autónomo, pero que en un momento encontró obstáculos demasiado "imprevisibles" para él.

Si la distancia no hubiera sido tan grande, podrían haber telecomandado al valiente explorador.

El resultado del sistema Baco ha sido, en mucha menor medida, adaptar esta idea a los robots rastreadores de los concursos universitarios, de los que ya teníamos una pequeña experiencia.

2. Plataforma mecánica usada

La plataforma mecánica está basada en 2 motores colocados en el centro de la estructura, llamada de tipo diferencial.

Los motores son 2 servos utilizados en aeromodelismo. Los cuales se han trucado para conseguir motores de giro libre, con una caja reductora. Estos motores se han elegido debido a su poco peso, poco consumo y precio, además de ser bastante buenos, pero lentos para un rastreador. Para conseguir mayor velocidad, se han elegido unas ruedas grandes y ligeras (CDs). También se le ha colocado unas ranuras para la implementación de un encoder en las ruedas. Como las ruedas son grandes, y finitas, se le ha colocado una goma blanda paracida a las ruedas de los fórmula 1, de forma que mejora mucho el agarre a pesar de la poca superficie de rozamiento.

La estructura del microbot está comuesta de una pieza de aluminio de 1.5 mm de grosor doblada de forma adecuada para formar un chásis donde se colocan los motores, la rueda loca (una bola), las placas, y las baterías.

[ Baco sin el chasis ]
Fig. 2: Baco sin el chasis

Por último, se le ha hecho un chásis de aluminio de grosor 0,5mm pintado en blanco, que va atornillado a la estructura, y se encarga de mejorar la estética, además de darle mayor rigidez al microbot. Este chasis tiene como ventajas, que aloja en el las lúces, la radio, y tapa los sensores para evitar interferencias. Además, el chasis dispone de un capó (para acceder a la placa base), y de un maletero (para acceder a las baterías).

Para la plataforma mecánica también se ha usado tornillería de multiples tipos, araldit, separadores, y velcro.

[ Baco con el capó y maletero abiertos ]
Fig. 3: Baco con el capó y maletero abiertos

3. Arquitectura hardware

Comenzaremos por la alimentación

Baco se abastece mediante baterías recargables de Níquel metal hidruro. Van alojadas en la parte anterior en dos módulos de cuatro baterías de 1.2V y 1.4Ah modelo AA.

Con estos dos módulos se consiguen dos tensiones: la primera, de 4*1.2=4.8V que alimenta a toda la electrónica (compatible con niveles TTL) y la segunda de 4*1.2 + 4*1.2 = 9.6 V que alimenta a los motores.

La forma de alimentar los motores no es directamente con los 9.6 V que nos aportan las baterías. Para poder modificar exteriormente la velocidad máxima que alcanza el m robot, Baco lleva incorporado un regulador lineal. Mediante un potenciómetro, se puede modificar la tensión que le llega a los motores entre niveles de 5.04 V y 7.6 V. Este último dato no es verídico, puesto que se ha comprobado que las baterías aportan una tensión superior a 1.2 V en casi todo momento; por tanto, el umbral superior de 7.6 V es alcanzado y sobrepasado, consiguiendo valores de 8.x V.

Dado que la tensión con la que alimentamos los motores se puede modificar en cualquier instante a nuestro menester, Baco lleva incorporado un voltímetro al que se accede mediante el menú de aplicación y teclado, presentando en pantalla dicha tensión.

Para terminar con la descripción de la etapa de motores, se debe hablar tanto del tipo de motores utilizados como de la forma misteriosa, mediante la cual, Baco consigue controlar la velocidad.

Los motores son servos (modelo Futaba) que han sido convenientemente trucados para conseguir un giro completo. Estos servos tienen la gran virtud de ser muy baratos y bastante buenos. Su consumo es pequeño, aunque no tanto los picos de corriente cuando se modulan.

Para controlar la velocidad mediante programa, se ha optado por una modulación de los motores por anchura de pulso (PWM). Con ello, se genera un tren de pulsos a una frecuencia fija de 200 Hz y lo que se varía es el tiempo que permanecen encendidos, o por el contrario, apagados los motores.

Esta modulación se obtiene con el empleo de un circuito integrado conocido como L298 que mediante dos puentes en H, consigue este propósito con tan sólo hacer uso y control de señales TTL de entrada.

Se ha mencionado que los datos del voltímetro se presentan en pantalla y la pregunta es, ¿qué pantalla?.

Pues bien, para decirle cositas a Baco e indicarle qué debe hacer, lleva incorporado un teclado y un display de cristal líquido. Con dichos periféricos uno puede ver en que estado se encuentra el m robot, programarle en sus diferentes modos e incluso sirvió en su momento a los programadores para depurar software.

[ Baco sin antena ]
Fig. 4: Baco sin antena

Hablemos de se...nsores

Baco está pensado para poder conectarle diferentes tipos de sensores, reprogramarle y hacer lo que nosotros le digamos.

En la actualidad, se le han acoplado cuatro sensores de infrarrojos en su parte inferior delantera. Con dichos sensores es capaz de detectar diferentes niveles de color del suelo en el que está apoyado y seguir un camino marcado. Por tanto, se puede decir que Baco es un seguidor de línea.

Además, Baco consta de cinco sensores más digitales que proporcionan una potente información adicional para nuestro control analógico-proporcional, convirtiendolo así en un control Adaptativo.

La información que aportan los sensores analógicos, es cuantificada y tratada convenientemente por el m controlador.

Con motivo de aprovechar más el margen dinámico del conversor analógico-digital, en la misma placa de sensores existen dos potenciómetros capaces de modificar tanto el nivel bajo como el alto de dicho conversor. El nivel alto puede variar entre 2.5 y 5 V y el nivel bajo entre 0 y 2.5V. Para poder ser modificados estos niveles de tensión los puentes J1 y J2 deben ser levantados.

A esta misma placa llega la información de los encoders. De nuevo, ¿qué encoders?.

Para realizar un control de posición, Baco tiene en sus ruedas incorporados unos encoders. La propia rueda de m robot, que aprovechando la coyuntura, diremos que son dos CDROM transparentes, tiene pintada ranuras en sus periferia. Estas ranuras permiten o obstruyen el paso de luz, proveniente de un fotoemisor, excitando, por lo menos, a un fototransistor. La información del fototransistor es comparada con una tensión de referencia dando lugar a 5V cuando no pasa la luz y a 0 V cuando la hay, convirtiendo por tanto el giro de la rueda en información compatible con TTL. Esta información es procesada por el microcontrolador.

Si echamos un vistazo a la placa de sensores veremos que existen otros dos potenciómetros de los que no hemos hablado. Estos potenciómetros sirven para regular la tensión de referencia de cada uno de los comparadores del encoder. Esta tensión se ajusta una vez en la vida, en teoría.

Sí, el palo largo que asoma, es una antena

Baco dispone de un módulo de radio tanto transmisor como receptor.

La comunicación se realiza en FM modo OOK a una frecuencia de 433 MHz.

Si nos paramos un momento a pensar, rápidamente nos viene la siguiente pregunta: ¿Para qué quiere un robot rastreador una emisora de radio?. La respuesta inmediata es: "pa, na".

En realidad, el módulo deriva de la necesidad de depurar y no disponer de depurador.

Al principio, cuando se empezó a programar Baco, éste se negaba a andar. Aprovechado que el micro posee un canal de comunicaciones asíncrono con protocolo RS232, tan sólo capando tres pines de salida y con veinte líneas de código se realizó una trazadora vía serie. Con este invento se llegó a depurar mucho código, pero cuando Baco se ponía a andar, el cable de comunicación presentaba grandes inconvenientes, surgió la idea de quitárselo, ¿cómo?, con un módulo de radio.

Teníamos por tanto una trazadora vía radio.

Hemos dejado para el postre el cerebro de la bestia

Toda la gestión la realiza un microcontralador de la familia de Motorola, modelo 68HC11E2. Sus características técnicas más destacables son 2K de memoria EEPROM, 256 bytes de memoria RAM, arquitectura RISC.

Hablemos un poco sobre los recursos de este micro y que Baco a consumido. Empezando por los convertidores, el 68hc11 consta de 8 canales ADC de 8bit de resolución de los cuales Baco utiliza cinco. Los cuatro más bajos (AD0...AD3) se usan para la cuantificación de los sensores, y el quito (AD7), para el voltímetro.

Por otro lado, para la captura de los encoders, se usan dos de los cuatro capturadores de pulsos que posee. Cuando le llega un nivel alto, se produce una interrupción asociada.

Se dedica todo un puerto (8 bits) para el teclado (2 bits) y para el display (6 bits). Se dedica otro puerto para la gestión de motores: control de dirección, PWM, parada rápida. Las líneas de tx y rx de transmisión asíncrona, son compartidas por el módulo de radio y por la carga de aplicaciones.

A nivel de programación interna, posee una interrupción de tiempo real, que se utiliza para muestrear de manera fija los encoders y sensores.

4. Manual de usuario.

El robot móvil dispone de una pantalla tipo LCD, con un teclado de tres botones, numerados de izquierda a derecha por 1, 2 y 3.

El sistema se arranca con un pequeño interruptor situado en la parte trasera, junto a la rueda izquierda. Una vez arrancado el sistema, aparece un menú como el siguiente:

  MENU: 1=RASTREA
  2=MENU2 3=SCI

RASTREA

Este es el menú de operación de rastreador propiamente dicho, siempre que queramos que el robot siga una línea acabaremos en este menú independientemente de los seleccionado con anterioridad. Debemos tener en cuenta que ciertos menús no nos permitirán llegar a este debido a su funcionalidad si no es "reseteando" el sistema. Esto se irá comentando convenientemente.

Este menú nos permite dos Opciones:

  "1=UMBRAL DERECHO
  2= UMBRAL IZQUIE"

El sistema de rastreo se basa en una captación analógica de los tonos que leen sus sensores, siempre que queramos que el robot siga el borde izquierdo de la línea, debemos pulsar este botón, si no debemos hacer lo propio con el botón 2.

Una vez pulsados cualquiera de estos botones, aparece "CAPTURANDO".

Ahora el usuario debe, sin levantar el robot del suelo, moverlo por la pista con el fin de que pueda capturar los niveles de luz que tiene tanto la línea como la pista. Esto nos permitirá tener un rastreo eficiente en diferentes pistas y no sólo en un determinado tipo de línea, etc.

[ Organigrama del menú ]
Fig. 5: Organigrama del menú

MENU2

Ahora el usuario encontrará el siguiente menú:

  1=INC 2=ESCUHA
  3=V.MOTOR

INC

Este menú permite aumentar por software la velocidad del robot, al pulsar 1 encontrarás el siguiente mensaje:

  1=INC EN 10
  VELOCIDAD=XX

Donde XX será un código hexadecimal que indica la consigna software del robot, cada vez que pulse 1, la velocidad aumentará al aumentar dicha consigna de 10 en 10.

Luego, permite volver al menú inicial pulsando un botón que no sea 1 y comenzar el programa de rastreo como ya se ha indicado.

ESCUCHA

Entraríamos en el modo de escucha, es decir en el modo "coche teledirigido". Mediante la aplicación software específica, se podrá comandar el robot, una vez entrado en este modo, el display se borrará, y sólo se podrá salir de este modo "reseteando" al robot.

V.MOTOR

V.MOTOR es un voltímetro que nos permite saber en todo momento la tensión con la que alimentamos al motor. Al entrar en este menú aparecerá:

  QUITA J1 Y J2
  V_MOTOR=XX

El primer mensaje nos recuerda que hemos de quitar el Jumper 1 y 2 para realizar esta medida y XX es un valor hexadecimal.y referenciada a 5.02V. De modo que hay que realizar la siguiente operación para conocer el voltaje de los motores: Dato en hexadecimal que presenta * 0.040 V + 5.02 V = Tensión a los motores (o ir a por un polímetro de los buenos). Así con una simple multiplicación obtenemos en todo momento el voltaje.

Tras este menú, pulsando cualquier botón que no sea el botón 1, que nos proporciona la medida deseada, volveremos al menú inicial pudiendo comenzar el rastreo.

SCI

Este menú habilita el envío de datos al PC. Una vez pulsado el botón rojo aparecerá el siguiente menú:

  1=SEN 2=ENC 3=TODO

Si se pulsa 1 el envío al PC será de los valores que en todo momento tienen los sensores infrarrojos mediante los cuales se guía el robot.

Si se pulsa 2, el envío será de los encoders que tiene en las ruedas.

Si se pulsa 3, el envío será de ambos, sensores y encoders.

Una vez pulsado este botón se volverá al programa principal y cuando comience el programa de rastreo, tal y como ya se ha explicado, comenzará el envío de información.

5. Software y estrategias de control en el microbot

Baco consta de un control Adaptativo, es decir, la información que recibimos de la realimentación de los sensores analógicos se trata de diferente forma en función de la información que nos proporcionana los sensores digitales.

Así pues, Baco es un sistema diferencial, cada motor tiene su propio control pudiendo, y de hecho muchas veces ocurre, que cada motor recibe mayor o menor tensión para tener una velocidad u otra de forma independiente. Así girar se convierte en algo tan sencillo como parar un motor y tener el otro a velocidad constante.

En términos de la Teoría Clásica del Control Continuo, podemos decir que el sistema no es una cadena cerrada, es decir se produce una realimentación negativa de la salida del motor, pero esta realimentación no procede de la salida de los motores, sino de lo que denominamos Baco, que es un sistema que transforma estas dos salidas en una posición. Así pues es necesaria una transformación software para dicho control.

El sistema de control es un proporcional, recibe la realimentación y la adapta a los niveles que necesitamos, se compara con una consigna interna del programa y este resultado se multiplica por una constante convirtiéndose en mayor o menor velocidad en cada uno de los motores. Estas velocidades se convierten en una posición que se transforma ahora sí en una señal de realimentación.

Por último podríamos señalar, que la manera de transmitir la velocidad a los motores de forma controlada es mediante PWM, que nos proporciona una manera muy controlada de alimentar el motor con mayor o menor tensión a través de los puentes en H.

[ Baco y sus sensores de línea ]
Fig. 6: Baco y sus sensores de línea

Este sistema de control de motores es muy extendido en la microbótica al permitir controlar motores analógicos mediante información digital.

El propio motor es el que se encarga de hallar la integral resultante de la anchura del pulso a un período constante como son 200 Hz.

Así a través del PWM realizamos la señal de acción que nuestro motor exige y que Baco nos pide para poder moverse.

6. Software y estrategias de control en el PC

La aplicación realizada en el PC, consta de 3 partes bien diferenciadas mas una de configuración del puerto. Se ha realizado usando la aplicación Lab Windows /CVI de National Instruments. Se ha seleccionado esta aplicación, debido a su facilidad de hacer entornos gráficos, unido a la potencia que te da C para trabajar a casi cualquier nivel.

La parte de configuración del puerto es una ventana en la que se puede elegir el puerto de comunicaciones para la estación de radio, y la velocidad a la que se realizará. Además cuenta de un temporizador usado para el muestreo del sistema y un botón para seleccionar que aplicación se quiere utilizar.

[ Panel de configuración ]
Fig. 7: Panel de configuración

Medida de sensores

La primera de las aplicaciones se trata de una ventana para adquirir datos enviados por Baco vía radio de los sensores de línea. La aplicación se encarga de dibujar gráficas de evolución de los sensores, así como de su correspondiente valor actual y pintar una estimación de cómo se encuentra la línea actualmente.

Esta aplicación también permite salvar los datos adquiridos en disco para un posterior análisis.

[ Gráficas de representaciones de información ]
Fig. 8: Gráficas de representaciones de información

Medida de encoders

Esta aplicación, aprovecha los encoders ópticos situados en las ruedas del microbot para por medio de la adquisición de datos realizada por radio, dibujar una estimación del recorrido realizado. Aquí se permite configurar el tamaño de las ruedas, número de pasos por rueda, y la anchura de los ejes. De esta forma, la aplicación puede servir para otro microbot que tenga encoders.

El trazado del recorrido se realiza después de la adquisición de datos, por problemas de velocidad con el PC utilizado.

También se permite cargar una adquisición hecha para dibujarla, a la vez que salvar esta.

El programa de dibujado, tiene un algoritmo para filtrar los datos obtenidos, ya que no se realiza control de las tramas enviadas por el microbot, debido a su poca capacidad de memoria de programa.

[ Panel de dibujo de recorrido ]
Fig. 9: Panel de dibujo de recorrido y adquisición de datos de los encoders

Telecar

Se trata de lo que el nombre dice. Una aplicación que el PC envía datos para teledirigir el microbot. Actualmente, solo sirve para pover ver un poco las posibilidades de movimiento de la estructura, pero está pensado para futuras ampliaciones en las que se intentará reproducir un recorrido ya hecho.

[ Panel de telecontrol del microbot ]
Fig. 8: Panel de telecontrol del microbot

7. Características físicas y eléctricas más relevantes

Es capaz de controlar el recorrido que hace, pudiendo realizar giros de 180 grados sin moverse del sitio.

Presenta un gran acabado en cuanto a la estructura, que le hace bartante bonito, además de ser práctica.

Como defecto tiene que es un poco pesado para rastreador, pueto que no está diseñado exclusivamente para eso, pero lo compensa con unos motores potentes, y unas gomas en las ruedas parecidas a las que llevan los fórmula1, además de un control complejo.

La velocidad máxima de los motores alrededor de 70cm/s, pero el por problemas de inercia, no se puede aprovechar toda la potencia de los motores, haciendo que el microbot ande mucho más despacio.

Tamaño
200x125x122 (sin radio)
Peso
1300 gr (rastrador)
1500 gr (prueba libre)
Velocidad máxima
70 cm/s (motores)
35 cm/s (controlado)
Baterías
8x1.2 NiMH 1400 mA/Hora
Consumo
500 mA
Sensores
9 IR (4 en analógicos y 5 en digital)
2 encoders
1 voltímetro
Control
Adaptativo y PC
Microcontrolador
MC68HC11E2
Radio de giro
125 mm parando una rueda
0 mm con una rueda hacia delante y otra hacia atrás
Interfaz de usuario
LCD + teclado
Otros
Módulo de radio para comunicación con PC

7. Conclusiones

Como conclusión podemos decir que se han conseguido los objetivos inicialmente planteados, la construcción de un Microrobot rastreador pero orientado a un propósito general.

8. Agradecimientos

No podemos concluir este documento sin agradecer muy sinceramente la colaboración de:

Referencias

Importante

Aunque este documento está en mi propio espacio web, todo el gran trabajo que aquí se presenta ha sido realizado por los autores, únicamente me he limitado a formatear un poco el texto para mantener la coherencia con otras páginas. Por ello, toda pregunta relativa a los detalles o felicitaciones deben ser cursadas a ellos. Si me lo envías a mí, se lo transmitiré gustoso.

Juan María, Antonio, Alberto, Marcos, gracias por enviarme el documento y permitirme que lo incluya en el web. ¡Buen trabajo!

Este documento también está disponible en las páginas del Grupo de Robótica de AETEL.

© Javier de Lope Asiaín 2000-2002
Última modificación
29-May-2001

FastCounter by bCentral