Robótica basada en comportamientos Comportamiento Social Facultad de Ingeniería Instituto de Computación Objetivos de la clase • Entender los beneficios y complejidades de los sistemas robóticos multiagentes • Conocer las diferentes dimensiones en las que puede ser caracterizado un equipo de robots • Presentar las diferencias entre el comportamieto social y el comportamiento de un solo agente robótico Definiciones previas • Sistema Multiagente Sistemas formados por un grupo de agentes racionales que pueden interactuar entre sí • Sistema cooperativo Sistema multiagente donde se obra conjuntamente con otros para un mismo fin • Sistema competitivo Sistema multiagente donde los miembros compiten por alcanzar sus objetivos • Comportamiento social Conducta de los individuos dentro de un patrón de relaciones, posiciones, y número de personas que forman la organización social • Equipo robótico | Sociedad robótica Es un sistema multiagente cuyos miembros son agentes robóticos ¿Es mejor un sistema robótico de N agentes que un único robot? Ventajas y desventajas de los sistemas robóticos multiagentes Aspectos positivos: • Mejora de la performance Paralelizando las tareas dentro del sistema (siempre que la tarea global sea “descomponible”) • Habilitador de tareas El sistema multi-robot podría permitir cumplir una tarea que no podría realizarse por un único robot • Sensado distribuido Compartir información sensada más alla del rango de los sensores de un único robot • Acciones distribuidas a distancia Un equipo robótico puede desarrollar una misma tarea simultáneamente en diferente ubicaciones • Tolerancia a fallas La redundancia en los agentes puede aumentar la confiabilidad del sistema global Ventajas y desventajas de los sistemas robóticos multiagentes Aspectos negativos: • Interferencia ”Demasiados cocineros estropean la sopa”. El volumen de los agentes reduce el espacio de navegación (colisiones, interfierencia en el sensado, dificulta la navegación, etc.) • Comunicación y Robustez ”La comunicación no es gratis”. - Requiere HW adicional, procesamiento computacional y energía - Debe manejar el ruido en los canales, ser capaz de detectar “engaños” de otros agentes, etc. • Incertidubre sobre las intenciones de los otros El sistema necesita coordinarse de alguna manera, por lo que necesita saber de los otros en alguna medida Ventajas y desventajas de los sistemas robóticos multiagentes Que pasa con: • Costo del sistema global En algunos casos, el costo de la suma de los robots podría ser mayor que el costo de un único robot más complejo que resuelva la misma tarea. En otros casos no, y es en general lo que sucede considerando ventajas y desventajas de estos sistemas. Se considera: • – Costo del harwdare – Costo de hs. Hombre para ensamblar y mantener los robots – Costo de desarrollo Adaptabilidad Entendida como la capacidad de modificar el comportamiento de acuerdo a las circunstancias en las que se encuentre el sistema En general es una ventaja de los sistemas robóticos multiagentes • Complejidad En general, y para determinadas tareas, cada unidad del sistema robótico es más simple que uno solo que resuelva toda la tarea Sociedades cooperativas Perspectivas estudiadas • Etológica: estudia cómo los animales cooperan y se comunican entre sí • Organizacional: analiza en profunidad cómo se estructuran las sociedades humanas • Modelos computacionales: estudia los avances y diseños realizos en las áreas de multiprocesamiento y diseño de sistemas paralelos pertencientes a las ciencias computacionales • Inteligencia artificial distribuida: analiza el tratamiento dado a la cooperación (negociación y otros métodos de Comunicación) • Planificación de Movimientos: aborda los problemas geométricos y cinemáticos de múltiples objetos que se mueven en el espacio • Vida artificial: estudia las formas de relacionadmiento del equipo multiagente con su entorno incluyendo aspectos de cooperación y competición Tareas en una sociedad robótica • Más de allá de las perspectiva tomada, se han identificado muchos trabajos y resultados útiles para esta área de la robótica • Las sociedades robóticas se han estudiado analizando y tratando de resolver ciertas tareas que se consideran estándar y que son tomadas en la naturaleza: • • • • • Foraging (recolectar) Consuming (alimentarse) Grazing (pastoreo) Flocking (formaciones o bandadas) Object transport (Transporte de objetos) Tareas en una sociedad robótica (cont.) Tareas como caso de estudio: • Foraging (recolectar) • Consuming (alimentarse) • Grazing (pastoreo) • Flocking (formaciones;bandadas) • Object transport (Transporte de objetos) Consideraciones etológicas Actividad social en el comportamiento animal: • Comportamientos sociales simples - Hacer lo que hacen los otros (ej: contagio del bostezo) - Comportamiento recíproco - Comportamiento antagónico (oponerse, conflicto, agresión) • Comportamientos de apareamientos - Persuadir, sosegar, aquietar - Orientación, enfoque Tinbergen,1953 Consideraciones etológicas (cont.) Actividad social en el comportamiento animal (cont.): • Comportamientos de “familia” o grupos de vida - Comportamientos de defensa de las manadas: ataque, alerta,confusión por amontonamiento - Congregaciones, usando olfato o visión - Comportamientos “infecciosos” que se expanden en la sociedad (alarma, sueño, alimentación) • Comportamientos de lucha - Lucha reproductiva (evitar que los rivales estén igualmente posicionados) - Hostilidad mutua (extender la sociedad sobre una región para dominarla) - Ordenamiento (establecer jerarquías de dominancia, lo cual reduce las luchas) Tinbergen,1953 Consideraciones etológicas (cont.) Otros resultados influyentes: • Factores del entorno (Croy and Hughes, 1991) El impacto de los factores del entorno tales como suministro de alimentos, el hambre, el peligro y la competencia en el comportamiento de alimentación de los peces • Comportamiento y comunicación de multitudes (Kaufmann, 1974) Comportamientos emergentes, naturaleza de la comunicación que soporta este grupo de comportamientos • Estudio de los primates relativas a su organización en colonias (Altmann, 1974) • Otros... Características del comportamiento Social Desde el punto de vista social, un equipo de robots puede ser categorizado a través de varias dimensiones: • Confiabilidad • Organización • Comunicación • Distribución espacial • Congregaciones • Desempeño Consideraciones de diseño El propósito de un equipo robótico (para qué es construído) influencia las decisiones de diseño sobre: • comunicación • organización • estrategias de comportamiento • etc. Considerando además si son apropiadas para la tarea a realizar en un entorno específico Consideraciones de diseño (cont.) • Los equipos robóticos pueden ser clasificados de diferentes formas (taxonomías) • Esto ayuda a definir el espacio de diseño de estas sociedades Consideraciones de diseño (cont.) Taxonomía simple • Cooperación activa o no activa Se comparte o no un objetivo común • Nivel de independencia El control es centralizado o distribuído (o una combinación de ambos) • Tipos de comunicación explícita: • se comparte una señal intencionalmente entre dos o más robots implícita: • La información se infiere a través de la observación de la conducta de los otros agentes • La información se comparte a través del entorno (sonido, colores, sustancias químicas, etc.) Premvuti, Yuta. Japón 1990-1993 Consideraciones de diseño (cont.) Taxonomía más compleja • • • • • • Tamaño del equipo Rango de comunicación Topología de la comunicación Reconfiguración del equipo Capacidad de la unidad de procesamiento Composición del equipo Dudek y otros -1993 Consideraciones de diseño (cont.) Otro enfoque considera 4 ejes a estudiar: • Arquitectura El control es centralizado o distribuido • Diferenciación de agentes La estructura y sistema de control de los agentes es idéntica o diferente • Estructura de la comunicación a través del entorno: “seguir un camino dejado por otro robot” a través del sensado: observando las acciones de los otros a través de comunicación: compartiendo señales intencionales • Modelo de las intenciones, capacidades, estados o creencias de los agentes Cao y otros -1995 Consideraciones de diseño (cont.) • No es posible afirmar que estas taxonomías pueden expresar adecuadamente el amplio rango de posibilidades de diseño de un equipo robótico • Arkin propone analizar las siguientes dimensiones: 1.Estructura y organización social 2.Comunicación 3.Percepción distribuida 4.Aprendizaje social Se abordará cada una mostrando resultados de investigaciones que incluyeron prototipación en robots reales 1. Estructura y organización Social The Nerd Herd • Expande el concepto de la arquitectura Subsumption para aplicarlo a equipos robóticos • En este enfoque se han especificado múltiples comportamientos sociales básicos. Entre ellos: – Homing: cada agente se esfuerza por moverse a una zona o ubicación objetivo deseada (home) – Dispersion: los agentes cubren una gran área. Se dispersan por el área hasta establecer y luego mantener una separación mínima entre ellos – Aggregation: los agentes tratan de acercarse entre sí hasta alcanzar y luego mantener la proximidad deseada – Following: los agentes se siguen entre ellos. Mantener atrás o al lado de otro robot – Safe wandering: los agentes deambulan evitándose entre sí y a los obstáculos Maja Mataric y otros -1994 1. Estructura y organización Social The Nerd Herd (cont.) • Al igual que Subsumption usa una codificación basada en reglas Aggregate: If an agent is outside the aggregation distance turn toward the aggregation centroid and go. else stop • Coordinación de comportamientos. Dos formas: Combinación directa: vector suma Combinación temporal: secuencia de comportamientos • Información sensorial Se codifica como predicados que son evaluados por los datos sensoriales, activando o no comportamientos relevantes (crowded?, have-puck?, at-home, etc.) 1. Estructura y organización Social The Nerd Herd (cont.) • Los comportamientos pueden ser combinados para representar comportamientos sociales más complejos . Ejemplos: flocking: safe wondering +aggregation+dispersion surrounding: safe wondering +following +aggregation • El aporte de este enfoque es usar y diseñar comportamientos que manifiestan comportamientos sociales basados en modelos animales que se pueden desarrollar con hw/sw “simple” (no hay algo nuevo a nivel arquitectura) 1. Estructura y organización Social Alliance Architecture • Agrega sistema motivacional Motivaciones: aceptar (conformarse), impaciencia • Agrega “conjunto de comportamientos” • Recibe información a través de comunicación explícita • Puede verse como una capa por encima de la arquitectura Subsumption que encapsula estas nuevas capacidades 1. Estructura y organización Social Comportamientos de “estancamiento” Estancamiento: ocurre cuando los miembros del equipo no están cooperando efectivamente entre sí Problema común en tareas multirobot ! Ejemplo: – tarea: empujar una caja – estancamiento: los agentes individuales empujan en direcciones opuestas 1. Estructura y organización Social Comportamientos de “estancamiento” (cont.) Abordajes: • Alliance: agrega variables motivacionales (ej: conformidad, impaciencia). Depende en gran medida de la comunicación • Arquitectura basada en comportamientos: Agrega un nuevo comportamiento a la arquitectura general que modela el estancamiento 1. Estructura y organización Social Comportamientos de “estancamiento” (cont.) Ejemplo: • Tarea: empujar una caja • Comportamiento de estancamiento: el robot esta en contacto con la caja, pero esta no es mueve • Abordaje: comportamiento de estancamiento que anida otros comportamientos, que se priorizan de acuerdo al tiempo en que la condición persiste – Realineación: empujar en otra dirección – Reposicionamiento: moverse a otra posición en el perímetro de la caja 2. Comunicación entre Robots Temas de desarrollar: • • • • La necesidad de comunicación Rango de comunicación Contenido de la comunicación Garantía de la comunicación 2. Comunicación entre Robots La necesidad de comunicación • No es gratis y puede ser poco confiable • Puede ser explícita: usando canales específicos • Puede ser implícita: “observación” del comportamiento o cambios en el entorno ¿Cómo se debiera incorporar comunicación a un sistema multirobot? 2. Comunicación entre Robots La necesidad de comunicación (cont.) Identificar los “roles” de la comunicación en el equipo ayuda en el proceso de diseño. Ejemplos: • Sincronización de acciones Algunas tareas requieren secuencia o simultaneidad. La comunicación posibilita la coordinación de estas acciones • Intercambio de información Diferentes agentes tienen visiones diferentes del mundo basados en su posición espacial o conocimiento de eventos pasados. Puede ser útil compartir esto • Negociación: Tomar decisiones sobre lo que debiera hacerse. Evita duplicación de esfuerzo. 2. Comunicación entre Robots La necesidad de comunicación (cont.) ¿ Es importante la comunicación para la cooperación? Ejemplos: • La comunicación puede evolucionar a una sociedad de agentes robóticos simples (MacLennan, 1991) El sistema multirobot mostró un 84% más de evolución que aquel donde la comunicación fue bloqueada • La información no necesita ser explícita para ser potencialmente útil a un sistema multiagente (Franklin & Harmong, 1987) Todos los estudios muestran la utilidad de contar con algun nivel de comunicación en los equipos robóticos Arkin establece: para determinadas tareas la comunicación explícita no es prerequisito para la cooperación 2. Comunicación entre Robots Rango de comunicación ¿ Cuánto mayor sea el rango de comunicación, mejor será el sistema? • No necesariamente • Si envío un mensaje “en voz baja”, prevengo que otros me escuchen. ¿Pero si el mensaje es de ayuda? • Si envío un mensaje demasiado alto (gritar), podrían responder muchos entorpeciendo la tarea global del sistema (ej: explorar un entorno) Rango de comunicación: en el sentido de la cantidad y alcance de información que puedo comunicar 2. Comunicación entre Robots Contenido de la comunicación ¿ Qué debieran decirse los robots? • Hay variedad de estudios sobre si es necesaria o no la comunicación explícita para que un sistema robótico multiagente coopere. – Se ha mostrado que no es necesaria – Dependendiendo de la tarea podría ser mas o menos performante el cumplimiento del objetivo del sistema • ¿En qué medida mejora la performance del sistema por agregar comunicación explícita? 2. Comunicación entre Robots Contenido de la comunicación (cont.) Se busca cuantificar la performance por agregar comunicación explícita en Foraging •Comunicación de estado Sólo se transmite un bit de información que indica en qué estado se encuentra el agente. – 0: wandering (vagando) – 1: goal-directed (moviéndose al atractor ó trasladádolo a la base) El agente receptor se mueve hacia el agente (no hacia el objeto atractor) siguiéndolo hasta llegar al radio del atractor Es el comportamiento que exhiben los animales •Comunicación de objetivo Igual al anterior, pero se transmite la posición del atractor sin necesidad de seguir al emisor Balch, Arkin 1994 2. Comunicación entre Robots Tarea de Foraging (recolección) Experimentos simulados: - 2 robots - 7 objetos a recolectar - Cuantificar mejora performance (medida en ciclos de simulación) Resultados: A – C: - la sociedad se vuelve “más goal directed” - agregar datos a la comunicación mejora la performance (5.145 c, 4.470c, 3.495c) 2. Comunicación entre Robots Garantía de la comunicación • Aún donde la comunicación tenga lugar con los vecinos inmediatos se pueden producir bloqueos mutuos (deadlocks) • Ejemplo de deadlock: todos los agentes de la comunidad robótica piden ayuda al mismo tiempo y esperan la respuesta • Estrategias: – Evitar ese escenario – Dejar que ocurra y luego salir de él 3. Percepción distribuída - ¿Cómo puede compartirse la información entre los agentes? - ¿Cuánta actividad perceptual puede ser coordinada entre los agentes del sistema? - ¿Qué información sensorial vale la pena compartir? - ¿Cómo un sistema percibe el mundo a diferencia de un único robot? 3. Percepción distribuída (cont.) Temas a tener en cuenta: - Distinguir a los miembros del equipo del resto de los objetos del entorno (kin recognition) - Discernir las intenciones de los agentes sd Cooperación por observación: observar las acciones de los otros para elegir la acción adecuada dada la situación de la tarea actual Utilidad depende de la tarea 4. Aprendizaje Social • Los equipos robóticos ofrecen nuevas oportunidades para aprendizaje, particularmente en: - auto-organización - evolución a lo largo del tiempo hacia sociedades más cooperativas Ejemplo Kilobots Liberación: nov/2011 Origen: Universidad de Harvard, EEUU(*) Sistema: sistema robótico multiagente, del tipo enjambre Motivación: proveer una plataforma de pruebas real para probar algoritmos de control distribuidos, en su mayoría Inspirados biologicamente, y aportar en el entendimiento del comportamiento colectivo (* ) Grupo de Investigación de sistemas autoorganizados dirigidos por Radhika Nagpal, y el profesor Thomas D. Cabot, Asociado de Ciencias de la Computación en la Escuela de Harvard de Ingeniería y Ciencias Aplicadas (SEAS) y miembro principal de la Facultad Wyss Instituto de Ingeniería Inspirada biológicamente en Harvard. El equipo también incluye a Michael Rubenstein, becario postdoctoral en la SEAS y Ahler cristiano, miembro de SEAS y e Instituto Wyss Ejemplo (cont.) Kilobots: el agente Dimensiones: 33 mm de diámetro, 34 mm de altura Comunicación: IR (un radio de hasta 7 cm) Sensado: Sensor de brillo de luz ambiente Movimientos: cada robot tiene dos motores de control Independiente Emisor de luz: cada agente tiene un led RGB apuntando hacia arriba. Cada color tiene 3 niveles de control de brillo Programación: C (winAVR) Costo: U$14 (costo de las partes, no incluye hs hombre) Tiempo armado: 5 min Ejemplo (cont.) Kilobots: pruebas • On/off del enjambre • Lectura de voltaje • Orbitar • Seguimiento de trayectoria • Recolección • Control de formación : “seguir al líder” • Sincronización Referencias • “Behavior-Based Robotics”, capítulo 9, Arkin, MIT Press, 0262011654, 1998. • “Autonomous Robots: From Biological Inspiration to Implementation and Control”, capítulo 11, Bekey, MIT Press, 9780262025782, 2005. • The Kilobot Project Disponible en: http://www.eecs.harvard.edu/ssr/projects/progSA/kilobot.html Visitado: octubre 2012