Duckietown

Duckietown, is an environment for studying autonomous driving in a scaled-down manner. It consists of Duckiebots that can move autonomously in a modular environment. The Duckiebots are robots consisting of sensors and motors controlled by an NVIDIA Jetson Nano.

We use this environment to visualize our research in the field of application specific MPSoCs. As a first use case we want to investigate and demonstrate the capabilities and the behavior of our hardware-optimized learning classifier tables (LCTs). These are rule-based reinforcement learning (RL) engines developed in our IPF project.

Initially, we analyze the image processing pipeline of the Duckiebots and apply our LCTs as additional controllers in the autonomous driving application of the Duckiebots. Based on the status of the Duckiebots, the LCTs should help to learn specific behaviors by influencing relevant parameters of the processing pipeline. In a first step, student works use a software version of the LCTs. In subsequent steps the Duckiebots should be extended by an FPGA board, which enables a hardware-based and independent realization of the LCTs.

Involved Researchers

How to get involved?

As we use Duckietown as a basis for our research and also to demonstrate results in the currently hot application domain of autonomous driving, there are plenty of opportunities for students to contribute.

You can get involved depending on your level of experience / study progress:

  • Already during the bachelor phase you can practically apply your knowledge from LinAlg, StoSi and Regelungstechnik while you improve your coding skills and aquire knowledge about hardware architectures and autonomous driving. Get in touch with us, to talk about open tasks and to get access to our physical setup.
  • Towards the end of your bachelor, it's the first time that you have to write a thesis. For that, have a look at open BA topics below.
    The same applies for research internships (FPs) and master theses (MAs).
  • Depending on the currently planed steps, there might be tasks, which can't be assigned as BA, FP or MA. In such cases we also offer paied working student jobs. Open positions of that type are also listed below.

Thesis Offers

Interested in an internship or a thesis? Please send us an email.
The given type of work is just a guideline and could be changed if needed.
From time to time, there might be some work, that is not announced yet. Feel free to ask!

Assigned Theses

Duckietown Autonomous Driving Pipeline - Assignement of Processing Ressources

Description

At LIS we want to use the Duckietown hardware and software ecosystem for experimenting with our reinforcement learning based learning classifier tables (LCT) as part of the control system of the Duckiebots: https://www.ce.cit.tum.de/lis/forschung/aktuelle-projekte/duckietown-lab/

More information on Duckietown can be found on https://www.duckietown.org/.

In this student work, we want to enable the use of the GPU in the Lane Detection.
Previous work already experimented with CuPy and CUDA on the NVIDIA Jetson Nano Platform and realized, that they are optimized for PCIe-attached GPUs. In the Jetson Nano, we have a shared memory model, where the GPU shares the main memory with the cpu. Hence, CuPy and co can't enable the complete potential of GPU processing, yet.

Goal of this work is to optimize the GPU usage to benefit from offloading parts of the Lane Detection Alogithm from the CPU and execute them accelerated on the GPU.

Prerequisites

  • Knowledge about GPU Programming
  • Python

Contact

flo.maurer@tum.de

Supervisor:

Duckietown Autonomous Driving Pipeline - FPGA

Description

At LIS we want to use the Duckietown hardware and software ecosystem for experimenting with our reinforcement learning based learning classifier tables (LCT) as part of the control system of the Duckiebots: https://www.ce.cit.tum.de/lis/forschung/aktuelle-projekte/duckietown-lab/

More information on Duckietown can be found on https://www.duckietown.org/.

In this student work, we want to enable the use of the FPGA in the Lane Detection.
Therefore, the different stages of the Lande Detection Pipeline should be ported to FPGA.
In order to comunicate with the NVIDIA Jetson Nano Platform, the ported algorithm has to connect to the XILINX PCIE DMA IP-Core.

Prerequisites

  • Knowledge about VHDL and Xilinx IP-cores

Contact

flo.maurer@tum.de

Supervisor:

Duckietown Autonomous Driving Pipeline - Assignement of Processing Ressources

Description

At LIS we want to use the Duckietown hardware and software ecosystem for experimenting with our reinforcement learning based learning classifier tables (LCT) as part of the control system of the Duckiebots: https://www.ce.cit.tum.de/lis/forschung/aktuelle-projekte/duckietown-lab/

More information on Duckietown can be found on https://www.duckietown.org/.

In this student work, we want to enable the use of the GPU in the Lane Detection.
Previous work already experimented with CuPy and CUDA on the NVIDIA Jetson Nano Platform and realized, that they are optimized for PCIe-attached GPUs. In the Jetson Nano, we have a shared memory model, where the GPU shares the main memory with the cpu. Hence, CuPy and co can't enable the complete potential of GPU processing, yet.

Goal of this work is to optimize the GPU usage to benefit from offloading parts of the Lane Detection Alogithm from the CPU and execute them accelerated on the GPU.

Prerequisites

  • Knowledge about GPU Programming
  • Python

Contact

flo.maurer@tum.de

Supervisor:

Duckietown Bring-Up

Description

At LIS we want to use the Duckietown hardware and software ecosystem for experimenting with our reinforcement learning based learning classifier tables (LCT) as part of the control system of the Duckiebots: https://www.ce.cit.tum.de/lis/forschung/aktuelle-projekte/duckietown-lab/

More information on Duckietown can be found on https://www.duckietown.org/.

Towards this goal, we need a (followup) working student who is improving the current infrastructure.

Towards this goal, the following three major tasks are necessary:

  1. Developping an infrastructure to track and visualize measurement data of the platform (e.g. CPU utilization) as well as the executed application.
  2. During this task also the source and periodicity of already provided data should be analyzed.
  3. Setting up all Duckiebots incl. all their features and a pipeline to reflash them in case it's needed.
  4. FPGA-Extension: Searching for a concept, as well as implementing it.
  5. Final goal: demonstration of data exchange between NVIDIA Jetson and FPGA including protocol to specify the type of transfered data

Contact

flo.maurer@tum.de

Supervisor:

Completed Theses

Contact

flo.maurer@tum.de

Supervisor:

Florian Maurer, Thomas Wild

Contact

flo.maurer@tum.de

Supervisor:

Florian Maurer

Supervisor:

Florian Maurer, Thomas Wild

Supervisor:

Florian Maurer, Thomas Wild

Supervisor:

Florian Maurer, Thomas Wild

Supervisor:

Florian Maurer, Thomas Wild

Supervisor:

Thomas Wild, Florian Maurer

Supervisor:

Thomas Wild, Florian Maurer