BLDL master student 2023: Lars Oddne Ramstad Juvik

Simulation of drone software

This is a master project looking into how to use Multiway Dataflow Constraint Systems (MDCS) for programming a drone. The task is to control the unmanned aerial vehicle (UAV) so that it safely can fly close to large structures, e.g., wind turbines.

The browser based drone simulation visualises the results so far.

The project is part of BLDL's focus on energy informatics. Take a look at the article about this project (in Norwegian) for some motivation and the larger context.

Master thesis

Lars Oddne Ramstad Juvik: Exploring Multiway Dataflow Constraint Systems for programming Robotic Autonomous Systems. Joint master degree in Software Engineering, Western Norway University of Applied Sciences and Department of Informatics, University of Bergen, June 2023.

Abstract

Robotic Autonomous Systems (RAS) are robots able to perform tasks without human intervention. Today, we use them everywhere: from industrial usage as drones fertilizing crops or private usage as robot vacuums. Their capabilities are expanding rapidly, and humans trust them more and more. As they keep extending with features and new hardware, we must ensure that we use the best methods to program them. This is important to ensure the correctness of the software and to make developers able to reason about their code and program correct and safe programs. Safety is crucial in all systems, and Robotic Autonomous Systems is no exception, especially because humans are often close to robots, and care must be taken to avoid accidents.

A programming model that is not explored enough in such a context is Multiway Dataflow Constraint Systems (MDCS). In this programming model, you specify constraints between variables through methods. The constraint system will then satisfy the constraints by executing the methods in a particular order. Traditionally MDCS, whose semantics were specified in an article from 2021, has been used for programming Graphical User Interfaces (GUIs), where it can handle complex relationships between GUI elements[14].

In a drone, it is common to have many inputs and outputs: GPS, gyroscope, distance lasers, propeller motor, and actuator, to name a few. As the different combinations of inputs and outputs grow, along with new features, we can expect complex relations between inputs and outputs. Following this, we can draw similarities to the complexity of relations between GUI-elements. Knowing there are similarities to be found, exploring programming Robotic Autonomous Systems using MDCS and researching the applicability could be worthwhile.

This thesis will explore how MDCS can be applied to physical systems by creating a virtual simulator and adding a drone with a custom autopilot created with MDCS. Using an implementation of MDCS called HotDrink, the system created in this thesis research how MDCS can be applied to a robotic system. The simulator will utilize a physics and rendering engine so that we can observe how the MDCS-powered system handles different environments. Adding more features to a robot expands its actions and gives us new edge cases and potential problems. As the relationship between these different parts can resemble relationships between elements in a graphical user interface, it is worth exploring if using MDCS for such an autopilot can be beneficial. This thesis will focus on the developer side of the process of creating such a system, and the research questions focus on the developer’s advantages and disadvantages of using such an approach.


Updated 2023-10-31 by Magne Haveraaen