Leistungskurs C++ [EI7122]
Dozenten: Martin Gottwald, Stefan Röhrl and Martin Knopp
Zielgruppe: Master, 7. Semester
ECTS: 6
Umfang: 2/0/4 (SWS Vorlesung/Übung/Praktikum)
Turnus: Wintersemester
Anmeldung: In TUMonline vom 20.08.18 bis spätestens 16.10.18, 8:00 Uhr
Platzvergabe: Fixplätze werden in der ersten Vorlesungsstunde vergeben
Zulassungsvoraussetzungen: Kenntnisse des Grundkurses C++
Zeit & Ort: Vorlesung: Dienstag, 09:45 Uhr bis 11:15 Uhr, Z995
Praktikum: freie Zeiteinteilung
Beginn: Dienstag, 16.10.2018

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.

Vorlesungsfolien

Vorlesung 16.10.2018: Einführung in den Leistungskurs und ROS

Hausaufgaben

Hausaufgabe 1:

PDF

Abgabefrist: 30.10.2018, 17:00Uhr

Abageform: persönlicher Git Branch h1_vorname_nachname in der jeweiligen Gruppe

Aufgabe: Schreiben Sie ein Programm, dass den Turtlesim Simulator dazu veranlasst Ihre Initialen zu zeichnen. Wenn Sie Hans Meier heißen, dann nennen Sie ihren Git Branch h1_hans_meier. Der Tutrlesim Simulator sollte dann die Buchstaben HM zeichnen. Für diese Aufgabe ist die Verwendung von ROS zu Bedienung von Turtlesim Pflicht. Nicht kompilierbarer oder nicht ausführbarer Code kann nicht bewertet werden. Sie können gerne eine Screen Shot Ihrer fertigen Initialen abgeben, dies ist aber nicht verpflichten. Es zählt lediglich die ausführbare Simulation. Die Ästhetik ihrer Abgabe wird nicht wertet, jedoch müssen die lateinischen Buchstaben erkennbar sein.