Anda di halaman 1dari 6

Simulacin de Vehculos Reactivos en Webots

Carlos Delgado-Mata, Hiroki Alejandro Sasamoto Cruz, Miguel Angel Carln, Ramiro Velzquez
Universidad Panamericana campus Bonaterra Aguascalientes, Ags Email cdelgado@up.edu.mx

Resumen En este artculo se muestra la creacin de cuatro vehculos de Braitenberg en un programa de simulacin llamado WEBOTS. Se explicar de someramente cmo construir un robot en este simulador y los cdigos utilizados en Java que determinan sus conductas. Se mostrarn las algunas trayectorias que los vehculos son capaces de trazar y podremos detectar algunas similitudes y evidentemente las diferencias que yacen en estos vehculos. Palabras Clave: Agresivo, Braitenberg, Miedo, Vehculos, Webots, I. Introduccin particularmente desarrollada en control e inteligencia artificial. Por ejemplo, en el cambio de direccin y velocidad autnomo de un misil, se utiliza como parmetro la posicin geo espacial en cada instante en relacin al objetivo que debe alcanzar. Por otro lado, en el caso de un sistema o programa computacional puede tener sus propios estados internos; por ejemplo, la cantidad de ciclos cumplidos en sentencias tipo do... for, o la cantidad de memoria disponible para una operacin determinada. Por otro lado ha habido inters en desarrollar sistemas que simulen comportamiento psicolgicos ms complejos de lo que en realidad son. Un ejemplo relevante son los vehculos de Braitenberg, quin en su trabajo seminal [5] nombr a sus robots algunos de sus robots con miedo, amor y agresin. Otro comportamiento interesante que desarrollan algunos animales, desde bacterias y protozoarios, hasta mamferos como las ovejas es klinokinesis, donde la frecuencia de cambio de direccin se altera [6].

Es importante para que el buen desempeo de entes artificiales, estos contengan mecanismos de retroalimentacin que les permitan tener conocimiento de estados internos. Un rea para conocer los estados internos es a psicofsica, trmino acuado por Fechner [1], que se encarga del estudio del estmulo fsico y como es percibido [2]. Para conocer estos estados internos los humanos disponemos de mecanismos como propiocepcin [3] e interocepcin [4]: Propiocepcin que es el sentido que informa al organismo de la posicin de los msculos, adems ayuda aregular la direccin y rango de los movimientos por un lado y por tanto permite respuestas autonmicas Interocepcin que es el sentido que permite establecer el estado de rganos internos, por ejemplo un dolor de estmago. Estos sistemas son fundamentales tanto, para tomar decisiones, como para conservar su propia integridad y seguridad. Por otro lado, la retroalimentacin en sistemas artificiales est

El principal objetivo de este trabajo es la de observar los comportamientos de algunos de los vehculos de Braitenberg y el comportamiento de klinokinesis, para este fin se utiliz el el simulador de robots llamado Webots [7]. II. Desarrollo

sensor que se utiliza puede ser guardado y ser usado como plantilla. En esta evaluacin, el robot qued constituido como lo muestra la Fig. 2.

El diseo de un vehculo de Braitenberg es sencillo, en la Fig. 1 se muestra la configuracin de sensores y ruedas que se usarn ms adelante: 2 ruedas y 2 sensores. El robot fue dotado de dos ruedas y dos sensores de luz. Para poder darle la forma que queramos al robot, debemos irnos al rbol de objetos que se encuentra en la venta Scene tree. Al seleccionar el nodo children y oprimir el botn Add New, se agrega un nuevo rbol al cual se le deben agregar en primera instancia un slido. A su vez el nuevo slido tendr un rbol y en ste habr nuevamente un nodo con la leyenda children. Dentro de este nodo seleccionaremos aqul que dice Transform y es aqu donde se le incorporar un nodo Shape para formar las llantas.

Fig. 2. Vehculo construido.

Una vez construido el robot, podemos pasar a la programacin del mismo. Usando las libreras, clases y mtodos ya existentes y el lenguaje de Java resulta sencillo darle forma a la conducta deseada. Al llamar la clase DifferentialWheels podemos usar gran variedad de objetos entre los cuales se encuentran los sensores de luz con los cuales excitaremos las llantas del robot. Para utilizarlos se declaran como prvate LightSensor ls. En este proyecto slo se usarn dos sensores por lo que una vez declarados falta asignarles el valor. Esto se hace dentro del constructor del programa. Para usar los valores que capturan los sensores debemos crear los objetos necesarios: lsk=getLightSensor(ls); y despus habilitarlos como ls.enable(TIMESTEP) dentro del mismo constructor. Un problema que se puede encontrar al momento de construir un robot es el tamao. En este casi, la distancia entre sensores es muy pequea, la diferencia entre las lecturas tambin lo es. Por lo tanto una excitacin de los motores usando una relacin directa a la de los sensores, como Braitenberg lo propone, no es posible.

Fig. 1. Vehculo agresivo y vehculo con miedo.

Al mismo nivel del slido que forma la llanta, se agregan los sensores como nuevos nodos. Y de manera semejante, se le dan la forma, color y ubicacin que uno desee. Sobra decir que se necesitan dos llantas y dos sensores, pero cabe recalcar que cada slido o

Una vez obtenidas las lecturas, debemos volcarlas a una variable para poder manipularlas: double valor=ls.getValue();. Para poder distinguir de manera rpida y sencilla las lecturas, a cada sensor se le asigna un multiplicador dependiendo de la relacin entre ambos valores. Aqul que tenga una lectura mayor se multiplicar por .004 y aqul que tenga la menor lectura por .003. Estos valores fueron escogidos tal que la resultante se pudiera colocar como parmetro para la velocidad de los motores (vase Cod. 1). if(Edd<Eii){ Fiz=.8-Eii*.004; Fd=.8-Edd*.003;} if(Edd>Eii){ Fiz=.8-Eii*.003; Fd=.8-Edd*.004;} if(Edd==Eii){ Fiz=.8-Eii*.004; Fd=.8-Edd*.004;}
Cod. 1. Diferenciacin de lecturas.

Una vez creadas tanto la parte del robot como su programacin hay que unirlas. En el rbol de caractersticas del robot diferencial hay una raz que se llama controller, es ah donde se indica la ubicacin del programa hecho. Para el segundo experimento, se desarrollo un robot para simular el comportamiento de klinokinesis y adems se desarrollo un entorno para grficar las trayectorias en un plano cartesiano de los robots. Para esto, se agregaron un componente para simular los giros aleatorios del robot de la misma manera que en [8] y otro componente para saber la ubicacin de los robots.

III. Resultados Los resultados del primer experimento se describen a continuacin. En la Fig. 3 se muestra el robot con miedo que exitosamente evadi la fuente que excitaba sus sensores. Se puede apreciar que mientras ms cerca se encuentre de la fuente, menor ser su radio de giro. Esta reaccin se puede mejorar ajustando los valores por los cuales se multiplican los valores de los sensores.

Para poder asignar una velocidad a los motores se usa la instruccin setSpeed(Vi, Vd); siendo Vi y Vd los valores numricos que se le quieran otorgar. Para poder convertir el robot diferencial en un robot agresivo, el sensor derecho debe excitar a la llanta izquierda por lo que la instruccin quedara as: setSpeed(Vd,Vi); de forma similar para designarle una conducta miedosa cada sensor excitar la llanta de su propio lado quedando la instruccin: setSpeed(Vi,Vd);. En cuanto a los dos modelos restantes, la solucin ms prctica es la de restar al valor mximo que puedan alcanzar los motores el valor calculado a partir de la excitacin de los sensores. Para este caso en concreto, el valor usado como mximo fue de .8.

Fig. 3. Vehculo con miedo.

Por otra parte, en la Fig. 4 se puede apreciar el comportamiento agresivo que menciona Braitenberg, el atacar la fuente que provoca la excitacin, aquello que lo molesta. Este vehculo se detendr hasta haber traspasado la fuente pues

ya no tendr lectura en sus sensores dado que su fuente habr quedado a sus espaldas.

el vaco, el robot con miedo se quedar quieto mientras que el explorador ambular hasta encontrar algo ms que esquivar.

Fig. 4. Vehculo agresivo. Fig. 6. Vehculo explorador.

En la Fig. 5, el robot que ama se detiene a contemplar la fuente de excitacin que admira. Mientras ms se acerque ms lento ir, hasta llegar un punto en el que probablemente se detenga por completo. La palabra probablemente cabe dado que slo se detendr si el robot sigue una lnea recta donde ambos sensores obtengan la misma lectura.

Los resultados del segundo experimento (klinokinesis) se describen a continuacin: En el entonrno se colocaron 5 robots, tal como se muestra en la figura 7
Fig. 7. Vehculos klinokinesis en entorno.

Fig. 5. Vehculo que ama.

El ltimo ejemplo es el correspondiente al robot explorador (ver Fig. 6), el cual sera el anlogo al agresivo, en cuanto a conexiones se refiere, pero un tanto similar al robot con miedo en cuanto a comportamiento se refiere, pues a pesar de tener diferentes nombres ambas conductas se alejan de la fuente de excitacin ms cercana. La diferencia yace en que cuando se encuentran en

Para graficar las posiciones de los robots de desarrollo una aplicacin en java que recibe mensajes desde webots que son almacenados en una base de datos MySQL (ver figura 8), posteriormente se leen los datos almacenados

para generar una grfica con las trayectorias de los robots, como se muestra en la figura 9.

Fig. 8. Aplicacin para graficar trayectorias.

En la figura 10, donde se simula klinokinesis, cada uno de los robots tiene una trayectoria aleatoria. Sin estmulos que lo hagan tender hacia alguna direccin. No existe ninguna relacin entre cualquiera de las trayectorias que se muestra en las figura 10. Es mas, cada una de las simulaciones representadas con las tres imgenes se aprecia que las trayectorias seguidas por cada uno de los robots no se parece entre ellas por lo que argumentamos que esta simulacin sencilla puede representar el comportamiento de klinokinesis.

Fig. 9. Datos de trayectoria de robots, recuperados desde MySQL.

Fig. 10. Trayectoria generadas en dos simulaciones.

Una vez ledas las coordenadas que fueron almacenadas en la base de datos MySQL, la aplicacin de Java grafica las trayectorias que siguieron cada uno de los robots, como se muestra en la figura 10. Las trayectorias se re representan con trazos de diferente color. Cabe mencionar, que para saber la direccin de la trayectoria se grfico el punto de inicio con el trazo mas grueso y el punto final con el trazo mas delgado; esto es, el trazo se va adelgazando conforme el robot fue avanzando.

IV.

Discusin

Al utilizar este programa uno se puede percatar de la versatilidad que tiene al usarse. Uno puede cambiar el entorno y observar cmo se comporta el robot bajo sus diferentes conductas de manera muy sencilla: puede aumentar o disminuir el nmero de fuentes de excitacin as como variar su ubicacin. Tambin se puede desplazar el

robot en el mundo creado y colocarlo como uno lo crea conveniente. Ahora, analizando nicamente las trayectorias seguidas por las diferentes conductas, uno puede apreciar que no basta con tan slo cambiar de motor el valor del sensor, sino que para cada conducta se tiene que calibrar de forma diferente. Por ejemplo el vehculo explorador, apenas detect la luz empez a cambiar su trayectoria. Para algunos esto no equivaldra a encontrar lo que se andaba buscando, quiz si se llegase a acercar ms a la fuente entonces se podra llamar un robot explorador. Aunque otro enfoque que se le otorga a esta conducta es aquella en la que se dice que a este robot le gusta permanecer ms tiempo en aquellos lugares que le son gratos sin tener la intencin de permanecer quieto. El vehculo que ama debera alcanzar un punto en el cual se detuviera a contemplar su fuente de excitacin, sin embargo debido a que se basa en un programa sumamente sencillo, la posibilidad de proporcionar valores negativos a los motores, y por ende un sentido de reversa, existe. Los vehculos agresivo y con miedo se comportan tal y como se describe en [1]. V. Conclusiones

La importancia de este tema es ms apreciada por personas que quieran profundizar en temas como inteligencia artificial orientada emocionalmente pues es con este tipo de estudios que pueden identificar los patrones a seguir para poder simular diferentes conductas. Tambin existe otra forma de aprovechar este conocimiento: intentar predecir el comportamiento y reacciones que podran tener los seres vivos hacia el cambio que estamos provocando en el planeta. De esta forma se podra mejorar la convivencia entre humanos y el medio ambiente sin llegar al exterminio de las especies. VI. Referencias 1. G. T. Fechner, Elemente Psychophysik (Elements Psychophysics), Germany, 1860. der of

2. G. Gescheider, Psychophysics: the fundamentals (3rd ed.). Lawrence Erlbaum Associates, 1997 3. C.S. Sherrington, On the proprioceptive system, especially in its reflex aspect. Brain 29, p 467-85, 1907. 4. A.D. Craig, How do you feel ? Interoception: the sense of the physiological condition of the body. Nat Rev Neurosci 2002, 3: 655-666. 5. V. Braitenberg, Vehicles: Experiments in Synthetic Psycology. The MIT Press. Massachusetts. 1986. 6. K. Lorenz, The foundations of Ethology, Springer-Verlag, Heidelber, Germany, 1981. 7. Webots 6: Fast prototyping and simulation of mobile robots, http://www.cyberbotics.com/, consultado 10 de Julio 2011. 8. C. Delgado-Mata, R.S. Aylett, Fear and the Behaviour of Virtual Flocking Animals, In. Proceedings of ECAL 2007, LNAI 4648, Springer, Verlag, 2007.

Pienso que con estos vehculos ms que simular emociones, se simulan conductas y actos tales como atacar, escapar, contemplar y vagar. Sin importar los nombres con los cuales se les llamen a estos vehculos, el poder representarlos de manera virtual nos permite poder observar sus reacciones ante diferentes circunstancias sin la necesidad de crear fsicamente un entorno, facilitando as la construccin para aquellos que slo quieran estudiar las conductas de estos vehculos. Este artculo tan slo muestra un inicio. Se pueden generar programas mucho ms complejos que permitan incorporar una mayor cantidad de sensores as como otros algoritmos, por mencionar algunos, la evasin de obstculos o la incorporacin de lgica difusa para poder decidir entre varios tipos de fuentes de excitacin.