Zauberwürfel mit 100% Fischertechnik lösen

Fussballroboter, Autofabrik...
Modellideas &- presentation - Soccerrobot, Carfactory...
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 30 Mai 2016, 18:13

Dieser Roboter arbeitet komplett automatisch. Er liest erst mit der Kamera den Zauberwürfel ein. Berechnet dann die Lösung und dreht ihn schließlich in den Lösungszustand:

https://www.youtube.com/watch?v=Maiqnr2TZks
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von hamlet » 30 Mai 2016, 21:42

Hi MoG,
Schickes Teil! Ich bin beeindruckt. Alles auf einer 500er Platte und mit farbiger Grafik auf dem TXT.
Ich hühner hier gerade mit einem Othello Roboter rum, der mir die Spielsteine durch die Gegend wirft anstatt sie umzudrehen.
Dabei hab ich allerdings noch alles mit RoboPro realisiert, ... also ein monochromes Primitiv-Ascii-Art-Spielfeld auf dem TXT Bildschirm.
Begänne ich jetzt damit, würde ich die die ftc-Firmware verwenden. Tja, da muss ich jetzt durch, aber beim nächsten Projekt ...
Hast Du die Rubik-Sourcen auf GitHub gestellt?
Beste Grüße,
Helmut

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 30 Mai 2016, 22:20

Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1791
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von steffalk » 30 Mai 2016, 22:54

Tach auch!

Klasse! Kompakt, reizvolle Mechanik, super Software. Chapeau!

Gruß,
Stefan

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von DirkW » 31 Mai 2016, 19:51

Hallo MasterOfGizmo,

von mir ganz klar "5 Sterne +". Kompliment zu deinem Projekt.:D

Du zeigst, was alles mit dem TXT möglich ist, wenn man sich reinkniet. :geek:
Sehr schön finde ich auch, das du gleich das Modell dazu mitlieferst.

Beste Grüße
Dirk

Hompi
Beiträge: 40
Registriert: 01 Nov 2014, 22:23

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von Hompi » 01 Jun 2016, 22:31

Hallo MasterOfGizmo,

das ist ja Wahnsinn, Kompliment für diese Umsetzung!!!!!
Das ist 1. Liga......

Hast Du das auch schon mal mit RoboPro und dem "Standard- TXT" versucht. Das RoboPro Programm würde mich interessieren.

Gruss Jürgen

Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von H.A.R.R.Y. » 02 Jun 2016, 08:29

Hallo zusammen,

perfekt.

Grüße
H.A.R.R.Y.
[42] SURVIVE - or die trying

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 02 Jun 2016, 12:18

Hompi hat geschrieben: Hast Du das auch schon mal mit RoboPro und dem "Standard- TXT" versucht. Das RoboPro Programm würde mich interessieren.
Hab' ich nicht. Laut den Kollegen von FT hat der RoboPro-Entwickler das schon einmal gemacht. Ich bin aber skeptisch. Der eigentliche Lösungsalgorithmus läuft aus Performance-Gründen als natives C-Programm und nicht als Python-Programm. Und bei der Bildauswertung trickse ich auch sehr viel rum, weil die Kamera einen nicht abschaltbaren Weissabgleich macht. Ich denke auch nicht, dass das in RoboPro ginge. Aber da kenne ich mich nicht aus, RoboPro habe ich noch nie echt benutzt.

Der Weissabgleich ist übrigens auch der Grund, warum das ein Würfel aus weissem Plastik ist. So hat die Kamera wenigstens etwas weiss im Bild, um sich dran zu orientieren. Bei einem schwarzen Würfel ist die Fehlabgleich so stark, dass nichtmal ich selbst auf dem Kamerabild rot und orange bzw weiss und gelb auseinanderhalten kann ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1791
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von steffalk » 02 Jun 2016, 12:54

Tach auch!

Das "geht nicht mit RoboPro" muss man aber relativieren. Schau mal Marmacs Ur-Cube-Solver mit dem RoboInt und nur RoboPro (und nur Fotozellen, nix Kamera): http://www.ftcommunity.de/categories.php?cat_id=585

Gruß,
Stefan

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 02 Jun 2016, 15:30

steffalk hat geschrieben: Das "geht nicht mit RoboPro" muss man aber relativieren. Schau mal Marmacs Ur-Cube-Solver mit dem RoboInt und nur RoboPro (und nur Fotozellen, nix Kamera): http://www.ftcommunity.de/categories.php?cat_id=585
Ich meinte auch nur die Kamera, die man in RoboPro m.E. nicht auf die Weise nutzen könnte. Und ja, stimmt, mit Fotosensoren, die gut gegen Fremdlicht abgeschirmt sind, dürfte es auch mit RoboPro gehen, wenn die Helligkeitsunterschiede zwischen den Farben groß genug sind.

Einen Lösungsalgorithmus in RoboPro würde ich ja gerne mal sehen. Wenn man den von dem ableitet, was normale Menschen auch nutzen, dann ist das sicher machbar. Aber die Zahl der Züge, die man dann benötigt wächst sehr schnell. Mit den einfachsten Lösungen, wie ich sie z.B. selbst manuell benutze ist man irgendwo in der Größenordung von 200 Zügen. Verfahren, wie sie menschliche Speed-Cuber verwenden kommen auf ca. 60 Züge. So einen hatte ich erst drin. Der 2-Phase-Algorithmus von Herbert Kociemba schafft es in ca. 20 Zügen. Den nutze ich jetzt. Aber dafür braucht ein C-Programm zwei Sekunden auf dem TXT. Auch das wird unter RoboPro kaum gehen. Mit Python dauert es schon ca. 10x länger.

Da die Roboter ja nicht alle Achsen frei drehen können steigt die Zahl der Züge schnell wieder. Wenn man bei meinem Roboter die echten Einzelschritte (also die drei möglichen Vierteldrehungen, die er beherrscht) einzeln zählt, dann komme ich in der Regel auf knappe 100 Züge. Bei ca. einer Sekunde, die ich pro Zug brauche ergeben sich gut 1,5 Minuten zzgl. der zeit zum Erkennen und Lösen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

thkais
Beiträge: 381
Registriert: 31 Okt 2010, 21:45

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von thkais » 02 Jun 2016, 16:17

Moin,

@MasterOfGizmo: Die Lösung von Marmac aus 2005(!) beinhaltet einen Lösungsalgorithmus in RoboPro geschrieben. Der RoboPro Code liegt auch auf der ftcommunity: http://www.ftcommunity.de/data/download ... ftcs33.zip - viel Spaß beim Lesen ;)
IIRC benutzt er den üblichen "menschlichen" Algorithmus.
Man muss sich mal auf der Zunge zergehen lassen, dass dieser Lösungsalgorithmus im Download auf dem Robo Interface lief - Video gibt's hier: https://www.youtube.com/watch?v=-mZ0CXcTozY
Gruß
Thomas

Torsten
Beiträge: 308
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von Torsten » 02 Jun 2016, 20:47

Hallo MasterOfGizmo,

erstmal mein höchstes Lob für Dein tolles Modell ! :-)
MasterOfGizmo hat geschrieben: Und bei der Bildauswertung trickse ich auch sehr viel rum, weil die Kamera einen nicht abschaltbaren Weissabgleich macht. Ich denke auch nicht, dass das in RoboPro ginge. Aber da kenne ich mich nicht aus, RoboPro habe ich noch nie echt benutzt.

Der Weissabgleich ist übrigens auch der Grund, warum das ein Würfel aus weissem Plastik ist. So hat die Kamera wenigstens etwas weiss im Bild, um sich dran zu orientieren. Bei einem schwarzen Würfel ist die Fehlabgleich so stark, dass nichtmal ich selbst auf dem Kamerabild rot und orange bzw weiss und gelb auseinanderhalten kann ...
ja, ich kenne das Problem auch. Es gibt jedoch einen Workaround den automatischen Weissabgleich zu umgehen, falls man nur eine geringe Auflösung (160x120) benötigt: wenn man den v4l2-Treiber der Kamera in den YUYV-Modus (anstelle des JPEG-Modus) umschaltet, dann kann man manuell den Hue-Wert des Farbmodells verändern ohne dass der automatische Weissabgleich dazwischenfunkt. Da die (unkomprimierten) YUYV-Bilder jedoch wesentlich mehr Speicherplatz benötigen (ca. 10x mehr als JPEG-Bilder), ist nur eine Auflösung von 160x120 machbar. Bei höheren Auflösungen in YUYV ist die Datenrate der Kamera zu gering und sie liefert nur noch Teilbilder.
Ausserdem habe ich festgestellt, dass es mindestens 2 verschiedene Modelle der fischertechnik Kamera gibt, die auch leicht unterschiedliche Fähigkeiten haben: die eine Variante unterstützt die Bildwiederholraten 60, 30, 25, 20, 15, 10 und 5 fps, die andere Variante unterstützt nur 30, 20, 15 und 10 fps. Besonders im YUYV Modus ist eine niedrige Bildrate wichtig, damit die Kamera sich nicht "verschluckt".
Die möglichen Kamera-Modi kann man sich der TXT Kommandozeile anschauen mit dem Kommando:

v4l2-ctl --list-formats-ext

Viele Grüße
Torsten

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 03 Jun 2016, 10:13

Torsten hat geschrieben: von 160x120 machbar. Bei höheren Auflösungen in YUYV ist die Datenrate der Kamera zu gering und sie liefert nur noch Teilbilder.
Mit Teilbilder meinst Du das hier, oder: https://github.com/ftCommunity/ftcommunity-TXT/issues/2

Tatsächlich habe ich nach wie vor Probleme, Bilder > 320x240 von der Kamera zu bekommen. Interessanterweise auch am Raspberry-Pi.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Torsten
Beiträge: 308
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von Torsten » 03 Jun 2016, 11:24

MasterOfGizmo hat geschrieben: Mit Teilbilder meinst Du das hier, oder: https://github.com/ftCommunity/ftcommunity-TXT/issues/2

Tatsächlich habe ich nach wie vor Probleme, Bilder > 320x240 von der Kamera zu bekommen. Interessanterweise auch am Raspberry-Pi.
Ja, das meine ich. Es ist aber durchaus möglich von der ft Kamera Bilder in einer Auflösung von bis zu 1280x720 korrekt zu bekommen. Ein Beispiel dafür findest Du im ftDigiCam-Projekt. Im Sourcecode der ftrobopytools (https://github.com/ftrobopy/ftrobopy/bl ... opytools.c) wird auch einfach nur die v4l2 Library zur Ansteuerung der Kamera verwendet. Im ftDigiCam.py Beispiel (https://github.com/ftrobopy/ftrobopy/bl ... DigiCam.py) kannst Du sehen, wie die verschiedenen Auflösungen genutzt werden können: 320x240, 15 fps für die Live Vorschau und die Schärfemessung und dann 1280x720, 5 fps für das Einzelbild, das dann abgespeichert wird. Leider steht die 5 fps Bildrate wohl nicht bei allen ft Kamera zur Verfügung. 640x480 funktionieren aber auch bei 10 fps, wenn ich mich recht erinnere.
Das Problem tritt übrigens unabhängig davon auf, ob man die Video-Buffer im MMAP oder USERPTR Modus verwendet. Ich bin mir deshalb nicht sicher, ob es sich hier wirklich um ein reines DMA Problem handelt. Ich tippe eher auf ein Memory-Locking Problem im Kamera-Treiber.

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 03 Jun 2016, 12:15

Torsten hat geschrieben:
MasterOfGizmo hat geschrieben:Ein Beispiel dafür findest Du im ftDigiCam-Projekt
Ich kenne doch Deine Kamera! Und mir war schmerzhaft bewusst, dass Du da die volle Auflösung bekommst.

Es kann auch gut sein, dass es da noch einen Unterschied zwischen Community-Firmware und Originalfirmware gibt, die einen Unterschied ausmacht. Aber die Tatsache, dass ich auf dem R-Pi die gleichen (in der Tat sogar etwas größere) Probleme sehe spricht auch gegen ein Problem mit dem DMA/USB auf dem Sitara.

Keine Ahnung, was genau da los ist. Aber für meine Anwendungen reicht's.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 19 Okt 2016, 21:39

Hier das Verdrahtungsschema des Cube-Solvers: http://harbaum.org/till/cube_schema.pdf
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

qincym
Beiträge: 193
Registriert: 31 Okt 2010, 22:03
Wohnort: Erzhausen
Kontaktdaten:

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von qincym » 29 Okt 2016, 15:10

Hallo MasterOfGizmo,

könntest Du bitte ein paar Bilder in der ftcommunity bereit stellen, die einen möglichen Nachbau Deines ganz hervorragenden Cube-Solver erleichtern? Ich und bestimmt noch ein paar weitere ft-Fans danken es Dir!

Viele Grüße
VolkerJames

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

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von MasterOfGizmo » 30 Okt 2016, 12:36

Bilder sind nun unter:

https://ftcommunity.de/categories.php?cat_id=3329

Falls ein Detail fehlt bitte melden. Da ich das auch selbst nutzen würde wenn ich den später nochmal neu bauen will habe ich auch ein Interesse, dass das vollständig ist.

Ein Detail ist etwas knifflig zu erklären: Die Kamera ist leicht gedreht. Das liegt daran, dass der Würfel ja etwas lose im Drehteller liegt. Und wenn er trotzdem genau 90° gedreht werden soll während der Grabber die mittlere Eben festhält, dann muss man halt ein paar Grad "zu weit" drehen, damit man trotz des Spielraums auf 90° kommt.

Das hat dann aber zur Folge, dass der Würfel etwas zu weit gedreht wird, wenn er nicht festgehalten wird, Dadurch steht er nach einer einfachen Drehung des Drehteillers ein klein wenig zu weit gedreht. Und damit die Kamera trotzdem ein gerades Bild bekommt muss sie etwas gredreht sein.

In der App gibt es im Menü übrigens einen Menüpunkt "Calibration". Durch den kann man sehen, was die Farberkennung sieht. Übliche Probleme wie jenes, dass z.B. orange als rot erkannt wird weil das Umgebungslicht zu rötlich ist kann man dort gut erkennen.

Außerdem sollte der Würfel aus weissem Plastik sein, weil die automatische Farbkorrektur der Kamera sonst ziemlich spinnt, wenn im Bild überhaupt kein Weiss ist. Man kann auch einen weissen Zettel neben dem Würfel ins Bild halten. Aber das ist irgendwie unelegant ...
Zuletzt geändert von MasterOfGizmo am 31 Okt 2016, 10:14, insgesamt 2-mal geändert.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

qincym
Beiträge: 193
Registriert: 31 Okt 2010, 22:03
Wohnort: Erzhausen
Kontaktdaten:

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von qincym » 31 Okt 2016, 09:50

Hallo MasterOfGizmo,

vielen Dank für die Bereitstellung der vielen, detailreichen Bilder zum Nachbau Deines gelungenen Modells. Verschiedene ft-Fans haben sich ja schon bei den Bildern bedankt. Ob noch weitere Bilder benötigt werden, bemerkt man erst beim Nachbau. Bis dahin verbleibe ich

Mit vielen Grüßen
Volker-James

Hompi
Beiträge: 40
Registriert: 01 Nov 2014, 22:23

Re: Zauberwürfel mit 100% Fischertechnik lösen

Beitrag von Hompi » 06 Nov 2016, 22:33

Hallo MasterofGizmo,

erst einmal vielen Dank für die detaillierten Informationen zu dem interessanten Modell. Ich habe das Modell heute nachgebaut und die ersten Versuche vorgenommen. Der Einscannvorgang bricht nach 4-5 Würfelseiten ab. Es erscheint dann folgende Fehlermeldung:

No valid cube found

Beim Kalibrieren werden die Farben aber alle korrekt erkannt. Hast Du eventuell eine Idee oder einen Tipp für mich?

Besten Dank und Grüße
Jürgen

Antworten