OSE - Objekterkennung und -verfolgung mittels LiDAR WS20/21: Unterschied zwischen den Versionen
Zeile 52: | Zeile 52: | ||
[[Datei:Ose python3.png|thumb|none]] | [[Datei:Ose python3.png|thumb|none]] | ||
4. <code>pip.exe install</code> | 4. <code>pip.exe install matplotlib</code> ausführen | ||
5. In Visual Studio Debug und x86 einstellen | 5. In Visual Studio Debug und x86 einstellen |
Version vom 9. Februar 2021, 21:09 Uhr
Autoren: Stefan Arndt, Marius Köhler
Einleitung
Im Rahmen des Praktikums "SDE - Systemintegration" wurde im Wintersemster 2020/2021 eine Software entwickelt, welche die LiDAR-basierte Erkennung und Verfolgung von Hindernissen durch das CaroloCup-Fahrzeug ermöglichen soll. Die Software wurde - grob unterteilt - in einem zweistufigen Prozess entwickelt. Zunächst erfolgte die prototypische Entwicklung und Erprobung in Matlab, anhand vorab aufgezeichneter Messungen. Nach Erreichen eines zufriedenstellenden Zustandes, folgte die Implementierung in C++, welche neben der Verarbeitung von aufgezeichneten Messungen auch direkt auf den LiDAR zugreifen und somit in Echtzeit Hindernisse erkennen und verfolgen kann.
Anforderungen
Im Lastenheft des Autonomen Fahrzeugs finden sich folgenden zwei Anforderungen an das Fahrzeug:
Die Erkennung und Verfolgung der Hindernisse (der statischen, wie der dynamischen) soll LiDAR-basiert erfolgen. Daher wurden folgende Pflichten aus Obigem abgeleitet:
Software-Entwurf
Programmablaufplan
In Absprache mit Prof. Dr.-Ing Ulrich Schneider wurde ein modellbasierter Ansatz zur Erkennung relevanter Hindernisse verfolgt. Zur Modellbildung wird auf die a priori bekannten Abmessungen und Eigenschaften der möglichen Hindernisse zurückgegriffen. Bei diesen handelt es sich um weiße Kartons einer Breite von 20cm und eine Länge von 30cm. Die Höhe ist aufgrund der zweidimensionalität der LiDAR-Messung irrelevant. Somit können folgende Annahmen gemacht werden:
Gemäß des Schnittstellendokuments, Punkt 3: RS-232 Schnittstelle, sollen folgende Track-Attribute er- bzw. übermittelt werden:
Zur anfänglichen Vereinfachung des Tracking-Problems soll zunächst die Erkennung und Verfolgung eines Hindernisses realisiert werden. Somit entfallen zunächst die Attribute:
- Objekt[n].Nummer
Weiterhin wurde auf das Tracking von
- Objekt[n].b
- Objekt[n].t
zunächst verzichtet.
Implementierung in C++
Softwarevoraussetzungen
OpenCV 4.3.0_32bit - Einrichtugn siehe hier und hier
python 2.7.18 x86 - hier | Download
NuGet Package (Eigen) - Installation im Packet Manager von Visual Studio
Installation und Inbetriebnahme
1. Install just for me
2. Installationsverzeichnis sollte C:\Python27-x86 sein
3. pip.exe -V
ausführen. Ausgabe sollte wie auf dem Bild sein und das richtige Verzeichnis ausgeben.
4. pip.exe install matplotlib
ausführen
5. In Visual Studio Debug und x86 einstellen
6. Die Projekt-Properties einstellen (siehe Bilder)
Programmierung
Komponententest
Dyn. und statische Tests
Das Ergebnis der statischen Codeanalyse liegt im SVN-Ordner.
Die dynamische Codeanalyse hat eine konstante RAM- und CPU-Auslastung ergeben.
Fazit
Literaturverzeichnis
→ zurück zum Hauptartikel: Praktikum SDE