RELbot control: Implementing controller on FPGA or microcontroller, plus variants

MSc assignment
Background
 
The RELbot is an educational robot that is used as a platform for courses in the Robotics Master's programme at the University of Twente. These courses focus on different aspects of robotics, including real-time software development, SLAM, image processing, artificial intelligence, telepresence, and human-robot collaboration. The RELbot was designed to be modular in both software and hardware, allowing different courses to focus on different aspects of the robot.
 
The RELbots controller software can be split into three main categories based on the strictness of its real-time constraints. 
 
* Soft real-time logic is executed as ROS2 nodes in a normal Ubuntu Linux environment on three cores of a Raspberry Pi 4B. Most courses focus on logic that falls in this category, like image processing and artificial intelligence. 
 
* Firm real-time logic is executed in Xenomai on one core of the Raspberry Pi, in a firm real-time loop provided by the XRF2 framework. Logic that runs in this loop includes PID control and time-critical safety checks. One of the courses teaches students about real-time programming using this firm real-time loop.
 
* Hard real-time logic is executed on an FPGA, the Lattice ICE40 Hx8K, connected via an icoBoard. This includes motor control via PWM and counting the encoder pulses to track the motor position. None of the courses using the RELbot let students replace this logic.
 
 
Problem
 
The Ubuntu+Xenomai image is difficult to maintain and upgrade, since upgrading to a new version of Ubuntu requires patching the new kernel to include Xenomai.
So far, attempts to patch Ubuntu 24.04 with Xenomai for the RELbot have not been successful, and it is a reccurring problem for every new Ubuntu version. It is also a factor when considering upgrading to a new version of the Raspberry Pi. Because upgrading is difficult and takes a lot of time, the software running on the Raspberry Pi gets outdated, forcing students to work with older versions of the packages and software they need during courses. 
 
 
Objectives
 
1. To determine the most suitable alternative architecture to run the firm real-time control loop without Xenomai.
2. To design, develop and integrate a framework that implements this architecture, and allows the user to supply a custom firm real-time control loop.
3. To test and verify the implemented framework, and compare its performance to that of the current framework.
4. To document the developed framework, providing a user manual targeted at all users of the framework, including students, educators and maintainers of the RELbot.