Laboratorio de Agentes Inteligentes | Universidad Carlos III de Madrid |
El software SimDAI (Simulador Distribuido de Agentes Autónomos Inteligentes), permite la simulación de robots autónomos provistos de diversos sensores y distintas arquitecturas de control, con capacidades para comunicarse entre sí.
El simulador esta dividido en varios procesos interconectados, consiguiendo de esta forma un entorno distribuido en donde cada proceso puede estar ejecutándose en una computadora diferente.
El proceso encargado de representar el mapa del mundo y de realizar la simulación de los distintos robots sobre el sistema se denomina Mundo. Este sistema es variable, de forma que en cada simulación se pueden configurar múltiples factores. A continuación se presenta el interfaz del proceso Mundo.
El proceso Robot representa en robot a simular. Mantiene diversas características variables que especifican el nombre del robot, su forma y aspecto, su posición y sentido, los distintos sensores que posee con las características propias de cada uno, su arquitectura de control, así como otras características que ayudan en la simulación y permiten la implementación de múltiples tipos de robots. La siguiente figura muestra el aspecto del robot a simular.
Seguidamente se presentan varios interfaces del proceso Robot sobre distintas arquitecturas: Linux, Sun y HP.
El último proceso denominado Monitor se encarga de presentar al usuario de forma gráfica el desarrollo de la simulación. La siguiente figura muestra el aspecto del interfaz del proceso Monitor.
En cada simulación solo existe un proceso Mundo. Los procesos Robot y Monitor, se conectan con el proceso Mundo en cualquier momento y entonces entran a formar parte de la simulación. De acuerdo con el esquema de la siguiente figura. Una vez que están conectados se comunican mediante paso de mensajes.
Para conectar los procesos Robot y Monitor al proceso Mundo, lo primero es ejecutar el proceso Mundo. El proceso Mundo esta constantemente escuchando en dos puertos configurables, uno para peticiones de nuevos procesos Robot y otro para peticiones de nuevos procesos Monitor. Los interfaces de los procesos Robot y Monitor tienen una opcion denominada "conexion", en la que se debe especificar el nombre de la maquina y el numero de puerto al que se debe conectar (que corresponde ala maquina en la que esta ejecutandose el proceso Mundo y el puerto determinado para cada tipo de proceso).
El mundo considerado en la simulación tiene dos dimensiones. Queda definido en forma de plano rectangular mediante sus dimensiones máximas y los objetos que existen dentro de él.
Los robots tienen forma circular de diámetro variable. Poseen un algoritmo de control incluido en su proceso, y un conjunto de sensores de tres tipos:
Los robots se pueden enviar mensajes entre si a través del proceso Mundo para cooperar entre si.
Para ejecutar el simulador lo primero es configurar mediante ficheros el mundo y los robots a simular. En el directorio ‘bin’ del simulador existen ejemplos de estos ficheros.
El fichero del mundo contiene las dimensiones máximas del mundo y la descripción de los objetos que existen en él. Las dimensiones se definen con la palabra "mapa" seguida de las dimensiones deseadas.
La esquina superior izquierda del mapa corresponde a la coordenada (0,0) y la esquina inferior derecha a la coordenada (maxx-1,maxy-1). El origen de grados se corresponde con las tres de un reloj y los grados crecen en orden inverso al movimiento de las agujas del reloj. Tal como se muestra en la siguiente figura.
Los objetos pueden tener forma de circulo, segmento o polígono cerrado de cualquier numero de lados.
Para representar un segmento se indica la palabra "recta", seguida del color deseado para el segmento, y las coordenadas x e y de sus extremos, por ejemplo un segmento de color 101 con origen en (50,50) y fin en (200,200) seria:
Para definir un circulo se necesita ademas del color, el punto central y el radio:
Para definir un polígono se necesita el color, un punto central y un ángulo de inclinación, el numero de vértices del polígono y la distancia y angulo de cada vertice con respecto al centro del poligono:
Para representar un robot como el de la siguiente figura, se indica su nombre, su posición mediante un punto central y un angulo de orientación, su aspecto mediante el radio del robot, distancia entre ruedas y tres colores para el robot, su rastro y su nombre y orientación.
A continuación se incluye la descripción de los sensores del robot. Para indicar la posición de un sensor se utiliza la distancia y ángulo con respecto al centro del robot. Un sensor Laser se define mediante un ángulo y un rango de exploración. Un sensor Sonar necesita además el ángulo del sector a explorar, un intervalo que indica cada cuantos grados se realiza una exploración lineal, y un tipo que indica si se devuelve el valor mínimo, medio o máximo de las exploraciones lineales.
Cada proceso se ejecuta de forma independiente, y posteriormente los procesos Robot y Monitor se conectan con el proceso Mundo para entrar en la simulación.
Ejecutando cada proceso con la opción "-h" muestra una serie de opciones que se pueden invocar desde la linea de comandos.
En cada proceso existen una serie de opciones accesibles mediante menús con los que se puede interactuar con la simulación. Se puede parar a cada proceso, realizar copias de los datos de un instante de la simulación, modificar opciones de dibujo, conectar los procesos entre si, enviar mensajes entre los robots, etc.
Si lo deseas te puedes llevar una copia del simulador
SimDAI.
Para mas informacion contactar con el Laboratorio de Agentes Inteligentes de la universidad Carlos III de Madrid.