next up previous contents
Nächste Seite: 3D-Laserscanner Aufwärts: report Vorherige Seite: Abstract   Inhalt

Einleitung

Wesentliche Teile dieser Arbeit entstanden im Rahmen eines Programmierpraktikums ,,3D-Laserscanner``. Aufgabe war es, einen handelsüblichen 2D-Laserscanner dahingehend zu modifizieren, daß Szenen in 3 Dimensionen aufgenommen werden. Der entwickelte 3D-Laserscanner soll speziell zur Navigation und Exploration auf autonomen mobilen Robotern eingesetzt werden.

Wichtige Fragestellungen in der Robotik sind die Kartierung und Navigation der Umgebung sowie anwendungsspezifische Aufgaben der jeweiligen Roboter, beispielsweise Andock- und Einparkaufgaben. Für solche autonomen Systeme braucht man präzise, schnelle und preisgünstige Sensoren. Heute verwenden viele Roboter 2D-Laserscanner. Die Erstellung von 2D-Karten und Navigation ist damit in Grundzügen möglich [Sur95]. Es besteht jedoch nicht die Möglichkeit, Hindernisse auf Grundlage eines 2D-Scans vollständig zu erfassen, da diese beispielsweise überstehende Kanten aufweisen können. Objekterkennung ist ebenfalls nicht ohne den Einsatz weiterer Sensoren wie beispielsweise Kameras möglich. Ein 3D-Laserscanner bietet für Probleme dieser Art eine echte Alternative.

Der in dieser Arbeit vorgestellte Ansatz verwendet einen 2D-Laserscanner, der auf einer horizontalen, senkrecht zur Hauptblickrichtung des Scanners verlaufenden Drehachse montiert wird. Dadurch ist es möglich, den Scanner wie einen herkömlichen 2D-Laserscanner zu betreiben. Ferner können vorhandene Algorithmen weiterhin zur Roboter-Lokalisation eingesetzt werden [Arr96]. Zusätzlich ist es nun möglich, 3D-Szenen aufzunehmen. Dabei wird der Laserscanner um einen Winkel von 90 Grad in der horizontalen Drehachse gedreht. Ein handelsüblichen Servomotor aus dem Modellbaubereich dreht den 2D-Scanner.

Die Präzision des zu realisierenden 3D-Senosrs soll eine Mindestgenauigkeit von 5cm besitzen. In jeder Scanebene ist die Genauigkeit durch die Genauigkeit des Lasers bestimmt, die bei dem in dieser Arbeit verwendeten Laser bei etwa 4cm liegt. Die vertikale Genauigkeit bestimmt sich durch die Servogenauigkeit und dem Ansteuerungsverfahren des Servos. Die hier erreichte Genauigkeit liegt bei etwa 0.5 Grad. Für die Ansteuerung des Servos wird das Echtzeitbetriebsystem RT-Linux verwendet. Der 3D-Laserscanner besitzt eine Auflösung von bis zu 113400 Punkten (420 $ \times$ 270) bei einem Öffnungswinkel von $ 150^{\circ} \times 90^{\circ}$. Damit können Objekte im Nahbereich ab einer Größe von $ 5$cm$ \times 5$cm$ \times 5$cm erkannt werden.

Neben der Qualität ist die Geschwindigkeit ein entscheidendes Kriterium für den Einsatz von Sensoren auf mobilen Platformen. Die Zeit, die für eine Aufnahme einer 3D-Szene benötigt wird, ist von der Geschwindigkeit des Lasers abhängig sowie der gewählten Auflösung. Die Zeit für einen kompletten Scan von 150 $ ^{\circ} \times$ 90$ ^{\circ}$ beträgt - je nach Auflösung - zwischen 1 und 12 Sekunden, wobei der Scanner alle 30ms einen 2D-Scan aufnimmt.

Letztendlich bestimmt auch der Preis über den Einsatz von Sensoren auf mobilen Fahrzeugen. Der 3D-Scanner ist sehr preisgünstig, da ein vorhandener 2D-Laserscanner um einen Modellbauservo und eine Aufhängung erweitert wurde. Der eingesetzte Servo der Firma Multiplex kostet 110,--.

Werden die autonomen Roboter zur Vermessung von Gebäuden und zur Kartengenerierung eingesetzt, so ist eine realistische Visualisierung erwünscht. Zu diesem Zweck wurde eine Digitalkamera an den Laserscanner gekoppelt. Aus dem während des 3D-Scans aufgenommenen Kamerabildern werden Texturen für die 3D-Szene extrahiert.

Online-Algorithmen zur Erkennung von Linien und Flächen bilden die Software-Basis für die anschließende Objektsegmentierung und Erkennung. Die Visualisierung erfolgt durch eine seperate Software auf der Basis der OpenGL-Bibliothek.



Aufbau der Arbeit


Die vorliegende Arbeit gliedert sich in 7 Kapitel:


Kapitel 1
die vorliegende Einleitung.
Kapitel 2
gibt einen Überblick über den aktuellen Stand der Technik, der einen direkten Vergleich der vorliegenden Arbeit mit bereits auf dem Markt erhältlichen Produkten erlaubt. Es folgen eine kurze Darstellung der verwendeten Hardware, insbesondere der von uns designten Drehvorrichtung, des verwendeten Laserscanners und der Kamera.
Kapitel 3
beschäftigt sich mit den zeitkritischen Realisierungen. Dies sind zum einen das unterliegende Betriebsystem RT-Linux, zum anderen die implementierten Online-Algorithen wie die Linienerkennung und die Flächensegmentierung.
Kapitel 4
erläutert die verwendeten Offline-Algorithmen, insbesondere zur Objekt-Segmentierung.
Kapitel 5
stellt den internen Ablauf der Scanner-Applikation vor, die parallele Architektur, die Klassenhierarchie sowie das JAVA-Interface zur benutzerfreundlichen Bedienung des Programmes.
Kapitel 6
stellt die Visualisierung der 3D-Scans vor und geht nähter auf die Funktionalität des OpenGL-Programmes ein, gefolgt von einigen Beispielbildern, aufgenommen bei einem Gang durch das Gebäude.
Kapitel 7
faßt die Ergebnisse der Arbeit zusammen und liefert einen Ausblick auf zukünftige Arbeiten.


next up previous contents
Nächste Seite: 3D-Laserscanner Aufwärts: report Vorherige Seite: Abstract   Inhalt