-
Die vorliegende Erfindung betrifft ein Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte, ein mobiles Gerät, ein System sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Hintergrund der Erfindung
-
In verschiedenen Bereichen kommen mobile Geräte, insbesondere Roboter, Drohnen oder sich zumindest teilautomatisiert bewegende Fahrzeuge wie z.B. sog. AGVs („Automated Guided Vehicles“) zum Einsatz. Wenn in einer Umgebung wie z.B. einer Fabrikhalle eine Vielzahl solcher mobiler Geräte zum Einsatz kommen sollen, ist es zweckmäßig, einen Plan vorzugeben, wie und wann die einzelnen mobilen Geräte sich bewegen, um einerseits Kollisionen zwischen mobilen Geräten zu verhindern und anderseits die Bewegung eines jeden mobilen Geräts vom Start zum Ziel zu erreichen.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Anpassen eines Bewegungsplans, ein mobiles Gerät, ein System sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Erfindung beschäftigt sich mit mobilen Geräten, insbesondere Roboter, Drohnen oder sich zumindest teilautomatisiert bewegende Fahrzeuge wie z.B. sog. AGVs („Automated Guided Vehicles“) und eines Einsatzes einer Vielzahl davon in einer Umgebung wie z.B. einer Fabrikhalle. Typischerweise sind solche mobilen Geräte in der Lage, sich in der Umgebung zu orientieren und dort zu navigieren, also einem vorgegebenen Bewegungspfad selbstständig zu folgen. Hierzu können die mobilen Geräten z.B. über geeignete Sensorik wie z.B. Lidar und/oder Kameras verfügen, sowie eine entsprechende Antriebseinheit.
-
Beispiele für solche mobile Geräte (oder auch mobile Arbeitsgeräte) sind ganz allgemein z.B. Roboter und/oder Drohnen und/oder auch sich teilautomatisiert oder (vollständig) automatisiert (zu Land, Wasser oder in der Luft) bewegende Fahrzeuge. Als Roboter kommen z.B. Haushaltsroboter wie Saug- und/oder Wischroboter, Boden- oder Straßenreinigungsgeräte oder Rasenmähroboter in Betracht, ebenso aber auch andere sog. Service-Roboter, als sich zumindest teilweise automatisiert bewegende Fahrzeuge z.B. Personenbeförderungsfahrzeuge oder Güterbeförderungsfahrzeuge (auch sog. Flurförderfahrzeuge, z.B. in Lagerhäusern), aber auch Luftfahrzeuge wie sog. Drohen oder Wasserfahrzeuge.
-
Wie erwähnt, ist es dabei zweckmäßig, einen Plan vorzugeben, wie und wann die einzelnen mobilen Geräte sich bewegen, um einerseits Kollisionen zwischen mobilen Geräten zu verhindern und anderseits die Bewegung eines jeden mobilen Geräts vom Start zum Ziel zu erreichen, und zwar auch möglichst schnell. In diesem Zusammenhang ist auch die Rede von einem sog. MAPF („Multi-Agent Path Finding“) bzw. MAPF-Problem, also dem Finden von Pfaden für eine Vielzahl von Agents, den mobilen Geräten. Eine Lösung eines solchen Problems ist ein Bewegungsplan oder Bewegungsablaufplan, der für jedes mobile Gerät einen Bewegungspfad vorgibt, der von dem mobilen Gerät zu befolgen ist, und ein zeitlicher Ablaufplan (d.h. ein Zeitschema), gemäß welchem das mobile Gerät den Bewegungspfad zu befolgen hat. Die Zeitschemata der einzelnen mobilen Geräte hängen dabei auch voneinander ab. Ein Bewegungspfad wiederum umfasst Aktionen die von dem jeweiligen mobilen Gerät in der Umgebung durchzuführen sind; das können z.B. verschiedenen Positionen, an denen das mobile Gerät warten soll, oder eine Fahrt von einer zu einer anderen Position sein, oder auch bestimmte Tätigkeiten wie Beladen oder Entladen.
-
Die Umgebung kann hierbei allgemein durch einen Graphen G = (V,E) mit Knoten V und Kanten E dargestellt werden, wobei die Knoten bestimmten Positionen und die Kanten den Verbindungen zwischen zwei Positionen entsprechen. In der Umgebung können N mobile Geräte vorhanden sein. Jedem mobilen Gerät kann ein Startpunkt bzw. eine Startposition si und ein Endpunkt bzw. eine Endposition (also ein) Ziel gi zugeordnet sein, wobei sich die Startpunkte der einzelnen mobilen Geräte vorzugsweise an verschiedenen Positionen bzw. Knoten befinden bzw. solchen entsprechen, ebenso wie die Endpunkte. Eine Lösung, die alle mobilen Geräten von ihrem jeweiligen Startpunkt zu ihrem jeweiligen Endpunkt bringt, wobei aber keine Kollisionen auftreten, kann durch einen Bewegungsplan oder Bewegungsablaufplan gegeben sein, der für jedes mobile Gerät einen Bewegungspfad mit Positionen und einem zeitlichen Ablaufplan angibt, wann das mobile Gerät an welcher Position sein soll.
-
Ein Lösung hierfür lässt sich an sich z.B. mit einer Optimierung bzw. dem Lösen eins Optimierungsproblems finden. Dabei können insbesondere zwei Aspekte optimiert werden. Es kann eine Zeitspanne minimiert werden, nämlich eine Gesamtdauer, die das letzte mobile Gerät benötigt, um seine Route zu beenden. Mit anderen Worten kann eine Minimierung der Fahrtdauer des mobilen Geräts, das am längsten braucht, erfolgen. Es kann auch die Summe der Kosten (Sum of Costs, SoC) betrachtet werden, und zwar die Summe der Dauer der mobilen Geräte auf ihrer Strecke. Insbesondere dieser Aspekte der Summe der Kosten ist im Rahmen der vorliegenden Erfindung von Relevanz. Es kann nämlich darauf abgezielt werden, dass jedes einzelne mobile Gerät seine Route am schnellsten absolviert. In der Praxis wartet das mobile Gerät A z.B. nur dann darauf, dass das mobile Gerät B eine Ressource zuerst überquert, wenn das mobile Gerät B (und alle anderen mobilen Geräten, die bei späteren Konflikten auf mobile Gerät B warten) kumulativ mehr Zeit einsparen als das mobile Gerät A warten muss (und andere mobile Geräte veranlasst, bei späteren Konflikten auf das mobile Gerät A zu warten). Das Ziel der Minimierung der Kosten ist damit, in kürzerer Zeit mehr mobile Geräte für neue Aufgaben zur Verfügung zu haben. Hierbei wird allerdings in der Regel angenommen, dass es keine Verzögerungen oder allenfalls sehr geringe Verzögerungen im Ablauf gibt. Wenn ein mobiles Gerät z.B. eine Störung hat oder anderweitig eine (längere) Verzögerung erfährt, kann es sein, dass sich die gesamte Zeit, bis alle mobilen Geräte an ihren Endpunkten angelangt sind, verlängert, da z.B. auch andere mobile Geräte warten müssen, weil sie z.B. die Position passieren müssten, an der das eine mobile Gerät die Störung hat.
-
Zudem kann ein Ausführungsschritt oder Ausführungsmanager („Execution Manager“) vorgesehen sein. Der Ausführungsmanager kann z.B. sicherstellen, dass die mobilen Geräte sich nicht bewegen bzw. keine Aktion ausführen, bevor sie gemäß (gesamtem) Bewegungsplan an der Reihe sind. Dies erlaubt es, die Reihenfolge der mobilen Geräte in dem Bewegungsplans zu ändern. Außerdem kann dank des Ausführungsmanagers auch ohne Änderung der Reihenfolge aus dem MAPF-Ergebnis sichergestellt werden, dass es keine Kollisionen geben wird. Der Ausführungsmanager wird nicht zulassen, dass zwei mobile Geräte die gleiche Ressource zur gleichen Zeit verbrauchen.
-
Um z.B. im Falle solcher Verzögerungen die gesamte Zeit für die Befolgung des Bewegungsplans zu reduzieren, kann der Bewegungsplan, zumindest ab dann, wenn die Verzögerung oder Störung auftritt (oder allgemein ein Auslösekriterium vorliegt), geändert bzw. angepasst werden. Unter einer Anpassung des Bewegungsplans kann dabei insbesondere eine Änderung der Reihenfolge der einzelnen mobilen Geräte, mit der sie ihrem Bewegungspfad folgen, verstanden werden. Dies kann in einem einfachen Fall z.B. eine geänderte Reihenfolge, mit der mobile Geräte eine bestimmte Position passieren, sein. Ebenso können aber Bewegungspfade (dann typischerweise auch mit dem zugehörigen zeitlichen Ablaufplan) geändert werden bzw. sein. Auch wenn durch einen solchen geänderten Bewegungsplan zwar sich die insgesamt benötigte Zeit gegenüber dem ursprünglichen Bewegungsplan erhöht, kann dies unter Berücksichtigung der durch die Störung bzw. Verzögerung verursachte Gesamtdauer trotzdem eine schnellere Lösung sein.
-
Eine Möglichkeit hierfür ist, auf einen Graphen zurückzugreifen, der potentielle Aktionen und Verbindungen zwischen Aktionen (d.h., welche Aktionen aufeinander folgen) in der Umgebung für die Vielzahl der mobilen Geräte umfasst, ähnlich wie die Darstellung der Umgebung als Graph. Die potentiellen Aktionen können dabei auch als Knoten bezeichnet werden, die Verbindungen als Kanten (im Graphen geht es nur um die Verbindung an sich, nicht die konkrete Art, wie diese in der Umgebung tatsächlich aussieht, also z.B. mit konkreten Positionen, Kurven oder dergleichen). Dabei soll von potentiellen Aktionen und Verbindungen die Rede sein, da es sich um solche Aktionen bzw. Verbindungen handelt, die theoretisch durchgeführt bzw. eingenommen oder befolgt werden können.
-
Dabei soll berücksichtigt sein, dass die Aktionen bzw. Handlungen, die von einem mobilen Gerät bei einer potentiellen Aktionen vorgenommen werden bzw. werden können, einen Einfluss auf Aktionen bzw. Handlungen, die von einem anderen mobilen Gerät vorgenommen werden bzw. werden können, haben. Mit anderen Worten, gibt es eine Abhängigkeit zwischen den Aktionen bzw. Handlungen, die von (zumindest) zwei mobilen Geräten vorgenommen werden bzw. werden können, z.B. weil beide mobilen Geräte dieselbe Strecke befahren müssen. Grundsätzlich soll (oder muss) dabei ein mobiles Gerät eine bestimmte Aktionen Position verlassen durchgeführt haben, bevor ein anderes mobiles Gerät diese Aktion durchführen kann. Damit kann also schon implizit eine Reihenfolge der mobilen Geräten enthalten sein.
-
Um dies in dem Graphen zu berücksichtigen, können in dem Graphen den potentielle Aktionen (oder Handlungen) eines mobilen Geräts vorgesehen werden. Unter einer Aktion ist dabei zu verstehen, was ein mobiles Gerät machen kann oder soll, also z.B. wohin es sich als nächstes bewegen soll, z.B. entlang welcher Verbindung; die Aktionen sind damit also insbesondere mit den Verbindungen verknüpft. Außerdem kann einer potentiellen Aktion ein Status der mobilen Geräte zugeordnet sein. Unter einem Status ist insbesondere zu verstehen, in welcher Situation im Ablauf seines Bewegungspfads sich das mobile Gerät befindet, also z.B. in Planung (noch nicht gestartet, „staged“), in Ausführung des Bewegungspfads („in progress“) oder aber fertig, d.h. dass der Bewegungspfad schon am Ende ist („completed). Durch die potentiellen Aktionen ist damit insbesondere auch berücksichtigt, dass es die erwähnten Abhängigkeiten zwischen den mobilen Geräten gibt. Dabei kann von dem Graphen auch als sog. „Action Dependency Graph“, ADG, oder Aktions- bzw. Handlungs-Abhängigkeits-Graph gesprochen werden. Mit anderen Worten wird in dem Graphen also für jeden Knoten bzw. jede potentielle Aktion angegeben, welche Aktionen die mobilen Geräte vornehmen können, unter der Berücksichtigung, dass Aktionen mehrerer mobiler Geräte voneinander abhängigen können.
-
Außerdem hat sich gezeigt, dass die erwähnten Abhängigkeiten der mobilen Geräten voneinander zumindest in vielen Fällen auch umkehrbar (also vertauschbar) sind. Anstatt dass das erste mobile Gerät eine potentielle Aktion durchgeführt haben muss (und sich insbesondere zu seiner nächsten Position bewegt haben muss), bevor ein zweite mobiles Gerät seine Aktion durchführen kann, ist es auch möglich, dass das zweite mobile Gerät vor dem ersten mobilen Gerät die potentielle Aktion bereits durchgeführt hat. Dabei soll auch sichergestellt sein, dass mobile Geräte dieselbe Aktion nicht zur selben Zeit durchführen, also in besondere nicht dieselbe Position besetzen können. Hierbei kann von vertauschbaren oder umkehrbaren Abhängigkeiten gesprochen werden. Diese vertauschbaren Abhängigkeiten können auch in dem Graphen berücksichtigt werden. Hierzu kann den potentiellen Aktionen also jeweils eine Information zugeordnet sein, ob es dort eine vertauschbare Abhängigkeit (sog. „switched dependencies“) gibt. Von dem so erweiterten Graphen auch als sog. „Switchable Action Dependency Graph“, SADG, oder vertauschbarer Aktions- bzw. Handlungs-Abhängigkeits-Graph gesprochen werden.
-
Ein solcher „Switchable Action Dependency Graph“ ermöglicht eine systematische Neuanordnung der einzelnen mobilen Geräte bzw. von deren Bewegungspfaden und Zeitschemata oder erleichtert dies zumindest.
-
Basierend auf einem solchen Graphen kann nun, wie sich gezeigt hat, im Rahmen einer Optimierung, also z.B. dem Lösen eines Optimierungsproblems, eine Lösung gefunden werden, die zu einem angepassten Bewegungsplan führt, bei dem sämtliche mobilen Geräte ihren Endpunkt erreichen, wobei es keine Kollisionen gibt. Zudem kann dabei Lösung gefunden werden, die insgesamt, d.h. bis alle mobilen Geräte ihren Endpunkt erreicht haben, zu einer geringeren Zeitdauer führt, als wenn der Bewegungsablaufplan nicht geändert würde, aber die vorliegende Verzögerung bei z.B. dem einen mobilen Gerät einbezogen wird. Die Optimierung kann z.B. ein sog. gemischt ganzzahliges, lineares Programm („Mixed Integer Linear Program“, MILP) gelöst werden.
-
Eine detailliertere Erläuterung des solcher „Switchable Action Dependency Graph“ sowie der erwähnten Optimierung, z.B. mittels MILP, ist z.B. in "
A. Berndt, N. van Duijkeren, L. Palmieri, and T. Keviczky, „A Feedback Scheme to Reorder a Multi-Agent Execution Schedule by Persistently Optimizing a Switchable Action Dependency Graph," Proceedings of the Distributed and Multi-Agent Planning (DMAP) Workshop at ICAPS, 2020.", auch abrufbar unter arXiv:2010.05254, beschrieben, worauf hiermit explizit Bezug genommen sein soll.
-
Bei dem erwähnten Graphen, dem „Switchable Action Dependency Graph“, wird jedoch eine komplette Beendigung des Bewegungsplans bei der Bestimmung des angepassten Bewegungsablaufplans berücksichtigt, d.h. die mobilen Geräten sollen dabei ihre jeweiligen Endpunkte oder letzte Aktoin, die z.B. am Beginn vorgegeben sind, erreichen.
-
Es hat sich herausgestellt, dass die mobilen Geräte nicht immer ihren - z.B. zu Beginn vorgegebenen - Endpunkt erreichen müssen. So kann sich z.B. ein weiterer, neuer Endpunkt ergeben oder es kann sich der Endpunkt ändern. Der Bewegungsplan kann also, vor dem Anpassen, ein offener Bewegungsplan sein, bei dem nicht jedem mobilen Gerät eine zu erreichende Ziel-Position oder Ziel-Aktion in der Umgebung zugeordnet ist. Wenn der Bewegungsplan nicht vollständig ist, sollte jedoch gewährleistet sein, dass alle mobilen Geräte ihr Ziel tatsächlich von der Position aus erreichen können, bis zu der geplant ist bzw. wird. Dies kann zum Beispiel durch geeignete Heuristiken erreicht werden. Unter einer zu erreichenden Ziel-Position ist dabei insbesondere eine Position zu verstehen, bei der das mobile Gerät eine Aufgabe zu erledigen hat, wie z.B. etwas abladen oder beladen zu werden.
-
Hierzu wird nun vorgeschlagen, dass der angepasste Bewegungsplan, basierend auf einem begrenzten Graphen, im Rahmen einer Optimierung, bestimmt wird. Bei dem begrenzten Graphen handelt es sich um einen Graphen, der für die mobilen Geräte bis zu einem vorgegebenen Horizont potentielle Aktion und Verbindungen in der Umgebung umfasst. Der Horizont kann z.B. über eine Anzahl an potentiellen Aktionen definiert sein. Bei synchronisierten Bewegungen der mobilen Geräte kann dies einem zeitlich definierte Horizont entsprechen. Dabei kann es sich insbesondere um einen an sich vergleichbaren Graphen wie den vorstehend erläuterten „Switchable Action Dependency Graph“ handeln; jedoch sind dabei nicht alle potentiellen Aktionen und Verbindungen umfasst, bis alle mobilen Geräte ihre Endpunkte erreicht haben, sondern nur bis zu einem vorgegebenen Horizont. Der Horizont kann derart vorgegeben sein, dass nicht alle der Vielzahl der mobilen Geräte eine jeweilige, vor dem Anpassen vorgegebene Ziel-Position oder Ziel-Aktion in der Umgebung erreichen. Der Horizont kann an sich beliebig gewählt werden; wie noch erläutert wird, kann über einen Algorithmus sichergestellt werden, dass für jeden Horizont eine geeignete Menge von Aktionsabhängigkeiten ausgewählt wird.
-
Wie sich gezeigt hat, kann ein solcher „Switchable Action Dependency Graph“, der an sich zu einer Lösung führt, bei der die mobilen Geräten ihre jeweiligen Endpunkte erreichen und es keine Kollisionen gibt, nämlich aufgeteilt werden, in einem ebensolchen - begrenzten - Graphen, aber nur bis zu dem vorgegebenen Horizont, und einen Rest, der aber ebenfalls erlaubt, eine Lösung zu finden bei der die mobilen Geräten ihre jeweiligen Endpunkte erreichen und es keine Kollisionen gibt. Dieser Rest stellt z.B. einen sog. räumlich exklusiven Handlungs-Abhängigkeits-Graph („Spatially Exclusive Action Dependency Graph“, SE-ADG) dar, der später noch erläutert werden soll; dieser Rest braucht damit aber nicht weiter berücksichtigt zu werden, da bereits der begrenzte Graph ebenfalls eine Lösung erlaubt, bei der die mobilen Geräten gewisse Punkte bzw. Positionen erreichen, bei denen es zu keiner gegenseitigen Blockierung kommt, und es keine Kollisionen gibt.
-
Mit anderen Worten wird also ein Zwischenzustand erreicht, von dem aus gewährleistet ist, dass sich die mobilen Geräte beliebig weiterbewegen können, z.B. zu ihren seit Beginn vorgegebenen Endpunkte oder aber auch anderen, sich ändernden Endpunkten. Dies bedeutet damit auch, dass der von Beginn an vorliegende Bewegungsplan offen sein kann, d.h. es muss gar nicht für jedes mobile Gerät ein zu erreichender Endpunkt vorgegeben sein. Das Finden des angepassten Bewegungsplans kann dann im Rahmen einer Optimierung erfolgen, wie vorstehend für den „Switchable Action Dependency Graph“ beschrieben, nur eben basierend auf dem begrenzten Graphen.
-
Der begrenzte Graph kann insbesondere aus einem entsprechenden, nicht begrenzten Graphen bestimmt werden, also z.B. dem erwähnten „Switchable Action Dependency Graph“, der an sich über den Horizont hinausgeht und ggf. vorgegebene Endpunkte (oder z.B. auch einfach nur finale Punkte, unabhängig davon, ob dies ein Endpunkt für z.B. eine vorzunehmende Handlung ist) umfasst.
-
Hierzu werden aus dem nicht begrenzten Graphen alle potentiellen Aktionen ausgewählt, die voraussichtlich (durch die mobilen Geräte) innerhalb des Horizonts erreicht werden können. Diese ausgewählten potentiellen Aktionen werden dann als die potentiellen Aktionen des begrenzten Graphen bestimmt bzw. als solche verwendet. Außerdem werden alle Verbindungen (aus dem nicht begrenzten Graphen), bei denen es eine vertauschbare Abhängigkeit zwischen mobilen Geräten gibt, und die auf eine der potentiellen Aktionen des begrenzten Graphen (die zuvor ausgewählt und bestimmt worden sind) zeigen, ausgewählt. Diese ausgewählten potentiellen Verbindungen werden dann als die potentiellen Verbindungen des begrenzten Graphen bestimmt bzw. als solche verwendet.
-
Zudem ist es zweckmäßig, wenn verbleibende Verbindungen (aus dem nicht begrenzten Graphen), die auf potentielle Aktionen des begrenzten Graphen zeigen, ausgewählt werden, bis keine Verbindung mehr von einer potentiellen Aktion in dem begrenzten Graphen zu einer potentiellen Aktion außerhalb des begrenzten Graphen zeigt. Diese ausgewählten potentiellen Verbindungen müssen dann ebenfalls zu den potentiellen Verbindungen des begrenzten Graphen hinzugefügt werden. Dadurch soll sichergestellt werden, dass bei gegebener Azyklizität des begrenzten Graphen auf Azyklizität des gesamten resultierenden ADG geschlossen werden kann, ohne zukünftige Abhängigkeiten zu berücksichtigen. Azyklizität ist für die rekursive Durchführbarkeit des Plans erforderlich, was insbesondere darauf abzielt, dass der Plan Deadlock-frei ist (äquivalent dazu, dass ADG azyklisch ist).
-
Wie sich gezeigt hat, führt der so erhaltene begrenzte Graph - wie auch der nicht begrenzte Graph - zu einer Lösung, bei der die mobilen Geräte einen Punkt erreichen, ohne dass es zu Deadlocks (unauflösliche Situation) oder Kollisionen kommt, und von welchem Punkt aus die mobilen Geräte sicher weiter bewegt werden können.
-
Wie erwähnt, kann der Bewegungsplan angepasst werden, wenn wenigstens ein Auslösekriterium vorliegt (bzw. erfüllt ist). Diese wenigstens eine Auslösekriterium umfasst vorzugsweise wenigstes eines der folgenden: es liegt eine Verzögerung bei zumindest einem der Vielzahl der mobilen Geräte bei einem Befolgen des Bewegungsplans vor; es liegt eine Störung bei zumindest einem der Vielzahl der mobilen Geräte vor; und es liegt eine Änderung des Bewegungspfads bei zumindest einem der Vielzahl der mobilen Geräte vor, d.h. dass z.B. ein Endpunkt geändert, entfernt oder hinzugefügt wurde. Dabei handelt es sich um Kriterien, bei deren Vorliegen von einer insgesamt auftretenden Verzögerung auszugehen ist, sodass eine Anpassung des Bewegungsplans eine Verkürzung der gesamten Dauer erwarten lässt. Es kann auch vorgesehen sein, dass das Auslösekriterium nur dann als vorliegend gilt, wenn eine Verzögerung von mehr als eine vorgegebene Zeitdauer, z.B. 5 Sekunden, zu erwarten ist. Als Auslösekriterium kommt auch eine vorgegebene Zeit in Betracht, die seit einem letzten Anpassen des Bewegungsplans (Durchführen der Optimierung) abgelaufen bzw. vergangen ist. Mit anderen Worten kann das Anpassen damit regelmäßig oder quasi-kontinuierlich durchgeführt werden.
-
Bevorzugt wird auch wiederholt oder regelmäßig geprüft, ob das das wenigstens eine Auslösekriterium vorliegt, wobei der Bewegungsplan immer dann angepasst wird, wenn das wenigstens eine Auslösekriterium vorliegt. Damit kann also z.B. immer wieder eine Anpassung erfolgen, wenn dies angezeigt ist, um insgesamt die Dauer zu verkürzen.
-
Basierend auf dem angepassten Bewegungsplan können dann Bewegungssteuergrößen für eines oder mehrere oder alle der Vielzahl der mobilen Geräte bestimmt werden, die dann bereitgestellt werden können. Auch können das eine oder die mehreren oder alle mobilen Geräte basierend auf den Bewegungssteuergrößen bewegt werden, d.h. die mobilen Geräte navigieren dann entsprechend durch die Umgebung.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät oder eine Steuereinheit eines mobilen Geräts, oder ein Server oder anderer Computer, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Die Erfindung betrifft auch ein mobiles Gerät, z.B. einen Roboter, eine Drohne oder ein sich zumindest teilautomatisiert bewegendes Fahrzeug (z.B. ein AGV), das eingerichtet ist, einen angepassten Bewegungsplan oder Bewegungssteuergrößen zu erhalten. Das mobile Gerät weist dann ein Antriebssystem und eine Steuer- oder Regeleinheit zum Ansteuern des Antriebssystems basierend auf dem angepassten Bewegungsplan und/oder den Bewegungssteuergrößen auf. Auch kann das mobile Gerät eine erfindungsgemäße Recheneinheit aufweisen, d.h. der Bewegungsplan kann auf dem mobilen Gerät bzw. dessen Recheneinheit angepasst werden. Zweckmäßig ist aber auch, wenn die Anpassung des Bewegungsplans auf einer übergeordneten Recheneinheit, z.B. einem Server oder in der sog. Cloud erfolgt, von wo das mobile Gerät dann die angepassten Bewegungsplan oder die Bewegungssteuergrößen erhält.
-
Das mobile Gerät kann auch dazu eingereicht sein, Informationen über eine Störung und/oder eine Verzögerung beim Befolgen des Bewegungsablaufplans bereitzustellen, z.B. für die übergeordnete Recheneinheit. Dies kann dann als Vorliegen des Auslösekriteriums gesehen werden, es kann basierend darauf eine Anpassung des Bewegungsplans erfolgen.
-
Die Erfindung betrifft auch System mit einer Vielzahl solcher mobiler Geräte. Ein solches System kann dann z.B. auch eine übergeordnete Recheneinheit, z.B. einem Server, umfassen. Die mobilen Geräten können dann z.B. drahtlos datenübertragend mit der übergeordneten Recheneinheit verbunden sein.
-
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
- 1 zeigt schematisch ein System, bei dem ein erfindungsgemäßes Verfahren durchführbar ist.
- 2 zeigt schematisch einen Ablauf eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform.
- 3 bis 6 zeigen Diagramme zur Erläuterung eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform.
-
Ausführungsform(en) der Erfindung
-
In 1a ist schematisch ein System 100 gezeigt, bei dem ein erfindungsgemäßes Verfahren durchführbar ist. Es kann sich dabei um ein erfindungsgemäßes System in einer bevorzugten Ausführungsform handeln. Das System weist beispielhaft eine Recheneinheit 104, z.B. einen übergeordneten Server auf, sowie beispielhaft vier mobile Geräte 110, 120, 130, 140, die sich in einer Umgebung 102 bewegen.
-
Bei den mobilen Geräten kann es sich z.B. um sog. AGVs handeln. Beispielhaft ist das mobile Gerät 110 etwas detaillierter dargestellt. Es weist ein Antriebssystem 114 und eine Steuer- oder Regeleinheit 112 zum Ansteuern des Antriebssystems basierend auf einem (angepassten) Bewegungsplan oder Bewegungssteuergrößen auf. Zudem weist das mobile Gerät 110 eine als Steuereinheit ausgebildete Recheneinheit 11 auf, die z.B. drahtlos datenübertragend mit der Recheneinheit 104 verbunden ist. Zudem weist das mobile Gerät 110 beispielhaft einen Lidar-Sensor 113 zur Navigation auf. Die weiteren mobilen Geräte können gleichartig aufgebaut sein.
-
In der Umgebung 102 sind beispielhaft einige Positionen V als Kreis dargestellt, die von den mobilen Geräten angefahren bzw. passiert werden können. Mit E sind Verbindungen zwischen Positionen V bezeichnet, diese stellen Wege für die mobilen Geräte dar. Die hier gezeigte Darstellung ist in Art eines Graphen G=(V,E) mit den Positionen V als Knoten und den Verbindungen E als Kanten, es versteht sich jedoch, dass die Umgebung in der Praxis z.B. eine Fabrikhalle mit Wegen und dergleichen sein kann.
-
Außerdem sind für die mobilen Geräte jeweils Startpunkte s1 bis s4 und Endpunkte g1 bis g4 gezeigt; diese Start- und Endpunkte entsprechend jeweils einer Position bzw. einem Knoten V. Ein Pfeil zu einem zugehörigen Endpunkt mit den dazwischenliegenden Knoten bzw. Positionen gibt einen Bewegungspfad, beispielhaft für das mobile Gerät 130 mit 132 bezeichnet, an. Zudem kann für einen Bewegungspfad ein zugehörige zeitlicher Ablaufplan vorgesehen sein, gemäß welchem die einzelnen Positionen abzufahren sind. Die Gesamtheit der Bewegungspfade und zeitlichen Ablaufpläne ergibt damit einen Bewegungsplan für die mobilen Geräte in der Umgebung.
-
In 1b sind die vier mobilen Geräten beispielhaft neben einem als Graphen gezeigt, in dem potentielle Positionen zw. Knoten und Abhängigkeiten 122 zwischen Knoten für dasselbe mobile Gerät und 123 zwischen zwei mobilen Geräten gezeigt sind.
-
Bei dem hier dargestellten Graphen handelt es sich um einen sog. räumlich exklusiven Handlungs-Abhängigkeits-Graph („Spatially Exclusive Action Dependency Graph“, SE-ADG). Dort ist berücksichtigt, dass die mobilen Geräte eine implizite Reihenfolge haben. Zudem ist berücksichtigt, dass bei jedem Knoten eine Bewegung bzw. Aktion oder Handlung eines mobiler Gerät von zwei anderen Knoten bzw. mit zwei Verbindungen erfolgen, die sich räumlich gegenseitig ausschließen. Um diesen Graphen zu erhalten, kann z.B. der folgende Algorithmus (nachfolgend auch Algorithmus 1) verwendet werden:
-
-
Dieser Algorithmus erhält als Eingang („Input“) einen Bewegungsplan, also eine Lösung P = {P
1,...,P
N} für das MAPF-Problem. Dabei ist
eine Folge von Tupeln für den Bewegungsplan, die Aktionen mobiler Geräte i angeben, die nötig sind, um vom Startpunkt s
i zum Endpunkt g
i zu gelangen. Ein Tupel
gibt die Knoten (Positionen) und Zeiten wann ein mobiles Gerät am Knoten v̂(p
i) sein muss bzw. die Aktion durchführen muss, also den zeitlichen Ablauf, an.
-
Der Ausgang („Output“) dieses Algorithmus ist ein Graph, ein „Spatially Exclusive Action Dependency Graph“ GSE-ADG mit entsprechenden Knoten und Kanten. Dabei gilt für die Knoten VSE-ADG, dass es ein Satz von Knoten v=({p1,...,pq},status) ist, die eine Bewegung eines mobilen Geräts i von v̂(p1), über Zwischen-Knoten, nach v̂(pq) angeben. Der „status“ gibt an, ob das mobile Gerät dort in Planung (noch nicht gestartet, „staged“), in Ausführung des Bewegungspfads („in progress“) oder aber fertig ist („completed). Die Kanten ESE-ADG sind gerichtete Kanten, d.h. Verbindungen mit vorgegebener Bewegungsrichtung des mobilen Geräts.
-
In dem Algorithmus wird nun in einem ersten Teil, in den Schritten 1 bis 13, jedes mobile Gerät (AGV) individuell berücksichtigt. Die räumliche Exklusivität wird in Schritt 7 bedacht. In einem zweiten Teil, in den Schritten 14 bis 20, wird dann die Abhängigkeit zwischen mobilen Geräten berücksichtigt, also insbesondere, wenn zwei mobile Geräte denselben Knoten passieren bzw. die betreffenden Aktion durchführen sollen. Dabei ist zu beachten, dass der „Spatially Exclusive Action Dependency Graph“ GSE-ADG azyklisch sein soll. Azyklizität sollte für die Deadlock-Freiheit des Bewegungsplans berücksichtigt werden, d.h. dass es zu keiner Situation kommt, in der sich ein mobiles Gerät nicht mehr weiterbewegen kann.
-
Ein einfaches Beispiel für einen Bewegungsplan oder Zyklus (bei dem das Problem offensichtlich ist) wäre z.B. bei drei mobilen Geräten A, B, und C und einer bestimmte Ressource R wie folgt: A muss auf B warten, bevor es die Ressource R nutzen kann, B muss auf C warten, bevor es die Ressource R nutzen kann, C muss auf A warten, bevor es die Ressource R nutzen kann. Kein mobiles Gerät wird sich also bewegen, es gibt einen Deadlock, die Aufgabe wird nicht in endlicher Zeit abgeschlossen. Ein MAPF-Plan, der in endlicher Zeit abgeschlossen wird, ist daher azyklisch. In der Praxis sind solche Bewegungspäne oder Zyklen mitunter deutlich komplexer. Ein im Rahmen einer Optimierung eines solchen „Spatially Exclusive Action Dependency Graph“ gefundener Bewegungsplan stellt sicher, dass die mobilen Geräte ohne Kollisionen ihr jeweiliges Ziel erreichen.
-
In 2 ist schematisch ein Ablauf eines erfindungsgemäßen Verfahrens in einer bevorzugten Ausführungsform dargestellt, wie er z.B. mit dem in 1 gezeigten System ablaufen kann. In einem Schritt bzw. Block 200 kann zunächst ein (ggf. initialer) Bewegungsplan P erstellt werden. Hierzu wird auf einen Graphen G=(V,E) der Umgebung zurückgegriffen sowie die Start- und Endpunkte der mobilen Geräte, hier allgemein von s1 bis sN bzw. g1 bis gN bezeichnet.
-
In einem Schritt bzw. Block 210 kann dann ein nicht begrenzter Graph, ein sog. „Switchable Action Dependency Graph“, SADG, erzeugt werden, hier mit G
SADG(b) bezeichnet. Dieser „Switchable Action Dependency Graph“ kann z.B: initial einmal erstellt werden, solange die Plan-Tupel gleichbleiben. Andernfalls kann er erneut erstellt bzw. erneuert werden. Hierzu kann z.B. der folgende Algorithmus (nachfolgend auch Algorithmus 2) verwendet werden:
-
Dieser Algorithmus erhält als Eingang („Input“) einen Bewegungsplan, also eine Lösung P = {P1,...,PN} für das MAPF-Problem. Der Algorithmus ist vergleichbar mit dem vorhergehenden Algorithmus für den „Spatially Exclusive Action Dependency Graph“ GSE-ADG, bis auf die Zeilen 19 bis 25. Hier wird geprüft, ob die Umkehrung einer Abhängigkeit gebildet werden kann.
-
Die Lösung P = {P
1,...,P
N} stellt für diesen Algorithmus einen Satz dar, sodass für Knoten gilt
falls
Zudem dürfen zwei mobile Geräte i und j im selben Zeitschritt nicht eine Kante e ∈ E in entgegensetzte Richtung befahren. Zudem soll für alle i,j ∈ {1,...N} gelten:
und
g
i. Der Ausgang („Output“) dieses Algorithmus ist damit ein nicht begrenzter Graph, ein „Switchable Action Dependency Graph“ G
SADG(b) mit entsprechenden Knoten und Kanten.
-
Dabei ist mit b bzw. dem Vektor b die umkehrbare Abhängigkeit dargestellt; dabei handelt es sich um einen Binär-Vektor, der für jeden Knoten angibt, ob die Vorwärts- oder Rückwärtsabhängigkeit (der Wert des Vektors ist dort dann 0 oder 1) gewählt is.tt.
-
Wie bereits erwähnt, ist ein Aspekt hierbei, dass die erwähnten Abhängigkeiten der mobilen Geräten voneinander auch umkehrbar (also vertauschbar) sind. Dies ist in dem Diagramm in
3 dargestellt. Dort sind generell potentielle Aktionen bzw. Knoten V gezeigt, sowie Bewegungspfade für zwei verschiedene mobile Geräte i und j (oben und unten). Es wird davon ausgegangen, dass der Status des mobilen Geräts j für vj beendet („completed“) ist, bevor das Status für das mobile Gerät i für
in Ausführung des Bewegungspfads („in progress“) ist. Dies bedeutet, dass das mobile Gerät j den Punkt
verlassen haben muss bzw. die betreffende Aktion durchgeführt haben muss (oder
erreicht haben muss), bevor das mobile Gerät i zum Punkt
fahren kann bzw. die betreffende Aktion durchführen kann. Dies impliziert eine Reihenfolge, wonach das mobile Gerät j vor dem mobilen Gerät i zum Punkt
fahren kann bzw. die betreffende Aktion durchführen kann. In
3 ist diese Abhängigkeit mittels des Pfeiles bzw. der Verbindung 302 dargestellt. Eine Umkehrung bzw. ein Tausch dieser Abhängigkeit ist mittels des Pfeiles bzw. der Verbindung 303 dargestellt.
-
-
Im Rahmen einer Optimierung, z.B. der erwähnten MILP, in Schritt bzw. Block 220 kann daraus an sich eine Lösung mit einem angepassten Plan bestimmt bzw. gefunden werden. Hier kann im Rahmen der Optimierung angepasster Bewegungsplan 225 erhalten werden, der in einem Schritt bzw. Block 230, im Rahmen z.B. einer Ausführung, verwenden werden kann, um die mobilen Geräte entsprechend zu veranlassen, den (angepassten) Bewegungsplan zu befolgen.
-
In dem Schritt bzw. Block 220, der Optimierung, wird allerdings nicht direkt der unbegrenzte Graph, der „Switchable Action Dependency Graph“, G
SADG(b), verwendet, sondern ein daraus im Schritt bzw. Block 250 bestimmter, begrenzter Graph. Hierzu kann z.B. der folgende Algorithmus (nachfolgend auch Algorithmus 3) verwendet werden:
-
Dieser Algorithmus erhält als Eingang („Input“) den nicht begrenzten Graphen, den „Switchable Action Dependency Graph“ G
SADG(b), sowie den vorgegebenen zeitlichen Horizont H und gibt als Ausgang („Output“) einen über den zeitlichen Horizont H begrenzten „Switchable Action Dependency Graph“
aus, und zwar mit entsprechenden Knoten und Kanten.
-
Hierbei werden aus dem nicht begrenzten Graphen GSADG(b) alle potentiellen Aktionen (Knoten) ausgewählt, die voraussichtlich (durch die mobilen Geräte) innerhalb des Horizonts H erreicht werden können. Diese ausgewählten potentiellen Aktionen werden dann als die potentiellen Aktionen des begrenzten Graphen bestimmt bzw. als solche verwendet, hier mit VFH bezeichnet. Dies ist in Schritt 1 des Algorithmus gezeigt. Der Index „FH“ steht hierbei für „Finite Horizon“, also den begrenzten Horizont.
-
Außerdem werden alle Verbindungen bzw. Kanten (aus dem nicht begrenzten Graphen), bei denen es eine vertauschbare Abhängigkeit zwischen mobilen Geräten gibt, und die auf eine der potentiellen Aktionen des begrenzten Graphen (die zuvor ausgewählt und bestimmt worden sind) zeigen, ausgewählt. Diese ausgewählten potentiellen Verbindungen werden dann als die potentiellen Verbindungen (Kanten) des begrenzten Graphen bestimmt bzw. als solche verwendet, hier mit EFH bezeichnet. Dies ist in Schritt 3 des Algorithmus gezeigt.
-
Zudem ist es zweckmäßig, wenn verbleibende Verbindungen (aus dem nicht begrenzten Graphen), die auf potentielle Aktionen des begrenzten Graphen zeigen, ausgewählt werden, bis keine Verbindung mehr von einer potentiellen Aktionen in dem begrenzten Graphen zu einer potentiellen Aktionen außerhalb des begrenzten Graphen zeigt. Diese ausgewählten potentiellen Verbindungen können dann ebenfalls zu den potentiellen Verbindungen des begrenzten Graphen hinzugefügt werden. Dies ist in Schritt 2 und 4 des Algorithmus gezeigt. Es ist insbesondere zweckmäßig, alle Kanten, die „nach innen“ zeigen, auch indirekt, rekursiv hinzuzufügen. Damit kann sichergestellt werden, dass die Azyklizität der Teilmenge der Handlungsabhängigkeiten die Azyklizität des gesamten (offenen) Bewegungsplans impliziert.
-
Damit wird aus dem nicht begrenzten Graphen, dem „Switchable Action Dependency Graph“ GSADG(b), der begrenzte Graph extrahiert. Es kann auch von einer Aufteilung des nicht begrenzten Graphen auf den begrenzten Graphen und einen Rest gesprochen werden. Dieser Rest stellt wiederum einen „Spatially Exclusive Action Dependency Graph“, SE-ADG, dar, wie vorstehend erläutert.
-
Dies ist 4 veranschaulicht. Dort ist ein Graph mit potentiellen Aktionen bzw. Knoten V sowie Verbindungen gezeigt, und auch der Horizont H. Dies gilt beispielhaft für drei mögliche mobile Geräte. Dabei sind vorwärts gerichtete Abhängigkeiten mittels der Pfeile bzw. Verbindungen 202 dargestellt. Eine Umkehrung bzw. ein Tausch solcher Abhängigkeiten ist mittels der Pfeile bzw. Verbindungen 403 dargestellt. Dabei sind alle Abhängigkeiten links vom Horizont H - und damit vor dem Horizont - aktiv, diejenigen rechts davon inaktiv. Außerdem sind die erwähnten Stati bzw. Zustände für die Knoten angedeutet. Leer dargestellte Knoten sind in Planung (noch nicht gestartet, „staged“), die beiden Knoten ganz links oben und ganz links unten sind fertig, d.h. dass der Bewegungspfad schon am Ende ist („completed), und der Knoten ganz links in der Mitte ist in Ausführung des Bewegungspfads („in progress“).
-
In 5 ist dies nochmals Schrittweise dargestellt, mit vier verschiedenen Situationen in den Abbildungen (a) bis (d). Auch hier sind Knoten V und vorwärts gerichtete Abhängigkeiten 502 bzw. deren Umkehrungen 503 gezeigt. Der Horizont H verändert sich hier von Abbildung (a) bis (d). Dabei sind in Abbildung (a) Schritte 1 und 2 des Algorithmus 3, in Abbildung (b) die Schritte 3 und 4 von Algorithmus 3 gezeigt. Abbildung (c) zeigt die Rekursion in den Schritten 5 bis 8 während des Ablaufs, und Abbildung (d) zeigt den endgültigen SADG mit endlichem Horizont.
-
In 6 ist die Situation aus 1b erneut gezeigt, jedoch mit dem Horizont H und den Abhängigkeiten zwischen Knoten V. Während es sich bei 1b um einen „Spatially Exclusive Action Dependency Graph“ handelt, stellt hier in 6 alles von links bis zum Horizont einen begrenzten Graphen, und zwar einen „Switchable Dependy Action Dependency Graph“ dar, der Rest stellt wieder einen „Spatially Exclusive Action Dependency Graph“, dar. Mit 602 und 603 sind beispielhaft eine Abhängigkeit und deren Umkehrung bezeichnet.
-
Wie sich gezeigt hat, wird bei einem solchen „Switchable Dependy Action Dependency Graph“ sichergestellt, dass ein basierend darauf, im Rahmen einer Optimierung gefundener Bewegungsplan auch derart ist, dass die mobilen Geräten Aktionen (und das müssen keine Endpunkte bzw. End-Aktionen sein) erreichen, von welchen aus sie weiterfahren können; eine Kollision tritt nicht auf. Dies ist daher sichergestellt, da der Rest ein „Spatially Exclusive Action Dependency Graph“ ist, der - wie erwähnt - ebenfalls das Finden eines solchen Bewegungsplans erlaubt.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- A. Berndt, N. van Duijkeren, L. Palmieri, and T. Keviczky, „A Feedback Scheme to Reorder a Multi-Agent Execution Schedule by Persistently Optimizing a Switchable Action Dependency Graph,“ Proceedings of the Distributed and Multi-Agent Planning (DMAP) Workshop at ICAPS, 2020.", auch abrufbar unter arXiv:2010.05254 [0017]
- „A. Berndt, N. van Duijkeren, L. Palmieri, and T. Keviczky, „A Feedback Scheme to Reorder a Multi-Agent Execution Schedule by Persistently Optimizing a Switchable Action Dependency Graph,“ Proceedings of the Distributed and Multi-Agent Planning (DMAP) Workshop at ICAPS, 2020.", auch abrufbar unter arXiv:2010.05254 [0053]