This autumn, I offer two topic areas for master projects:
IoT systems today are broken by design. Most IoT systems are dependent on Cloud services and regular software update. This implies that unavailability or shutdown of a service or updates make the related IoT hardware device unusable, resulting in large amounts of electronics waste. We try to devise new methods to prevent this forced obsolescense by enabling IoT devices to move services freely and run independent from the Cloud. In addition, this also gives the IoT user more freedom where to store personal data, e.g. health data from fitness trackers, instead of being at the mercy of the device manufacturer.
This is a joint project with Rudolf Mester. In this project, we construct a mobile robot using state of the art image processing and object recognition technologies. My project topics relate to questions of implementing system software for a distributed heterogeneous embedded robot system and related approaches to program the robot system on a graphical level (using StateCharts).
Project presentation slides (PDF)
Project presentation video
Systems in the Cloud are heterogeneous, so binary programs are difficult to move between, e.g. a Cloud service and a local home server or on-device execution. We intend to create an infrastructure for movable services based on a language-level VM, e.g. Dis/Limbo or LuaJIT. As system software basis, we intend to use the Inferno OS from Bell labs, which is highly portable, provides easy network transparency, and is able to run on systems with constrained hardware resources. This project will build a basic platform, e.g. based on typical embedded microcontrollers such as arm Cortex-M4/M7, which can even be found in an IKEA trådfri light bulb.
This project has several parts, e.g. related to Cloud servics, implementation on the OS/VM on an IoT device, defining low-overhead network protocols etc. The sub-projects are suitable for a single student or groups of two students. Details will be discussed individually, please get in touch if you are interested.
Modern robots consist of many heterogeneous and distributed processors, communicating over many different bus systems and dedicated communication channels. We intend to create a simple common protocol to enable interaction between different components using the 9p protocol invented by Bell Labs' Plan 9 operating system. There are several open source implementations of 9p that are also suitable for embedded use. For dependability and energy-awareness, we also consider to implement persistence for 9p, which allows for power-management approaches on some nodes of a distributed system.
Robot programming in traditional languages such a C/C++ is difficult and error-prone, especially for domain experts who are not computer scientists. We intend to use StateCharts to enable programming the distributed robot system, e.g. using the Yakindu tools. Ideally, StateCharts communication between parallel processes modelled using StateCharts should be mapped to 9p-based messaging (see the topic above).