Objekterkennung mit CmuCam v5 (Pixy-Cam) mit Matlab/Simulink und EV3

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

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 Signalentstehung und -vorverarbeitung, zum Analog-Digital-Umsetzer und Bussystem sowie zum Prozessor. Abschließend wird die digitale Signalverarbeitung und die Darstellung der Ergebnisse thematisiert.


Der Primärsensor

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.


Eigenschaften des Sensors

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
Abbildung 2: Der in der Pixy-Cam verbaute Farbsensor [6]

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]


Funktionsweise des Sensors

In Abbildung 2 ist ein schematischer Aufbau des Innenlebens des verbauten CMOS 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 (image array) mit einer Größe von 5415 microm x 2430 microm. Hier sind die Photodioden mit den dazugehörigen Transistoren angeordnet, um einen Photonenstrom in eine messbare Spannung umzuwandeln. Durch die Anordnung können Zeilen und Spalten definiert werden, wodurch sich einzelne Pixel ergeben. Die Informationen werden mit Hilfe eines Busnetzes zum Analog-Digital-Umwandler weitergeleitet. Diese Architektur ermöglicht es im Gegensatz zum CCD-Sensor jede Diode direkt zu adressieren und einzeln auszulesen. [10]


Physikalisch gesehen, funktioniert das wie folgt:

  • Photodiode
  • Die Photoströme werden mit Hilfe von Transimpedanzwandler (vgl. AMP in Abbildung 2) in Spannungen umgewandelt, gefiltert und verstärkt. [9]
  • Problem: Photodiode nur Intensitäten; Die lichtempfindlichen Fotozellen eines Halbleiters können lediglich Helligkeitswerte erfassen


Abbildung 3: Bayer-Filter [8]

Aus diesem Grund werden die Photodioden mit winzigen Farbfiltern in Rot, Grün oder Blau überzogen. 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, sodass der Filter zu 50 % aus Grün und je 25 % aus Rot und Blau besteht. Jedes einzelne Pixel liefert also nur die Informationen über die Intensität einer einzigen Farbkomponente (siehe Abbildung 3). Dieser Filter wird auch Bayer-Filter genannt. [8]

Signalvorverarbeitung

???


Analog-Digital-Umsetzer

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


Prozessor

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


Bussystem

Funktionsweise des I2C-Bussystems

I2C-Adressen der Pixy-Cam

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
[9] Wikipedia: Farbsensor. Online verfügbar unter https://de.wikipedia.org/wiki/Farbsensor, zuletzt geprüft am 16.06.2017
[10] Göhring, Daniel (2002): Digitalkameratechnologien. Online verfügbar unter http://www.drgoehring.de/uni/papers/CCD-CMOS_08122002.pdf, zuletzt geprüft am 17.06.2017
[11] Wikipedia: Active Pixel Sensor. Online verfügbar unter https://de.wikipedia.org/wiki/Active_Pixel_Sensor, zuletzt geprüft am 17.06.2017



→ zurück zum Hauptartikel: Signalverarbeitende Systeme SoSe2017