Arquitectura JDE+ para el control de robots

From Robotica

Jump to: navigation, search

PFC de David Lobato Bravo.

El objetivo de este proyecto es implementar un middleware para la creación de aplicaciones robóticas basado en la arquitectura teórica [JDE]. Esta arquitectura ha sido desarrollada por el grupo de robótica de la URJC y plantea las aplicaciones robóticas como una colección jerárquica de esquemas concurrentes.

El desencadenante principal del proyecto es mejorar la implementación actual (de ahí su nombre JDE+) utilizando un diseño y unas herramientas más modernas, que permitan obtener un sistema escalable, dinámico y sencillo de usar. El diseño del sistema incorpora técnicas de ingeniería del software como la orientación a componentes, los patrones de diseño y la arquitectura software. La implementación del sistema es orientada a objetos, realizada en el lenguaje C++.

Las principales mejoras que ofrece el sistema son:

  • Múltiples instancias. El sistema permite la creación de múltiples instancias de un esquema y su ejecución concurrente.
  • API de esquemas unificado y más estricto. La abstracción interfaz es la parte visible de un esquema, define como comunicarnos con él (sintaxis) y describe cómo usarlo (semántica). La comunicación entre esquemas se hace más estricta, limitándola a padres e hijos (impidiéndola entre hermanos).
  • Sencillez en la creación de nuevos esquemas. La creación de nuevos esquemas únicamente requiere la implementación de las partes propias (iteración, arbitraje y precondiciones). El sistema implementa el resto de necesidades como la carga/descarga del esquema, la comunicación con otros esquemas con paso de mensajes, máquina de estados, ...
  • Carga dinámica de esquemas. La adición de nuevos esquemas al sistema no requiere la recompilación del mismo, sino que éstos se pueden cargar a modo de librerías dinámicas. Esto permite la carga de nuevos esquemas en tiempo de ejecución, e incluso múltiples implementaciones del mismo esquema (implementando el mismo interfaz).
  • Implementación eficiente
    • Instanciación de esquemas retardada. La instanciación de un esquema sólo se realiza cuando se activa por primera vez, de manera que el sistema sólo consumirá los recursos de aquellos esquemas que se hayan activado alguna vez.
    • Reutilización de instancias. Las instancias que pasan a un estado inactivo se pueden reutilizar en diferentes partes de la jerarquía, ahorrando los recursos computacionales de mantener múltiples instancias.

Jerarquía de esquemas con JDE+ Diseño de clases en JDE+

Personal tools