Leistungskurs C++ [EI7122]
Dozent: Martin Knopp, Stefan Röhrl, Martin Gottwald
Zielgruppe: Master, 7. Semester
ECTS: 6
Umfang: 2/0/4 (SWS Vorlesung/Übung/Praktikum)
Turnus: Wintersemester
Anmeldung: In TUMonline vom 10.08.2017 bis spätestens 12.10.2017, 23:59 Uhr
Zulassungsvoraussetzungen: Kenntnisse des Grundkurses C++
Zeit & Ort: Vorlesung: Dienstag, 09:45 Uhr bis 11:15 Uhr, Z995
Praktikum: freie Zeiteinteilung
Beginn: Dienstag, 17.10.2017

Allgemeines

Randall Munroe, xkcd.com

Im Leistungskurs C++ haben interessierte Studierende die Möglichkeit, im Rahmen einer Projektarbeit im Team die Programmiersprache C++ zu erlernen. Der Leistungskurs C++ basiert auf den Grundlagen des Grundkurses C++ mit dem Ziel, das erlernte Wissen zu festigen und zu erweitern und gleichzeitig eine Brücke zu den aktuellen Forschungsthemen am Lehrstuhl zu schlagen.

Zur Projektarbeit stehen mehrere Roboter vom Typ TurtleBot 2 zur Verfügung. Mit diesen soll im Hauptprojekt ein komplexeres kollaboratives oder kompetetives Problem gelöst werden. Zu diesem Zweck gilt es, verschiedene technische Hürden zu überwinden, u.a.:

  • Umfelderkennung (Spielfeld, gegnerischer Roboter) mittels Kamera, LIDAR, ToF-Sensoren...
  • Steuerung und Regelung der Fahrmanöver
  • Navigation im Spielfeld
  • Kommunikation zwischen Robotern oder einer Schiedsrichter-Software
  • ...

Begleitend zur Projektarbeit findet an zwei Stunden pro Woche eine Vorlesung statt. Aufbauend auf den Grundlagen des Grundkurses sind u.a. folgende Themen geplant:

  • Einführung in diverse Libraries zur Steuerung der Hardware des Roboters (ROS)
  • Bildverarbeitung mit OpenCV
  • Kameraansteuerung mittels OpenCV
  • Multithreading und Multiprozessorprogrammierung
  • Buildsystem CMake

Voraussetzungen

Die erfolgreiche Teilnahme am Grundkurs C++ gilt als Zulassungsvoraussetzung für den Leistungskurs. Vergleichbare Kenntnisse sind gegebenenfalls vor Beginn des Vorlesungszeitraums in einem persönlichen Gespräch nachzuweisen.

Ergänzungen: VM, Tutorials, etc.

Tutorial / Skriptentwurf V.1

Vorlesungsfolien aus dem ersten Durchlauf mit ROS: Publish/Subscribe, Callback-Funktionen, etc.
Dazu passend auch die Tutorials im ROS-Wiki (1.1 Beginner Level).

Weitere Vorlesungsfolien aus ersten ROS-Druchlauf zu Turtlesim, wichtig für die dritte Hausaufgabe.