Lokalisierung von autonomen Robotern mittels Bodenkamera

Autor*in:
Dominik
Brämer
Piet
Brömmel

Der dynamische Warentransport in Lagerhallen stellt ein großes Problem in der Logistik dar. Dabei geht es darum Waren aus einem Lager an den Ort zu transportieren, wo sie benötigt werden. Um dieses Problem mit autonomen Robotern zu lösen, müssen diese sicher durch die Halle navigieren können. Essenziell für die Routenplanung ist ihre Lokalisierung. Dies ist gerade in größeren Hallen, in denen Orientierungspunkte fehlen, eine besondere Herausforderung. Da gerade hier eine globale Lokalisierung (also die Positionsbestimmung in der Halle) wichtig ist, wurde im Rahmen des ML2R eine Methode zur Lokalisierung von Robotern mittels Bodenkameras entwickelt. Hierzu werden die Aufnahmen der Bodenkamera mittels einer Machine Learning Pipeline so verarbeitet, dass die Zuordnung einer Position im Raum zu einem Bild stattfindet. Da in jedem Bild eine Position im Raum zugeordnet werden kann, ist es nun möglich, in jedem Frame das Kidnapped-Robot-Problem zu lösen. Das heißt: Der Roboter kann, ohne weiteres Vorwissen, seine Position bestimmen. Zudem kann hierdurch die globale Lokalisierung direkt auf dem Roboter ausgeführt werden. Wie das geht, stellen wir im Folgenden genauer vor.

In drei Schritten zur globalen Lokalisierung

Für die Lokalisierung von autonom fahrenden Robotern zur Navigation innerhalb eines Raumes gibt es verschiedene Forschungsansätze. Ein Ansatz, den wir im Rahmen des ML2R betrachten, ist die Lokalisierung mittels einer Bodenkamera, welche an der Unterseite des Roboters angebracht ist. Der Ansatz wird in der großen Forschungshalle für „Zellulare Fördertechnik“ mit besonderem Industriebodenbelag getestet. Dieser hat zufällig verteilte Farbflecke und wurde ausgewählt, um eine Bodenlokalisierung zu erleichtern und prinzipiell zu testen. Durch die zufällige Verteilung entstehen einzigartige Kombinationen der Farbflecke auf dem Boden, die die Lokalisation des Roboters vereinfachen. In dem von uns entwickelten Ansatz lokalisiert sich der Roboter dann innerhalb eines Raums in drei Schritten.

© ML2R
Übersicht der konzipierten Pipeline zur Bodenlokalisierung in drei Schritten.

Zuerst werden aus dem durch die Bodenkamera aufgenommenen Bild alle relevanten Keypoints (wiedererkennbare Merkmale) extrahiert. Aus jedem Keypoint wird im nächsten Schritt eine möglichst einzigarte Kennung, ein sogenannter Fingerabdruck, erzeugt. Dabei ist es wichtig, dass die gleichen Keypoints in unterschiedlichen Bildern einen ähnlichen Fingerabdruck erzeugen, unabhängig wie das Bild rotiert ist oder wo sie sich im Bild befinden. Im letzten Schritt wird mittels einer Datenbank die Position des Roboters bestimmt. Im Folgenden werden wir die drei Schritte genauer erläutern.

Schritt 1: Erstellung aller Keypoints des Bildes

Das System wird in einer Halle getestet, welche mit einem speziellen Boden mit dunkler Grundfarbe und verschiedenen Farbflecken ausgelegt ist. Der Roboter kann mittels Bodenkamera ein Bild des aktuellen Bodenausschnittes aufnehmen. Aus dem Bild wird mit Hilfe eines Segmentierungsnetzes eine Maske der verschiedenen Farbenflecken erzeugt. Ein Beispiel für ein Bild der Bodenkamera und ihrer erkannten Maske ist in der unteren Abbildung zu sehen. Die zu erkennenden Features der Bilder sind lokal und liegen somit innerhalb eines kleinen Bildausschnitts. Daher reicht ein flaches CNN (Convolutional Neural Network) zur Segmentierung aus. Der Boden wird in eine rote, blaue und grüne Maske (Bild mit Farbflecken einer Farbe) segmentiert. Aus den Masken werden im nächsten Schritt die zusammenhängenden Flächen der einzelnen Farbflecke erkannt. Die Mittelpunkte dieser Farbflecke werden als wiedererkennbare Merkmale, Keypoints, benutzt und weiterverarbeitet.

© ML2R
Versuchsaufbau für die Aufnahme der Bodenbilder und Positionsdaten.

Schritt 2: Erzeugung der Fingerabdrücke

Zur Erzeugung der Fingerabdrücke wird ein Autoencoder verwendet, welcher den einheitlich rotierten Bereich um einen Keypoint in einen Latent Space komprimiert. Das Ziel ist es, einerseits für gleiche Keypoints, unabhängig von der Rotation des Roboters, einen möglichst ähnlichen Latent Vector innerhalb des Latent Space und andererseits möglichst unterschiedliche Latent Vectors für verschiedene Keypoints zu bekommen. Um dies zu erreichen, wird beim Training der Machine Learning Pipeline eine Loss-Funktion genutzt:

\(L_{rec} = frac{1}{n}sum_{i=1}^{n}(y_i- tilde y_i)^2\)

Der Rekonstruktionsloss (\(L_{rec}\)) ist die mittlere quadratische Abweichung des durch den Decoder rekonstruierten Bildes und des originalen Bildes. Je kleiner die quadratische Abweichung ist, desto ähnlicher ist die Rekonstruktion zu dem originären Bild. Zum Erzeugen der Fingerabdrücke wird der Encoder benutzt, um von der Umgebung von einem Keypoint einen Latent Vector zu erzeugen.

© ML2R
Aufbau des Autoencoders: Die Eingabe und Ausgabe ist die Maske nach der Segmentierung in einem Bereich von 64 Pixeln um einen Keypoint.

Der Latent Vector ist die komprimierte Darstellung der Umgebung eines Keypoints und hat als Fingerabdruck eine zu große Dimension. Daher wird er anschließend mittels einer PCA (Hauptkomponentenanalyse) auf eine Größe von bis zu 10 reduziert.

Schritt 3: Datenbankerstellung und Suche der Position

Zur Erstellung der Datenbank werden Aufnahmen und Positionen der am Roboter befestigten Bodenkamera benötigt. Dies wird mit einer Kamera, welche mit einem Motion Capture System synchronisiert ist, realisiert. Die so gewonnenen Bilder werden dann zu Keypoints weiterverarbeitet. Mit der Position des Bildes in der Halle und den Pixelkoordinaten der Keypoints, wird dann die Position der Keypoints auf dem Hallenboden berechnet. Zu den Keypoints werden im nächsten Schritt die dazugehörigen Fingerabdrücke erzeugt. Im Anschluss werden die erzeugten Paare aus Fingerabdruck und Position für die Erstellung der Datenbank genutzt. Dabei ist die Datenbank selbst so konzipiert, dass zu einem gegebenen Fingerabdruck schnell die ähnlichsten vorhandenen Fingerabdrücke und ihre Positionen gefunden werden. Um dies zu erreichen, wird hier ein k-d-Baum genutzt.

Die Position eines aufgenommenen Bildes kann dann durch Abfragen an den k-d-Baum ermittelt werden. Dabei wird zu jedem Fingerabdruck aus dem Bild die Position in der Halle bestimmt, indem die Position der nächsten drei Fingerabdrücke aus der Datenbank ermittelt wird. Mit den so ermittelten Positionskandidaten kann dann die Position der Aufnahme in der Halle geschätzt werden.

© ML2R

In dem hier vorgestellten Video ist ein Durchlauf unserer Positionsbestimmung zu sehen. Hierbei handelt es sich bei den roten Punkten um die Positionen aller Fingerprints in der Datenbank. Das lila Rechteck stellt die richtige Position und das grüne die geschätzte Position der Aufnahme dar. Dabei sind die blauen Punkte die ermittelten Positionskandidaten der Fingerprints aus der Datenbank. Die Abweichung der richtigen Position von der geschätzten Position beträgt im Durchschnitt circa 10 Millimeter.

Das vorgestellte Projekt zeigt: Eine Lokalisierung auf Basis einer Bodenkamera ist unter Laborbedingungen möglich. Dabei ist das Aufteilen der Positionsbestimmung in die drei Teile der Keypoint-Erstellung, Fingerprint-Erzeugung und anschließender Datenbanksuche zielführend. Die Keypoint-Erstellung ist wichtig, um einzigartige Merkmale zu finden, an denen sich der Roboter orientieren kann. Da es in diesem ML2R-Projekt einen speziellen Boden gibt, wird eine Segmentierung benutzt, um die Farbflecke als Keypoints zu nutzen. Jeder Keypoint besteht aus einer Position und seiner Umgebung. Um eine Position anhand einer Keypoint-Umgebung wieder zu finden, wird eine Datenbank eingesetzt. Damit dies effizient geschehen kann, muss die Dimension der Keypoint-Umgebung reduziert werden. Dazu wird ein Autoencoder und eine PCA genutzt. In Zukunft wird das Projekt weiter fortgesetzt, um das System mit mehr Daten und einer größeren Fläche zu evaluieren und weiter zu optimieren.

Autor*in

Dominik
Brämer

Dominik Brämer ist wissenschaftlicher Mitarbeiter am Lamarr-Standort des Fraunhofer IML in Dortmund. Sein Forschungsinteresse liegt im Machine Learning in Bezug auf der graphischen Datenverarbeitung und evolutionären Algorithmen.

Piet
Brömmel

Piet Brömmel ist wissenschaftlicher Mitarbeiter am Lamarr-Standort des Fraunhofer IML in Dortmund. Seine Forschungsinteresse liegt im Bereich des Generative Machine Learning und der graphischen Datenverarbeitung.