Physical AI · Level 2 · Fortgeschritten

Wie Roboter eine Karte bauen: Lidar-Scans und Belegungsgitter

Wie ein Roboter aus Lidar-Scans eine Karte aus freier Fläche und Wänden baut, gezeigt in unserer Simulation — und warum sie zerfällt, sobald seine Position driftet.

Von 6 Min. Lesezeit
Wie ein Roboter aus Lidar-Scans eine Karte aus freier Fläche und Wänden baut, gezeigt in unserer Simulation — und warum sie zerfällt, sobald seine Position driftet.

Ein Roboter, der ein neues Gebäude betritt, weiß nichts darüber. Bevor er einen Weg zur Laderampe oder in die Küche planen kann, muss er herausfinden, wo Wände, Regale und Türen sind. Dieses Wissen baut er aus dem, was seine Sensoren sehen, Scan für Scan zu einer Karte zusammen. Die verbreitetste Form dafür ist das Belegungsgitter (Occupancy Grid): Der Boden wird in kleine Quadrate geteilt, und für jedes Quadrat schätzt der Roboter, ob es frei, belegt oder noch unbekannt ist.

Dies ist Teil 1 von Level 2 in unserem Lernpfad Physical AI, der zeigt, wie die Systeme innen arbeiten. Wir haben einen Roboter mit Lidar-Sensor durch eine erfundene Halle mit vier Räumen, Regalen und Türen fahren lassen. Sie erfahren, was ein Lidar-Scan enthält, wie eine Gitterkarte Belege aus vielen Scans sammelt und warum die beste Karte wertlos ist, wenn sich der Roboter über seine eigene Position irrt.

Was ein Lidar sieht

Ein 2D-Lidar ist ein Laser, der sich dreht und in vielen Richtungen den Abstand zum nächsten Gegenstand misst. Unser simulierter Sensor sendet 360 Strahlen pro Umdrehung, einen je Grad, mit 10 Metern Reichweite und einem Messrauschen von etwa 2 Zentimetern — typische Werte für die Lidars von Liefer- und Lagerrobotern. Jeder Strahl sagt dem Roboter zweierlei: Der Raum entlang des Strahls bis zum gemessenen Abstand ist frei, und der Punkt, an dem der Strahl endete, ist belegt. Ein Strahl, der in seiner Reichweite nichts trifft, sagt nur, dass der Raum entlang des Strahls frei ist.

Drei Karten desselben Grundrisses in Grau, Weiß und Schwarz: nach einem Scan ist nur ein sternförmiger Bereich um den Roboter bekannt; nach zehn Scans ist der erste Raum kartiert; nach allen Scans ist das ganze Gebäude mit Wänden, Regalen und Türen zu sehen
Die Karte nach 1, 10 und allen Scans. Weiß ist frei, Schwarz belegt, Grau noch unbekannt.

Belege statt Ja oder Nein

Der Roboter markiert ein Quadrat nicht nach einer einzigen Messung als frei oder belegt. Sensoren irren sich, Menschen laufen durch den Strahl, und Glas kann einen Laser seltsam ablenken. Stattdessen führt jedes Quadrat einen laufenden Punktestand, die sogenannten Log-Odds. Jedes Mal, wenn ein Strahl durch das Quadrat läuft, sinkt der Stand ein wenig; jedes Mal, wenn ein Strahl darin endet, steigt er. Erst wenn genug Belege zusammenkommen, gilt das Quadrat als frei oder belegt. Eine einzelne falsche Messung verändert den Stand, kann aber viele gute nicht umwerfen.

Wie Roboter eine Karte bauen: Lidar-Scans und Belegungsgitter
Zustand eines QuadratsBedeutungTypische Ursache
UnbekanntNoch kein Strahl hat es erreichtHinter einer Wand, um die Ecke, außer Reichweite
FreiViele Strahlen liefen hindurchOffener Boden, Gänge, Türöffnungen
BelegtViele Strahlen endeten darinWände, Regale, Pfeiler
UnsicherDie Belege widersprechen sichBewegte Menschen, Glas, Kanten von Gegenständen

Unsere Simulation: Die Karte wächst mit jedem Scan

Unser Roboter fuhr 55,6 Meter durch das Gebäude und machte jeden halben Meter einen Scan, insgesamt 119. Nach zehn Scans hatte er 42,4 % der freien Bodenfläche erkundet, vor allem den ersten Raum. Am Ende waren es 94,3 %. Die restlichen Flecken liegen hinter Regalen und in Ecken, die kein Strahl von der Route aus erreichen konnte. Weil der Roboter in diesem Lauf seine genaue Position kannte, sitzen die Wände in der Karte, wo sie hingehören: 100 % der als belegt markierten Quadrate liegen auf oder direkt neben einer echten Wand.

Wie die Karte mit jedem Scan wächst
ScansErkundete FlächeWände treffsicher
535,2 %100,0 %
1042,4 %100,0 %
2062,2 %100,0 %
4070,3 %100,0 %
8089,0 %100,0 %
11994,3 %100,0 %
119, Position driftet93,8 %55,9 %

Eigene Simulation: erfundener Grundriss 24 × 14 m, Raster 10 cm; Lidar mit 360 Strahlen, Reichweite 10 m, Rauschen 2 cm; ein Scan alle 0,5 m auf 55,6 m Weg. Belegungsgitter mit Log-Odds. Drift: Richtung 0,1 °/m, Strecke 2 % zu lang. Erkundet = Anteil der freien Fläche, die als frei erkannt ist; treffsicher = Anteil der als belegt erkannten Zellen, die höchstens eine Zelle neben einer echten Wand liegen.

Die ersten Scans bringen am meisten, danach flacht die Kurve ab. Jeder neue Raum bringt einen Sprung, jede Fahrt durch einen bekannten Gang wenig. Deshalb planen kartierende Roboter ihre Wege so, dass sie Orte besuchen, die sie noch nicht gesehen haben — eine Strategie namens Exploration.

Warum die Position stimmen muss

Die Karte ist nur so gut wie das Wissen des Roboters darüber, wo er bei jedem Scan stand. In einem zweiten Lauf haben wir genau dieselben Scans genutzt, sie aber an der Position eingetragen, die der Roboter aus Rädern und Kreisel schätzte. Wie in unserer Simulation zur Lokalisierung in Level 1 driftet diese Schätzung langsam: hier um 0,1 Grad Richtung pro Meter und 2 % in der Strecke.

Zwei Karten desselben Gebäudes nebeneinander: links scharfe Wände aus dem Lauf mit genauer Position; rechts der Lauf mit driftender Position, in dem Wände doppelt, leicht gedreht und verschoben erscheinen und die Karte zum Ende der Route hin unschärfer wird
Dieselben Scans, eingetragen an der genauen Position (links) und an einer langsam driftenden Position (rechts).

Das Ergebnis ist eine Karte, in der Wände doppelt erscheinen, leicht gedreht und verschoben. Nur noch 55,9 % der belegten Quadrate liegen an einer echten Wand; 44,1 % sind Geisterwände, die es nicht gibt. Ein Roboter, der mit dieser Karte plant, sähe geschlossene Türen, wo Öffnungen sind, und freie Fläche, wo ein Regal steht.

Deshalb werden Kartierung und Lokalisierung gemeinsam gelöst. Das Verfahren heißt SLAM, gleichzeitige Lokalisierung und Kartierung. Während der Roboter die Karte baut, vergleicht er jeden neuen Scan mit der bisherigen Karte und korrigiert seine Position, wenn beides nicht zusammenpasst. Kehrt er an einen Ort zurück, den er schon gesehen hat, kann er die Drift der ganzen Schleife auf einmal korrigieren — das heißt Schleifenschluss (Loop Closure).

Was sich in der echten Welt ändert

Unsere Simulation zeigt den Kern des Verfahrens, doch echte Gebäude sind schwieriger:

  • Glas und Spiegel. Laser gehen durch Glastüren oder prallen von Spiegeln ab; die Karte zeigt dann Wände an falscher Stelle oder gar keine.
  • Bewegte Dinge. Menschen, Gabelstapler und Türen verändern die Szene. Roboter halten ihre Karten aktuell und behandeln Bewegtes gesondert.
  • Drei Dimensionen. Ein 2D-Lidar in einer Höhe übersieht eine Tischplatte oder ein überstehendes Regal. Viele Roboter verbinden es deshalb mit 3D-Lidar oder Tiefenkameras.
  • Größe und Speicher. Eine Halle von mehreren Hektar braucht bei 10 Zentimetern pro Quadrat Millionen Quadrate; große Karten werden deshalb in Kacheln geteilt und bei Bedarf geladen.

So haben wir simuliert

Wir haben einen Grundriss von 24 mal 14 Metern mit vier Räumen, fünf Regalen und Türen gezeichnet, ihn in Quadrate von 10 Zentimetern geteilt und die Lidar-Strahlen gegen die Wände in Python mit numpy berechnet, mit festem Zufallsstartwert für das Rauschen. Erkundet heißt der Anteil der freien Bodenfläche, den die Karte als frei markiert; treffsicher heißt der Anteil der belegten Quadrate, die höchstens ein Quadrat von einer echten Wand entfernt liegen. Der nächste Teil dieses Levels nutzt eine Karte zum Planen: Wie ein Roboter oder ein Auto die kürzeste Route durch ein echtes Straßennetz findet.