Control Robótico inspirado en los principios de la neurociencia

Anuncio
Control Robótico inspirado en los principios de la
neurociencia
José Vicente Berná-Martínez, Francisco Maciá Pérez
Departamento de Tecnología Informática y Computación, Universidad de Alicante.
San Vicente del Raspeig. España.
{jvberna, pmacia}@dtic.ua.es
http://www.dtic.ua.es
Resumen. En este artículo se presenta un modelo de sistema de control
robótico inspirado en el sistema neurorregulador humano que permite aplicar
los principios funcionales y organizativos de los sistemas biológicos a los
sistemas robóticos. También se justifica y propone las tecnologías idóneas para
la implementación de esta propuesta, en concreto los servicios. Para
ejemplificar la propuesta se realiza la instanciación del modelo para el control
de sistemas robóticos autónomos móviles por entornos abiertos y dinámicos,
mostrando la viabilidad tanto del modelo como de las tecnologías escogidas
para su implementación.
1. Introducción
La robótica es un campo en el que convergen un gran número de factores como la
rápida evolución de las tecnologías hardware y software utilizadas, la necesidad de
interdisciplinaridad de los desarrolladores, la gran diversidad de tareas y misiones a
realizar o los factores sociales, económicos y políticos que la rodean [1]. Estos
factores se ven multiplicados por la evolución en el uso de robots, ya que
tradicionalmente los robots han sido utilizados en entornos industriales perfectamente
controlados, estáticos e ideados especialmente para el desarrollo de la actividad
robótica, y en la actualidad la robótica también está siendo ampliamente utilizada para
multitud de otras tareas profesionales o personales en entornos dinámicos y abiertos y
por usuarios no expertos [2]. Esto implica que el número y heterogeneidad de
sistemas robóticos crece constantemente y que al no existir modelos, metodologías,
tecnologías, estándares o herramientas homogéneas y ampliamente difundidas, estos
sistemas son resueltos en muchas ocasiones de forma ad-hoc, siendo cada vez más
distantes entre sí, con incompatibilidades, carentes de interoperabilidad y difíciles de
mantener a medio y largo plazo, ya que hardware y software están fuertemente
acoplados y las modificaciones o alteraciones de sistemas son costosas y exigen
reprogramar parte o la totalidad del sistema [1].
Por tanto es necesario proponer enfoques novedosos que mantengan desacoplados
la parte física de la parte lógica en un robot, que permitan la creación rápida y ágil de
sistemas robóticos complejos manteniendo su escalabilidad y flexibilidad para la
adaptación y mantenimiento, que permitan la interacción de sistemas robóticos con
84
J.V. Berná & F. Maciá
entornos reales y con otros sistemas robóticos, y por supuesto, que permitan a los
robots exhibir un comportamiento inteligente, entendiendo la inteligencia como el
comportamiento que exhibiría un humano al realizar la misma tarea [1], todo ello
manteniendo una estructura y filosofía común de todos los elementos que forman un
sistema robótico sea cual sea su complejidad [3].
Con este propósito, en este artículo realizamos la propuesta de sistemas de control
basándonos en el funcionamiento y organización del sistema neurorregulador humano
y su implementación mediante el uso de servicios. La combinación de ambos
enfoques nos permite unir las ventajas del control complejo junto con los beneficios
software del paradigma de servicios.
A continuación, en este trabajo se presentan las siguientes secciones: en la sección
2 se encuentra el estado del arte donde revisaremos varias de las principales
propuestas entorno a los sistemas de control bioinspirados y la filosofía principal de
funcionamiento y modelado de sistemas biológicos; en la sección 3 realizaremos la
propuesta del modelo de sistema de control inspirado en el funcionamiento y
organización del sistema neurorregulador humano; en la sección 4 justificamos el
paradigma software seleccionado para la implementación; en la sección 5 realizamos
la instanciación del modelo para el sistema de control de navegación en robots
autónomos móviles; en las sección 6 se muestre el análisis de resultados de las
pruebas; por último en la sección 7 se establecen las principales conclusiones y las
líneas futuras de trabajo que de este artículo se desprenden.
2. Estado del Arte
Un sistema robótico se compone de un sistema físico y un sistema de control. El
sistema de control debe actuar sobre la parte física para lograr alcanzar un objetivo,
como moverse en un terreno, realizar una soldadura precisa, recolectar objetos o
limpiar en una zona determinada. Existe un enorme conjunto de enfoques a la hora de
diseñar un sistema de control el cual debe capturar el estado del mundo, decidir qué
acción realizar y llevarla a cabo con los recursos físicos de los que dispone. Uno de
los enfoques que actualmente está siendo utilizado es el basado o inspirado en la
biología, ya que el sistema neurorregulador biológico es un sistema de control de un
cuerpo físico mostrando similares circunstancias que un sistema robótico [4] y, sobre
todo, porque se persigue que los robots se comporten de forma inteligente,
entendiendo inteligencia como un comportamiento similar al humano [5]. Existen dos
grandes visiones a la hora de extraer las características del sistema biológico, la visión
deliberativa y la visión reactiva. La visión reactiva toma una decisión en función de la
interpretación del mundo real que se tiene en cada instante. La visión deliberativa
afronta un problema razonando sobre un modelo del mundo, reglas o representaciones
del conocimiento antes de afrontar una decisión.
En los sistemas de tipo reactivo se aborda el problema mediante un mecanismo de
selección de acción (ASM), definido tradicionalmente en etología como el problema
de conmutación de comportamiento o selección de acción [6]. En un robot esto
implica que varios módulos de comportamiento son implementados y que se
selecciona el comportamiento más adecuando según las circunstancias [7]. Este tipo
Control Robótico inspirado en los principios de la neurociencia
85
de mecanismos permite un comportamiento emergente oportunista que no está
codificado en la lógica de control pero que surge de la interacción de los módulos de
comportamiento y los de selección de comportamiento [8]. Este enfoque permite tener
en consideración aspectos tan profundos del comportamiento como la ética [9] o
aspectos tan prácticos de ingeniería como utilizar técnicas modernas para su
implementación en forma de sistema distribuido [10] posibilitando así la escalabilidad
y difusión del sistema.
Mediante un enfoque cognitivo podemos representar el conocimiento haciendo uso
de estructuras, memorias, reglas o modelos. Esta visión ha permitido construir
frameworks centrados en la representación del conocimiento como ACT-R [11], Soar
[12], Icarus [13] o PRODIGY [14]. Uno de los aspectos centrales en este tipo de
sistemas es cómo acceder a cada tipo de información como el estado del entorno, las
decisiones, la memoria o el aprendizaje, lo cual caracteriza y diferencia cada
propuesta. Otra de las grandes diferencias en cada sistema es como implementa sus
habilidades, es decir, si utiliza procesos embebidos que realizan una función o si estas
funciones están contenidas en forma de conocimiento que forma parte de los
elementos del sistema.
Las arquitecturas deliberativas poseen ventajas en entornos predecibles, pero
requieren de un modelo preciso del mundo, de las acciones y sus efectos para que los
sistemas puedan deliberar y tomar decisiones [14]. Las arquitecturas reactivas son
ventajosas en entornos dinámicos e impredecibles, pero requieren del conocimiento
necesario para tomar una decisión en cualquier situación y no todas son conocidas
durante su diseño [8].
Uniendo ambas posturas existen propuestas hibridas que aprovechan los beneficios
de ambas visiones, utilizando para ello arquitecturas de diversas capas que ubican
cada funcionalidad a distinto nivel. Por ejemplo, en [15] se presenta una arquitectura
hibrida que define 4 niveles: toma de decisión, comportamiento, análisis de
comportamientos y comunicaciones hardware. En [16] se presenta una arquitectura
estructurada en tres niveles, deliberativo, reactivo y nivel de comunicaciones. O en
[17] la arquitectura está dividida en dos grandes capas, la deliberativa responsable de
la planificación, y la capa reactiva encargada de ejecutar las acciones planificadas.
Cada propuesta establece una división en niveles adecuada a los propósitos del
sistema que están resolviendo.
Todas estas propuestas dejan patente la idoneidad de buscar mecanismos similares
a los biológicos para desarrollar sistemas de control robóticos que buscan un
acercamiento al comportamiento humano pero mediante propuestas incompatibles y
alejadas entre sí. Además ponen de manifiesto las dos características fundamentales
de los sistemas biológicos, la capacidad de deliberación y la capacidad de reacción,
llegando a la conclusión de que ambos mecanismos han de integrarse para lograr
comportamientos más complejos que requieran de ambas tendencias. Del estudio de
las diversas propuestas se desprenden las siguientes características generales sobre los
sistemas de control robótico:
 Las aplicaciones de control deben ser modulares para permitir la
reutilización de código y desarrollos rápidos.
 La lógica de control debe ser independiente del hardware. El hardware
proporciona las capacidades pero el software desarrolla las habilidades.
86
J.V. Berná & F. Maciá

El soporte para comunicaciones debe proporcionarlo el framework donde
se desarrolla la aplicación ocultando los detalles a la inteligencia del
robot.
 Los componentes deben ser capaces de comunicarse asíncronamente
transmitiendo valores y no referencias para poder ser distribuidos e
independientes.
 Los componentes deben poder ser enlazados dinámicamente, utilizando
aquellos módulos que sean necesarios incluso en tiempo de ejecución.
 Las técnicas reactivas aprovechan las características del entorno real.
 Las técnicas deliberativas permiten inferir conocimiento que no se
encuentra implícitamente en el entorno.
Estos sistemas bioinspirados parten del estudio del comportamiento y de la estructura
del sistema nervioso biológico. Centrándonos en el sistema neurorregulador humano
se puede describir que el sistema nervioso es una compleja red de estructuras
nerviosas que controlan la actividad del organismo. Funcionalmente el sistema
nervioso recoge, procesa y transmite señales nerviosas a través de diferentes
estructuras con el fin de controlar actividades tanto somáticas como autónomas, es
decir, algunas actividades son completamente reactivas y no se posee control sobre
ellas, mientras que para otras puede existir un cierto o total razonamiento. A primera
vista,
las actividades que el sistema nervioso desarrolla pueden parecen
contradictorias como la ejercida por el sistema simpático y parasimpático,
responsables de la activación o relajación de la actividad interna, pero son en su
conjunto las que regulan, por ejemplo, la actividad visceral y del medio interno [18].
El sistema nervioso está constituido por diferentes centros nerviosos repartidos por
el todo el organismo. Estos centros producen estados de regulación más o menos
complejos. Cada uno de estos centros además posee una actividad propia. Estos
estadios de regulación están jerarquizados los unos respecto de los otros. Los centros
menos evolucionados se encuentran localizados en la periferia mientras que los
centros más integradores se localizan a nivel central. Las funciones reguladoras
presentan dos grandes niveles de control: un nivel de regulación intrínseca constituida
por centros nerviosos lo suficientemente desarrollados como para organizar una
actividad motora de base que permite que los órganos en los que están situados
puedan tener una cierta autonomía funciona; y un nivel de organización extrínseca,
constituido por estructuras ganglionares y el sistema nervioso central, que permiten
organizar una regulación intra o interórganos [19].
El sistema nervioso se ha formado mediante un proceso de evolución que ha
durado miles de años en el cual se han ido agregando centros de control al sistema
neurorregulador de forma que estos nuevos elementos modulan, controlan, mejoran,
inhiben, suprimen o sustituyen las funcionalidades subyacentes [20] [21]. Este
desarrollo se realiza de forma incremental, añadiendo elementos al sistema nervioso y
especializando áreas nerviosas [22]. Estos nuevos centros de control además se han
organizado como nuevas capas del sistema nervioso [23].
Además de los centros nerviosos de control, es sistema neurorregulador también ve
afectada sus funciones por el efecto del llamado cerebro hormonal. En la vida real la
influencia difusa de éste sistema, llamada neuromodulación, modifica la intensidad y
exactitud de las acciones del los centros de control, modificando el comportamiento
final del sistema [24].
Control Robótico inspirado en los principios de la neurociencia
87
Es la suma de todas las influencias de las estructuras reguladoras la que
desencadena un comportamiento, acción, reacción o estabilización del sistema
completo, sin que sea un centro concreto el encargado de producir una acción sino la
interacción de todos ellos y la suma de todas sus influencias la que causa el
comportamiento global [18]. Además posee una naturaleza distribuida y compleja,
donde cada centro lleva a cabo su control de forma autónoma, produciendo un
comportamiento emergente resultante de la suma de las acciones de cada uno de los
elementos que integran el sistema. Además la actividad de los centros de control
pueden ver modificada su actividad debido a la influencias de los neurotransmisores.
Para modelar este comportamiento es necesario utilizar paradigmas que nos puedan
aportar la suficiente riqueza expresiva para poder reflejar todas las características
descritas. Es en este contexto donde el paradigma de agentes ofrece un elevado nivel
de abstracción, adecuado para tratar la complejidad del problema [16] [25] [26] [27].
Los sistemas multi-agente proporcionan un marco de trabajo capaz de aportar
suficiente capacidad expresiva para abordar el modelado de estos sistemas
distribuidos, teniendo en cuenta el comportamiento emergente y la posibilidad de
modificar la estructura del modelo según se logren nuevos avances o conocimiento
del sistema, ya sea por innovaciones tecnológicas o avances en la investigación.
Aunque no existe un acuerdo en cuanto a la definición exacta de agente, sí existe
consenso respecto a los elementos diferenciadores a destacar, o al menos, en alguna
de las propiedades que debe cumplir [28] [29]: autonomía, debe ser independiente,
proactivo y con un conjunto de objetivos; aprendizaje, posibilidad de adaptarse al
entorno; razonamiento, puede ser reactivo, proactivo o híbrido; memoria, capacidad
de recordar necesaria para aprender y razonar; sociabilidad, debe poder cooperar no
sólo con otros agentes; comunicación, capacidad de entenderse con otros agentes, de
percibir el entorno y de actuar sobre él; seguridad, garantizar un funcionamiento
correcto, evitando interacciones indebidas y reaccionar adecuadamente ante eventos
desconocidos. Si observamos estas características, son comunes a las que exhiben los
centros de control del sistema nervioso. Además de éstas, puede tener otros atributos
como movilidad, modularidad, escalabilidad y veracidad, aunque no son estrictamente
necesarios. Nuestro modelo se valdrá de estas propiedades para describir el
funcionamiento del sistema neurorregulador humano.
3. Modelado del Sistema Neurorregulador Humano
De forma general, el sistema neurorregulador humano está formado por una serie de
centros neurorreguladores autónomos situados a lo largo del sistema nervioso. Estos
centros de control reciben información desde los elementos de sensorización
biológicos (señales aferentes, AS), procesan dicha información produciendo nuevas
señales (señales internas, IS) que son retransmitidas a otros centros y tras varios
procesamiento similares son producidas señales de respuestas (señales eferentes, ES)
que son enviadas a los elementos de actuación [30] [31]. La figura 1 muestra un
ejemplo esquemático de este funcionamiento, desde la percepción de nuestro sentido
de la vista hasta, por ejemplo, la acción de mover una mano. Cada centro de control
realiza una función concreta dentro del sistema y sus señales causan influencias o
88
J.V. Berná & F. Maciá
intentos de cambio en el resto del sistema. El control no está centralizado en ninguno
de ellos, sino que está distribuido a lo largo de todos los centros de control y la
interacción de todos ellos son los que causan las modificaciones del sistema y su
interacción con el entorno.
c
IS
AS
AS
cc
cc
IS
IS
cc
IS
IS
cc
cc
IS
IS
cc
cc
ES
IS
IS
cc-centro de control AS-señal aferente ES-señal eferente IS-señal interna
Fig. 1. Representación del sistema neurorregulador como un conjunto de centros de control que
procesan y retransmiten señales entre ellos.
Nuestro modelo va a recoger este funcionamiento mediante un sistema formado por
agentes que denominaremos elementos u entidades funcionales (ef) ya que cada una
de estas entidades aportará una funcionalidad al sistema, donde cada centro es
modelado como un agente independiente que realiza una funcionalidad de igual forma
que un centro de control biológico. El modelo propone que el sistema de control
robótico, al igual que el neurorregulador humano, está compuesto por un conjunto de
centros de control, donde cada uno desarrolla una funcionalidad concreta, y que es la
suma de todas estas acciones las que produce un comportamiento emergente complejo
Basándonos en el sistema de acción y reacción descrito en [25] podemos describir
los elementos que forman un sistema robótico mediante la estructura:
(1)
SR  MS , RRS , MS I RRS
Donde SR representa al sistema robótico completo, MS define al sistema mecánico,
RRS al sistema regulador robótico compuesto por todas las entidades funcionales y
MS
IRRS representa la interfaz entre ambos sistemas, básicamente el complejo sistema de
conexiones y señales aferentes, internas y eferentes.
La interfaz se define mediante la estructura:
MS
(2)
I RRS   ,  , 
Donde Σ representa el conjunto de estados posibles del sistema. Γ identifica el
conjunto formado por las posibles intenciones de acciones en el sistema por parte de
las entidades funcionales. Como hemos comentado ya, las entidades funcionales no
tienen un control completo del sistema y tienen que combinar sus objetivos de forma
que el resultado de cada acción es representada como una intención de actuación
sobre el sistema. Y finalmente, P es el conjunto de todas las posibles acciones que el
sistema regulador robótico puede realizar sobre el sistema mecánico destinadas a
modificar su estado.
Cada entidad funcional trata de modificar el estado del sistema realizando acciones
sobre él. Estas influencias o intentos de acción se define como:
(3)
   1 ,  2 ,...,  n
Donde cada γi es una lista de pares formados por una señal y su valor, es decir:
Control Robótico inspirado en los principios de la neurociencia
i 
sig 1 , val 1 , sig 2 , val 2 ,..., sig Card ( C ) , val Card ( C ) 
89
(4)
En este caso, el conjunto C se corresponde con la unión de los conjuntos de señales
eferentes, aferentes e internas que circulan en el sistema ESASIS. Cuando un
centro no desee modificar el sistema, aportará la influencia vacía γ0. Esta influencia
actuará como el elemento neutro del conjunto Γ de forma que podrá ser aportada por
cualquier ef cuando no se desea modificar el estado del sistema.
Para que el estado del sistema en un momento dado cambie a un nuevo estado, es
decir, para que evolucione, es imprescindible que las ef que lo componen realicen
acciones. Éstas lo logran ejecutando tareas sobre dicho sistema. El conjunto de todas
las posibles acciones que pueden ser desempeñadas sobre un determinado sistema
puede definirse como la fórmula "(5)" y cada una de las acciones se describe como la
fórmula "(6)".
(5)
  p1 , p 2 ,..., p k
  nombre , pre , post
(6)
Donde nombre es una expresión de la forma f(x1,x2,…xk) y cada xi es una variable
autorizada para aparecer en las fórmulas pre y post. pre/post son conjuntos de
fórmulas tipo g(a1,a2,…,an) donde g es un predicado de n variables y cada ai son
constantes o variables. pre describe las condiciones que deben verificarse para
ejecutar la acción y post se refiere al conjunto de influencias que se producen al ser
ejecutadas las acciones.
Para nuestro sistema de control robótico definiremos dos acciones ps y p0.
(7)
 s  SetSignalV alue() , True (), Value ()
(8)
 0  EmptyTask (), True ,  0
En la fórmula “(7)” SetSignalValue() tendrá como entrada una lista τi y como
salida los resultados de la fórmula Value(). La fórmula Value() establece el nuevo
valor a la señal de cada uno de los pares indicados en la lista τi especificada en la
acción. La acción “(8)” define la acción vacía que actuará como elemento neutro
respecto al estado del sistema. Esta acción vacía siempre podrá llevarse a cabo y no
alterará el estado del sistema ya que proporciona la influencia vacía.
Debido a que todos los elementos funcionales del sistema actúan de forma
simultánea igual que en el sistema neurorregulador humano, se producirán diferentes
influencias a la vez y por tanto definiremos la unión de estas influencias Γ como la
función que combina las influencias y aportaciones de los ef. Esta función se encarga
de proporcionar un vector de influencias a partir de las influencias que cada elemento
proporciona Γ: ΓnΓ.
El conjunto de todas las entidades funcionales del sistema robótico constituirá lo
que denominaremos el sistema regulador robótico RRS, ya que todas ellas son las
encargadas de controlar la actividad física y cognitiva del robot como si del sistema
neurorregulador biológico se tratase valiéndose de las señales aferentes y eferentes
que posee.
Cada elemento funcional recibe una serie de señales aferentes (ASef), estas señales
aferentes puede provenir tanto del sistema mecánica MS como de otros elementos
funcionales ef, la procesa y retransmite los resultados de nuevo (ESef) hacia otros
90
J.V. Berná & F. Maciá
elementos funcionales o el sistema mecánico. El conjunto de todos las entidades
funcionales que componen el sistema regulador robótico se define como:
(9)
RRS  ef 1 , ef 2 ,..., ef n
Cada ef será representada mediante una arquitectura PDE (percepcióndeliberación-ejecución) a la cual se le incorpora capacidad de memorización para que
sea capaz de mantener su estado interno y obtener así un funcionamiento similar al
biológico. La figura 2 muestra un representación de la estructura interna de cada
elemento funcional.
Fig. 2. Representación gráfica de una entidad funcional y los elementos que la componen.
La estructura de cada entidad funcional será descrita utilizando la estructura:
ef   ef , S ef , Percept ef , Mem ef , Decision ef , Exec ef (10)
Donde Φef corresponde al conjunto de percepciones; Sef es el conjunto de estados
internos; Perceptef proporciona información a la entidad funcional sobre el estado del
sistema; Memef dota a la entidad funcional con la capacidad de ser consciente de su
propio estado; Decisionef selecciona la siguiente tarea a ejecutar; Execef representa la
intención que tiene la entidad funcional de actuar sobre el sistema.
Para una entidad funcional, la percepción representa la capacidad de clasificar y
distinguir estados del sistema que regula, aquella información que a él le interesa. La
percepción se define como una función que asocia un conjunto de valores, llamados
percepciones o estímulos, con un conjunto de estados del sistema Perceptef:ef,
por lo que la percepción está asociada con los posibles estados del sistema y se
expresa como =Percept(σ).
El conjunto de posibles percepciones asociadas con un determinado ef se define
como Φef=<1, 2,…,n>, donde cada i está compuesto por una lista de pares
(señal,valorSeñal) igual que se definió anteriormente, y por extensión también se
define la percepción vacía 0 como una lista de pares nula que se producirá cuando un
elemento funcional no sea destino de ninguna señal aferente u origen de una eferente.
El conjunto de señales eferentes a una entidad funcional será el conjunto de todas las
señales producidas hacia el sistema, es decir ASIS.
Cada entidad funcional tiene un estado interno que puede recordar, lo que le
permite comportamientos más complejos. El conjunto de estados internos de una
determinada entidad funcional se define como Sef=⟨s1,s2,…,sn⟩. En el caso de nuestro
sistema regulador robótico consiste en una lista de pares (señal, valorSeñal) de todas
las señales internas de ef.
Control Robótico inspirado en los principios de la neurociencia
91
La función de decisión define una tarea según la percepción del estado del sistema,
junto con su experiencia en el pasado, determinada por su estado interno
Decisionef:ef  SefP, por lo que se puede definir que la acción que decide realizar
la entidad funcional es p=Decision(,s). Dadas las acciones definidas anteriormente
para el sistema, Decisionef puede devolver la acción ps y p0:
Decision ef ( , s )  ( SetSignalV alue ( FundD ef ( , s ))
(11)
si PreD ef ( , s )  True
Decision ef ( , s )  p 0
si PreD ef ( , s )  False
PreDef(,s) define la precondición que ha de cumplirse para ejecutar
SetSignalValue() en función de la percepción y el estado interno
PreDef:Φef×SefBoolean, y FunDef(,s) asocia a una percepción y estado interno con
la influencia que la entidad funcional ejerce en el sistema FunDef:efSefΓ.
La función de memorización asocia un estado interno de la entidad funcional con
su actual percepción del entorno y su experiencia pasada Memef:efSefSef. La
función de memorización al igual que la de decisión actúa cuando se cumple una
precondición por lo que Memef(,s)=FunMef(,s) si se cumple PreMef(,s), y en caso
contrario se produce s0, el estado vacio o estado neutro, no actualizándose el estado
interno de la entidad funcional. FunMef(,s) asocia un nuevo estado interno con una
percepción en un determinado estado interno anterior FunMef:Φef×SefSef.
Una vez la entidad funcional ha determinado qué acción tomar, debe ejecutarla.
Las acciones sobre el sistema se realizan mediante la función de ejecución definida
como Execef:PefΓ, por lo que γef=Execef(p, ef). Teniendo en cuenta las
definiciones realizadas hasta ahora, la función Execef queda definida como Execef(p,
ef)=post si se cumple pre(ef), en caso contrario se produce la influencia neutra γ0.
Por último, el sistema mecánico (MS) se define mediante el conjunto de todos los
dispositivos físicos tanto sensores (S) como actuadores (A) que lo forman
ASD=⟨a1,a2,…,an,s1,s2,…,sm⟩ junto con la función de reacción que describe cómo
reacciona el sistema robótico frente a las influencias, MS=⟨ASD,ReactMS⟩.
En el caso concreto del sistema robótico no es necesario modelar el
comportamiento de la función React ya que la respuesta del sistema robótico la
obtenemos directamente del robot ya sea real o simulado y en ella intervienen las
propias leyes físicas que lo rigen. Aunque estamos modelando el sistema de control,
éste debe obtener respuestas del sistema físico que controla y no de un modelo
abstracto de robot. De esta forma evitamos modelar mundos de forma parcial, dejando
que el sistema interaccione directamente con la realidad que le rodea y no con
entidades genéricas.
Dado que el sistema persigue mediante la ejecución de acciones transformar el
estado del sistema a un nuevo estado, dicha transformación se contemplará como la
reacción del sistema ante los intentos de influencia de los distintos elementos, es decir
React:Γ. El nuevo estado del sistema puede obtenerse como refleja la función
“(12)”:
(12)
 ( t  1)  Re act  ( t ),    1 ,  2 ,...,  n 
La influencia vacía constituye el elemento neutro del operador React. Dado que la
ejecución de la acción vacía proporciona la influencia vacía, ésta también puede
92
J.V. Berná & F. Maciá
considerarse como el elemento neutro, ya que no causará cambio de estado del
sistema.
La dinámica del sistema quedaría definida por el nuevo estado del sistema σ(t+1)
más el estado interno de todos los centros de control sn(t+1)=Memn(n(t),sn(t)), siendo
n(t) la percepción en cada instante de cada centro (Percept(σ(t))). En la figura 3
puede verse una representación gráfica del modelo descrito y su interacción con el
sistema físico.
Fig. 3. Sistema de control formado por varia ef e interactuando con el sistema mecánico a
través de de la unión de todas sus influencias.
Nuestro modelo no realiza una división entre actividad reactiva o deliberativa como
tampoco la hace el sistema neurorregulador humano. Cada centro desarrolla una
actividad que puede ser de un tipo u otro o incluso híbrida. Ésta posibilidad nos la
proporciona el paradigma de agentes. Esto permite que el modelo aproveche las
ventajas de los enfoques y técnicas en ambos ámbitos. De igual forma el modelo no
contempla las comunicaciones como el intercambio de información por valor entre ef,
y será el framework seleccionado el responsable de establecer los mecanismos
adecuados para ello. También contempla la naturaleza distribuida del sistema
biológico y su funcionamiento general: tener centros especializados en cada tarea y
que sea la unión de las acciones sencillas las que aporte un comportamiento
emergente complejo (Brooks, 1986).
4. Paradigma Software de Implementación
Del modelo propuesto se desprenden una serie de requerimientos que condicionan el
paradigma software escogido para la implementación. Estos son:
Control Robótico inspirado en los principios de la neurociencia
93
4.1 Autonomía
Cada uno de los centros de control posee un carácter autónomo, está percibiendo el
estado del mundo, o aquella parte del estado del mundo, en el que está interesado.
Esta percepción se puede realizar sobre el mundo exterior o sobre el estado de otros
centros. Tienen por tanto un carácter autónomo y por tanto el funcionamiento del
sistema es asíncrono, ya que cada elemento aportará sus propias influencias que
podrán ejercer cambios o no en el mundo o en otros elementos.
4.2 Flexibilidad
Nuestro modelo requiere para su implementación de máxima flexibilidad, es decir,
poder modificar, añadir o eliminar elementos y sus relaciones tal que nos permita
modificar el comportamiento emergente resultante. Igual que ha ocurrido en el
sistema nervioso y su evolución a lo largo de los años, cada vez que se añade una
nueva funcionalidad, se mejora un comportamiento o cambian los requisitos del
sistema, las interconexiones son alteradas, aparecen nuevos centros, algunos centros
son desactivados o sus influencias tienen un menor calado.
4.3 Desacoplamiento
Este desacoplamiento se ha de producir en dos aspectos. Por un lado permitir el
desacoplamiento funcional entre entidades, es decir, el paradigma software ocular los
detalles de la capa de comunicaciones entre los elementos, permitiendo establecer
relaciones libremente bien definidas y permitir el carácter asíncrono del sistema. Por
otro lado también debe permitir la independencia del hardware subyacente, ya sean
recursos computaciones o dispositivos de sensorización o actuación. De esta forma un
sistema de control podrá ser empleado en un robot sea cual sea su hardware,
modificando únicamente los elementos funcionales que lo forman y sus
interconexiones.
4.4 Reutilización
La plataforma de desarrollo debe permitir reutilizar código. Cada entidad funcional
será implementada de forma independiente y después enlazada en un sistema integral,
y por tanto, debe permitir poder utilizar los módulos en las aplicaciones que sean
susceptibles de ello.
4.5 Interoperabilidad
Por la naturaleza distribuida del sistema y las características anteriores, el sistema de
comunicaciones debe permitir establecer relaciones entre módulos que puedan estar
físicamente ubicados en distintos nodos. De esta forma se permitiría contemplar
94
J.V. Berná & F. Maciá
funcionalidades que no hayan sido desarrollados por un mismo grupo, aumentando las
posibilidades de aprovechamiento del know how de muchos investigadores.
4.6 Tecnología
Concretamente en nuestro trabajo, utilizaremos una Arquitectura Orientada a
Servicios (SOA) debido a que los principios de esta arquitectura se alinean
perfectamente con los requerimientos demandados por nuestro modelo [32] [33]. Las
características que comúnmente se resaltan de los servicios son [32] [33] [34]: ser
entidades autónomas y auto-contenidas de grano grueso, abstractas, reusables,
duraderas, con contratos perfectamente definidos, interoperables, componibles,
débilmente acopladas, descubribles, alineadas con el negocio e interoperables. Es por
todo ello que las SOA nos aportan en nuestro modelo conceptual los principios
arquitectónicos que nos permiten paliar algunos de los mayores hándicaps que
encontramos en robótico como son el fuerte acoplamiento entre los niveles lógicos y
físicos o la rigidez de los sistemas ante los cambios o evolución de la robótica.
Además, el basarnos en un paradigma tan extendido y estudiado nos permite valernos
de la experiencia de la comunidad SOA para extraer soluciones basadas en buenas
prácticas y propuestas exitosas.
5. Pruebas y Validación
Para la validación de nuestra propuesta hemos implementado varios comportamientos
sobre robots autónomos móviles siguiendo el modelo propuesto. El proceso de
implementación consiste en descomponer los comportamientos deseados en las tareas
fundamentales que se han de realizar y describir cada una de ellas haciendo uso del
modelo, caracterizando cada una de las funciones que lo componen y las relaciones
entre ellos, determinando las señales aferentes y eferentes de cada entidad funcional.
Los sistemas móviles son de especial interés cuando son tratados en entornos abiertos
y dinámicos, precisamente porque en dichos entornos la cantidad, calidad y exactitud
de información a la que se verán sometidos los sistemas de control es incierta, además
de no poder contemplar todas las posibles situaciones y circunstancias en las que el
robot puede verse inmerso y por lo tanto no se pueden desarrollar modelos completos
del mundo para que el sistema de control sea capaz de ofrecer una respuesta ante
cualquier estímulo. Otros de los motivos para abordar este tipo de sistemas es que
pueden ser altamente variables, es decir, pueden utilizar distintos sistemas motrices
(patas, ruedas, cadenas) distintos sistemas sensoriales, múltiples algoritmos para
estimación de posición, cálculo de rutas, etc., lo que implica que pueden variar las
fuentes de información y por tanto se requiere de una gran flexibilidad y adaptabilidad
del sistema. También es posible alterar los comportamientos deseados, como el
desplazamiento a través del entorno, búsqueda de objetivos, evasión de obstáculos y
peligros, etc., lo que implica que intervienen un mayor o menor número tareas.
En nuestro trabajo hemos abordado dos comportamientos: Comportamiento1 (B1)
- el desplazamiento por el entorno desde un punto de origen hasta un punto de
destino, y Comportamiento2 (B2) – el desplazamiento por el entorno con la evasión
Control Robótico inspirado en los principios de la neurociencia
95
de obstáculos. Como veremos, dada las características del modelo, B2 será
implementado mediante la incorporación de nuevos elementos sobre B1. Para nuestro
sistema hemos contemplado un robot genérico dotado de dos actuadores (rueda
derecha y rueda izquierda) de los cuales podemos obtener la posición actual de la
rueda (sensor codificador de eje), una brújula digital que indica la dirección actual y
un sensor frontal para la detección de obstáculos (fig. 4-a). En el análisis funcional del
comportamiento hemos dividido cada una de las tareas del robot en una entidad
funcional, independizando y desacoplando cada terea de las demás ya que cada
entidad será ejecutada de forma independiente. El análisis de C1 produce los siguiente
elementos (fig. 4-b): Sensorización, entidad encargada de monitorizar los dispositivos
sensores; Interpretación, entidad responsable de traducir los valores obtenidos por la
sensorización a datos consistentes (por ejemplo números flotantes a números con dos
decimales); Situación, elemento encargado de utilizar los datos de la interpretación
para obtener una estimación de la posición del robot (en este caso posición en el
entorno, pero podrían ser ostras estimaciones como la posición de un brazo robótico o
posicionamiento relativo); Razonador, elemento encargado de determinar cuál es la
misión a desempeñar, en este caso dirigir al robot desde el punto A hasta el punto B;
Planificador, entidad responsable de planificar la ruta del robot; Movimiento, entidad
responsable de obtener en función de la planificación, cuál es el siguiente movimiento
a realizar por el robot; Personificación, responsable de transformar el tipo de
movimiento en función de los estructura física del robot (por ejemplo, avanzar se
transformaría en mover las dos ruedas hacia adelante); Actuador, elemento
encargados de adaptar y transmitir ordenes a los dispositivos actuadores.
Fig. 4. a) Esquema del robot utilizado para pruebas. b) ef que componen el comportamiento B1.
c) ef que componen el comportamiento B2 resaltando aquellos elementos añadidos.
El análisis del comportamiento B2 incorpora sobre los ef de B1 los ef que aparecen
destacados en las fig. 4-c.: elementos Sensorización para el control para el sensor de
distancia, elementos Interpretación de esta sensorización, un nuevo elemento llamado
Restricción responsable de calcular donde se encuentra el obstáculo en función de los
96
J.V. Berná & F. Maciá
datos interpretados del sensor, y un nuevo elemento Planificador que modifica la
planificación del sistema B1 (que no tiene en cuenta obstáculos) evadiendo los
posibles obstáculos encontrados por el ef de Restricción.
Cada uno de los ef que forma el sistema de control desarrolla funciones concretas,
sencillas y desacopladas de otras funciones, por ejemplo, Situacion estima la posición
actual utilizando técnicas de odometría, Interpretación traducen codificadores de eje a
distancias recorridas en función del diámetro de las ruedas, etc. Separar cada una de
las funciones del sistema en un ef añade la propiedad de que al modificarse una
característica, por ejemplo el diámetro de una rueda, esta modificación solo produzca
cambios en los menos elementos posibles, manteniendo la independencia del resto del
sistema, y además que para construir nuevos sistemas podamos reutilizar los
elementos existentes facilitando así un desarrollo rápido y de bajo coste. Las técnicas
escogidas para implementar cada funcionalidad son sencillas, aunque puede utilizarse
cualquier otro algoritmo.
a)
Target
b)
Target
Fig. 5. a) Imagen del robot simulado ejecutando B2. b) Imagen del robot Lego ejecutando B2.
La implementación de cada entidad se ha realizado utilizando la plataforma Microsoft
Robotics Developer Studio (MRDS) ya que provee un entorno de desarrollo integrado
.NET para el diseño, ejecución y depuración de aplicaciones robóticas escalables,
concurrentes y distribuidas, además de facilitar características como la coordinación
de servicios, monitorización, configuración, despliegue y reutilización (Johns &
Taylor, 2008). Esta plataforma nos permite implementar cada entidad funcional en
forma de servicio con un bajo acoplamiento y un comportamiento similar al
expresado en el modelo. Además también posee un buen entorno para la composición
de aplicación indicando que servicios formarán parte de sistema y como se
interconectan entre ellos. Para las pruebas hemos utilizado el simulador de MRS y
robots Lego, precisamente porque tratamos de mostrar la capacidad de adaptación de
los sistemas de control a cualquier tipo de robot, aunque sus dispositivos no sean los
más eficientes. En la figura 5 se puede apreciar una vista del robot simulado a) y el
robot Lego b) ejecutando el comportamiento B2. Tanto para un sistema como el otro,
Control Robótico inspirado en los principios de la neurociencia
97
ambos se comportan como describe B2 ya que el control es independiente de la parte
física.
6. Resultados
Tras la implementación de los servicios y la composición del sistema de control,
podemos observar como el robot, tanto real como simulado, es capaz de llevar a cabo
los comportamientos descritos. Si el sistema utiliza los servicios de B2, además este
desplazamiento se produce evitando los posibles obstáculos en la trayectoria. Pasar de
B1 a B2 solo implica añadir más servicios al sistema sin modificar ninguno de los
anteriores, lo cual solo afecta a la composición de la aplicación de control utilizando
uno u otros servicios. Esta modificación se realiza fácilmente en MRDS, ya que la
composición de servicios simplemente implica indicar que servicios van a arrancarse
y como se interconectan entre ellos. Pasar del robot simulado al robot real solo
implica modificar los servicios de sensorización y actuación, conectándolo a un
dispositivo simulado o a un dispositivo real, permaneciendo el resto del sistema de
control constante. Además la implementación del control utilizando diversos
dispositivos es muy sencilla, pues el servicio de sensorización básicamente no cambia
y solo hay que establecer la conexión con el driver adecuado para acceder a un sensor
de ultrasonidos, un sensor láser o un sensor de contacto. Igualmente podemos utilizar
distintas ruedas para el desplazamiento sin que afecte al resto de elementos del
sistema, solo modificando el cálculo de distancias recorridas en función del diámetro
de las ruedas. Esto permite un total desacoplamiento entre hardware y software, y
entre los propios elementos software.
El sistema tiene la particularidad de que cada elemento opera a la frecuencia que su
propia funcionalidad requiere. Por ejemplo, los servicios encargados de monitorizar
los codificadores de eje de cada rueda utilizan ciclos de 50ms para obtener el estado
del codificador. Estos datos se transfieren a los servicios superiores pero si dicha
información no implica cambios (por ejemplo, el robot no se ha movido), los servicios
de Situación o Planificación no producirán nuevos resultados. Igualmente, el servicio
de Razonamiento arranca el sistema cuando la posición actual y la deseada no son
iguales (no se ha alcanzado el destino) pero durante la ejecución, mientras que la
posición de destino no se altere, no emitirá más ordenes hacia los servicios de
Planificación hasta que no se alcance el destino y detenga las acciones o se
especifique un nuevo punto de destino (figura 6). Cada servicio es independiente,
utiliza su propia frecuencia de trabajo, su ejecución puede influir o no en el resto del
sistema y el funcionamiento es completamente asíncrono, utilizando el paso de
mensajes entre cada servicio.
En la gráfica de la figura 6 podemos observar la actividad del robot cuando está en
reposo, se le indica que debe alcanzar un objetivo OB1, lo alcanza y vuelve a estar en
reposo, se le vuelve a indicar otro objetivo OB2, y lo alcanza de nuevo y queda en
reposo. Los estados de reposo indican cuando el robot está quieto, o bien porque no se
le ha indicado un objetivo o porque ya lo ha alcanzado. Las fases de "OB1" y "OB2"
indican cuando el robot está buscando una posición de destino. Los resultados
muestran como los servicios que mantienen contacto más directo con las capas
98
J.V. Berná & F. Maciá
hardware, como los de sensorización mantienen una actividad intensa, aunque no se
esté produciendo movimiento, ya que estos servicios son autónomos y proactivos, su
misión es obtener constantemente el estado de los sensores, en este caso codificadores
de eje de cada rueda. También se muestra como los servicios de actuación no entran
en funcionamiento hasta que no existe una objetivo. También se puede apreciar como
la actividad es menor cuanto más se alejan los servicios de la capa física, es el caso
del servicio de Razonamiento. Este servicio solo actúa para iniciar el sistema cuando
se busca un objetivo y para pararlo una vez alcanzado. Este efecto es el consiguiente
al tratarse de una arquitectura híbrida, donde los servicios que están en contacto con la
capa hardware implementan una lógica más reactiva, mientras que los servicios
destinados a la planificación, razonamiento o situación, implementan una lógica más
de tipo cognitivo (razonando sobre la situación actual aportada por los servicios
inferiores antes de emitir una influencia).
Otra particularidad es que al tratarse de servicios cada uno de ellos puede ubicarse,
en un caso extremo, en un nodo distinto de red. Esto permite que los servicios con
mayor carga de procesamiento puedan residir en computadoras con mayores recursos,
mientras que los servicios de sensorización o actuación, que prácticamente reciben y
emiten señales desde y hacia los dispositivos físicos puedan residir en dispositivos
embebidos ubicados en el propio hardware o muy cercano a éste.
ST
Target 1
ST
Target 2
Re
0
Cognitivo
ST
Pl
Mo
Si
10
5
0
Em
Inc
Inl
10
Reactivo
5
0
10
5
0
ST - Standby, robot espera un nuevo objetivo
Inr
Acl
Acr
Sec
Sel
Ser
Target 1/2 - robot moviéndose hacia objetivo
Fig. 6. Grafica que muestra la actividad de cada centro durante el comportamiento B1. La
actividad se mide en número de mensajes emitidos por segundo. Se muestre la actividad
durante las búsqueda de dos objetivos.
Aunque por simplicidad no se muestran otras gráficas, los resultados obtenidos para
B2, tanto en el simulador como robots reales siguen los mismos patrones de
Control Robótico inspirado en los principios de la neurociencia
99
comportamientos que el mostrado en la figura 6, permitiendo al robot realizar
desplazamientos a través de terrenos desconocidos con total soltura y con la única
información que es capaz de percibir sus sensores.
Comparando este sistema con otros basados en selección de acción, nuestra
propuesta presenta la ventaja de que no es necesario tener un conocimiento expreso de
la situación para discernir sobre que comportamiento es necesario seleccionar, ya que
todos los comportamiento están en ejecución a la vez y es el resultado de todas las
acciones lo que lleva al cumplimiento de la misión. Respecto a otros esquemas
deliberativos presenta la ventaja de no requerir complicados modelos del mundo o
procesos complejos para inferir conocimiento, ya que es suficiente con identificar
cuáles son las tareas que se realizan y ubicar cada una de ellas en un servicio.
Tampoco necesitamos estar considerando para ello el sistema completo, solo hay que
conocer para cada servicio, de donde provienen sus señales aferentes y hacia donde se
encaminan sus señales eferentes.
7. Conclusiones
En este trabajo se ha razonado sobre la idoneidad de buscar enfoques basados en la
biología para diseñar sistemas de control robótico que permitan asimilar el
comportamiento de los sistemas robóticos a los de los seres humanos. Además de la
necesidad de que estos sistemas puedan ser implementados mediante paradigmas y
tecnologías que faciliten los ciclos de desarrollo, despliegue y mantenimiento
mediante propiedades como la reutilización de código, la composición ágil de
aplicaciones o la posibilidad de distribuir el sistema sobre diversos nodos en función
de los requerimientos hardware de la lógica de control.
Hemos propuesto un modelo de sistema de control inspirado en los pilares
funcionales del sistema neurorregulador humano, caracterizando los centros de
control mediante un marco formal basado en sistemas multi-agente. Tener un modelo
formal nos permite poseer un referente común para la construcción de cualquier
sistema de control robótico. Este modelo contiene las ventajas de las arquitecturas
tanto reactivas como deliberativas pues es un modelo híbrido como el sistema
neurorregulador humano.
También se ha justificado la necesidad de utilizar un paradigma software que
permita implementar las características del modelo, sin añadir nuevas tecnologías o
frameworks, aprovechando las ya existentes. En este caso se ha seleccionado los
servicios, pues la naturaleza del modelo es distribuida los servicios han demostrado su
madurez y capacidad en otros entornos como el e-business, además de adaptarse
perfectamente a la estructura de las entidades modeladas.
Se ha proporcionado una implementación concreta del modelo para el control de
sistemas móviles en entornos abiertos y dinámicos. Esta implementación permite
demostrar la viabilidad en la instanciación del modelo, la flexibilidad tanto del
modelo como de la tecnología seleccionada para su desarrollo, permitiendo incorporar
más o menos centros para modificar el comportamiento o permitiendo variar los
dispositivos que son controlados, ya sean virtuales o reales.
100
J.V. Berná & F. Maciá
Durante las pruebas, el modelo exhibe las características propias del sistema
regulador, donde los centros que permanecen en contacto con los dispositivos físicos
mantienen una actividad constante (reactivos), mientras que los centros de control que
exhiben funcionalidades más cognitivas solo entran en funcionamiento cuando las
circunstancias lo requieren (deliberativo). Este comportamiento asíncrono además de
ser una característica de los sistemas biológicos, también es una de las necesidades
fundamentales en los sistemas de control robótico.
En la actualidad nos encontramos trabajando en dos grandes líneas. Por un lado
estamos aumentando el catálogo de servicios disponibles para proporcionar
funcionalidad, como el mapeado de entornos, la corrección de error de
posicionamiento mediante integración de varias medidas y el reconocimiento de
patrones en imágenes. Por otro lado, también estamos investigando sobre la
incorporación de técnicas que incorporen la neuromodulación sobre el sistema. Este
neuromodulación no modifica una funcionalidad sino que la altera haciéndola
prioritaria o secundaria en la actividad del sistema. La neuromodulación exige de la
participación de más centros de control que no aportan una funcionalidad en sí, sino
que potencian o inhiben a los centros ya participantes del sistema.
8. Referencias.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Bekey, G., Ambrose, R., Kumar, V., Lavery, D., Sanderson, A., Wilcox, B., Yuh, J.,
Zheng, Y. (2008). Robotics. State of the art and future challenges. Imperial College
Press.
IFR Statistical Department. (2010). World Robotics: Service Robots 2010.
Berná-Martínez, J. V., Maciá-Pérez, F. (2010). Model of Integration and
Management for Robotic Functional Components Inspired by the Human
Neuroregulatory System. IEEE International Conference on Emerging Technologies
and Factory Automation 2010. Bilbao-Spain.
Brooks, R. A. (2002). Flesh and machines. How robots will change us. Pantheon.
Langley, P., Laird, J. E., Rogers, S. (2009). Cognitive architectures: Research issues
and challenges. Cognitive Systems Research, 10-2, pp.141-160. Elsevier.
Redgrave, P., Prescott, T.J., Kurney, K. (1999). The basal ganglia: a vertebrate
solution to the selection problem?. Neuroscience 89:1009–1023.
Arkin, R. C. (1998). Behavior-Based Robotics. The MIT Press.
Brooks, R. A, (1986). A robust layered control system for a mobile robot. IEEE
Journal of Robotics and Automation, 2(1), 14-23.
Arkin, R.C. (2008). Governing lethal behavior: embedding ethics in a hybrid
deliberative/reactive robot architecture. Proc. 3rd ACM/IEEE international
conference on Human robot interaction.
Bullo, F., Cortes, J., Martinez, S. (2009). Distributed Control of Robotic Networks: A
Mathematical Approach to Motion Coordination Algorithms. Princeton University
Press.
Anderson, J. R., Bothell, D., Byrne, N. D., Douglass, S., Lebiere, C., Qin, Y. (2004).
An integrated theory of the mind. Psychological Review, 111, 1036–1060.
Laird, J. E. (2008). Extending the Soar cognitive architecture. Proc. of the artificial
general intelligence conference. Memphis, TN: IOS Press.
Langley, P., Messina, E. (2004). Experimental studies of integrated cognitive
systems. Proc. of the performance metrics for intelligent systems workshop
Control Robótico inspirado en los principios de la neurociencia
101
14. Carbonell, J. G., Knoblock, C. A., Minton, S. (1990). PRODIGY: An integrated
architecture for planning and learning. In K. Van Lehn (Ed.), Architectures for
intelligence. Hillsdale, NJ: Lawrence Erlbaum.
15. Zhou, T., Fan, X., Yang, S. (2010). Path planning for mobile robots based on hybrid
architecture platform. Computer and Information Science, 3(3), pp 117-121.
16. Posadas, J. L., Poza, J. L., Simo, J. E., Benet, G., Blanes, F. (2008). Agent-based
distributed architecture for mobile robot control. Engineering Applications of
Artificial Intelligence, 21, pp. 805-823.
17. Li, C., Bodkin, B., Lancaster, J. (2009). Programming Khepera II Robot for
autonomous navigation and exploration using the hybrid architecture. Proceedings of
the 47th Annual Southeast Regional Conference..
18. Noback, C. R., Strominger, N. L., Demarest, R. J., Ruggiero, D. A. (2005). The
Human Nervous System. Structure and Function. Williams & Wilkins.
19. Furness, J. B (2006). The Enteric Nervous System. Blackwell Publishing.
20. Jackson, J. H. (1958). Evolution and dissolution of the nervous system. In J. Taylor
(Ed.), Selected writings of John Hughlings Jackson, 2, pp. 45–75. London: Staples
Press. (Original work published 1884).
21. Le Doux, J. (1995). The Emotional Brain. Emotion: clues from de brain. Annual
Review of Psychology, 46, pp. 209-235.
22. Berntson, G. G., Boysen, S. T., Cacioppo, J. T. (1993). Neurobehavioral organization
and the cardinal principle of evaluative bivalence. Annals of the New York Academy
of Sciences, 702, 75-102.
23. Gallistel, C. R. (1982). The organization of action: a new synthesis. Psychology
Press.
24. Arnold, A. P., Etgen, A. M., Fahrbach, S. E., Rubin, R. T., Pfaff, D. W. (2009).
Hormones, Brain and Behavior. Academic Press.
25. Ferber, J. (1999). Multi-Agent Systems. An Introduction to Distributed Artificial
Intelligence. Addison-Wesley.
26. Weiss, G. (1999). Multiagent Systems: A Modern Approach to Distributed Artificial
Intelligence. The MIT Press.
27. Macia-Perez, F., Garcia-Chamizo, J. M. (2006). Mobile Agent System Framework
Suitable for Scalable Networks. Kybernetes. The International Journal of Systems
and Cybernetics, 35, 688-688. Emerald.
28. Engström, H., Kummeneje, J. (1997). ABBility: Agent Technology and Process
Control. Department of Computer and Systems Science. University of Stockholm.
29. Mas, A. (2005). Agentes Software Y Sistemas Multi-Agente: Conceptos,
Arquitecturas y Aplicaciones. Pearson.
30. Garcia-Chamizo, J. M., Macia-Perez, F., Soriano-Paya, A., Ruiz-Fernandez, D.
(2003). Simulation of the Neuronal Regulador of the Coger Urinary Tract Using a
Multiagent System. LNCS, Springer-Verlag, 2687, 591-598.
31. Ruiz-Fernandez, D., Garcia-Chamizo, J. M., Macia-Perez, F., Soriano-Paya, A.
(2004). Modeling the Distributed Control of the Lower Urinary Tract Using a
Multiagent System. Lecture Notes in Artificial Intelligence, 3131, 104 -114.
32. Erl, T. (2005). Service-Oriented Architecture (SOA): Concepts, Technology, and
Design. Prentice Hall.
33. Marks, E. A., Bell, M. (2006). Service-Oriented Architecture. A planning and
Implementation Guide for Business and Technology. Wiley.
34. SOA Reference Model. OASIS. (Online) Available at: http://docs.oasis-open.org/soarm/v1.0/soa-rm.pdf. Septiembre, 2011.
35. Johns, K., Taylor, T. (2008). Professional Microsoft Robotics Developer Studio.
Wrox.
Descargar