- Project group for Computer Engineering and Computer Science students
- Course number: L.079.070501
- Terms: Winter semester 25/26 and Summer semester 26
- Introductory presentation: coming soon
Introduction
Robots are used to automate tasks in a variety of different sectors, for example, in healthcare, in the automotive industry, and in transportation. The number of potential applications is increasing. At the same time, the tasks the robots need to solve are getting more complex. Therefore, modern robots are often equipped with multiple different sensors, for example, cameras and LIDARs, to get a more detailed perception of their environment. Additionally, robots must plan their next steps and execute them. These calculations require a lot of processing power. Up to now, most of these calculations are done on CPUs and GPUs. The downside of CPUs is that they are often not performant enough, while GPUs have the downside of a higher energy consumption. In comparison, FPGAs (Field Programmable Gate Arrays) allow for highly parallel data processing, which increases the performance, while consuming less power than CPUs and GPUs.
The de-facto standard to program robotics applications is the Robot Operating System 2 (ROS 2). It splits a robotics application into different components, so-called, nodes, which can communicate via primitives provided by ROS 2. ROS 2 is designed to run on CPUs. As the need for FPGA-based hardware-accelerated ROS 2 nodes increased, there are already multiple frameworks that integrate FPGAs into ROS 2. One of them is ReconROS, which is developed within this research group. It allows to move whole ROS nodes onto the FPGA in a transparent way. Current research focuses on creating a development flow for ReconROS that eases the development of hardware-accelerated ROS 2 applications in a group.
Goals of the project group
The overall goal of the project group is to test and extend the new development flow. Therefore, the students should apply the new development flow by creating a distributed robotics application and showing the advantages and limitations of the new development flow.
The envisioned robotics application consists of two robot arms and two mobile robots. The robot arms load and unload objects from the mobile robots. Then, the mobile robots transport these objects between the two robot arms while avoiding obstacles in their way. Therefore, students need to build and hardware-accelerate different aspects of this robotics applications, like perception, localization, navigation, obstacle detection, control, and handle the communication between the different robots.
In parallel, the students set up a simulated environment as well as a real environment with the robot arms and mobile robots to test and evaluate the robotics application. Furthermore, also installation and updates of robotics functions on the FPGA-boards should be handled by applying the new development flow.
The results of the project group are two folded. First, the project group evaluates the robotics application itself. Here, the functionality, latency, throughput, and energy consumption should be evaluated. Second, the new development flow should be evaluated by showing its advantages, limitations, and potential refinements within the flow and the tool support.
Milestones
- Familiarize with ROS 2, ReconROS, and the new development flow
- Setup a simulation, the robots, and the FPGA boards
- Create a robotics application and hardware-accelerate parts of it
- Apply and improve ReconROS’s new development flow
- Document your project
- Present and demonstrate your project
What you should bring
If you want to participate in this project group, you should be interested in robotics and robotics algorithms as well as FPGA-based hardware-acceleration. As the project group works with embedded devices, basic knowledge of C or C++ is required.
Additionally, knowledge of hardware description languages (HDLs) like VHDL or Verilog, High-Level Synthesis (HLS), Xilinx tools (Vivado, Vitis HLS), and FPGAs in general is a plus.
What you will learn
In the project group, you will conduct research about state-of-the-art robotics algorithms for perception, localization, navigation, and control. Additionally, you will learn how to design and program an application with ROS 2.
Furthermore, you will gain practical experience with FPGA-based acceleration of robotics function. You will leverage and extend a novel development flow for robotics systems that use hardware and software ROS nodes. Moreover, you will create a testbed and system evaluation with the provided robots.
Further Information
If you need further information, do not hesitate to contact Alexander Nowosad. You can find the slide deck of the project group presentation here (coming soon).