Simulacion de Robots Bio-Inspirados

Jaime Andres Rincon Arango June 23, 2013

Contents
1 Introduccion 2 Materiales y Metodos 3 Herramientas de Software 3.1 Jason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Cartago . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Ejemplo de un Agente y un Artefacto . . . . . . . . . . . . . . 4 Descripción de las Partes del Simulador 4.1 World Space . . . . . . . . . . . . . . . . 4.2 Construcción de los Apodos . . . . . . . 4.3 Construcción de los Agentes . . . . . . . 4.4 Agente Manager . . . . . . . . . . . . . . 4.5 Agentes . . . . . . . . . . . . . . . . . . 4.6 Contract Net Protocol (CNP) . . . . . . 5 Concluciones 2 3 7 7 7 7 9 9 10 10 11 12 13 15

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

List of Figures

17

1

Chapter 1 Introduccion
En la rama tecnológica de la robótica existe un área que investiga la creación de robot inspirados en animales como serpientes, orugas, pájaros, insectos etc y tratar de emular su estructura física, sus articulaciones y forma de desplazamiento, entre otros. La construcción de estos robots, requieren un hardware que en ocasiones puede ser costoso, mas sin embargo es posible utilizar herramientas de simulación, gracias a los nuevos ordenadores, que permiten observar sus comportamientos en diferentes entornos. Con estas herramientas de simulación se pueden diseñar mundos virtuales con propiedades físicas, que emulan la gravedad, índice de rozamiento, fuerzas etc. De esta forma se puede saber aproximadamente cómo se comportará el robot en entornos físicos. En la red se pueden encontrar diferentes herramientas de software para hacer este tipo de simulaciones, como BULLET1 , Opend Dynamic Engine (ODE)2 etc. Con estas se simula físicamente el robot pero es notable la ausencia de alguna entidad inteligente que controle los movimientos de los robots y para ello se recurre a los Sistemas Multi-Agente. Un agente según [2, Michael Wooldridge]: Un agente es un sistema informático que está situado en algún entorno y que es capaz de ejecutar una acción autónoma en este entorno con el fin para cumplir con sus objetivos de diseño. No obstante los SMA no son solo una forma de dar autonomía a las entidades del EV, sino que también pueden tomar decisiones o variar su comportamiento con respecto a las demás entidades, realizando una sincronización y cooperación entre ellos, de esta forma podrá cumplir sus objetivos de forma rápida.
1 2

http://bulletphysics.org/wordpress/ http://www.ode.org/

2

Chapter 2 Materiales y Metodos
En la construcción de robots inspirados en animales e insectos, los robots cuya forma de desplazamiento imitan a las serpientes han despertado un gran interés, gracias a su capacidad de poder acceder a sitios a los que un robot ordinario no podría llegar. Actual mente se utilizan en la búsqueda de personas en edificios destruidos por fenómenos naturales, en aplicaciones militares como observadores del movimiento de tropas en las líneas enemigas etc. En este tipo robots existen dos variantes, la primera plantea una única unidad de control y procesamiento de la información proveniente de los sensores y diferentes módulos móviles que ayudan a que se desplacen, como el que se muestra en la figura 1. Y la segunda que implica tener diferentes cuerpos con su propia unidad de control y procesamiento de la información, brindando la posibilidad de poder unir cada uno de los cuerpos para crear robots más complejos con formas variadas, como el que se muestra en la figura 2.

Figure 2.1: Carnegie Mellon snake robots

En este trabajo se quiere abordar la simulación virtual de los robots modulares como el mostrado en la figura 2A; partiendo de la idea de que cada módulo es un Agente, con su comportamiento y su función de desplazamiento y que con la unión de más Agentes poder obtener un sistema multi-agente, 3

Figure 2.2: Robots Modulares. (A) Robot Apodo (B) Robot Modula Esférico

con un nivel de complejidad mayor, donde se puedan coordinar, comunicar y evolucionar para conseguir el objetivo que se les ha propuesto. Para realizar la simulación de estos robots se tiene que tener en cuenta como se ejecutara el movimiento de la articulación para visualizar el posible desplazamiento. Para controlar el movimiento de los módulos se utiliza Osciladores sinusoidales, como se muestra en la figura 3. El modelo matemático para obtener la oscilación es el que se muestra en la ecuación 1. 2·π · t + Ψ i ) + Oi T Un ejemplo de cómo se realiza la oscilación de un solo modulo se muestra en la figura 4. Este oscilador sinusoidal es ejecutado por el agente, y permite que el robot se desplace por el entorno virtual, como se muestra en la figura 5. Este es el movimiento básico de cada unidad, ahora bien sabiendo que el objetivo es que varios agentes puedan unirse para crear unidades más complejas, como por ejemplo una serpiente, el modelo de oscilación para varios módulos se muestra en la figura 6 y el modelo matemático en la ecuación 2. φi (t) = Ai sin( φ1 (t) = A · sin( 2·π 2·π + Φ0 )φ2 (t) = A · sin( + ∆Φ + Φ0 ) T T 4

Figure 2.3: Osciladores sinusoidales

Figure 2.4: Oscilación de un Modulo

En robots modulares en el que no conste la presencia de un agente como unidad de control; el dispositivo encargado de realizar el control de movimiento de los cuerpos ejecutaría el modelo matemático de la ecuación 2 y de esta forma el robot se desplazaría por el entorno. Como el objetivo de este proyecto es utilizar a los SMA como unidad inteligente y utilizar las bondades que estas entidades software ofrecen, cada módulo compuesto por dos cuerpos y un oscilador sinusoidal se simularan con un Agente. Con la unión de varios agentes se obtendra estructuras más complejas y en ese 5

Figure 2.5: Simulación de un Oscilador sinusoidales en ODE

Figure 2.6: Modelo de Oscilación de Varios Módulos

momento los agentes tendrán que comunicarse unos con otros y coordinarse para poder desplazarse y conseguir los objetivos.

6

Chapter 3 Herramientas de Software
3.1 Jason

Jason es una plataforma para el desarrollo de sistemas multi-agente. Una extensión de la AgentSpeak lenguaje de programación orientado a agente se usa para programar el comportamiento de los agentes individuales. Jason se desarrolla en Java y permite la personalización de la mayoría de los aspectos de un agente o de un sistema multi-agente.

3.2

Cartago

Cartago1 (Infraestructura común de artefactos para Agentes de entornos abiertos) es una infraestructura que hace posible programar y ejecutar entornos virtuales para los sistema multi-agente. Cartago se basa en agentes y artefactos (A & A) un meta-modelo para el modelado y diseño de sistemas multi-agente. En realidad, A & A se basa en los estudios interdisciplinarios que involucran teoría de la actividad y Cognición Distribuida como principales marcos conceptuales de fondo. Así que con Cartago, los desarrolladores de sistemas multi-agente tienen finalmente un modelo simple de programación, compuesto por conjuntos dinámicos de objetos de diferentes tipos, aparte de los modelos y plataformas utilizados para los agentes.

3.3
1

Ejemplo de un Agente y un Artefacto

Agente en Jason:
http://apice.unibo.it/xwiki/bin/view/CARTAGO/

7

Creación de un Artefacto:

Programación del Artefacto en Java:

8

Chapter 4 Descripción de las Partes del Simulador
A continuación se realizará una descripción de las partes que componen el entorno de simulación.

4.1

World Space

El World Space (WS), es el lugar donde se situaran los agentes y los artefactos, el WS es considerado como la primera clase de abstracción de los SMA, encapsula todas las funcionalidades y servicios que puede soportar. El WS se puede ver de dos maneras un World Space Virtual (WSV) o un World Space Físico (WSF). En el WSV los agentes podrán percibir el mundo des de bases de datos, servicio web etc. El WSF en el que los agentes recibirán información proveniente de sensores, situados en el entorno de esta forma el agente podrá percibir y actuar para poder conseguir su objetivo. En el WS, los artefactos representaran las herramientas y recursos que los agentes podrán de forma dinámica utilizar; estos artefactos serán instanciados en el WS, con el fin de definir su comportamiento, un ejemplo de este instanciamiento, utilizado en este trabajo, es la existencia de artefactos: • Linkeables • No Linkeables Donde los artefactos que tienen el primer comportamiento, permiten unirse con cualquier otro que tenga el mismo comportamiento con el fin de ser utilizados por los agentes, un ejemplo de esto son los body o cuerpos de 9

los agentes, mientras que los que poseen el segundo comportamientos, son artefactos que no podrán ser utilizados por los agentes, pero que estarán situados en el WS, un ejemplo de estos artefactos es: muros, rocas arboles etc.

4.2

Construcción de los Apodos

Los robot Apodos1 , carecen de patas o ruedas para realizar su desplazamiento y su cinemática, se asemeja a la cinemática de las serpientes. En este caso un Sistema Multi-Agente Robotico Virtual (SMARV) está compuesto por dos VB (virtual body), que se representan como dos cubos, como se muestra en la figura 7.

Figure 4.1: Virtual Body

Estos dos cubos representan el cuerpo del agente en el VE. Esta es la unidad básica en la cual el SMARV se construirá de forma virtual. Con la unión de más agentes con sus respectivos cuerpos, se podrán construir entidades complejas como la que se muestra en la figura 8.

Figure 4.2: Ejemplo de un Snake
1

http://www.iearobotics.com

10

En esta figura se utilizó el ejemplo de snake , aunque no está simulado con sistemas multi-agente es una muestra de lo que se podría llegar a construir con el simulador.

4.3

Construcción de los Agentes

Con el fin de poder darles autonomía a cada módulo se utilizó a JASON2 y CARTAGO3 para el modelado de los agentes y de los cuerpos; de esta forma separamos mente del cuerpo, donde parte inteligente está controlada por JASON y el cuerpo esta modelado con CARTAGO, sin embargo se necesita un agente que este en contacto con el entorno virtual y en comunicación con los agentes, que sepa dónde está cada agente, cada artefacto, un agente que sea el facilitador entre el VE y los agentes, a este agente se le denomina MANAGER. De esta forma se tiene tres tipos de entidades en nuestro simulador, que son: • Agente Manager • Agentes • Artefactos

4.4

Agente Manager

Este agente es el que se encuentra en constante comunicación entre el entorno virtual y los agentes que habitan este entorno, aparte de construir en VE, ya que en el simulador no solo existen los agentes o los cuerpo de estos agentes, sino que también pueden existir artefactos que no hacen parte de los agentes, si no que hacen parte del entorno, tales como paredes, obstáculos etc. Estos artefactos son creados por agente manager a petición del diseñador, con el fin de ser visualizados en el VE. Los agentes necesitan comunicarse con el agente manager para que este los pueda ubicar en el VE, para esto los agentes se comunican utilizando el lenguaje KQML, de esta forma los agentes envían mensajes al manager, estos mensajes están divididos en tres tipos, los cuales se describen a continuación. Configuración, el agente envía la configuración de su cuerpo, como largo, ancho, alto, peso, tipo de cuerpo, eje de articulación, posición en X,Y,Z.
2 3

http://jason.sourceforge.net/wp/ http://cartago.sourceforge.net/

11

Movimiento, este mensaje envía como se desplaza el agente en el entorno virtual, ya que el tipo de robot que se está modelando es un apodo, la forma de desplazarse es utilizando una función matemática; cada agente podrá tener una función de desplazamiento diferente. Contrato, debido a que un solo agente, no podrá hacer mayor cosa, es necesario la utilización de un modelo de negociación entre agente. Utilizando el modelo de CNP ( ) un agente que este interesado en aumentar su tamaño, enviara una petición a al agente manager, el cual se encargara de enviar los mensajes a los demás agentes, pidiendo que envíen sus propuestas, estas propuestas se evalúan y gana la que tenga el menor valor. Una vez teniendo el ganador, el manager notifica al agente que realizo la petición y le envía el nombre del ganador, desde este momento, el agente que realizo la propuesta y el que gano se ponen en contacto. El agente manager, también es el encargado de construir el mapa; para este caso el mapa es una matriz de 32 x 32, que al ser representada en el VE y partiendo de que el sistema de medida ODE es en (m, sg, Kg), el mapa quedara como una extensión de 32 x 32 metros. Otros parámetro a los cuales el agente manager atiene acceso es a la gravedad, la cual se podrá variar dependiendo de la simulación que se quiera hacer, el índice de rozamiento, fuerza y torque. Estos parámetros se podrán ser variados con el fin de observar el comportamiento del artefacto y los agentes en el VE.

4.5

Agentes

Los agentes son los que vivirán dentro del entorno virtual, estos interactuaran entre sí y con los objetos que se encuentren en el VE. Estos agentes al ser programados, tendrán algunos parámetros relacionados con sus características físicas, las cuales serán enviadas al agente manager para ser administras y ser enviadas al entorno virtual; dentro de estas características físicas encontramos las siguientes: • Largo (L): Largo del cuerpo del agente. • Ancho (W): Ancho del cuerpo del agente. • Alto (H): Alto del cuerpo del agente. • XR, XL: Posición X de los cuerpos izquierdo y derecho del agente. • YR, YL: Posición Y de los cuerpos izquierdo y derecho del agente. • ZR, ZL: Posición Z de los cuerpos izquierdos y derecho del agente. 12

• AX: Articulación en el eje X • AY: Articulación en el eje Y • AY: Articulación en el eje Z • Shape: Es la forma que tendrá el cuerpo; el agente tendrá tres formas básicas. – Sphera – Box – Capsula • Masa: Hace referencia a la masa que tendrá en cuerpo del agente. La gerarquia del simulador se muestra a continuacion en la figura 3.

Figure 4.3: Distribución jerárquica del simulador

4.6

Contract Net Protocol (CNP)

El protocolo de contrato[?, Randall and Smith]s un modelo extraído de la vida cotidiana, en la cual un agente el cual no puede realizar una determinada tarea, esta tarea es importante para él ya que por medio de esta puede alcanzar sus objetivos, el CNP permite a el agente contratar a otros agentes los cuales si pueden realizar la terea que él no es capaz de realizar y de esta forma poder lograr su objetivo. El modelo del FPA-CNP4 se muestra en la figura 4. Etapas para la negociación de contratos
4

http://www.fipa.org/

13

Figure 4.4: FPA-CNP

• Reconocimiento: Un agente reconoce que tiene un problema que quiere ayudar con. El agente tiene una meta, y, o bien se da cuenta que no puede alcanzar la meta de manera aislada (no tiene la capacidad para cumplir con el objetivo), o se da cuenta de que preferiría no alcanzar la meta en forma aislada (por lo general debido a la calidad de la solución, plazo, etc). • Anuncio: El agente de la tarea envía un anuncio de la tarea que incluye una especificación de la tarea por hacer. La especificación debe codificar una descripción de la tarea en sí, todas las limitaciones, y la información de meta-tarea. • Licitación: Los agentes que reciben el anuncio de decidir por sí mismos si deben hacer una oferta para la tarea. Los factores que se tienen en cuenta son que el agente debe decidir si es capaz de la tarea que espera, y que el agente debe determinar las restricciones de calidad y la información de precios (en su caso). • Adjudicación: Los agentes que envían el anuncio tarea deben elegir 14

entre las ofertas recibidas y decidir a quién adjudicar el contrato. El resultado de este proceso se comunicó a los agentes que hayan presentado una oferta. • Agilización: Esto puede implicar la generación de nuevas redes de contrato en la forma de subcontratación para completar la tarea. Se utilizó CNP con el fin de que los agentes pudiesen ofertar servicios de subasta holandesa, en la que el agente que realice la menor propuesta gana, esto le da el derecho de linkearse con el agente que solicito la subasta, esta subasta está controlada por el manager, cualquier agente puede solicita al manager que envié un mensaje broadcast a todos los agentes, con el fin de que realicen sus propuestas; la forma en la cual los agentes realizan la propuesta se muestra en el siguiente codigo. .random(R)&X = (10 ∗ R) + 100 R = Numero Aleatorio X = Valor Propuesto. En el momento en el que se obtiene un agente ganador, le envía un mensaje al agente que ha realizado la propuesta, diciendo que ha ganado y el agente que solicito la subasta le responde enviándole la posición en la cual se encuentra, de esta forma el agenten puede desplazarse hasta esta posición, con el fin de poder linkearse y aumentar su tamaño.

15

Chapter 5 Concluciones
Un entorno virtual es una herramienta poderosa a la hora de querer realizar simulaciones complejas. Los SMA son una herramienta poderosa a la hora de introducir la IA a entidades virtuales, ya que permiten la simulación de comportamientos y la coordinación entre entidades. Los entornos virtual junto con SMA, son una forma muy rápida de realizar simulaciones de robot complejos, a los que se les quiere introducir comportamientos sociales.

16

Bibliography
[1] Alessandro Ricci, Michele Piunti, Mirko Viroli. (2010): Environment programming in multi-agent systems: an artifact-based perspective. Auton Agent Multi-Agent Syst (2011) 23:158–192, DOI 10.1007/s10458010-9140-7. [2] Michael Wooldridge. (2002): An Introduction to Multiagent Systems. Department of Computer Science, University of Liverpool, UK, JOHN WILEY & SONS, LTD. [3] Rafael H. Bordini, Jomi Fred Hubner, Michael Wooldridge. (February 2007)): Programming Multi-Agent Systems in AgentSpeak using Jason. University of Liverpool, UK, JOHN WILEY & SONS, LTD. [4] Michele Piunti, Alessandro Ricci, Lars Braubach, Alexander Pokahr. (2008): Goal-Directed Interactions in Artifact-Based MAS: Jadex Agents playing in CARTAGO Environments. 2008 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology. [5] A. Barella, C. Carrascosa, O. Boissier, and A. Ricci. (2012): MAM5: Multi-Agent Model For Intelligent Virtual Environments. EUMAS 2012. Dublin, Ireland, 16-18 December 2012. [6] Juan González Gómez. (August 2010): Robots ápodos modulares. Dpto. Ingeniería de Sistemas y Automática Robotics Lab Universidad Carlos III de Madrid. [7] GRANT MCCLURE. (Abril 2012): Integration a Multi-Agent System with a Virtual World. Master of Science in Information Systems, Athabasca, Alberta. @articleDBLP:journals/ai/DavisS83, author = Randall Davis and Reid G. Smith, title = Negotiation as a Metaphor for Distributed Problem Solving, journal = Artif. Intell., volume = 20, number = 1, year = 1983, pages = 63-109, ee = http://dx.doi.org/10.1016/0004-3702(83)90015-2, bibsource = DBLP, http://dblp.uni-trier.de 17

List of Figures
2.1 2.2 2.3 2.4 2.5 2.6 4.1 4.2 4.3 4.4 Carnegie Mellon snake robots . . . . . . . . . . . . . . . Robots Modulares. (A) Robot Apodo (B) Robot Modula férico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Osciladores sinusoidales . . . . . . . . . . . . . . . . . . . Oscilación de un Modulo . . . . . . . . . . . . . . . . . . Simulación de un Oscilador sinusoidales en ODE . . . . . Modelo de Oscilación de Varios Módulos . . . . . . . . . Virtual Body . . . . . . . . . . . . . Ejemplo de un Snake . . . . . . . . . Distribución jerárquica del simulador FPA-CNP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Es. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 5 5 5 10 10 12 13

18