-
-
Erfahrener Benutzer
Roboter Experte
Die CMUcams egal ob CMUcam1 oder 2 verfolgen die Idee, das auch ein einfacher relativ schwacher Mikrocontroller um Bildverarbeitungsaufgaben ergänzt werden kann, indem nicht die Videobilder in Echtzeit übertragen werden, sondern nur die Ergebnisse einer übertragenen Aufgabe. Dazu muss die Bildverarbeitung in der Kamera selbst stattfinden.
Zu diesem Zweck haben die Kameramodule sehr schnelle 8-Bit Controller von Ubicom (früher Scenix), die mit 75MHz getaktet eine Leistung von ca. 75MIPS (Millionen Operationen pro Sekunde) erreichen. Bei der CMUcam2 wird ein SX52 verwendet, der Controller hat 4K-Worte Flash EEPROM und 262 byte SRAM. Das ist jeweils doppelt so viel, wie beim bei der CMUcam1 verwendeten SX28.
Die Basisfunktion bei den CMUcams ist das Colortracking, vom Host wird eine Farbe in einem Befehl beschrieben (RGB, jeweils min- und max-Wert).
Der Befehl
:TC 120 255 0 30 0 30
beschreibt also z.B. ein rotes Objekt mit einer gewissen Toleranz. Daraufhin wird vom SX52 das Bild analysiert und abhängig von der Auflösung und Fenstergröße auf der RS232 bis zu 50 mal pro Sekunde ein Paket mit einem Tracking-Rechteck ausgegeben welches bei der CMUcam2 z.B. so aussieht:
T 23 86 18 44 27 119 6 16
Das bedeutet, es wurde obige Farbe gefunden, die Eckpunkte des Rechtecks sind: 18 44 27 119 (x1 y1 x2 y2), der Schwerpunkt liegt bei 23 86 (mx my). Die letzten Parameter (6 16) sind ein Maß für die Anzahl der getrackten Pixel und dem Grad der Übereinstimmung (Pixel/Area) der Farbe.
Gerade die Schwerpunktparameter lassen sich sehr gut für Nachführungsaufgaben verwenden. Auf Wunsch können vom SX52 beim TC-Befehl auch 2 Servos automatisch angesteuert werden (X- und Y-Richtung). Insgesamt sind bis 5 Servos handelbar (werden über Befehl gestellt).
Abschließend noch kurz bemerkt, dass der SX52 der CMUcam2 im Gegensatz zum SX28 der CMUcam1 nicht direkt mit den Kameradaten arbeitet sondern die Bilder in einem sehr schnellen Video-Speicher (Framebuffer) zwischengespeichert werden.
Das ermöglicht zusätzliche Funktionen wie Bewegungserkennung oder spezielle Auswertungen und ein konsistentes Bild bei der Übertragung (Framedump).
Zusammenfassend also, die CMUcams sind nicht dafür gedacht, Bilder in Echtzeit zu übertragen. Es gibt einen Satz von Bildverarbeitungsfunktionen, die Befehle und die Ergebnisse werden als Pakete in ASCII über die serielle Schnittstelle mit bis zu 115.200bps gesendet.
Hoffe, ich konnte die Ausgangsfrage damit hinreichend beantworten,
Viele Grüße
Jörg
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen