Hab mal ne Frage, WAS bzw. WIE willst Du eigentlich das Bild verarbeiten bzw. welche Schlüsse daraus ziehen? Ich frage weil ich auch überlege irgenwann mal mein RP6 mit einer cam auszurüsten. Ich tendiere allerdings z.Z. zu einer minicam mit möglichst wenig Pixeln/Farben und einer Bildauswertung auf dem RP&. Aber auch da stellt sich die Frage, WAS will man auswerten.

Ich kam auf die Idee, 2 Laserpointer am RP6 zu befestigen, einer starr, einer über ein Servo drehbar bzw. mit Gelenk angebracht kippbar, so das also letztlich 2 Lichtpunkte entstehen - einer davon regulierbar "schielend". Aus der Entfernung zwischen den Lichtpunkten und dem dazu nötigen Winkel lassen sich Informationen über die Entfernung zum Hindernis gewinnen. Ich weis nur noch nicht ob die Stellgenauigkeit von Servos ausreicht um das so zu nutzen.

Man braucht dazu im Bild aber nur 2 helle/rote Punkte auf der Horizontalen finden und den Schielwinkel einberechnen - und das wird der M128 in jedem Fall, der M32 vermutlich auch können. Auch ein Treppenstufensensor wäre über ein vertikal kippbaren Laser machbar da der Laserpunkt an der Treppenkante im Bild "verschwindet". Allerdings ist das schon richtig Aufwand, 3 Laserpunkte im Blick zu behalten und daraus in einem bewegten System Entscheidungen abzuleiten. Eine kompliziertere Berechnung wie Gesichts/Hindernis/Symbolerkennung kann man allerdings wohl nur auf dem PC... bevor ich mir da aber Gedanken zum RP6 mache, würde ich vielleicht erst mal mit einer Webcam auf dem PC was proggen. Später die Webcam Bilder an den PC bzw. die daraus resultierenden Steuerbefehle Befehle an den RP6 zu bekommen ist dann sicher ein kleineres Problem. Da gibts genug Funkmodems. Dazu taugt dann am besten wohl cameraseitig eine fertig aufgebaute WLAN Webcam denn auch die UART-Funkmodems sind nicht sonderlich schnell und einer Datenflut wie von einer Webcam nicht gewachsen. Und grade bei Cams ohne Motorzoom bist Du bei der Verarbeitung auf viele Pixel und gute Bildqualität/Linsen im System angewiesen. Die Pixelflut ist aber eben auch wieder hinderlich denn letztlich brichst du das ganze Bild auf eine 0/1 Information runter. Also fahren/nicht fahren z.b... das ist quasi ein Paradoxon. Das ist auch so selbst wenn du jedes Pixel der Cam mit einem mehrstufigen neuronalen Netz an einen Neuroneneingang verknüpfst und per "lerntraining" auf einem Supercomputer letztlich nur die Entscheidung fällst: "Fahren oder nicht fahren.... das ist hier die Frage...."

Äm.. das ist jetzt nicht bei Shakespeare geklaut auch wenns so aussieht

Aber was will ich mit dem Post sagen...? Nun, vielleicht das man sich klar sein sollte was man erwartet, dann ist auch die Umsetzung meist einfacher.
Der Mensch blendet z.B. 90% der ständig eintreffenden Bildinfo aus und reagiert nur auf Bewegung und "Hotpoints of Interest"...weil er mit der Bilderflut zu schnell ermüdet und sich sonst laufend mit Infos beschäftigt, die nicht im Mittelpunkt des Interesses liegen. Auf einem Recher ist das mit nutzlosem verbrennen von Maschinenzyklen in Delayloops und Verbrauch von RAM für wertlose Infos gleichzusetzen und fängt schon bei den Datenformaten wie BMP/JPG an. Wir Menschen neigen dazu, Bildverarbeitung so zu programmieren als sei der Robby auf Koks...oder bei Falschfarben LSD... das dabei nichts rum kommt sieht man an jedem Kokser... Aber da sind wir dann schon wieder bei der KI... und so..

Du kannst ja mal versuchsweise eine Pattern Rekognition für die Webcam schreiben.. sprich du hältst der Webcam eine Zeitung vor ... also händisch.. nicht als starrer Versuchsaufbau... und der PC "liest"/erkennt daraus Texte.... die Technik dafür ist mit ocr wohl bekannt... Als Spionagebot/"Marsrover" das Chaos unterm Bett zu erforschen oder um ferngesteuert die Katze zu jagen ist so eine Wlancam schon fein... aber für eine "Auswertung" ohne Mensch ist hier weniger mehr. Das muss man bedenken wenn man über eine Cam auf einem Bot redet. Da Bildsensoren und die meist notwendigen AD-Konverter rauschen, kann man aber auch sehr gut Cams mit mehr Pixeln und ohne Artificial Retina verwenden um benachbarte Pixel (direkt beim Einlesen?) zusammen zu fassen damit das Bild kontrastreicher wird. Dies reduziert dann auch die tatsächlich auszuwertende Datenmenge erheblich. Legt man das Prinzip vom Point of Interest zu Grunde, langt im Printip ein 8 byte langes Array um den POI in der Bildlage zu definieren, man braucht dann nur noch den POI idetifizieren (Ball), z.B. über Lichtemission/Farberkennung. "folge dem roten Ball" .... hellster Punkt im Bild (Laser) usw... Hat man 2 POIs.. warum auch immer, reicht das Array nachwievor... man muss halt nur 2 POIs "finden"... als Linienfolger (siehe unten) könnte auch mehr (nah,mitte,fern) definieren, also im Bild unten mitte oben... und so die Linie quasi vorhersagen (perspektive rausrechnen), radien berechnen, usw. Damit kommt der RP6 dann auch garantiert schnell um jede Kurve... Das System ist vielseitig... und man braucht nicht immer gleich megapixel und gigaram...

Was eine korrekt dimensionierte Bildverarbeitung (ohne Laserservos) tatsächlich leisten kann - mit einem S/W-Bildsensor aus einem Spielzeug mit "nur" 128x128 Pixeln - zeigt z.B. folgende Geschichte:
http://www.atmel.com/dyn/resources/p...3_robotics.pdf Ein weiteres Beispiel ist der wohl bekannte Linienfolger mit Cam auf Servo hier im Forum. Eine Lasergestützte Verarbeitung sah ich mit einem horrizontal gestreuten Laser, der seine umgebung "scannt" - was aber schon wieder recht lange dauerte und für Rollbetrieb so kaum in Frage kommt.
http://www.youtube.com/watch?v=xifGyUPa0IE
Ein "vorausplanender" Linienfolger oder Fußballrobby wäre auch mit einer cam denkbar. lageänderungen des Bot bei Unebenheiten im Boden kann man so auch erkennen (Thema Panzerkanone stabil halten), scheint aber alles nicht so einfach zu sein, man liest relativ selten über erfolgreiche Nutzungen von cams.

LG RolfD