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

Beschreibung

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.

Voraussetzungen

  • Knowledge about GPU Programming
  • Python

Kontakt

flo.maurer@tum.de

Betreuer:

Duckietown Autonomous Driving Pipeline - PCIe Driver for ARM64

Beschreibung

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, we need to port the xdma driver from xilinx from x86 to aarch64, as our Duckiebots run on the NVDIA Jetson Nano Platform (ARM64).
Further, this work should provide a Python wrapper for this driver to use it within Python.

Voraussetzungen

  • Knowledge about Linux drivers and PCIe

Kontakt

flo.maurer@tum.de

Betreuer:

Duckietown Autonomous Driving Pipeline - FPGA

Beschreibung

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.

Voraussetzungen

  • Knowledge about VHDL and Xilinx IP-cores

Kontakt

flo.maurer@tum.de

Betreuer:

Duckietown Autonomous Driving Pipeline - Assignement of Processing Ressources

Beschreibung

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.

Voraussetzungen

  • Knowledge about GPU Programming
  • Python

Kontakt

flo.maurer@tum.de

Betreuer:

Duckietown Bring-Up

Beschreibung

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

Kontakt

flo.maurer@tum.de

Betreuer:

Duckietown - Computer Vision Based Measurements for Performance Analyzes

Beschreibung

At LIS, we want to use the Duckietown hardware and software ecosystem for experimenting with our reinforcement learning based learning classifier tables (LCTs) 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/.

Currently, we are developing the infrastructure for our LCT experiments.
While several students are improving on the autonomous driving abilities of the Duckiebots, this work's goal is to develop a system which provides insights into the bots' driving performance.
Therefore, we need objective measurements by a third party which allow us to compare the driving performance (average speed, deviation from optimal line, …) between bots which might run different SW.
To compare specific scenarios, these measurements shouldn't only be a time series, but be enhanced by the position of the respective bot at this point in time. Similar to the modern sports apps: https://www.outdooractive.com/de/route/wanderung/tegernsee-schliersee/auf-dem-prinzenweg-vom-schliersee-an-den-tegernsee/1374189/#dm=1.

Towards this goal it's required to develop a camera-based mechanism, which identifies bots in the field, extracts their concrete position and calculates certain metrics like direction, velocity, on / off lane, spinning, deviation from ideal line, ….
This data then should be logged to be analyzed + visualized later.

Depending on the type of work (BA/FP vs MA) this work might include to enhance these measurements with internal data of the bots to compare internal and external perception, and to develop tools for easy analysis.

Voraussetzungen

  • independent work style
  • problem solving skills
  • computer vision knowledge (openCV)
  • programming skills (we are open which framework is used - Python, C++ (Qt), Matlab, ...
  • Linux basics (permissions)

Kontakt

flo.maurer@tum.de

Betreuer:

Duckietown Autonomous Driving Pipeline - Performance Improvement

Beschreibung

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 improve single stages of the image processing pipeline.
A first step is to analyse the image processing pipeline.
Afterwards the one with the biggest bottleneck in terms of functional accuracy or computation is selected to be optimized according to state of the art methods (literature research required).
Finally, the improvements should be measured and compared to before.

Betreuer:

Completed Theses

Betreuer:

Florian Maurer, Thomas Wild

Betreuer:

Florian Maurer, Thomas Wild

Betreuer:

Florian Maurer, Thomas Wild

Betreuer:

Thomas Wild, Florian Maurer

Betreuer:

Thomas Wild, Florian Maurer