Python – Artificial Intelligence https://ars.electronica.art/ai/de Ars Electronica Festival 2017 Tue, 28 Jun 2022 13:43:24 +0000 de-DE hourly 1 https://wordpress.org/?v=4.9.6 Rubiks Cube Solver https://ars.electronica.art/ai/de/rubiks-cube-solver/ Tue, 08 Aug 2017 20:40:29 +0000 https://ars.electronica.art/ai/?p=2384

Thomas Schaschinger (AT)

Mittels Objekt- und Farberkennung einer Smartphonekamera kann mit der geschriebenen App der Rubiks Cube auf seine Komposition automatisch erfasst werden.

Anschließend wird ein sogenannter Singmaster String an eine C / C++ Programm auf einem leistungsstarken Rechner übermittelt, welcher es schafft, den Würfel optimal zu lösen, sprich, immer mit 21 90° Drehungen oder weniger. Dazu wird beim ersten Start des Programms etwa 1.5 Gigabyte an Lösungstischen generiert, welche wie in einer Baumstruktur aufeinander aufbauen, ganz am Ende natürlich der fertige Würfel. Das sind natürlich weit nicht alle Kombinationen. Trifft keine der Kombinationen auf die derzeitige Komposition des Würfels zu, muss dieser Symmetrien beinhalten, da alle ‚nicht-symmetrien‘ im Lösungsbaum abgebildet sind. Nun wird der Würfel so verdreht, dass er einer der antisymmetrischen Gruppen im Lösungsbaum entspricht und anschließend der Pfad bis zum gelösten Würfel verfolgt. Lösungsdauer: etwa 1 Sekunde – 5 Minuten.

Das Resultat des Programs, genauer gesagt die ‚Drehanweisungen‘ werden über ein Python Script an die drei Arduino Unos am Roboter gesendet, welche diese in Kommandos für die Schrittmotoren interpretieren und anschließend ausführen.

]]>