Kartenspielroboter
Wie kann ich watten, wenn mir ein Mitspieler fehlt?
Projektbeschreibung
Kartenspiele stellen eine beliebten Zeitvertreib für Jung und Alt dar. Je nach Kartenspiel ist eine bestimmte Anzahl oder eine Mindestanzahl an Spielern notwendig, sonst kann das Spiel nicht gespielt werden. Da nicht immer die benötigte oder gewünschte Anzahl an Spielern verfügbar ist, sollte im Rahmen von Systems Engineering 1 ein Robotersystem entwickelt werden, das einen menschlichen Mitspieler für das Spielen verschiedener Kartenspiele mit echten Spielkarten ersetzen kann.
Beteiligte Personen
Studierendengruppe | |
Zentrale Spielsteuerung: | Markus Wagner, Marco Westermair, Dominik Ziegler |
Mensch-Maschine-Interaktion: | Tobias Ertle, Manuel Mikschl, Alexander Markidonow |
Kartenerkennung: | Benedikt Degenstein, Ali Gözen, Thomas Henning, Dennis Religa, Burak Saglam |
Roboteransteuerung: | Michael Durach, Thomas Höger, Jan Sigg, Nikolas Voss |
Betreuer: | Prof. Dr. Martin Bayer, Prof. Dr. Claudia Meitinger |
Veranstaltung
Systems Engineering 1 (E5-IK)
Laufzeit
WS 2019/2020
Zielsetzung
Entwicklung eines funktionsfähigen Prototypen eines Kartenspielroboters,
- der einen menschlichen Mitspieler beim bayrischen Kartenspiel "Watten" für zwei ersetzen kann.
- der mit echten Spielkarten spielen kann.
- der einfach erweitert bzw. modifiziert werden kann (z.B. auf andere Kartenspiele, andere Technologien zur Kartenerkennung und/oder Kartenhandhabung, etc.).
Systemüberblick
Umzusetzende Funktionalitäten
Zur Realisierung der Zielsetzung sollten folgende technische Funktionalitäten umgesetzt werden:
- Zentrale Spielsteuerung zur Ansteuerung der anderen Spielkomponenten
- Interaktion mit menschlichen Mitspielern, wann immer sinnvoll/nötig
- Bestimmen und Ausspielen einer Karte, sofern Roboterspieler an der Reihe ist (mindestens regelkonform, nach Möglichkeit mit einer einfachen Taktik)
- Interaktion mit dem/n menschlichen Mitspieler(n) über verschiedene Modalitäten
- Identifizieren von Spielkarten
- verdeckte, d.h. eigene, noch nicht ausgespielte Karten des Roboterspielers, die für menschliche Mitspieler nicht sichtbar sein sollen
- offene, d.h. die zuletzt ausgespielte Karte (egal von welchem Spieler)
- Aufnehmen und Bewegen von Spielkarten des Roboterspielers
- zu Spielbeginn vom Stapel
- während des Spiels aus einer Kartenhalterung
Anordnung Systemkomponenten
Folgende Abbildung zeigt die gewählte Spieleranordnung sowie definierte Ablageorte für Spielkarten vor und während des Spiels.
Modularisierung
Entsprechend der umzusetzenden technischen Funktionalitäten wurde das Projekt im Rahmen von vier Teilprojekten realisiert. Jede Funktionalität wurde für einen Raspberry Pi als Teil eines MQTT-Netzwerks umgesetzt.
Wir benutzten ...
Roboter Niryo One, ROS, Vakuum-Sauger, MQTT, Raspberry Pi 3B+, Raspi-Camera, Python, eSpeak, SNIPS, KI, QR Codes, 3D-Druck, YOLO, ...