Forschungsthemen
[MA] Generating Causal Connections for Model-driven ROS-based Applications
Developing robotic applications is time-intensive and costly. This is due to the high costs of physical robots and vast amounts of different scenarios the application has to be tested in. Thus, it is common practice to use simulators in the context of robotic applications. The current standard for developing robotic applications is the Robot Operating System (ROS)\footnote{\url{https://www.ros.org}}. For simulations often either Gazebo\footnote{\url{https://gazebosim.org}} or Webots\footnote{\url{https://cyberbotics.com}} are used.
Many robotic applications have a dashboard, which on the one hand allows to show the current state of the overall system and on the other hand allows to control it by sending specific commands.
Models@run.time~\cite{Bencomo2019} is a research area which focuses on using model-driven software engineering techniques at runtime. The main ingredients are a runtime model and its causal connection to the managed system. The runtime model represents an abstract view onto the running system, but also allows to control the running system due to its causal connection. Every change in the runtime model is propagated to the managed system and every change in the managed system is propagated to the runtime model. Consequently, the runtime model will be temporarily out of sync with the managed system.
In previous work, an approach has been developed which allows to metamodel robotic applications and to generate the runtime model atop a ROS application and a dashboard. The causal connection between runtime model and ROS is not generated, but realized as a fixed code fragment.
In this thesis, a generator for this causal connection shall be realized. For this, an additional model capturing the required information to bridge the gap between runtime model and ROS application has to be developed alongside a model-to-text transformation for the synchronization code. The causal connection has to be structured along the well-known MAPE-K principle~\cite{kephart2003vision} and should allow for component-based development of each part.
Concrete tasks:
Betreuer: Sebastian Götz