Roboter löst Zauberwürfel
Verfasst: 07 Mär 2021, 12:00
Hallo zusammen,
vor langer Zeit habe ich mal in diesem Forum Ratschläge gesucht, in der Zwischenzeit habe ich Videos angeschaut, versucht, probiert, alles abgebaut, genervt weggeräumt, und wieder von vorne begonnen.
Nun ist er fertig, der Fischertechnik Roboter, der den Zauberwürfel selbstständig scannt und löst.
Es gibt einen ähnlichen Ansatz irgendwo schon in YouTube, der mich inspiriert hat, speziell bei der Programmierung bin ich aber ganz eigene Wege gegangen.
Was waren die Probleme?
1. Die FT Kamera.
Die Bilder sind manchmal heller, manchmal dunkler, und eine Farbe ist nicht immer so, wie man es erwartet - die sogenannte Farberkenunng war tatsächlich eine der größten Herausforderungen. Am Ende habe ich es mit Referenzfarben gelöst - einmal die IST Farbe gescannt, die Werte in das Programm als Vergleich eingegeben, und ein Delta dazu berechnet.
2. Die Viertel-Drehung des Würfels
Da habe ich viele Ansätze durch, am Ende gab es keinen, der zuverlässig einen 90% Drehung macht, immer nur beinahe. Eine Folge der unsauberen Drehungen war, dass der Würfel nach mehreren Drehungen schnell verkantete und sich aus der Drehschalte verabschiedete.
Die Lösung dafür war ein professioneller Speed Cube mit Magneten, der gleicht kleine Fehler in der Drehung selbstständig aus, zudem dreht er sich viel leichtgängiger - und nebenbei beschäftigt er den Nachwuchs auch gerne bei Speedcubing
3. Die ftProInterface2013 Schnittstelle - die hat mit am meisten Kopfzerbrechen gemacht, da sie schlicht fehlerhaft war - diese Fehler auszugleichen, ist schlicht gescheitert. Der zweite Ansatz nach der langen Pause war dann möglich, da inzwischen Updates herauskamen, die die entscheidenden Fehler behoben haben - hurra ! Danke !
4. Der Lösungsalgorithmus
Da habe ich einen Ansatz im Netz gefunden (Stichwort Thistlethwaite), den galt es mit dem FT TXT zu verbinden - dafür habe ich ein C# Programm geschrieben, das mit über das ftProInterface2013 kommuniziert. Die fertige Lösung habe ich vor dem tatsächlichen Durchführen noch etwas optimiert (z.B. 2 Links + 1 Rechts = ! Rechts)
Nun läuft die Maschine nahezu fehlerfrei, in seltenen Fällen wird noch die Farbe falsch erkannt, aber das ist zum Glück selten
Was passiert? Erst werden alle 6 Seiten gescannt, dann die Lösung berechnet, dann der Würfel immer so gedreht, dass die zu drehende Seite unten ist. Dann werden die zwei oberen Schichten gehalten, und die untere gedreht - virtuell muss der Würfel im Programmspeicher dann mitgedreht werden, da "Rechts" dann nicht mehr rechts ist!
Das fertige Resultat kann man hier anschauen:
https://youtu.be/mBekeyKps7Y
Über Feedback würde ich mich sehr freuen
Michaek
vor langer Zeit habe ich mal in diesem Forum Ratschläge gesucht, in der Zwischenzeit habe ich Videos angeschaut, versucht, probiert, alles abgebaut, genervt weggeräumt, und wieder von vorne begonnen.
Nun ist er fertig, der Fischertechnik Roboter, der den Zauberwürfel selbstständig scannt und löst.
Es gibt einen ähnlichen Ansatz irgendwo schon in YouTube, der mich inspiriert hat, speziell bei der Programmierung bin ich aber ganz eigene Wege gegangen.
Was waren die Probleme?
1. Die FT Kamera.
Die Bilder sind manchmal heller, manchmal dunkler, und eine Farbe ist nicht immer so, wie man es erwartet - die sogenannte Farberkenunng war tatsächlich eine der größten Herausforderungen. Am Ende habe ich es mit Referenzfarben gelöst - einmal die IST Farbe gescannt, die Werte in das Programm als Vergleich eingegeben, und ein Delta dazu berechnet.
2. Die Viertel-Drehung des Würfels
Da habe ich viele Ansätze durch, am Ende gab es keinen, der zuverlässig einen 90% Drehung macht, immer nur beinahe. Eine Folge der unsauberen Drehungen war, dass der Würfel nach mehreren Drehungen schnell verkantete und sich aus der Drehschalte verabschiedete.
Die Lösung dafür war ein professioneller Speed Cube mit Magneten, der gleicht kleine Fehler in der Drehung selbstständig aus, zudem dreht er sich viel leichtgängiger - und nebenbei beschäftigt er den Nachwuchs auch gerne bei Speedcubing
3. Die ftProInterface2013 Schnittstelle - die hat mit am meisten Kopfzerbrechen gemacht, da sie schlicht fehlerhaft war - diese Fehler auszugleichen, ist schlicht gescheitert. Der zweite Ansatz nach der langen Pause war dann möglich, da inzwischen Updates herauskamen, die die entscheidenden Fehler behoben haben - hurra ! Danke !
4. Der Lösungsalgorithmus
Da habe ich einen Ansatz im Netz gefunden (Stichwort Thistlethwaite), den galt es mit dem FT TXT zu verbinden - dafür habe ich ein C# Programm geschrieben, das mit über das ftProInterface2013 kommuniziert. Die fertige Lösung habe ich vor dem tatsächlichen Durchführen noch etwas optimiert (z.B. 2 Links + 1 Rechts = ! Rechts)
Nun läuft die Maschine nahezu fehlerfrei, in seltenen Fällen wird noch die Farbe falsch erkannt, aber das ist zum Glück selten
Was passiert? Erst werden alle 6 Seiten gescannt, dann die Lösung berechnet, dann der Würfel immer so gedreht, dass die zu drehende Seite unten ist. Dann werden die zwei oberen Schichten gehalten, und die untere gedreht - virtuell muss der Würfel im Programmspeicher dann mitgedreht werden, da "Rechts" dann nicht mehr rechts ist!
Das fertige Resultat kann man hier anschauen:
https://youtu.be/mBekeyKps7Y
Über Feedback würde ich mich sehr freuen
Michaek