4 Gewinnt Bot


Team Name: Die Kneppster @ Institut: IND

Unser Ziel war es, einen intelligenten und v.a. interaktionsfähigen Roboter zu konstruieren. Da bot sich die Idee eines künstlichen Spielgegners für einsame Zeiten hervorragend an.

 

Dieser Roboter beherrscht das Spiel "Vier gewinnt" und zwingt jeden menschlichen Gegner in die Knie! {readmorelink}Weiter zum Beitrag.{/readmorelink}

 



 

Die Aufgabe:

Der Roboter muss, nachdem der Spieler seinen Zug getätigt hat, selbstständig das Spielfeld scannen und aus der so ermittelten Spielsituation seinen nächsten Zug mittels einer künstlichen Intelligenz berechnen können. Anschließend muss er diesen ausführen, indem er einen Spielstein über einen Auswurfmechanismus in die berechnete Spalte befördert.

 



 

Die Umsetzung:

 

1. Aufbau und Mechanik


 

Der Roboter verfügt über 3 Motoren und 4 Sensoren.

Zum Scannen des Spielfelds wird auf einen RGB-Farbsensor zur Unterscheidung der roten und gelben Spielchips zurückgegriffen. Dieser lässt sich durch den Antrieb des Fahrwerks horizontal, sowie über einen motorgesteuerten Flaschenzug vertikal in die richtige Position bringen. Bei der horizontalen Bewegung, d.h. der Verschiebung des Roboters, orientiert sich dieser an schwarzen Linien, die unter den Spielfeldspalten auf dem Holzsockel aufgebracht sind und mithilfe der Lichtsensoren registriert werden. Hier werden 2 Lichtsensoren benötigt, um sowohl den Farbsensor als auch den Auswurfmechanismus zur richtigen Spalte zu navigieren.

Der Auswurfmechanismus besteht aus einem turmförmigen Spielchipspeicher, einem motorgesteuerten "Schieber" und einer Führung, die den Spielchip senkrecht in die Spalte fallen lässt. Eine Motorumdrehung um 360° bewirkt, dass der unterste Spielchip durch den Schieber in die Auswurfführung geschubst wird, während die anderen Chips nach unten "nachrücken".

Nach Beendigung des eigenen Spielzugs muss der Roboter durch einen Tastendruck darauf hingewiesen werden, dass er an der Reihe ist. Die anfängliche Idee, das Auftreffen eines Spielchips mit einem Tonsensor zu registrieren, hat sich als zu unzuverlässig herausgestellt.

 


 

2. Künstliche Intelligenz

 

Damit man mit dem Roberter auch richtig spielen kann, muss dieser natürlich das Spiel verstehen und intelligent auf die Züge des menschlichen Gegners reagieren können, wozu es einer künstlichen Intelligenz bedarf. Diese hat die Aufgabe, aus einer gegebenen Spielfeldmatrix, die die aktuelle Verteilung der Spielchips angibt, eine Einwurfspalte für den nächsten Zug des Roboters zu berechnen, sodass der Vorteil der KI maximiert und der des Spielers minimiert wird (MiniMax-Algorithmus).

Zunächst gilt es, Spielzüge zu simulieren und rekursiv eine Baumstruktur zu entwickeln, bei der einzelne Zweige Zugfolgen darstellen. Die Größe dieser Baumstruktur wird durch eine variable Suchtiefe geregelt (Anzahl der Folgezüge), die als Maß für die Intelligenz dieses Systems herangezogen werden kann. Hier ist zu beachten, dass die Anzahl möglicher Spielsituationen und damit der Rechenaufwand mit der Suchtiefe exponentiell zur Basis 7 wächst, da es 7 Einwurfspalten gibt (vorausgesetzt keine ist vollständig besetzt). Als nächstes gilt es, sämtliche berechnete Spielsituationen zu bewerten und den Zweig mit der besten Bewertung auszuwählen.

Zur Bewertung einer Spielsituation werden die horizontalen, vertikalen sowie diagonalen 2er und 3er Reihen jedes Spielers gezählt und mit Faktoren entsprechend ihrer Relevanz (3er Reihen sind mehr wert) gewichtet. Die berechneten Werte werden im Anschluss aufsummiert, wobei die Reihen der KI positiv und die des Spielers negativ in die Summe eingehen. Bei 4er Reihen ist der Rückgabewert der Bewertungsfunktion gleich plus/minus Unendlich (Sieg oder Niederlage). Letztlich erhält man einen Vektor der Länge 7 (7 Spalten), dem man die Einwurfspalte als Index mit dem höchsten Wert entnehmen kann.

 


 

3. Robotersteuerung, Schnittstellen und GUI

 

Die GUI dient als zentrale Schnittstelle zwischen Spieler, Roboter und KI. Über sie erfolgt die anfängliche Sensor-Kalibrierung und sie speichert das aktuelle Spielfeld in Form einer Matrix, die mit Einsen (Spielerchips), Nullen (leere Felder) sowie negativen Einsen (Roboterchips) gefüllt und schließlich in einer Grafik abgebildet wird.

 

 

 

Die Spielfeldmatrix wird jeweils nach dem Scanvorgang bzw. dem berechneten KI-Zug aktualisiert. Beim Scannen fährt der Roboter mit dem Farbsensor ausschließlich die Spielfelder an, in denen sich ein noch nicht registrierter Spielerchip befinden könnte und bricht den Scanvorgang ab, sobald eine Änderung in Bezug auf die vorherige Spielmatrix ausgemacht werden konnte. Sollte der Farbsenor einmal versagen (z.B. aufgrund eines Kalibrierungsfehlers), wird ein Dialog angezeigt und der Spieler kann seinen getätigten Zug manuell eintragen.

Der Scanvorgang wird durch einen Tastendruck auf den Tastsensor eingeleitet, dessen Status über einen Timer (zur Verhinderung einer GUI-Blockade) geprüft wird.Nach jedem Scan- bzw. Zugvorgang fährt der Roboter auf seine Startposition zurück, sodass das Spielfeld wieder für den Spieler zugänglich ist.

Letztlich informiert die GUI den Spieler am Spielende zudem über den Gewinner bzw. ein Unentschieden.

 

 



 

 

Und hier das ganze in Aktion...


Roboter Wintersemester 2013/14

  • Team Name: Die J.A.M.M.M.E.R. @ Institut: TI Die J.A.M.M.M.E.R. konstruierten insgesamt 3 Projekte. Das Hauptprojekt ist die 3D-Fräse. Nebenprojekte sind eine
    Weiterlesen
  • Team Name: Vier gewinnen @ Institut: IAS Vier verliert ist ein Plastikhaufen, gegen den man auf einem handelsüblichen Vier-Gewinnt-Feld spielen kann.
    Weiterlesen
  • Team Name: Die Kneppster @ Institut: IND Unser Ziel war es, einen intelligenten und v.a. interaktionsfähigen Roboter zu konstruieren. Da bot
    Weiterlesen
  • Team Name: JukeboNXT @ Institut: IENT UNFERTIG Der JukeboxRobo liest einen Farbcode aus und spielt korrespondierende Töne ab. Für diesen Zweck
    Weiterlesen
  • Team Name: TheHotWheels @ Institut: IFHT Ferngesteuerter Fahrroboter "Kaller". Interaktive Steuerung per Tastatur oder Maus, Synchron-Heckantrieb mit Einzelradaufhängung, Lenkung der Vorderräder
    Weiterlesen
  • Team Name: L&S SmartTouch @ Institut: LfBS TouchSmart ist ein Roboter, der den Touchscreen des Motorola Razers bedienen kann. {readmorelink}Weiter zum
    Weiterlesen
load more hold SHIFT key to load all load all

Aktuelles

  • 1
  • 2
  • 3
  • 4
  • 5

Kontakt

Bei weiteren Fragen bzgl. des Projekts - MATLAB meets LEGO Mindstorms - wenden sich Externe bitte an Marcin Kpaczka.

Fragen von Projektteilnehmern werden dagegen im Diskussionsforum des projektspezifischen L²P Lern- und Lehrportals unter
www.elearning.rwth-aachen.de beantwortet.

Login

Copyright © 2017 Mindstorms - Projektseite. Alle Rechte vorbehalten.
Joomla! ist freie, unter der GNU/GPL-Lizenz veröffentlichte Software.