Seite 1 von 1

Othello TXT Roboter

Verfasst: 12 Apr 2018, 21:32
von hamlet
Liebe ft-Community,
Irgendwann vor zweieinhalb Jahren, mit frisch erstandenem TXT, habe ich mir in den Kopf gesetzt einen Spielroboter zu bauen. Meine Wahl fiel auf Reversi bzw. Othello, da mir sowohl die Mechanik als auch die Programmierung realisierbar erschien. Den Spielkern, der ein Othello-Spiel auf dem TXT Display erlaubt, hatte ich nach ein, zwei oder drei Monaten (?) fertig und dachte: "Dann baust Du halt noch schnell den Roboter dazu." … Von wegen, kleine runde Spielsteine mit Pneumatik und Vakuum-Sauger zu wenden, überstieg meine Fähigkeiten. Irgendwann habe ich dann den Staub vom ersten Roboterentwurf gepustet und das Teil zerlegt. … Nun, ich hab einen zweiten Anlauf gewagt, hier das Resultat:
OthelloRobot.jpg
Filmchen

Bilder, RoboPro Programm und Video

Man kann allerdings auch ohne Roboter auf dem TXT-Display spielen. Eine Anleitung findet sich im Dokumentations-Tab des Hauptprogramms.

Der Roboter:
  • Der Roboter besteht bis auf ein paar Ausnahmen ausschließlich aus ft-Teilen, beschränkt sich auf ft-Sensoren und Aktoren und ist ganz old-school in RoboPro programmiert.
  • Verbaut sind drei Encoder, ein xs-Motor, zwei Magnete, sechs Taster, ein Farbsensor und die Kamera.
  • Eigentlich zu viele Aktoren für den TXT, aber man kann ja mechanisch umschalten. Die Stapelbarkeit bei den Tastern vorzusehen, war schon eine geniale Idee von fischertechnik.
  • Meine beiden Encoder neuen Typs hab ich, obwohl sie durch das höhere Gewicht wertiger erscheinen und ruhiger laufen, wieder durch die alten Typs ersetzt, weil mir die neuen einfach zu lahm waren.
Software:
  • Ein echt monströser Mondrian. RoboPro braucht ein bissel die 12MB XML zu laden.
  • Das Programm verwendet Bitboards und ermittelt seine Züge mit dem rekursiven Negamax-Algorithmus mit Alpha-Beta-Pruning und einer einfachen Vorsortierung der zu untersuchenden Züge. Die Score-Funktion setzt sich aus folgenden Anteilen zusammen: "Mobilität" (Anzahl der Verfügbaren Züge), "Potentielle Mobilität" und einer Lookup-Tabelle für die wichtigen Spielfeldkanten und Eckfelder.
    Mehr Information hierzu findet sich in der Doku des Programms und hier:
    https://de.wikipedia.org/wiki/Alpha-Beta-Suche
    http://radagast.se/othello/Help/strategy.html
    Damit spielt der TXT gar nicht mal so schlecht. Für mich reicht seine Spielstärke allemal. Gegen ernstzunehmende Othello-Programme hat er allerdings keine Chance. Er macht aber auch keine saublöden Züge. Gegen Zebra, konfiguriert mit niedriger Suchtiefe und deaktivierter Eröffnungsbibliothek, hat er auch schon mal gewonnen.
  • Der Kameraprozess, der anscheinend durchgängig im Hintergrund läuft, verlangsamt das Programm ganz ordentlich. Mit abgezogener Kamera läuft's viermal so schnell.
  • Offline läuft das Programm weitaus schneller als online, wobei ich anmerken muss, dass ich wohl das Glück hatte einen der seltenen TXTs zu erwischen, die mit 1GHz anstatt der üblichen 600MHz, getaktet sind.
  • Es ist erstaunlich wie fremd eigener dokumentationsfreier Code nach eineinhalb Jahren wirken kann. … Nun ist's reverse engineered und dokumentiert, puh.
  • Das Programm enthält einige interessante Routinen. Bedient Euch:
    • Encoder-Positionierer mit Spielausgleich und zyklischem Betrieb (für Drehteller interessant, wählt automatisch die Richtung der kürzeren Distanz). Die eigentlichen Controller laufen auf unabhängigen Prozessen und können über kleine Interface-Objekte angesteuert werden.
    • RGB Konvertierung ins HSV-Farbsystem, Weißabgleich
    • und ein paar mathematische Helferlein
    … wenn ich meine RoboPro-Bibliothek irgendwann mal aufgeräumt hab, stell sie online zur Verfügung.
Beste Grüße,
Helmut

Re: Othello TXT Roboter

Verfasst: 12 Apr 2018, 23:17
von PHabermehl
Hallo Helmut,

das ist ein sehr gelungenes Modell mit vielen interessanten Details - ein tolles Stück für die Conventions!

Gruß
Peter

Re: Othello TXT Roboter

Verfasst: 13 Apr 2018, 00:00
von ThanksForTheFish
Ja ein sehr, sehr gelungenes Projekt.
Das würde sich ganz bestimmt auf der Nordconvention machen, noch haben wir genug Platz.

Viele Grüße, Ralf

Re: Othello TXT Roboter

Verfasst: 13 Apr 2018, 13:53
von steffalk
Tach auch!

Ich lese hier "sehr gelungen"? Das Teil ist ja der HAMMER! Die Mechanik ist ja Augenweide pur, wo man nur hinschaut! Einfach traumhaft gut gebaut. Und das alles in RoboPro zu machen... Junge, Junge!

Packst Du die Bilder noch in den Bilderpool? Und fallen bei der ausgefuchsten Mechanik nicht eine ganze Reihe ft:pedia-Beiträge über Deine Lösungen ab? Das schreit ja geradezu nach ausführlichen Beschreibungen.

Dickes, fettes Kompliment,
Stefan

Re: Othello TXT Roboter

Verfasst: 13 Apr 2018, 19:53
von geometer
Hallo Helmut,

großartig! Ich finde spielende Roboter klasse.

Ultracool sieht auch das Wenden der Centstücke aus.

Das Centwenden kann man auch viel unspektakulärer mit einer Doppelrutsche erledigen, siehe Foto. Das sollte auch mit dem Vakuumsauger und Spielsteinen funktionieren. Einfach den Spielstein horizontal über der linken Platte loslassen. Er kommt dann unten anders herum heraus. Man sollte ihn natürlich noch in ein Fach fallen lassen.

Viele Grüße

Thomas

Re: Othello TXT Roboter

Verfasst: 14 Apr 2018, 11:42
von hamlet
Hallo ft-Freunde,
Ganz vielen Dank für die Blumen, ich werd ja gleich rot (-;

An die Nord-Convention hatte ich auch schon gedacht, aber leider klappt es dieses Jahr wieder nicht.

Bilder mit Dokumentation lade ich auf jeden Fall noch in den Bilder-Pool. Den Publisher hab ich schon installiert und das Passwort ist mir auch noch eingefallen. … Jetzt muss ich "nur" noch eine schöne Auswahl treffen und die Beschreibungen hinzufügen. Dauert vielleicht noch ein wenig, wird aber geschehen.

Einen ft:pedia-Artikel über einen Teilbereich zu verfassen ist eine gute Idee. Ein Beitrag zu dem gesamten Roboter würde vermutlich zu umfangreich und speziell oder bliebe zu oberflächlich. Eventuell ein Artikel über den RoboPro-Encoder-Positionierer mit Umlauf und Spielausgleich? Das könnte von allgemeinem Interesse sein und der Umfang wäre überschaubar.
Da muss ich allerdings vorher noch ein wenig testen. Ich habe immer mal wieder den Eindruck, dass mein Roboter manchmal ein bisschen daneben liegt, aber nicht wirklich reproduzierbar. Vielleicht ein TXT-Timing Problem bei der Nullpunkt-Kalibration, irgendwas mit der erweiterten Motorsteuerung oder einfach noch ein blöder Fehler in dem SW-Spielausgleich. Evtl. sollte ich auch einfach mal die Schrauben an meinen Encodermotoren wieder anziehen und die größere Lärmentwicklung in Kauf nehmen (-;

Thomas, Deine Wende-Rutsche ist mal wieder simpel und genial, einfach schön! ("Je einfacher eine Konstruktion ist, desto genialer ist sie. Kompliziert bauen kann jeder.", Koroljow). Ich habe sie natürlich gleich ausprobiert: Funktioniert tadellos.

Tatsächlich hatte ich etwas Ähnliches als Erstes in Erwägung gezogen. Irgendwie wurde das mit Fänger und Hebemechanismus bei mir immer zu groß. Der Stein muss ja wieder auf etwa 1mm genau positioniert werden und entweder braucht man zwei Achsen beim Heber oder man muss den Wender unter den Heber schieben, oder einen schlauen Klapp-Rutsch-Mechanismus ersinnen. Aber die knapp 3cm Hub der Pneumatik-Zylinder begrenzen da den Spielraum ungemein. Ein rotierendes Rutschen-Labyrinth habe ich erst gar nicht zu Ende gedacht. Ich hatte auch überlegt den Wender außerhalb des Spielfelds zu verlegen, was aber die Wege zu lang macht. Vielleicht hab ich manche Ideen auch zu früh verworfen, da sollte man Artur Fischers Rat, es mit den Händen zu versuchen, beherzigen.
Mit der Pneumatik konnte ich mich nicht wirklich anfreunden. Von Vorteil ist die Möglichkeit kompakter Konstruktionen und dass man für einen in zwei Richtungen agierenden Aktor lediglich einen O-Ausgang des Controllers benötigt. Nachteilig ist die brachiale Gewalt in der einen Richtung und die vergleichsweise geringe Rückstellkraft der Feder in der anderen Richtung, der geringe Hub und dass lediglich zwei genau definierte Positionen sauber angefahren werden können, was insbesondere in Verbindung mit dem 5mm (?) Ansaug-Hub des Vakuumsaugers zu Überraschungen geführt hat. Hier noch ein Bild meines ersten Entwurfs: zu komplex, zu groß und extrem schwierig über vier O-Ausgänge anzusteuern.
Tja, ganz verstaubt wartend auf die Zerlegung, irgendwie traurig.
Tja, ganz verstaubt wartend auf die Zerlegung, irgendwie traurig.
DSC_6371 (Copy).jpg
DSC_6383 (Copy).jpg
Einer meiner vier ft-Magnete ist hinüber. Er funktioniert noch, scheint aber irgendwo einen Kurzschluss zu haben: Hat nur noch knapp ~15Ohm Widerstand und zieht mächtig Strom. Ich wollte gleich einen neuen erstehen, aber anscheinend ist ffm da leergefegt und in der eBucht werden die Teile ja mit Gold aufgewogen. Ich spiel gerade mit dem Gedanken den Magneten neu zu wickeln … Hat das schon jemand versucht, oder ist das ein zum Scheitern verurteiltes Unterfangen?

Beste Grüße,
Helmut

Re: Othello TXT Roboter

Verfasst: 19 Apr 2018, 17:34
von hamlet
Hallo Community,

Ich habe mir meinen "defekten" Magneten nochmal genauer anschaut und ihn mit meinen drei anderen verglichen. Da gibt's einen klitzekleinen Unterschied. Irgendein Experte hat den Kleinen nämlich frisiert, indem er die beiden Spulen parallel geschaltet hat.
Parallel Power Pimped on the left, w/o He-cooling<br />... Wer macht denn sowas?
Parallel Power Pimped on the left, w/o He-cooling
... Wer macht denn sowas?
Statt der ~46Ohm Widerstand eines meiner drei in Reihe geschalteten hat das Teil lediglich 11.5Ohm, in etwa ein Viertel, das passt. Wahrscheinlich hat ihn die Strombegrenzung des TXT gerettet, mit den vollen 9V ergäben sich da ja satte 7W Heizleistung. Jetzt hoffe ich nur, dass ich 'ne ruhige Hand habe und ihn erfolgreich wieder entschärfen kann.
Beste Grüße,
Helmut