Mono-Vision für ein autonomes Fahrzeug
Autor: | Nils Koch |
Modul: | Projektarbeit, MTR-B-2-6.01 |
Starttermin: | 29.01.2024 |
Abgabetermin: | 31.05.2024 |
Prüfungsform: | Modulabschlussprüfung als Hausarbeit (Praxisbericht, Umfang 30-50 Seiten Textteil) |
Betreuer: | Prof. Dr.-Ing. Schneider, Tel. 806 |
Mitarbeiter: | Marc Ebmeyer, Tel. 847 |
Einführung
Für das SDE Praktikum werden drei autonome Fahrzeuge im Maßstab 1:10 aufgebaut. Zwei davon verfügen bereits über dieselbe Kamera (). Da diese nicht mehr lieferbar ist, wird das dritte Fahrzeug mit einer Basler acA2000-50gc Kamera ausgestattet. Die Bildverarbeitung soll zukünftig für alle Systeme identisch sein. Bei Start der Kamerasoftware auf dem Fahrzeug-PC soll die verbaute Kamera automatisch identifiziert werden und die dazugehörigen Parameter geladen werden.
Aufgabenstellung
- Einarbeitung in das bestehende System
- Morphologischer Kasten der möglichen Optionen (Version von openCV, VisualStudio, Kameratreiber, x64,...)
- Bewertung und Auswahl einer Option - Besprechung mit Prof. Schneider
- Umsetzung in Visual Studio mit OpenCV
- Übernahme der bestehenden Bildverarbeitungssoftware im neuen System
- Systemtests (Kompatibilitätstests) aller 3 Fahrzeuge
- Optimierung
- Dokumentation im HSHL-Wiki
Anforderungen
Das Projekt erfordert Vorwissen in den nachfolgenden Themengebieten. Sollten Sie die Anforderungen nicht erfüllen müssen Sie sich diese Kenntnisse anhand im Rahmen der Arbeit anhand von Literatur/Online-Kursen selbst aneignen.
- Bildverarbeitung mit openCV
- Programmierung C++
- Dokumentenversionierung mit SVN
Anforderungen an die wissenschaftliche Arbeit
- Wissenschaftliche Vorgehensweise (Projektplan, etc.), nützlicher Artikel: Gantt Diagramm erstellen
- Wöchentlicher Fortschrittsberichte (informativ), aktualisieren Sie das Besprechungsprotokoll - Live Gespräch mit Prof. Schneider
- Projektvorstellung im Wiki
- Tägliche Sicherung der Arbeitsergebnisse in SVN
- Tägliche Dokumentation der geleisteten Arbeitsstunden
- Studentische Arbeiten bei Prof. Schneider
- Anforderungen an eine wissenschaftlich Arbeit
SVN-Repositorium
Getting started
Lesen Sie zum Einstieg diese Artikel
- Basler_GigE_Vision_System
- Kismann, J.; König, D: OSE:_Bildverarbeitung_mit_Spurerkennung
- Gantt Diagramm erstellen
- Tipps zum Schreiben eines Wiki-Artikels
- PAP Designer Einstieg
- Einführung in SVN
Projektplan
Auswahl Kamerasoftwareversion
Für die Kamerasoftware und das damit verbundene Software Development Kit werden 3 unterschiedliche Versionen in Betracht gezogen. Die Version 5.0.12 ist aktuell auf den Laborrechnern instaliert. Die Version 6.1.1 ist die aktuellste Version, welche mit 32-bit Betriebssystem kompatibel ist und die Version 7.4.0 ist die aktuellste verfügbare Version (Stand 04.03.2024). Um die Software zu testen wurde die Kamera zunächst über ein Ethernet-Kabel an einen Laborrechner angeschlossen und über den pylon Viewer ein Video gestartet.
Hierbei traten bei der ältesten Version schon gravierende Probleme auf, welche einen praktischen Einsatz dieser Version unmöglich machen. Der Versuch die Fehler zu beheben blieb erfolglos. Die auftretende Fehlermeldung empfielt das Inter-Packet Delay, also die Zeit zwischen zwei gesendeten Datenpaketen, zu erhöhen, was den Fehler zwar eleminiert, aber die Bildrate erheblich verringert (3-10 fps) und die Reaktionszeit deutlich erhöht (3-5 sek). Mit diesen Werten ist ein Einsatz zur Bildverarbeitung schlicht unmöglich.
Die Versionen 6.1.1 weist in diesem Test nur geringfügige Störungen auf. Etwa 0,5% der Frames können nicht richtig übertragen werden. Eine weitere Untersuchung dieser Fehler findet zunächst nicht statt, da eine andere Version nutzbar ist. Außerdem ist die Bildrate etwas geringer als die der Version 7.4.0.
Auch die Version 7.4.0 läuft zunächst nicht störunggsfrei. Zu Beginn läuft die Videoübertragung problemlos. Hierbei kann eine Bildrate von 24 fps kontimuiertich gehalten werden. Auch die Reaktionszeit ist mit deutlich unter einer Sekunde gut. Nachdem jedoch ca 4.300 Frames übertragen wurden, also nach ca. 180 Sekunden, verliert das Programm plötzlich die Verbundung zur Kamera. Eine Fehlermeldung des Programms empfiehlt den GigE Configurator auszuführern. Nachdem dieser ausgeführt wurde, tritt das Problem nicht mehr auf. Nach einigen weiteren Tests ergab sich, dass das Problem behoben werden kann, indem die IP-Adresse der Kamera manuell auf einen statischen Wert festgelegt wird. Die Version 7.4.0 kann also genutzt werden.
Version | Probleme | Bilder |
---|---|---|
Pylon 5.0.12 | Fehler bei der Datenübertragung; Bildfehler; Verbindungsverlust | |
Pylon 6.1.1 | Fehler bei Datenübertragung | |
Pylon 7.4.0 | Plötzlicher Verbindungsverlust nach ca. 3 Minuten; vorher problemfreie Übertragung |
Installation openCV
openCV ist eine Softwarebibliothek, welche in den AMRn genutzt wird, um die Kamerabilder -möglichst in Echtzeit- zu verarbeiten. Hierfür stellt die Bibliothek verschiedene Klassen und Funktionen bereit, welche im Modul Objekt- und Spurerkennung genutzt werden. Um diese Funktionen allerdings nutzen zu können, muss die Bibliothek zunächst auf dem PC installiert werden. Um den vollen Funktionsumfang nutzen zu können, ist die Installation mittels CMake erforderlich. Sobald diese abgeschlossen ist, ist es wichtig zu beachten, dass Visual Studio, bzw. das jeweilige Projekt auf die Bibliothek zugreifen kann. Hierfür ist die Angabe eine Dateipfads in den Projekteigenschaften nötig. Dieser ist für die bestehenden Projektdateien als D:\opencv\include festgelegt. DEmentsprechend sollte die Bibliothek hier installiert werden. Alternativ könnte die Implementierung einer System-Umgebungsvariable diskutiert werden.
Nützliche Artikel
→ zurück zum Hauptartikel: Studentische Arbeiten