Objekterkennung mit CmuCam v5 (Pixy-Cam) mit Matlab/Simulink und EV3: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:


Da der EV3 mit dem Farbsensor jedoch nicht mit der LEGO Mindstorms Programmierumgebung, sondern mit Matlab/Simulink programmiert werden soll, ist eine tiefergehende Betrachtung des Sensors notwendig.  
Da der EV3 mit dem Farbsensor jedoch nicht mit der LEGO Mindstorms Programmierumgebung, sondern mit Matlab/Simulink programmiert werden soll, ist eine tiefergehende Betrachtung des Sensors notwendig.  


[[Datei:Sensor.png|350px|thumb|right|Abbildung 2: Der in der Pixy-Cam verbaute Farbsensor [6]]]
[[Datei:Sensor.png|350px|thumb|right|Abbildung 2: Der in der Pixy-Cam verbaute Farbsensor [6]]]
Zeile 38: Zeile 37:
* Bildbereich: 5415 microm x 2430 microm  
* Bildbereich: 5415 microm x 2430 microm  
* CFA: RGB Bayer
* CFA: RGB Bayer
<br/>
<br/>
<br/>


Zeile 45: Zeile 43:
In Abbildung 2 ist ein schematischer Aufbau des Innenlebens des verbauten Sensors OV9715 dargestellt. Man kann drei Hauptteile ausmachen: Den Kern und den Prozessor des Bildsensors und die Bildausgangsschnittstelle.
In Abbildung 2 ist ein schematischer Aufbau des Innenlebens des verbauten Sensors OV9715 dargestellt. Man kann drei Hauptteile ausmachen: Den Kern und den Prozessor des Bildsensors und die Bildausgangsschnittstelle.


Der Kern des Bildsensors gliedert sich wiederum in mehrere Funktionsblöcke. Am Anfang der Kette steht zunächst der Bildbereich mit einer Größe von 5415 microm x 2430 microm. Der Bildbereich wird in Zeilen und Spalten gegliedert, wobei sich viele einzelne Farbpunkte (Pixel) ergeben.  
Der Kern des Bildsensors gliedert sich wiederum in mehrere Funktionsblöcke. Am Anfang der Kette steht zunächst der Bildbereich mit einer Größe von 5415 microm x 2430 microm. Der Bildbereich wird in Zeilen und Spalten gegliedert, wobei sich viele einzelne Farbpunkte (Pixel) ergeben.


== '''Signalvorverarbeitung''' ==  
== '''Signalvorverarbeitung''' ==  

Version vom 16. Juni 2017, 14:23 Uhr

Autoren: Gesina Kira Tigger
Betreuer: Prof. Schneider


Die Aufgabe des Projekts "Objekterkennung mit CmuCam v5 (Pixy-Cam) mit Matlab/Simulink und EV3" ist einen Roboter (LEGO Mindstorms EV3) mit Hilfe eines Farbsensors (Pixy-Cam) kurz vor einem in dem Weg stehenden Gegenstandes anhalten zu lassen. Es wird in sehr vereinfachter Form versucht ein Fahrerassistenzsystem, dass eine Notfallbremsung durchführt, nachzubilden. Bearbeitet wurde das Projekt von Gesina Kira Tigger in dem Modul "Signalverarbeitende Systeme" des Masterstudiengangs "Business and Systems Engineering" unter Prof. Schneider als Betreuer.


Zunächst wird der vorgegebene Sensor mit seinen Funktionen und Übergabeparameter beschrieben. Des Weiteren folgen Ausführungen zur Signalvorverarbeitung, Analog-Digital-Umsetzer und Bussystem. Abschließend wird die digitale Signalverarbeitung und die Darstellung der Ergebnisse thematisiert.


Auswahl eines Primärsensors

Pixy ist ein schneller Farbsensor für Robotertechnik und ähnliche Anwendungen. Der Sensor kann mit Hilfe eines Tasters angelernt werden, sodass Pixy in der Lage ist Objekte zu erkennen und ihnen zu folgen. Sie kann mehreren hundert Objekten gleichzeitig folgen und stellt nur Daten zur Verfügung, die von Interesse sind. Pixy LEGO benutzt spezifische Firmware, die die Sprache des LEGO Sensor Protokolls verwendet. Zusätzlich beinhaltet der Lieferumfang ein spezielles Kabel, um den LEGO Mindstorms Brick mit der Pixy zu verbinden (siehe Abbildung 1(Bild von Pixy mit Brick)). Des Weiteren werden Software Blöcke für die LEGO Mindstorms Programmierumgebung zur Verfügung gestellt, sodass Pixy ein Teil dieser Umgebung wird. [4]


Da der EV3 mit dem Farbsensor jedoch nicht mit der LEGO Mindstorms Programmierumgebung, sondern mit Matlab/Simulink programmiert werden soll, ist eine tiefergehende Betrachtung des Sensors notwendig.

Abbildung 2: Der in der Pixy-Cam verbaute Farbsensor [6]


In der Pixy ist der Video-Bild-Sensor Omnivision OV9715 (1/4") verbaut. Dieser Sensor hat die folgenden relevanten Spezifikationen: [6]

  • Arraygröße: 1280x800
  • Energieversorgung:
    • Hauptversorgung: 1.5 VDC +- 5% (eingebauter Regler)
    • Analog: 3.0 - 3.6 V
    • I/O: 1.7 - 3.6 V
  • Leistung:
    • Aktiv: 110 mW
    • Stand-by: 50 microA
  • Ausgabeformat: 10-bit RGB-Rohdaten
  • Linsengröße: 1/4"
  • Objektiv Kopfstrahlwinkel: 0°
  • Eingangstaktfrequenz: 6-27 MHz
  • Abtastmodus: Progressiv
  • Maximale Bildübertragungsrate:
    • WXGA (1280x800): 30 fps
    • 640x400: 60 fps
  • Bildbereich: 5415 microm x 2430 microm
  • CFA: RGB Bayer


Der 1/4-Zoll-Sensor bietet Full-Frame-, Sub-Sampling- oder Fenster-10-Bit-Bilder im Roh-RGB-Format über den digitalen Video-Port. Bildqualität, Formatierung und Ausgabedatenübertragung können je nach Anwendung verändert werden. Außerdem verfügt er über erweiterte Bildverarbeitungsfunktionen, einschließlich Belichtungssteuerung, Verstärkungsregelung, Weißabgleich, Objektivkorrektur und defekte Pixelkorrektur, die über die serielle Kamera-Steuerbus-Schnittstelle (SCCB) programmierbar sind. Für die Speicherung verfügt es über einen einmal programmierbaren (OTP) Speicher. [6]

In Abbildung 2 ist ein schematischer Aufbau des Innenlebens des verbauten Sensors OV9715 dargestellt. Man kann drei Hauptteile ausmachen: Den Kern und den Prozessor des Bildsensors und die Bildausgangsschnittstelle.

Der Kern des Bildsensors gliedert sich wiederum in mehrere Funktionsblöcke. Am Anfang der Kette steht zunächst der Bildbereich mit einer Größe von 5415 microm x 2430 microm. Der Bildbereich wird in Zeilen und Spalten gegliedert, wobei sich viele einzelne Farbpunkte (Pixel) ergeben.

Signalvorverarbeitung

Abbildung 3: Bayer-Filter [8]

Um den Farbwert für die jeweiligen Punkte, die der Sensor aufnimmt, zu ermitteln, werden die Photodioden mit Farbfiltern überzogen. Dieser Filter wird auch Bayer-Filter genannt und besteht zu 50 % aus Grün und je 25 % aus Rot und Blau. Das funktioniert im Detail folgendermaßen: Die lichtempfindlichen Fotozellen eines Halbleiters können lediglich Helligkeitswerte erfassen. Deshalb wird vor jeder einzelnen Zelle ein winziger Farbfilter in Rot, Grün oder Blau aufgebracht. Dabei werden in den ungeraden Zeilen in der Folge Grün-Rot und in den geraden Zeilen in der Folge Blau-Grün Filter verwendet. Jede einzelne Zelle liefert also nur die Information über eine einzige Farbkomponente und deren Intensität.

Die Photoströme werden


Durch die Betrachtung der daneben liegenden Zellen wird der Farbwert eines gesamten Pixels bestimmt. Dabei werden die verschiedenen RGB-Werte zu einem Farbton zusammengefasst.

Analog-Digital-Umsetzer

Wie werden die analogen Signale umgesetzt? Welcher ADU kommt zum Einsatz? Welche Gründe sprechen für diesen ADU? Alternativen?

Bussystem

Wird ein Bussystem zwischen Sensor und Mikrocontroller eingesetzt? Wenn ja, wie funktioniert dieses Bussystem?

Digitale Signalverarbeitung

Welche Verarbeitungsschritte sind notwendig? Welche Filter werden angewendet? Bestimmen Sie Auflösung, Empfindlichkeit und Messunsicherheit des Sensors.

Darstellung der Ergebnisse

Welche Fehler treten in welchem Verarbeitungsschritt auf? Stellen Sie die Messunsicherheit bzw. das Vertrauensintervall dar.

Weiterführende Links und Quellen

[1] Getz, Edward (2016): Pixy LEGO I2C Protocol. Online verfügbar unter http://cmucam.org/documents/36, zuletzt geprüft am 27.05.2017.
[2] Introduction and Background - CMUcam5 Pixy - CMUcam: Open Source Programmable Embedded Color Vision Sensors. Online verfügbar unter http://cmucam.org/projects/cmucam5/wiki/Introduction_and_Background, zuletzt geprüft am 01.06.2017.
[3] Lang, Jean-Philippe: Introduction and Background - CMUcam5 Pixy - CMUcam: Open Source Programmable Embedded Color Vision Sensors. Online verfügbar unter http://cmucam.org/projects/cmucam5/wiki/Introduction_and_Background, zuletzt geprüft am 30.05.2017.
[4] LeGrand, Rich (2015): Pixy for LEGO Mindstorms. Online verfügbar unter http://charmedlabs.com/default/pixy-for-lego-mindstorms/, zuletzt aktualisiert am 27.05.2017, zuletzt geprüft am 27.05.2017.
[5] The MathWorks, Inc. (2017): MATLAB Support for LEGO MINDSTORMS EV3 - Video - MATLAB. Online verfügbar unter https://de.mathworks.com/videos/matlab-support-for-lego-mindstorms-ev3-95208.html, zuletzt aktualisiert am 30.05.2017, zuletzt geprüft am 30.05.2017.
[6] Omnivision (2012): ... CMOS Sensor
[7] CmuCam5 Übersicht
[8] Wikipedia: Bayer-Sensor. Online verfügbar unter https://en.wikipedia.org/wiki/Bayer_filter, zuletzt geprüft am 16.06.2017


→ zurück zum Hauptartikel: Signalverarbeitende Systeme SoSe2017