OSE - Objekterkennung und -verfolgung mittels LiDAR WS20/21: Unterschied zwischen den Versionen

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


== Programmierung ==
== Programmierung ==
[[Datei:Präsentation 3SpFAnim.gif|thumb|Schematischer Ablauf der Verarbeitung eines LiDAR-Sweeps]]


== Komponententest ==
== Komponententest ==

Version vom 9. Februar 2021, 21:13 Uhr


Autoren: Stefan Arndt, Marius Köhler

Schematischer Ablauf der Verarbeitung eines LiDAR-Sweeps

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

Pap der Objekterkennung und -verfolgung anhand vorab aufgezeichneter LiDAR-Messungen.

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.

RAM-Auslastung
CPU-Auslastung

Fazit

Literaturverzeichnis




→ zurück zum Hauptartikel: Praktikum SDE