In the quadcopter lab, we try to bridge the gap between domain specific languages, modelling complex systems and robotics. In our flight area, we can develop and test innovative tools, immersive visualizations and create demonstrations for various applications of model based software development.
Our research focus is manifold and focuses mainly on:
- Visualization, debugging of and interacting with robotic applications through virtual and augmented reality.
- Domain specific languages for easy specification and programming of quadcopter missions, primarily targeted at programming novices.
- Architecture and dynamic (architecture) reconfiguration of component based applications with a focus on safety and security.
- Dynamic dataflow analysis and bidirectional evaluation through provenance tracking in component based application
Interactive Script is a source location tracking enabled script editor for quadcopter missions. Mission scripts are written in a simple Lua-based DSL and a live visualization in rViz is displayed. Our goal is an interactive bidirectional editing of the source code through the editor and direct manipulation of the 3D preview. We implement source location tracking in every component: our custom lua interpreter automatically tracks value and decorates it with provenance information. This provenance information contains the location the source literals and operators applied to create the value and allows us to reverse the evaluation and suggest possible changes to the source code if the output value is changed (e.g. through the live preview). The extend this source location tracking to values sent to other ROS components through messages as well as the block based graphical programming frontend.
Software Engineering Projects
We regularly offer projects for groups or individual students as well as topics for bachelor and master theses. Our list of currently available projects/theses can be found here or you can pitch your own ideas.
Previous projects/theses include:
- A trajectory planning and collision avoidance component for multiple drones
- A quadcopter simulation for quadcopters, based on gazebo, hector and bebopS
- Augmented reality visualization of ROS visualizations using a tablet as a virtual window
- Improving MiniLua, our value tracking Lua interpreter
- A graphical editor for the ROS node graph at runtime
- Implementing the quadcopter lab in VR and connecting it to a gazebo simulation
Girls' Day is a yearly event to spark interest and provide insight into fields and jobs where women are still underrepresented. In our 3h workshop, we provide a tour of the lab and put our programming tools and domain specific languages to the test by offering a crash course in quadcopter programming for novices. The final task is programming a "selfie drone" that automatically determines the optimal position to face the user, flies there and takes a photo.
A Systematic Review on Security and Safety of Self-adaptive Systems
Journal of Systems and Software
Towards model co-evolution across self-adaptation steps for combined safety and security analysis
SEAMS '22: Proceedings of the 17th Symposium on Software Engineering for Adaptive and Self-Managing Systems
Impact of a bidirectional 3D code pre-view on task performance and learning outcome
Conference of Experimental Psychologists (TeaP 2021)
Inferred Interactive Controls Through Provenance Tracking of ROS Message Data
2021 IEEE/ACM 3rd International Workshop on Robotics Software Engineering (RoSE)
Supportive Elements for Coherence Formation Increase Code Comprehension
European Association for Research on Learning and Instruction (EARLI)
A Hybrid Editor for Fast Robot Mission Prototyping
Proc. of the 1st International Workshop on Explainable Software
Code Manipulation through Interactive Markers in a Live Preview
Debugging Quadrocopter Trajectories in Mixed Reality
AVR 2019: Augmented Reality, Virtual Reality, and Computer Graphics
Checking Consistency of Robot Software Architectures in ROS
2018 IEEE/ACM 1st International Workshop on Robotics Software Engineering (RoSE)