-
Die Erfindung betrifft ein Verfahren zum roboterunterstützten Ausführen von Aufgaben, wobei ein Roboter in einem ersten Ausführungsmodus und in wenigstens einem weiteren Ausführungsmodus kontrolliert wird. Außerdem betrifft die Erfindung einen Roboter zum Unterstützen eines Benutzers beim Ausführen von Aufgaben. Außerdem betrifft die Erfindung ein Computerprogramm.
-
Das Dokument
DE 10 2017 209 032 A1 betrifft ein Verfahren zum Steuern eines Roboters. Um eine Auswahl einer vom Roboter durchzuführenden Aktion durch einen Nutzer zu vereinfachen, wird mit dem Dokument
DE 10 2017 209 032 A1 vorgeschlagen, verschiedene Aktionen, die durch den Roboter durchführbar sind, zu ermitteln, die vom Roboter durchführbaren Aktionen gemäß mindestens einer Vorbedingung einzuschränken und diese eingeschränkte Anzahl der vom Roboter durchführbaren Aktionen auf einer Anzeigevorrichtung anzuzeigen, sodass der Nutzer aus dieser eingeschränkten Anzahl eine durchzuführende Aktion auswählen kann.
-
Die am 01.03.2021 angemeldete deutsche Patentanmeldung mit dem amtlichen Aktenzeichen 102021 104 883.4 betrifft ein Verfahren zum roboterunterstützten Ausführen von Aufgaben, wobei ein Roboter in einem ersten Unterstützungsmodus mithilfe eines Benutzermoduls geteilt kontrolliert und in einem zweiten Unterstützungsmodus mithilfe eines Automationsmoduls benutzerüberwacht autonom kontrolliert wird. Um eine vom Benutzer ausgelöste, einstellbare Autonomie insbesondere im Kontext der assistiven Robotik zu ermöglichen, sind das Benutzermodul und das Automationsmodul innerhalb eines geteilten Kontrollmoduls dargestellt und verwenden dieselbe Aktionsrepräsentation.
-
Der Erfindung liegt die Aufgabe zugrunde, ein eingangs genanntes Verfahren bereit zu stellen oder strukturell und/oder funktionell zu verbessern. Außerdem liegt der Erfindung die Aufgabe zugrunde, einen eingangs genannten Roboter bereit zu stellen oder strukturell und/oder funktionell zu verbessern. Außerdem liegt der Erfindung die Aufgabe zugrunde, ein eingangs genanntes Computerprogramm bereit zu stellen oder strukturell und/oder funktionell zu verbessern.
-
Die Aufgabe wird gelöst mit einem Verfahren mit den Merkmalen des Anspruchs 1. Außerdem wird die Aufgabe gelöst mit einem Roboter mit den Merkmalen des Anspruchs 14. Außerdem wird die Aufgabe gelöst mit einem Roboter mit den Merkmalen des Anspruchs 15. Vorteilhafte Ausführungen und/oder Weiterbildungen sind Gegenstand der Unteransprüche.
-
Das Verfahren kann zum Kontrollieren des Roboters dienen. „Kontrollieren“ bezeichnet in diesem Zusammenhang vorliegend insbesondere ein regelungstechnisches und/oder steuerungstechnisches Kontrollieren. Auszuführende Aufgaben können Aufgaben sein, die ein Benutzer und/oder ein Roboter ausführen können/kann. Das Verfahren kann zum Kontrollieren des Roboters bei Kooperation mit einem menschlichen Benutzer, der den Roboter zur Unterstützung beim Ausführen von Aufgaben benutzt (englisch: robotic tasks with a human-in-the-loop, RTHL), dienen.
-
In dem ersten Ausführungsmodus und/oder in dem wenigstens einen weiteren Ausführungsmodus kann der Roboter mithilfe eines Kontrollmoduls kontrolliert werden. Das Kontrollmodul kann ein gemeinsames Kontrollmodul sein, das zum Kontrollieren des Roboters in dem ersten Ausführungsmodus und in dem wenigstens einen weiteren Ausführungsmodus ausgelegt ist. Das Kontrollmodul kann ein geteiltes Kontrollmodul sein. Ein geteiltes Kontrollmodul kann ein erstes Submodul und wenigstens ein weiteres Submodul aufweisen. Ein geteiltes Kontrollmodul kann ein erstes Submodul und ein zweites Submodul aufweisen. Ein erstes Submodul kann zum Kontrollieren des Roboters in dem ersten Ausführungsmodus ausgelegt sein. Ein weiteres Submodul kann zum Kontrollieren des Roboters in dem wenigstens einen weiteren Ausführungsmodus ausgelegt sein. Ein erstes Submodul kann als Benutzermodul ausgeführt sein. Ein zweites Submodul kann als Automationsmodul ausgeführt sein. In dem ersten Ausführungsmodus und in dem wenigstens einen weiteren Ausführungsmodus können dem Roboter unterschiedliche Autonomiegrade zugewiesen sein. In dem ersten Ausführungsmodus kann dem Roboter eine geringere Autonomie zugewiesen sein als in dem wenigstens einen weiteren Ausführungsmodus. In dem wenigstens einen weiteren Ausführungsmodus kann dem Roboter eine größere Autonomie zugewiesen sein als in dem ersten Ausführungsmodus. Der erste Ausführungsmodus und der wenigstens eine weitere Ausführungsmodus können sequentiell, gewichtet sequentiell, parallel und/oder gewichtet parallel ausgeführt werden. Das Verfahren kann mithilfe wenigstens eines Prozessors durchgeführt werden. Das Verfahren kann mithilfe einer Kontrolleinrichtung des Roboters durchgeführt werden.
-
Der erste Ausführungsmodus kann ein erster Unterstützungsmodus sein. Der wenigstens eine weitere Ausführungsmodus kann ein zweiter Unterstützungsmodus sein. Ein Unterstützungsmodus kann zum roboterunterstützten Ausführen von Aufgaben ausgelegt sein. In dem ersten Unterstützungsmodus kann der Roboter geteilt kontrolliert werden. In dem ersten Unterstützungsmodus kann der Roboter mithilfe eines als Benutzermodul ausgeführten Submoduls geteilt kontrolliert werden. Der erste Unterstützungsmodus kann auch als „geteilte Kontrolle“ (englisch: Shared Control) bezeichnet werden. In dem zweiten Unterstützungsmodus kann der Roboter benutzerüberwacht autonom kontrolliert werden. In dem zweiten Unterstützungsmodus kann der Roboter mithilfe wenigstens eines als Automationsmodul ausgeführten Submoduls benutzerüberwacht autonom kontrolliert werden. Der zweite Unterstützungsmodus kann auch als „überwachte Autonomie“ (englisch: Supervised Autonomy) bezeichnet werden. Das erste Submodul und das wenigstens eine weitere Submodul können innerhalb eines geteilten Kontrollmoduls dargestellt sein. Wenigstens ein Ausführungsmodus kann zum Ausführen von Teleoperationen ausgelegt sein. Wenigstens ein Ausführungsmodus kann zum Ausführen vollständig autonomer Operationen ausgelegt sein. Wenigstens ein Ausführungsmodus kann zum direkten Kontrollieren (englisch: Direct Control) des Roboters ausgelegt sein.
-
„Geteilte Kontrolle“ bzw. „Shared Control“ bedeutet insbesondere, dass der Roboter, insbesondere Steuerungsvariablen des Roboters, geteilt vom Benutzer mithilfe eines als Benutzermodul ausgeführten Submoduls und/oder autonom mithilfe eines als Automationsmodul ausgeführten Submoduls kontrolliert werden kann. Der Roboter kann teilweise mithilfe eines als Benutzermodul ausgeführten Submoduls und teilweise mithilfe eines als Automationsmodul ausgeführten Submoduls kontrolliert werden. Eine Aufteilung zwischen einer Kontrolle mithilfe eines als Benutzermodul ausgeführten Submoduls und einer Kontrolle mithilfe eines als Automationsmodul ausgeführten Submoduls kann kontrolliert änderbar sein. Eine Aufteilung zwischen einer Kontrolle mithilfe eines als Benutzermodul ausgeführten Submoduls und einer Kontrolle mithilfe eines als Automationsmodul ausgeführten Submoduls kann nahtlos änderbar sein. „Nahtlos“ kann vorliegend insbesondere bedeuten, dass eine Änderung oder ein Wechsel zumindest annähernd ohne Einfluss für das Ausführen der Aufgabe abläuft. Ein Anteil der Kontrolle mithilfe eines als Benutzermodul ausgeführten Submoduls kann zwischen fast 0% und fast 100% liegen und ein Anteil der Kontrolle mithilfe eines als Automationsmodul ausgeführten Submoduls kann zwischen fast 100% und fast 0% liegen, wobei ein Kontrollanteil eines als Benutzermoduls ausgeführten Submoduls und ein Kontrollanteil eines Automationsmodul ausgeführten Submoduls zusammen immer 100% betragen. Beispielsweise kann eine Kontrolle zu ca. 10% durch den Benutzer und zu ca. 90% durch die Kontrolleinrichtung des Roboters erfolgen. Der Roboter, insbesondere die Steuerungsvariablen, können proportional und/oder aufgeteilt entlang der Bewegungsfreiheitsgrade kontrolliert werden. Die geteilte Kontrolle kann als Kompromiss zwischen direkter Kontrolle und überwachter Autonomie verstanden werden, wobei der Benutzer nur einen Teil der Aufgabe direkt und kontinuierlich kontrolliert und den Rest dem Roboter überlässt.
-
Überwachte Autonomie bedeutet insbesondere, dass der Benutzer ein Ausführen einer Aufgabe an den Roboter übergeben hat und der Roboter die Aufgabe unter Überwachung selbständig ausführt. Die überwachte Autonomie umfasst traditionell zwei Elemente: Erstens, deklaratives Wissen in Form von Symbolen, das dem Roboter das Generieren eines abstrakten High-Level-Plans ermöglicht. Zweitens prozedurales Wissen in Form von geometrischen Operationen, das den Roboter dabei unterstützt, Low-Level-Bewegungspläne zu erstellen und auszuführen.
-
Ein Kontrollmodul kann ein virtuelles Modul sein und/oder virtuelle Strukturen umfassen. Ein Submodul, beispielsweise ein als Automationsmodul ausgeführtes Submodul und/oder ein als Benutzermodul ausgeführtes Submodul, können/kann ein virtuelles Modul sein und/oder virtuelle Strukturen umfassen. Ein Submodul, beispielsweise ein als Automationsmodul ausgeführtes Submodul und/oder ein als Benutzermodul ausgeführtes Submodul, können/kann ein strukturell und/oder funktionell unterscheidbares oder abgrenzbares Modul sein. Ein als Automationsmodul ausgeführtes Submodul kann dazu ausgelegt sein, den Roboter autonom zu kontrollieren. Ein als Automationsmodul ausgeführtes Submodul kann dazu ausgelegt sein, durch Aufgabendefinitionen vorgegebene Aufgaben zu erledigen. Ein als Automationsmodul ausgeführtes Submodul kann dazu ausgelegt sein, Eingabebefehle zum autonomen Kontrollieren als Aktionsrepräsentation zu generieren. Ein als Benutzermodul ausgeführtes Submodul kann dazu ausgelegt sein, den Roboter entsprechend Benutzereingaben zu kontrollieren. Ein als Benutzermodul ausgeführtes Submodul kann dazu ausgelegt sein, Eingabebefehle zum geteilten Kontrollieren als Aktionsrepräsentation zu generieren.
-
Das Kontrollmodul kann in dem ersten Ausführungsmodus und in dem wenigstens einen weiteren Ausführungsmodus Bewegungen und Trajektorien in denselben virtuellen Strukturen planen. Eingabebefehle des Kontrollmoduls können in dem ersten Ausführungsmodus und in dem wenigstens einen weiteren Ausführungsmodus dieselben virtuellen Strukturen verwenden. In dem ersten Ausführungsmodus, beispielsweise in dem ersten Unterstützungsmodus, kann der Roboter durch einen Benutzer über virtuelle Strukturen, insbesondere über ein als Benutzermodul ausgeführtes Submodul, kontrollierbar sein. Ein weiteres Submodul, beispielsweise ein als Automationsmodul ausgeführtes Submodul, kann Bewegungen und Trajektorien in denselben virtuellen Strukturen planen, in denen ein Benutzer Befehle generiert. Eingabebefehle eines ersten Submoduls, beispielsweise Eingabebefehle eines Automationsmoduls, und Eingabebefehle wenigstens eines weiteren Submoduls, beispielsweise Eingabebefehle eines Benutzermoduls, können dieselben virtuellen Strukturen verwenden.
-
Ein geteiltes Kontrollmodul kann ein als Automationsmodul ausgeführtes Submodul und ein als Benutzermodul ausgeführtes Submodul umfassen. Ein als Automationsmodul ausgeführtes Submodul kann in ein als Benutzermodul ausgelegtes Submodul integriert sein. Ein als Benutzermodul ausgeführtes Submodul kann ein als Automationsmodul ausgeführtes Submodul umfassen. Insofern kann ein geteiltes Kontrollmodul auch als „geteiltes Kontrollmodul mit integrierter Autonomie“ (englisch: Shared Control with Integrated Autonomy, SCIA) bezeichnet werden.
-
Ein Submodul und ein weiteres Submodul, beispielsweise ein als Benutzermodul ausgeführtes Submodul und ein als Automationsmodul ausgeführtes Submodul, können mit ihren jeweiligen Eingabebefehlen dieselben Aktionsrepräsentationen verwenden. Ein Submodul, beispielsweise ein als Automationsmodul ausgeführtes Submodul, kann die Aktionsrepräsentationen eines weiteren Submoduls, beispielsweise eines als Benutzermodul ausgeführten weiteren Submoduls, verwenden. Ein Submodul, beispielsweise ein als Benutzermodul ausgeführtes Submodul kann eine Aktionsrepräsentationen eines weiteren Submoduls, beispielsweise eines als Automationsmodul ausgeführten weiteren Submoduls, verwenden. Die Aktionsrepräsentationen können virtuelle Strukturen sein und/oder virtuelle Strukturen umfassen.
-
Innerhalb des Kontrollmoduls können Ausgangsbefehle zum Kontrollieren des Roboters basierend auf Eingabebefehlen generiert werden. Innerhalb eines geteilten Kontrollmoduls können Ausgangsbefehle zum Kontrollieren des Roboters basierend auf Eingabebefehlen eines ersten Submoduls, beispielsweise eines als Automationsmodul ausgeführten Submoduls und/oder auf Eingabebefehlen wenigstens eines weiteres Submoduls, beispielsweise eines als Benutzermodul ausgeführten Submoduls generiert werden. Die Ausgangsbefehle können auch als Robotersteuersignal bezeichnet werden. Die Eingabebefehle können Befehle innerhalb des gemeinsamen oder geteilten Kontrollmoduls sein. Die Eingabebefehle können von dem Kontrollmodul, beispielsweise von einem als Automationsmodul ausgeführten Submodul und/oder von einem als Benutzermodul ausgeführten Submodul, ausgehende Befehle sein. Die Eingabebefehle können Befehle sein, aus denen Ausgangsbefehle generiert werden. Die Ausgangsbefehle können unmittelbar basierend auf Eingabebefehlen des Kontrollmoduls, beispielsweise basierend auf Eingabebefehlen eines als Automationsmodul ausgeführten Submoduls und/oder auf Eingabebefehlen eines als Benutzermodul ausgeführten Submoduls, generiert werden. Die Ausgangsbefehle können ohne gesonderte Ausgangsbefehle des Kontrollmoduls, beispielsweise ohne gesonderte Ausgangsbefehle eines als Automationsmodul ausgeführten Submoduls und/oder Ausgangsbefehle eines als Benutzermodul ausgeführten Submoduls, generiert werden.
-
Die Ausgangsbefehle können entsprechend einem aktiven Ausführungsmodus, beispielsweise entsprechend einem aktiven Unterstützungsmodus, generiert werden. In einem ersten Unterstützungsmodus können die Ausgangsbefehle basierend auf Eingabebefehlen eines Automationsmoduls und/oder auf Eingabebefehlen eines als Benutzermodul ausgeführten Submodul generiert werden. In einem zweiten Unterstützungsmodus können die Ausgangsbefehle basierend auf Eingabebefehlen eines als Automationsmodul ausgeführten Submodul generiert werden. Die Ausgangsbefehle können Ausgangsbefehle des gemeinsamen oder geteilten Kontrollmoduls sein. Die Ausgangsbefehle können Befehle zum Kontrollieren des Roboters sein. Die Ausgangsbefehle können Befehle sein, die an den Roboter gesendet werden, um den Roboter zu Kontrollieren.
-
Innerhalb des gemeinsamen oder geteilten Kontrollmoduls kann ein Wechseln zwischen dem ersten Ausführungsmodus und dem wenigstens einen weiteren Ausführungsmodus basierend auf Eingabebefehlen des Kontrollmoduls, beispielsweise basierend auf Eingabebefehlen eines als Automationsmodul ausgeführten Submoduls und/oder auf Eingabebefehlen eines als Benutzermodul ausgeführten Submodul, ermöglicht werden. Ein Submodul, beispielsweise ein Automationsmodul, kann aktivierbar und/oder deaktivierbar sein. Ein Wechseln zwischen dem ersten Ausführungsmodus und dem wenigstens einen weiteren Ausführungsmodus, beispielsweise zwischen einem ersten Unterstützungsmodus und einem zweiten Unterstützungsmodus, kann in vermittelter Kontrolle (englisch: Traded Control) erfolgen. Insofern kann ein geteiltes Kontrollieren mit Wechsel zwischen dem ersten Ausführungsmodus und dem wenigstens einen weiteren Ausführungsmodus, beispielsweise zwischen einem ersten Unterstützungsmodus und einem zweiten Unterstützungsmodus, auch als „Shared and Traded Control“ bezeichnet werden. Ein Vermitteln der Eingabebefehle eines ersten Submoduls, beispielsweise eines Automationsmoduls, und/oder der Eingabebefehle wenigstens eines weiteren Submoduls, beispielsweise eines Benutzermoduls, kann innerhalb eines geteilten Kontrollmoduls, insbesondere innerhalb virtueller Strukturen, die auch ein Benutzer zur Eingabe verwendet, erfolgen.
-
Ein Wechseln zwischen dem ersten Ausführungsmodus und dem wenigstens einen weiteren Ausführungsmodus, beispielsweise zwischen einem ersten Unterstützungsmodus und einem zweiten Unterstützungsmodus, kann durch Aktivieren/Deaktivieren eines als Automationsmodul ausgeführten Submoduls erfolgen. In dem ersten Ausführungsmodus, beispielsweise in einem ersten Unterstützungsmodus, kann ein als Automationsmodul ausgeführtes Submodul deaktiviert sein. In dem wenigstens einen weiteren Ausführungsmodus, beispielsweise in einem zweiten Unterstützungsmodus, kann ein als Automationsmodul ausgeführtes Submodul aktiviert sein. Ein als Automationsmodul ausgeführtes Submodul kann standardmäßig deaktiviert sein. Ein als Automationsmodul ausgeführtes Submodul kann durch einen Benutzerbefehl aktiviert und/oder deaktiviert werden.
-
Zum weiteren diesbezüglichen technologischen Hintergrund wird auf die Veröffentlichungen „S. Bustamante, G. Quere, K. Hagmann, X. Wu, P. Schmaus, J. Vogel, F. Stulp, and D. Leidner, „Toward seamless transitions between shared control and supervised autonomy in robotic assistance," IEEE Robotics and Automation Letters, vol. 6, no. 2, pp. 3833-3840, 2021.“ und „G. Quere, A. Hagengruber, M. Iskandar, S. Bustamante, D. Leidner, F. Stulp, and J. Vogel, „Shared Control Templates for Assistive Robotics," in 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 2020, p. 7.“ verwiesen, deren Merkmale auch zur Lehre der vorliegenden Erfindung gehören und die vollständig in die Offenbarung der vorliegenden Erfindung einbezogen sind.
-
Das Aktionsziel kann ein Ausführen oder Erfüllen einer spezifischen Aufgabe sein. Das Aktionsziel kann ein Gesamtziel sein. Das Aktionsziel kann durch Ausführen geeigneter Aktionen erreichbar sein. Das Aktionsziel kann durch sequentielles Ausführen geeigneter Aktionen erreichbar sein. Die zum Erreichen des Aktionsziels auszuführenden und/oder ausgeführten Aktionen können die Aktionssequenz bilden. Die Aktionssequenz kann die zum Erreichen des Aktionsziels auszuführenden und/oder ausgeführten Aktionen umfassen oder durch diese Aktionen gebildet sein. Die Aktionssequenz kann symbolischer Plan sein. Der symbolische Plan kann alle symbolischen Übergänge enthalten, die zum Erreichen des Aktionsziels erforderlich sind. Die auf ein Aktionsziel gerichtete Aktionssequenz kann eine Aktionssequenz sein, die zum Erfüllen des Aktionsziels ausgelegt ist. Die Aktionssequenz kann generiert und/oder ausgeführt werden, um das Aktionsziel zu erreichen. Die Aktionssequenz kann weder vorbestimmt noch fest sein. Die Aktionssequenz kann zum Erreichen eines Aktionsziels geplant werden. Die Aktionssequenz kann individuell zum Erreichen eines spezifischen Aktionsziels geplant werden. Wenigstens eine Aktion und wenigstens eine weitere Aktion der Aktionssequenz können zumindest teilweise parallel zueinander ausgeführt werden.
-
Das Aktionsziel kann unter Berücksichtigung eines Benutzerbefehls bestimmt werden. Der Benutzerbefehl kann auf einer Eingabe und/oder auf einer Auswahl durch einen Benutzer basieren. Für eine Auswahl durch den Benutzer können folgende Schritte ausgeführt werden: Ermitteln möglicher Aktionsziele; Einschränken einer Anzahl der ermittelten möglichen Aktionsziele unter Berücksichtigung wenigstens einer Vorbedingung; Anbieten der eingeschränkten Anzahl von Aktionszielen, um dem Benutzer eine Auswahl zu ermöglichen. Die eingeschränkte Anzahl von Aktionszielen kann dem Benutzer durch Anzeigen auf einer Anzeigevorrichtung angeboten werden.
-
Die Vorbedingung kann eine globale Vorbedingung sein, die insbesondere besagt, dass eine auf ein Aktionsziel gerichtete Aktionssequenz erst ausführbar ist, nachdem eine erforderliche vorausgehende Aktionssequenz abgeschlossen ist. Die Vorbedingung kann besagen, dass eine Aktionssequenz mit einer begrenzten Anzahl von Aktionen abgeschlossen werden kann, wobei diese Anzahl einstellbar sein kann. Eine Aktionssequenz kann als Ausnahme definiert werden und dem Benutzer zur Auswahl angeboten werden, obwohl die zum Abschließen dieser Aktionssequenz erforderlichen Anzahl von Aktionen eine zugelassene begrenzte Anzahl überschreitet. Die Vorbedingung kann besagen, dass nur Aktionssequenzen an zu manipulierenden Objekten angezeigt werden, die weniger als ein einstellbarer Höchstabstand vom Roboter entfernt sind. Es kann eine Blacklist mit unzulässigen Aktionssequenzen angelegt wird und die Vorbedingung kann besagen, dass eine auf der Blacklist stehende Aktionssequenz dem Benutzer nicht zur Auswahl angeboten werden darf. Es kann eine Whitelist mit erforderlichen Aktionssequenzen angelegt werden und die Vorbedingung kann besagen, dass eine auf der Whitelist stehende Aktionssequenz dem Benutzer zur Auswahl angeboten werden muss. Die Vorbedingung kann besagen, dass der Roboter ausschließlich in einem begrenzten räumlichen Bereich, insbesondere innerhalb der Wohnung des Nutzers verwendet werden darf. Die Vorbedingung kann besagen, dass dem Benutzer nur Aktionssequenzen zur Auswahl angeboten werden dürfen, die einen vorbestimmten Energiebedarf nicht überschreiten.
-
Zum weiteren diesbezüglichen technologischen Hintergrund wird auf die Veröffentlichung „D. S. Leidner, Cognitive Reasoning for Compliant Robot Manipulation, ser. Springer Tracts in Advanced Robotics. Cham: Springer International Publishing, 2019, vol. 127.“ verwiesen, deren Merkmale auch zur Lehre der vorliegenden Erfindung gehört und die vollständig in die Offenbarung der vorliegenden Erfindung einbezogen ist.
-
Eine Aktionssequenz kann mithilfe eines symbolischen Planers generiert werden. Beim/zum Generieren einer Aktionssequenz können Aktionsdefinitionen und/oder Objektdefinitionen verwendet werden. Die Aktionsdefinitionen können Aktionen definieren, die Teil einer Aktionssequenz sein können. Die Objektdefinitionen können Objekte definieren, die Teil einer Umgebung des Roboters sein können.
-
Beim/zum Generieren der Aktionssequenz können aus einer Vielzahl von Aktionsdefinitionen geeignete Aktionsdefinitionen ausgewählt werden. Die Aktionsdefinitionen können in einer Aktionsdatenbank enthalten sein. Die Aktionsdatenbank kann eine zentrale Datenbank sein. Beim/zum Generieren der Aktionssequenz kann deklaratives und/oder prozedurales Wissen genutzt werden. Beim/zum Generieren der Aktionssequenz kann deklaratives und/oder prozedurales Wissen aus den Aktionsdefinitionen genutzt werden.
-
Beim/zum Generieren der Aktionssequenz können endliche Zustandsautomaten (englisch: Finite State Machine, FSM) in Form geteilter Kontroll-Vorlagen (englisch: Shared Control Templates, SCTs) erstellt werden. Die geteilten Kontroll-Vorlagen können dazu ausgelegt sein, aus Eingabebefehlen des Kontrollmoduls, beispielsweise aus Eingabebefehlen eines ersten Submoduls, beispielswiese eines Automationsmoduls, und/oder Eingabebefehlen wenigstens eines weiteren Submoduls, beispielswiese eines Benutzermoduls, Ausgangsbefehle zu generieren. Das gemeinsame oder geteilte Kontrollmodul kann geteilte Kontroll-Vorlagen verwenden. Zwischen geteilten Kontroll-Vorlagen können Zustände und Übergänge Schlüsselelemente bilden. Jeder Zustand kann eine andere Fertigkeitsphase repräsentieren. Übergänge zwischen Zuständen können ausgelöst werden, wenn bestimmte vordefinierte Ereignisse zwischen interessierenden Objekten im Arbeitsbereich auftreten. Eingabebefehle des Kontrollmoduls, beispielsweise Eingabebefehle eines ersten Submoduls, wie Automationsmodul, und/oder Eingabebefehle eines weiteren Submoduls, wie Benutzermodul, können mithilfe der geteilten Kontroll-Vorlagen auf aufgabenrelevante Roboterbewegungen abgebildet werden. Mit dem Abbilden der Eingabebefehle des Kontrollmoduls, beispielsweise der Eingabebefehle eines ersten Submoduls, wie Automationsmodul, und/oder der Eingabebefehle eines weiteren Submoduls, wie Benutzermodul, auf aufgabenrelevante Roboterbewegungen können die Ausgangsbefehle generiert werden. Eine geteilte Kontroll-Vorlage kann einen Benutzer beim Erreichen einer Aufgabe unterstützen, indem sie objekt- und aufgabenspezifische Abbildungen und Randbedingungen für jeden Zustand einer Fertigkeit bereitstellt. Dabei kann die FSM einen Fortschritt überwachen und Übergänge zwischen den verschiedenen Zuständen auslösen.
-
Die Autonomie kann innerhalb einer SCT implementiert werden. Die Autonomie kann dieses SCT verwenden. Ein erstes Submodul, beispielsweise ein Automationsmodul, kann definiert werden und Eingabebefehle an die SCT übermitteln. Während dem Ausführen einer Aufgabe in dem SCIA kann ein Kontrollieren des Roboters immer innerhalb einer SCT bleiben und eine Eingabeautorität kann zwischen dem ersten Submodul, beispielsweise einem Automationsmodul, und wenigstens einem weiteren Submodul, beispielsweise einem Benutzermodul, gewechselt werden. Das bedeutet, dass die SCT unabhängig davon ist, ob ein Eingabebefehle von dem ersten Submodul, beispielsweise von dem Automationsmodul, oder von dem wenigstens einen weiteren Submodul, beispielsweise dem Benutzermodul, kommt. Unabhängig davon, ob die Eingabebefehle von dem ersten Submodul, beispielsweise von dem Automationsmodul, oder von dem wenigstens einen weiteren Submodul, beispielsweise von dem Benutzermoduls ausgehen, können immer die gleichen Zustandsübergänge, Eingangszuordnungen, aktiven Randbedingungen und/oder die gleiche Gesamtsteuerung angewendet werden.
-
Zum weiteren diesbezüglichen technologischen Hintergrund wird auf die Veröffentlichungen „S. Bustamante, G. Quere, K. Hagmann, X. Wu, P. Schmaus, J. Vogel, F. Stulp, and D. Leidner, „Toward seamless transitions between shared control and supervised autonomy in robotic assistance," IEEE Robotics and Automation Letters, vol. 6, no. 2, pp. 3833-3840, 2021.“ und „G. Quere, A. Hagengruber, M. Iskandar, S. Bustamante, D. Leidner, F. Stulp, and J. Vogel, „Shared Control Templates for Assistive Robotics," in 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 2020, p. 7.“ verwiesen, deren Merkmale auch zur Lehre der vorliegenden Erfindung gehören und die vollständig in die Offenbarung der vorliegenden Erfindung einbezogen sind.
-
Das Verfahren kann eine Planungsphase und eine Ausführungsphase umfassen. In der Planungsphase kann eine vorläufige Aktionssequenz generiert und die vorläufige Aktionssequenz simulativ ausgeführt und getestet werden. Die vorläufige Aktionssequenz kann mit unterschiedlichen Parametern getestet werden. Bei einem negativen Testergebnis können in der Planungsphase wiederholt weitere vorläufige Aktionssequenzen generiert und simulativ ausgeführt und getestet werden, bis eine weitere vorläufige Aktionssequenz mit positivem Ergebnis getestet wird. Bei einem positiven Testergebnis kann die mit positivem Ergebnis getestete vorläufige Aktionssequenz oder die mit positivem Ergebnis getestete weitere vorläufige Aktionssequenz in der Ausführungsphase als Aktionssequenz real ausgeführt werden.
-
Der Roboter kann zum Unterstützen eines Benutzers beim Ausführen von Aufgaben ausgelegt sein. Der Roboter kann ein autonomer mobiler Roboter sein. Der Roboter kann ein Assistenzroboter, ein humanoider Roboter, ein Personal Robot oder ein Dienstleistungsroboter sein. Der Roboter kann Kinematiken aufweisen. Der Roboter kann Gelenke und Glieder aufweisen. Der Roboter kann Aktuatoren und Sensoren aufweisen. Der Roboter kann eine Ein- und/oder Ausgabeeinrichtung für einen Benutzer, die auch als Benutzerschnittstelle bezeichnet werden kann, aufweisen. Die Ein- und/oder Ausgabeeinrichtung kann dazu ausgelegt sein, Benutzerbefehle zu erfassen. Die Ein- und/oder Ausgabeeinrichtung kann dazu ausgelegt sein, einem Benutzer Aktionsziele zur Auswahl anzubieten. Die Ein- und/oder Ausgabeeinrichtung kann als Touchscreen ausgeführt sein. Der Roboter kann eine Kontrolleinrichtung aufweisen. Die Kontrolleinrichtung kann wenigstens einen Prozessor, wenigstens einen Arbeitsspeicher, wenigstens einen Datenspeicher und/oder wenigstens eine Signalschnittstelle aufweisen. Die Kontrolleinrichtung und die Ein- und/oder Ausgabeeinrichtung können miteinander signalübertragend verbunden sein. Mithilfe der Kontrolleinrichtung kann das Computerprogramm ausführbar sein. Der Roboter kann ein realer Roboter sein. Der Roboter kann ein simulierter Roboter oder eine Robotersimulation sein.
-
Der Roboter kann ein benutzerauslösbares Vermittlungssystem aufweisen. Das Vermittlungssystem kann dazu dienen, zu jedem Zeitpunkt Eingabebefehle des Kontrollmoduls, beispielsweise Eingabebefehle eines ersten Submoduls, wie Automationsmodul, und Eingabebefehle wenigstens eines weiteren Submoduls, wie Benutzermodul, zusammenzuführen und/oder zwischen Eingabebefehlen eines ersten Submoduls, wie Automationsmodul, und Eingabebefehlen wenigstens eines weiteren Submoduls, wie Benutzermodul, zu wechseln. Ein Wechseln zwischen Eingabebefehlen eines ersten Submoduls, wie Automationsmodul, und Eingabebefehlen wenigstens eines weiteren Submoduls, wie Benutzermodul, kann durch einen Eingabebefehl eines Benutzers zum Wechseln des Ausführungsmodus, beispielsweise eines Unterstützungsmodus, initiiert werden.
-
Das Computerprogramm kann auf einer Kontrolleinrichtung eines Roboters installierbar und/oder ausführbar sein. Das Computerprogramm kann als Computerprogrammprodukt vorliegen. Das Computerprogramm kann auf einem Datenträger als installierbare und/oder ausführbare Programmdatei vorliegen. Das Computerprogramm kann dazu dienen, in einen Arbeitsspeicher einer Kontrolleinrichtung eines Roboters geladen zu werden.
-
Zusammenfassend und mit anderen Worten dargestellt ergibt sich somit durch die Erfindung unter anderem ein Verfahren für die Zielplanung von Roboteraufgaben, die unter gemeinsamer Kontrolle, überwachter Autonomie oder beidem ausgeführt werden.
-
Die Erfindung kann sich insbesondere durch folgende Merkmale auszeichnen:
- - Ein Planungssystem für einen Roboter, insbesondere Assistenzroboter, das Handlungssequenzen, die auch als Aktionssequenzen bezeichnet werden können, generiert, die sowohl in gemeinsamer Kontrolle als auch in überwachter Autonomie ausgeführt werden können. Darüber hinaus kann ein Benutzer an jedem Punkt einer Aufgabenausführung zwischen diesen beiden Varianten wechseln.
- - Das Planungssystem nimmt als Eingabe ein Ziel, das auch als Aktionsziel bezeichnet werden kann, das der Benutzer über eine Benutzerschnittstelle, wie Tablet oder Bildschirm, eingegeben oder aus einer Reihe von Optionen ausgewählt hat.
- - Während einer Planungsphase fragt das Planungssystem eine zentrale Datenbank ab, die Aktionen und deren Definitionen, auch als Aktionsdefinitionen bezeichnet, enthält, und fragt auch einen Umgebungszustand ab. Das System nutzt das deklarative Wissen aus den Aktionen und erstellt eine Aktionssequenz, die das Ziel erfüllt.
- - Das Planungssystem nutzt prozedurales Wissen aus den Aktionen und erstellt endliche Zustandsautomaten in Form von Shared Control Templates.
- - Die Pläne und Zustandsautomaten werden simuliert und mit verschiedenen Parametern getestet. Wenn alle Parameter fehlschlagen, versucht es der Planer mit anderen Aktionen.
- - In einer Ausführungsphase können die Zustandsautomaten verwendet werden, um die Aktionssequenzen auszuführen und den Roboter zu steuern, sowohl im Modus der gemeinsamen Steuerung, der auch als erster Unterstützungsmodus bezeichnet werden kann, als auch im Modus der überwachten Autonomie, der auch als zweiter Unterstützungsmodus bezeichnet werden kann.
-
Mit der Erfindung wird eine Flexibilität beim roboterunterstützten Ausführen von Aufgaben ermöglicht oder erhöht. Es wird ein Framework für Constraint Action Templates (CATs) bereitgestellt, das Aktionssequenzen und geteilte Kontroll-Vorlagen mit dem Hauptziel kombiniert, eine Aufgabenplanung für die gemeinsame Kontrolle, insbesondere in dem ersten Ausführungsmodus, zu ermöglichen. Die CATs ermöglichen eine symbolische Planung von Aktionssequenzen, die für eine Kontrolle des Roboters in mehreren Ausführungsmodi gemeinsam genutzt werden können und sogar einen reibungslosen Wechsel zwischen den Ausführungsmodi während der Ausführung erlauben. Beispielsweise ermöglichen die CATs eine symbolische Planung von Aktionssequenzen, die für eine gemeinsame Kontrolle und eine autonome Kontrolle unter Verwendung eines als Automationsmodul ausgeführten Submoduls verwendet werden können und sogar einen reibungslosen Wechsel zwischen beiden Kontrollmodi während der Ausführung erlauben.
-
Nachfolgend werden Ausführungsbeispiele der Erfindung unter Bezugnahme auf eine Figur näher beschrieben, dabei zeigt schematisch und beispielhaft:
- 1 ein Framework für Constraint Action Templates, das Aktionssequenzen und geteilte Kontroll-Vorlagen kombiniert.
-
Das in 1 gezeigte Framework 100 ermöglicht es, einen Roboter 102 bereitzustellen, der einen Benutzer 104 bei einem Ausführen von Aufgaben, beispielsweise von allgemeinen Aufgaben, industrielle Aufgaben, Aufgaben in der Raumfahrt und/oder Aufgaben im Gesundheitswesen, flexibel unterstützt, indem für unterschiedliche Aufgaben zielgerichtete Pläne generiert werden können, die Pläne in angepassten Autonomiestufen des Roboters 102, einschließlich direkter Kontrolle, gemeinsamer Kontrolle, überwachter Autonomie und vollständiger Autonomie, ausgeführt werden können und der Benutzer 104 während einem Ausführen der Pläne zwischen unterschiedlichen Autonomiestufen wechseln kann.
-
Zum roboterunterstützten Ausführen einer Aufgabe wird zunächst unter Berücksichtigung eines Benutzerbefehls 106 ein Aktionsziel 108 bestimmt und dann mithilfe eines Aufgabenplaners 110 eine auf das Aktionsziel 108 gerichtete Aktionssequenz 112 generiert. Die Aktionssequenz 112 umfasst einen Startblock 114 geeignete Aktionen, wie Aktion 116, Aktion 118 und Aktion 120, und einen Zielblock 122.
-
Zum Generieren der die Aktionen 116, 118, 120 umfassenden Aktionssequenz 112 werden aus einer zentralen Datenbank 124, die eine Vielzahl von Aktionsdefinitionen enthält, geeignete Aktionsdefinitionen, wie Aktionsdefinition 126, Aktionsdefinition 128 und Aktionsdefinition 130, ausgewählt. Die ausgewählten Aktionsdefinitionen 126, 128, 130 werden zusammen mit Objektdefinitionen 132, 134, 136, die Objekte einer Umgebung des Roboters 102 definieren, verwendet, um eine Aktionssequenz 112 zu erstellen, die das Aktionsziel 108 erfüllt. Dabei nutzt der Aufgabenplaner 110 deklaratives Wissen aus den in der Datenbank 118 gespeicherten Aktionen.
-
Unter Nutzung von prozeduralem Wissen aus den Aktionen 116, 118, 120 der Aktionssequenz 112 werden endliche Zustandsautomaten in Form geteilter Kontroll-Vorlagen, wie geteilte Kontroll-Vorlage 138 aus der Aktion 116 und geteilte Kontroll-Vorlage 140 aus der Aktion 118, erstellt.
-
In einer Planungsphase wird eine vorläufige Aktionssequenz generiert, simulativ ausgeführt und mit unterschiedlichen Parametern getestet. Bei einem negativen Testergebnis werden in der Planungsphase wiederholt weitere vorläufige Aktionssequenzen generiert, simulativ ausgeführt und getestet, bis eine weitere vorläufige Aktionssequenz mit positivem Ergebnis getestet wird. Bei einem positiven Testergebnis wird die mit positivem Ergebnis getestete vorläufige Aktionssequenz in einer Ausführungsphase als Aktionssequenz 112 real ausgeführt.
-
Der Roboter 102 kann in mehreren Ausführungsmodi mit unterschiedlichen Autonomiegraden kontrolliert werden. In einem ersten Ausführungsmodus 142 kann der Roboter 102 in geteilter Kontrolle 144 kontrolliert werden. In einem zweiten Ausführungsmodus 146 kann der Roboter 102 in überwachter Autonomie 148 benutzerüberwacht autonom kontrolliert werden. Der erste Ausführungsmodus 142 und der zweite Ausführungsmodus 146 sind in diesem Fall Unterstützungsmodi.
-
Ein Ausführen 150 der Aktionssequenz 112 zum Kontrollieren des Roboters 102 kann in geteilter Kontrolle 144 unter Berücksichtigung eines Benutzerbefehls 152 über ein niedrigdimensionales latentes Signal xuser als Eingabebefehl 154 erfolgen, das in dem ersten Ausführungsmodus 142 als Signal x mithilfe der geteilten Kontroll-Vorlagen 138, 140 kontextabhängig auf aufgabenrelevante Roboterbewegungen abgebildet wird, um ein Robotersteuersignal u als Ausgangsbefehl 156 zu generieren.
-
Beim Ausführen der Aktionssequenz 112 in dem ersten Ausführungsmodus 142 kann symbolisches Wissen über das Aktionsziel 108 zur Verfügung gestellt werden, um während einer geteilten Kontrolle 144 einen aufgabenorientierten Prozess in einem latenten, niedrigdimensionalen Raum xaut als Eingabebefehl 158 zu generieren mit dem Ziel, das Aktionsziel 108 zu erreichen.
-
Die Eingabebefehle 154 und die Eingabebefehle 158 verwenden dieselbe Aktionsrepräsentation. Damit kann während dem in 1 in zeitlichem Verlauf 160 angedeuteten Ausführen der Aktionssequenz 112 bei einem Benutzerbefehl 152 zum Wechseln in den zweiten Ausführungsmodus 146 mit sofortiger Wirkung ein nahtloser Wechsel von der geteilten Kontrolle 144 zur überwachten Autonomie148 erfolgen, indem von dem Signal xuser als Eingabebefehl 154 zu dem Signal xaut als Eingabebefehl 158 umgeschaltet wird.
-
Die vorliegende Aktionsdarstellung - Constraint Action Templates (CATs) - kombiniert auf diese Weise die Vorteile von Aktionssequenzen, wie Aktionssequenz 112, und geteilten Kontroll-Vorlagen, wie geteilte Kontroll-Vorlagen 138, 140.
-
Ein Anwendungsbeispiel ist ein System mit einem an einem Rollstuhl montierter Roboterarm. Die Erfindung ermöglicht es dem Benutzer 104, komplexe Abfragen zu stellen und Aufgaben mit Aktionssequenzen 112 zu erfüllen. Wenn es in der Umgebung des Roboters 102 einen Tisch mit einer Mikrowelle und einer Tasse gibt, kann der Benutzer 104 beispielsweise das Aktionsziel 108 „stelle die Tasse in die Mikrowelle“ eingeben. Dieses Aktionsziel 108 besteht aus drei Aktionen 116, 118, 120, die der Roboter 102 nacheinander ausführt: die Mikrowelle öffnen, die Tasse herausnehmen und sie in die Mikrowelle stellen. Der Roboter 102 führt dann diese Aktionen 116, 118, 120 in der Ausführungsphase aus. Die Erfindung kann auch in anderen Bereichen der Robotik verwirklicht werden, beispielsweise bei Weltraumrobotern, die Astronauten helfen.
-
Mit „kann“ sind insbesondere optionale Merkmale der Erfindung bezeichnet. Demzufolge gibt es auch Weiterbildungen und/oder Ausführungsbeispiele der Erfindung, die zusätzlich oder alternativ das jeweilige Merkmal oder die jeweiligen Merkmale aufweisen.
-
Aus den vorliegend offenbarten Merkmalskombinationen können bedarfsweise auch isolierte Merkmale herausgegriffen und unter Auflösung eines zwischen den Merkmalen gegebenenfalls bestehenden strukturellen und/oder funktionellen Zusammenhangs in Kombination mit anderen Merkmalen zur Abgrenzung des Anspruchsgegenstands verwendet werden.
-
Bezugszeichenliste
-
- 100
- Planungsframework
- 102
- Roboter
- 104
- Benutzer
- 106
- Benutzerbefehl
- 108
- Aktionsziel
- 110
- Aufgabenplaner
- 112
- Aktionssequenz
- 114
- Startblock
- 116
- Aktion
- 118
- Aktion
- 120
- Aktion
- 122
- Zielblock
- 124
- Datenbank
- 126
- Aktionsdefinition
- 128
- Aktionsdefinition
- 130
- Aktionsdefinition
- 132
- Objektdefinition
- 134
- Objektdefinition
- 136
- Objektdefinition
- 138
- Kontroll-Vorlage
- 140
- Kontroll-Vorlage
- 142
- erster Ausführungsmodus
- 144
- geteilte Kontrolle
- 146
- zweiter/weiterer Ausführungsmodus
- 148
- überwachte Autonomie
- 150
- Ausführen
- 152
- Benutzerbefehl
- 154
- Eingabebefehl
- 156
- Ausgangsbefehl
- 158
- Eingabebefehl
- 160
- Verlauf
-
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 Patentliteratur
-
- DE 102017209032 A1 [0002]
-
Zitierte Nicht-Patentliteratur
-
- S. Bustamante, G. Quere, K. Hagmann, X. Wu, P. Schmaus, J. Vogel, F. Stulp, and D. Leidner, „Toward seamless transitions between shared control and supervised autonomy in robotic assistance,“ IEEE Robotics and Automation Letters, vol. 6, no. 2, pp. 3833-3840, 2021 [0019, 0028]
- G. Quere, A. Hagengruber, M. Iskandar, S. Bustamante, D. Leidner, F. Stulp, and J. Vogel, „Shared Control Templates for Assistive Robotics,“ in 2020 IEEE International Conference on Robotics and Automation (ICRA), Paris, France, 2020, p. 7 [0019, 0028]
- D. S. Leidner, Cognitive Reasoning for Compliant Robot Manipulation, ser. Springer Tracts in Advanced Robotics. Cham: Springer International Publishing, 2019, vol. 127 [0023]