PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche Kamera für RN-Control



Mikrobi
22.11.2004, 20:15
Hallo! Ich habe vor mein Roboter mit einer Kamera auszustatten, jetzt meine Frage! Ich möchte den Roboter autonom gestalten, was bedeuten soll das das Video-Signal gleich im Robi ausgewertet werden soll, ist das mit einer RN-Control möglich wenn ja, welche Kamera kann mir empfohlen werden?
Ich habe bei http://www.roboter-teile.de/Shop/pd-2008300163.htm?categoryId=2
eine Kamera entdeckt , mit I²C Bus, diese Kamera sollte ja mit RN-Control steuerbar sein. Oder?


Danke schön im vorraus!

Frank
22.11.2004, 20:25
Ja, die Kamera ist zum Auswerten von Bildern gedacht. Das sollte funktionieren.
Vielleicht kann Jörg etwas mehr dazu sagen.

Mikrobi
22.11.2004, 20:38
Fein Danke! Da will ich mal auf die Antwort von Jörg warten?

Joerg
23.11.2004, 08:05
Hallo Frank und Mikrobi,

habe den Thread gerade durch Zufall gefunden, da ich je nach Zeit mal mehr, mal weniger hier mitlese.

Die C3088 Platine ist ein montierter Omnivision OV6620 mit Optik und ein paar passiven Bauelementen.
Dahinter verbirgt sich ein 1/4inch CMOS-Farb-Kameramodul mit digitaler Schnittstelle (integrierter ADC) und einer Auflösung bis zu 352x288 und 60fps (progressive).

Die Ansteuerung des Moduls ist ein wenig kompliziert, da es eine Vielzahl von möglichen Betriebsarten gibt (4-,8-,16bit Data), die alle ein unterschiedliches Handling erfordern.
Prinzipiell gibt es 2 8bit-Datenbusse (Y und UV), die aber auch als gemeinsamer 16bit-Bus betrieben werden können. Dabei werden die Helligkeits- und Farbinformationen separat oder gemultiplext über die Datenbusse übertragen. Zur Synchronisation stehen Sync-Ausgänge zur Verfügung.
Zur Steuerung (setzen der Register, wie color saturation, brightness, contrast, white balance, exposure time, gain) findet I2C (400kHz, hier als SCCB bezeichnet) Verwendung.
Allerdings kann man über I2C keine Bilder auslesen!

Die Preisfrage ist nun eigentlich, ob man mit dem 16MHz Atmel AVR sinnvoll mit der Cam arbeiten kann. Bei den CMUcams wird ja nicht ohne Grund mit einem 75MIPS Controller gearbeitet.

Bei Beschränkung auf Schwarz/Weiß Betrieb (nur Y-Bus) sollte das eigentlich möglich sein. Allerdings ist der AVR dann auch für keine andere Aufgabe mehr zu gebrauchen. Kommt ja auch drauf an, was man im AVR mit den Bildern anstellen möchte.
Ne komplette Farbbildverarbeitung halte ich für zu komplex für den AVR, es sei denn, man schafft mit einem Framebuffer (z.B. Averlogic AL422B) eine zeitliche Entkopplung zwischen Cam und Controller.

HTH und Viele Grüße
Jörg

Mikrobi
23.11.2004, 08:43
Vielen Dank Joerg für die Infos, dann werde ich wohl doch ne bessere nehmen, thx !!

Joerg
23.11.2004, 09:15
Hi Mikrobi,


Vielen Dank Joerg für die Infos, dann werde ich wohl doch ne bessere nehmen, thx !!

naja was heißt ne bessere, damit implizierst du das die C3088 schlecht sei.

Du könntest vielleicht eine für deinen Zweck besser geeignete finden, wobei ich über deine Anwendung zu wenig weiß um dir raten zu können.

Fakt ist, dass du über I2C kaum Bewegtbilddaten bekommen kannst, einfach weil über 100kHz oder auch 400kHz keine Bewegtbilder drüber passen.
Rechne doch mal selbst, Auflösung: 352 x 288 x 8bit x 3Farben = 304128byte. Bei 400kHz kommen max. 40kByte/s (Brutto) über die Schnittstelle. Obiges Bild würde dann in ca. 7,5s übertragen werden.

Guck dir mal die CMUcams an, da wird der Flaschenhals umgangen, indem die Bildverarbeitung direkt auf der Cam gemacht wird.

Eine Alternative wäre noch eine Webcam, TV-Karte und PC (Mini-ITX o.ä.). Dann könntest du verfügbare Bildverarbeitungs-Bibliotheken einsetzen (z.B. Intel Open-CV). Über einen Port (seriell oder parallel) gehen die fertigen Befehle dann zum Controllerboard.

Achso, Gameboycam wäre auch noch ne Alternative.

Viele Grüße
Jörg

Mikrobi
23.11.2004, 15:02
Hallo Jörg! SO dachte ich mir das das ich dann die CMUCam nehme, meinte nicht besser im Sinne von, diese Kamera ist schlecht sondern die besser zu meinen Anforderungen passt! ;-) :D

Grüsse
Mikrobi

Mikrobi
23.11.2004, 15:48
Nochmal ich! Die Kamera soll im Prinzip dafür verwendet werden, einen Ball und ein Tor und dann auch noch das richtige ;-) zu erkennen, damit der Robi dann entsprechend reagieren kann! Und die Auswertung des Bildes soll nicht an einem stationären Computer sondern direkt im Robi erfolgen!

Grüsse Mikrobi

Joerg
23.11.2004, 17:56
Hi Mikrobi,

alles klaro.


Die Kamera soll im Prinzip dafür verwendet werden, einen Ball und ein Tor und dann auch noch das richtige zu erkennen, damit der Robi dann entsprechend reagieren kann! Und die Auswertung des Bildes soll nicht an einem stationären Computer sondern direkt im Robi erfolgen!

Das geht mit der CMUcam relativ unkompliziert durch Verwendung der Farb-Trackingfunktion. Dafür muss sich das Tor jedoch durch einen Farbkontrast vom Hintergrund abheben.
Eine Alternative ist der sogenannte Line-Mode. Hier erzeugt die Cam aus den Farb-Tracking-Vorgaben gewissermaßen ein Rohbild (Binärbild) und überträgt dieses über die serielle Schnittstelle. Der Hostprozessor kann jetzt das übertragene Muster analysieren und entsprechend umsetzen.
Im Linemode ist für die Cam ein eigener leistungsstarker Controller sinnvoll, im Normalmode (Farbtracking) ist für die Parameterübergabe und das Ergebnishandling kein eigener Controller notwendig.

Die Anbindung erfolgt über RS-232 nach Möglichkeit mit 115.200 bps. Niedrigere Baudraten sind möglich (über Jumper wählbar) doch eher für schwache Controller gedacht. Es wird letztendlich die gesamte Cam ausgebremst.

Wenn noch weitere Fragen sind -> nur her damit ;)

Viele Grüße
Jörg

23.11.2004, 20:59
Hallo Jörg! das klingt alles sehr interessant, wenn du sagst ein eigener LEISTUNGSTARKER Controller, meinst du damit einen anderen als rn oder c control? oder kann man die rn control dafür nutzen?

viele Grüsse
Mikrobi

Mikrobi
24.11.2004, 06:58
der thread davor ist von mikrobi!
ich war nicht ingeloggt!

Joerg
24.11.2004, 07:36
Hallo Mikrobi,


wenn du sagst ein eigener LEISTUNGSTARKER Controller, meinst du damit einen anderen als rn oder c control? oder kann man die rn control dafür nutzen?

Naja der AVR ATMega mit 16MHz ist ja nun nicht unbedingt der schwächste Controller, aber darunter würde ich ehrlich gesagt nicht anfangen.
LineMode mit der C-Control1 macht überhaupt keinen Sinn.
Evtl. wäre die CC2 dafür geeignet, meine Versuche vor geraumer Zeit mit der CMUcam1 scheiterten an einer vernünftigen seriellen Übertragungsrate. Max. ging 38400bps und das kann man bei LineMode auch vergessen.

Aber man kann ja mit der CMUcam2 auch erst mal versuchen mit den Bordmitteln auszukommen, bevor man sich auf den LineMode stürzt. Und dafür reicht auch ein schwächerer Controller.
Um die Auswertung der Kameradaten zu erleichtern, kann man die Kommunikation in einen Binärmode schalten. Dabei kommen die Ergebnisdaten in einem festen Byteraster (binär) zurück und brauchen nicht umständlich geparst zu werden, was wiederum den Controller entlastet. Ich habe das meistens so gemacht, dass die Cam im RawMode 1 (RM 1) betrieben wird. Dabei werden die Befehle in ASCII zur Cam gesendet (erleichtert debugging) und kommen im Binärformat (fester Byterahmen) zurrück. Um die Synchronisation zu vereinfachen beginnt jeder Frame mit 255 (0xff).

Viele Grüße
Jörg

Mikrobi
24.11.2004, 08:40
Hallo Jörg! Das klingt alles sehr vielversprechend, hatte sowieso vor minimal den AVR ATMega32 zu verwenden und nicht auf C-Controll umzusteigen. Ich werde mich darum kümmern die Kamera zu bekommen. Wenn ich sie habe werde ich mich nochmal vertrauensvoll an dich wenden um die Konfiguration und Inbetriebnahme abzusprechen, wenn das möglich ist!

Ich bedanke mich erstmal recht herzlich bei dir für diese grossartige und unkomplizierte Hilfe.

Viele Grüsse

Mikrobi