Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Implementacion de una estrategia de control
distribuido en un equipo de robots moviles
Trabajo de proyecto de gradopresentado al
Departamento de Ingenierıa Electrica y Electronica
por
Diego Alejandro Rodrıguez Ramırez
Asesor: Nicanor Quijano SilvaCoasesor: Carlos Francisco Rodrıguez
Para optar al tıtulo deIngeniero Electronico
Departamento de Ingenierıa Electrica y ElectronicaUniversidad de Los Andes
Enero 2008
Implementacion de una estrategia de control
distribuido en un equipo de robots moviles
Aprobado por:
Fernando de La Rosa
Nicanor Quijano Silva, Asesor
Carlos Francisco Rodrıguez, Coasesor
Fecha de Aprobacion
0000
Dedicatoria
Soberano Dios: aunque a veces no te logre ver, se que siempre estas
aquı; mis triunfos solo son tuyos y solamente tuyas las sendas de
camino.
iii
0000
Reconocimientos
Agradezco a los profesores Nicanor Quijano y Carlos F. Rodrıguez por su guıa
y apoyo sin los cuales no hubiera podido culminar este proyecto y a mi familia y
amigos por impulsarme y darme una razon para seguir en todo momento.
Por ultimo agradezco a la Secretarıa de Educacion Distrital y a la Universidad de
los Andes por la oportunidad que se me dio de cursar mis estudios en tan honorable
institucion.
iv
0000
Tabla de Contenido
Dedicatoria III
Reconocimientos IV
Lista de Tablas VII
Lista de Figuras VIII
Resumen IX
I. Introduccion X
II. Marco teorico XII
2.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
2.2. Conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
2.3. Inspiracion En Sistemas Naturales . . . . . . . . . . . . . . . . . . . xviii
2.3.1. Ejemplos del comportamiento de los insectos . . . . . . . . . xxi
2.4. Sistemas Artificiales Aplicados a Robotica Movil . . . . . . . . . . . xxv
2.4.1. Ejemplos de solucion de problemas con robotica movil . . . . xxvii
III. Elementos de la robotica movil y el control distribuido XXX
3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
3.2. Descripcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi
3.2.1. Elementos basicos de una tarea distribuida . . . . . . . . . . xxxi
3.2.2. Elementos de los robots . . . . . . . . . . . . . . . . . . . . . xxxii
3.3. Estrategia de control . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
3.3.1. Funciones de deseo de giro y velocidad . . . . . . . . . . . . . xxxviii
3.3.2. Comportamientos para funciones de deseo de giro y velocidad xli
v
0000
3.3.3. Implementacion de funciones de deseo de giro y velocidad . . xlix
3.3.4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . li
IV. Implementacion de control distribuido LIII
4.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . liii
4.2. Simulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . liii
4.3. Tareas resueltas por control distruibuido . . . . . . . . . . . . . . . . lvi
4.3.1. Vigilancia cooperativa . . . . . . . . . . . . . . . . . . . . . . lvi
4.3.2. Convergencia robots a puntos especıficos . . . . . . . . . . . lviii
4.3.3. Rodear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lix
4.3.4. Concordancia de todos los robots a un mismo punto . . . . . lxi
4.3.5. Movimiento de robots en cojunto . . . . . . . . . . . . . . . . lxi
4.3.6. Busqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxii
4.4. Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxiii
V. Conclusiones y trabajo futuro LXV
Apendice A. — Interfaz de ingreso de datos del simulador LXVII
vi
0000
Lista de Tablas
1. Condiciones de velocidades de ruedas para giro del robot. . . . . . . . xl
2. Parametros de control para el comportamiento buscar. . . . . . . . . xliv
3. Parametros de control para el comportamiento seguir. . . . . . . . . . xlv
4. Parametros de control para el comportamiento evitar. . . . . . . . . . xlvii
5. Parametros de control para el comportamiento recorrer. . . . . . . . . l
6. Funciones de simulador. . . . . . . . . . . . . . . . . . . . . . . . . . liv
7. Parametros de control para el comportamiento recorrer. . . . . . . . . lxiv
vii
0000
Lista de Figuras
1. Rangos de deteccion sensorial para un robot . . . . . . . . . . . . . . xxxiii
2. Informacion de angulos y distancias medidas para control del robotcon respecto a un objetivo. . . . . . . . . . . . . . . . . . . . . . . . . xxxv
3. Esquema de cinematica diferencial . . . . . . . . . . . . . . . . . . . . xxxvi
4. Esquema de un control en lazo cerrado. . . . . . . . . . . . . . . . . . xxxviii
5. Informacion de angulos y distancias de giro del robot con respecto aun objetivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv
6. Zona de evasion de obstaculos. . . . . . . . . . . . . . . . . . . . . . . xlvi
7. Trayectoria recorrida por un robot bajo comportamiento recorrer. . . xlix
8. Trayectoria espiral con forma incorrecta. . . . . . . . . . . . . . . . . l
9. Funcion tangente hiperbolica. . . . . . . . . . . . . . . . . . . . . . . li
10. Ejemplo de cuadros consecutivos de una simulacion. . . . . . . . . . . lv
11. Vigilancia de un robot. a) ∆r = 0,75. b) ∆r = 1. c) ∆r = 1,5 . . . . . lvii
12. Vigilancia para varios robots. a) 1 robot. b) 2 robots. c) 3 robots . . . lviii
13. Comportamiento de un solo robot buscando un objetivo . . . . . . . . lix
14. Comportamiento de varios robots moviendose en un mismo espacio . lx
15. Comportamiento de robots rodeando un objetivo . . . . . . . . . . . lx
16. Concordancia de muchos robots a un mismo punto. a) 3 robots, b)15 robots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lxi
17. Comportamiento colectivo para buscar un objetivo. . . . . . . . . . . lxii
18. Un robot buscando un objeto lejano. . . . . . . . . . . . . . . . . . . lxiii
viii
0000
Resumen
En los ultimos anos se ha aumentado la investigacion en la resolucion
de tareas por medio de la robotica movil. Esta filosofıa es basada en el movimiento
coordinado y dirigido de robots relativamente simples. Si todos los robots que se
tienen en el campo son iguales se dice que se tiene un grupo homogeneo, y si ningun
robot tiene mayor prevalencia sobre el control del equipo se tiene una estrategia de
control distribuida. En este trabajo se desarrolla una estrategia de control distribui-
do para un equipo de robots moviles homogeneos. En la primera parte se realiza
una revision del estado del arte del tema. Luego, se definen las bases tecnologicas y
teoricas necesarias para el desarrollo de la estrategia de control. Despues, se realiza
el desarrollo e implementacion del controlador basado en comportamientos, expli-
cando uno a uno los comportamientos implementados y la forma de activarlos y
desactivarlos. Por utlimo, se muestra la realizacion de un simulador para probar la
estrategia de control y se plantean y resuelven algunos problemas usando la estrate-
gia de control desarrollada. Se termina con algunas conclusiones y la descripcion del
trabajo futuro.
ix
0000
Capıtulo I
Introduccion
En la actualidad, la robotica es uno de los campos con mayor investigacion y
desarrollo, llegando a importantes niveles de automatizacion y solucion de problemas
en los que interviene un solo agente relativamente simple [7]. No obstante, podemos
encontrar algunas tareas que por su naturaleza son demasiado complejas o imposibles
de realizar por un solo robot, o que resultan ineficientes al ser atacadas desde esta
perspectiva. Es por esto que se hace necesario el desarrollo de otras metodologıas
que permitan atacar estos problemas en aras de simplificar su solucion, como por
ejemplo, la cooperacion, que es la union de individuos trabajando juntos para lograr
un fin comun [1]. Particularmente, podemos encontrar un problema muy interesante,
que consiste coordinar el movimiento de varios individuos independientes (robots),
en un mismo espacio delimitado y con alguna meta especıfica. Es necesario observar,
desarrollar y controlar muchos elementos de su movimiento, controlar las trayectorias
que cada robot (o todos en conjunto) seguirıa, evitando las colisiones e interferencias
entre ellos, y optimizando su movimiento.
Con el fin de llegar a soluciones cada vez mejores, en los ultimos anos se ha
generado una gran tendencia de estudiar los sistemas naturales como inspiracion
para obtener mejores soluciones. Este es el caso del estudio de las hormigas, abejas,
termitas y avispas, llamados insectos sociales ([4],[17],[31],[32],[36]) quienes traba-
jan en conjunto para lograr un fin comun que serıa imposible alcanzar de manera
individual. De esta observacion se desarrollan conceptos como swarm intelligence
([3],[26]). A pesar de no ser un campo de investigacion muy viejo, cada vez invita
x
0000
la mirada de mas personas, llegando a importantes desarrollos en campos de opti-
mizacion, computacion y robotica. No obstante las investigaciones previas, este es
un campo en el que queda mucho por hacer, y en el que no se ha trabajado mucho
en nuestro paıs. Por esto, se ve necesario comenzar a desarrollar ideas y aplicaciones
que permitan entender los sistemas de control distribuido y cooperacion, con el fin
de desarrollar tecnicas innovadoras en estas areas.
xi
0000
Capıtulo II
Marco teorico
2.1. Introduccion
Tradicionalmente, la robotica ha sido vista desde una perspectiva donde se bus-
ca la creacion de sistemas de alta complejidad con un alto grado de integracion
tecnologica. Como dice [7], “hoy en dıa, los robots industriales tienden a ser cada
dıa mas sofisticados, con un mayor numero de funciones y mayor nivel de progra-
macion”. El desarrollo de robots implica un trabajo riguroso y conjunto de muchos
campos como los sistemas mecanicos, teorıa de control, analisis y procesamiento de
senales, inteligencia artificial, entre muchos otros. Esto implica un alto grado del
conocimiento de las ciencias basicas (e.g., matematica y fısica) que permitan mod-
elar y controlar cada uno de los sistemas del robot, y una operacion conjunta de
un gran numero de sensores y actuadores, ordenados por un sistema electronico de
gran e de complejidad. Esto sin tener en cuenta que la interaccion del robot con el
medio, es un problema de mayor complejidad ([9]).
A pesar que bajo esta perspectiva se han obtenido resultados muy buenos en la
solucion de problemas que impliquen automatizacion y robotica, tıpicamente se ob-
tienen sistemas muy complejos y costosos, y que no presentan flexibilidad y robustez
por si solos.
Es por esto que se hace necesaria la introduccion de una nueva perspectiva para
atacar diversos problemas, buscando obtener soluciones, no centralizadas sino dis-
tribuidas ([22]). Con esto se busca generar sistemas formados por individuos (robots)
relativamente simples, que se coordinen entre si para realizar tareas con altos grados
de complejidad.
xii
0000
Diversos investigadores han trabajado sobre sistemas distribuidos para la solu-
cion de problemas en robotica, optimizacion y comunicaciones en redes durante los
ultimos anos, hecho que se encuentra plasmando en los trabajos de sintetizacion de
las direcciones, fundamentos y resultados que en este campo se han obtenido. Estos
temas son abordados por autores, de quienes se toma algunas frases para reforzar
esta afirmacion: [22] dice: “el problema de sintetizar y analizar comportamientos
autonomos y colectivos solo recientemente ha sido comenzado a ser estudiado por
la comunidad robotica”, y [6] “se ha incrementado el interes de investigacion en sis-
temas compuestos de multiples robots autonomos que exhiben un comportamiento
cooperativo”, mientras que [3] y [11], presentan una importante coleccion de concep-
tos fundamentales para el trabajo de la robotica, y en general sistemas distribuidos.
En este capıtulo, se presenta una pequena revision del estado del arte del cam-
po de los sistemas distribuidos, particularmente, los robots moviles cooperativos.
Primero, se presenta una serie de razones y propiedades que muestran la impor-
tancia del estudio de los sistemas distribuidos, y algunas definiciones y conceptos
importantes. Luego, se muestran algunas observaciones de sistemas naturales (com-
portamiento de los llamados insectos sociales), que han servido de inspiracion a
sistemas artificiales; y finalmente, se presenta algunos trabajos de aplicaciones de
estos conceptos para la solucion de problemas especıficos.
2.2. Conceptos
Atacar un problema desde una perspectiva distribuida, solo es provechoso bajo
condiciones particulares que dependen de la naturaleza del problema. [6] y [11]
presentan algunas razones bajo las cuales es mejor el uso de robots cooperativos,
que el de robots centralizados, sus conceptos se pueden resumir como:
Tareas que son muy complicadas o imposibles para un solo individuo, o que
pueden ser fuertemente optimizadas por el uso de varios individuos trabajando
sobre ella (e.g:, mover una caja con mayor peso que el que puede mover un
solo robot).
xiii
0000
Construir robots muy simples, puede ser mas facil, economico, flexible y ro-
busto que un unico robot muy poderoso.
Las tareas implementadas bajo una perspectiva cooperativa pueden ser mejo-
radas y optimizadas usando diferentes algoritmos, como por ejemplo, estrate-
gias inspiradas en sistemas naturales.
Muchas de estas ventajas se basan en un propiedad de los sistemas multi-agentes
llamada sinergia ([28], [3], [19]). La sinergia se puede definir como la propiedad de
un sistema de dos o mas individuos, en el que el resultado del trabajo combinado,
es mayor a la suma de los resultados del trabajo individual de cada uno. Un claro
ejemplo de sinergia se ve en el transporte cooperativo por hormigas. [3]basado en
observaciones de transporte de comida por una colonia de hormigas, presentan un
estudio de las ventajas del transporte en grupo en hormigas, demostrando que la
eficiencia del transporte aumenta considerablemente con el numero de hormigas
involucradas en la operacion.
Para poder hablar de sistemas multi-agentes, es necesario incluir el concepto de
agente. [8] realiza un estudio sobre los agentes, sus propiedades y caracterısticas, y
sus relaciones para formar sistemas sociales mas complejos. Un agente se define como
una entidad independiente que hace parte de un sistema. Idealmente, dentro de un
sistema, todos los agentes deben ser semejantes, o por lo menos tener caracterısticas
que los puedan relacionar unos con otros.
Un agente tiene autonomıa y racionalidad, es decir que tiene capacidad para
tomar decisiones y comportamientos especıficos a situaciones dadas, muchas veces
determinadas por alguna historia o experiencia previa que pueda tener relacion con
ese tema en particular. Esta capacidad le permite relacionarse con otros individuos
dentro del sistema, lo que determina su comportamiento social.
Un concepto muy interesante relacionado con los agentes y sus relaciones sociales,
es el de sociedad anonima y sociedad individualizada. Una sociedad anonima es
aquella en la que los miembros del grupo no se reconocen en forma individual. Un
excelente ejemplo de este tipo de sociedades son las formadas por insectos. Si un
grupo de termitas construyen algunos soportes para un compartimiento del nido,
xiv
0000
y una de ellas es cambiada por alguna otra, las demas no lo notan, y continuan
igualmente con su trabajo. Por otro lado, en una sociedad individualizada, cada
individuo representa un papel completamente diferente frente a los otros del grupo.
El mejor ejemplo de estas sociedades es la sociedad humana. Una sociedad formada
por robots cooperativos es por naturaleza una sociedad anonima, caracterıstica que
resultara ventajosa en el momento de la implementacion de estrategias de control.
Cuando los agentes de un grupo se relacionan entre si, expresan un compor-
tamiento colectivo, no necesariamente cooperativo. La cooperacion entre individuos
es solo una sub-clase de comportamiento colectivo, en la que individuos del sistema se
relacionan entre si para aumentar la ganancia o productividad del sistema ([6],[22]).
[1], muestra que la cooperacion es un mecanismo que siempre tiende a surgir en for-
ma espontanea y natural en los sistemas de muchos individuos. Un claro ejemplo de
este fenomeno se encuentra en la llamada guerra de trincheras de la primera guerra
mundial, donde algunas tropas de los dos bandos llegaban a situaciones de relativa
paz, con el fin de no hacerse dano entre ellos. Tambien se presentan diversos casos
en sistemas biologicos, donde la cooperacion surge como respuesta a necesidades
grupales, o incluso, en algunos casos, vienen pre-dispuestas geneticamente. Esto se
puede ver como el resultado de la “memoria” de la evolucion de los sistemas ([17]).
Otra conclusion importante de [1], tiene que ver con la posibilidad de obtener
un resultado negativo del individuo con el que se coopera, fenomeno que el llama
defraudacion. La cooperacion solo puede surgir en ambientes donde una parte no
pueda defraudar a la otra, ya que en caso en el que un individuo se ve defraudado
tendera a dejar sus comportamientos cooperativos hacia el futuro.
La cooperacion es una caracterıstica necesaria en sistemas multi-agentes, ya que
de esta depende la sinergia que pueda presentar el sistema. En ambientes no cooper-
ativos, el sistema no muestra sinergia y el resultado tiende a ser menos provechoso,
obteniendo un resultado completamente contrario al que se desea. Dado que esta
propiedad es deseada en el trabajo de sistemas roboticos multi-agentes, es de mucha
importancia la definicion de los objetivos y los comportamientos que se establezcan
para los robots, como respuesta a actitudes de sus sımiles.
xv
0000
Con el fin de introducir los conceptos de sistemas cooperativos a la robotica
movil, muchos investigadores han venido usando algunos terminos para referirse
a conceptos que se presentan en estos sistemas. [22] y [6], presentan una breve
descripcion de algunos de ellos.
Comportamientos y objetivos
Un comportamiento es una ley de control que determina la reaccion del agente
frente a alguna circunstancia especıfica, para buscar o mantener un logro particu-
lar. Por ejemplo, para un robot movil un comportamiento podrıa ser seguir a otro
individuo con el fin de establecer alguna formacion, o detenerse para evitar colision
contra algun objeto. Por otro lado, los objetivos son los estados terminales a los que
se quiere llevar el sistema. Ası, por ejemplo, un objetivo es evitar obstaculos en un
campo o minimizar la interferencia entre agentes.
Interferencia y conflicto
La interferencia se puede ver como todo aquello que bloquea o se opone a lograr
un objetivo. En sistemas multi-agentes, cuando los comportamientos de un individ-
uo se oponen (en alguna medida) con los comportamientos de otro, se tiene conflicto
entre los agentes. Un problema especial se presenta cuando todos los agentes tienen
un mismo objetivo, pero los comportamientos para alcanzarlo no requieren coop-
eracion. En este caso tiene competencia entre los individuos.
Arquitectura de grupos
La arquitectura provee la estructura bajo la cual los comportamientos colec-
tivos son implementados y determinan las capacidades y limitaciones del sistema.
[6], establecen como componentes fundamentales de las arquitecturas de grupo, la
centralizacion o descentralizacion, la diferencia de individuos, la comunicacion, y la
habilidad para modelar los otros individuos. Entender y establecer en forma clara
cada uno de estos componentes, es un tema de vital importancia para la creacion
de sistemas cooperativos. A continuacion se presenta una breve descripcion de cada
uno de estos aspectos.
Centralizacion/descentralizacion: Las estrategias centralizadas tienen solo un
elemento de control, el cual ordena y determina los comportamientos que debe
xvi
0000
tener todo el sistema. Puede tener varios componentes, pero todos estaran regi-
dos por un control principal. Cuando se tienen estrategias descentralizadas, se
pueden clasificar en distribuidas y jerarquicas. En las estrategias distribuidas,
todos los elementos son iguales con respecto al control de la tarea, mientras
que en las jerarquicas, se presenta centralizacion local, donde un elemento tiene
control sobre un sub-grupo del total de individuos que componen el sistema.
Bajo esta clasificacion, solo podemos hablar de agentes, tal como se definieron
anteriormente, en las estrategias distribuidas. Una ultima posibilidad, es tener
estrategias hıbridas, donde se tiene un “lıder”, sobre individuos automatas.
Diferenciacion: Los robots pueden ser homogeneos o heterogeneos. Una arqui-
tectura es homogenea cuando todos los individuos poseen las mismas capaci-
dades con respecto a la tarea, y es heterogenea cuando los individuos poseen
capacidades diferentes, i.e., un grado de especializacion con respecto a alguna
tarea. En general, las estrategias heterogeneas implican mayor dificultad de
implementacion, porque cada agente necesita conocer las capacidades individ-
uales de sus companeros. ”
Comunicacion: Para lograr la cooperacion, resulta necesario tener comuni-
cacion entre los agentes. Existen tres grados de comunicacion: a traves del
medio, mediante sensores y comunicacion directa. La comunicacion a traves
del medio ocurre porque un individuo puede detectar el efecto de sus com-
paneros sobre el medio. No se presenta comunicacion explıcita entre ellos. Este
fenomeno llamado stigmergy, es tratado por otros autores como [28], quienes
describen claramente la importancia de este fenomeno, y su potencial como
suficiente para lograr generar sinergia entre los individuos. La comunicacion
a traves de sensores ocurre como resultado que unos individuos puedan re-
conocer a los otros. Requiere poder diferenciar un agente de los otros objetos
que se puedan presentar en el medio. Es indispensable para el modelado de
otros agentes. Por ultimo, la comunicacion directa se refiere a la presencia
comunicacion explıcita entre los agentes, expresando sus comportamientos y
objetivos. Es indispensable, cuando la cooperacion requiere de negociacion
xvii
0000
entre individuos.
Modelado de otros agentes: Puede presentarse o no (cuando se presenta, puede
mejorar efectividad de cooperacion). Necesita mas que comunicacion a traves
del medio. Implica poder hacer un modelo de intenciones, creencias, acciones
habilidades y estado de los otros agentes. Esta informacion puede generar
cambios en el comportamiento del agente sensante.
Hasta este punto se han formulado una serie de conceptos necesarios para el de-
sarrollo de sistemas roboticos multiagentes. No solo es necesario establecer una ar-
quitectura para determinar el comportamiento del grupo de robots, pero el conjunto
de las diferentes configuraciones que se pueden tener basandose en estas caracterısti-
cas, reflejaran en gran medida las capacidades que tendra el conjunto de los robots
y el tipo de estrategias de control que se pueden aplicar a ellos, y estos elementos
deben ser elegidos en funcion al equipo de robots que se tenga y los objetivos que
se busquen con ellos.
2.3. Inspiracion En Sistemas Naturales
Los sistemas naturales han servido como inspiracion para desarrollos tecnologi-
cos desde tiempos muy antiguos. Campos como el de la robotica cooperativa, y
en general los sistemas artificiales distribuidos, han tenido algunos de sus may-
ores avances tomando como ejemplo el comportamiento de los llamados “insectos
sociales” (hormigas, abejas, termitas y avispas). Segun [3], en los ultimos 5 anos
la solucion de problemas basados en el comportamiento de los insectos sociales se
ha convertido en un tema de gran interes, atacando los problemas desde una per-
spectiva distribuida y propiciando interacciones directas o indirectas entre agentes
relativamente simples.
La gran importancia que estan teniendo los insectos sociales como punto de
partida para la busqueda de nuevas soluciones desde una perspectiva distribuida
no es casualidad. [36], en su trabajo sobre insectos sociales, habla de ellos como
“quienes mejor muestran el barrido completo de todos los niveles de organizacion de
una sociedad”. Las colonias de insectos logran un altısimo grado de coordinacion,
xviii
0000
llegando a tener trabajando hasta 22 millones de insectos en una misma colmena.
[3] habla de una colonia de insectos como un sistema de solucion de problemas de-
scentralizados/distribuidos compuesto por muchas entidades relativamente simples
interactuando entre ellas. Gracias a la interaccion de individuos que solo exhiben
un comportamiento relativamente simple por ellos mismos, surgen complejos pa-
trones de comportamiento grupal, fenomeno conocido como Swarm intelligence o
inteligencia de enjambres. [34], [17].
Swarm intelligence ofrece una nueva perspectiva para atacar problemas en forma
distribuida, obteniendo sistemas muy complejos a partir de agentes muy sencillos.
Esta cualidad la hace una perfecta base para aplicaciones de robotica movil, teniendo
en cuenta el enorme problema de construir y coordinar robots.
De las sociedades de insectos podemos obtener algunas propiedades que nos
ayudan a modelar y comprender su comportamiento y obtener un mejor resultado
en la creacion de sistemas artificiales. Estas propiedades son la organizacion propia
(self-organization), comunicacion ambiental (stigmery) y la sinergia.
Organizacion propia
Los modelos de organizacion propia (SO por sus iniciales en ingles), dicen que
se puede obtener cualquier sistema complejo a partir de interacciones de procesos
simples. Es un conjunto de mecanismos dinamicos que surgen como resultado de
interaccion entre sus componentes. Las reglas de comportamiento que se obtienen
en el sistema son producto de decisiones tomadas en funcion de informacion local,
lo que ayuda que los resultados de la SO sean efectos propios del sistema, mas que
de influencias externas. La SO posee 4 ingredientes principales:
Realimentacion positiva: Permite reforzar una accion determinada con el fin
de crear estructuras de comportamientos. Algunos ejemplos se observan en el
establecimiento de caminos que usan las hormigas para buscar comida. Cada
hormiga expide un feromona de olor que atrae a las demas. Cuantas mas
hormigas transiten por ese camino, mayor se hara el olor en el y atraera a
mas hormigas a que lo usen, provocando un efecto amplificador de transito de
hormigas.
xix
0000
Realimentacion negativa: Es un fenomeno que se presenta para contrarrestar
la realimentacion positiva, con el fin de generar patrones colectivos estables.
La realimentacion negativa, por ejemplo, se presenta en la recoleccion de co-
mida por hormigas, porque los caminos que se establecen por realimentacion
positiva, se saturan, ayudando a que el numero de hormigas en ese camino no
crezca indefinidamente.
Las soluciones a los problemas deben tener fluctuaciones, i.e., incluir procesos
aleatorios, que permitan llegar a nuevas soluciones.
Para generarse un SO, deben presentarse un gran numero de interacciones
que refuercen los patrones que se empiezan a establecer por las interacciones
aisladas y aleatorias de pocos individuos.
Los fenomenos SO, permiten que nuevas soluciones completamente estables se
esten creando constantemente. Una solucion particular puede aumentarse y amplifi-
carse en cualquier momento y lugar del trabajo, y una vez que esta este establecida,
una nueva puede generarse a partir de la amplificacion de alguna aleatoriedad de
la solucion original. Las soluciones SO tambien generan bifurcaciones por el cambio
de algun parametro, haciendo que un proceso pueda tener dos soluciones completa-
mente diferentes.
Comunicacion ambiental
Los procesos SO requieren interaccion entre los agentes del grupo, interaccion
que puede hacerse en forma indirecta. [3] establecen que se presenta interaccion
indirecta cuando un individuo responde a un ambiente que ha sido modificado pre-
viamente por la accion de otro individuo. Este fenomeno tambien puede verse como
comunicacion entre los agentes por medio del ambiente. La comunicacion indirecta
permite explicar la coordinacion y la regulacion que ocurre entre los miembros de la
colonia. Por ejemplo, en actividades de construccion del nido, las termitas responden
a la estructura del nido mismo, mas que a sus companeras.
La comunicacion ambiental “permite reemplazar la coordinacion a traves de co-
municacion directa por interacciones indirectas” [28], esto permite simplificar las
xx
0000
habilidades de comunicacion de los agentes, abriendo la posibilidad del uso de indi-
viduos mas simples dentro de un proceso multi-agente.
Sinergia
La sinergia, tal como se explico anteriormente, es el resultado de fenomenos de
cooperacion que exhiben los insectos, obteniendo mayores resultados por un trabajo
comun, que por un trabajo individual. Esta propiedad es una de los resultados mas
interesantes de trabajo comun de los insectos sociales.
2.3.1. Ejemplos del comportamiento de los insectos
Como se dijo anteriormente, las estrategias distribuidas solo son mejores que las
centralizadas bajo ciertas condiciones. Es por esto, que es muy util la aplicacion
de comportamientos especıficos de los insectos para resolver problemas particulares.
A continuacion se mostraran algunos ejemplos de los comportamientos de los in-
sectos sociales, los cuales han servido de inspiracion para el desarrollo de sistemas
artificiales. Esta recopilacion se toma de los trabajos de [3], [31], [36],[34], [17], [27].
Comportamientos en hormigas
Busqueda de comida (Foraging): El proceso de busqueda de comida de las
hormigas sigue algunos pasos bien definidos. Diferentes hormigas toman difer-
entes caminos para ir del nido a la fuente de comida y de regreso. Durante
su recorrido, cada hormiga produce una sustancia quımica que atrae a sus
companeras. Esta sustancia llamada feromona, es dispersada en el ambiente,
dejando rastros del camino que sigue el insecto. La hormiga que toma el camino
mas corto es la primera en ir y regresar, es decir, esta ruta es la primera en ser
transitada dos veces en su totalidad, teniendo el doble contenido de feromona
que cualquier otra. Las otras hormigas que esperan en el nido, sienten mayor
atraccion por ese camino, empezando a ser transitado por mas hormigas ca-
da vez, produciendo un efecto de realimentacion positiva que desemboca en
una estructura SO. La feromona, se va dispersando en el ambiente en funcion
del tiempo, por lo cual, los caminos transitados pocas veces (los no optimos)
tienen a desvanecerse, quedando solo los caminos optimos.
xxi
0000
Las hormigas pueden adaptarse facilmente a cambios en la ruta, (e.g. ob-
staculos imprevistos) o en el numero de hormigas involucradas en el proceso,
haciendo de esta, una solucion muy flexible y robusta.
Transporte cooperativo: Cuando una hormiga encuentra una presa que quiera
llevar de regreso al nido (e.g. una hoja), trata de levantarla y empujarla por
si misma. Si el peso de la hoja supera sus capacidades, la hormiga atrae a
las companeras que se encuentren cerca de ese lugar expeliendo feromonas
alrededor de la hoja. Si ası no se logra atraer suficientes hormigas, se crea
un camino de feromonas desde la hoja hasta el nido, generando el proceso
explicado anteriormente.
Una vez que se tienen suficientes hormigas en la labor, todas empiezan a
empujar la hoja en diferentes direcciones alrededor, buscando mover las hojas.
Obviamente, el efecto de una hormiga es cancelado por el de otra que se
encuentre en el lado opuesto de la hoja. Cuando una hormiga ve que despues
de cierto tiempo no se logran resultados positivos en mover la hoja, se ubica
aleatoriamente en otra posicion con respecto a la misma y empieza a empujarla
en esta nueva direccion. Este proceso es seguido por muchas hormigas, hasta
que se logra una configuracion, donde el trabajo conjunto logra mover la hoja.
Si luego de un tiempo y muchas reconfiguraciones de las hormigas no se logra
mover la hoja, se hace el reclutamiento de trabajadoras especializados con
enormes tenazas, que cortan la hoja trozos mas pequenos, con lo que se inicia
el proceso de empuje una vez mas.
Organizacion de cementerios: Cuando una hormiga muere, deben ser retirada
del nido, en un proceso de limpieza. Las hormigas muertas expelen un olor
caracterıstico, que les indica esta condicion a las demas. Si inicialmente se
tiene una hormiga muerta dispersa en un terreno, una obrera encargada de la
limpieza, la tomara, y tendera a llevarla a un punto con alta concentracion de
ese olor caracterıstico. Cuantas mas hormigas muertas se encuentren apiladas
juntas, mayor olor se expele de ese punto en particular, y tendera a atraer a las
xxii
0000
obreras, a depositar nuevos cuerpos en ese mismo punto. Antes de tener forma-
do un punto lo suficientemente grande, el proceso de deposicion de cadaveres
es aleatorio, pero luego de algunos movimientos, se ha visto que se forman
puntos lo suficientemente grandes para empezar el proceso de atraccion.
Construccion del nido: La construccion de las paredes del nido se hace alrede-
dor de las camaras de incubacion de larvas. Para la construccion de una
pared, cada hormiga carga una pequena porcion de tierra adentro del nido, de-
positandola aleatoriamente en un principio. Las hormigas se sienten atraıdas a
depositar tierra en lugares de mayor concentracion, o sea, puntos donde otras
hormigas hayan depositado mas tierra previamente. Este proceso sucesivo gen-
era un efecto de realimentacion positiva que culmina en la construccion de una
pared del nido.
Comportamientos en abejas
Reclutamiento: las abejas exploradoras, son las encargadas de encontrar nuevas
fuentes de comida para la colmena, entre otras cosas, Una vez se ubica una nue-
va fuente de comida, la abeja exploradora se alimenta y regresa a la colmena,
donde produce un ritual de reclutamiento muy particular.
Al llegar a la colmena, la abeja que posee la informacion regurgita un poco
del alimento frente a un grupo de sus companeras para darles a probar un
poco del alimento encontrado. Luego el comienza un “baile” en el que da las
indicaciones necesarias para ir a la fuente de comida. En este baile, se incluyen
indicaciones de direccion, dadas como un angulo con respecto al so, la distancia
y tambien una medida del esfuerzo que le tomo llegar hasta la fuente ([31], [32]
y [27]). Una vez que este grupo abejas ha entendido el mensaje, la portadora
de la informacion se desplaza hasta otro lugar dentro de la colmena donde
repetira el baile de indicaciones para reclutar mas abejas.
Regulacion termica de la colmena: Sorprendentemente, una colmena de abejas
logra tener una temperatura interna aproximadamente constante sin importar
xxiii
0000
la temperatura al exterior. Para esto, se generan comportamientos diferentes
cuando es necesario calentar y enfriar la colmena.
Para aumentar la temperatura interior de la colmena, las abejas se organizan
en 2 grupos diferentes. El primer grupo se ubica en el centro de la colmena, y
cada una de ellas funciona como una pequena fuente de calor, aumentando la
temperatura de su cuerpo por medio de trabajo muscular. El segundo grupo
forma un cırculo fuera del primero, formando una barrera termica para evitar
el flujo del calor hacia el exterior de la colmena. Periodicamente, las abejas
ubicadas en cada uno de los grupos intercambian sus posiciones y sus funciones
para regular la temperatura y el trabajo de cada una.
Por otro lado, para disminuir la temperatura, se usa un sistema de refrig-
eracion basado en evaporacion de agua. Si la temperatura de la colmena es
alta, las abejas llevan gotas de agua o nectar muy diluido, y la dispersan por
el nido, atomizandola con el aleteo de sus alas. El agua atomizada toma el
calor del ambiente para evaporarse, disminuyendo la temperatura del nido.
En ese proceso, se requiere dos labores diferentes, unas abejas se encargan de
colectar el agua y otras de esparcirlo por la colmena. Para cumplir esta tarea,
se requiere una estrecha colaboracion entre las abejas que ejercen cada una de
las funciones.
Comportamientos en termitas
Construccion de nidos: semejante a como ocurre en las hormigas, las termitas
construyen las estructuras importantes de su nido alrededor de la camara de
la reina. Cada termita es encargada de llevar un grano de tierra adentro del
nido, el cual impregnan con una feromona que atrae a las demas termitas.
Inicialmente los granos se disponen en forma aleatoria alrededor de la reina
(a cierta distancia), pero cuando se forma un pequeno cumulo (varios granos
juntos), el olor de ese punto es mayor que cualquier otro en el terreno, y
atrae a las otras termitas a depositar sus granos allı, generando un efecto de
realimentacion positiva. Las termitas responden tanto a la concentracion de
xxiv
0000
olor del punto, como a la forma de la estructura que se esta formando. La tierra
se apila inicialmente en columnas, luego, al alcanzar cierta altura, empieza
ser depositada de tal manera que se genere la forma de un arco, estructura
principal de los nidos de termitas. Por ultimo, una vez que se han terminado
los pilares, los huecos entre ellos se llenan para completar las paredes del nido.
Comportamientos en avispas
Construccion de nidos: las avispas construyen sus nidos de una resina que
toman de los arboles y la mezclan con secreciones salivales, para formar una
pasta parecida al papel. Para generar la construccion del nido, una vez que se
selecciona el lugar de la construccion, se pone una celula inicial, como “piedra
central” de la estructura. Luego las avispas van anadiendo otras celulas debajo
de la inicial, disponiendolas en forma circular. La union de estas celulas forman
un nivel. Una vez completado el primer nivel, se inicia uno nuevo justo debajo.
De nuevo las avispas construyen cada nivel poniendo una celula a la vez, una
junto a otra en un patron circular. Este proceso se sigue formando un nivel a
la vez, hasta completar la estructura. Se ha visto que las avispas tienden a no
iniciar un nuevo nivel hasta que no se ha terminado el anterior.
Cada celula posee paredes, formando un pequeno espacio vacıo que servira de
deposito. Una avispa tiende a completar una celula antes que iniciar una nueva,
es decir, cuando llega a la construccion, busca celulas con 1, 2 o 3 paredes
completas donde poner su aporte. Esto muestra que ellas responden al trabajo
previo de sus companeras, y en general a la estructura actual del nido. Este es
un comportamiento de SO, con comunicacion ambiental.
2.4. Sistemas Artificiales Aplicados a Robotica Movil
Como se dijo anteriormente, la arquitectura del grupo determina las capacidades
que tiene un equipo de robots moviles para responder a alguna tarea. Algunas de
las arquitecturas mas representativas, son presentadas por citecao.
Comportamiento cooperativo dominado por comportamientos: El control de
cada robot es basado en un patron de comportamientos-objetivos simples. La
xxv
0000
union del comportamiento individual de cada uno, como respuesta a la accion
de otro companero, crea los patrones de comportamiento cooperativo [22].
CEBOT (CEllular roBOtics System): Arquitectura descentralizada, jerarquica,
inspirada por la organizacion celular de entidades biologicas. Es un sistema
compuesto por robots (celulas) que pueden acoplarse fısicamente a otras. Es
reconfigurable dinamicamente, cambiando su estructura para responder en for-
ma optima a cambios en el ambiente. En esta configuracion se encuentran
“celulas maestras” que coordinan localmente a celulas de un sub-grupo y se
comunican con otras “celulas maestras” de la misma jerarquıa. La comuni-
cacion puede ser explıcita o ambiental dependiendo de las necesidades, pero
tiende a ser menos explıcita, a medida que las celulas se hacen mas inteligentes
[12].
SWARM: Es una propiedad de un sistema de robots no inteligentes de exhibir
un comportamiento inteligente. Posee propiedades de SO y comunicacion ex-
plıcita o ambiental, permitiendo construccion de robots mas sencillos. Es una
arquitectura distribuida, tıpicamente por robots homogeneos. La interaccion
se presenta porque cada miembro reacciona al estado o acciones previas de sus
companeros [3].
GOFER: Usada para estudiar solucion de problemas distribuidos por multi-
ples robots en un ambiente controlado, usando tecnicas tradicionales de IA.
Es una estrategia centralizada donde el control se hace por un sistema cen-
tral de planeamiento y cronogramacion, que se comunica con todos los robots
para decirles como y cuando deben actuar para optimizar la tarea. Los robots
tıpicamente son homogeneos y la comunicacion entre los robots y el centro de
procesamiento es explıcita
Realizando la aplicacion de una arquitectura u otra, diversos grupos de in-
vestigacion han desarrollado muchos sistemas para la solucion de problemas
xxvi
0000
usando robotica distribuida. [22], presenta un resumen de los trabajos he-
chos en simulacion o implementacion fısica, casi todos basados en una per-
spectiva de agentes. [11] presenta una taxonomıa de los sistemas roboticos
de multi-agentes, clasificando los trabajos dependiendo a las caracterısticas
de su arquitectura, incluyendo aspectos como tamano, comunicacion, tareas,
reconfigurabilidad, entre otros.
2.4.1. Ejemplos de solucion de problemas con robotica movil
Entre algunas de las tareas a las que se les ha propuesto una solucion con
robotica distribuida, se cuentan transporte cooperativo, tareas de observacion,
busqueda y rescate, diseno de trayectoria y tareas de preparacion territorios.
Cada una de estas soluciones sera expuesta a continuacion.
Transporte cooperativo
[19], realizaron diversos experimentos de aplicacion de una arquitectura tipo
swarm para generar transporte cooperativo inspirado en el comportamiento
que ocurre en las hormigas para un problema similar. El problema consiste
en mover un objeto de mayor peso que el que puede cargar un solo robot, de
tal forma que se necesitan dos o tres robots juntos para lograr movimiento de
una caja. Se basan en una arquitectura distribuida, con robots homogeneos
y un nivel de comunicacion sensorial. El control del robot se hace mediante
comportamientos, dominados por respuestas sensor-actuador, procesando la
informacion mediante implementacion de logica combinatoria o de redes neu-
ronales. Estas configuraciones, aunque producen un mismo resultado final,
generan comportamientos diferentes en los robots.
xxvii
0000
Tareas de observacion
En este problema, se busca recorrer un espacio determinado, cubriendo el ter-
reno con un equipo de robots, haciendo que cada uno de ellos se ocupe de una
zona especıfica. Es una tarea en la que se gana rapidez por el trabajo conjunto
de varios miembros. Puede tener aplicacion, por ejemplo, en situaciones de
vigilancia cooperativa ([13]) o tareas de creacion de mapas y reconocimiento
del terreno [13]. En ambos casos se usa una estrategia distribuida y robots
homogeneos, con capacidades para observar su ambiente. Cada robot tiene
tambien la capacidad para reconocer a los otros y recordar los espacios recor-
ridos por el y por sus companeros. La cooperacion consiste en la division del
campo y la no interferencia entre robots. El resultado de esta estrategia se com-
probo en simulacion y con implementacion fısica, realizando tareas en espacios
abiertos y cerrados.
Busqueda y rescate
Es una estrategia distribuida tipo swarm, aplicada a un grupo de robots ho-
mogeneos. Puede verse como una evolucion de la tarea de observacion. El
primer paso es realizar una busqueda paralela del espacio, usando un control
semejante implementado en observacion. Una vez que se ha ubicado el objeti-
vo, se genera un problema de transporte cooperativo, incluyendo la labor de
reclutamiento. Este problema fue trabajado por [16].
En [2] se trabajo sobre este problema. Demuestran que en una industria se pre-
sentan muchas ventajas al tener varios robots que transporten materiales de
diferentes partidas a diferentes destinos dentro del mismo espacio, optimizando
sus trayectorias. La cooperacion se presenta en generar la menor interferen-
cia posible entre ellos. En la estrategia se aplica una arquitectura distribuida
tipo swarm, con cooperacion explıcita entre robots homogeneos. Presentan
resultados teoricos y simulados. Otros autores como [35] realizan un analisis
semejante, pero con objetivos que se mueven, basandose en el principio de
mınima interferencia.
Tareas de preparacion de lugar
xxviii
0000
[25] hacen en este trabajo una proposicion de preparacion de lugares para fu-
turas investigaciones humanas en Marte. Antes del arribo de los humanos a
este planeta, se enviarıa un grupo de robots para preparar los territorios donde
se instalarıan los investigadores. Para esta tarea se propone una estrategia
ALLIANCE, que implica un control distribuido con robots heterogeneos, con
independencia de toma de decisiones y comunicacion explıcita entre robots. Es-
ta estrategia se basa en el logro de sub-objetivos (preparacion para limpieza,
generacion de trayectoria de limpieza, limpieza cooperativa, operaciones de
mantenimiento), por medio de comportamientos definidos (seguir, evitar, de-
tenerse).
En todos estos trabajos, se encontraron caracterısticas comunes, consistentes
en desarrollo de robots mucho mas simples que los necesarios para el mismo
trabajo desde una perspectiva centralizada, obteniendo resultados mas rapi-
dos y/u optimos. Las estrategias de control se disenan desde una perspectiva
de agentes programados para generar cooperacion explıcita. El control de los
robots se caracteriza por respuestas a estımulos sensoriales que en algunos ca-
sos desembocan en fenomenos de realimentacion positiva. Se presenta el uso
de todos los niveles de comunicacion (explıcita, a nivel sensorial o ambiental),
obteniendo diferentes resultados en cada caso, demostrando que cualquier ar-
quitectura puede ser programada para exhibir comportamientos cooperativos
bajo estrategias de control distribuido.
xxix
0000
Capıtulo III
Elementos de la robotica movil y el control
distribuido
3.1. Introduccion
En el capıtulo anterior, por medio del trabajo de muchos investigadores, se
mostro como se ha logrado resolver muchos problemas complejos usando robots
muy simples, coordinados mediante estrategias de control distribuido. No ob-
stante estos avances, se ha visto que las soluciones y los metodos de cooperacion
obtenidos para cada una de estas tareas son muy especıficos y dependientes
de la tarea y de la plataforma tecnologica que en estas se use (Seccion 2.4.1),
mas que la obtencion de soluciones generales que permitan atacar muchos
problemas.
En busqueda de resultados mas globales, se desea desarrollar e implementar
una estrategia de control que permita atacar diversos problemas usando una
misma plataforma tecnologica con comportamientos roboticos que puedan ser
modificables con solo la reconfiguracion de algunos parametros generales que
dominen su comportamiento.
Durante esta seccion se muestra el proceso seguido para esta implementacion
general. Se inicia con la introduccion de algunos elementos importantes para el
desarrollo de la estrategia. Luego se realiza una descripcion de una plataforma
tecnologica apropiada para la solucion y la descripcion del control de los robots.
Se termina con la descripcion de la arquitectura desarrollada.
xxx
0000
3.2. Descripcion
3.2.1. Elementos basicos de una tarea distribuida
Ya se ha dicho que los robots se crean con un fin especıfico, es decir, se desea
que un robot actue en una forma determinada para cumplir un fin especıfico.
Durante este estudio se desean tratar problemas relacionados con la robotica
movil, tratando un numero de robots en movimiento en un espacio determina-
do. Esto implica que todas las tareas que estos puedan realizar tienen que ver
con el movimiento que puedan realizar. Por esta razon, para llevar a cabo una
tarea, se propone necesario para los robots la identificacion de dos elementos
principales frente a los cuales se interactua en forma diferente: los objetivos y
los obstaculos. Los objetivos son aquellos elementos que el robot debe alcan-
zar. Estos pueden ser puntos del terreno donde se deben llega o un objeto a
buscar, recobrar o seguir. Por otro lado, los obstaculos son los elementos que
impiden el libre transito del robot por el campo en el que se mueve y estan
principalmente representados en todos los posibles elementos (en movimiento
o no) contra los que el robot pueda colisionar. El comportamiento natural del
robot frente a los obstaculos es la evasion de los mismos.
Se puede identificar un tercer elemento que se presenta por la naturaleza co-
operativa y distribuida de la investigacion mas que por la tarea misma: los
companeros. Estos son otros robots que se encuentran en el mismo campo de
juego. Se propone una aproximacion homogenea y distribuida, en la cual todos
los robots tienen las mismas caracterısticas y la misma prevalencia con respec-
to al control de la tarea. Dependiendo del objetivo a alcanzar, los companeros
tambien pueden transformarse en objetivos u obstaculos, ya que podrıa ser
deseable que bajo algunas condiciones un robot siga a uno de sus companeros
o que por el contrario lo evite para impedir un choque contra este (seccion
2.2).
Como se muestra mas adelante, la identificacion de estos tres elementos: obje-
tivos, obstaculos y companeros son de vital importancia para la estrategia de
xxxi
0000
control que se plantea.
3.2.2. Elementos de los robots
Por lo observado en diversos trabajos ([3], [19], [11], [2], [13], [14], [22], [28],
[25], [35]), la interaccion de un robot con el medio en el que se mueve esta deter-
minada por los sensores que le permiten hacerse una imagen de este ambiente,
y los actuadores que le permiten moverse e interactuar con el. La informacion
adquirida por el robot debe ser procesada para generar las senales de accion
sobre los actuadores que lleven al robot a moverse e interactuar con el medio
en la forma deseada. El conjunto de sensores y actuadores que componen a un
robot determina en gran medida la plataforma tecnologica que usa los robots
moviles. Se propone una plataforma tecnologica apropiada para una arquitec-
tura de robots moviles. A pesar que no se describe con exactitud todos los
parametros de esta plataforma, sı se describe esta plataforma en datos que
pueden ser acomodados de acuerdo a una plataforma especıfica.
Sensores
Su funcion principal es la deteccion de objetos o caracterısticas especiales
dentro del terreno en el que el robot se mueve. El sensor puede construirse
para detectar obstaculos, objetivos, lımites o caracterısticas especiales del ter-
reno (i.e. huecos o barrenas intermedias), companeros, etc. [19] proponen una
plataforma tecnologica de robots moviles con 3 tipos diferentes de sensores:
Infrarrojos para deteccion cercana, lumınicos para distancias intermedias y
ultrasonicos para deteccion a larga distancia. Cada uno de estos sensores en
sus robots tiene un fin especıfico: deteccion de obstaculos, companeros y ob-
jetivos, respectivamente. Algunos tipos de sensores y sus propiedades pueden
encontrarse en [30].
El uso de diferentes sensores en un robot puede generar una amplia gama de
configuraciones sensoriales posibles. En general puede asumirse que el robot
posee un “circulo de vision” (con centro en el robot mismo) en el cual puede
detectar o no un objeto para cada tipo de sensor. Para este estudio se asume
xxxii
0000
que de la misma forma que en el trabajo de [20], se tienen 3 tipos diferentes
sensores: para deteccion de obstaculos, deteccion de objetivos y deteccion de
companeros. A los radios maximos de deteccion para cada una de estas condi-
ciones se llama drocrit, drgcrit y drpcrit. Esta condicion de vision y deteccion se
muestra en la figura 1. Para este caso particular se tiene una configuracion
donde drocrit < drpcrit < drgcrit. Se ve que el objetivo esta dentro del cırculo de
vision de objetivos del robot, por lo cual este puede ser detectado (mostrado
con lınea continua) mientras que el obstaculo se encuentra fuera del cırculo
de vision de obstaculos y por lo tanto no puede ser detectado (obstaculo con
lınea punteada).
Figura 1: Rangos de deteccion sensorial para un robot
Pueden tenerse algunas otras condiciones especiales de deteccion donde por
ejemplo se identifiquen los lımites del terreno. En otras condiciones especiales
puede tenerse full information, donde el robot puede ver todo el terreno y
detectar cada uno de las clases de objetos que en el se encuentren. En estas
condiciones tambien se pueden limitar la vision del robot a un radio limitado
para “simular” la condicion de vista parcial del robot.
xxxiii
0000
Una de las opciones mas utiles en una condicion de full information, es que es
facil establecer un marco de referencia con origen que ayude a medir distancias
y angulos en el campo. En este estudio se asume que se tiene un sistema con un
marco de referencia global ubicado en la esquina inferior izquierda del campo.
En todo momento se pueden conocer las posiciones de los robots, objetivos
y obstaculos. En la figura 2 se muestra un ejemplo de las mediciones que se
realizan sobre un robot con relacion a un marco de referencia x-y. En esta
figura se muestra un robot y un objetivo dentro de su radio de deteccion.
Es importante conocer la posicion global y el angulo de inclinacion del robot
(medido respecto al eje x), representados por la distancia dr y el angulo θr
respectivamente. Para decidir las acciones del robot con respecto al objetivo,
debe conocerse la distancia entre el robot y el objetivo (drg) y el angulo entre
la direccion del robot y la recta que une el centro del robot con el objetivo
(θg). Dado que se conocen las posiciones globales del robot y del objetivo con
respecto al marco de referencia global, puede calcularse el angulo absoluto
de la recta que une al robot y el objetivo θg. Con los datos anteriores puede
calcularse θg, usando θg = θr − θg. Este mismo procedimiento puede hacerse
para calcular los datos correspondientes a distancias y angulos entre robots y
obstaculos (dro y θo), y entre robots y companeros (drp y θp)
Actuadores
Son los que permiten al robot interactuar con el medio en las diversas for-
mas posibles. Esta interaccion incluye permitirle moverse, toma, empujar o
levantar objetos del medio. A pesar de las diferentes interacciones que puedan
plantearse, por las caracterısticas de la robotica movil, la principal funcion
(la unica en la mayorıa de casos) de los actuadores es permitir que el robot
se mueva por el campo en una forma determinada. Es necesario definir una
arquitectura mecanica que permita analizar el movimiento del robot en fun-
cion de sus elementos constitutivos. [29] realiza una descripcion de algunas
arquitecturas mecanicas como propulsion diferencial o propulsion de triciclo.
En este estudio, y basados en la amplia aplicacion que de esta se hace ([13],[19],[22],
xxxiv
0000
Figura 2: Informacion de angulos y distancias medidas para control del robot conrespecto a un objetivo.
[24]), se propone el uso de la propulsion diferencial para realizar el movimien-
to de los robots. Cabe anotar que esta propulsion tambien se encuentra en
equipos de robotica usados en la actualidad, tal como los robots de diversas
categorıas usadas en la FIRA1 .
La propulsion diferencial consta de dos ruedas motoras ubicadas a cada lado
del robot y una o varias ruedas locas dispuestas en otras posiciones del robot
para ayudar a su estabilidad. La principal ventaja de esta propulsion descansa
en la gran movilidad del robot obtenida variando en forma independiente cada
una de las ruedas motoras. Ası, por ejemplo, cuando las dos ruedas giran a
la misma velocidad y en la misma direccion el robot se mueve en lınea recta,
pero si se hacen girar a la misma velocidad y en diferente sentido, el robot
gira sobre su propio eje sin tener desplazamiento. En la figura 3 se muestra un
esquema de la cinematica diferencial con una rueda loca posterior.
1Federation of International Robot-soccer Association. Mas informacion puede ser encontradaen www.fira.net
xxxv
0000
Figura 3: Esquema de cinematica diferencial
En funcion de estos elementos se pueden desarrollar las ecuaciones de movimien-
to para el robot. Ubicando una marco de referencia sobre el robot, se plantean
relaciones para calcular su velocidad de movimiento y velocidad de giro en
funcion de la velocidad de cada llanta (Vd y Vi) y la distancia entre las ruedas
(d).
V =Vd + Vi
2(1)
ω =Vd − Vi
d(2)
Las ecuaciones 1 y 2 son muy importantes en este estudio y seran retomadas
mas adelante.
Controlador
El mecanismo encargado de procesar la informacion tomada por los sensores
y transformarla en senales de control para los actuadores es la estrategia de
control o el controlador. Para cada robot se propone un tipo de controlador
en lazo cerrado basado en comportamientos, como el de la figura 4. Un con-
trolador basado en comportamientos genera respuesta especıfica a entradas
xxxvi
0000
determinadas, en la forma indicada por los patrones de comportamiento. Ası,
por ejemplo, si se introduce el comportamiento empujar, el robot debe iden-
tificar las condiciones ambientales necesarias (posicion propia y de objeto a
empujar, direccion indicada, contacto necesario, etc.) para accionar el com-
portamiento y luego ordena los movimientos especificados en los actuadores
para completar la accion (accionar un motor o un solenoide, etc.). Normal-
mente la relacion entre activacion de comportamientos y informacion sensorial
estan determinadas por reglas definidas por el disenador. La determinacion
de esas reglas para una tarea es lo que se llama control por comportamientos.
Basados en los elementos basicos de una tarea que se sugirieron anteriormente,
se propone implementar un control basado en cuatro comportamientos: evi-
tar, buscar y seguir para las tareas que impliquen elementos principales, y el
comportamiento recorrer cuando no se detecte ninguno. La implementacion y
la generacion de reglas de activacion de cada uno de estos permite realizar el
control sobre el robot en la forma deseada.
Por otro lado, la caracterıstica de lazo cerrado es especialmente util en esta
situacion porque le permite evaluar su comportamiento dependiendo de las
condiciones actuales del ambiente (siempre y cuando los sensores le permitan
tener realimentacion instantanea de lo que sucede a su alrededor) y tomar ac-
ciones pertinentes para cumplir su cometido. Ası, por ejemplo, cuando al robot
se le da la da el objetivo de de moverse a una posicion especıfica del terreno,
el control en lazo cerrado juega un papel importante para permitirle cumplir
su objetivo. El robot toma la informacion necesaria para saber que tan lejos
esta de cumplir su objetivo y esto le permite decidir las acciones necesarias
para cumplirla. Luego de sensar su ubicacion de acuerdo a un marco de ref-
erencia definido y evalua su posicion actual contra la posicion a la que debe
llegar. Si las dos posiciones son iguales, no se debe hacer nada. De lo contrario,
se toman las acciones necesarias para igualarlas, girando y avanzando en una
direccion especıfica. Este proceso se realiza una y otra vez, permitiendo que
el robot pueda elegir acciones diferentes en cada momento. Esta capacidad re-
sulta especialmente util en ambientes dinamicos o donde solo se pueda sensar
xxxvii
0000
una parte limitada del terreno. Algunas propiedades del controlador en lazo
cerrado pueden ser consultadas en [23].
Figura 4: Esquema de un control en lazo cerrado.
3.3. Estrategia de control
3.3.1. Funciones de deseo de giro y velocidad
Una vez establecidas las bases del control, se procede a implementar la es-
trategia para controlar al robot en aras de cumplir un objetivo determinado
pensando en sistemas naturales (i.e. hormigas), quienes cumplen con sus tar-
eas realizando movimientos en el campo tomando la direccion que quieran o
consideren mejor. Deben tomarse decisiones de girar o seguir en lınea recta, y
en caso de elegir girar, debe decidirse si girar a izquierda o a derecha y en que
grado hacerlo. Tambien puede ser necesario tomar decisiones si aumentar o dis-
minuir la velocidad, o definitivamente detenerse. La sumatoria de tomar estas
decisiones en forma consecutiva dependiendo de las condiciones ambientales
permiten cumplir o no con el objetivo.
Basados en este hecho, se propone controlar al robot implementando funciones
que expresen su “deseo” de cambiar de direccion de movimiento una vez que se
ha tomado una y de desplazarse a una velocidad determinada. Estas funciones
se llamaran funcion de deseo de cambio de direccion (denotada con la letra
griega ϕ) y la funcion de deseo de velocidad (denotada por la letra griega ψ).
xxxviii
0000
Para definir las funciones ϕ y ψ, primero se procedera a definir el conjunto
dominio de estas funciones:
Definicion 3.3.1 (Conjunto de parametros de control (Ω)) Ω ∈ <n es
el conjunto de todos los parametros que permiten la activacion de los compor-
tamientos del control para las funciones de cambio de direccion de movimiento
y de velocidad.
El numero de estos parametros, su explicacion, naturaleza y forma de ser
obtenidos no se incluye en este punto para evitar confusiones entre la natu-
raleza de las funciones ϕ y ψ y su implementacion por medio de comportamien-
tos. Estos seran retomados una vez que se hallan introducido completamente
las funciones ϕ y ψ.
Definicion 3.3.2 (Funcion de deseo de cambio de giro (ϕ)) Sea ϕ una
funcion, la cual mapea de Ω → <, continua en <, tal que ϕ ∈ [−1, 1], que ex-
presa el deseo de un robot de generar un cambio en su direccion de movimiento.
Si ϕ = −1, ϕ = 1 y ϕ = 0, esto representa respectivamente, el giro mas rapido
a izquierda, a derecha y nulo.
Definicion 3.3.3 (Funcion de deseo de velocidad (ψ)) Sea ψ una fun-
cion, la cual mapea de Ω → <, continua en <, tal que tal que ψ ∈ [0, 1],
que expresa el deseo de un robot de desplazarse a una velocidad determinada.
Si ψ = 0 y ψ = 1, esto representa respectivamente, un avance nulo y a maxima
velocidad posible (U).
Basados en una arquitectura mecanica con propulsion diferencial, es adecuado
establecer relaciones entre los valores de las funciones ϕ y ψ y la velocidad de
las ruedas propulsoras del robot (Vd, Vi). El maximo giro que puede presentar
el robot en un giro (max. ω en 2), se da cuando se detiene una rueda y la otra
gira a su maxima velocidad. Este fenomeno debe coincidir con el valor maximo
de ϕ para ese sentido de giro. En la tabla 1 se muestran las condiciones de
xxxix
0000
Giro deseado ϕ Vi Vd Rel. velocidadesMaximo izquierda ϕ = 0 Vi = 0 V d = Vmax
Leve izquierda −1 < ϕ < 0 0 < Vi = Vmax 0 < V d ≤ Vmax Vl < V dNinguno ϕ = 0 0 < Vi ≤ Vmax 0 < V d ≤ Vmax Vl = V d
Leve derecha 0 < ϕ < 1 0 < Vi ≤ Vmax 0 < V d < Vmax Vl > V dMaximo derecha ϕ = 1 Vi = Vmax V d = 0
Tabla 1: Condiciones de velocidades de ruedas para giro del robot.
velocidad que se deben presentar en las ruedas del robot dependiendo del valor
de ϕ.
Para cumplir con todas las condiciones planteadas para las funciones de deseo
de movimiento, se propone el uso de funciones de velocidad para cada llanta
que dependan de ϕ y ψ:
Vd = Uψϕd (3)
Vi = Uψϕi (4)
donde
ϕd =1− ϕ
2(5)
ϕi =1 + ϕ
2(6)
Sustituyendo (3), (4), (5) y (6) en (1) y (2) se obtiene
V = Uψ(
1−ϕ+1+ϕ2
)
V = Uψ (7)
xl
0000
ω = Uψ(
1−ϕ−1−ϕ2d
)
ω =−Uψϕd
(8)
Estas ecuaciones muestran la dependencia de la velocidad lineal y rotacional
del robot de las funciones ϕ y ψ. Como se esperaba, la velocidad neta de
movimiento del robot solo depende de ψ y es maxima cuando ψ = 1 y nula
cuando ψ = 0, mientras que, aunque la velocidad rotacional del robot depende
de los dos parametros, solo puede presentarse rotacion cuando ϕ 6= 0 y la
maxima velocidad de rotacion coincide con el maximo de la funcion de deseo
de movimiento para los dos sentidos. Una ultima observacion muestra que
ϕ = −1 genera ω > 0, esto es, el robot rota a la izquierda, mientras que ϕ = 1
genera rotacion a la derecha.
Este sencillo analisis de las funciones aplicadas a una propulsion diferencial,
comprueba que la implementacion de las funciones de deseo de movimien-
to cumple con las condiciones de las definiciones 3.3.2 y 3.3.3 y establecen
las bases necesarias para implementar el control del robot. Ahora que se han
establecido las funciones de control que deben ser implementadas y los lin-
eamientos que deben cumplir, estas deben ser buscadas, y hacer que cumplan
con el objetivo del controlador usando la plataforma tecnologica que se es-
tablecio previamente.
3.3.2. Comportamientos para funciones de deseo de giro y veloci-dad
El concepto de control por comportamientos fue introducido en una seccion
anterior. Lo que en ese momento se llamo controlador, sera implementado por
medio de las funciones de deseo de movimiento, ya que como se dijo, estas
funciones mapean desde un conjunto Ω con la informacio de control a un valor
que indica en que medida debe encenderse cada uno de los motores de la trac-
cion diferencial, que son los acutadores del problema. De este razonamiento se
xli
0000
puede concluir que el conjunto Ω es el conjunto de toda la informacion ambi-
ental y de parametros de control para el robot. Para implementar el control,
debe determinarse en forma detallada las condiciones de activacion de cada
uno de los comportamientos y los efectos que generan sobre las funciones de
deseo de movimiento, analizandolos en forma independiente, generando ası las
bases necesarias para el desarrollo de las funciones de deseo de movimiento.
Generalidades
• La notacion usada en cada elemento sera parecida, debido a que en lam
ayorıa de los casos se tratara de conceptos semejantes indicados para ca-
da comportamiento. En general la diferencia radica en un sub-ındice. Se
usan las letras p, g y o para referirse a conceptos relacionados con seguir
companeros, buscar objetivos y evitar obstaculos respectivamente.
Por ejemplo, se dijo que el robot tiene sensores diferentes para deteccion
de cada tipo de elemento, y cada uno de estos sensores tiene un radio
maximo o crıtico de deteccion. Ası, este radio maximo se denotara dpcrit,
dgcrit y docrit para deteccion de companeros, deteccion objetivos y detec-
cion de obstaculos respectivamente.
• Todos los comportamientos afectan las funciones ϕ y ψ en formas inde-
pendientes. Por medio de un parametro b ≥ 0 se mide el efecto de cada
comportamiento sobre la funcion de cambio de giro, mientras que este
efecto sobre la funcion de velocidad se mide con un un parametro ν ≥ 0.
Para los dos parametros, un valor de cero implica un efecto nulo (si se
detecta ese elemento no se sigue o evita). La configuracion de valores
optimos para todos estos parametros depende de la tarea en particular.
• El robot no puede detectar un elemento si este esta a una distancia mayor
a una distancia crıtica de deteccion. Para realizar el modelamiento o la
simulacion del control lo primero que se hara para evaluar la activacion o
no de un comportamiento es medir la distancia entre el robot y el emento a
medir. Esta distancia se denota como drp, drg y dro para la distancia entre
el robot y un companero, un objetivo y un obstaculo respectivamente.
xlii
0000
• El principal criterio para guiar a un robot a un elemento es hacer que el
robot se dirija a el en linea recta. Para lograr esto, se usa como criterio la
reduccion del angulo de objetivo mostrado en la figura 2. Si se hace que
el angulo θg tienda a cero, el robot caminara en lınea recta en busqueda
del objetivo. Este mismo criterio se usa cuando se quiere alcanzar un
companero con el angulo que se presenta entre la direccion del angulo y
la recta que une el robot con el companero (θp). Por otro lado, para evitar
obstaculos, se usa este criterio en forma inversa, buscando que ese angulo
medido con respecto a un obstaculo en el camino tienda a aumentar.
• Todos los angulos se miden en radianes, y todos las funciones de medicion
de efecto de comportamiento sobre ϕ y ψ (e.g., δo, δro) son adimensionales.
• El control en lazo cerrado permite evaluacion continua del valor optimo
de las funciones ϕ y ψ. La medida de “que tan lejos” se esta de logra que
el movimiento del robot se vea afectado completamente por un compor-
tamiento (i.e. rotar al robot alineandolo hacia un objetivo) se mide por
un valor δ para ϕ y un valor δr para ψ.
• A veces se desea que el robot se detenga a una distancia dada del elemento
a buscar, o que por el contrario, cuando lo alcance, tenga una velocidad
mayor a cero (i.e. si se busca chocar el elemento). Esto se logra con la
funcion de deseo de velocidad, generando una condicion ψmin positiva si
se quiere tener velocidad cuando se alcance el elemento o negativa para
detenerse a una distancia dada del elemento.
Comportamiento de buscar objetivos
Este comportamiento hace que el robot busque un objetivo determinado o el
mas cercano (en caso de tener varios en el mismo campo), aunque el robot
siente la misma misma “atraccion” por cada uno. Si se tiene mas de un robot,
puede hacerse que varios robots busquen un mismo objetivo o que cada uno
busque uno en forma separada. Este comportamiento puede afectar las dos
funciones de deseo de movimiento y se controla por los parametros mostrados
en la tabla 2.
xliii
0000
Parametro Signficadodgcrit Distancia maxima de reconocimiento de objetivosbg Peso de comportamiento buscar sobre ϕνg Peso de comportamiento buscar sobre ψ
ψgmin Velocidad de robot al pasar por objetivo o distancia de detension a objetivoδg Accion de compensacion por error angulo en busqueda de objetivoδrg Accion de compensacion por error velocidad en busqueda de objetivo
Tabla 2: Parametros de control para el comportamiento buscar.
Figura 5: Informacion de angulos y distancias de giro del robot con respecto a unobjetivo.
• Efecto sobre ϕ: Como se explico en las generalidades, el criterio es dis-
minuir el angulo θg hasta llevarlo a cero (ver figura 5). El efecto del
comportamiento se mide por δg.
δg =
0 si drg > drgcrit
θg de lo contrario(9)
• Efecto sobre ψ: El efecto sobre la funcion de deseo de velocidad se basa
en que cuanto mas lejos este el robot del objetivo, este se movera mas
rapido, siendo la velocidad maxima la generada por el lımite superior de
ψ. El efecto del comportamiento se mide con el parametro δrg
xliv
0000
δrg =
1 si drg > drgcrit
νgdrg + ψgmin de lo contrario(10)
De la ecuacion 10 puede verse que tener ψmin > 0 hace que el robot
tenga velocidad aun cuando el robot ya halla alcanzado el objetivo y que
nunca se detenga por accion directa de este comportamiento; mientras
que tener un valor ψmin ≤ 0 hace que el robot se detenga a una distancia
(dgm) dada por dgm = |ψmin|/νg.
Comportamiento de seguir companeros
Con este comportamiento se puede programar a un robot para seguir uno
de sus companeros haciendo posible generar comportamientos cooperativos
complejos ([19]). Se implementa haciendo que el companero se convierta en un
objetivo temporal para el robot, razon por la cual los cirterios y los parametros
son los mismos a los vistos en el comportamiento anterior, solamente varıan
sus nombres. El listado de parametros que afectan este comportamiento se
encuentra en la tabla 3.
Parametro Signficadodpcrit Distancia maxima de reconocimiento de companerosbp Peso de comportamiento seguir sobre ϕνp Peso de comportamiento seguir sobre ψ
ψpmin Velocidad de robot al llegar a un companero o distancia de detensiona companero
δp Accion de compensacion por error angulo en busqueda de companeroδrp Accion de compensacion por error velocidad en busqueda de companero
Tabla 3: Parametros de control para el comportamiento seguir.
• Efecto sobre ϕ: El efecto generado usa el mismo criterio que el del com-
portamiento buscar y es medido por el parametro δp.
δp =
0 si drp > drpcrit
θp de lo contrario(11)
xlv
0000
• Efecto sobre ψ: El criterio y los comentarios son iguales que el del com-
portamiento buscar. Es medido por el parametro δrp.
δrp =
1 si drp > drpcrit
νpdrp + ψpmin de lo contrario(12)
Comportamiento de evadir obstaculos
Este es el comportamiento que permite garantizar la integridad fısica del robot.
Cuando el robot encuentra un elemento contra el que se podrıa presentar una
colision, debe cambiar su trayctoria para evitar chocar contra el y en la mayorıa
de casos, en los que se este buscando alcanzar un objetivo, esquivarlos tratando
de cambiar la trayectoria que lleva lo menos posible. La zona de evasion en la
cual el robot detecta un obstaculo, no tien la misma forma circular que la de
deteccion de objetivos. Esta nueva zona es ovalada, efecto que se da porque
distancias pequenas solo son crıticas cuando se va de frente contra el obstaculo
(Figura 6). Si el robot va acercandose al obstaculo, pero su trayectoria es
tangente de tal forma que no se chocara, no es necesario general la desviacion
de la trayectoria.
Figura 6: Zona de evasion de obstaculos.
La zona de evasion tiene dos longitudes principales, drocrit y ε con el semieje
mayor de este ovalo alineado a la direccion de movimiento del robot. Cuando
el angulo entre la direccion del robot y la recta que une su centro con el
obstaculo (θo) es muy pequeno, es mas importante drocrit porque el robot va
xlvi
0000
a una colision de frente contra el obstaculo. Si este angulo es muy grande,
normalmente indicara que el robot esta cerca a pasar en forma tangente por la
zona de menor longitud. La zona de menor longitud depende principalmente
de el ancho del robot.
Los parametros que dominan este comportamiento se muestran en la tabla 4.
Parametro Signficadodocrit Distancia mayor de zona de evasionε Distancia menor de zona de evasinbo Peso de comportamiento evadir sobre ϕνo Peso de comportamiento evadir sobre ψ
ψomin Distancia mınima de detension respecto al obstaculoδo Accion de compensacion por error de angulo evasion de obstaculoδro Accion de compensacion por error velocidad en evasion de obs’aculo
Tabla 4: Parametros de control para el comportamiento evitar.
• Efecto sobre ϕ: El efecto para generar en un cambio de direccion solo
ocurre si se va de frente contra el obstaculo. El parametro que mide el
efecto de la evasion sobre ϕ es δo.
δo =
0 si dro + ε |θo| > drocrit
1dro+ε|θo| si dro + ε |θo| > drocrit,∧, θo < 0
−1dro+ε|θo| de lo contrario
(13)
En este caso el efecto de la distancia esta en el denominador del parametro,
porque cuanto mas cerca se este del obstaculo mayor puede ser la prob-
abilidad de choque y por tanto mayor la accion de evasin.
• Efecto sobre ψ: El criterio de evasion sigue siendo las dos distancias para
evitar el ovalo, pero el efecto es el mismo que en los dos comportamientos
anteriores, el robot se mueve mas despacio cuanto mas cerca este y puede
detenerse a una distancia determinada. El parametro de medicion de la
accion de la evasion sobre ψ esta dado por δro
xlvii
0000
δro =
1 si dro + ε |θo| > drocrit
νodro + ε |θo|+ ψomin de lo contrario(14)
Comportamiento de recorrer
Idealmente un robot siempre tendra un punto hacia donde moverse atraido por
alguno de los elementos principales. No obstante, y dado el hecho que en algu-
nas ocaciones el rango de vision de los robots puede ser muy estrecho, podrıan
presentarse casos donde el robot no “logre ver” ningun elemento que dicte su
siguiente movimiento. Para dar direccion al robot en estos casos, se propone
un cuarto compotamiento que permita al robot recorrer el campo realizando
una tarea de investigacion. Este comportamiento solo es valido mientras el
robot no identifique ningun elemento, esto es basicamente cuando los valores
de δg, δp y δo sean todos iguales a cero.
La forma de recorrer el campo es inspirada en el comportamiento de las abejas,
quienes (bajo ciertas circunstancias), realizan busquedas de alimento barriendo
el terreno que rodea su nido recorriendo una trayectoria en forma de espiral
creciente ([31]). La forma de la trayectoria generada por un robot puede verse
en la figura 7. Es de extrema importancia que el cambio de radio que produce
la espiral luego de un giro completo (distancia entre espirales sucesivas) sea
siempre igual, de lo contrario, con el tiempo se generaran puntos donde la
distancia entre dos espiras consecutivos sea tan grande que no sea detectada
por el cırculo de vision de un robot (figura 8).
Los parametros de control de este comportamiento se presentan en la tabla 5
• Efecto sobre ϕ: El efecto es el de correccion de la velocidad angular nece-
saria en robot para generar la espiral. Esto se logra generando un decre-
mento exponencial de ϕ a traves del tiempo. Solo se aplica este criterio
cuando no se detecta ningun otro comportamiento activo. Este efecto es
medido con el parametro γ.
xlviii
0000
Figura 7: Trayectoria recorrida por un robot bajo comportamiento recorrer.
γ =
0 si δg 6= 0,∧, δp 6= 0,∧, δo 6= 0∆r
t2de lo contrario
(15)
donde t es el tiempo transcurrido en el proceso.
• Efecto sobre ψ: En este comportamiento lo unico importante es lograr la
forma de la espiral y que la velocidad siempre se mantiene constante. El
valor que toma cuando se activa el comportamiento es el necesario para
generar que la funcion normalizada tome el valor de 1. La accion sobre ψ
esta dada por
γr =
1 si δg 6= 0yδp 6= 0yδo 6= 0
4 de lo contrario(16)
3.3.3. Implementacion de funciones de deseo de giro y velocidad
Una vez establecidos los comportamientos que dominan el movimiento del
robot y los criterios para la activacion de los mismos, solo resta unirlos todos
xlix
0000
Figura 8: Trayectoria espiral con forma incorrecta.
Parametro Signficado∆r Aumento de distancia entre dos espiras consecutivas de
la trayectoria.γ Accion de compensacion de direccion para generar la
trayectoria espiralγr Accion de compensacion sobre velocidad para lograr
normalizacion ψ = 1
Tabla 5: Parametros de control para el comportamiento recorrer.
para generar las funciones de deseo de giro y velocidad.
• Normalizacion: Las definiciones 3.3.2 y 3.3.3 indican que esas funciones
solo pueden tomar valores entre [−1, 1] y [0, 1] respectivamente. No ob-
stante, el valor maximo que podrıan tomar una vez sean implementadas
puede ser incierto por la gran cantidad de parametros de control que
se tienen sobre el robot. Para asegurar cumplir con la condicion de val-
ores maximos y mınimos, y aprovechando el hecho que su rango es <1,
se implementa una normalizacion de estas funciones usando la funcion
sigmoide f(x) = tanhx. En la figura 9 se muestra una grafica de es-
ta funcion, donde puede comprobarse que su rango esta en el intervalo
l
0000
requerido.
Figura 9: Funcion tangente hiperbolica.
• Implementacion de ϕ: La implementacion de esta funcion se hace usando
las ecuaciones 9, 11, 13 y 15. Estos parametros se disenaron de tal forma
que valieran 0 cuando no estuvieran activos, por lo cual, la funcion ϕ es
definida como:
ϕ = tanh (bgδg + bpδp + boδo + γ) (17)
• Implementacion de ψ: Esta funcion se implementa usando las ecuaciones
10, 12, 14 y 16. El diseno de estos parametros se realizo para que tuvieran
un valor de 1 cuando estuvieran desactivados, de tal forma que si ninguno
se activa, el robot corre a la velocidad maxima, que se presenta cuando
esta activado el comportamiento recorrer. La funcion ψ se define como:
ψ = tanh (δrgδrpδroγr) (18)
3.3.4. Conclusion
En este capıtulo se introdujeron las bases para el analisis de los robots
moviles identificando los elementos basicos de una tarea distribuida y de
li
0000
un robot en forma individual. Posteriormente se planteo de un platafor-
ma tecnologica apropiada para resolver problemas desde esta perspectiva,
desarrollando arquitecturas de sensores con campo limitado (o ilimitado
dependidendo del diametro crıtico de lectura) y una propulsion diferen-
cial. Luego se describieron los diferentes comportamientos que se usan
para el desarrollo del controlador, y por ultimo, haciendo uso de todas
estas herramientas teoricas que se plantearon durante todo el capıtulo,
en las ecuaciones 17 y 18 se muestra la implementacion final del contro-
lador por comportamientos para el equipo de robots moviles. Ahora, solo
resta realizar las pruebas de rendimiento al controlador desarrollado para
comprobar su correcto funcionamiento, y mas impotante aun, su objetivo
de ser una arquitectura multi-tarea.
lii
0000
Capıtulo IV
Implementacion de control distribuido
4.1. Introduccion
Ya se han establecido las bases necesarias para realizar control distribuido a
un equipo de robots moviles. Se realizo la descripcion de una plataforma tec-
nologica adecuada para la implementacion de la tarea (robot) y se desarrollo la
estrategia de control para un equipo de robots con los que se quiera resolver
una tarea determinada. Esta estrategia desarrollada puede ser usada para lo-
grar la consecusion de tareas diferentes solo con dar valor a los parametros
de control, es decir, se ha logrado el desarrollo de una estrategia multi-tarea.
En este capıtulo se realizan simulaciones del comportamiento del robot para
lograr la consecusion de diferentes tareas. Primero se hace una breve descrip-
cion del simulador implementado para probar la estrategia. Luego se muestra
la solucion de algunos problemas de robotica distribuida usando la estrategia
basada en comportamientos desarrollado en el capıtulo anterior, mostrando
los valores que deben tomar los parametros de control. Por ltimo se realizan
algunos comentarios generales.
4.2. Simulador
Para probar la estrategia se realizo la implementacion de un simulador en
Matlab, un lenguaje de programacion matematica. Para esta implementacion
se usaron funciones invocadas unas a otras. El programa completo consta de
liii
0000
10 funciones cada una con una labor especıfica. En la tabla 6 se muestran estas
funciones y la labor de cada una.
Funcion Descripcioncalcularangulo.m Se encarga de calcular el angulo entre la horizontal
y la lınea que une al robot con un elemento.calculardistancia.m Calcula la distancia entre dos elementos dados en el campo
cdistribuido.m Es la funcion principal donde se establecen todas las condicionespara realizar la simulacion y donde se invocan las demas
CinDif.m Calcula la velocidad lineal y de rotacion del robot con lainformacion del robot1
cveldistrib.m Calcula la velocidad de cada rueda dependiendo del valor de lasfunciones de deseo de movimiento
Dibuja.m Dibuja los elementos de la simulacion, dibujos de robot,objetivos y obstaculos2
generarphi.m Calcula el valor de la funcion ϕgenerarpsi.m Calcula el valor de la funcion ψgraficar.m Genera el cuadro de estado del campo, para cada punto del
movimiento de los robotsnewpos.m Calcula las nuevas posiciones de robots y otros elementos luego de
cada paso de tiempo
Tabla 6: Funciones de simulador.
La interfaz con el usuario se realiza por dos medios diferentes: el ingreso de
los datos para la simulacion y la ventana con los resultados de la misma.
Iniciacion de datos
Todos los datos de control de la simulacion (parametros de control de robot
de la seccion 3.3.2, condiciones espaciales de campo de juego y temporales de
simulacion, numero de elementos y posiciones inciales de cada uno, etc.) se
ingresan en la primera parte de la funcion principal del simulador (cdistribui-
do.m). Es importante notar que se han implementado 3 formas de ingreso
de las posiciones de los elementos: una a una poniendo en forma explıcita la
ubicacion de cada posicion, una forma para poner todos los elementos inicial-
mente en un mismo punto y una forma para generar un numero de elementos
en posiciones aleatorias. En el apendice A se muestran pantallazos de esta
liv
0000
seccion del programa, donde se ve la funcion y los comentarios que indican lo
que representa cada dato necesario.
Resultados de simulacion
Los resultados de la simulacion se muestran como un video del comportamiento
que tendrıan los robots con las condiciones dadas. El tiempo de simulacion se
divide en pasos de simulacion. En cada una de estos pasos se calculan todos los
datos necesarios y se muestra una “foto” del estado de la simulacion. Con el
uso de funciones de movimiento en matlab, todas las imagenes se concatenan
para forman una pelıcula. Un ejemplo de los pasos de simulacion se muestran
en la figura 10.
Figura 10: Ejemplo de cuadros consecutivos de una simulacion.
lv
0000
En la simulacion, al movimiento del robot permite se anade una lınea pase
mostrar la trayectoria que tuvo el robot durante todo su recorrido, ayudando
a verificar que el robot tuvo el movimiento deseado. Donde no sea posible
mostrar toda la simulacion completa (como en este reporte escrito), solo se
muestra la ultima imagen de la simulacion como resultado del proceso.
4.3. Tareas resueltas por control distruibuido
Como comprobacion del control, en esta seccion se muestran algunas tareas
resueltas usando el controlador desarrollado.
4.3.1. Vigilancia cooperativa
La naturaleza de la tarea se mostro en la seccion 2.4.1. Este problema se
desarrolla en campos amplios donde no se conocen objetivos a buscar. Se
propone que el robot se mueva en una trayectoria en forma espiral con su
centro en el origen del robot. Se trata como una variacion del tabajado de
[24].
El parametro de mayor importancia para esta tarea es ∆r que indica la sep-
aracion entre espiras de la trayectoria del robot. Este valor depende de la
tecnologıa usada en los sensores del robot (drcrit), de tal forma que la sep-
aracion debe cumplir ∆r ≤ drcrit. En la figura 11 se mustra la trayectoria
recorrida por el robot para varios valores de ∆r.
Esta tarea puede ser potencializada usando varios robots que ayuden a recorrer
el espacio en menos tiempo. La forma espiral es ideal para usar varios robots,
porque las espirales de los diferentes robots se entrelazan para cubrir mas
terreno. En la figura 12 se hace una aplicacion donde se cubre la misma area
usando 1, 2 y 3 robots. Cuando se usan mas robots debe usarse ∆r cada vez
mayor para poder incluir los caminos de los otros robots entre dos brazos
sucesivos de la trayectoria de un mismo robot. Para un robot debe tenerse
lvi
0000
Figura 11: Vigilancia de un robot. a) ∆r = 0,75. b) ∆r = 1. c) ∆r = 1,5
∆r = 1,5 y se toman 90s para el recorrido, para 2 se tiene ∆r = 1 y se tarda
25s y para 3 se tiene ∆r = 0,5 y se toman 15s.
Cuando se encuentra con una pared, el robot vuelve al campo generando
aleatoriamente el angulo de salida del robot al alejarse de la pared. Esta for-
ma de recorrer el campo es limitada ya que puede tener problemas en areas
con esquinas agudas. Debe realizarse mas investigacion en este campo para
demostrar que las espirales son buen metodo, o serıa necesario buscar uno
mejor.
En la tabla 7 se muestra el valor necesario de los parametros de control para
generar el comportamiento deseado.
lvii
0000
Figura 12: Vigilancia para varios robots. a) 1 robot. b) 2 robots. c) 3 robots
4.3.2. Convergencia robots a puntos especıficos
Muchas veces se desea que un robot valla de un punto inicial a un punto
especıfico evitando choques en el trayecto. Cuando las posiciones inicial y final
son conocidas (condicion de Full information) el robot va directamente a ese
punto deseado sin importar la orientacion inicial. En la figura 13 se muestra
un robot que va buscando un objetivo (punto grande) evitando los obstaculos
(punto pequeno).
Puede hacerse este mismo procedimiento usando varios robots moviendose en
el mismo terreno y al mismo tiempo, cada uno con un objetivo particular. En la
lviii
0000
Figura 13: Comportamiento de un solo robot buscando un objetivo
figura 14 se muestra el resultado de este problema con dos robots, cada uno con
un objetivo particular. Para esta simulacion se activan los comportamientos
buscar y evitar, cancelando el de seguir y se fija un obtaculo sobre la posicion
de los otros robots.
Este problema es tratado usando una aproximacion por metodos diferentes,
entre otros por [10], [35] y [26].
4.3.3. Rodear
Esta tarea es una variacion del comportamiento converger, solo que se da un
valor ψgmin < 0 para lograr que los robots se detengan todos a una misma
distancia antes de llegar al objetivo. Esta variacion, que es una tarea muy
especıfica puede tener una aplicaciones reales, ası, por ejemplo, puede hacerse
que robots con propiedades especiales (i.e escudos de aislamiento de radiacion)
rodeen a un objeto para evitar contacto de este con el exterior (i.e un objeto
radioactivo del que se quiere evitar contaminacion), como respuesta rapida de
contencion. Falta investigacion en este caso, ya que serıa deseable lograr que
lix
0000
Figura 14: Comportamiento de varios robots moviendose en un mismo espacio.
los robots se distribuyan equidistantes entre ellos para usar la mınima cantidad
posible. Un ejemplo de rodear objetos se puede ver en la figura 15, donde se
usan 15 robots para rodear un objeto.
Figura 15: Comportamiento de robots rodeando un objetivo
En la tabla 7 se muestran parametros necesarios para generar este compor-
tamiento. Estos mismos parametros son los que se usan para la siguiente apli-
cacion.
lx
0000
4.3.4. Concordancia de todos los robots a un mismo punto
Muchas veces, se desea que luego de realizar algun movimiento y tener los
robots dispersos en el campo, todos concuerden a un mismo punto (i.e. retorno
al nido). En estos casos, normalmente se cuenta con em full information, ya
que se sabe a donde se quiere ir. En la figura 16 se muestra el resultado de
este problema para 3 y 15 robots en un mismo campo.
Figura 16: Concordancia de muchos robots a un mismo punto. a) 3 robots, b) 15robots.
En esta tarea se desactiva el comportamiento seguir y se les impone a todos
los robots un objetivo comun. Esta tarea es parte de los resultados de la
investigacion, por ejemplo de [25].
4.3.5. Movimiento de robots en cojunto
Se puede desear que los robots se muevan todos en conjunto, es decir, que se
agrupen antes de moverse hacia el objetivo (i.e. forma de viajar de algunos
animales como abejas y patos). Si se desea este comportamiento, se puede
hacer que los robots se junten activando fuertemente el comportamiento a
seguir y que busquen un objetivo activando el comportamiento buscar. En la
lxi
0000
figura 17 se muestra una aplicacion donde los robots se juntan y luego avanzan
al objetivo.
Figura 17: Comportamiento colectivo para buscar un objetivo.
Este problema es tal vez en el que mas falta por investigar, pero los movimien-
tos logrados hasta ahora son bases para resolver otros problemas de mayor
complejidad como la generacion de patrones, ayuda a transporte cooperativo.
4.3.6. Busqueda
Las bases de esta tarea fueron explicadas en las seccion 2.4.1. En esta tarea
se quiere identificar un objeto del cual no se conoce ubicacion alguna, y los
alcances de los sensores son limitados como para identificarlo inicialmente. El
procedimiento para resolver este problema, es en primera instancia empezar a
recorrer el campo en una forma ordenada y luego correr hasta el objetivo una
vez que se ha podido acercar a el lo suficiente para identificarlo sensorialmente.
Un ejemplo de simulacion para esta tarea se muestra en la figura 18, donde se
desea que un robot encuentre un objeto, cuyo distanciamiento inicial al robot
es mayor a dgcrit.
El resultado de esta tarea es la combinacion de las tareas de observacion y
busqueda. Esta tambien es la base para tareas de rescate y transporte cooper-
ativo, como el tratado por [18]. Teoricamente esta ultima podrıa completarse
usando el control desarrollado, pero el simulador aun no tiene los elementos
lxii
0000
Figura 18: Un robot buscando un objeto lejano.
suficientes para lograrlo. Es necesario hacer que el simulador permita que el
robot arrastre el objetivo.
Tabla de parametros de control
En la siguiente tabla se resumen los valores que se dieron a los parametros de
control de las simulaciones anteriores. Las siglas NA y VV significan respecti-
vamente: No aplica y Valor de la explicacion de la tarea.
4.4. Comentarios
En este capıtulo se mostro la implementacion de la estrategia de control por
medio de un simulador desarrollado para este proyecto. Se realizo el control
de las tareas de vigilancia cooperativa, convergencia robots a puntos especıfi-
co, rodear, concordancia de todos los robots a un mismo punto movimiento
robots en cojunto y busqueda, con lo que se demuestra que la estrategia de
control desarrollada tiene la propiedad de se multi-tarea. No obstante los logros
alcansados, debe decirse que el trabajo que resta es bastante arduo. El comen-
tario del trabajo futuro, junto con las conslusiones generales del trabajo se
presentan en el siguiente capıtulo.
lxiii
0000
Parametro Observacion Convergencia Rodear Concordancia Busquedadgcrit NA 30 70 70 5bg NA 10 1 1/20 10νg NA 0.5 0.8 0.5 0.5
ψgmin NA -0.3 -1 0 -0.3dpcrit NA 50 0 50 50bp NA 0 0 1 0νp NA 0.5 0 0.5 0.5
ψpmin NA 0 0 -0.1 0docrit NA 15 15 10 15ε NA 1/10 1/15 1/20 1/15bo NA 200 200 10 200νo NA 1/30 1/30 1/30 1/30
ψomin NA 1 1 0.5 1∆r VV NA NA NA 1
Tabla 7: Parametros de control para el comportamiento recorrer.
lxiv
0000
Capıtulo V
Conclusiones y trabajo futuro
Durante el desarrollo del proyecto se mostro la importancia del control dis-
tribuido como herramienta para resolver diversa cantidad de problemas de
robotica movil, mostrando (en la primera parte) la importancia que ha toma-
do este campo de investigacion en los ultimos anos. Muchos investigadores han
centrado sus esfuerzos a generar soluciones a diversa clase de problemas, encon-
trando soluciones muy buenas, pero tambien muy particulares y dependientes
de la tarea mas que de la platarforma usada, y para generar una solucion a una
nueva tarea, se hace necesario generar toda una nueva estrategia de control,
haciendola no muy flexible. Por esta razon, es deseable el desarrollo de una
estrategia de control multi-tarea que pueda ser usada para solucionar diversos
problemas, solo con dar valores a algunos parametros.
Por otro lado, estas soluciones tecnologicas se han visto ampliamente influ-
enciadas por los sistemas biologicos, particularmente, los llamados insectos
sociales (hormigas, abejas, termitas y avispas). Siguiendo esta misma filosofıa,
la estrategia desarrollada sera bio-inspirada basada en comportamientos. Esta
caracterıstica le proporciona a la solucion simplicidad y robustez.
Atacando una estrategia de control robotica generando funciones que controlen
su direccion y su velocidad, permite generar controladores reconfigurables que
permiten resolver muchos problemas sin necesidad de crear nuevas estrategias.
Estas funciones pueden ser implementadas por comportamientos son acciones
lxv
0000
particulares que guıan al robot a tener un movimiento particular. La com-
binacion de estos comportamientos por reglas bien definidas de activacion y
desactivacion crea soluciones a tareas muy complejas.
Definir una plataforma tecnologica apropiada es necesario para el desarrollo
de estrategias de control. Los robots moviles que usan propulsion diferencial
son muy populares por la amplia gama de movimientos que pemiten el robot,
controlados por la relacion que existe entre sus ruedas motoras.
Se logro el desarrollo de una estrategia de control para robotica movil, que
permite coordinar robots para resolver diferentes tareas sin necesidad de re-
alizar grandes cambios en la estrategia cuando se quiere tratar un problema
diferente. La estrategia de control mostro se util para atacar problmas tales
como observacion, coordinacion de movimientos, busqueda entre otros.
A pesar de los avances que se lograron en el desarrollo de la estrategia, aun
queda un enorme trabajo de investigacion, ya que si bien se logro resolver var-
ios problemas con la misma estrategia (usando diferentes cantidades de robots)
dando valores adecuados a los parametros de control,es necesario normalizar
los valores de los parametros y definir sus rangos de trabajo optimos para cada
tarea. Tambien es necesario indagar y potencializar las soluciones que se han
obtenido para generar comportamientos mucho mas complejos y mejores solu-
ciones. Ası, por ejemplo, es necesario trabajar en mejorar los comportamientos
colectivos de los robots para pasar de simples movimientos grupales a compor-
tamientos cooperativos complejos tales como la formacion de patrones.
Es necesario mejorar el simulador para incluir fenomenos como el arrastre de
objetos por robots, lo que permitirıa hacer pruebas de para resolver problemas
de transporte cooperativo y busqueda y rescate. Por ultimo es necesario decir
que serıa muy interesante poder probar la estrategia de control desarrollada
en un equipo de robots reales, esto permitirıa sacar el trabajo del simulador
y enfrentar la estrategia desarrollada condiones reales, que pueden permitir
mejorarla.
lxvi
0000
Apendice A
Interfaz de ingreso de datos del simulador
lxvii
0000
lxviii
0000
lxix
0000
Referencias
[1] Axelrod, R., “The evolution of cooperation”, Basic Book, New York, 1984.
[2] Beslon G., Biennier, F., Hirsbrunner, B., “Multi-Robot Path-Planning
Based on Implicit Cooperation in a Robotic Swarm”, en International con-
ference on Autonomous Agents, Minnesota, 1998.
[3] Bonabeau, E., Dorigo, M., Theraulaz., “Swarm Intelligence: from natural
to artificial systems”. Oxford University Press. New York, 1999.
[4] Bourke, A.F.G., Franks, N.R., ”The social evolution in ants”, Princeton
University Press, 1995
[5] Bonabeau, E., Theraulaz, G., “Swarm Smarts”, Scientific American, pp
83-89, Marzo 2000.
[6] Cao, Y., Fukunaga, A., Kahng, A., “Cooperative Mobile Robotics: An-
tecedents and Directions”, Autonomous Robots, 4, pp. 1-23 (1997).
[7] Craig, J.J., “Introduction to robotics: mechanics and control”. 3th ed.
Prentice Halll, Upper Saddle River, NJ, 2005.
[8] Dautenhahn, K., “Ants don’t have friends - Thoughts on Social Intelligent
Agents”, University of Reading, Whiteknights, 19??
[9] De Schutter, J., Bruyninck, H., Zhu, W.-H., Spong, M.W. , “Force con-
trol: A bird’s eye view” in International Workshop on Control problems in
Robotics and Automatization, San Diego CA, 1997
[10] Doty, K.L., Van Aken R.E., “Swarm robot materials handling paradigm
for a manufacturaring workcell” on the IEEE International Conference on
Robotics and Automation, Atlanta GA, May 2-6,1993
lxx
0000
[11] Dudek G., Jenkin, M.R., Milios, E., Wilkes, D., “A Taxonomy for Multi-
Agents Robotics”, Autonomous Robots, ?, pp 5-29, 19??
[12] Fukuda, T., Kawauchi, Y., “Cellular Robotics”, Springer Verlag, pp. 745-
782, 1993.
[13] Guo, Y., Parker L., “A Distributed and Optimal Motion Planning Ap-
proach for Multiple Mobile Robots”. Proceedings of IEEE International
Conference on Robotics and Automation (ICRA), 2002.
[14] Guo, Y., Parker, L., Madhavan, R., “Towards Collaborative Robots for
Infrastructure Security Applications”, Proceedings of International Sym-
posium on Collaborative Technologies and Systems, pp 235-240. 2004.
[15] Izquierdo-Torres E., “Collective intelligence in multi-agent robotics: Stig-
mergy , Self Organization and evolution”. University of Sussex, Bringhton,
2004
[16] Jennings, J., Kirkwood-Watts, C., “Distributed Mobile Robotics by the
Method of Dynamic Teams”, en 4th International Symposium on Distribut-
ed Autonomous Robotic Systems, 1998.
[17] Krause, J., Ruxton G.D., “Living in groups”, Oxford University Press,
New York, 2002
[18] Kube, C.R., Zhang H., “Collective Robotics Intelligence”, University of
Alberta, Edmonton-Alberta, 1992.
[19] Kube, C.R., Zhang H., “Collective Robotics: from social insects to
robotics”, University of Alberta, Edmonton-Alberta, 1993.
[20] Kube, C.R., Bonabeau, E., “Cooperative transport by ants and robots”,
Robotics and autonomous systems, 30, pp. 85-101 (2000).
[21] LePape, C., “A combination of centralized and distributed methods for
multi-agent planning and scheduling”, en IEEE ICRA, pp. 488493, 1990.
[22] Mataric, M.J., “Issues and approaches in design of collective autonomous
agents”. Volen Center for Complex Systems, Brandeis University, Waltham
MA, 1994.
lxxi
0000
[23] Ogata, K., “Ingenierıa de control moderna”, 3 ed. Prentice Hall, Mexico,
1998
[24] Parker, L., Fregene K., Guo, Y., Madhavan, R.,, “Distributed Heteroge-
neous Sensing for Outdoor Multi-Robot Localization, Mapping, and Path
Planning”, Multi-Robot Systems: From Swarms to Intelligent Automata,
pp. 21-30, Kluwer, 2002.
[25] Parker, L., Guo, Y., Jung, D., “Cooperative Robot Teams Applied to the
Site Preparation Task”, Proceedings of 10th International Conference on
Advanced Robotics, pp 71-77, 2001.
[26] Passino, K., “Biomimicry for Optimization, Control, and Automation”,
Springer-Verlag, London, 2005
[27] Quijano, N., Passino, K., “The ideal free distribution: Theory and
engineering application”, en IEEE Transaction on systems, man, and
cybernetics-Part B: cybernetics. Vol. 37, No. 1, pp. 154-165, 2007.
[28] Ramos, V., Merelo, J.J., “Self-Organized Stigmergic Document Maps: En-
vironment as a Mechanism for Context Learning”, AEB02, Merida, 2002
[29] Sanchez, A., “Arquitecturas de robots: Notas de clase”. Escuela Tecnica
Superior de Ingenierıa, Madrid, 2005.
[30] Sanchez, A., “Sensores y actuadores: Notas de clase”. Escuela Tecnica
Superior de Ingenierıa, Madrid, 2006.
[31] Schmid, H., “Como se comunican los animales”, Salvat, Barcelona, 1986
[32] Seeley, T.D., ”The Wisdom of the Hive: The Social Physiology of Honey
Bee Colonies”, Harvard University Press, 1995
[33] Stephens, D.W., Krebs, J.R., ”Foraging theory”, Princeton University
Press, 1986
[34] Tarasewich, P., McMullen, P.R., “Swarm Intelligence: Power in numbers”,
Communications of the ACM, Vol 45. No. 8, 2002
lxxii
0000
[35] Tzafestas, S.G. , Tzamtzi M.P., Rigatos G.G., “Robust motion planning
and control of mobile robots for collision avoidance in terrains with mobile
objects”, Mathematics and Computers in simulation 59, pp 279-292, 2002
[36] Wilson E.O., “The insect societies”, Harvard University Press, Cam-
bridge, 1971
lxxiii