{"id":4420,"date":"2021-05-26T04:00:54","date_gmt":"2021-05-26T04:00:54","guid":{"rendered":"https:\/\/lamarr-institute.org\/blog\/bodenlokalisierung-von-autonomen-robotern\/"},"modified":"2025-11-12T14:54:49","modified_gmt":"2025-11-12T14:54:49","slug":"bodenlokalisierung-von-autonomen-robotern","status":"publish","type":"blog","link":"https:\/\/lamarr-institute.org\/de\/blog\/bodenlokalisierung-von-autonomen-robotern\/","title":{"rendered":"Lokalisierung von autonomen Robotern mittels Bodenkamera"},"content":{"rendered":"\n<p>Der dynamische Warentransport in Lagerhallen stellt ein gro\u00dfes Problem in der Logistik dar. Dabei geht es darum Waren aus einem Lager an den Ort zu transportieren, wo sie ben\u00f6tigt werden. Um dieses Problem mit autonomen Robotern zu l\u00f6sen, m\u00fcssen diese sicher durch die Halle navigieren k\u00f6nnen. Essenziell f\u00fcr die Routenplanung ist ihre Lokalisierung. Dies ist gerade in gr\u00f6\u00dferen 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 <em>Machine Learning <\/em>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\u00f6glich, in jedem Frame das <em>Kidnapped-Robot-Problem <\/em>zu l\u00f6sen. Das hei\u00dft: Der Roboter kann, ohne weiteres Vorwissen, seine Position bestimmen. Zudem kann hierdurch die globale Lokalisierung direkt auf dem Roboter ausgef\u00fchrt werden. Wie das geht, stellen wir im Folgenden genauer vor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span style=\"font-size: 18pt;\">In drei Schritten zur globalen Lokalisierung<\/span><\/h2>\n\n\n\n<p>F\u00fcr die Lokalisierung von autonom fahrenden Robotern zur Navigation innerhalb eines Raumes gibt es verschiedene Forschungsans\u00e4tze. Ein Ansatz, den wir im Rahmen des <a href=\"http:\/\/www.ml2r.de\" target=\"_blank\" rel=\"noopener\">ML2R<\/a> betrachten, ist die Lokalisierung mittels einer Bodenkamera, welche an der Unterseite des Roboters angebracht ist. Der Ansatz wird in der gro\u00dfen <a href=\"https:\/\/www.iml.fraunhofer.de\/de\/presse_medien\/pressemitteilungen\/zfthalle.html\" target=\"_blank\" rel=\"noopener\">Forschungshalle f\u00fcr \u201eZellulare F\u00f6rdertechnik\u201c<\/a> mit besonderem Industriebodenbelag getestet. Dieser hat zuf\u00e4llig verteilte Farbflecke und wurde ausgew\u00e4hlt, um eine Bodenlokalisierung zu erleichtern und prinzipiell zu testen. Durch die zuf\u00e4llige 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.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/Pipeline_overview2-1-1024x781.jpg\" alt=\"- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)\" class=\"wp-image-24714\" title=\"\"><figcaption class=\"wp-element-caption\">\u00a9 ML2R <br>\u00dcbersicht der konzipierten Pipeline zur Bodenlokalisierung in drei Schritten.<\/figcaption><\/figure>\n\n\n\n<p>Zuerst werden aus dem durch die Bodenkamera aufgenommenen Bild alle relevanten Keypoints (wiedererkennbare Merkmale) extrahiert. Aus jedem Keypoint wird im n\u00e4chsten Schritt eine m\u00f6glichst einzigarte Kennung, ein sogenannter Fingerabdruck, erzeugt. Dabei ist es wichtig, dass die gleichen Keypoints in unterschiedlichen Bildern einen \u00e4hnlichen Fingerabdruck erzeugen, unabh\u00e4ngig 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\u00e4utern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 1: Erstellung aller Keypoints des Bildes<\/h2>\n\n\n\n<p>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\u00fcr 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 <em>CNN (Convolutional Neural Network)<\/em> zur Segmentierung aus. Der Boden wird in eine rote, blaue und gr\u00fcne Maske (Bild mit Farbflecken einer Farbe) segmentiert. Aus den Masken werden im n\u00e4chsten Schritt die zusammenh\u00e4ngenden Fl\u00e4chen der einzelnen Farbflecke erkannt. Die Mittelpunkte dieser Farbflecke werden als wiedererkennbare Merkmale,<em> Keypoints<\/em>, benutzt und weiterverarbeitet.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/Titelbild-1-1024x504.jpg\" alt=\"- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)\" class=\"wp-image-24716\" title=\"\"><figcaption class=\"wp-element-caption\">\u00a9 ML2R <br>Versuchsaufbau f\u00fcr die Aufnahme der Bodenbilder und Positionsdaten.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 2: Erzeugung der Fingerabdr\u00fccke<\/h2>\n\n\n\n<p>Zur Erzeugung der Fingerabdr\u00fccke wird ein <a href=\"https:\/\/de.wikipedia.org\/wiki\/Autoencoder\" target=\"_blank\" rel=\"noopener\">Autoencoder<\/a> verwendet, welcher den einheitlich rotierten Bereich um einen <em>Keypoint<\/em> in einen <em>Latent Space<\/em> komprimiert. Das Ziel ist es, einerseits f\u00fcr gleiche <em>Keypoints<\/em>, unabh\u00e4ngig von der Rotation des Roboters, einen m\u00f6glichst \u00e4hnlichen <em>Latent Vector <\/em>innerhalb des<em> Latent Space <\/em>und andererseits m\u00f6glichst unterschiedliche Latent Vectors f\u00fcr verschiedene <em>Keypoints <\/em>zu bekommen. Um dies zu erreichen, wird beim Training der <em>Machine Learning <\/em>Pipeline eine <a href=\"https:\/\/machinelearning-blog.de\/grundlagen\/optimierung-im-maschinellen-lernen\/\" target=\"_blank\" rel=\"noopener\"><em>Loss-Funktion<\/em><\/a> genutzt:<\/p>\n\n\n\n<p>$L_{rec} = frac{1}{n}sum_{i=1}^{n}(y_i- tilde y_i)^2$<\/p>\n\n\n\n<p>Der Rekonstruktionsloss $L_{rec}$ ist die mittlere quadratische Abweichung des durch den <em>Decoder <\/em>rekonstruierten Bildes und des originalen Bildes. Je kleiner die quadratische Abweichung ist, desto \u00e4hnlicher ist die Rekonstruktion zu dem origin\u00e4ren Bild. Zum Erzeugen der Fingerabdr\u00fccke wird der <em>Encoder <\/em>benutzt, um von der Umgebung von einem <em>Keypoint<\/em> einen <em>Latent Vector <\/em>zu erzeugen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/Autoencoder-1-1024x513.jpg\" alt=\"- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)\" class=\"wp-image-24718\" title=\"\"><figcaption class=\"wp-element-caption\">\u00a9 ML2R <br>Aufbau des Autoencoders: Die Eingabe und Ausgabe ist die Maske nach der Segmentierung in einem Bereich von 64 Pixeln um einen Keypoint.<\/figcaption><\/figure>\n\n\n\n<p>Der Latent Vector ist die komprimierte Darstellung der Umgebung eines <em>Keypoints<\/em> und hat als Fingerabdruck eine zu gro\u00dfe Dimension. Daher wird er anschlie\u00dfend mittels einer <em>PCA <\/em>(<a href=\"https:\/\/de.wikipedia.org\/wiki\/Hauptkomponentenanalyse\" target=\"_blank\" rel=\"noopener\">Hauptkomponentenanalyse<\/a>) auf eine Gr\u00f6\u00dfe von bis zu 10 reduziert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Schritt 3: Datenbankerstellung und Suche der Position<\/h2>\n\n\n\n<p>Zur Erstellung der Datenbank werden Aufnahmen und Positionen der am Roboter befestigten Bodenkamera ben\u00f6tigt. Dies wird mit einer Kamera, welche mit einem <a href=\"https:\/\/de.wikipedia.org\/wiki\/Motion_Capture\" target=\"_blank\" rel=\"noopener\"><em>Motion Capture System<\/em><\/a> synchronisiert ist, realisiert. Die so gewonnenen Bilder werden dann zu <em>Keypoints <\/em>weiterverarbeitet. Mit der Position des Bildes in der Halle und den Pixelkoordinaten der <em>Keypoints, <\/em>wird dann die Position der <em>Keypoints <\/em>auf dem Hallenboden berechnet. Zu den <em>Keypoints <\/em>werden im n\u00e4chsten Schritt die dazugeh\u00f6rigen Fingerabdr\u00fccke erzeugt. Im Anschluss werden die erzeugten Paare aus Fingerabdruck und Position f\u00fcr die Erstellung der Datenbank genutzt. Dabei ist die Datenbank selbst so konzipiert, dass zu einem gegebenen Fingerabdruck schnell die \u00e4hnlichsten vorhandenen Fingerabdr\u00fccke und ihre Positionen gefunden werden. Um dies zu erreichen, wird hier ein <a href=\"https:\/\/de.wikipedia.org\/wiki\/K-d-Baum\" target=\"_blank\" rel=\"noopener\">k-d-Baum<\/a> genutzt.<\/p>\n\n\n\n<p>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\u00e4chsten drei Fingerabdr\u00fccke aus der Datenbank ermittelt wird. Mit den so ermittelten Positionskandidaten kann dann die Position der Aufnahme in der Halle gesch\u00e4tzt werden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/lamarr-institute.org\/wp-content\/uploads\/lamarr-groundlocalisation.gif\" alt=\"- Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)\" class=\"wp-image-24724\" title=\"\"><figcaption class=\"wp-element-caption\">\u00a9 ML2R<\/figcaption><\/figure>\n\n\n\n<p>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\u00fcne die gesch\u00e4tzte 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\u00e4tzten Position betr\u00e4gt im Durchschnitt circa 10 Millimeter.<\/p>\n\n\n\n<p><strong>Das vorgestellte Projekt zeigt:<\/strong> Eine Lokalisierung auf Basis einer Bodenkamera ist unter Laborbedingungen m\u00f6glich. Dabei ist das Aufteilen der Positionsbestimmung in die drei Teile der <em>Keypoint-<\/em>Erstellung, Fingerprint-Erzeugung und anschlie\u00dfender Datenbanksuche zielf\u00fchrend. Die <em>Keypoint-<\/em>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 <em>Keypoint <\/em>besteht aus einer Position und seiner Umgebung. Um eine Position anhand einer <em>Keypoint<\/em>-Umgebung wieder zu finden, wird eine Datenbank eingesetzt. Damit dies effizient geschehen kann, muss die Dimension der <em>Keypoint<\/em>-Umgebung reduziert werden. Dazu wird ein <em>Autoencoder <\/em>und eine <em>PCA <\/em>genutzt. In Zukunft wird das Projekt weiter fortgesetzt, um das System mit mehr Daten und einer gr\u00f6\u00dferen Fl\u00e4che zu evaluieren und weiter zu optimieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Lokalisierung von autonom fahrenden Robotern ist essentiell f\u00fcr ihre Navigation im Raum. ML2R-Wissenschaftler*innen entwickelten eine Methode, welche es Robotern ohne Vorwissen und mittels Bodenkamera erm\u00f6glicht, ihre r\u00e4umliche Position zu bestimmen.<\/p>\n","protected":false},"author":9,"featured_media":4429,"template":"","meta":{"_acf_changed":false,"footnotes":""},"blog-category":[1416,546,396],"blog-tag":[1655,1519,1552,1589],"class_list":["post-4420","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog-category-alle-blogbeitraege","blog-category-anwendung","blog-category-forschung","blog-tag-autoenconder","blog-tag-industrie-4-0","blog-tag-logistik","blog-tag-robotik"],"acf":[],"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog\/4420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/users\/9"}],"version-history":[{"count":0,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog\/4420\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/media\/4429"}],"wp:attachment":[{"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/media?parent=4420"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog-category?post=4420"},{"taxonomy":"blog-tag","embeddable":true,"href":"https:\/\/lamarr-institute.org\/de\/wp-json\/wp\/v2\/blog-tag?post=4420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}