Lehrstuhl für Mustererkennung und Bildverarbeitung
Veranstaltunstitel:

Softwarepraktikum WS 01/02 (4 SWS): Schach-Roboter

Verantwortlich: Lehrstuhl für Mustererkennung und Bildverarbeitung und Lehrstuhl für Graphische Datenverarbeitung.
Zeit: Mittwochs, 14.00 - 18.00 Uhr
Ort: Geb. 52, SR 02-005 (Linux-Pool LMB)
Mitwirkung: Christoph Keller, Jörg Mechnich, Jean-Sébastien Pierrard, Olaf Ronneberger
Adressaten: Studenten der Informatik, Mathematik, Physik, Mikrosystemtechnik oder Biologie
Voraussetzungen: Kenntnisse einer objektorientierten Programmiersprache (z.B. Java) werden vorausgesetzt. Grundkenntnisse in C / C++ sind wünschenswert, aber nicht erforderlich.
Beschreibung: In diesem Praktikum sollen durch Implementation eines größeren Projektes Grundlagen der Softwareentwicklung vermittelt werden. Ein Fischertechnik-Roboterarm und eine digitale Kamera sollen dazu verwendet werden, rechner-gesteuert Brettspiele (z.B. Schach, Mühle, Backgammon, Dame) mit einem menschlichen Gegner zu spielen. Am Ende sollen folgende Module, die über einen einfachen Netzwerk-Layer miteinander beliebig kombiniert werden können, stehen:
  • Erfassung der menschlichen Spielzüge mit einer digitalen Kamera
  • Ausführen von Spielzügen mit dem Roboterarm (Kontrolle des Arms ebenfalls per Kamera)
  • Ausgabe und Eingabe von Spielzügen über ein interaktives OpenGL-Programm
  • "Computerspieler"-Modul
Inhalt: Zu Beginn des Praktikums findet ein kompakter C++-Kurs statt. In diesem sollen die Prinzipien der C++ Programmierung anhand der Unterschiede zu Java und spezieller Eigenheiten (z.B. Templates) vermittelt werden. Außerdem werden die zu benutzenden Bibliotheken Qt und OpenGL vorgestellt.

Während des Praktikums sollen folgende Teilaufgaben von den Studenten in kleinen Gruppen (2-3 Personen) bewältigt werden:
  • Bildvorverarbeitung (Hintergrundbestimmung, -subtraktion, etc.)
  • Merkmals-Extraktion (Positionsbestimmung und evtl. Erkennen der Spielobjekte, Positionsbestimmung des Greifers, Ablesen des Würfels, etc.)
  • Implementation einer Spiel-KI (Stellungsbewertung, etc.)
  • Modellierung der Roboterkomponenten in C++, Kommunikation mit dem Roboterinterface über die serielle Schnittstelle
  • Erstellung von Regelkreisen zur Ansteuerung des Roboters
  • Rendern des Spielfelds und interaktives Bewegen der Figuren mit OpenGL
Lernziele: Umgang mit Werkzeugen, objektorientiertes Programmieren, generisches Programmieren, Multi-Threading, Arbeit in Kleingruppen, Dokumentation, Versions-Kontrolle und Präsentation der Programme
Programmiersprache: ANSI-C++ (Bibliotheken: STL, Qt, OpenGL und CommonC++)
Betriebssystem/Plattform: Linux
Werkzeuge: gcc, make, emacs, vi, CVS, gdb, doxygen
Kreditpunkte: 6
Prüfungsleistungen:
  • Bearbeitung der Aufgaben während des C++-Kurses
  • Regelmäßige Teilnahme an Praktikumstreffen
  • Präsentation der eigenen Leistungen am Ende des Praktikums
Vorbesprechung: Mi, 17.10. 13.00-14.00 Uhr HS 026
weitere Informationen:

Olaf Ronneberger 2.10.2001