Objekttracking mit LiDAR
Autoren: Ahmad Hassan, Lihui Liu
Einleitung
Die Gruppe Hassan/Liu beschäftigt sich im Wintersemester 2020/2021 mit dem Thema Objekterkennung und Objekttracking mit dem Hokuyo LiDAR. Im Sommersemester wurde schon ein Arbeitskonzept dazu entworfen inkl. einem Signalflussplan sowie einem morphologischen Kasten. In dem WS20/21 soll eine Umsetzung dieses Arbeitskonzepts in C erfolgen. Zuerst kommt die Einbindung bzw. Einrichtung und Ansteuerung des LiDARs in C. Darauffolgend wird die Koordinatentransformation implementiert. Zum Testen des Schnittstellenkommunikationsprinzips wird auch eine Funktion programmiert, die innerhalb des ersten Monats des Semesters eine Dummy Objektliste erstellt, die an die DS1104 verschickt werden kann anhand von dem vom Team Heuer/Kruse entwickelten Kommunikationsframework. Zukünftig dient diese Funktion dem Versand der tatsächlichen, erfassten Objekte und ihrer Attribute. Es ist die Implementierung eines Connected Component Clusterung Algorithmus zur Segmentierung und eines L-Shape Fitting Algorithmus zur Objektbildung vorgesehen. An letzter Stelle findet die Programmierung des Kalman-Filters zur Objektverfolgung und Schätzung Attribute wie Geschwindigkeit und Beschleunigung der verfolgten Objekte. Eine detaillierte Beschreibung der erforderlichen, fachlichen Grundlagen und des entwickelten Konzepts ist im Objekterkennung mit Hokuyo LiDAR zu finden.
Eine Auflistung der Aufgaben zu den entsprechenden Meilensteinen ist unten ersichtlich.
- Meilenstein 3:
- Implementierung der Einbindung und Ansteuerung des Hokuyo LiDAR
- Implementierung der Koordinatentransformation
- Testdokumentation der Koordinatentransformation
- Versand einer Dummy-Objektliste an DS1104
- Implementierung der Segmentierung (Connected Component Clustering)
- Erstellen eines PAPs zum L-Shape Fitting Algorithmus
- Meilenstein 4:
- Implementierung des L-Shape Fitting Algorithmus
- Implementierung des Kalman Filters
- Attribute schätzen
- Versand der echten Objektlisten an die dSpace-Karte
- Dokumentation im Wiki
Anforderungen
Pflichten
Die vorgenommenen Pflichten zeigen die folgenden Abbildungen:
Funktionaler Systementwurf / Technischer Systementwurf
Komponentenspezifikation (Hier pro Modul ein PAP)
Inbetriebnahme und Ansteuerung des LiDARs
In diesem Artikel befinden sich Erläuterungen die Eigenschaften von LiDAR UGR-04LX-UG01 und wie die Bibliothek vom LiDAR mit Visual Studio verbinden.
Hier gehts zu Artikel
Inbetriebnahme und Ansteuerung des LiDARs
Koordinatentransformation
Das kartesische Koordinatensystem benutzt zum Beispiel x- und y-Koordinaten, um die Position eines Objektes darzustellen. Das Polarkoordinatensystem benutzt im Gegensatz dazu die radiale Entfernung vom Ursprung zum Objekt sowie den Objektwinkel. Deshalb wird das Koordinatensystem transformiert. Mehr Informationen über Koordinatentransformation siehe Programmierung von Koordinatentransformation.
Erstellung einer Dummy Objektliste zum Testen des Schnittstellenkommunikationsprinzips für LiDAR Daten
Für den Fall, dass kein Lidar genutzt wird, werden Dummyparameter für die Objektliste des Lidar generiert. Die versandete Objektliste ist wie folgende Tabelle dargestellt.
Signal | Bedeutung | Datentype |
---|---|---|
nObjekte | Gesamtanzahl der relevanten Objekte (max. 5) | u8 |
Objekt[n].Nummer | Objektzähler | u8 |
Objekt[n].x0 | x-Koordinate des Objektmittelpunktes (mitte, vorn) | f32 |
Objekt[n].y0 | y-Koordinate des Objektmittelpunktes (mitte, vorn) | f32 |
Objekt[n].b | Objektbreite | f32 |
Objekt[n].t | Objekttiefe | f32 |
Objekt[n].alpha | Objektausrichtung | f32 |
Objekt[n].v | Betrag des Geschwindigkeitsvektors | f32 |
Objekt[n].Plausibel | Vertrauenswert für das Objekt (100: 100% vertrauenswürdig) | u8 |
Segmentierung: Connected Component Clustering
Nach die Transformation der Koordinaten ist die Segmentierung erforderlich. Hier verwendet Algorithmus ist Connected Component Clustering (CCC). Der Zweck des CCC-Algorithmus besteht darin, das eingegebene Binärbild in ein symbolisches Bild umzuwandeln, in dem jede verbundene Komponente eine eindeutige Bezeichnung hat(siehe Abbildung x).
Der linke Teil der Abbildung zeigt ein Beispiel für ein Binärbild. Die rechte Seite zeigt ein Ergebnis des Etikettierungsprozesses mit CCC. Wir erweitern den CCC-Algorithmus von der Kennzeichnung von Binärbildern bis zur Segmentierung von 2D-LIDAR-Daten, indem wir zunächst LIDAR-Daten vorverarbeiten. Die von LIDAR zurückgegebenen Daten werden als Array von k 2D-Punkten dargestellt. Der Index des Arrays entspricht dem Winkel θ (i) und der Wert ist der Abstand zum Objekt entlang des in Richtung des Winkels θ (i) emittierten Strahls. Dann werden Punkte auf das Belegungsraster projiziert. Dieses Raster wird als Binärbild behandelt und zur Beschriftung verwendet.
Objektbildung
In diesem Artikel wird die Szenarien aus LiDAR-Sicht und die Vorgehensweise der Objektbildung dargestellt.
Hier gehts zu Artikel Objektbildung
Objekttracking: Kalman Filter
Attribute schätzen
Programmierung (Hier pro Modul Code-Snippets und Erklärung)
Inbetriebnahme und Ansteuerung des LiDARs
Koordinatentransformation
In diesem Artikel beschreibt die Umsetzung der Koordinatentransformation in Visual Studio.
Hier gehts zu Artikel Koordinatentransformation
Erstellung einer Dummy Objektliste zum Testen des Schnittstellenkommunikationsprinzips für LiDAR Daten
In diesem Artikel beschreibt die Erstellung einer Dummy Objektliste in Visual Studio.
Hier gehts zu Artikel Erstellung einer Dummy Objektliste zum Testen des Schnittstellenkommunikationsprinzips für LiDAR Daten
Segmentierung: Connected Component Clustering
Objektbildung
In diesem Artikel wird die Durchführung der Objektbildung erklärt.
Hier gehts zu Artikel Objektbildung
Objekttracking: Kalman Filter
Attribute schätzen
Komponententest
Zusammenfassung
Ausblick
Link zum Quelltext in SVN
Literaturverzeichnis
→ zurück zum Gruppenartikel: SDE-Team_2020/21
→ zurück zum Hauptartikel: SDE Praktikum Autonomes Fahren