Heute noch ein kurzes Update und ein erstes Video mit Hindernissen auf meinem grünem Foto-Karton.
Bei dieser Testfahrt finde ich hat die Bildanalyse schon ganz ordentlich funktioniert. Das braune Packpapier um die Lego Pflanzen soll die Blumenerde simulieren. Natürlich passt das Größenverhältnis nicht, so kommt es schon mal vor, dass er mit dem Heck durch die Pflanzen fährt, aber es soll ja auch nur zeigen, dass die Farberkennung im großen und ganzen schon gut funktioniert. In dem angehängten Bild ist das erste Ausweichmanöver festgehalten. Oben kann man erkennen welchen Farbraum ich zulasse, lower - upper und unten in den roten rectangles kann man sehen welche Farbe er dort erfassst hat. Darüber habe ich die Farbwerte als Farbe dargestellt, da ich mal wissen wollte wie die Farbe dann für das menschliche Auge aussieht.
View attachment OneEye-Camera.mp4
Für mich gibt es jetzt noch 2 wichtige Dinge zu tun:
a

Man kann gut erkennen dass er wenn er sich selbst im Licht steht das grün zu sehr abdunkelt. Die Bildanalyse hat ergeben, dass er in Summe das Bild zu dunkel aufnimmt. Das trifft auch für die Stops an den dunkleren grünen Stellen zu. Hierzu muss ich noch die Belichtungszeit automatisch anpassen. Beste Ergebnisse habe ich mit einer Bildhelligkeit von 160 erzielt ( brightness Angabe oben rechts im jpg)

b

Im Moment werte ich nur die unteren 3 rectangles vom Bild aus. Sind alle 3 zu wenig grün, muss er wenden ist nur das linke zu wenig grün, korrigiert er nach rechts usw. Das ganze Bild habe ich in 9 Rechtecke aufgeteilt die ich alle auswerten möchte. Damit kann man dann z.B. sinnvolle Manöver definieren. z.B. ist der Linke unten und der in der Mitte unten zu wenig grün, aber alle anderen darüber sind ausreichend grün, handelt es sich wohl eher um ein Blatt vom Baum, oder Moos im Rasen oder, oder. Wenn die ToF Sensoren kein Hindernis erkennen, könnte er so also weiter fahren und müsste nicht die Richtung welchseln.
So viel ersteinmal zu dem aktuellen Status der Bildanalyse basierend auf der PiCamera V1.3 . Ausgewertet wird das Bild mit openCV. Da ich nicht streame, sondern nur das Bild local speicher, es mir aber über einen Fask Webserver auf ein Device bereitstellen lassen kann, benötigt das Script bei einem "PiZero 2W"!! nicht einmal 5% CPU Last. Und ich finde dafür ist das Ergebnis also die Reaktionsgeschwindigkeit Top! Was meint ihr?
Gruß
Ulli