PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Backgammon Roboter



wintom
26.11.2006, 15:37
Herzlich Willkommen beim Projekt zur Planung und zum Bau eines Backgammon Roboters!!

Ziele:
Bau eines "tangible user interface" für die Backgammon Software GnuBG (www.gnubg.org), also eines Backgammon Boards, das
1. Spiele zwischen zwei Menschen aufnehmen kann (und somit eine anschließende Analyse ermöglicht) und das
2. selbstständig Züge ausführen kann (also Mensch gegen Maschine/vgl. Schachroboter).

Teile:
1. Input: Spielsteine und Würfel müssen erkannt werden.
2. Verarbeitung: Die Input-Daten müssen so aufbereitet werden, dass sie an die Backgammon Software gesendet werden können. Welcher Zug wurde gemacht? Welche Steine stehen wo? Was zeigt der Würfel? etc.
3. Output: Im Falle, dass ein Mensch gegen den Computer antritt müssen die von der Software ermittelten Züge vom Roboter ausgeführt werden, ev. muss der Roboter die Würfel werfen usw.

Auflagen:
1. Der für mich wichtigste Aspekt des Projekts ist, dass die Benutzung für den Menschen möglichst natürlich ausfällt. Z.B. ist das Würfeln per Tastendruck und LCD NICHT natürlich! Alle anderen Kriterien sind der "usability" unterzuordnen.
2. Das Board hat gefälligst ein Board zu sein, d.h. eine Kamera die zwei Meter über dem Brett schwebt ist zu vermeiden.
3. Der Spaß soll einfach (Ja, man kann die Positionen der Steine auch mit einem einem Differenzial GPS feststellen, aber nicht in diesem Projekt...) und bezahlbar (100-200€?) bleiben.
4. Schön fänd ich, wenn der Roboterarm (wegen 1) unter dem Spielfeld wäre. Vgl. dazu das "Phantom" (http://www.ismenio.com/phantom_6126.html) unter den Schachrobotern (Videos am Seitenende) und den Thread auf Roboternetz (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=4246).

Stand der Dinge:
Input: RFID ist zu teuer. Schwingungen messen erscheint mir zu anspruchsvoll und ebenfall zu teuer (24 Felder x bis zu 8 Steinen). Reed Kontakte und magnetische Steine hat viele Vorteile. Eine Matrix mit 200 Reedkontakten ist aber auch recht aufwendig und wie lese ich gestapelte Steine aus? Widerstände in den Steinen und Kontakte auf dem Brett schränken die Usability ein. Kamera über dem Brett sollte ausgeschlossen werden. Was bleibt? Kamera unter dem Brett? Bisher ist mein Favorit eine Reihe von CMOS Contact Image Sensoren (http://www.eureca.de/neu-german/optoelectronic/sensors-cmos-inc.html), die das Brett von unten abtasten. Die Spielfläche wird also aus Plexiglas und einer lichtdurchlässigen Stoffschicht bestehen. Der Sensor wird auf dem Linearachsensystem befestigt, dass zum Bewegen der Steine eh notwendig wird. Gestapelte Steine werden erkannt, indem man die Steine mit Aussparungen versieht, die verdeckt werden, wenn die Steine aufeinander liegen. Eine Kamera für die Erkennung der Würfel könnte damit auch überflüssig werden, da die Präzisionswürfel beim Backgammon i.d.R. durchsichtig sind und somit noch genug Licht auf die Sensoren unter dem Brett fallen würde um die Punkte zu erkennen!?? Natürlich hat auch diese Lösung Nachteile, insbesondere könnte es u.U. lästig lange dauern, bis das Spielfeld gescannt ist.
Verarbeitung: Je nach Input gestaltet sich natürlich die Verarbeitung anders. Entweder man hat es mit einer Art Keyboard zu tun oder aber mit Mustererkennung. Aber bis zur Verarbeitung ist es auch noch ein langer Weg.
Output: Unter dem Brett wird sich ein Achsensystem mit 2 Schrittmotoren befinden. Die Steine werden mit einem magnetischen Kern versehen. Somit sollten die Steine von unten mit einem Elektromagneten bewegt werden können (bei entsprechend dünner Acrylglasscheibe). Mit dieser Methode ist es leider unmöglich Steine zu stapeln, Steine auf die Bar zu heben und Steine aus dem Spiel zu nehmen ohne große Kompromisse einzugehen. Dennoch ziehe ich diese Lösung einem Achsensystem über dem Board bisher vor.
Sehr schwierig wird sich auch der Mechanismus zum Werfen der Würfel gestalten. (Vielleicht eine Glaskugel mit Luftdruck, wie sich beim Lotto verwendet wird?) Eventuell könnte der Würfelarm ja in problematischen Fällen auch die Steine in den zweiten Stock heben?

Tja, und wenn die Theorie schon so kompliziert und schwierig ist, wie soll es dann erst mit der Praxis werden!? Dazu läßt sich nur sagen, dass ich es nicht eilig habe und dass mit der Erfüllung des ersten Ziels ja schonmal ein Etappensieg zu erreichen wäre. Es würde mich sehr freuen, wenn hier ein kleines Brainstorming entstünde und vielleicht findet sich ja sogar jemand aus der Umgegend von Berlin, der Lust hat in allen drei Dimensionen einzusteigen. Für mich ist es das erste Robotik-Projekt und wohl leider gleich ein ziemlicher Hammer. Ich werd also viele viele Fragen stellen. Z.B. ist es mir noch ein totales Rätsel, wie ich aus einer Reihe von CMOS Sensoren mit analogem Ausgang ein Bild herstellen kann!? Aber vielleicht gibt es erstmal zur Theorie noch Fragen und Anregungen!? Alles hat bisher nur Idee-Charakter und ist keinesfalls festgeklopft. Jeder patente Geistesblitz ist willkommen.

Vielen Dank

HannoHupmann
26.11.2006, 18:08
Meine bescheidene Einschätzung des Projekts. Du wirst um einen Roboterarm egal welcher Form nicht herum kommen.

Bewegen von Steinen auf einer Ebene, lass ich mir mit Magneten noch eingehen. Sollte kein Problem werden. Allerdings hast du eine dritte Dimesion bzw. eine zweite Ebene über der ersten für gestapelte Steine (allerdings weis ich nicht wo bei Backgammon Steine aufeinander gelegt werden, meistens ist dies doch nur ein Vorgang um die Steine Platzsparender anzuordnen).

Betrachten wir zunächst nur die Ebene 0(hier nenne ich sie 0 weil zuunterst). Jeder Stein muss innerhalb der aufgezeichneten Dreiecke bewegt werden und zwischen den Feldseiten auf einer Bar liegen. Dabei ist es notwendig die Position aller Steine auf dem Spielfeld sowie ausserhalb zu erkennen.

Die Bar und die fertigen Steine (ka wie die genau heissen die bereits aus dem Spiel sind) lassen sich von unten bewegen. Die Bar sollte dabei nicht höher sein als das Spielfeld oder mit schrägen (vergleiche mit Trapez) erreichbar. Die Seiten könnten ebenso aufgebaut sein. Wie die Steine erkannt werden überlass ich dir. Ich mach nur den Vorschlag mit den Schrägen.

Punkt 2: Stapeln, darauf würde ich gänzlich verzichten. Das wird einfach viel zu aufwendig. Da bekommst du praktisch nur Probleme und muss irgend eine Art von Manipulator (umgangsprachlich Roboterarm) verwenden.

Punkt 3: die Würfel. Hier entsteht wohl das grösse Problem. Nehmen wir an die Würfel sind magnetisch an ihren 6 Seiten (S pol) der Tisch selber ist in der Lage an jedem Punkt ein kleines Magnetfeld zu erzeugen so kann mittels Magnetischer Abstossung der Würfel hoch katapultiert werden. Landet er danach wieder auf dem Tisch muss ein geeigneter Sensor die Augenzahl auslesen. Wenn nun ein Mensch spielt muss er nur die Würfel entsprechend auf dem Brett fallen lassen.

Allerdings alles recht aufwendig in der Umsetzung da der gesamte Tisch abgedeckt werden muss mit einer entsprechenden Katapult Version. Und man erst noch ermitteln müsste wie stark ein Magnetischer Impuls sein muss um den Würfel zu werfen.

EDIT: Achja, wenn das ganze danach einigermassen sauber verarbeitet sein soll und nach was aussehen würde ich mit deutlich mehr als 200€ rechnen. Allein das Material für den Tisch dürfte über 100€ ausmachen.
Allerdings lässt sich diese Summe gut über die Zeit aufteilen und die meisten Bastler rechnen kleinteile unter 5€ nicht in ihre Bilanz ein.

wintom
26.11.2006, 19:10
Vielen Dank für die Einschätzung!

Zum Stapeln:
>meistens ist dies doch nur ein Vorgang um die Steine Platzsparender anzuordnen

Genau das! Es kommt in vielleicht jedem 20sten Spiel vor, dass ein Spieler mehr als 8 Steine auf einem Punkt sammelt. Spätestens dann kollidieren sie auf Ebene 0 mit den Steinen des Gegners. I.d.R. wird der 7te Stein bereits gestapelt. Dass ich in einem solchen Fall um einen zusätzlichen Manipulator nicht herumkomme ist klar. Die Frage ist wie kann ich diesen schön verstecken, indem ich ihn a.) noch für eine andere Aufgabe brauche (z.B. einen Würfelarm) oder b.) klein und fein baue und vielleicht in der Bar verstecke.

Wie ich ein Spielfeld so auslegen kann, dass keine Steine gestapelt werden müssen und ich trotzdem mit dem Gegner noch ohne Handy kommunizieren kann, weiss ich leider nicht. ;-)

Die Idee mit den Schrägen gefällt mir prinzipiell sehr gut, nur bezweifle ich, dass der Magnet von der Unterseite stark genug sein wird um den Spielstein die Schräge hinauf zu ziehen. Erfahrung?

Die Spielsteine, die bereits aus dem Spiel sind wird man denke ich nicht erkennen können müssen, da nur ihre Anzahl interessant ist und diese leicht errechnet werden kann wenn die Anzahl der Spielsteine auf dem Feld bekannt ist.

Deine Kreativität bezüglich des Würfelwurfes ist höchst lobenswert! Tatsächlich könnte dies das schwierigste Problem sein. Wenn der Würfelwurf einigermaßen ernstzunehmen sein soll, so dürfen nur Präzisionswürfel zum Einsatz kommen. Damit fällt jede Art von Magnetismus leider aus :-( Obwohl das, so wie du es beschrieben hast, wahrscheinlich Spitze aussehen würde!

Weiter so!!

Was die Kohle angeht: Wenn ich in den Prototypen 400 Taler investieren muss, ist das auch ok. Das ist die Sache Wert. Ich möchte nur teure Technologien wie Laserabstandsmessung, RFID, Farbsensoren etc. ausschließen.

bossche
16.04.2011, 14:28
Hallo Wintom,

ich hatte mich vor einiger Zeit auch mal mit diesem Thema beschäftigt. Allerdings mit einer etwas anderen Richtung.
Ich würde gerne die Züge und die würfe von 2 Menschlichen Spielern aufzeichen.
An reed-Schalter hatte ich auch schon gedacht und eine Lichtschranke als "Würfelaugenleser" allerdings müssten die Würfel dann immer an eine definierte Position gelegt werden (was für ein Match eher unüblich und lstig ist).
Mich würde interessieren ob Du mittlerweile eine praktikable Lösung für das abscannen der Steine und der Würfel gefunden hast.
über eine Antwort würde ich mich freuen..
Gruß
bossche

PICture
17.04.2011, 15:03
3. Der Spaß soll einfach (Ja, man kann die Positionen der Steine auch mit einem einem Differenzial GPS feststellen, aber nicht in diesem Projekt...) und bezahlbar (100-200€?) bleiben.

Dann würde ich es mit eventuell farbigen GLCD (z.B. aus Handy) realisieren. ;)

MisterMou
19.04.2011, 21:32
Das Erkennen der Steine klappt doch super per Colour-Key und einer Webcam. zb. rote und blaue Steine oder Schwarz/Weiß mit Konturerkennung, da die Brettfarbe auch Schwarz und Weiß ist.
Ist ja auch nur 4,5 Jahre alt das Thema :D

Ruey
19.04.2011, 21:56
Sehr interessantes Projekt!
Wenn das mal fertig sein sollte würde ich gerne mal gegen deinen Roboter Spielen!
Halte uns doch mit Bildern usw. auf dem laufenden.

Neodym-magnete sind sehr stark. Nur solltest du bei Magneten aufpassen, dass die sich nicht gegenseitig mehr anziehen als sie deine Spieloberfläche anziehen. die neigen dazu dann auch mal über einige Zentimeter zu springen um sich anzuziehen.

bossche
20.04.2011, 09:37
Hallo MisterMou,

mag sein das dieses thema schon älter ist aber steige halt jetzt erst ein.
wo müsste sich die WebCam den befinden? ich wäre da eher an einer "Unsichtbaren" Lösug interessiert.

MFG

MisterMou
20.04.2011, 14:36
Je nachdem wie gut deine Mathekenntnisse sind :D
Entweder direkt oben drüber (leichteste Variante) oder seitlich daneben, dann muss aber die Verzerrung rausgerechnet werden und die Auflösung muss höher sein.
Noch eine Idee wäre ein durchsichtiges Spielbrett und die Kamera darunter. Aber die Steine bekommt man nicht unsichtbar bewegt ;)