Robotik · Lagerflotten (Ware-zur-Person)

Weniger Roboter, mehr Durchsatz

Hunderte Lagerroboter, live in Ihrem Browser geplant. Finden Sie die Flottengröße, ab der zusätzliche Roboter Durchsatz kosten.

Live ausprobieren

01

Überblick

Ein Verkehrsplaner für Ware-zur-Person-Lagerroboter, der in Ihrem Browser läuft. Bis zu 400 simulierte Roboter auf einem Raster erhalten fortlaufend neue Aufträge: ein Lagerregal holen, es zu einem von 16 Kommissionierplätzen bringen, warten, während kommissioniert wird, dann das nächste holen. Kollisionen sind konstruktionsbedingt ausgeschlossen, und in 4.775 Läufen mit festem Seed trat kein Deadlock auf. Fügen Sie Roboter hinzu, bis der Durchsatz nicht mehr steigt, zeichnen Sie dann Einbahngassen ein, die der Planer gewichtet statt erzwingt, und sehen Sie zu, wie sich der Scheitel der Kurve verschiebt.

Auf unserer Lagerfläche erreicht der Durchsatz mit diesem Planer und einer mittleren Kommissionierzeit von 6 Sekunden höchstens etwa 5.134 Regalandienungen pro Stunde. Der Scheitel ist flach: Alles zwischen 196 und 235 Robotern liegt innerhalb von 0,5 % des Bestwerts, und die geglättete Kurve erreicht ihr Maximum bei 214. Danach kostet jeder Roboter Durchsatz, und das immer schneller: etwa 1 Andienung pro Stunde je Roboter knapp hinter dem Scheitel, etwa 4 je Roboter um 250 und etwa 7 je Roboter nahe 400. Bei 400 Robotern liefert die Fläche 20,5 % weniger als im besten Fall, und 48 % der fahrenden Roboter sind ihrem Ziel nicht näher als 8 Sekunden zuvor.

Zeichnen Sie die Gassen als Einbahngassen ein, als Präferenz und nicht als Regel, und dieselbe Fläche erreicht ihr Maximum von 6.439 Regalandienungen pro Stunde bei 191 Robotern: 25,4 % mehr Durchsatz mit 23 Robotern weniger. Die Basis ist Gegenverkehr in einspurigen Gassen, den reale Layouts vermeiden; ein Gewinn ist also zu erwarten. Interessant ist, wo er aufhört. Dauert das Kommissionieren 24 Sekunden pro Regal, setzen die Kommissionierplätze die Grenze, und die Markierung verschiebt den Durchsatz um höchstens 2,5 % in die eine oder andere Richtung.

Diese Zahlen gelten für ein Rastermodell mit diesem Planer. Die Roboter bewegen sich im Gleichtakt um eine 1-Meter-Zelle pro Sekunde, dürfen einander Stoßstange an Stoßstange folgen und haben keine Beschleunigungs- oder Drehzeit. Lagerblöcke sind massiv (Roboter fahren nie darunter hindurch), die Rückgabe eines Regals ist in die nächste Abholung eingerechnet, und die Kommissionierplätze haben keine Pufferstrecken. Bei der besten Flottengröße ist die Fläche zu etwa 40 % belegt, viel dichter, als eine reale Flotte fahren würde. Die Zahlen beruhen auf diesem Fahren Stoßstange an Stoßstange: Mit einer abstandhaltenden Variante des Planers (kein Roboter darf eine Zelle in derselben Sekunde befahren, in der ein anderer sie verlässt) war die beste von uns gerechnete Flottengröße 80 Roboter mit etwa 1.880 pro Stunde, und bei 160 Robotern blockiert sich die Fläche vollständig (10 Läufe mit festem Seed pro Punkt). Reale Flotten stauen sich früher, und ein anderer Planer würde den Scheitel verschieben.

02

Was wir entwickelt haben

  • Ein Lifelong-Multi-Roboter-Planer auf Basis von PIBT (Priority Inheritance with Backtracking, Okumura et al.), nach der Originalarbeit selbst implementiert. Er läuft in einem Web Worker in Ihrem Browser, und derselbe Planercode hat jede Simulation hinter den Hauptzahlen dieser Seite gerechnet.
  • Weiche Einbahngassen: Eingezeichnete Richtungen werden zu Gewichten auf einem ungerichteten Raster. Gegen die Richtung zu fahren kostet 3 Schritte statt 1; Roboter fahren also trotzdem dagegen, wenn der Umweg länger wäre oder ein anderer Roboter den Platz braucht. Ein Karteneditor lehnt jede Änderung (Sperren oder Freigeben einer Zelle) ab, nach der ein Korridor auf keiner Schleife mehr läge: die Bedingung, die der Erreichbarkeitsbeweis von PIBT braucht. Eine Brückensuche prüft das.
  • Getaktete Ausführung mit zufälligem Anhalten. Jede Sekunde werden 1 % der geplanten Bewegungen zufällig zurückgehalten, bevor sich irgendein Roboter bewegt, und die Roboter, die hinter einem angehaltenen Roboter warten, werden mit ihm angehalten; so wird nie ein Roboter in eine belegte Zelle bewegt. Ein unabhängiger Prüfer verifiziert jeden Schritt.
  • Kommissionierplätze mit einer für jedes Regal zufällig gezogenen Kommissionierzeit (Gammaverteilung). In der Live-Ansicht können Sie den Mittelwert zwischen 3, 6, 12 und 24 Sekunden umschalten.
  • Eine Parameterstudie mit festen Seeds über 4.740 einstündige Läufe: 20 bis 400 Roboter auf der Hauptfläche, dazu eine größere Fläche zur Kontrolle. Jeder Punkt hat 95-%-Konfidenzbänder, und der Scheitel hat ein Bootstrap-Intervall.
03

Tech-Stack

JavaScript (ES-Module) in einem Web Worker · three.js · Node.js worker threads für die Parameterstudien · Python und NumPy für die Statistik

04

Zahlen

KennzahlWie wir sie ermittelt haben
5.134 pro Stunde

Der Scheitel der Durchsatzkurve: Gassen mit Gegenverkehr, 6 s mittlere Kommissionierzeit. Ein an einem Kommissionierplatz angedientes Regal ist eine Andienung; ein Rasterschritt zählt als eine Sekunde. Es ist das Maximum einer geglätteten Kurve (LOESS), angepasst an 1.400 einstündige Läufe mit festem Seed bei 20 bis 400 Robotern (95-%-Intervall 5.130 bis 5.139).

196 bis 235 Roboter

Der flache Scheitel: Jede Flottengröße in diesem Bereich liegt innerhalb von 0,5 % des Bestwerts. Die geglättete Kurve erreicht ihr Maximum bei 214 Robotern (Bootstrap-Intervall 213 bis 216); andere Glättungsbreiten verschieben diesen Punkt zwischen 212 und 216.

−1 → −7 pro Roboter

Was jeder zusätzliche Roboter kostet, aus der angepassten Kurve, mit 95-%-Bootstrap-Intervallen:

  • 214 → 235 Roboter: −1,2 pro Stunde (−1,4 bis −1,0)
  • 235 → 260 Roboter: −3,7 pro Stunde (−4,0 bis −3,5)
  • 260 → 300 Roboter: −5,7 pro Stunde (−6,1 bis −5,4)
  • 300 → 400 Roboter: −7,1 pro Stunde (−7,3 bis −6,8)
−20,5 %

Durchsatz bei 400 Robotern (4.080 pro Stunde) im Vergleich zum Scheitel, auf derselben angepassten Kurve.

+25,4 %

Gewinn am Scheitel durch eingezeichnete Einbahngassen: 6.439 pro Stunde bei 191 Robotern. Gemessen an weiteren 1.400 Läufen mit festem Seed auf derselben Fläche mit denselben Einstellungen; das 95-%-Bootstrap-Intervall reicht von 25,3 % bis 25,5 %.

Innerhalb von 2,5 %

Bei 24 s Kommissionierzeit liegen Flächen mit und ohne eingezeichnete Gassen bei jeder Flottengröße innerhalb von 2,5 % beieinander (10 Läufe mit festem Seed pro Punkt). Die 16 Kommissionierplätze begrenzen den Durchsatz auf 2.400 pro Stunde.

35 % → 48 %

Anteil der fahrenden Roboter, die ihrem Ziel nicht näher sind als 8 s zuvor, bei 214 und bei 400 Robotern (Gassen mit Gegenverkehr, je 10 einstündige Läufe mit festem Seed). Das sind die grauen Felder im Film und in der Live-Ansicht.

0 Kollisionen

In 4.775 Läufen mit festem Seed (21,2 Millionen simulierte Schritte, wobei 0 bis 5 % der geplanten Bewegungen zufällig zurückgehalten wurden) fand ein unabhängiger Prüfer in keinem Schritt einen Roboter, der sich eine Zelle teilte, den Platz tauschte oder sprang. Planer und Ausführungsregel schließen das konstruktionsbedingt aus.

0 Deadlocks in 4.775 Läufen

Beobachtet, nicht bewiesen. Nach einer Aufwärmphase von 10 Minuten hatte kein Lauf einen 5-Minuten-Abschnitt ohne abgeschlossene Kommissionierung. Bei 6 s Kommissionierzeit stand kein fahrender Roboter länger als 111 s still. Bei 24 s Kommissionierzeit lag der Höchstwert bei 316 s: ein Roboter, der vor einem belegten Kommissionierplatz wartete. Die 4.775 Läufe umfassen 35 Läufe mit je 10 simulierten Stunden bei 400 Robotern.

0,11 ms

Mittlere Planungszeit pro Schritt für 400 Roboter (Node.js auf einem Laptop mit Apple M1 Pro, während der Parameterstudie). Derselbe Code brauchte in Desktop-Chrome auf diesem Laptop 0,13 bis 0,4 ms pro Schritt.

05

Standbilder

06

Live ausprobieren

Eine interaktive Ansicht, die in Ihrem Browser läuft. Erst wenn Sie sie öffnen, wird etwas geladen.

Live ausprobieren 0,9 MB herunterladen

Haben Sie eine ähnliche Fragestellung?

Sagen Sie uns, was Sie berechnen, simulieren oder entscheiden müssen, und wir sagen Ihnen, wie wir es angehen würden.

Schreiben Sie uns Robotik