Objekterkennung mit Hokuyo LiDAR
Autoren: Ahmad Hassan und Alexander Schirrmeister
Einleitung
Die Gruppe Hassan/Schirrmeister bearbeiten im Sommersemester 2020 die Objekterkennung mit dem Hokuyo LiDAR. Aufgrund der aktuellen Lage rund um das Coronavirus erlaubt es nicht direkt mit dem Sensor zu arbeiten. Als Mittelweg werden hier bereits aufgezeichnete Messdaten zur Auswertung herangezogen. Aufgabe ist es anhand der vorliegenden Daten Objekte zu erkennen und zu verfolgen. Im ersten Schritt erfolgt die Auswertung der Arbeiten aus den Vorsemestern und einer Beurteilung des aktuellen Zustands der Aufgabe. Eine Auflistung von Meilensteinaufgaben ist unten ersichtlich.
- Einarbeitung in dier bestehende Software
- Softwareentwurf in MATLAB
- Meilenstein 1:
- Ansteuerung des Hokuyo LiDAR
- Koordinatentransformation polar- zu karthesisch
- Testdokumentation der KOS-Trafo
- Objektbildung (z.B. Sukzessiv Edge Following)
- Testdokumentation der Objektbildung
- Meilenstein 2:
- Objekttracking (mit Kalman-Filter)
- Testdokumentation des Objekttrackings
- Attribute schätzen: v, a, B, T, Güte (s. Schnittstellendokument)
- Testdokumentation der Attribute mit Referenz
- Dokumentation im Wiki
Anforderungen
Fahrt auf Rundstrecke mit statischen Hindernissen
Unit-Tests
Ziele / Pflichten
Requirements
Folgende Anforderungen wurden an die Objekterkennung mit Hokuyo LiDAR gestellt:
ID | Inhalt | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|
1 | Die LiDAR-Objekterkennung muss als zyklischer Task aufgerufen werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
2 | Die erfassten Messwerte müssen auf Region of Interest und Rauschen gefiltert werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
3 | Die erfassten Messwerte müssen von Polarkoordinaten des LiDARs in das kartesische Koordinatensystem des Autos transformiert werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
4 | Die entstandene Punktewolke muss in Segmente unterteilt werden (Segmentierung). | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
5 | Die Punkte der jeweiligen Segmente müssen in einer einheitlichen Farbe gekennzeichnet werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
6 | Auf die geometrischen Beschaffenheiten der erfassten Segmente muss eine Boundingbox aufgebaut werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
7 | Objekt-Pose (Entfernung und Ausrichtung) muss ermittelt werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
8 | Bereits bestehende Objekte müssen z.B. durch einen Kalmanfilter getrackt werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
9 | Parameter der erkannten Objekte müssen abgeschätzt werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
10 | Objekt-Posen und Parameter müssen in Objektliste überführt werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
11 | Eingangsgrößen der Funktion LiDAR_Objekttracking.m sind
|
Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
12 | Ausgangsgrößen der Funktion LiDAR_Objekttracking.m sind
|
Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
13 | Bei Kommentierung und Dokumentation muss sich an die Projektrichtlinien gehalten werden. | Alexander Schirrmeister | 03.06.2020 | Hr. Hassan | --- |
Funktionaler Systementwurf / Technischer Systementwurf
Theoretische Grundlagen
Koordinatentransformation
Datenvorverarbeitung
Vorab sollte aufkommendes "Salt and Pepper" Rauschen herausgefiltert werden um Fehlinterpretationen des Algorithmus zu verhindern.
Segmentierung
Segmentierungsverfahren lassen sich grob in Grid-Basierte und Objekt-Basierte Segmentierungsverfahren einteilen.
Bei gridbasierten Verfahren werden Kacheln auf das "Sichtfeld" projeziert. Liegen Messpunkte in einer Kachel, so gilt diese Kachel als belegt. Belegte benachbarte Kacheln werden einem Segment zugeordnet. Über die Messung von Ausrichtung und Geschwindigkeit der Punkte in den jeweiligen Segmenten, kann auf zukünftige von diesem Segment belegte Kacheln geschlossen werden. Diese Art der Segmentierung ist in Anbetracht der Weiterverarbeitung zwar einfacher, ist allerdings in seiner Darstellung dynamischer Objekte eingeschränkt. Damit fallen grid-basierte Verfahren für die Anwendung von komplexeren Verfahren weniger gut geeignet.
Objektbasierte Verfahren beruhen auf einem Punktmodell. Anders als bei gridbasierten Verfahren, verläuft die Segmentierung mit mehreren Schritten. Zuerst werden die Rohdaten des Sensors gefiltert, um relevante Messwerte von irrelevanten Messwerten (z.B. Punktreflexionen) zu trennen. Darauf folgend, werden Messpunkte zu Clustern zusammengefasst. Da der Sensor nur 2D Informationen zur Verfügung stellt, sollte auf ein 2D-Clusterverfahren zurückgegriffen werden. Weitverbreitete Verfahren wie zum Beispiel DBSCAN sind bieten zwar umfassendes 3D-Clustering, aber sind aufgrund hoher Komplexität der begrenzten Rechenkapazitäten nicht ratsam.
Objektbildung
Objekttracking
Signalflussplan
Zum besseren Verständnis der vom System zu erfüllenden Gesamtaufgabe werden die Schritte der Datenverarbeitung vom LiDAR bishin zur Schnittstelle zu anderen Softwaremodulen in einem Signalflussplan dargestellt. Wie auch die Software, ist der Signalflussplan von iterativen Änderungen nicht ausgeschlossen und wird daher im SVN als bearbeitbares Dokument bereitgestellt. Die Bearbeitung des Signalflussplans fand im Browsertool yEd-Live statt. Der aktuelle Stand des Signalflussplans ist in der Abb. X ersichtlich.
Morphologischer Kasten
Komponentenspezifikation
Programmierung
Initialisierung
Aktualisierung
Komponententest
Zusammenfassung
Ausblick
Offene Punkte
Link zum Quelltext in SVN
Literaturverzeichnis
- Fast people detection in indoor environments using a mobile robot with a 2D laser scanner
- An optimized segmentation method for a 2D Laser-Scanner applied to mobile robot navigation
- A line segment extraction algorithm using laser data based on seeded region growing
- DBSCAN-Clustering
- Track Vehicles Using Lidar: From Point Cloud to Track List
- Model-free detection and tracking of dynamic objects with 2D lidar
- kalmanfilter.net
- LiDAR Clustering and Shape Extraction for Automotive Applications
Getting Started
- Recherchieren Sie die Schritte der Signalverarbeitungskette. Ergebnis: Signalflussplan
- Recherchieren Sie die Elemente/Blöcke des Signalflussplans. Ergebnis: Morphologischer Kasten
- Bewerten Sie die Ergebnisse Ihrer Recherche und legen Sie sich auf ein Vorgehensweise fest.
- Setzen Sie diese anhand Ihres Signalflussplans um.
- Testen Sie die Module.
- Testen Sie das System.
- Dokumentieren Sie fortlaufend Ihre Ergebnisse im Wiki/SVN.
Weblinks
- Track Vehicles Using Lidar: From Point Cloud to Track List
- Sensor Fusion and Tracking Toolbox
- Perception with Computer Vision and Lidar
- Lidar and Point Cloud Processing
- Object Tracking with 2D LiDAR
- Objekterkennung und -tracking mit Lidar-Daten
- 3D-LIDAR Multi Object Tracking for Autonomous Driving
- Lidar Processing for Automated Driving
- Introduction to Multiple Target Tracking
→ zurück zum Hauptartikel: SDE Praktikum Autonomes Fahren