Leistungskurs C++
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: | wird vorerst nicht mehr angeboten |
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: | - |
Hinweis: | Der Leistungskurs wird durch die nachfolge Vorlesung High Performance Computing für Machinelle Intelligenz ersetzt. |
Allgemeines
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:
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.
Ergänzungen: VM, Tutorials, etc.
- 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-Durchlauf zu Turtlesim, wichtig für die dritte Hausaufgabe.
Unterlagen
- Buch: Jason M. O'Kane - „A Gentle Introduction to ROS“ (gratis Download)
- ROS-Wiki
- CMake-Dokumentation
- OpenCV-Dokumentation, Tutorials