ROBOT MÓVIL AUTÓNOMO

- Caso de estudio de RTF y rtfCANopen-

 

Aitor Olarra (aolarra@tekniker.es)

Javier Portillo (jtppobej@bi.ehu.es)

Marga Marcos

Itziar Cabanes

ÍNDICE

RTF y rtfCANopen

Control basado en conductas

Referencias

Videos

Documentación completa

RTF y rtfCANopen

Una de las líneas de trabajo del GCIS (Grupo de Control e Integración de Sistemas) es la de Sistemas de Control Distribuidos en Tiempo Real. El desarrollo e implementación de este tipo de sistemas implica relacionar áreas de conocimiento muy diversas (Teoría de Control, Sistemas de Tiempo Real, Redes de comunicación,...). Por esta razón, se plantea la construcción de un entorno que permita aunar los esfuerzos de diferentes herramientas especializadas en cada una de las áreas de conocimiento involucradas. A este entorno se le denomina Real Time Framework (RTF) e integra herramientas de simulación para control continuo, comportamiento dirigido a eventos discretos y generación automática de código en el entorno Matlab (Mathworks). El primer prototipo de RTF (RTF v 1.0) permite especificar la arquitectura de nodos presentes en una red CAN, la tareas concurrentes que se ejecutan en cada nodo y los mensajes que intercambian, simular su comportamiento temporal y generar el código de la aplicación (Marcos et al 2000, Portillo y Marcos 2001).

El comportamiento temporal determinista del bus CAN le hace muy apropiado para sistemas distribuidos con requisitos temporales. Además, es posible calcular el comportamiento temporal de peor caso de todos los mensajes de una red CAN (Tindell y Burns 1994). Este estudio ha sido utilizado por GCIS como fundamento teórico de la herramienta BERTA (Basic Environment for Real Time Analysis), que permite calcular el comportamiento temporal de peor caso del conjunto de tareas y mensajes que forman un sistema distribuido (Marcos y Portillo 2000). Dicha herramienta realiza el estudio suponiendo que la aplicación genera y recibe tramas de nivel 2. 

En esta línea de trabajo, se planteó el objetivo de introducir un protocolo CAN de alto nivel cuyo comportamiento temporal fuera determinista. Esta característica es difícil de llevar a cabo con implementaciones comerciales ya que, por lo general, únicamente se dispone de código objeto. Por otro lado, los tiempos de ejecución de peor caso (WCET) deben ser calculados con precisión y esto cuando menos resulta dificultoso si no se tiene un completo acceso a la arquitectura de comunicaciones. Por estas razones se diseñaron los nodos y el software rtfCANopen.

En este contexto surge la idea del robot móvil autónomo. Se concibe como una plataforma que sirviera como banco de pruebas a la red rtfCANopen y al entorno RTF. Al realizar el diseño, simulación y generación de código para el control del robot desde RTF e implementar dicho control de manera distribuida a través de nodos rtfCANopen, se pretende perfeccionar el conjunto de herramientas. El robot móvil autónomo constituye una plataforma ideal porque consiste en un sistema controlado de manera distribuida, con requisitos de tiempo real y con código empotrado. De manera que sobre este prototipo se diseñarán casos de estudio apropiados para seguir avanzando en la mejora de las herramientas que constituyen el entorno RTF. 

Control basado en conductas

El sistema de control del robot está inspirado en el trabajo del profesor Rodney Brooks (Brooks 1989), concretamente en el sistema de control del robot Genghis.
Se trata de construir un sistema de control de modo que se puedan incorporar nuevas funcionalidades sin tener que modificar las que ya existen. Las diferentes funcionalidades serán las conductas del robot que buscan diferentes objetivos.

Las conductas implementadas en el control del robot son las siguientes:

evitar obstáculos video
Debe impedir que el robot colisione con los objetos de su entorno. Obtiene información del entorno por medio de 4 sonar ultrasónicos y 8 detectores infrarrojos repartidos por su perímetro.
exploración aleatoria
Esta conducta mueve el robot cuando el resto de las conductas tiene un nivel de activación bajo. Genera una consigna de movimiento aleatoria.
seguir línea
video
Se trata de la conducta que permite al robot seguir una línea marcada en el suelo. Para poder hacerlo utiliza un par de sensores infrarrojos colocados en el extremo de un vástago que es movido por medio de un servo de RC (dispositivo cuya posición de salida es función de la anchura de los pulsos de una entrada de control).
control remoto
video
Esta conducta permite dirigir a voluntad los movimientos del robot desde un interfaz remoto.

Cada conducta genera en todo momento una consigna de movimiento (de hecho una velocidad lineal V y otra angular w) y un nivel de activación (AL, Activation Level) que indica el grado de actividad de la conducta. El nivel de activación de una conducta (AL) será mayor cuanto más adecuada sea la situación actual para que el movimiento del robot sea gobernado por dicha conducta. Por ejemplo, la conducta 'evitar obstáculos' generará un nivel de activación alto cuando detecte un objeto muy cercano frente al robot.

Se utiliza un elemento ponderador para generar la consigna en velocidad (par V, w) y el nivel de activación (AL) del robot en base a las consignas y niveles de activación generados por otras conductas. Este ponderador está diseñado de tal forma que permite ir incorporando nuevas conductas sin necesidad de modificar las ya existentes. El ponderador toma dos consignas de velocidad (V1, V2 y w1, w2) y los niveles de activación asociados (AL1 y AL2) y genera una consigna de velocidad ponderada de salida (Vout, wout) y un nivel de activación de salida (ALout): 

ALout = max (AL1, AL2)

Es importante estudiar cuidadosamente los niveles de activación que cada una de las conductas presenta en las diferentes situaciones. Por ejemplo, la conducta 'evitar obstáculos' debe poder establecer un nivel de activación superior a las conductas 'exploración aleatoria' y 'seguir línea' en caso necesario.

La siguiente figura muestra el modelo de tareas de RTF que implementa el sistema de control.


En la parte superior se pueden observar los enlaces con los sensores y actuadores que utiliza el robot. A estos les siguen cuatro tareas que implementan las diferentes conductas. Las consignas de velocidad y niveles de activación de cada conducta llegan a los ponderadores. La consigna de movimiento que se obtiene del último ponderador se alimenta a los motores del robot como se ve en la parte inferior derecha del diagrama.
Si se quisiera utilizar una nueva conducta, bastaría con añadirla y colocar un nuevo ponderador en la parte izquierda del diagrama.

Más información acerca del robot y del sistema de control aquí.

REFERENCIAS

          Brooks R. A. (1989). A Robot that Walks; Emergent Behaviors from a Carefully Evolved Network. MIT Press.

Marcos, M. M., Portillo, J. (2000). Basic Environment for Real Time Systems Analysis using CAN bus. Proceeding of the Workshop on Real Time Programming. Palma de Mallorca (Spain), May 2000.
Marcos, M. M., Portillo, J., Bass J.M. (2000). Matlab-based real-time framework for distributed control systems. Proceeding of the Workshop on Algorithms and Architectures for Real-Time Control. Palma de Mallorca (Spain), May 2000.

Portillo, J., Marcos, M. (2001). Contributions to the design of real time distributed control systems. Proceedings of the European Control Conference, September, 2001. Porto, Portugal.

Tindell, K. and A. Burns (1994). Guaranteeing Message Latencies on Controller Area Network (CAN). Proceedings 1st International CAN Conference, Mainz (Germany), September 1994.

VÍDEOS

Se precisa la instalación de los  codecs de DIVX para poder ver los videos. También se pueden obtener en www.divx.com

Control remoto


Este video muestra el robot controlado por control remoto. Cuando el control remoto se activa, el nivel de activación de la conducta 'control remoto' es mayor que el nivel de activación del resto de conductas de modo que esta conducta toma el control del robot. El control remoto permite mover el robot adelante, atrás, girar a la derecha y girar a la izquierda. El movimiento del vástago NO está controlado por el control remoto sino por la conducta seguir línea, por esta razón no para de rastrear en busca de línea..


Descargar aquí

Seguimiento de línea


El robot se lleva por control remoto hasta el comienzo de la línea y se desactiva el control remoto. Entonces la conducta 'seguir línea' detecta la línea del suelo y toma el control del robot. Se puede ver como el vástago zigzagea en busca de la línea y el robot avanza en la dirección que indica el vástago.


Descargar aquí

Detección de obstáculos


El robot comienza a seguir la línea como en el video anterior. A medio camino la conducta 'evitar obstáculos'  detecta un objeto frente al robot (una silla) y aumenta su nivel de activación por encima del de la conducta 'seguir línea', de modo que toma el control del robot y lo detiene. Cuando el obstáculo desaparece, la conducta 'seguir línea' vuelve a tomar el control.


Descargar aquí

DOCUMENTACIÓN DEL ROBOT

La documentación más extensa acerca del hardware del robot y del sistema de control se puede obtener aquí.