Using Functional Reactive Programming in Yampa to Redesign the Control Software for the Robotic Artwork “Islanders”

Schmidli, Eliane Irène (2023) Using Functional Reactive Programming in Yampa to Redesign the Control Software for the Robotic Artwork “Islanders”. Masters thesis, OST Ostschweizer Fachhochschule.

[thumbnail of 3_ElianeSchmidli_Robotic_Artwork_v2.pdf] Text
3_ElianeSchmidli_Robotic_Artwork_v2.pdf - Supplemental Material

Download (730kB)

Abstract

The Islanders artwork by Pors & Rao is a robot application reacting to the sounds in the room and controlling actuators. The control software is written in a low-level imperative style, intertwining the program sequence and commands for the actuators. Furthermore, the program code describes the behavior of the program depending on the current state of the actuators. It is difficult to comprehend where the state transitions are initiated. This way of programming complicates the comprehension of the code making modifications in the program sequence arduous. Functional Reactive Programming (FRP) is a composable, modular way to program reactive applications. With FRP, the code was redesigned, making it more customizable, especially for people with little programming experience. The redesign uses Yampa, an FRP implementation in Haskell using Arrows as the basic structuring framework. The resulting design is very promising. The state transitions clearly show which event triggers which reaction, making the code much more understandable. The new design separates the control of the hardware from the implementation of the program flow. This makes it possible to use the same code with different peripheral devices.

Item Type: Thesis (Masters)
Subjects: Area of Application > Development Tools
Technologies > Programming Languages > Haskell
Metatags > IFS (Institute for Software)
Divisions: Master of Advanced Studies in Software Engineering
Depositing User: Stud. I
Contributors:
Contribution
Name
Email
Thesis advisor
Mehta, Farhad
UNSPECIFIED
Date Deposited: 16 Oct 2023 07:32
Last Modified: 16 Oct 2023 07:32
URI: https://eprints.ost.ch/id/eprint/1128

Actions (login required)

View Item
View Item