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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 61: Zeile 61:


== Komponententest ==
== Komponententest ==
== Dyn. und Statische Tests ==
Das Ergebnis der statischen Codeanalyse liegt im SVN-Ordner.


Die dynamische Codeanalyse hat eine konstante RAM-Auslastung und einen normalen CPU-Verbrauch ergeben.


== Fazit ==
== Fazit ==

Version vom 9. Februar 2021, 20:58 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

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 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

Schematischer Ablauf der Verarbeitung eines LiDAR-Sweeps

Komponententest

Dyn. und Statische Tests

Das Ergebnis der statischen Codeanalyse liegt im SVN-Ordner.

Die dynamische Codeanalyse hat eine konstante RAM-Auslastung und einen normalen CPU-Verbrauch ergeben.

Fazit

Literaturverzeichnis




→ zurück zum Hauptartikel: Praktikum SDE