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í. Puedes descargar el software y las instrucciones de instalación de SimDAI.tar.gz.
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 opción denominada "conexión", 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 ejecutándose 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 círculo, 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) sería:
recta 101 50 50 200 200
Para definir un círculo se necesita además del color, el punto central y el radio:
circulo 101 300 300 50
Para definir un polígono se necesita el color, un punto central y un ángulo de inclinación, el numero de vértices del poligono y la distancia y ángulo de cada vórtice con respecto al centro del polígono:
polígono 101 250 60 45 3 20 0 20 120 20 240
Para representar un robot como el de la siguiente figura, se indica su nombre, su posición mediante un punto central y un ángulo 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.
nombre robot1 posicion 150 150 0 aspecto 30 60 111 5 63 sensorGPS sensorlaser 30 45 45 50 sensorsonar 30 0 0 50 60 10 1 sensorlaser 30 315 315 50
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 línea 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.
Para mas informacion contactar con: