Análisis de modularidad y ejecución distribuida de Aerostack2: ampliación de behaviour trees y uso de plantillas Jinja2

Este Trabajo Fin de Grado está dividido en dos temas básicos. Por un lado, se propone el concepto de los arquetipos. Por otro, se aborda la ejecución de los árboles de comportamiento. Los primeros surgen a raíz de la repetitividad que sufre el código fuente en ROS2. Esta se debe a que, en primer lugar, los elementos propios del middleware siguen patrones de uso frecuente y a que, en segundo lugar, está asociada al diseño de los programas ejecutables. Esto se traduce en que, a pesar de realizar tareas diferentes, dos aplicaciones pueden llegar a compartir un mismo diseño. Por ello, los arquetipos aparecen como la especificación de los diseños a partir de los elementos de ROS2. En concreto, se indican las razones que motivan su desarrollo, se proporciona una definición formal, se explica las unidades que los forman y se definen dos de ellos, a modo de ejemplo. Los segundos son un tipo de representación sencilla de comprender, pero muy útil en la descripción de la actuación de entidades, no solo en el ámbito de la robótica. En este caso, se ofrece una implementación tomando como base el mecanismo de las acciones en ROS2. Para ello, se muestra el diseño de la acción que se ha utilizado, se concreta un nodo de control de flujo secuencial, así como un nodo de ejecución. Además, se enseña la utilidad de los ficheros de configuración y lanzamiento. Por último, se detallan los resultados de este Trabajo Fin de Grado, se evalúa el análisis de impacto y se extraen unas conclusiones sobre el estudio presentado.
ABSTRACT
This bachelor’s thesis explores two primary subjects. Firstly, it introduces the concept of archetypes, which emerge as a response to the repetitive patterns found in the source code of ROS2. These patterns are prevalent due to commonly used elements in middleware, and they align with the design of executable programmes. This leads to a scenario where two distinct applications might share identical designs despite their different functions. Archetypes are proposed as design blueprints tailored to ROS2 components. This section will outline the motivations behind their creation, provide a formal definition, describe the key components involved, and present two examples for illustration. Secondly, the thesis examines behaviour trees, which are straightforward yet powerful tools for outlining entity behaviours beyond just robotics. An implementation using ROS2’s action mechanism is provided, showcasing the design of the chosen action, detailing a sequential flow control node, and defining an execution node. The significance of configuration and launch files is also highlighted. In conclusion, the thesis presents its findings, assesses the broader implications of these findings, and provides a thoughtful analysis of the research presented.

​Este Trabajo Fin de Grado está dividido en dos temas básicos. Por un lado, se propone el concepto de los arquetipos. Por otro, se aborda la ejecución de los árboles de comportamiento. Los primeros surgen a raíz de la repetitividad que sufre el código fuente en ROS2. Esta se debe a que, en primer lugar, los elementos propios del middleware siguen patrones de uso frecuente y a que, en segundo lugar, está asociada al diseño de los programas ejecutables. Esto se traduce en que, a pesar de realizar tareas diferentes, dos aplicaciones pueden llegar a compartir un mismo diseño. Por ello, los arquetipos aparecen como la especificación de los diseños a partir de los elementos de ROS2. En concreto, se indican las razones que motivan su desarrollo, se proporciona una definición formal, se explica las unidades que los forman y se definen dos de ellos, a modo de ejemplo. Los segundos son un tipo de representación sencilla de comprender, pero muy útil en la descripción de la actuación de entidades, no solo en el ámbito de la robótica. En este caso, se ofrece una implementación tomando como base el mecanismo de las acciones en ROS2. Para ello, se muestra el diseño de la acción que se ha utilizado, se concreta un nodo de control de flujo secuencial, así como un nodo de ejecución. Además, se enseña la utilidad de los ficheros de configuración y lanzamiento. Por último, se detallan los resultados de este Trabajo Fin de Grado, se evalúa el análisis de impacto y se extraen unas conclusiones sobre el estudio presentado.
ABSTRACT
This bachelor’s thesis explores two primary subjects. Firstly, it introduces the concept of archetypes, which emerge as a response to the repetitive patterns found in the source code of ROS2. These patterns are prevalent due to commonly used elements in middleware, and they align with the design of executable programmes. This leads to a scenario where two distinct applications might share identical designs despite their different functions. Archetypes are proposed as design blueprints tailored to ROS2 components. This section will outline the motivations behind their creation, provide a formal definition, describe the key components involved, and present two examples for illustration. Secondly, the thesis examines behaviour trees, which are straightforward yet powerful tools for outlining entity behaviours beyond just robotics. An implementation using ROS2’s action mechanism is provided, showcasing the design of the chosen action, detailing a sequential flow control node, and defining an execution node. The significance of configuration and launch files is also highlighted. In conclusion, the thesis presents its findings, assesses the broader implications of these findings, and provides a thoughtful analysis of the research presented. Read More