Fehler bei Farberkennung

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
ksch
Beiträge: 65
Registriert: 28 Feb 2015, 17:15
Wohnort: Ergolding

Fehler bei Farberkennung

Beitrag von ksch » 25 Jan 2026, 08:32

Hallo,
ich teste gerade STEM Coding Ulimate AI Tormodell. Hierbei stelle ich ein Problem fest, wenn ich die Farberkennung benutze. Ich erhalte in der Info leiste folgende Angabe:

Exception in thread Thread-4:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3.5/site-packages/fischertechnik/controller/txt4/Txt4Camera.py", line 155, in __update
detector.analyze_frame(frame)
File "/usr/lib/python3.5/site-packages/fischertechnik/camera/ColorDetector.py", line 37, in analyze_frame
callback(self.get_result())
File "/opt/ft/workspaces/Tor_ultimate/Tor_ultimate.py", line 101, in color_callback
if event.value.compare(hex="'#82a842'", hue_tolerance=20) == True:
File "/usr/lib/python3.5/site-packages/fischertechnik/models/Color.py", line 67, in compare
hsv = self.__hex2hsv(kwargs["hex"])
File "/usr/lib/python3.5/site-packages/fischertechnik/models/Color.py", line 100, in __hex2hsv
rgb = self.__hex2rgb(hex_str)
File "/usr/lib/python3.5/site-packages/fischertechnik/models/Color.py", line 86, in __hex2rgb
return list(tuple(int(hex_str[i:i + hlen // 3], 16) for i in range(0, hlen, hlen // 3)))
File "/usr/lib/python3.5/site-packages/fischertechnik/models/Color.py", line 86, in <genexpr>
return list(tuple(int(hex_str[i:i + hlen // 3], 16) for i in range(0, hlen, hlen // 3)))
ValueError: invalid literal for int() with base 16: "'#8"

Alles funktioniert bis auf die Farberkennung. Zur Kontolle habe ich cameraman_dedect_color geladen und bekommen den selben Ausdruck und es kommt keine Angaben auf der Anzeigen (z.B. Hex-Code).

Ich habe überall die neueste Software geladen.

Kennt jemand das Problem?

Vielen Dank im Voraus für eure Hilfe, mfg Karsten

jona2004
Beiträge: 176
Registriert: 10 Jun 2011, 22:30

Re: Fehler bei Farberkennung

Beitrag von jona2004 » 25 Jan 2026, 09:32

Guten Morgen Karsten,
Ich habe zwar weder den STEM Kasten noch einen TXT 4.0, d.h. meine Fehleranalyse kommt rein aus der Erfahrung mit Python.
Kurzfassung: Irgendwo im Modell wird die Farbe mit der verglichen werden soll als textstring eingegeben: Hier "#82a842" (grün-olive). Einfach das '#' Zeichen weglassen 82a842 und es sollte funktionieren. Wo das ist kann ich leider nicht sagen.

Langfassung:
Python tracebacks liest man am besten von hinten nach vorne.
Also ValueError: invalid literal for int() with base 16: "'#8"
Im Klartext bedeutet das: "#8" stellt keine Hexadezimalzahl dar (wegen des #). Wo kommt das her?
wenn man jetzt rückwärts liest ist da einiger Code, der den textstring in 3 Häppchen zerlegt.
irgendwann stösst man auf die Zeile:
if event.value.compare(hex="'#82a842'", hue_tolerance=20) == True:
Und hier taucht der #8 wieder auf. Dann hört es aber für mich auf.

Ich hoffe ich konnte helfen
Schönen Sonntag Joachim

ksch
Beiträge: 65
Registriert: 28 Feb 2015, 17:15
Wohnort: Ergolding

Re: Fehler bei Farberkennung

Beitrag von ksch » 25 Jan 2026, 16:58

Hallo Joachim,

vielen Dank für deine Erklärung. Das sieht im Moment sehr logisch und einfach aus das zu korrigiern. Nur Leider gebe ich in einem Fenster die Fabe in HEX ein, aber beim Speichern der Eingabe wird vom Programm her das # davor gesetzt. Ich habe ja als Kontrolle eine ft Progamm verwendet. Hier ist die Farbe schon enthalten und das # steht davor.
Ich glaube deine Angaben sind genau richtig, nur kann ich diese Änderung nicht eingeben.
Jetzt habe ich versucht im Python program, das daneben angegeben ist, das # zu löschen. Dies ist aber auch nicht möglich.

Ich hoffe jemand kann das ft-Ptogramm cameraman_detect_color mal ausprobieren.

Nochmals vielen Dank und schöne Grüße Karsten

jona2004
Beiträge: 176
Registriert: 10 Jun 2011, 22:30

Re: Fehler bei Farberkennung

Beitrag von jona2004 » 25 Jan 2026, 19:04

Hallo Karsten,
Schade. Ich habe kurz diese Zeile in Python ausprobiert

Code: Alles auswählen

list(tuple(int(hex_str[i:i + hlen // 3], 16) for i in range(0, hlen, hlen // 3)))
Das Ergebnis ist genau wie erwartet. Wenn hex_str das # Zeichen enthält kommt die gleiche Fehlermeldung. Ist der string ohne '#' kommt eine Liste mit 3 Elemente raus.
Wenn im ft programm das '#' enthalten ist, kann es sein, dass der weiter Ablauf etwas anders ist?
Hier wird ja in der
event.value.compare - Funktion der wert mit '#' aufgerufen. Diese Funktion is ein callback vermutlich aufgrund der Eingabe des farbstrings.
Dann wird eine innere funktion __hex2hsv aufgerufen
die wiederum __hex2rgb(hexstr) aufruft in der es dann kracht.
Für mich etwas komisch wenn die daten als rgb eingegeben werden und dann über hsv wieder in rbg gewandelt werden.
Das kann man ja alles nachvollziehen. Gibt es in der Eingabemaske noch einen kleinen Schalter hsv/rgb oder so was ähnliches?
Grüße Joachim

Benutzeravatar
fishfriend
Beiträge: 2409
Registriert: 26 Nov 2010, 11:45

Re: Fehler bei Farberkennung

Beitrag von fishfriend » 26 Jan 2026, 14:35

Hallo...
Ich bin mir nicht sicher.
Kann es sein, dass die INT Variable zu klein ist, um den Wert aufzunehmen?

Möglich ist auch, dass der Farbwert zusammengesetzt wird und das # als Zeichen gesehen wird und nicht als Zahl.

Ist der Fehler mit dem originalem Programm oder ist da was geändert?
Mit freundlichen Grüßen
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

ksch
Beiträge: 65
Registriert: 28 Feb 2015, 17:15
Wohnort: Ergolding

Re: Fehler bei Farberkennung

Beitrag von ksch » 26 Jan 2026, 15:00

Hallo,

ich habe als Kontrolle das Originalprogramm (cameraman_detect_color) von ft heruntergeladen und nicht geändert. Dabei erhalte ich die selbe Angabe wie bei meinem Programm. Das Beispiei ist ja recht simpel und benötig nur die Kamera und das Programm. Ich verwende bei Robo Pro und TXT4.0 die aktuellen Programme.

Viele Grüße Karsten

ksch
Beiträge: 65
Registriert: 28 Feb 2015, 17:15
Wohnort: Ergolding

Re: Fehler bei Farberkennung

Beitrag von ksch » 26 Jan 2026, 15:18

Hallo Joachim,

danke für die Info. Ich habe als Eingabemaske ein farbiges Rechteck und eine Angabe für die zu suchende Farbe z.B. #00FF00. Diese überschreibe ich mit meine Farbe z.B. 00FFFF und drücke dann sichern. Bei Wiederaufruf steht dann als neue Vorgabe #00FFFF. Als man kann hier normal kein Fehler machen. Aber wie geschrieben habe ich ein Original ft-Programm ohne Änderung verwendet und hier erhalte ich die selbe Angabe.

Viel Grüße Karsten

Benutzeravatar
fishfriend
Beiträge: 2409
Registriert: 26 Nov 2010, 11:45

Re: Fehler bei Farberkennung

Beitrag von fishfriend » 26 Jan 2026, 18:42

Hallo...
OK, noch mal zum mitmeißeln.
Benutzt du die STEM oder Robo Pro Coding?
Das Beispiel von dem Ultimate hast du selber geschrieben oder runtergeladen? (ich hab keine Quelle dazu gefunden)

Wenn ich dem camaraman Programm die Farbe ändere wird das ja in das Pythonprogramm übernommen.
Steht denn bei dir auch der richtige Wert oder sind dann dort zwei mal Gartenzaun?
Ich hatte bei der Eingabe keine Probleme. Ich hab es allerdings noch nicht auf dem TXT 4.0 ausprobiert.
Mit freundlichen Grüßen
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

Antworten