380 likes | 562 Views
Desarrollo de un Sistema Multi -Agente para redes Vehiculares. Realizado por Inmaculada Ayala Viñas Dirigido por Mercedes Amor Pinilla y Lidia Fuentes Fernández. Desarrollo de un Sistema Multi -Agente para redes Vehiculares. Índice Objetivos Contexto y tecnologías Diseño
E N D
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Realizado por Inmaculada Ayala Viñas Dirigido por Mercedes Amor Pinilla y Lidia Fuentes Fernández
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Índice • Objetivos • Contexto y tecnologías • Diseño • Implementación • Conclusiones y trabajo futuro
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Objetivos • Diseñar e implementar un SMA para redes VANETS. • Proporcionar una entorno que sirva para simular y probar sistemas para VANETS.
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Índice • Objetivos • Contexto y tecnologías • Diseño • Implementación • Conclusiones y trabajo futuro
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Contexto y tecnologías • VANETS • Sistemas Multi-Agentes • JADE y JADE-LEAP • Otras tecnologías • XML • APIS de Google Maps • OpenStreetMaps • CloudMade • RMI • JDOM • JDIC • AJAX
VANETS • Tipo especial de red que no cuenta con una infraestructura previa y en la que sus nodos son vehículos en movimiento. • Contempla varios tipos de comunicación dependiendo de los dispositivos que tomen parte en ella. • Vehículo a vehículo • Vehículo a infraestructura • Comunicación basada en portal • Requieren una tecnología de red inalámbrica que ofrezca una cobertura adecuada. • Necesitan protocolos de enrutamiento especiales. • Tienen aplicaciones en seguridad, ocio, eficiencia de la conducción y protección del medio ambiente.
Sistemas Multi-Agente (SMA) • La base de los SMA son los agentes, un artefacto software que se caracteriza por tener un comportamiento autónomo, social, reactivo y proactivo. Existen 4 tipos: • Basados en lógica • Reactivos • Beliefs-Desires-Intention (BDI) • Híbridos o por capas • Los SMA están compuestos por distintos agentes, configurando distintos modelos de sociedades. • Necesitan un lenguaje definido para comunicarse. • Necesitan de un modelo de coordinación. • Centralizada • Protocolos de interacción • Planificación • Negociación
Sistemas Multi-Agente (SMA) • Herramientas de desarrollo • JADE • Flux • Herramientas para la integración con otras tecnologías. • Servicios web • Aplicaciones en distintas áreas. • Internet • Transporte • Aplicaciones industriales • Telecomunicaciones • Robótica • Medicina
JADE y JADE-LEAP • Marco de trabajo para desarrollar plataformas de agentes en consonancia con el estándar FIPA. • FIPA define una arquitectura abstracta y una serie de elementos que deben aparecer en los sistemas en consonancia con ella. • El objetivo de esta asociación es incentivar el desarrollo con agentes y la interoperabilidad. • Cuenta con una gran comunidad de desarrolladores que hacen aportaciones al proyecto. • Android, integración con Servicios Web, Beangenerator, … • JADE-LEAP es una expansión (add-on) de JADE que permite implementar agentes para dispositivos móviles o con recursos limitados.
JADE y JADE-LEAP • JADE-LEAP se distribuye para 3 tipos de dispositivos. • J2SE • pJava • MIDP • JADE y JADE-LEAP ofrecen una API muy similar, centrándose sus diferencias en la arquitectura interna, sobre todo en el componente IMTP. • Un agente JADE ejecutará obligatoriamente unos métodos al iniciar y al terminar su ejecución, llamados setup() y takeDown(). • Las actividades de los agentes se modelan extendiendo de la clase Behaviour. • La actividad del agente se incluye en el método action() y la condición de terminación en el método done(). • Existen varios sub-clases de Behaviour que aportan características especiales. • CyclicBehaviour • OneShotBehaviour • TickerBehaviour • WakerBehaviour
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Índice • Objetivos • Contexto y tecnologías • Diseño • Implementación • Conclusiones y trabajo futuro
Diseño • Agentes del SMA • VANETAgent • Gestión del nodo vehículo • ServiceAgent • Manejo de peticiones de VANETAgent. • Transmisión de publicidad • SignalAgent • Envío de información de elementos de señalización. • Su diseño es muy similar al de ServiceAgent • Elementos simulados • Entorno • Datos del entorno y posición de los agentes • Vehículo • Generación de eventos del vehículo
Diseño Agentes del SMA y relaciones entre ellos Interfaces para monitorizar y controlar el vehículo Ofrece información del entorno a los componentes del sistema y guarda la localización de los agentes
VANETAgent • Los eventos son procesados por HandleEventBehaviour. • Su funcionalidad está dividida en 3 partes. • Comunicación con otros agentes • OfferListenerBehaviour • SignalListenerBehaviour • ManageRestaurantRequest • HandleGasRequest • Interacción con el usuario • Gestión de la conducción del vehículo • SignalBehaviour • InitRouteBehaviour y CorrectRouteBehaviour • SecureDriving
VANETAgent Obtención de la información de las señales de tráfico Permite la gestión de una reserva a un restaurante por parte del VANETAgent Procesado de eventos • Inspecciona la siguiente posición a la que transitará el vehículo y modifica la trayectoria del coche para esquivar el obstáculo o lo para en caso de no haber salida. Controlan la validez temporal de la información recibida
ServiceAgent El diseño y la relación con sus sub-clases es muy similar a la de SignalAgent, por razones de espacio nos centramos en él. Guardan información específica del servicio que representan e implementan comportamientos adicionales Engloba los comportamientos comunes de los servicios de la red vial Controlan el spam y envían el mensaje Explora el entorno para encontrar VANETAgents
Comunicación entre agentesService_Contract_Net La comunicación es entre el VANETAgent y el RestaurantAgent Su ejecución empieza con una solicitud del conductor Su ejecución termina cuando se realiza la reserva o cuando se determina que no hay restaurantes disponibles
Vehículo Transmisión de eventos al VANETAgent utilizando Publicar/Suscribir Generación de eventos del vehículo Comunicación modelada utilizando observador y observado
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Índice • Objetivos • Contexto y tecnologías • Diseño • Implementación • Conclusiones y trabajo futuro
Implementación • Agentes del SMA • Implementación • VANETAgent • ServiceAgent • SignalAgent • Comunicaciones • Service_Contract_Net • Service_Query • Offer_Service • Signal_Service • Elementos simulados • Entorno • Vehículo • Herramienta de simulación • Lanzamiento y visualización de los agentes sobre un mapa de GoogleMaps. • La comunicación entre los distintos elementos del sistema se implementa utilizando Java RMI.
Agentes del SMA • Implementación • La implementación de ServiceAgent y SignalAgent es muy similar, ambas exploran una sección del entorno buscando VANETAgent. • Las sub-clases de ServiceAgent, RestaurantAgent y GasStationAgent, tienen funcionalidad adicional para responder peticiones de VANETAgent. • El agente VANETAgent, que reside en el nodo vehículo es el que soporta más funcionalidades, por razones de espacio esta exposición se centra en él.
VANETAgent • Interfaz de usuario • Desarrollada con NetBeans Matisse • Comunicación con el VANETAgent implementada con GuiAgent. • Métodos postGuiEvent y onGuiEvent • Objetos GuiEvent • Utilización del componente WebBrowser de JDIC y el API de Google Static Maps para mostrar la sección de mapa dónde esta el vehículo.
VANETAgent • Comunicación con el vehículo implementada exportando de manera explícita el agente, utilizando un método alternativo que no extiende de UnicastRemoteObject. • Información del entorno • Velocidades máximas y mínimas de la vía • Condiciones meteorológicas actuales • Validez temporal implementada con WakerBehaviour. • Eventos asociados a coordenadas • Lista de eventos con validez asociada al tiempo y al recorrido del vehículo.
Comunicaciones • Las comunicaciones del SMA van todas dirigidas hacia el agente VANET. • Se han definido ontologías para hacer la comunicación más eficiente. • SignalOntology • ServiceOntology • GasStationOntology • RestaurantOntology • Offer_Service y Signal_Service transmiten información apoyados por las ontologías. • Service_Query y Service_Contract_Net utilizan los protocolos FIPA_Query y FIPA_Contract_Net, definidos por FIPA, además para su implementación se han utilizado clases de JADE específicas para implementar estos protocolos.
Entorno • Ofrece un medio compartido donde los agentes y los elementos simulados toman datos del entorno. • Su exclusión mutua se asegura utilizando los cerrojos de escritura-lectura de ReentrantReadWriteLock. • Toma sus datos iníciales de los mapas de OpenStreetMaps, para extraer la información utiliza JDOM.
Vehículo • La clase Driving que provoca el lanzamiento de los distintos eventos que serán transmitidos a SensorManger y al VANETAgent. • El patrón Observador-Observado con el que se comunican sus componentes se ha implementado utilizando la clase Observable y la interfaz Observer de Java. • La ruta que sigue el vehículo durante su travesía es transmitida por la clase GPS, que toma los datos de la interfaz remota RouteMakerInterface. • RouteMakerInterface tiene tres implementaciones, dos de testeo y una que trabaja con datos reales implementada con el API de CloudMade.
Herramienta de simulación • Se ha construido una herramienta para facilitar el lanzamiento de los agentes desarrollados para el SMA y los elementos simulados. • La parte visual de la simulación se implementa utilizando el API de Google Maps. • Para obtener la información del entorno se obtiene su referencia utilizando Java RMI. • Se ha utilizado un Servlet para recuperar la recuperar la referencia. • Se ha desarrollado un cliente de RMI en Apache Tomcat 6. • Se utiliza una interfaz específica que aporta información de los agentes estáticos y de los límites del mapa.
Herramienta de simulación • El API de Google Maps utiliza JavaScript y carga dinámica de imágenes. • Para actualizar la posición de los marcadores se utiliza AJAX y un aplicación que solicita información del entorno de forma periódica.
Herramienta de simulación • Lanzamiento de agentes desde la aplicación Pincha aquí
Herramienta de simulación • Control de agentes desde las interfaces individuales y escucha de señales Pincha aquí
Herramienta de simulación • Mensaje publicitario Pincha aquí
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Índice • Objetivos • Contexto y tecnologías • Diseño • Implementación • Conclusiones y trabajo futuro
Conclusiones • La principal aportación de este proyecto de fin de carrera ha sido el desarrollo de una aplicación para VANETs utilizando agentes software en JADE-LEAP. • El diseño de los componentes simulados buscando similitudes con componentes reales ha facilitado el desarrollo del sistema. • El sistema captura numerosas situaciones del mundo real. • Esquivo de obstáculos o parada en caso de emergencia. • Corrección de ruta en movimiento en función de un nuevo objetivo. • Los agentes modelan el comportamiento de la mayoría de las señales de tráfico. • El rendimiento ha sido uno de los factores más difíciles de ajustar, teniendo que controlar el desbordamiento de memoria, el consumo de CPU de la aplicación y la velocidad de la simulación.
Trabajo futuro • Mejorar el aspecto y funcionalidad de las interfaces de usuario de los distintos agentes. • Monitorización de la actividad de los agentes a través de órdenes de voz (Universidad de Murcia). • Añadir ideas de asistentes como Lidia y HeCaSe. • Observan comportamientos de usuario para determinar sus preferencias. • Aplican algoritmos complejos para elegir la opción que más se ajuste al perfil. • Despliegue de aplicaciones para dispositivos concretos. • Aplicar ideas de aplicaciones como Arena para tener más control sobre la simulación. • Velocidad de simulación • Ejecución paso a paso.
Desarrollo de un Sistema Multi-Agente para redes Vehiculares Gracias por su atención