Académique Documents
Professionnel Documents
Culture Documents
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.