Die optimale nächste Scanposition soll berechnet werden, ohne dass der Roboter über eine vollständige Karte seiner Umgebung verfügt. Daraus folgt, dass zuerst die Umgebung des Roboters gescannt werden muss und dann die aufgenommenen Scans als Ausgangspunkt für die Berechnung dienen.
Der erste Schritt des Algorithmus besteht in der Aufnahme eines
3D-Scans. Anschließend wird aus den aufgenommenen Daten ein
so genanntes Riss-Polygon generiert. Ein Riss-Polygon repräsentiert
einen Schnitt durch die Roboterumgebung (Aufriss) und besteht aus
detektierten und hinzugefügten Linien. Jenseits dieser hinzugefügten
Linien befindet sich noch nicht explorierte Umgebung. Zur Erzeugung
des Riss-Polygons werden alle Messpunkte herausgefiltert, die sich
auf einer definierten Höhe befinden. Abbildung 4.4 (oben)
verdeutlicht dies; es werden alle Punkte ermittelt, die eine Höhe von
150cm 2cm aufweisen.
Die derart bestimmten Punkte dienen als Eingabe für einen Linienerkenner. Da die Punkte nicht sortiert sind - sie stammen aus unterschiedlichen Scanschnitten -, kommt die Hough-Transformation [74,75] zum Einsatz. Ihr Ergebnis ist in Abbildung 4.4 (unten links) zu sehen. Die detektierten Linien verbindet der Algorithmus nun so, dass ein Polygon entsteht. Zwischen den Sprungkanten (vgl. Kapitel 3.4) werden Linien eingeführt, die einen Teil des Risses der zugrunde liegenden Höhe verdecken; d.h. dass sich ein Teil der Umgebung hinter dieser Linie befindet, aber noch nicht gescannt wurde. Wenn die Linien sortiert vorliegen, ist es einfach, sie richtig zu verbinden. Der kleinste Winkel zwischen den Endpunkten einer Linie und der Scannerposition dient dabei als Sortierkriterium. Abbildung 4.3 verdeutlicht diesen Vorgang.
![]() |
Die Art und Weise, wie die detektierten Linien verbunden werden,
entspricht dem Vorgehen von so genannten
Sweepline-Algorithmen. Eine analoge Sichtweise
besteht darin, einen Strahl von der Scannerposition aus von rechts
nach links laufen zu lassen (also über alle möglichen Werte von
). Falls der Strahl auf eine Linie trifft, wird diese mit der
Vorgängerlinie verbunden. Das Riss-Polygon entsteht durch das
Verbinden aller detektierten Linien (vgl. Abbildung 4.4
unten rechts).
![]()
![]() ![]() |
Der zweite Schritt des Algorithmus zur Berechnung der optimalen nächsten Scanposition erzeugt Kandidatenpositionen innerhalb des Riss-Polygons (vgl. Abbildung 4.5 links). Alle Positionen innerhalb des Polygons haben die gleiche Wahrscheinlichkeit. Die Aufgabe besteht nun darin, diejenige Kandidatenposition auszuwählen, an der ein weiteres Scannen den maximalen Zuwachs an Information verspricht. Möglichst viele Messpunkte des 3D-Scanners sollen in Richtung verdeckter, also hinzugefügter Kanten liegen.
![]() ![]() |
Der dritte Schritt evaluiert die Kandidatenpunkte (vgl. Abbildung 4.5 rechts). Für jeden dieser Punkte muss errechnet werden, welcher Anteil vom Riss-Polygon sichtbar ist. In der implementierten Fassung geschieht dies über eine Simulation des Laserscanners. Von der Kandidatenposition aus werden virtuelle Laserstrahlen ausgesendet, und die Anzahl der Schnittpunkte wird mit detektierten bzw. mit hinzugefügten Linien bestimmt. Entscheidend für eine Kandidatenposition ist dabei die Anzahl der Schnittpunkte mit den hinzugefügten Linien. Bei der Bestimmung der Schnittpunkte finden die physikalischen Eigenschaften des Sensors Berücksichtigung. Schnittpunkte, die zu nah am Sensor liegen, werden nicht gezählt. Gleiches gilt für zu große Entfernungen vom Laserscanner.
An dieser Stelle bezieht der Planungsalgorithmus die dritte Dimension
ein. Der 3D-Laserscanner ist fest in einer Höhe von 105 cm auf dem
Roboter montiert. Wenn der Scanner Objekte in einer anderen Höhe
erfassen will, muss er einen Mindestabstand einhalten. Die Ursache
dafür liegt im Öffnungswinkel des Sensors ( 90
)
(vgl. Abbildung 4.6). Des Weiteren nimmt die Strahldichte mit
dem Quadrat der Entfernung ab [54]. Daraus folgt: Je weiter
der Scanner vom Objekt entfernt steht, desto weniger Laserstrahlen
treffen auf das Objekt. Optimal ist daher eine Scannerposition nahe
dem Objekt, aus der es gerade noch erfasst werden kann.
![]() |
Die Mindestentfernung , die der 3D-Scanner vom Objekt bzw. den
Kanten der Riss-Ebene haben muss, lässt sich aus der Höhe des
Scanners
und der Riss-Ebene
errechnen. (vgl. Abbildung
4.6). Falls das zu scannende Objekt unterhalb der Höhe des
Scanners liegt, ist
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Nachdem alle Kandidatenpunkte unter Berücksichtigung der minimalen
Entfernung und einer maximalen Entfernung evaluiert sind, wird
die beste Orientierung des Roboters am Kandidatenpunkt bestimmt. Dabei
versucht der Roboter in den größten noch nicht gesehenen Bereich zu
schauen. Das Ergebnis des Algorithmus für die Riss-Ebene aus
Abbildung 4.4 ist in Abbildung 4.7
angegeben.
Die optimale nächste Scanposition besitzt drei Eigenschaften: Erstens
ist der bei der Evaluierung jedes NBV-Kandidatenpunktes errechnete
Wert
gleich der Anzahl der Schnittpunkte mit hinzugefügten
Linien. Zweitens sollte die Position nicht allzu weit von der aktuellen
Position entfernt sein. Und drittens ist ein ständiges Drehen des
Roboters zu vermeiden. Die folgende Formel trägt dem Rechnung und
definiert dadurch den Begriff ,,optimale nächste Scanposition``:
Wendet man das oben beschriebene Verfahren auf Riss-Ebenen verschiedener Höhe an, lässt sich die optimale nächste Scanposition für den 3D-Laserscanner bestimmen. Es gibt Situationen, in denen Verdeckungen auftreten, die der 3D-Laserscanner nicht erfassen kann. Dies ist durch den Aufbau bedingt: Der Sensor hat eine feste Höhe.
![]() |