Vous êtes sur la page 1sur 11

Una Arquitectura para el Control de Robots Mviles

mediante Delegacin de Cdigo y Sistemas Multiagente


1



J.L. Posadas, J.E. Sim, J.L. Poza, P. Prez, G. Benet, F. Blanes


Departamento de Informtica de Sistemas y Computadores (D.I.S.C.A.)
Universidad Politcnica de Valencia
{ jposadas, jsimo, jopolu, pperez, gbenet, fblanes }@disca.upv.es



Resumen: En este artculo se propone una arquitectura para el control de robots mviles
inteligentes basada en el paradigma Hbrido reactivo/deliberativo. Dicha arquitectura es
multi-nivel y distribuida, sus principales componentes son agentes software mviles que
interactan con el medio a travs de un sistema de comunicaciones basado en una estructura
de objetos tipo pizarra distribuida. Estos agentes pueden ejecutarse de forma local en el
propio robot o de forma remota en computadores ajenos basndose en los requerimientos
temporales de los mismos.

Palabras clave: Robots mviles, Sistemas de control distribuido, Tecnologa orientada a
objetos, Sistemas multiagente, Sistemas de tiempo real.



1. Introduccin

Los robots mviles son un caso particular de los sistemas distribuidos de tiempo real, donde han evolucionado
diferentes tipos de arquitecturas. Esto se ha debido al aumento en la complejidad hardware de los sensores y
actuadores, as como a la interaccin entre manifestaciones inteligentes y restricciones de tiempo real.
Actualmente, las arquitecturas de control Hbridas son la solucin ms extendida en la implementacin de robots.
Esto es debido a varias razones [5]. Primero, el uso de tcnicas de procesamiento asncrono permite a las
funciones deliberativas ejecutarse de forma independiente a los comportamientos reactivos. Segundo, la
modularidad software permite a los subsistemas o componentes de una arquitectura Hbrida su combinacin y
adecuacin para diferentes aplicaciones especficas.
Ejecucin independiente y modularidad son caractersticas innatas de los agentes software, un nuevo
paradigma de programacin para el desarrollo de aplicaciones [4]. Debido a sus caractersticas, los agentes son
adecuados para la especificacin e implementacin de arquitecturas de control hbridas. Actualmente, los agentes
son el centro de inters de muchos campos de la ingeniera del computador y de la inteligencia artificial, y estn
usndose en un amplio y creciente conjunto de aplicaciones (aplicaciones orientadas a la industria, al comercio, a
la medicina, al entretenimiento, etc.) [4].
La especificacin e implementacin de una arquitectura, adecuada a los sistemas hbridos, tiene que
contemplar la propia naturaleza distribuida tanto de la informacin sensorial como de los comportamientos. Las
diferentes restricciones temporales que existen entre las tareas reactivas y deliberativas tiene que reflejarse en el
diseo del sistema de comunicaciones. Por un lado, las tareas reactivas tienen que cumplir limitaciones o cotas
temporales estrictas en su ejecucin, mientras que las tareas deliberativas no precisan de un control temporal tan
estricto. Cuando una tarea deliberativa no cumple sus tiempos de ejecucin, el sistema no tiene que quedar
expuesto a ningn riesgo catastrfico debido a que el conjunto de tareas reactivas tiene que encargarse de llevar
el sistema bajo control.
En este artculo se propone una arquitectura para el control de robots mviles inteligentes basada en el
paradigma Hbrido reactivo/deliberativo. Dicha arquitectura es multi-nivel y distribuida, sus principales

1
Este trabajo est financiado a travs del proyecto CICYT DPI 2002-04434-04-03.
componentes son agentes software mviles que interactan con el medio a travs de un sistema de
comunicaciones basado en una estructura de objetos tipo pizarra distribuida.
El principal objetivo de este trabajo ha sido la definicin de una estructura modular y portable que permita el
desarrollo sencillo y rpido de sistemas de control de robots. Las caractersticas de la arquitectura propuesta son
las siguientes:

Especificacin y diseo de un sistema de comunicaciones multi-nivel que permite la interaccin entre
todos los componentes de la arquitectura. Las diferentes restricciones de tiempo real existentes entre los
niveles de la arquitectura (reactivo y deliberativo) son consideradas en dicho diseo.

Separacin del tiempo de las comunicaciones del tiempo de procesamiento. En primer lugar el cdigo
necesario se delega o se mueve a los computadores y una vez all se ejecuta localmente.

Ubicacin automtica de los componentes software de la arquitectura distribuida mediante el uso de
tcnicas de delegacin de cdigo y sistemas multi-agente. Los agentes se mueven all donde las
condiciones del entorno son ms favorables (por ejemplo, donde la sobrecarga temporal que suponen las
comunicaciones para el acceso a los datos sea menor).

A continuacin se describe la arquitectura propuesta y un prototipo que la implementa. En primer lugar, se
realiza una descripcin general de toda la arquitectura. A continuacin, se expone con detalle en dos apartados el
diseo del sistema de comunicaciones y el nivel reactivo. Finalmente, se describe el prototipo implementado que
valida la arquitectura y se presentan las conclusiones.

2. Descripcin de la Arquitectura

En las arquitecturas hbridas [5], las aplicaciones complejas sobre robots mviles se definen mediante la
combinacin de dos tipos de operaciones: operaciones deliberativas de planificacin de objetivos y operaciones
reactivas dirigidas por los sensores. Los programas agente descomponen las tareas complejas en
comportamientos independientes, los cuales asocian valores de los sensores con acciones a realizar. En primer
lugar, el robot planea la mejor forma de descomponer una tarea en subtareas (proceso de planificacin) y,
despus, selecciona los comportamientos ms adecuados para llevar a cabo cada subtarea. La informacin
sensorial tiene que proporcionarse a todos los comportamientos que la necesiten. Adems, dicha informacin
tambin tiene que estar disponible en el proceso de planificacin para la construccin de un modelo del entorno.
Un comportamiento se define como una correspondencia entre los valores de un sensor y un patrn de
acciones motor, las cuales se aplican para realizar una tarea. Esta correspondencia es el componente de
inteligencia fundamental en la mayora de los sistemas de robots. Desde principios del siglo XX, en psicologa se
ha usado la teora de Esquema que actualmente se est aplicando en robtica (Arbib,1986 [1]; Arkin, 1998 [2]).
Segn esta teora, un comportamiento esquema est compuesto de al menos un esquema motor, al menos un
esquema de percepcin, y el conocimiento de cmo coordinar mltiples componentes esquema. Esta separacin
entre percepcin y accin, lleva a la composicin de un comportamiento mediante la combinacin de esquemas
de percepcin y motor, lo cual sugiere un mtodo de implementacin.
Los comportamientos son inherentemente paralelos y distribuidos, al igual que las actividades deliberativas.
El diseo del sistema tiene que combinar actividades con restricciones temporales reactivas y actividades con
restricciones temporales deliberativas.
La mayora de las arquitecturas de robots mviles estn organizadas en niveles. La distribucin de los niveles
depende del tipo de informacin que es usada. La informacin se organiza desde datos sensoriales hasta datos
simblicos que representan mapas de entorno y estados internos del robot.
En este trabajo se propone una arquitectura hbrida multinivel y distribuida. La arquitectura est compuesta
por tres niveles: un nivel reactivo, un nivel deliberativo y un nivel de comunicaciones (fig.1):

El nivel deliberativo es un sistema de tiempo real no estricto que representa un nivel de conocimiento
superior y ejecuta procesos de planificacin basndose en el estado de un modelo simblico interno del
entorno. Como resultado de la planificacin, los objetivos se dividen en comportamientos esquema que
son enviados al nivel reactivo.

El nivel reactivo es un sistema de tiempo real estricto conectado con los sensores y los actuadores, tiene
que reaccionar en un tiempo acotado ante los diferentes valores de los sensores (estmulos). El nivel
reactivo recibe del nivel deliberativo los comportamientos esquema, los cuales son procesos que se
ejecutan concurrentemente y que usan la informacin sensorial para el clculo de las acciones que llevarn
a cabo los actuadores. Cuando varios comportamientos calculan diferentes acciones para el mismo
actuador, es el nivel reactivo quien decide en cada instante las acciones definitivas.

El nivel de comunicaciones proporciona una interfaz entre los niveles reactivo y deliberativo. A travs de
dicha interfaz, el nivel deliberativo enva los comportamientos esquema al nivel reactivo y accede a la
informacin sensorial para incorporarla en el modelo simblico interno del entorno.



Bus de tiempo real estricto
Bus de tiempo real no estricto
Nodo 1 Nodo i Nodo n
Radio
Actuadores Sensores
MAS MAS
(Sistema
Multiagente)
MAS
N
i
v
e
l

d
e

C
o
m
u
n
i
c
a
c
i
o
n
e
s

(
M
i
d
d
l
e
w
a
r
e
)

Agentes
reactivos
Agentes
deliberativos
N
i
v
e
l

d
e

C
o
m
u
n
i
c
a
c
i
o
n
e
s

(
M
i
d
d
l
e
w
a
r
e
)

N
i
v
e
l

d
e

C
o
m
u
n
i
c
a
c
i
o
n
e
s

(
M
i
d
d
l
e
w
a
r
e
)

Agentes
reactivos
Agentes
deliberativos
Bus de Objetos
a
a
a
a a
a
a
a
a

Nivel Reactivo

Nivel Deliberativo
a = agente mvil

Figura 1: Estructura y conexiones de la
arquitectura distribuida propuesta

P
r
o
c
e
s
a
m
i
e
n
t
o

C

C
o
m
u
n
i
c
a
c
i
o
n
e
s

C
o
m
u
n
i
c
a
c
i
o
n
e
s

C
o
m
u
n
i
c
a
c
i
o
n
e
s

P
r
o
c
e
s
a
m
i
e
n
t
o

B

P
r
o
c
e
s
a
m
i
e
n
t
o

A

Tarea A Tarea B Tarea C
Comunicaciones
Procesamiento
Tarea A Tarea B Tarea C
Control
desde
nodo
central
Control
por
delegacin
de
cdigo

Figura 2: Comunicaciones y procesamiento en el
control de robots

Los componentes software de los niveles reactivo y deliberativo (procesos de planificacin, procesos de
comportamientos esquema) son agentes mviles que pueden moverse entre los diferentes nodos de la
arquitectura. El objetivo principal de esta movilidad es reducir la sobrecarga y requerimientos de comunicacin
del sistema. La movilidad es necesaria de acuerdo con los siguientes criterios:

La sobrecarga y requerimientos de comunicacin del sistema dependen de la ubicacin de los agentes.
Tanto el nivel reactivo como el deliberativo son distribuidos. El nivel deliberativo enva al nivel reactivo
agentes que necesitan diferentes datos sensoriales, la localizacin o ubicacin de estos agentes
determinar la sobrecarga y requerimientos de comunicacin necesarios para enrutar a sus destinos dicha
informacin sensorial.

Un agente podr moverse all donde las condiciones del entorno sean ms favorables (mejor tiempo de
ejecucin, disponibilidad de recursos, menor necesidad de comunicaciones, etc.).

Las condiciones del entorno pueden cambiar dinmicamente (recursos del Sistema Operativo,
disponibilidad hardware, etc.) y puede ser necesario el movimiento de los agentes para que el sistema se
adapte a las nuevas condiciones.

Los nodos reactivos estn interconectados mediante un bus de tiempo real estricto que permite las
comunicaciones dentro del nivel reactivo. Por su parte, los nodos deliberativos estn interconectados mediante un
bus de tiempo real no estricto que permite las comunicaciones dentro del nivel deliberativo.
Ambos buses son necesarios debido a las diferencias existentes entre los requerimientos temporales de los
niveles reactivo y deliberativo. El nivel reactivo necesita un bus de comunicaciones que garantice el tiempo de
acceso y la transmisin de las tramas de datos para responder en un tiempo acotado a los cambios del entorno.
Por otro lado, el nivel deliberativo puede usar un bus sin estas restricciones que por el contrario permita
comunicar estructuras de datos ms complejas (como supondra la propia transmisin de los agentes).
La ejecucin en tiempo real estricto de los comportamientos solo ser posible en aquellos nodos que
dispongan de la infraestructura de acceso al bus de tiempo real.
El nivel de comunicacin o Middleware est conectado con ambos buses proporcionando una interfaz entre el
nivel reactivo y deliberativo que permite la transmisin de informacin entre ambos niveles.
El sistema tiene que garantizar las restricciones de tiempo real estricto de las tareas. Esto puede ser difcil
debido a los siguientes problemas:

Retardos de computacin. Una sobrecarga de procesamiento o una falta de recursos en el Sistema
Operativo pueden producir retardos en la ejecucin.
Retardos de transmisin. Algunos canales de comunicacin ocasionan retardos excesivos en la
transmisin. Por otro lado, el tiempo necesario en las comunicaciones puede no estar acotado y muchas
veces dichas comunicaciones ni siquiera son posibles debido a las condiciones del entorno (redes
inalmbricas).

La arquitectura propuesta, basada en agentes mviles, trata de reducir los problemas relacionados con las
restricciones temporales al separar el tiempo de comunicacin del tiempo de procesamiento. Para ello, se
emplean dos fases. En primer lugar, la arquitectura permite realizar todas las comunicaciones necesarias para
delegar al robot (moviendo agentes) el cdigo de ejecucin necesario. En segundo lugar, la arquitectura procesa
el cdigo usando la infraestructura de tiempo real. La primera fase no est acotada temporalmente, el tiempo
necesario depende de las condiciones del entorno. En la segunda fase, una vez han finalizado las comunicaciones
fuera de lnea (comunicaciones para delegar el cdigo) y el robot dispone de sus agentes, los agentes pueden
ejecutarse localmente con un mnimo de comunicaciones en lnea (comunicaciones para obtener los datos en
tiempo de ejecucin). En el caso ideal, si los agentes estn ubicados de forma que disponen localmente de toda la
informacin necesaria, los agentes pueden ejecutarse sin comunicaciones externas que interrumpan el
procesamiento. De esta forma, al contrario que la primera fase, la segunda fase puede ser acotada temporalmente
debido a que el tiempo necesario depende principalmente del cdigo ejecutado.
En la figura 2 puede observarse la diferencia entre el control de un robot que necesita comunicarse
continuamente con un nodo central remoto, y el control de un robot mediante la arquitectura propuesta. En el
primer caso, el robot no dispone localmente del cdigo necesario para realizar sus tareas, por lo que dicho robot
tiene que estar continuamente comunicndose con el nodo remoto, donde dicho cdigo est ejecutndose, para
recibir las acciones a realizar. Por el contrario, en el segundo caso ideal, el cdigo necesario se ejecuta
localmente sin retardos de comunicacin.
La conclusin de esta descripcin general es que el diseo de una arquitectura, adecuada a los sistemas
hbridos, tiene que contemplar la naturaleza distribuida de la informacin sensorial y de los comportamientos. La
idea principal es que el sistema de comunicaciones constituye la base para la construccin de los
comportamientos (esquemas motor y de percepcin), los cuales deben extenderse al nivel de computacin
deliberativo. En la seccin siguiente se realiza una descripcin detallada del sistema de comunicaciones. A
continuacin, se desarrolla el nivel reactivo empleando el sistema de comunicaciones descrito. Y para finalizar,
se presenta un prototipo que implementa dicha arquitectura.

3. Sistema de Comunicaciones

La diferencia entre las restricciones temporales de las tareas reactivas y deliberativas tiene que reflejarse en el
diseo del sistema de comunicaciones. Las comunicaciones de tiempo real estricto requieren una infraestructura
caracterizada por la prediccin en los procesos de computacin y un estricto marco semntico de comunicacin,
caractersticas adecuadas para las actividades de comportamientos. Por otro lado, las comunicaciones de
propsito general (sin restricciones de tiempo real estricto) requieren una infraestructura caracterizada por un
alto y flexible nivel semntico de comunicacin, caracterstica necesaria en el cmputo deliberativo. Tal como se
coment, la informacin sensorial tambin debe estar disponible en los procesos de planificacin para la
construccin de un mapa o modelo interno del entorno. Dicha construccin requiere informacin temporal
asociada a los datos u objetos distribuidos para as permitir algn tipo de fusin de datos espacial y temporal. Por
lo tanto, la informacin temporal de los objetos distribuidos tiene que estar disponible en todas las
infraestructuras de comunicacin a pesar de las diferencias existentes en prediccin y granularidad temporal.
El acceso a la informacin distribuida tiene que proporcionarlo el nivel o sistema de comunicaciones. Con
este objetivo, se ha desarrollado un sistema de comunicaciones general llamado SC [7, 8]. SC oculta los detalles
de comunicacin mediante una interfaz comn de notificacin.
SC mantiene una representacin interna de los datos mediante el uso de una estructura de objetos tipo pizarra
distribuida [6]. Dicha estructura es actualizada continuamente con los nuevos valores de los objetos e
informacin temporal asociada. SC necesita la ejecucin de un programa servicio en cada uno de los nodos del
sistema. Estos servicios establecen las comunicaciones necesarias entre los nodos del sistema a travs del bus de
tiempo real no estricto para asegurar la consistencia de las copias de la pizarra de objetos distribuida.
Los procesos o agentes nicamente necesitan realizar accesos locales para contactar con todo el sistema,
minimizndose de esta forma los retardos de comunicacin. Por ejemplo, cuando un esquema de percepcin
necesita obtener el valor de un sensor, solamente tendr que acceder al objeto asociado a dicho sensor, el cual se
encuentra definido en el servicio SC local (que est ejecutndose en el mismo computador donde se encuentra el
esquema de percepcin).
SC es un sistema orientado a eventos. De modo que es posible asociar la ejecucin de determinado cdigo
con eventos especficos (por ejemplo, un cambio en el valor de un objeto).
Los procesos o agentes interactan con el sistema SC mediante el uso de una estructura de programacin
denominada modelo FSA (Frame-Sensor-Adapter).
El modelo FSA ha sido desarrollado para definir una manera comn de acceder a cualquier recurso de
comunicaciones. Est basado en la definicin de tres interfaces (fig.3): IFrame, ISensor e IAdapter.

Interfaz IFrame: define un objeto marco para la instanciacin de los objetos adaptadores y sensores. Este
objeto relaciona los adaptadores con los sensores y permite una coordinacin ms sencilla desde la
aplicacin o el agente que los utilice.

Interfaz ISensor: define un objeto sensor que permite la obtencin automtica de datos procedentes de los
recursos de comunicaciones. Para ello los objetos sensor tienen que utilizar los correspondientes objetos
adaptadores. Un objeto sensor puede verse como un receptor y contenedor de datos. El sensor abstrae el
dato del sistema de comunicaciones empleado.

Interfaz IAdapter: define un objeto adaptador que permite el acceso a un determinado recurso de
comunicaciones mediante el uso de un conjunto de funciones especficas. Para cada recurso de
comunicaciones tiene que implementarse un objeto adaptador con esta interfaz. De esta forma, los
procesos conectarn y accedern con una misma interfaz a cualquier recurso de comunicaciones utilizando
el adaptador correspondiente. Las aplicaciones podrn recibir de forma automtica los valores de los
datos mediante el registro de los objetos sensor en los objetos adaptador. Por ejemplo, si una aplicacin
est interesada en los valores de los sensores de infrarrojos (los cuales son enviados a travs de un bus
CAN), tendr que implementar un objeto sensor y registrarlo en el adaptador correspondiente (adaptador
del bus CAN). De este modo, cuando el adaptador reciba nuevos valores de los sensores de infrarrojos, el
adaptador actualizar el objeto sensor (que ha sido implementado para contener dichos valores) y avisar
a la aplicacin de ello.


Adaptador
del recurso de
comunicaciones
Sensor
Marco
Adaptador
del recurso de
comunicaciones
Sensor
Marco


Figura 3: Estructura FSA Marco-Sensor-
Adaptador
SC COM CAN
...
Actividades
de control
Sensores
(Contenedores
de datos)
Adaptadores
de recursos de
comunicacin
OnStart
OnStop
OnMessage
Start
Stop
RegisterSensor
Write
Read
Crear adpatadores
Crear sensores
Registrar sensores
Iniciar adaptadores
Crear hilos de control
Marco
GetTimes
Interfaces base
SC COM CAN
...
Actividades
de control
Sensores
(Contenedores
de datos)
Adaptadores
de recursos de
comunicacin
OnStart
OnStop
OnMessage
Start
Stop
RegisterSensor
Write
Read
Crear adpatadores
Crear sensores
Registrar sensores
Iniciar adaptadores
Crear hilos de control
Marco
GetTimes
Interfaces base


Figura 4: Modelo de programacin FSA

La utilizacin del modelo de programacin FSA por parte de una aplicacin para acceder a los recursos de
comunicaciones est basada en varios pasos (fig.4). Primero tiene que crearse un objeto marco. Segundo, se
instancian en dicho marco los objetos adaptador necesarios y los sensores implementados. Tercero, se registran
los sensores en los adaptadores (funcin RegisterSensor del adaptador) para configurar la recepcin automtica
de los datos. Y cuarto, finalmente se ejecuta la funcin Start de los adaptadores. A partir de este momento,
cuando un adaptador reciba datos para un sensor registrado, ejecutar automticamente la funcin OnMessage
de dicho sensor. La aplicacin recibe una copia de los nuevos datos a travs de los parmetros de la funcin
OnMessage. Para finalizar las comunicaciones tiene que ejecutarse la funcin Stop de los adaptadores.
En el caso del sistema SC se ha desarrollado el correspondiente objeto adaptador (denominado SCAdapt)
disponible para todos los procesos. El objeto SCAdapt interacta con el sistema SC mediante el intercambio
dinmico de datos o DDE (Dynamic Data Exchange).
El sistema SC tambin tiene acceso al bus de tiempo real estricto. Dicho acceso se proporciona a travs de un
componente software que acta de pasarela realizando las comunicaciones necesarias entre el sistema SC y el bus
de tiempo real.
El desarrollo de pasarelas que conecten distintos recursos de comunicaciones con el sistema SC es sencillo
mediante el uso del modelo FSA (fig.5). Al disponer el bus de tiempo real estricto de su propio adaptador, el
objeto o componente pasarela nicamente tendr que enlazar ambos adaptadores (adaptador SC y adaptador del
bus de tiempo real estricto).





SC CAN
Pasarela
SC CAN
Pasarela


Figura 5: Modelo de pasarela basado en FSA
Bus CAN
TCP/IP Ethernet
Nodo 1
Actuadores Sensores
Agentes
Deliberativos
y
Reactivos
Bus de Objetos
Pizarra
SC
Adaptador SC
Pasarela
SC-CAN
Nodo n
Agentes
Deliberativos
SC
Pizarra
Adaptador SC
Adaptador CAN


Figura 6: Sistema de Comunicaciones SC

Desde este punto de vista, se ha desarrollado un objeto adaptador (denominado CANAdapter) para el bus
CAN. Se ha seleccionado el bus CAN por sus caractersticas de tiempo real [3, 12].
La pizarra distribuida del sistema SC se extiende a los datos de la red CAN. Para ello, la pasarela SC-CAN
realiza las traslaciones necesarias entre el protocolo CAN y los datos SC (fig.6). Esta pasarela soporta el formato
de los mensajes CAN y realiza un proceso de mapeado estableciendo una correspondencia bidireccional entre los
objetos SC y los identificadores CAN. Este mapeado permite a cualquier proceso, desde cualquier nodo de la red
IP, el acceso a la informacin procedente del bus CAN mediante el sistema SC y el esquema de notificacin
automtica definido (basado en el modelo FSA).
Generalmente, los procesos deliberativos estn relacionados con la integracin sensorial, fusin de datos y
construccin de mapas de entorno. En este caso, donde la fusin sensorial tanto en el espacio como en el tiempo
es necesaria, tiene que asociarse informacin temporal a los datos de los sensores y a las acciones de control. En
este sentido, los objetos del sistema SC presentan un campo cuyo valor indica la antigedad de los mismos. Este
campo acumula todos los retardos de transmisin al moverse el valor de un nodo a otro. Con esta informacin,
cuando un proceso recibe el valor puede obtener en cualquier instante, mediante la funcin GetTimes() de la
interfaz Isensor, la antigedad del mismo. La funcin GetTimes() calcula automticamente la antigedad del
objeto SC teniendo en cuenta el tiempo transcurrido desde que lleg al nodo donde se encuentra.
Cuando un objeto SC abandona un nodo a travs del sistema SC, su campo temporal se actualiza sumndole
el tiempo que dicho objeto ha permanecido en el nodo.
El comportamiento temporal del sistema se ha estado estudiando y probando su adaptacin a sistemas
industriales reales [9].

4. Nivel Reactivo

Los niveles reactivo y deliberativo disponen de unos patrones de comportamiento y motivaciones asociadas cuya
composicin determina el comportamiento emergente del sistema. El nivel reactivo es el encargado de la
composicin de los comportamientos bsicos.
El nivel reactivo est compuesto por agentes software que interactan con los sensores y actuadores a travs
de la lectura y escritura de objetos definidos en la pizarra distribuida del SC.
Los componentes del nivel reactivo son los siguientes:

Componentes fsicos:
Sensores y actuadores. Estn interconectados mediante el bus de tiempo real estricto.

Componentes software (modelan a los sensores y actuatores):
Patrones de comportamiento:
Esquemas de percepcin. Son agentes que acceden a los valores de los sensores y producen
informacin sensorial.
Esquemas motor. Son agentes que acceden a la informacin de los esquemas de percepcin
(informacin sensorial) y producen acciones (contribuciones).
Motivaciones. Cada esquema motor tiene asociada una motivacin. Las motivaciones son agentes que
acceden a la informacin de los esquemas de percepcin (informacin sensorial) y ponderan las
contribuciones de los esquemas motor.
Compositores. Son agentes que computan las acciones definitivas para ser enviadas a los actuadores.
Acceden a la informacin de los esquema motor (contribuciones), a la informacin de las
motivaciones asociadas (peso de las contribuciones) y a la informacin temporal (antigedad) de los
mismos.

Todos los agentes descritos son procesos concurrentes y distribuidos que acceden localmente a la informacin
del SC y que generan nueva informacin independientemente de lo que los otros agentes estn haciendo.


Datos
OS1
Datos
OS2
Datos
OS3
Datos
OSn
Actuador 1
Compositor 1

Agente
On_Message
Compositor 2

Agente
On_Message
Compositor j

Agente
On_Message
Compositor r

Agente
On_Message
Sensor 1 Sensor 2 Sensor n Sensor 3
BUS CAN
TS1 TS2 TS3 TSn
Esquema
Percepcin 1
Agente
On_Message
Agente
On_Message On_Message
Esquema
Percepcin 2
Esquema
Percepcin m
Datos
OEP1
Datos
OEP2
Datos
OEPk
Datos
OEPm
SC
SC
BUS CAN
Actuador 2 Actuador r
Datos
OA1
Datos
OA2
Datos
OAr
SC
TA1 TA2 TAr
Datos
Om1
Datos
OEM1
Datos
OEMp Datos
Omq
SC
Agente
On_Message
Agente
On_Message
Agente
On_Message
motivacin 1
Agente
On_Message
Agente
On_Message
Agente
On_Message
Esquema
Motor 2
Esquema
Motor p
motivacin 2 motivacin q
Datos
OEM2 Datos
Om2
Datos
OEMi Datos
Omj
Esquema
Motor 1
Datos
OEP3
Agente





Smbolo Descripcin
Sn Sensor n
TSn Periodo transmisin valores del Sensor n
OSn Objecto SC asociado al Sensor n
EPm Esquema de Percepcin m
OEPm Objecto SC asociado al Esquema de
Percepcin m
EMp Esquema Motor p
OEMp Objecto SC asociado al Esquema Motor p
mq motivacin q
Omq Objecto SC asociado a la motivacin q
Cr Compositor r
OAr Objecto SC asociado al Actuador r
TAr Periodo transmisin valores del Actuador r
Ar Actuador r

Tabla 1: Nomenclatura en el nivel reactivo

Figura 7: Nivel reactivo

Cada componente del nivel reactivo de la arquitectura (sensor, actuador, esquema de percepcin, esquema
motor o motivacin), a excepcin de los compositores, tiene asociado en el SC un objeto cuyo valor refleja el
valor de dicho componente (fig.7) (tabla 1). As, existe un objeto por cada sensor, actuador, esquema de
percepcin, esquema motor o motivacin. Los compositores no tienen asociados objetos en el SC, sino que se
encargan de proporcionar los valores a los objetos asociados a los actuadores.
Cada sensor (S
i
) del robot est controlado por un mdulo sensor de procesamiento (procesador empotrado)
con acceso al bus CAN, de forma que este mdulo transmite con cierto periodo (TS
i
) el valor del sensor asociado
enviando un mensaje CAN.
La pasarela SC-CAN recibe todos los mensajes CAN procedentes de todos los mdulos sensores y los enva a
los objetos (OS
i
) correspondientes del SC. Como resultado, todos los valores de todos los sensores se encuentran
accesibles a travs del sistema SC para cualquier componente software de cualquier nivel de la arquitectura.
Cada esquema de percepcin se conecta a los objetos (OS
i
) del SC cuyos valores necesita para generar su
resultado. Por ejemplo, un esquema de percepcin (EP
k
) podra requerir los valores de los sensores de infrarrojos
para determinar la presencia o no de un obstculo. Seguidamente, el esquema de percepcin enva la informacin
sensorial generada a su objeto (OEP
k
) asociado.
Por otro lado, cada esquema motor obtiene la informacin que necesita de los esquemas de percepcin
conectndose de igual modo a los objetos del SC (OEP
k
) correspondientes. A partir de la informacin sensorial
que obtiene un esquema motor, ste genera una respuesta en forma de accin. Por ejemplo, un esquema motor
encargado de evitar obstculos, al recibir de un esquema de percepcin la existencia de un obstculo, generara
las rdenes oportunas para esquivarlo. Este esquema motor podra funcionar indicando la velocidad para los
motores de las ruedas, por lo que al ser informado de la presencia de un obstculo, podra indicar las velocidades
adecuadas a cada rueda para girar y no chocar. Cada esquema motor (EM
j
) enva las acciones que genera a su
objeto (OEM
j
) correspondiente del SC.
Cada esquema motor tiene asociada una motivacin. Las motivaciones son componentes software que se
ejecutan de forma independiente y determinan el grado de importancia de las acciones generadas por los
esquemas motores. Por ejemplo, la importancia de las acciones generadas por dos esquemas motores, uno
indicando cmo ir a un objetivo y otro indicando cmo ir a recargar bateras, no es la misma dependiendo de si el
robot dispone o no de la energa suficiente para alcanzar dicho objetivo. Cada motivacin (m
s
) se conecta a los
objetos (OEP
k
) del SC que necesita para determinar la importancia de su esquema motor (EM
s
) asociado. El
resultado lo enva al objeto SC (Om
s
) correspondiente.
El ltimo componente software del nivel reactivo son los compositores. El resultado de los compositores
sern las acciones que el robot, en cada momento, llevar definitivamente a cabo. Para ello, los compositores
proporcionan los valores a los objetos asociados a los actuadores del robot.
Cada actuador tiene un objeto SC asociado, los valores de este objeto son las acciones que el actuador realiza.
Por ejemplo, el actuador (A
t
) correspondiente a la velocidad de los motores de las ruedas, ejecuta la velocidad
indicada en su objeto (OA
t
) asociado del SC. Para ello, al igual que los sensores, cada actuador est controlado
por un mdulo de procesamiento (procesador empotrado) con conexin al bus CAN. En este caso, la pasarela
SC-CAN se encarga de enviar, tambin con cierto periodo para cada actuador (TA
t
), los valores de los datos de
los actuadores mediante mensajes CAN. Cada mdulo de procesamiento recibe los mensajes que le corresponden
y realiza las acciones indicadas.
Cada actuador es controlado nicamente por un solo compositor, aunque este compositor puede cambiar
dinmicamente.
Un compositor (C
x
) determina la accin para su actuador asociado (A
t
) utilizando los valores (contribuciones)
generados por uno o varios esquema motor y motivaciones asociadas. Un compositor se denomina bsico o
primitivo cuando utiliza nicamente el valor de un esquema motor para proporcionar la accin definitiva al
actuador. Por otro lado, el compositor se denomina abstracto si utiliza varios valores (contribuciones) de
distintos esquema motor para generar la accin definitiva.
Un compositor abstracto es un conjunto de varios patrones de comportamiento bsicos, donde cada
comportamiento tiene un determinado peso en la accin definitiva. La forma en que estos comportamientos
bsicos intervienen en las acciones finales (peso o grado de influencia), determina el mecanismo mediante el que
el compositor abstracto gobierna al actuador. Existen varias posibilidades [10]:

Composicin de comportamientos bsicos (comportamientos emergentes). El nivel reactivo realiza una
suma ponderada de todas las acciones para un mismo actuador obteniendo como resultado la accin
definitiva (por ejemplo, un comportamiento de navegar hacia un objetivo ms un comportamiento de
evitar obstculos).

Conmutacin o secuenciacin de comportamientos bsicos. Existen situaciones donde no se consideran al
mismo tiempo todos los comportamientos bsicos para el clculo de las acciones finales (por ejemplo, si
un robot tiene que coger un objeto, primero tendr que moverse hacia l, en ese caso los comportamientos
necesarios para coger el objeto slo tendrn que ser considerados despus de que el robot se haya movido
y haya alcanzado dicho objeto).

En ambos casos, el empleo de los valores de las motivaciones ser imprescindible.
Independientemente del tipo de compositor (bsico o abstracto), ste se conectar a los objetos del SC
(objetos esquemas motores OEM
j
y objetos motivaciones Om
s
) que necesite y enviar las acciones generadas al
objeto (OA
t
) del actuador correspondiente.
Todos los agentes reactivos descritos son proporcionados por el nivel deliberativo a travs del bus de tiempo
real no estricto. Los agentes son mviles y pueden viajar a travs del sistema distribuido. Sin embargo, la
ejecucin de los agentes reactivos con restricciones de tiempo real estricto solamente ser posible en los nodos
con acceso a la infraestructura de bus de tiempo real.

5. Prototipo basado en Delegacin de Cdigo

En esta seccin se describe un prototipo software basado en la delegacin de cdigo cuyos objetivos son:

Simular robots mviles en un entorno especfico.

Implementar la arquitectura de control propuesta.

Validar las tcnicas de delegacin de cdigo.

Validar el control de robots mviles mediante el uso de agentes.

Facilitar la aplicacin de diferentes tcnicas de control y finalmente reemplazar los robots y entorno
simulados por robots reales en un entorno real.

El prototipo permite la simulacin de robots movindose en un entorno mediante la composicin de
comportamientos bsicos. La caracterstica que hace original al prototipo consiste en que los robots reciben el
cdigo correspondiente a los comportamientos mediante delegacin. As, desde una consola principal, pueden
enviarse nuevos comportamientos a los robots en funcionamiento para que sean considerados en el proceso de
composicin realizado.
El prototipo presenta las siguientes restricciones:

Tal como se vio, el clculo de las acciones finales se ve afectado por los coeficientes o valores de
motivacin. El prototipo implementado sigue el modelo ms puro de comportamientos emergentes [11].
es decir, considera todos los coeficientes de motivacin constantes e iguales a 1.

De este modo, los comportamientos emergentes de los robots simulados resultan de la composicin de los
esquemas motores realizada mediante la suma de sus contribuciones. Adems, estos esquemas motores
tienen que ser compatibles para que no se realicen composiciones conceptualmente absurdas.

El prototipo ha sido implementado en el lenguaje de programacin Java [13] y utiliza el modelo FSA para
acceder al sistema de comunicaciones SC implementado en C++.
La estructura del prototipo desarrollado est formada principalmente por cinco componentes software (fig.8)
denominados: simulador del entorno, simulador de robot, nivel deliberativo, nivel reactivo y
componentes reactivos mviles. Los componentes de los niveles deliberativo y reactivo acceden a los valores
de los sensores a travs del sistema de comunicaciones SC.


ENTORNO
simulado

Nivel
Deliberativo
ROBOT
simulado
NIVEL
REACTIVO
ROBOT
simulado
NIVEL
REACTIVO
Componentes Reactivos Componentes Reactivos


Figura 8: Componentes software del prototipo
desarrollado




Figura 9

El nivel deliberativo, en funcin del objetivo a alcanzar, enva al nivel reactivo los componentes software
necesarios: esquemas de percepcin, esquemas motor y compositores. El nivel reactivo ejecuta dichos
componentes que determinan los movimientos del robot. El resultado de la ejecucin de un esquema motor (su
contribucin) es el valor correspondiente a la velocidad a aplicar a los motores de las ruedas izquierda y derecha
del robot. Los esquemas motor utilizan, para el clculo de su contribucin, los valores (posicin estimada del
robot, deteccin de obstculo) correspondientes a los resultados de la ejecucin de los esquemas de percepcin.
Los procesos compositores se encargan de realizar la composicin (suma ponderada) de las distintas
contribuciones de los esquemas motor obteniendo los valores de velocidad definitivos. La frecuencia de
ejecucin de todos estos procesos determina la mxima velocidad del robot, a mayor frecuencia de ejecucin
mayor velocidad del robot.
Se han realizado varias pruebas para validar la delegacin del cdigo de los esquemas de percepcin y
esquemas motores y comprobar los resultados de la composicin de los mismos. En la figura 9 pueden
observarse las interfaces correspondientes a los robots y entorno simulados, as como la consola de control
correspondiente al nivel deliberativo. Esta consola tambin dibuja los obstculos que van encontrando los robots.
En la figura 10 se presenta el resultado de enviar a un robot nicamente un esquema motor para seguir un
objetivo. Se observa que el robot se mueve hacia el objetivo de forma directa y atravesando todos los obstculos
sin esquivarlos. Por otro lado, en la figura 11 se presenta el resultado de la composicin de las contribuciones de
dos esquemas motor enviados al robot: uno para seguir un objetivo y otro para evitar obstculos. Se observa que
el robot se dirige hacia su objetivo evitando los obstculos que encuentra en su trayectoria. La composicin de
los esquemas motor funciona correctamente obtenindose el comportamiento emergente requerido.



Figura 10


Figura 11

Con el prototipo implementado y pruebas realizadas se han validado las tcnicas de delegacin de cdigo y
composicin de comportamientos. Los resultados obtenidos son satisfactorios y constituyen la base para poder
desarrollar y aplicar otros sistemas ms complejos basados en sistemas de agentes mviles.
Adems de este prototipo software, la arquitectura propuesta tambin ha sido implementada para controlar un
robot mvil real conocido como YAIR (Yet Another Intelligent Robot) [7, 10].

6. Conclusiones

En este artculo se ha propuesto una arquitectura hbrida multinivel para el control de robots mviles. Los
componentes de los niveles reactivo y deliberativo son agentes mviles que interactan a travs de un nivel de
comunicaciones interfaz basado en una pizarra de objetos distribuida con soporte temporal. Los agentes se
comunican y acceden a la informacin sensorial mediante la lectura y escritura de los objetos de la pizarra.
El diseo de la arquitectura contempla las diferencias existentes entre los requerimientos de tiempo real de los
componentes reactivos y deliberativos, para ello emplea distintos buses de conexin. Adems, el nivel de
comunicaciones caracteriza temporalmente todos los objetos de la pizarra proporcionando la antigedad de los
valores de los mismos.
Las caractersticas principales de la arquitectura propuesta son la modularidad y adaptabilidad que permiten
su rpida implementacin independientemente del nmero de sensores y actuadores. El empleo de agentes
mviles para especificar los procesos de planificacin y los patrones de comportamiento (esquemas de
percepcin, esquemas motores, motivaciones y compositores) permite que stos puedan incorporarse al sistema
dinmicamente.
De esta forma, la implementacin de la arquitectura para un sistema determinado consiste en la instanciacin
de los agentes correspondientes.
La arquitectura propuesta proporciona un nuevo nivel semntico donde se especifican los procesos pero no su
ubicacin fsica. stos podrn moverse all donde las condiciones del entorno sean ms favorables y la
sobrecarga de las comunicaciones sea menor.
Como conclusin, el control de robots mediante tcnicas de delegacin de comportamientos presenta las
siguientes ventajas:

Cada componente puede desarrollarse de forma independiente del resto de componentes. Una vez puesto
en funcionamiento un sistema determinado, pueden desarrollarse nuevos componentes e incorporarse a
dicho sistema de una forma rpida y sencilla sin interrupciones.

El control del robot se realiza con slo enviarle los esquemas de percepcin y motores adecuados. Para
cambiar el funcionamiento de un robot slo hay que enviarle dinmicamente nuevos componentes.

Las comunicaciones necesarias para el control son mnimas una vez se han delegado los componentes
necesarios, ya que entonces el procesamiento es local.

7. Bibliografa

[1] Arbib, M., (1986). Schema Theory, The Handbook of Brain Theory and Neural Networks. MIT Press.
[2] Arkin, R., (1998). Behavior-Based Robotics. MIT Press.
[3] Bosch, (1991). CAN Specification 2.0A. Robert Bosch GmbH.
[4] Jennings, N.R., Wooldridge, M.J., (1998). Agent Technology. Springer.
[5] Murphy, R.R., (2000). Introduction to AI Robotics. MIT Press.
[6] Nii, H. P., (1989). Introduction, in: Blackboard architectures and applications. Edited by V. Jagannathan,
Rajendra Dodhiawala and Lawrence S. Baum, (Perspectives in artificial intelligence, volume 3).
Academic Press, Boston, pp. xix-xxix.
[7] Posadas, J.L., Perez, P., Simo, J.E., Benet, G., Blanes, F., (2000). Communications Structure for Sensor
Fusion in Distributed Real Time Systems. Proceedings of 6
th
Workshop on Algorithms and Architectures
for Real-Time Control AARTC'2000. Mallorca(Spain).
[8] Posadas, J.L., Perez, P., Simo, J.E., Benet, G., Blanes, F., (2002). Communications Structure for Sensory
Data in Mobile Robots. Engineering Applications of Artificial Intelligence 15 (2002) 341-350.
[9] Poza, J.L. Posadas, J.L., J.E. Sim, A. Crespo, (2001). Data And Event Management In A Maritime
Terminal Of Containers. IFAC Conference on New Technologies for Computer Control. NTCC2001.
Hong Kong.
[10] Sim, J., Crespo A., Blanes, J.F., (1997). Behaviour Selection in the YAIR Architecture. Proceedings of
IFAC Conference on Algorithms and Architectures for Real Time Control. Vilamoura, Portugal.
AARTC'97.
[11] Sim, J.E., (1997). Una arquitectura basada en motivaciones para el control de robots mviles. PhD
Thesis, Polytechnic University of Valencia.
[12] Tindell, K.W., Hansson, H., Wellings, A.J., (1994). Analysing Real-Time Communications: Controller
Area Network (CAN). Proceedings of IEEE RealTime Systems Symposium RTSS'94. F. Jahanian and K.
Ramaritham, eds., IEEE Computer Society Press, pp. 259-263.
[13] Wong, D., Paciorek, N., Moore, D., (1999). Java-based Mobile Agents. Communications of the
Association of Computing Machinery, v. 42, n. 3.

Vous aimerez peut-être aussi