CFW: Rubiks solver

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

CFW: Rubiks solver

Beitrag von MasterOfGizmo » 12 Nov 2016, 20:30

Hi,

Ich mache mal einen neuen Thread zum Rubiks cube Solver auf. Wie wäre es, alle Threads zur Communuty-Firmware mit CFW: zu beginnen? Dann wäre der Kontext immer gleich klar.

Die Erkennung scheint ja doch sehr Kamera abhängig zu sein. Ich habe aber halt nur die eine Kamera. Ich werde mal sehen, dass ich die Grenzwerte der Farberkennung einstellbar mache. Dann sollte man das an die eigene Kamera anpassen können und auch an anders gefärbte Würfel.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: CFW: Rubiks solver

Beitrag von Peterholland » 13 Nov 2016, 10:00

Hallo MasterOfGizmo,

Alle Threads zur Communuty-Firmware mit CFW beginnen wäre möglich.
Aber es gibt mit dem Community-Firmware doch viel mehr möglichkeiten und Apps.
Dan ist eine neue Thread wie dieser CFW: Rubiks solver einfacher.
Es ist mir aber egal.......

Ich hoffe dass es für die Cubesolver ein gute Löschung kommt.

Heute beim Tageslicht (1), und beim Tageslicht + 50W Halogeen (2), und beim Tagelicht + LED (3), hat es mit 2 verschiedende Cubes leider nicht geschafft.
Die Cube soll doch völlig symmetrisch (mit der Camera-App) in der Mitte richtig gefocust sein ?
(Ich nehme an nicht an den linken Bild-Seite)

Gruss,

Peter Poederoyen NL
Peter Poederoyen NL

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

Re: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 13 Nov 2016, 14:26

Fokus ist recht egal. Die Farbflaechen sind ja recht gross. Tatsächlich lasse ich sogar eine Gaussfilter (Blur) über das Bild laufen. Ich mache es also quasi mit Absicht etwas unscharf, um bei den Farben Mittelwerte zu erzeugen.

Aber ich werde mal sehen, dass ich die Farberkennung einstellbar mache. Dauert aber ein paar Tage.
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: CFW: Rubiks solver

Beitrag von Torsten » 13 Nov 2016, 16:48

elektrolutz hat geschrieben: das Thema "Probleme mit der Farberkennung" mit der TXT-Cam wurde hier im Forum schon mehrfach angesprochen. Dabei wurde auch z.B. der automatische Weißabgleich der Cam hinterfragt.
Der automatische Weissabgleich der ft Kamera läßt sich abschalten und manuell einstellen, wenn man die Kamera in den YUYV-Modus (anstelle des default JPEG-Modus) umschaltet. Nachteil des YUYV-Modus sind allerdings die um den Faktor 10 größeren Bilddaten (dafür hat man dann aber auch keine JPEG-Artefakte). Man kann dann leider nur noch mit kleinen Auflösungen und niedrigen Bildwiederholraten arbeiten.

Die automatische Helligkeitseinstellung kann leider auch im YUYV-Modus nicht abgeschaltet werden.
elektrolutz hat geschrieben: Ich vermute, dass für die ft-Cam keine Beschreibung der Funktionsmöglichkeiten zur Verfügung steht.
Man kann die Fähigkeiten der ft-Kamera unter Linux über den v4l2-Treiber abfragen und bekommt dann eine lange Liste von unterstützten Auflösungen und Bildwiederholraten in den entsprechenden Modi (JPEG und YUYV).

Torsten

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

Re: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 13 Nov 2016, 17:16

Ich habe es damals nicht geschafft, die Kamera in den yuv-Modus zu schalten. Entweder habe ich es falsch gemacht oder meine Kamera kann es nicht. Es gibt ja angeblich relativ viele verschiedene Hardware-Versionen.
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: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 14 Nov 2016, 20:49

Für die Akten: Mein Würfel stammt aus einem weissen Set mit je einem 2x2,3x3,4x4 und 5x5-Würfel von Amazon. Hersteller war "Monkon". Das gibt's zur Zeit leider nur in Schwarz.

Aber mein Angebot steht: Wenn ihr mir einen Würfel schickt, dann schaue ich, dass ich das kurfristig an den anpasse. Das alles einstellbar zu machen dauert etwas länger, weil ich da da erst eine ganze Benutzeroberfläche für schreiben muss.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: CFW: Rubiks solver

Beitrag von Peterholland » 15 Nov 2016, 19:35

Hallo MasterOfGizmo,

Welche weisse Würfel gleicht am meisten deiner 3x3 "Monkon"-Cube ?
http://www.kubuswinkel.nl/kubussen.html?color=129
Die öffnungen gleichen grösser ?!.........
https://www.ftcommunity.de/details.php? ... 44697#col3

Ich habe die NL-Lieferant per email gefragt ob die 3x3 "Monkon"-Cube noch lieferbar ist.


Gruss,

Peter Poederoyen NL
Peter Poederoyen NL

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

Re: CFW: Rubiks solver

Beitrag von Hompi » 15 Nov 2016, 21:06

Hallo MoG,

vielen Dank für Dein Angebot mit dem Einsenden des Cube. Ich finde es super das Du eine "Einstellseite" für die Farbwerte einfügen willst. Ich warte gern auf das Ergebnis. Ansonsten denke ich, dass der Aufwand mit dem Einsenden und der individuellen Anpassung der verschiedenen Würfel einen nicht unerheblichen Mehraufwand für Dich bedeuten würde. Und je nach Umgebungsbeleuchtung könnten dann die Werte wahrscheinlich wieder variieren.

Mein Würfel ist der hier, sieht Deinem optisch zumindest sehr ähnlich:
https://www.amazon.de/gp/product/B0039K ... UTF8&psc=1

Gruss Jürgen

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

Re: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 15 Nov 2016, 21:07

Ich habe die Farben nun einstellbar gemacht. So sieht das nun aus:
Bild

Man kann die Farbgrenzen der fünf Würfelfarben nun verstellen. Dazu wählt man oben eines der Dreiecke aus. Das ausgewählte Dreieck wird dann weiss und man kann es mit den beiden Pfeilen links und rechts verschieben. Damit ändert man, welche Farbwerte als welche Würfelfarbe interpretiert werden. Mit etwas Glück schafft ihr es damit.

Das wird noch nicht gespeichert, ihr müsst es also jedesmal neu einstellen, wenn ihr die App startet. Aber das mache ich sobald mir einer von Euch bestätigt, dass ihm diese Funktion so hilft und der Roboter damit funktioniert.
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: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 15 Nov 2016, 21:09

Achja: Die Erkennung von weiss kann man bisher nicht beeinflussen. Weiss ist einfach alles, das eine Farbsättigung unter einem bestimmten Level hat. Aber mit weiss habe ich auch kaum Probleme. Ich hatte wie ihr die größten Probleme mit rot/orange/gelb, weil die im Farbraum wirklich sehr nah beieinander liegen.

Und ja, das sollte auch bei unterschiedlichen Kameras helfen und bei schlechten/farbigen Lichtverhältnissen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: CFW: Rubiks solver

Beitrag von Peterholland » 15 Nov 2016, 21:22

Hallo MoG,

Die Farb-Einstellung ist eine schöne Loschung.
Ist dieser Farb-Einstellung bei einer Weissen Würfel (wie bei dir und Jürgen) effectiver als einer schwarze Würfel wie meiner ?

Gruss,

Peter Poederoyen NL
Peter Poederoyen NL

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

Re: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 15 Nov 2016, 21:36

Meine Kamera erzeugt bei einem schwarzen Wuerfel sehr unterschiedliche Ergebnisse je nachdem welche Farben gerade auf dem Wuerfel sichtbar sind. Ich denke sie braucht etwas weiss im Bild, damit der automatische Weissabgleich der Kamera eine Referenz hat. Warten wir mal aufs Feedback der anderen.

Edit: Habe gerade meinen schwarzen Würfel nochmal probiert. Den erkennt er nicht richtig und ich kann es auch nicht einstellen, weil dort die Farbwerte von rot und orange praktisch gleich sind. Orange hat lediglich eine größere Farbsättigung. Aber das testet meine Farberkennung bisher nicht. Vielleicht muss ich mal generell über die Farberkennung nachdenken. Oder einer von Euch :-)
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: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 16 Nov 2016, 12:49

Da mein Würefel ja recht zuverlässig funktioniert ist meine Motivation, die ganze Farberkennung umzukrempeln recht gering. Aber wenn da jemand mit was besserem aufwartet übernehme ich das gerne in die App.

Eine echt Kalibrierung sähe m.E: so aus: Man dreht den Würfel so, dass auf einer Seite alle Farben sichtbar sind und nimmt ein Bild von dem. Man maskiert die Übergänge zwischen den Farben und den Rand aus, so dass man nur die farbigen Felder behält und betrachtet (das mache ich bereits so). Aber dann sollte man m.E. alle Pixel im Farbraum betrachten. Dort müsste man dann sechs lokale Maxima finden können. Das wären die jeweiligen Mittelwerte der sechs Würfelfarben. Der große Vorteil gegenüber der aktuellen Lösung wäre, dass sie alle Farbkomponenten vol einbezieht. Mein aktueller Weg verlässt sich zur Unterscheidung der fünf bunten Farben nur auf den reinen Farbwert und lässt z.B. die Helligkeit und Farbsättigung außen vor. Genau das scheint aber bei einem meiner Würfel den Unterschied zwischen rot und orange auszumachen.

Nach dieser Kalibrierung würde man jedem Pixel die während der Kalibrierung festgestellten Farbe zuordnen, die im Farbraum räumlich am nächsten an der per Kamera erkannten Farbe liegt. Mit so einer Kalibrierung müsste fast jeder Würfel gut zu erkennen sein und die Kalibrierung wäre weitgehend automatisch.

Aber wie gesagt: Ich habe einen Würfel der geht und da ist die Motivation gering, mit diesem Teil nochmal von vorne anzufangen ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: CFW: Rubiks solver

Beitrag von Peterholland » 16 Nov 2016, 14:30

Hallo MasterOfGizimo,

Ich habe gestern abent eine weisse Cube bestelt wie Jürgen.
Wenn ich dieser empfange hoffe ich dass es nur mit eine Farb-Einstellung schon reicht.

Gruss,

Peter Poederoyen NL
Peter Poederoyen NL

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: CFW: Rubiks solver

Beitrag von Peterholland » 17 Nov 2016, 20:45

Hallo MasterOfGizimo,

Ich habe heute die neue weisse Cube empfangen wie Jürgen.
https://www.amazon.de/gp/product/B0039K ... UTF8&psc=1

Jetzt funktioniert es !!! :D :D :D ......mit 50W Halogeen Abends. Die Richtung der Halogen-Lampe ist aber wichtig.

Morgen versuche es beim Tageslicht.

Gruss,

Peter Poederoyen NL
Peter Poederoyen NL

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

Re: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 18 Nov 2016, 09:31

Ja prima! Das ist doch ein Anfang. Hat Dir die Möglichkeit der Farbkalibrierung etwas genützt?
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: CFW: Rubiks solver

Beitrag von Peterholland » 19 Nov 2016, 14:01

Hallo MasterOfGizmo + Jürgen / Hompi

Heute beim Tageslicht ohne und mit Sonnenschein reicht bei mir die standard-Einstellung nicht.
Es gibt dann immer die Meldung “No valid cube found”.

Beim Tageslicht + 50W Halogen reicht die standard-Einstellung auch nicht.
Beim Calibration ist zeigt sich die Einstralungswinkel der Halogen-Lampe aber wichtig.
Es gleicht mit eine Halogen-Lampe eine bessere Farb-herkennung möglich zu sein

Die standard-Einstellung gleicht o.k.: habe ich an alle Seiten heute geprufft ohne änderungen.
Eine bessere Calibration als der standard-Einstellung bleibt schwierig. Ich schaffe es nicht.

Schade dass est heute nicht funktioniert.

Gruss,

Peter Peoderoyen NL
Peter Poederoyen NL

Benutzeravatar
Peterholland
Beiträge: 324
Registriert: 01 Nov 2010, 22:28
Wohnort: Poederoyen NL

Re: CFW: Rubiks solver

Beitrag von Peterholland » 19 Nov 2016, 18:28

Hallo MasterOfGizmo + Jürgen / Hompi

Ich habe Heute-Abend ohne Tageslicht die Standard Einstellung wieder versucht wie Do 17. Nov 2016, 21:45 (wenn es funktionierte)
Leider funktioniert es jetzt nicht.
Es gibt immer die Meldung “No valid cube found”.

Beim Calibration zeigt sich die Einstralungswinkel der Halogen-Lampe sehr wichtig.
Eine bessere Calibration als der standard-Einstellung bleibt schwierig.
Die Farb-herkennung bei die standart-Einstellung + einer guter Einstralungswinkel gleicht o.k. ohne fehler: habe ich an alle Seiten geprufft.
Leider doch mit die Meldung “No valid cube found”.

Gruss,

Peter Peoderoyen NL
Peter Poederoyen NL

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

Re: CFW: Rubiks solver

Beitrag von Hompi » 19 Nov 2016, 22:50

Hallo zusammen,

nach einigen Versuchen hat es nun funktioniert! Ich habe es mit verschiedenen Umgebungsbedingungen getestet. Allerdings habe ich zusätzlich rechts und links neben der Kamera zwei ft-Lampen ohne Kappe montiert und auf den Würfel ausgerichtet. Bevor ich das Programm gestartet habe, habe ich immer mit der Farbkalibrieung die Werte so angepasst, dass über das Display des TXT die unterschiedlichen Farben gut dargestellt wurden. Dann das Programm gestartet und die Bearbeitung hat funktioniert. Den Kalibrierungsvorgang muss ich allerdings nach jedem Ein- und Ausschalten neu vornehmen. Vielleicht gibt es hier noch eine Möglichkeit zur Abspeicherung :)

Gruss Jürgen

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

Re: CFW: Rubiks solver

Beitrag von MasterOfGizmo » 20 Nov 2016, 08:51

Sehr cool. Mache ich schnellstens ...
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Antworten