Cube-C wenn ein Roboter den Zauberwürfel löst

Es wurde ein Roboter gebaut, der einen Rubiks Cube löst. Sechs Schrittmotoren, die jeweils mechanisch fest mit einem der sechs Mittel-Cubies verbunden sind, drehen jeweils eine der Seiten des Würfels um 90° im Uhrzeigersinn, um 180° oder um 90° gegen den Uhrzeigersinn. Die Ausgangssituation des Würfels wird von zwei Web-Cams erfasst, die einander auf einer Würfeldiagonale gegenüberstehen und je drei Seiten des Würfels erfassen. Die Farbe jeder der 3x3 Flächen einer Seite wird aus den Farbwerten eines 5x5 Pixel großen, genau platzierten Quadrats in einem Frame dieser Kameras bestimmt.
Ein Computer errechnet einen möglichst schnellen Lösungsweg. Das Ziel ist eine geringe Anzahl von Würfeldrehungen bei zugleich geringem Optimierungsaufwand der Berechnungen. Zudem gibt es eine vor der Laufzeit erstellte Datenbank, die nach der Idee des Zwei-Phasen-Algorithmus aufgebaut ist und aus der in der Laufzeit nur noch entsprechende Permutationen gesucht werden müssen.
Zunächst wird von jedem Cubie die Orientierung gerichtet. Anschließend in Phase 2 werden diese dann nur noch richtig positioniert. Der Computer überträgt die Lösung als Zeichenkette an den Arduino, die über mehrere Motorshields die Schrittmotoren ansteuern. In dem seriellen Stream-String ist abgelegt, welche Seiten in welcher Reihenfolge und um wie viel Grad gedreht werden.
Jedoch ist ein Roboter, der einen Zauberwürfel löst, nicht unbedingt etwas Neues. Der Reiz an einem
solchen Projekt ist, herauszufinden, wie das ganze technisch funktioniert, da es dazu kaum öffentliche Dokumentationen gibt. Durch YouTube etc. wusste ich aber, dass es theoretisch möglich ist. Bei einem solchen Projekt geht es darum, an seine Grenzen zu gehen, indem man versucht, einen riesigen Problembereich so zu zerteilen, dass man eine nahezu perfekte Lösung hat, ohne stundenlang rechnen zu müssen. Die Herangehensweise erschien vom ersten Moment an als ein nicht zu bewältigendes Problem einer mechanischen Umsetzung. Dementsprechend sind die Hauptziele dieser Jugend-forscht-Arbeit die Konstruktion eines Roboters und die Entwicklung eines geeigneten Algorithmus/einer Umsetzung der Idee eines bereits vorhandenen Algorithmus.
Das selbst gestellte Ziel war, eine zufällig erstellte Würfel-Permutation innerhalb von zehn Sekunden lösen zu können, eventuell sogar den menschlichen Weltrekord zu brechen. Hierbei geht (momentan) fast alle Zeit für das Drehen des Würfels verloren, das Errechnen geht meist innerhalb einer Sekunde.
Name: Niklas Johne
Fachgebiet: Technik
Regionalwettbewerb: München Nord