DE102022213246A1 - Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte - Google Patents

Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte Download PDF

Info

Publication number
DE102022213246A1
DE102022213246A1 DE102022213246.7A DE102022213246A DE102022213246A1 DE 102022213246 A1 DE102022213246 A1 DE 102022213246A1 DE 102022213246 A DE102022213246 A DE 102022213246A DE 102022213246 A1 DE102022213246 A1 DE 102022213246A1
Authority
DE
Germany
Prior art keywords
mobile devices
graph
movement
movement plan
plan
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022213246.7A
Other languages
English (en)
Inventor
Luigi Palmieri
Alexander Kleiner
Alexander Berndt
Niels Van Duijkeren
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022213246.7A priority Critical patent/DE102022213246A1/de
Priority to PCT/EP2023/083883 priority patent/WO2024120985A1/de
Publication of DE102022213246A1 publication Critical patent/DE102022213246A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/69Coordinated control of the position or course of two or more vehicles
    • G05D1/693Coordinated control of the position or course of two or more vehicles for avoiding collisions between vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/22Command input arrangements
    • G05D1/229Command input data, e.g. waypoints
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/644Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/69Coordinated control of the position or course of two or more vehicles
    • G05D1/698Control allocation
    • G05D1/6987Control allocation by centralised control off-board any of the vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2105/00Specific applications of the controlled vehicles
    • G05D2105/45Specific applications of the controlled vehicles for manufacturing, maintenance or repairing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2107/00Specific environments of the controlled vehicles
    • G05D2107/70Industrial sites, e.g. warehouses or factories
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte (110, 120, 130, 140), insbesondere Roboter, Drohnen oder sich zumindest teilautomatisiert bewegende Fahrzeuge, wobei sich die mobilen Geräte gemäß des Bewegungsplans in einer Umgebung bewegen sollen, umfassend: Bereitstellen eines Bewegungsplans, wobei der Bewegungsplan jedem der mobilen Geräte jeweils einen Bewegungspfad und einen zeitlichen Ablaufplan für ein Befolgen des Bewegungspfads zuordnet, wobei ein Bewegungspfad jeweils Aktionen, die von dem jeweiligen mobilen Gerät in der Umgebung durchzuführen sind, umfasst; Anpassen des Bewegungsplans, wenn wenigstens ein Auslösekriterium vorliegt, wobei das Anpassen des Bewegungsplans umfasst: Bestimmen eines begrenzten Graphen, der für die mobilen Geräte bis zu einem vorgegebenen Horizont potentielle Aktionen und Verbindungen zwischen Aktionen in der Umgebung umfasst, und Bestimmen eines angepassten Bewegungsplans, basierend auf dem begrenzten Graphen, im Rahmen einer Optimierung, und Bereitstellen des angepassten Bewegungsplans für die mobilen Geräte, und insbesondere Veranlassen der mobilen Geräten, den angepassten Bewegungsplan zu befolgen.

Description

  • 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:
  • Figure DE102022213246A1_0001
  • Dieser Algorithmus erhält als Eingang („Input“) einen Bewegungsplan, also eine Lösung P = {P1,...,PN} für das MAPF-Problem. Dabei ist P i = { p i 1 , , p i N i }
    Figure DE102022213246A1_0002
    eine Folge von Tupeln für den Bewegungsplan, die Aktionen mobiler Geräte i angeben, die nötig sind, um vom Startpunkt si zum Endpunkt gi zu gelangen. Ein Tupel p i k = ( v ^ ( p i k ) , t ^ ( p i k ) )
    Figure DE102022213246A1_0003
    gibt die Knoten (Positionen) und Zeiten wann ein mobiles Gerät am Knoten v̂(pi) 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 GSADG(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:
    Figure DE102022213246A1_0004
    Figure DE102022213246A1_0005
  • 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 = {P1,...,PN} stellt für diesen Algorithmus einen Satz dar, sodass für Knoten gilt v ^ ( p i k ) v ^ ( p j l )
    Figure DE102022213246A1_0006
    falls t ^ ( p i k ) = t ^ ( p j l )
    Figure DE102022213246A1_0007
    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: v ^ ( p i 1 ) = s i
    Figure DE102022213246A1_0008
    und v ^ ( p i N i ) =
    Figure DE102022213246A1_0009
    gi. Der Ausgang („Output“) dieses Algorithmus ist damit ein nicht begrenzter Graph, ein „Switchable Action Dependency Graph“ GSADG(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 v i k
    Figure DE102022213246A1_0010
    in Ausführung des Bewegungspfads („in progress“) ist. Dies bedeutet, dass das mobile Gerät j den Punkt s ( v j l )
    Figure DE102022213246A1_0011
    verlassen haben muss bzw. die betreffende Aktion durchgeführt haben muss (oder g ( v j l )
    Figure DE102022213246A1_0012
    erreicht haben muss), bevor das mobile Gerät i zum Punkt g ( v i k )
    Figure DE102022213246A1_0013
    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 s ( v j l ) = g ( v i k )
    Figure DE102022213246A1_0014
    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.
  • Für eine nähere Erläuterung hierzu - sowie auch die beiden schon erwähnten Algorithmen - sei erneut auf „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, verwiesen.
  • 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“, GSADG(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:
    Figure DE102022213246A1_0015
  • Dieser Algorithmus erhält als Eingang („Input“) den nicht begrenzten Graphen, den „Switchable Action Dependency Graph“ GSADG(b), sowie den vorgegebenen zeitlichen Horizont H und gibt als Ausgang („Output“) einen über den zeitlichen Horizont H begrenzten „Switchable Action Dependency Graph“ G S A D C r h c ( b r h c )
    Figure DE102022213246A1_0016
    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]

Claims (15)

  1. Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte (110, 120, 130, 140), insbesondere Roboter, Drohnen oder sich zumindest teilautomatisiert bewegende Fahrzeuge, wobei sich die mobilen Geräte gemäß des Bewegungsplans in einer Umgebung bewegen sollen, umfassend: Bereitstellen eines Bewegungsplans, wobei der Bewegungsplan jedem der mobilen Geräte jeweils einen Bewegungspfad und einen zeitlichen Ablaufplan für ein Befolgen des Bewegungspfads zuordnet, wobei ein Bewegungspfad jeweils Aktionen, die von dem jeweiligen mobilen Gerät in der Umgebung durchzuführen sind, umfasst; Anpassen des Bewegungsplans, wenn wenigstens ein Auslösekriterium vorliegt, wobei das Anpassen des Bewegungsplans umfasst: - Bestimmen (210) eines begrenzten Graphen, der für die mobilen Geräte bis zu einem vorgegebenen Horizont potentielle Aktionen und Verbindungen zwischen Aktionen in der Umgebung umfasst, und - Bestimmen (220) eines angepassten Bewegungsplans, basierend auf dem begrenzten Graphen, im Rahmen einer Optimierung; und Bereitstellen (225) des angepassten Bewegungsplans für die mobilen Geräte, und insbesondere Veranlassen der mobilen Geräten, den angepassten Bewegungsplan zu befolgen.
  2. Verfahren nach Anspruch 1, wobei der begrenzte Graph aus einem nicht begrenzten Graphen bestimmt wird, insbesondere wobei der nicht begrenzte Graphen potentielle Aktionen und Verbindungen in der Umgebung für die mobilen Geräte umfasst, insbesondere wobei den potentiellen Aktionen jeweils Fahr- und/oder Handlungsanweisungen, die von den mobilen Geräten durchführbar sind, und/oder ein Status der mobilen Geräte und/oder eine Information, ob es eine vertauschbare Abhängigkeit zwischen den mobilen Geräten gibt, zugeordnet sind.
  3. Verfahren nach Anspruch 2, wobei das Bestimmen des begrenzten Graphen umfasst: Auswählen, aus dem nicht begrenzten Graphen, aller potentiellen Aktionen, die voraussichtlich innerhalb des Horizonts durchgeführt werden können, und Bestimmen der ausgewählten potentiellen Aktionen als die potentiellen Aktionen des begrenzten Graphen, und/oder Auswählen aller Verbindungen, bei denen es eine vertauschbare Abhängigkeit zwischen mobilen Geräten gibt, und die auf eine der potentiellen Aktionen des begrenzten Graphen zeigen, und Bestimmen der ausgewählten potentiellen Verbindungen als die potentiellen Verbindungen des begrenzten Graphen.
  4. Verfahren nach Anspruch 3, wobei das Bestimmen des begrenzten Graphen weiterhin umfasst: Auswählen von verbleibenden Verbindungen, die auf potentielle Aktionen des begrenzten Graphen zeigen, bis keine Verbindung mehr von einer potentiellen Aktion in dem begrenzten Graphen zu einer potentiellen Aktion außerhalb des begrenzten Graphen zeigt, und Hinzufügen der ausgewählten potentiellen Verbindungen zu den potentiellen Verbindungen des begrenzten Graphen.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei der Bewegungsplan, vor dem Anpassen, ein offener Bewegungsplan ist, bei dem nicht jedem mobilen Gerät (110, 120, 130, 140) eine zu erreichende Ziel-Position oder Ziel-Aktion in der Umgebung zugeordnet ist.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei der Horizont derart vorgegeben ist, dass nicht alle der Vielzahl der mobilen Geräte eine jeweilige, vor dem Anpassen vorgegebene Ziel-Position oder Ziel-Aktion in der Umgebung erreichen.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei das wenigstens eine Auslösekriterium wenigstes eines der folgenden Auslösekriterien umfasst: - es liegt eine Verzögerung bei zumindest einem der mobilen Geräte bei einem Befolgen des Bewegungsplans vor, - es liegt eine Störung bei zumindest einem der mobilen Geräte vor, - es liegt eine Änderung des Bewegungspfads bei zumindest einem der mobilen Geräte vor, und - es ist eine vorgegebene Zeit seit einem letzten Anpassen des Bewegungsplans abgelaufen.
  8. Verfahren nach einem der vorstehenden Ansprüche, wobei wiederholt oder regelmäßig geprüft wird, ob das wenigstens eine Auslösekriterium vorliegt, und wobei der Bewegungsplan immer dann angepasst wird, wenn das wenigstens eine Auslösekriterium vorliegt.
  9. Verfahren nach einem der vorstehenden Ansprüche, weiterhin umfassend: Bestimmen, basierend auf dem angepassten Bewegungsplan, von Bewegungssteuergrößen für eines oder mehrere oder alle der mobilen Geräte, und Bereitstellen der Bewegungssteuergrößen und/oder Bewegen des einen oder der mehreren oder aller mobilen Geräte basierend auf den Bewegungssteuergrößen.
  10. Recheneinheit umfassend einen Prozessor, der so konfiguriert ist, dass er das Verfahren nach einem der vorstehenden Ansprüche ausführt.
  11. Mobiles Gerät (110, 120, 130, 140), insbesondere Roboter, Drohne oder sich zumindest teilautomatisiert bewegendes Fahrzeug, das eingerichtet ist, einen angepassten Bewegungsplan, der gemäß einem der Ansprüche 1 bis 8 bestimmt worden ist, oder Bewegungssteuergrößen, die gemäß Anspruch 9 bestimmt worden sind, zu erhalten, mit einem Antriebssystem und einer Steuer- oder Regeleinheit zum Ansteuern des Antriebssystems basierend auf dem angepassten Bewegungsplan, und/oder den Bewegungssteuergrößen, insbesondere mit einer Recheneinheit (112) nach Anspruch 10
  12. Mobiles Gerät (110, 120, 130, 140) nach Anspruch 11, das weiterhin dazu eingereicht ist, Informationen über eine Störung und/oder eine Verzögerung beim Befolgen des Bewegungsablaufplans bereitzustellen.
  13. System mit mehreren mobilen Geräten (110, 120, 130, 140) nach Anspruch 11 oder 12, und insbesondere mit einer Recheneinheit nach Anspruch 10.
  14. Computerprogramm umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren nach Anspruch 1 bis 9 auszuführen
  15. Computerlesbarer Datenträger, auf dem das Computerprogramm nach Anspruch 14 gespeichert ist.
DE102022213246.7A 2022-12-08 2022-12-08 Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte Pending DE102022213246A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022213246.7A DE102022213246A1 (de) 2022-12-08 2022-12-08 Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte
PCT/EP2023/083883 WO2024120985A1 (de) 2022-12-08 2023-12-01 Verfahren zum anpassen eines bewegungsplans für mobile geräte

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022213246.7A DE102022213246A1 (de) 2022-12-08 2022-12-08 Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte

Publications (1)

Publication Number Publication Date
DE102022213246A1 true DE102022213246A1 (de) 2024-06-13

Family

ID=89073349

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022213246.7A Pending DE102022213246A1 (de) 2022-12-08 2022-12-08 Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte

Country Status (2)

Country Link
DE (1) DE102022213246A1 (de)
WO (1) WO2024120985A1 (de)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7228420B2 (ja) * 2019-03-13 2023-02-24 株式会社東芝 情報処理装置、情報処理方法、情報処理システム及びコンピュータプログラム
US20220163969A1 (en) * 2020-11-20 2022-05-26 Rapyuta Robotics Co., Ltd. Systems and methods for optimizing route plans in an operating environment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
„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
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

Also Published As

Publication number Publication date
WO2024120985A1 (de) 2024-06-13

Similar Documents

Publication Publication Date Title
DE102017223717B4 (de) Verfahren zum Betreiben eines Roboters in einem Multiagentensystem, Roboter und Multiagentensystem
EP3785177B1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neuronalen netzes
DE102016120763A1 (de) Verfahren zur kollisionsfreien Bewegungsplanung
EP3623116A1 (de) Verfahren und vorrichtung zur kollisionsfreien bewegungsplanung eines manipulators
DE102020204351A1 (de) Vorrichtung und verfahren zum planen einer mehrzahl von aufträgen für eine vielzahl von maschinen
DE102013207895A1 (de) Fahrerloses Transportfahrzeug, System mit einem Rechner und einem fahrerlosen Transportfahrzeug, Verfahren zum Betreiben eines fahrerlosen Transportfahrzeugs
EP3812981A1 (de) Verfahren und fertigungsanlage zur herstellung eines produktes
DE102019115981A1 (de) Nicht-deterministisches montagesystem und verfahren
DE102019216232A1 (de) Verfahren und Vorrichtung zum Bereitstellen einer Fahrstrategie für das automatisierte Fahren eines Fahrzeugs
DE102020103754A1 (de) Hyper-assoziation im episodenspeicher
DE112005001095B4 (de) Anordnung für die relative Steuerung von Lastbewegungsaktuatoren
DE102016120660A1 (de) Bestimmung einer Trajektorie mit multi-resolution grid
DE102022213246A1 (de) Verfahren zum Anpassen eines Bewegungsplans für mobile Geräte
DE102020135153A1 (de) Logistikfläche und Verfahren zum Betreiben einer solchen
DE102019205081A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Betreiben eines tiefen neuronalen Netzes
DE102020208620A1 (de) Verfahren und Vorrichtung zum Betreiben eines streckengebundenen Transportsystems mithilfe von Methoden künstlicher Intelligenz
EP3961329A1 (de) Steuereinheit sowie verfahren zum steuern von transporten einer vielzahl an werkstücken in einem modularen montagesystem mittels eines genetischen algorithmus; montagesystem
DE102018217896A1 (de) Parkbereichsmanagementsystem und Parkbereichsmanagementverfahren für zumindest zwei autonome Fahrzeuge
DE112019008005T5 (de) Positionierungssteuergerät und positionierungssteuerverfahren
DE102020127407A1 (de) Verfahren und Steuervorrichtung zur Erzeugung wenigstens eines Fahrauftrags für wenigstens ein fahrerloses Transportfahrzeug, FTF, eines modularen Montagesystems
EP4075230B1 (de) Kartenaktualisierung für einen haushaltsroboter
DE112022002704T5 (de) Verfahren und System zur Verwaltung einer Roboterflotte unter Verwendung eines neuronalen Graphennetzwerks
EP4296815A1 (de) Verfahren zum bestimmen einer trajektorie für ein mobiles gerät
DE102022213838A1 (de) Verfahren zum Bestimmen eines Aufgabenplans für ein mobiles Gerät
DE102022118901B3 (de) Regelungseinrichtung zur Regelung eines dynamischen, sich bewegenden Systems

Legal Events

Date Code Title Description
R163 Identified publications notified