Roboter löst Zauberwürfel

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
jomapapa
Beiträge: 9
Registriert: 24 Apr 2016, 22:33

Roboter löst Zauberwürfel

Beitrag von jomapapa » 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

Benutzeravatar
Kali-Mero
Beiträge: 595
Registriert: 21 Nov 2017, 12:28
Wohnort: Karlsruhe
Kontaktdaten:

Re: Roboter löst Zauberwürfel

Beitrag von Kali-Mero » 07 Mär 2021, 14:43

Hi,

einfach begeistert! Super gemacht und was ich bei solchen Projekten am meisten mag: wenn sich jemand durchbeisst, bis es klappt. Da ich selbst keine Programmierleuchte bin, habe ich den Cubesolver einfach nachgebaut, was wegen der Kamera (Weissabgleich) auch ein bisschen Fingerspitzengefühl erforfert hat, bis es geklappt hat.

Darum meinen Respekt für diese „eigene“ Lösung.

Grüßle
Der Kali

DirkW
Moderator
Beiträge: 546
Registriert: 10 Nov 2014, 16:16

Re: Roboter löst Zauberwürfel

Beitrag von DirkW » 07 Mär 2021, 15:09

Hallo Michael,

Kompliment auch von meiner Seite. :D

Das ist eine sehr gute Leistung, zumal du nicht nur die Mechanik, sondern auch die Programmierung
gelöst hast. Das zeigt, dran bleiben lohnt. Zumal du ja auch viel Erfahrung dadurch mitnimmst.

Eine Frage habe ich.
Was ist die ftProInterface2013 Schnittstelle? Kannst du die näher beschreiben? Ist das ein Treiber
von fischertechnik?

Viele Grüße
Dirk

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Roboter löst Zauberwürfel

Beitrag von MasterOfGizmo » 07 Mär 2021, 15:55

Sehr schön. Es kann nicht genug Cube-Solver geben.

Mit dem Interface ist wohl das hier gemeint:

https://github.com/fischertechnik/txt_d ... reaCom.cpp
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Baudobrigus
Beiträge: 214
Registriert: 03 Sep 2011, 22:54
Wohnort: Holderbergerhof

Re: Roboter löst Zauberwürfel

Beitrag von Baudobrigus » 07 Mär 2021, 19:11

Hallo Michael, hallo MasterOfGizmo,
hallo in die Runde,

ganz lieben Dank für das YouTube-Video, das mich hoffen lässt, meine Kiddies und Enkel-Kiddies hoffentlich zeitnah mit einer Fischertechnik-Lösung erfreuen zu können.
Leider war mir das Nachbauen mit 100% FT-Komponenten bislang nicht möglich, weil ich nirgends einen Lösungsansatz hierfür ausfindig machen konnte. Weder eine Bauanleitung für die Hardware noch ein TXT-fähiges Programm vermochte ich im Netz zu finden. Oder habe ich da etwas übersehen? Es geht mir persönlich darum, ausschließlich mit den am Markt verfügbaren FT-Komponenten (TXT, FT-Motoren, FT-Elektronik-Komponenten) einen Lösungsansatz zu finden. Als Vorbild dient mir der bereits seit vielen Jahren verfügbare, sehr gut dokumentierte und veröffentlichte Ansatz mit LEGO-Mindstorms und zuletzt auch LEGO-SPIKE-PRIME.
Was spricht dagegen, z.B. diesen wunderschönen Ansatz hier: https://www.youtube.com/watch?v=Maiqnr2TZks von dir, MasterOfGizmo zum Nachbauen verfügbar zu machen, falls er sich zum Nachbauen unter o.g. Voraussetzungen eignen würde?

Ich hoffe auf eure weiterführenden positiven Anregungen, damit ich neben meinen beiden gebauten LEGO-Cube-Solvern meinen Kindern und Enkelkindern auch eine gebaute FT-Lösung präsentieren kann, damit sie diese eigenständig nachbauen können. Schließlich soll Fischertechnik in unserer Familie künftig verdientermaßen eine größere Rolle als bisher spielen.

Liebe Grüße
Eckehart
Grüße vom Holderbergerhof, 45 Gehminuten zur Festung Ehrenbreitstein in Koblenz

tintenfisch
Beiträge: 472
Registriert: 03 Jan 2018, 22:04

Re: Roboter löst Zauberwürfel

Beitrag von tintenfisch » 07 Mär 2021, 19:35

Hallo Eckehart,
Baudobrigus hat geschrieben:
07 Mär 2021, 19:11
[...]
Was spricht dagegen, z.B. diesen wunderschönen Ansatz hier: https://www.youtube.com/watch?v=Maiqnr2TZks von dir, MasterOfGizmo zum Nachbauen verfügbar zu machen, falls er sich zum Nachbauen unter o.g. Voraussetzungen eignen würde?
Das war alles mal da https://github.com/harbaum/cfw-apps/com ... d1c77391c4

Bzw. ist immer noch da, wenn man die vorherige Revision aus dem Repository lädt.

Ein Bug in der cfw (genauer in der OpenCV Bibliothek, die innerhalb der cfw ohne ausreichende Tests aktualisiert wurde) verhindert das korrekte Ausführen der App. Leider wurde danach die OpenCV Bibliothek nicht entweder auf die ältere Version zurückgesetzt oder auf die neuere Version aktualisiert, so dass Till dann die Segel streichen mußte, weil es keinen Sinn ergibt, eine Lösung anzubieten, die nicht (mehr) funktioniert.

Ich könnte mir vorstellen, dass die App mit dem TX-Pi funktioniert, da wir eine andere OpenCV Version verwenden, jedoch wäre das evtl. ein Ausschlusskriterium, wenn man den Anspruch hat, dass die Hardware nativ von ft stammen sollte.

Viele Grüße
Lars


Edit: PS: MoG: Da wir nun zusätzliche App-Stores haben, die unabhängig von der cfw nur für TX-Pi zuständig sind, wäre es evtl. eine Überlegung wert, die Cube-App dort zur Verfügung zu stellen?

Benutzeravatar
Baudobrigus
Beiträge: 214
Registriert: 03 Sep 2011, 22:54
Wohnort: Holderbergerhof

Re: Roboter löst Zauberwürfel

Beitrag von Baudobrigus » 07 Mär 2021, 21:02

Hallo Lars,
danke für deine Hinweise und Tipps. Der 100%-Fischertechnik-Ansatz liegt in der Struktur unserer großen Familie. Wir sind allesamt Lego- und Gott sei Dank auch zunehmend wieder Fischertechnik-geprägt, gleichwohl nicht alle IT-versierte Tüftler. Da orientieren wir uns gerne am vermeintlich ´schwächsten´ Glied unserer begeisterungsfähigen Sippe, den Nicht-Technikern :D (sie mögen es mir verzeihen). Und die wollen einfach nur nachbauen, was ja auch eine schöne Zielsetzung ist...
Liebe Grüße
Eckehart
Grüße vom Holderbergerhof, 45 Gehminuten zur Festung Ehrenbreitstein in Koblenz

tintenfisch
Beiträge: 472
Registriert: 03 Jan 2018, 22:04

Re: Roboter löst Zauberwürfel

Beitrag von tintenfisch » 08 Mär 2021, 08:27

Hallo Eckehart,

mein Vorschlag, "nimm den TX-Pi" war auch nciht ganz durchdacht, wahrscheinlich scheitert es an den I/O Ports. Das TX-Pi-HAT bietet vermutlich zu wenig Ausgänge, so dass das nicht ohne weiteres funktioniert. Man müßte die App eh umschreiben, somit ist der Vorschlag an MoG, die App in einem TX-Pi-Store zu veröffentlichen, auch nicht ohne weiteres möglich, weil man die App eh überarbeiten und auf einen Controller, der die I/O Ports zur Verfügung stellt, anpassen müßte.

Viele Grüße
Lars

jomapapa
Beiträge: 9
Registriert: 24 Apr 2016, 22:33

Re: Roboter löst Zauberwürfel

Beitrag von jomapapa » 08 Mär 2021, 21:28

Danke für die netten Antworten!

Ja, der Verweis auf die Schnittstelle ist richtig.

Im Prinzip ist es ja 100% FT, es sind keine Fremdkomponenten dabei - lediglich die Steuerung lass ich den PC machen, da mir das RoboPro zu eingeschränkt war, und ich beruflich ähnliches mache :)

Badenser
Beiträge: 10
Registriert: 22 Okt 2020, 14:12
Wohnort: Lörrach

Re: Roboter löst Zauberwürfel

Beitrag von Badenser » 09 Mär 2021, 10:12

Hallo,

der Meinung von MasterOfGizmo schließe ich mich an, es ist schön wenn sich im Fischertechnik Cube Umfeld was tut..

Da ich das Thema sehr interessant finde habe ich den genialen Cube-Solver von MasterOfGizmo nachgebaut und betreibe ihn mit einem TXT-Controller mit der aktuellen original FT Firmware. Als Programm zur Lösung habe ich das von Markus Mack (MarMac) auf die Maschine angepasst.
Beim Testen tat sich das leidige Problem der Farberkennung auf, speziell die Blau-Grün und Rot-Orange Unterscheidung.
Ich habe es gelöst in dem ich Hardwareseitig den Cube-Solver etwas "verunstaltet" habe:
- Eine indirekte Beleuchtung mit Papierschirm als Reflektor. Indirekt, da bei einer direkten Beleuchtung die Lampen als helle Flecke auf dem Würfel reflektieren.
- Zwei weiße Blenden neben dem Würfel, eine schwenkbar um den Würgel besser entnehmen zu können.
Auch in dem entsprechenden Teil des Steuerprogramms wurde viel (Test-)Zeit investiert.
Das Ergebnis ist aber das das Ding die Farben bei jedem (außer direktem Sonnen-) Licht richtig erkennt.

Der Kompressor läuft über eine vom TXT gesteuerte Druckregelung, dazu musste aber ein "nicht FT" Teil als Drucksensor verbaut werden. Der Kompressor selbst ist ein Nachbau, ich schone meine Originale in der Testphase.
Dateianhänge
Cubelöser_1_006.jpg
Cubelöser_1_006.jpg (146.87 KiB) 3119 mal betrachtet
Cubelöser_1_005.jpg
Cubelöser_1_005.jpg (146.57 KiB) 3119 mal betrachtet
Cubelöser_1_003.jpg
Cubelöser_1_003.jpg (171.42 KiB) 3119 mal betrachtet
Cubelöser_1_002.jpg
Cubelöser_1_002.jpg (145.53 KiB) 3119 mal betrachtet
Cubelöser_1_001.jpg
Cubelöser_1_001.jpg (151.2 KiB) 3119 mal betrachtet

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Roboter löst Zauberwürfel

Beitrag von MasterOfGizmo » 09 Mär 2021, 11:30

Ihr dürft meine Original-Bauanleitung gerne weiter verteilen, speziell, wenn ihr von der CFW softwareseitig unabhängig seid.

Das habe ich nur von Netz genommen, weil es einige Fälle gab, wo die Leute mit den Nachbau begonnen haben und es dann an Softwareeinsatz scheiterte und der Frust gross war. Das hat sich dann in eher unangenehmen E-Mails niedergeschlagen, was ich bei einem Hobby dann lieber vermeide. Daher verteile ich das Dokument nicht mehr. Aber ihr dürft das gerne tun.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Antworten