Au­to­nom­ROS: Au­to­no­mous Car Swarm with Hard­ware-ac­ce­le­ra­ted ROS Pro­gram­ming

  • Project group for Computer Engineering and Computer Science students
  • Course number: L.079.07007
  • Terms: Summer semester 22 and Winter semester 22/23

De­s­crip­ti­on

Commercial autonomous cars comprise more and more autonomous features, e.g., for line detection or for keeping distance to vehicles in the front. For these autonomous features, the cars have to perceive their environment with suitable sensors and then use the gathered information to make decisions for future movements. An example architecture for an autonomous car with so-called level-4 capabilities is shown in the figure and is taken from here. On one hand, the mentioned tasks require lots of processing power, because there are different computationally expensive tasks involved, e.g., vision-based machine learning. On the other hand, modern heterogenous embedded platforms that comprise multi-core CPUs and FPGAs can provide much processing power due to parallel execution and hardware acceleration. However, the integration of hardware accelerators into larger software architectures poses a challenge and thus is still an open topic of research.

Many modern robotics applications are programmed using the robotic operating system (ROS). ROS is a middleware on top of Linux that decomposes a larger application into a set of  so-called ROS nodes, which communicate via publish/subscribe communication. 

ReconROS is a framework for the integration of reconfigurable hardware into robotics applications and is developed by our research group. ReconROS is based on ROS 2 and allows for shifting complete ROS 2 nodes into the reconfigurable hardware domain, which promises faster and more energy-efficient execution.

Goals of the pro­ject group

The overall goal of this project is the development of a swarm of autonomous model cars, which leverage reconfigurable hardware acceleration using ReconROS.

The results of this project will demonstrate the potential of using reconfigurable hardware acceleration not only for single-robot applications but also for multi-robot applications. Additionally, the outcoming implementation can be a starting point for further research on larger ReconROS-based architectures.

Therefore, the project group focuses on building a software/hardware architecture based on ROS 2 and ReconROS. First, the group will start with the design of a software architecture for a single model car. For speeding up and moving the focus to hardware acceleration, the project group can leverage existing open-source implementations for autonomous driving.

For the evaluation of the architecture on real hardware, we provide an existing model car, which comprises a state-of-the-art platform FPGA and a couple of sensors and actors to interact with the environment.

Based on the hardware/software design of the prototype, the group is going to create a swarm of cars. During that, the group must solve upcoming issues and challenges, e.g., regarding the debugging and deployment of the architecture, finding additional potential for advanced multi-robot hardware acceleration approaches, etc. At the end, the swarm should be able to drive in a predefined environment without user interaction.

You can find more information in the presentation of the project group.

Mi­le­sto­nes

The milestones of the project group are the following:

  • Familiarize with ROS 2, ReconROS, different open-source frameworks for autonomous architectures based on ROS 2
  • Work in subgroups to learn about different components of autonomous car software architectures
  • Improve the performance by applying hardware acceleration
  • Combine your work to create one software architecture for the model car and test it on real hardware
  • Build up a swarm of model cars
  • Optimize the swarm, debug and deploy your architecture on multiple cars
  • Think about and try out different approaches of leveraging hardware acceleration in multi-robot scenarios
  • Document your project
  • Present and demonstrate your project

Pre­re­qui­si­tes

The project group focuses on software and hardware development in the area of robotics embedded systems. Therefore, interested students should bring basic knowledge about embedded systems in general and basic skills in C/C++.

It is not required but a plus, if you have experience in some of the following fields: ROS (2), HLS tools, Verilog/VHDL, the development of complex software, or hardware design for FPGAs in general.

What you will gain

Experiences in one of the most discussed key technologies for the future of mobility, which comprise knowledge about algorithms and software architectures as well as approaches for hardware acceleration. Other than that, you will build up skills to design robotics applications with the robot operating system (ROS 2) and you will gain practical experience in embedded system design in the software and hardware domain.

Fur­ther in­for­ma­ti­on

If you need further information, do not hesitate to contact Christian Lienen