-
Die vorliegende Erfindung betrifft ein Verfahren und System zum Abfahren eines Pfades mit einem mobilen Roboter sowie ein Computerprogrammprodukt zur Durchführung des Verfahrens.
-
Mobile Roboter sollen häufig vorgegebene Pfade abfahren, beispielsweise, um Räume zu überwachen, Waren zu transportieren oder dergleichen. Insbesondere bei der simultanen Posenbestimmung und Kartenerstellung („Simultaneous Localization and Mapping“, SLAM) kann die initiale Vorgabe eines Pfades zum Erkunden einer Umwelt zweckmäßig sein.
-
Aufgabe der vorliegenden Erfindung ist es, das Abfahren eines Pfades mit einem mobilen Roboter zu verbessern.
-
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 9, 10 stellen ein System bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
-
Nach einer Ausführung der vorliegenden Erfindung ist, insbesondere wird, ein Ausgangspfad für einen mobilen Roboter vorgegeben. Dieser Ausgangspfad wird nach einer Ausführung der vorliegenden Erfindung zu einem Soll-Pfad angepasst, den der Roboter in einer Ausführung (statt des ursprünglichen bzw. nicht angepassten Ausgangspfades) abfahren soll.
-
Der mobile Roboter weist in einer Ausführung eine mobile Basis und/oder einen Roboterarm auf, der in einer Ausführung wenigstens drei, insbesondere wenigstens sechs, in einer Ausführung wenigstens sieben Gelenke bzw. (Bewegungs)Achsen aufweist. Zusätzlich oder alternativ ist der mobile Roboter in einer Ausführung ein autonomer Roboter. Bei solchen mobilen Robotern kann die vorliegende Erfindung aufgrund ihrer vielfältigen Einsatzmöglichkeiten mit besonderem Vorteil verwendet werden.
-
In einer Ausführung weisen der Ausgangspfad und der Soll-Pfad jeweils Knoten und diese verbindende Kanten auf. Hierdurch können in einer Ausführung Pfade vorteilhaft, insbesondere effizient, vorgegeben und/oder be- bzw. verarbeitet werden.
-
Durch eine (initiale) Vorgabe eines Ausgangspfads kann, wie einleitend erläutert, insbesondere eine simultanen Posenbestimmung und Kartenerstellung (SLAM) verbessert werden, so dass in einer Ausführung der Roboter eine Umgebungskarte erstellt, während er versucht, den (zu dem Soll-Pfad angepassten) Ausgangspfad abzufahren. Dabei kann ein Erstellen einer Karte insbesondere auch ein Ändern einer bereits vorhandenen Karte umfassen.
-
Die vorliegende Erfindung ist jedoch nicht hierauf beschränkt, sondern kann mit besonderem Vorteil verwendet werden, um einen zu dem Soll-Pfad angepassten Ausgangspfad, in einer Ausführung mehrfach, mit dem mobilen Roboter abzufahren, insbesondere zu Erkundungs-, Überwachungs- und/oder Transportzwecken oder dergleichen.
-
Nach einer Ausführung der vorliegenden Erfindung wird der vorgegebene Ausgangspfad auf Basis, insbesondere unter Optimierung, einer Gütefunktion, in einer Ausführung unter Minimierung einer Kostenfunktion oder analog unter Maximierung einer Nutzenfunktion, zu dem Soll-Pfad angepasst, die sowohl von einem Freiraum des Roboters auf dem Soll-Pfad als auch von einer Differenz zwischen dem Ausgangspfad und Soll-Pfad abhängt, insbesondere auf Basis des Freiraums und der Differenz ermittelt wird, in einer Ausführung iterativ.
-
In einer Ausführung hängt die Gütefunktion derart von dem Freiraum und der Differenz ab, dass sie bei gleicher Differenz mit wachsendem Freiraum besser, insbesondere (als Kostenfunktion) kleiner bzw. (als Nutzenfunktion) größer, wird und/oder bei gleichem Freiraum mit wachsender Differenz schlechter, insbesondere (als Kostenfunktion) größer bzw. (als Nutzenfunktion) kleiner, wird, bzw. wird derart ermittelt bzw. ist, insbesondere wird, derart definiert, in einer Ausführung als gewichtete Summe g = g1 + g2 oder dergleichen.
-
Hierdurch kann in einer Ausführung vorteilhaft ein vorgegebener Ausgangspfad möglichst genau nachgefahren und dabei eine Kollision des mobilen Roboters mit seiner Umgebung vermieden werden. Dadurch kann in einer Ausführung der vorgegebene Ausgangspfad bzw. Vorabinformation vorteilhaft genutzt werden, um eine Erkundungsaufgabe, insbesondere eine simultane Posenbestimmung und Kartenerstellung, eine Überwachungs- und/oder eine Transportaufgabe besser, insbesondere effizienter und/oder zuverlässiger, durchzuführen.
-
In einer Ausführung wird der Ausgangspfad online bzw. während der Roboter, insbesondere erstmalig, versucht, den Soll-Pfad abzufahren, zu dem Soll-Pfad angepasst, in einer Ausführung iterativ. In einer Weiterbildung versucht der Roboter dabei, in einer Ausführung mithilfe einer dynamischen Bahnplanung, einen jeweils nächsten Knoten des Pfades anzufahren. In einer Ausführung wird der Ausgangspfad, insbesondere dabei, schrittweise bzw. sukzessive zu dem Soll-Pfad angepasst, in einer Ausführung jeweils bei Erreichen eines Knotens.
-
Hierdurch kann in einer Ausführung eine Erkundungsaufgabe, insbesondere eine simultane Posenbestimmung und Kartenerstellung, eine Überwachungs- und/oder eine Transportaufgabe besser, insbesondere effizienter und/oder zuverlässiger, durchgeführt werden.
-
In einer Ausführung hängt der Freiraum des Roboters auf dem Soll-Pfad bzw. ein entsprechender Faktor der Gütefunktion von einem oder mehreren minimalen Abständen des Roboters, insbesondere, in einer Ausführung kumulativ, von minimalen Abständen des Roboters an Knoten und/oder minimalen Abständen des Roboters an diese Knoten verbindenden Kanten des Soll-Pfades, zu einer Umgebung, insbesondere Hindernissen in der Umgebung, und/oder einem vorgegebenen Soll-Freiraum, der in einer Ausführung größer Null ist, ab, in einer Ausführung derart, dass die Gütefunktion mit wachsenden minimalen Abständen besser, insbesondere (als Kostenfunktion) kleiner bzw. (als Nutzenfunktion) größer, bzw. der Freiraum bzw. entsprechende Faktor der Gütefunktion mit wachsenden minimalen Abständen größer wird, in einer Weiterbildung für minimale Abstände, die größer als der vorgegebene Soll-Freiraum sind, gleich bleibt, beispielsweise in der Form:
mit dem minimalen Abstand d an der Stelle x
i, insbesondere also einem Knoten oder einer Stelle auf einer Kante mit minimalem Abstand zur Umgebung, bzw. wird derart ermittelt. Der Freiraum des Roboters kann insbesondere eine freie Beweglichkeit des Roboters mit einer vorgegebenen oder beliebigen Orientierung sein.
-
In einer Ausführung wird der Freiraum des Roboters auf dem Soll-Pfad bei der Anpassung des Ausgangspfades zu dem Soll-Pfad gegenüber der Differenz zwischen Ausgangspfades und Soll-Pfad priorisiert, insbesondere derart, dass ein oder mehrere minimale Abstände des Roboters zu seiner Umgebung stets größer als Null ist.
-
Hierdurch kann in einer Ausführung vorteilhaft die Gefahr einer Kollision reduziert werden.
-
In einer Ausführung wird der Freiraum des Roboters auf Basis einer Umgebungskarte des Roboters ermittelt, in einer Ausführung auf Basis einer Umgebungskarte, die der Roboter erstellt, während er versucht, den Soll-Pfad abzufahren, und/oder auf Basis einer Distanzkarte, die ihrerseits auf der Umgebungskarte basiert und für verschiedene Stellen jeweils den minimalen Abstand zur Umgebung angibt.
-
Hierdurch kann in einer Ausführung der Freiraum vorteilhaft, insbesondere effizient und/oder schnell, ermittelt werden.
-
Insbesondere, wenn der Ausgangspfad zu dem Soll-Pfad angepasst wird, während der Roboter versucht, den Soll-Pfad abzufahren, wird für den Freiraum in einer Ausführung nur der Teil des Soll-Pfades berücksichtigt, den der Roboter (bereits) abzufahren versucht hat.
-
Hierdurch kann der Ausgangspfad in einer Ausführung vorteilhaft, insbesondere sukzessive bzw. iterativ und/oder auf Basis einer bereits erkundeten Umgebung, zu dem Soll-Pfad angepasst werden.
-
In einer Ausführung hängt die Differenz zwischen dem Ausgangspfad und Soll-Pfad bzw. ein entsprechender Faktor der Gütefunktion von einer Längendifferenz, Formdifferenz und/oder Posendifferenz zwischen dem Ausgangspfad und Soll-Pfad ab, in einer Ausführung derart, dass die Gütefunktion
- - bei gleicher Form- und/oder Posendifferenz mit wachsender Längendifferenz zwischen dem Ausgangspfad und Soll-Pfad schlechter, insbesondere (als Kostenfunktion) größer bzw. (als Nutzenfunktion) kleiner, wird;
- - bei gleicher Längen- und/oder Posendifferenz mit wachsender Formdifferenz zwischen dem Ausgangspfad und Soll-Pfad schlechter, insbesondere (als Kostenfunktion) größer bzw. (als Nutzenfunktion) kleiner, wird; und/oder
- - bei gleicher Längen- und/oder Formdifferenz mit wachsender Posendifferenz zwischen dem Ausgangspfad und Soll-Pfad schlechter, insbesondere (als Kostenfunktion) größer bzw. (als Nutzenfunktion) kleiner, wird;
insbesondere die Differenz zwischen dem Ausgangspfad und Soll-Pfad bzw. der entsprechende Faktor der Gütefunktion
- - bei gleicher Form- und/oder Posendifferenz mit wachsender Längendifferenz zwischen dem Ausgangspfad und Soll-Pfad größer wird;
- - bei gleicher Längen- und/oder Posendifferenz mit wachsender Formdifferenz zwischen dem Ausgangspfad und Soll-Pfad größer wird; und/oder
- - bei gleicher Längen- und/oder Formdifferenz mit wachsender Posendifferenz zwischen dem Ausgangspfad und Soll-Pfad größer wird;
bzw. wird derart ermittelt.
-
In einer Ausführung wird die Formdifferenz bzw. der entsprechende Faktor der Gütefunktion, in einer Ausführung kumulativ, auf Basis von Winkeln zwischen Knoten des Ausgangspfads verbindenden Kanten des Ausgangspfads und Winkeln zwischen Knoten des Soll-Pfads verbindenden Kanten des Soll-Pfads, insbesondere einer Differenz zwischen Winkeln des Ausgangspfads und (entsprechenden) Winkeln des Soll-Pfads ermittelt, in einer Ausführung derart, dass die Formdifferenz bzw. der entsprechende Faktor der Gütefunktion mit wachsenden Differenzen zwischen Winkeln des Ausgangspfads und (entsprechenden) Winkeln des Soll-Pfads größer bzw. die Gütefunktion schlechter wird.
-
Zusätzlich oder alternativ wird die Posendifferenz bzw. der entsprechende Faktor der Gütefunktion in einer Ausführung auf Basis von Abständen zwischen Knoten des Ausgangspfads und (entsprechenden) Knoten des Soll-Pfads ermittelt, in einer Ausführung derart, dass die Posendifferenz bzw. der entsprechende Faktor der Gütefunktion mit wachsenden Abständen zwischen Knoten des Ausgangspfads und (entsprechenden) Knoten des Soll-Pfads größer bzw. die Gütefunktion schlechter wird.
-
In einer Weiterbildung sind bzw. werden dabei die Abstände mit einem Abstand zu einem (bestimmten, in einer Ausführung ersten bzw. Start)Knoten gewichtet. Dadurch kann in einer Ausführung eine Rotation um diesen bestimmten Knoten vorteilhaft berücksichtigt werden, da sich dadurch ergebende, mit dem Abstand zu diesem bestimmten Knoten wachsende Verschiebungen der Knoten die Gütefunktion weniger beeinflussen.
-
Zusätzlich oder alternativ hängt in einer Ausführung die Differenz zwischen dem Ausgangspfad und Soll-Pfad von einem Skalierungsfaktor zwischen dem Ausgangspfad und Soll-Pfad ab, in einer Weiterbildung wird die Längen- und/oder Posendifferenz auf Basis dieses Skalierungsfaktors unterschiedlich gewichtet, in einer Ausführung schwächer gewichtet, wenn ein Skalierungsfaktor zwischen dem Ausgangspfad und Soll-Pfad von Eins abweicht. Dadurch kann in einer Ausführung vorteilhaft berücksichtigt werden, dass ein Skalierungsfehler zwischen Ausgangspfad und Soll-Pfad zu einer inkorrekten Längen- bzw. Posendifferenz führen kann.
-
Hierdurch kann jeweils, insbesondere in Kombination von zwei oder mehr der vorgenannten Merkmale, der Ausgangspfad so gut wie möglich beibehalten werden.
-
Nach einer Ausführung der vorliegenden Erfindung ist ein System, insbesondere hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist auf: Mittel zum Anpassen eines vorgegebenen Ausgangspfads zu einem Soll-Pfad auf Basis einer Gütefunktion, wobei die Gütefunktion sowohl von einem Freiraum des Roboters auf dem Soll-Pfad als auch von einer Differenz zwischen dem Ausgangspfad und Soll-Pfad abhängt.
-
In einer Ausführung weist das System bzw. sein(e) Mittel auf:
- Mittel zum Anpassen des Ausgangspfades zu dem Soll-Pfad, während der Roboter versucht, den Soll-Pfad abzufahren; und/oder
- Mittel zum Ermitteln des Freiraums des Roboters auf Basis einer Umgebungskarte des Roboters, insbesondere Mittel zum Erstellen einer Umgebungskarte, während der Roboter versucht, den Soll-Pfad abzufahren; und/oder
- Mittel zum Ermitteln der Formdifferenz auf Basis von Winkeln zwischen Knoten des Pfades verbindenden Kanten des Ausgangspfads und Soll-Pfads und/oder zum Ermitteln der Posendifferenz auf Basis von, insbesondere mit einem Abstand zu einem Knoten gewichteten, Abständen zwischen Knoten des Ausgangspfads und Soll-Pfads; und/oder
- Mittel zum, insbesondere mehrfachen, Abfahren des zu dem Soll Pfad angepassten Ausgangspfades mit bzw. durch den Roboter.
-
Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere den mobilen Roboter steuern kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere nichtflüchtiges, Speichermedium zum Speichern eines Programms bzw. mit einem darauf gespeicherten Programm aufweisen, insbesondere sein, wobei ein Ausführen dieses Programms ein System bzw. eine Steuerung, insbesondere einen Computer, dazu veranlasst, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen.
-
In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.
-
In einer Ausführung weist das System den mobilen Roboter auf.
-
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
- 1 - 5: einen mobilen Roboter beim Abfahren eines Pfades nach einer Ausführung der vorliegenden Erfindung.
-
Die Figurenfolge 1 → 2 → 3 → 4 → 5 zeigt einen mobilen Roboter 1 beim Abfahren eines Pfades nach einer Ausführung der vorliegenden Erfindung und damit gleichermaßen ein Verfahren wie auch ein System nach einer Ausführung der vorliegenden Erfindung.
-
Der Roboter 1 befindet sich in einer Umgebung, die durch zwei Hindernisse 60, 61 angedeutet ist.
-
Zur simultanen Posenbestimmung und Kartenerstellung ist ein Ausgangspfad 10 vorgegeben, der Knoten, von denen zur besseren Übersicht nur einige Knoten 11, 12, 13 mit Bezugszeichen versehen sind, und knotenverbindende Kanten, von denen zur besseren Übersicht nur eine Kante 14 mit Bezugszeichen versehen ist, aufweist.
-
In 1 versucht der Roboter 1, ausgehend von Startknoten 11, mithilfe einer dynamischen Bahnplanung den nächsten Knoten des Ausgangspfades 10 anzufahren. Dieser läge jedoch im Hindernis 60, so dass der Roboter diesen Knoten nicht anfahren kann.
-
Entsprechend passt er den Ausgangspfad 10 zu einem Soll-Pfad 20 an. Hierzu minimiert er eine Güte- bzw. Kostenfunktion, die eine gewichtete Summe aus einem Freiraum des Roboters 1 auf dem Soll-Pfad und einer Differenz zwischen dem Ausgangspfad 10 und dem Soll-Pfad 20 umfasst, in einer Ausführung ist.
-
Dabei führt die Berücksichtigung des Freiraums gegenüber dem beim Abfahren erfassten Hindernis 60 sowie die Vorgabe, die Länge, Form und Posen des vorgegebenen Ausgangspfades dabei möglichst beizubehalten, im Ausführungsbeispiel zu der in 2 erkennbaren Rotation des Ausgangspfades 10 in den Soll-Pfad 20. Der Roboter berücksichtigt dabei nur den Freiraum auf dem Teil des Pfades, der er bisher abzufahren versucht hat.
-
Der Roboter 1 versucht nun mithilfe der dynamischen Bahnplanung den nächsten Knoten des zu dem Soll-Pfad 20 angepassten Ausgangspfades 10 anzufahren. Dieser läge jedoch wieder im Hindernis 60, so dass der Roboter diesen Knoten nicht anfahren kann.
-
Entsprechend passt er in seiner in 2 gezeigten Pose den zu dem Soll-Pfad 20 angepassten Ausgangspfad 10 weiter zu einem in 3 gezeigten Soll-Pfad 20' an und minimiert hierzu die Güte- bzw. Kostenfunktion. Der Roboter berücksichtigt dabei wieder nur den Freiraum auf dem Teil des Pfades, der er bisher abzufahren versucht hat.
-
Dies führt zu der in 3 erkennbaren weiteren Rotation des zu dem Soll-Pfad 20 angepassten Ausgangspfades 10 in den in 3 gezeigten Soll-Pfad 20'.
-
Der Roboter 1 versucht nun mithilfe der dynamischen Bahnplanung sukzessive die nächsten Knoten des zu dem Soll-Pfad 20' angepassten Ausgangspfades 10 anzufahren.
-
Dabei würde er jedoch mit dem Hindernis 61 kollidieren.
-
Entsprechend passt er im weiteren Verlauf den zu dem Soll-Pfad 20' angepassten Ausgangspfad 10 weiter zu dem in 4 gezeigten Soll-Pfad 20" an und minimiert hierzu die Güte- bzw. Kostenfunktion.
-
Dies führt zu der in 4 erkennbaren weiteren Rotation des zu dem Soll-Pfad 20' angepassten Ausgangspfades 10 in den in 4 gezeigten Soll-Pfad 20".
-
Dieser weist einerseits überall einen ausreichenden Freiraum zu den Hindernissen 60, 61 auf und entspricht andererseits soweit wie möglich, insbesondere hinsichtlich seiner Länge, Form und Pose, dem initial vorgegebenen Ausgangspfad 10.
-
Entsprechend fährt der Roboter 1 nun diesen zu dem Soll-Pfad 20" angepassten Ausgangspfades 10 weiter bzw., gegebenenfalls mehrfach, erneut ab.
-
Die Figurenfolge 1 → 2 → 3 → 4 → 5 verdeutlicht, dass der Roboter 1 sukzessive den Ausgangspfad 10 zu dem Soll-Pfad 20 → 20' → 20" anpasst und dabei jeweils die oben beschriebene Güte- bzw. Kostenfunktion minimiert und versucht, den anpassten Ausgangspfad abzufahren, wie durch den tatsächlich gefahrenen Weg 2 angedeutet.
-
Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist. Außerdem sei darauf hingewiesen, dass es sich bei den exemplarischen Ausführungen lediglich um Beispiele handelt, die den Schutzbereich, die Anwendungen und den Aufbau in keiner Weise einschränken sollen. Vielmehr wird dem Fachmann durch die vorausgehende Beschreibung ein Leitfaden für die Umsetzung von mindestens einer exemplarischen Ausführung gegeben, wobei diverse Änderungen, insbesondere in Hinblick auf die Funktion und Anordnung der beschriebenen Bestandteile, vorgenommen werden können, ohne den Schutzbereich zu verlassen, wie er sich aus den Ansprüchen und diesen äquivalenten Merkmalskombinationen ergibt.
-
Bezugszeichenliste
-
- 1
- mobiler Roboter
- 2
- abgefahrener Weg
- 10
- vorgegebener Ausgangspfad
- 11-13
- Knoten
- 14
- Kante
- 20; 20'; 20"
- Soll-Pfad
- 60; 61
- Hindernis