Encoding and analysis of variational ROS computation graphs

Abstract

Dissertação de mestrado integrado em Engenharia InformáticaIn robotic applications, it is common to develop several variants of the same system (also known as a software product line), for example, to support different configurations of a robot. ROS is the most popular framework for developing robotic applications, where each application is implemented as a distributed system of computation nodes that communicate through message passing. HAROS is a framework for static analysis of ROS-based code. It can extract an abstract model of a ROS system’s architecture (called the computation graph) and perform an analysis on that model. However, it can only analyse one configuration at a time. In this thesis, we present three different approaches for encoding various ROS computation graphs in a single variational data structure, which contains the information related to the whole system and not just a configura tion. Additionally, we also define a variational execution algorithm for each approach, along with a small query language, so that we can query and perform some analysis on said data structures. Lastly, we evaluate these algorithms and data structures so that we can reach some conclusions on which approaches work best, and in what conditions.Nas aplicações robóticas, é comum desenvolver diversas variantes do mesmo sistema (também conhecido como uma software product line) para, por exemplo, suportar diferentes configurações de um robot. O ROS é a framework mais popular no que toca ao desenvolvimento de aplicações robóticas, onde cada aplicação é implementada como um sistema distribuído de nós de computação que comunicam entre si através do envio de mensagens. O HAROS é uma framework de análise estática de código ROS. Consegue extrair um modelo abstrato de uma arquitetura de um sistema ROS (chamado grafo de computação) e executar nesse modelo uma análise. Nesta tese, apresentamos três diferentes abordagens para codificar vários grafos de computação ROS numa única estrutura de dados variacional, que contém a informação relativa a todo o sistema e não apenas a uma configuração. Adicionalmente, também definimos um algoritmo de execução variacional para cada abordagem, juntamente com uma pequena linguagem de query, de forma a que possamos analisar e pesquisar nessas estruturas de dados. Por fim, avaliámos estes algoritmos e estruturas de dados de modo a que possamos chegar a algumas conclusões sobre que abordagens funcionam melhor, e em que situações

    Similar works