WO2020083633A1 - Vorrichtung und verfahren zur ansteuerung eines robotersystems - Google Patents

Vorrichtung und verfahren zur ansteuerung eines robotersystems Download PDF

Info

Publication number
WO2020083633A1
WO2020083633A1 PCT/EP2019/077139 EP2019077139W WO2020083633A1 WO 2020083633 A1 WO2020083633 A1 WO 2020083633A1 EP 2019077139 W EP2019077139 W EP 2019077139W WO 2020083633 A1 WO2020083633 A1 WO 2020083633A1
Authority
WO
WIPO (PCT)
Prior art keywords
component
robot system
configuration
variables
configurations
Prior art date
Application number
PCT/EP2019/077139
Other languages
English (en)
French (fr)
Inventor
Ralph Lange
Jan Kristof BEHRENS
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
Publication of WO2020083633A1 publication Critical patent/WO2020083633A1/de

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39117Task distribution between involved manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39135For multiple manipulators operating at same time, avoid collision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40438Global, compute free configuration space, connectivity graph is then searched
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40446Graph based
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40463Shortest distance in time, or metric, time optimal
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40517Constraint motion planning, variational dynamic programming
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40518Motion and task planning

Abstract

Vorrichtung und Verfahren zur Ansteuerung eines Robotersystem (102), wobei eine Komponente (114, 116) des Robotersystems (102) abhängig von einem Bewegungsplan (σ) angesteuert wird, wobei eine Roboter-unabhängige Beschreibung von Teilaufgaben (ω) Information über Posen umfasst, wobei die Information über die Posen durch eine Zuordnung einer Reihenfolge von Konfigurationen für die Komponente (114, 116) in dem Bewegungsplan (σ) zugeordnet ist, und wobei in einem kombinatorischen Suchvorgang eine Zuweisung der Teilaufgaben (ω) zu wenigstens einer Komponente (114, 116) des Robotersystems (102) und die Reihenfolge der für diese Teilaufgaben (ω) anzusteuernden Konfigurationen abhängig von Information über durch die wenigstens eine Komponente (114, 116) einnehmbaren Konfigurationen, der Information über die Posen, der Zuordnung und abhängig von wenigstens einer Bedingung (Cintra, Cinte r) für wenigstens einen Teil der Roboter-unabhängigen Beschreibung der Teilaufgabe (ω) bestimmt wird.

Description

Beschreibung
Titel
Vorrichtung und Verfahren zur Ansteuerunq eines Robotersvstems
Stand der Technik
Zur Ansteuerung eines Robotersystems, insbesondere eines mehrarmigen Roboters, werden Bewegungsabläufe abhängig von den Aufgaben des
Robotersystems geplant und in Ansteueranweisungen für das Robotersystem umgesetzt.
Um flexible Produktionsabläufe zu ermöglichen, muss das Robotersystem für neue Aufgaben schnellstmöglich gemäß einer neuen optimalen Planung angesteuert werden.
Offenbarung der Erfindung
Das Verfahren zur Ansteuerung eines Robotersystem mit wenigstens einer ansteuerbare Komponente sieht vor, dass eine Komponente des
Robotersystems abhängig von einem Bewegungsplan angesteuert wird, wobei eine Roboter-unabhängige Beschreibung von Teilaufgaben Information über Posen umfasst, wobei die Information über die Posen durch eine Zuordnung einer Reihenfolge von Konfigurationen für die Komponente in dem
Bewegungsplan zugeordnet ist, und wobei in einem kombinatorischen
Suchvorgang eine Zuweisung der Teilaufgaben zu wenigstens einer Komponente des Robotersystems und die Reihenfolge der für diese Teilaufgaben
anzusteuernden Konfigurationen abhängig von Information über durch die wenigstens eine Komponente einnehmbaren Konfigurationen, der Information über die Posen und der Zuordnung bestimmt wird. Eine Pose definiert eine Position und Orientierung insbesondere eines Endeffektors des Robotersystems im Raum. Dadurch werden Bewegungs-Serien für Bewegungen der wenigstens einen Komponente in einer Arbeitsumgebung des Robotersystems mit einer Zeitparametrisierung vorzugsweise mittels Constraint-Programmierung bestimmt, die durch das Robotersystem ohne Kollision der wenigstens einen Komponente mit einer anderen Komponente oder mit Objekten in der Arbeitsumgebung ausführbar sind. Damit wird der Betrieb von eng gekoppelten Robotersystemen effizient optimiert.
Unter einem Endeffektor wird hierbei das letzte Element einer kinematischen Kette bezeichnet. Bei Industrierobotern kann es sich zum Beispiel um eine Einheit zum Schweißen von Autokarosserien oder allgemein um einen einfachen Greifer handeln, bei humanoiden Robotern kann es sich beispielsweise um die Hände handeln.
Vorzugsweise wird die Zuweisung der Teilaufgaben und/oder die Reihenfolge der für diese Teilaufgaben anzusteuernden Konfigurationen im kombinatorischen Suchvorgang abhängig von wenigstens einer Bedingung insbesondere für wenigstens einen Teil der Roboter-unabhängigen Beschreibung der Teilaufgabe bestimmt. Optional werden so weitere Bedingungen im selben Suchvorgang erfüllt.
Vorzugsweise werden im kombinatorischen Suchvorgang Werte aus einem Wertebereich bestimmt, welche insbesondere die wenigstens eine Bedingung erfüllen, und wobei die Werte für Variablen für die Posen, Werte für Variablen für die Zuweisung der Teilaufgaben zu den Komponenten, Werte für Verbindungs- Variablen für eine Zuordnung der Variablen für die Posen zu Konfigurations- Variablen und Werte für die Konfigurations-Variablen, die die Reihenfolge der für die Teilaufgaben anzusteuernden Konfigurationen festlegen, bestimmt. Ein Constraint-Löser bestimmt effizient einen zeitlich festgelegten Bewegungsplan für anzusteuernde Komponenten. Dies ermöglicht eine effiziente Ansteuerung der Komponenten.
Vorzugsweise werden im kombinatorischen Suchvorgang Werte für Horizont- Variablen bestimmt, die die Anzahl der zu berücksichtigenden Konfigurations- Variablen festlegen. Damit wird vermieden, dass das Festlegen eines neuen Horizonts den Löser neu startet. Vorzugsweise ist die Zuordnung indexbasiert. Dies macht die Lösung durch den Constraint-Löser sehr schnell auffindbar.
Vorteilhafterweise ist vorgesehen, dass die Zuordnung eine der Posen einer Konfiguration zuordnet, in der die Komponente in diese Pose bewegt ist. Dies stellt eine für die Lösung mittels des Constraint-Lösers besonders geeignete Verbindung von Aufgaben-Modell und Bewegungs-Modell dar.
Vorteilhafterweise umfasst die Information über die Konfigurationen eine diskretisierte, auf einem Graphen basierende Repräsentation, in der Knoten des Graphs die Konfigurationen des Robotersystems repräsentieren, in die das Robotersystem überführbar ist, und wobei eine Kante des Graphs, an deren einen Ende ein erster Knoten angeordnet ist und an deren anderen Ende ein zweiter Knoten angeordnet ist, eine Bewegung einer Komponente des
Robotersystems repräsentiert, durch die eine erste Konfiguration der
Komponente des Robotersystems, die der erste Knoten repräsentiert, in eine zweite Konfiguration der Komponente des Robotersystems, die der zweite Knoten repräsentiert, überführbar ist, und wobei der Kante ein Gewicht zugeordnet ist, das eine minimale Dauer einer Überführung der Komponente des Robotersystems aus der ersten Konfiguration in die zweite Konfiguration charakterisiert. Dies stellt ein besonders geeignetes Modell der Bewegung der Komponente dar, aus dem mittels der Summe der Gewichte aller Kanten, die bei der Bewegung aus einer Konfiguration in eine andere Konfiguration passiert werden, ein Maß für die Dauer der Bewegung erzeugt werden kann.
Vorteilhafterweise wird einem Knoten des Graphs, der gemäß der Roboter- unabhängigen Aufgabenbeschreibung eine Soll-Konfiguration für eine
Komponente des Robotersystems darstellt, eine Vielzahl Knoten des Graphs zugeordnet, wobei für wenigstens einen Pfad von wenigstens einem der Vielzahl Knoten zum Knoten, der die Soll-Konfiguration darstellt, eine Summe von Gewichten der auf dem Pfad liegenden Kanten bestimmt wird, und wobei der Bewegungsplan abhängig vom Pfad mit der geringsten Summe definiert ist. Damit wird eine optimale Lösung effizient auffindbar.
Vorteilhafterweise ordnet für eine erste Komponente des Robotersystems eine erste Zuordnung einer ersten Soll-Konfiguration für die erste Komponente eine Vielzahl Knoten des Graphs zu, aus deren Konfiguration die erste Soll- Konfiguration erreichbar ist, wobei für eine zweite Komponente des
Robotersystems eine zweite Zuordnung einer zweiten Soll-Konfiguration für die zweite Komponente eine Vielzahl Knoten des Graphs zuordnet, aus deren Konfiguration die zweite Soll-Konfiguration erreichbar ist, und wobei Knoten des Graphs einander als Beschränkung zugeordnet werden, in deren Konfigurationen die erste Komponente und die zweite Komponente bei zeitgleichem Erreichen dieser Konfiguration kollidieren. Dieses Modell ermöglicht es besonders effizient, mögliche Kollisionen der Komponenten zu vermeiden.
Vorteilhafterweise ist wenigstens ein Intervall definiert, das einen Übergang zwischen zwei Konfigurationen charakterisiert, wobei das wenigstens eine Intervall durch eine Startzeit, eine Endzeit und eine Dauer des Übergangs definiert ist, und/oder dass wenigstens ein Intervall definiert ist, das ein Verweilen in einer der Konfigurationen charakterisiert, wobei das wenigstens ein Intervall durch eine Startzeit, eine Endzeit und eine Dauer des Verweilens definiert ist.
Dies ermöglicht ein besonders effizientes Auffinden der Startzeit und der Endzeit abhängig von der Dauer für die Bewegung.
Eine Vorrichtung zur Ansteuerung eines Robotersystems mit wenigstens zwei voneinander unabhängig ansteuerbaren miteinander gekoppelten Komponenten umfasst eine Recheneinrichtung, eine Ansteuereinrichtung für das
Robotersystem und einen Speicher für Instruktionen, eine Roboter-unabhängige Aufgabenbeschreibung und/oder Information über Konfigurationen für die Ansteuerung dieser Komponente, wobei die Recheneinrichtung ausgebildet ist, das Robotersystem mittels der Ansteuereinrichtung gemäß dem Verfahren anzusteuern, wenn die Recheneinrichtung die Instruktionen ausführt.
Weitere vorteilhafte Ausgestaltungen ergeben sich aus der folgenden
Beschreibung und der Zeichnung. In der Zeichnung zeigt:
Fig. 1 schematisch Teile eines Robotersystems und einer Vorrichtung zu
dessen Ansteuerung,
Fig. 2 schematisch eine Übersicht über ein auf Constraint-Programmierung basierendes Modell,
Fig. 3 schematisch Teile einer Repräsentation eines Konfigurationsraums einer Komponente des Robotersystems,
Fig. 4 schematisch Schritte in einem Verfahren zur Ansteuerung des
Robotersystems.
Figur 1 stellt schematisch Teile einer Vorrichtung 100 zur Ansteuerung eines Robotersystems 102 dar.
Das Robotersystem 102 umfasst wenigstens eine ansteuerbare Komponente. Das Robotersystem 102 kann auch einen oder mehrere Roboter mit mehreren voneinander unabhängig ansteuerbaren Komponenten umfassen. Die
Komponenten sind beispielsweise miteinander gekoppelt, weil sie denselben Arbeitsraum nutzen. Dadurch beeinflussen sich diese Komponenten. Die
Komponenten können auch strukturell und/oder funktional miteinander gekoppelt sein. Die Komponenten können Greifeinrichtungen oder
Bearbeitungseinrichtungen sein. Das Robotersystem 102 kann auch eine automatisierte Maschine sein, die andere Komponenten umfasst. Beispielsweise können automatisch betriebene Türen, etc. als Komponente angesteuert werden.
Das Robotersystem 102 kann beispielsweise Teil einer Maschine zum Sortieren von Objekten oder einer Maschine zum Durchführen eines Spritzgussverfahrens zur Herstellung eines Objekts beispielsweise mit anschließender automatisierter Kontrolle des erzeugten Objekts sein.
Die Vorrichtung 100 zur Ansteuerung des Robotersystems 102 umfasst eine Recheneinrichtung 104, beispielsweise einen leistungsstarken Computer. Die Vorrichtung 100 umfasst eine Ansteuereinrichtung 106 für das Robotersystem 102. Die Vorrichtung 100 umfasst einen Speicher 108. Der Speicher 108 und die Ansteuereinrichtung 106 sind über jeweilige Datenleitungen 1 10, beispielsweise einen Datenbus, mit der Recheneinrichtung 104 verbunden. Der Speicher 108 umfasst eine Roboter-unabhängige Aufgabenbeschreibung und Information über Konfigurationen für die Ansteuerung der Komponenten.
Eine Konfiguration ist beispielweise bei einem Robotersystem 102 mit einer Vielzahl Freiheitsgraden, ein Tupel von Werten für die Freiheitsgrade des Robotersystems 102. Eine Endeffektorpose eines Endeffektors des
Robotersystems 102 ergibt sich aus der Kofiguration. Eine bestimmte Pose ist durch eine Position und Orientierung insbesondere des Endeffektors des
Robotersystems 102 im zweidimensionalen oder dreidimensionalen Raum definiert. Diese kann beispielsweise durch Gelenkwinkel einzelner Komponenten definiert sein, durch die ein Endeffektor des Robotersystems 102 an einen bestimmten Punkt im Raum mit einer bestimmten Orientierung bewegt ist.
Die Aufgabenbeschreibung definiert Aufgaben, die durchgeführt werden müssen, um ein Ziel zu erreichen. Es können auch Varianten der Ausführung definiert werden, von denen dann jene ausgewählt wird, die zur schnellsten
Gesamtarbeitszeit führt. Zum Sortieren ist beispielsweise für jedes zu sortierende Objekt eine Start-Pose und eine Ziel-Pose definiert. Die Aufgabenbeschreibung definiert die Aufgabe, das Objekt aus der Start-Pose in die Ziel-Pose zu bewegen. Für das Spritzgussverfahren kann die Aufgabenbeschreibung das Erzeugen des Objekts durch den Spritzguss und die Kontrolle des Objekts definieren.
Der Speicher 108 umfasst Instruktionen bei deren Ausführung durch die
Recheneinrichtung 104 das Robotersystem 102 mittels der Ansteuereinrichtung 106 gemäß einem im Folgenden beschriebenen Verfahren ansteuerbar ist.
Im Verfahren wird ein Löser eingesetzt, der aussagenlogische und algebraische Bedingungen und Beschränkungen verarbeiten kann. Der vorzugsweise verwendete Löser basiert auf constraint programming, d.h. einem Löser, der programmatisch für die Lösung für Constraint Satisfaction Probleme ausgebildet ist. Ein Constraint Satisfaction Problem wird allgemein durch ein Tripel (X;D;C) definiert, wobei X eine Menge Variablen, D eine Menge Domänen, d.h.
Wertebereiche für die Variablen, und C eine Menge an Bedingungen,
insbesondere Beschränkungen für die Variablen definiert. Die Lösung eines Constraint Satisfaction Problems ist die Zuordnung von Werten zu den Variablen, die alle Bedingungen erfüllt. Um eine derartige Lösung zu finden, führt der Löser eine backtracking Suche über die Variablen mit geeigneten Werten aus, die gemäß einer geeigneten Heuristik, beispielsweise zufällig, ausgewählt werden.
Für die Ansteuerung ist die Ansteuereinrichtung 106 mittels einer Datenleitung 1 12 mit dem Robotersystem 102 verbindbar. Die Vorrichtung 100 kann auch in das Robotersystem 102 integriert sein. Das Robotersystem 102 ist im Beispiel ein mehrarmiger Roboter. In Figur 1 ist ein zweiarmiger Roboter mit einer ersten Komponente 1 14 und einer zweiten Komponente 116 dargestellt. Diese sind über einen Roboterkörper 1 18 strukturell gekoppelt. Zur Ausführung einer bestimmten Aufgabe, beispielsweise ein
Sortieren von Objekten oder zur Durchführung eines Spritzgussverfahrens können die Komponenten auch lediglich dadurch gekoppelt sein, dass sie denselben Arbeitsraum nutzen. Es können auch mehrere voneinander unabhängige Roboter vorgesehen sein, deren Komponenten denselben
Arbeitsraum nutzen.
Unter Komponente wird im Beispiel ein aktiv ansteuerbarer Arm des Roboters oder ein aktiv ansteuerbareres Teil einer Maschine verstanden. Indirekt, durch die Ansteuerung einer aktiv ansteuerbaren Komponente ansteuerbare andere Komponenten sind ebenfalls als Komponenten im Sinne der Beschreibung zu verstehen.
Das im Folgenden beschriebene Verfahren betrifft den Betrieb eines
Robotersystems.
Das Verfahren wird anhand des zweiarmigen Roboters beschrieben. Die Arme können in einer Arbeitsumgebung des Robotersystems 102 einen stark überlappenden Arbeitsbereich haben. Daher wird der Betrieb der Arme innerhalb eines im Arbeitsbereich gemeinsam genutzten Raumes mittels des Verfahrens abgestimmt.
Aufgaben aus einer Produktion, wie beispielsweise das Sortieren von Objekten können potentiell parallelisiert werden. Andere Aufgaben aus einer Produktion, wie die Kontrolle von durch Spritzguss erzeugter Objekte müssen in bestimmter zeitlicher Reihenfolge erfolgen.
Um einen effizienten Betrieb des Roboters zu erreichen, werden durch das Verfahren vom Roboter auszuführende Aufgaben auf die Arme verteilt, die Reihenfolge der Aufgaben für jeden Arm festgelegt und je Arm ein
Bewegungsplan, beispielsweise eine Bewegungs-Serie mit Zeitparametrisierung, erstellt. Die Arme werden im Beispiel anhand ihrer jeweiligen Bewegungs-Serie angesteuert.
Folgende Randbedingungen werden im Beispiel berücksichtigt:
Die Komponenten, im Beispiel die Arme, dürfen nicht mit der Umwelt, d.h.
anderen Objekten in der Arbeitsumgebung des Robotersystems 102, oder untereinander, d.h. gegenseitig, kollidieren.
Die Bewegungen sind durch die Kinematik der Roboter, insbesondere der Arme, und durch jeweilige Bewegungsgeschwindigkeiten oder Anschläge, die vorgegeben sind, limitiert.
Zeitliche Abhängigkeiten, die die Aufgaben derselben Komponente oder unterschiedlicher Komponenten untereinander zur Erreichung des Ziels einhalten müssen, sind zu erfüllen. Beispielsweise muss eine Aufgabe vor einer anderen Aufgabe abgeschlossen sein oder parallel zu dieser ausgeführt werden.
Beispielsweise muss vor einem Start einer Aufgabe berücksichtigt werden, dass eine andere Aufgabe eine bestimmte Dauer hat.
Die im Folgenden näher dargestellte Problemformulierung stellt eine Roboter- unabhängig Aufgabenbeschreibung dar, die einerseits weniger komplex und andererseits allgemeiner als Programme für ein spezielles Robotermodell ist. Die Aufgabenbeschreibung ermöglicht den Transfer von Aufgaben auf andere Roboter oder andere Arbeitsplätze, d.h. Umgebungen für den Roboter, ohne die Aufgabenbeschreibung anzupassen.
Im Folgenden wird von einer gesteuerten Arbeitsumgebung ausgegangen, in der mögliche Posen von Objekten und mögliche Ablagepunkte für Objekte im dreidimensionalen Raum der Arbeitsumgebung bekannt sind. Vorzugsweise sind alle Posen und Ablageorte vorbekannt.
Im Folgenden wird zudem von einer hindernisfreien Arbeitsumgebung ausgegangen, d.h. zumindest ein Teil der Arbeitsumgebung ist zumindest zeitweise hindernisfrei und erlaubt es mit wenigstens einer der Komponenten zumindest zeitweise jede der möglichen Posen und Ablagepunkte für Objekte zu erreichen.
Ein für die Erledigung einer Aufgabe geeigneter Bewegungsplan für eine Komponente ist im Beispiel als Bewegungs-Serien je Komponente definiert, mit der die für die Erledigung der Aufgabe erforderlichen Posen und/oder
Ablagepunkte für Objekte in einzelnen Handlungen angesteuert werden. Für die Erledigung mancher Aufgaben ist die Reihenfolge der Handlungen in der Bewegungs-Serie unerheblich. Für Aufgaben, zu deren Erledigung eine bestimmte Reihenfolge der einzelnen Handlungen einzuhalten ist, sind die einzelnen Handlungen einer Bewegungs-Serie zeitlich in der Reihenfolge geordnet, in der die Handlungen zur Erledigung der Aufgabe auszuführen sind.
Zudem können zeitliche Abhängigkeiten zwischen Bewegungspläne
unterschiedlicher Komponenten vorgesehen sein. Beispielsweise ist im
Spritzgussverfahren der Spritzguss selbst zeitlich gesehen zwingend vor der Kontrolle des im Spritzguss hergestellten Objekts auszuführen. Beim Sortieren der Objekte ist die zeitliche Reihenfolge demgegenüber unerheblich.
Ein zeitlich festgelegter Bewegungsplan aller Komponenten, die für die
Erledigung einer Aufgabe angesteuert werden, wird in einem im Folgenden beschriebenen Modell zur simultanen Aufgabenzuweisung und
Bewegungsablaufkoordination basierend auf geordneten Ansteuerbedingungen bestimmt.
Eine Menge geordneter Ansteuerbedingungen und ihre zeitliche Anordnung zueinander stellt eine Roboter-unabhängige Aufgabenbeschreibung dar, insbesondere ohne einen genauen zeitlich festgelegten Bewegungsplan für das Robotersystem 102 selbst vorzuschreiben. Die Roboter-unabhängige
Aufgabenbeschreibung lässt viele Entscheidungsmöglichkeiten hinsichtlich der Konfiguration, einer Zuordnung von Aufgaben zu Komponenten oder der Reihenfolge der Ansteuerung der Komponenten offen.
In Figur 2 ist eine Übersicht über eine beispielhafte Roboter-unabhängige Aufgabenbeschreibung und beispielhafte Bewegungspläne für Komponenten. Der Wert einer Variablen A legt fest welche der Komponenten eines Robotersystems welche Teilaufgabe mit ihrem Bewegungsplan ausführt. Der Wert der Variablen A ist in der Roboter-unabhängigen Aufgabenbeschreibung nicht zwangsläufig festgelegt.
Die Übersicht umfasst ein Aufgaben-Modell 202. Das Aufgaben-Modell 202 umfasst erste Teilaufgaben wi der Roboter-unabhängigen
Aufgabenbeschreibung. Das Aufgaben-Modell 202 umfasst zweite Teilaufgaben 002 der Roboter-unabhängigen Aufgabenbeschreibung. Eine Zuordnung 204 verbindet das Aufgaben-Modell 202 mit einem Bewegungs-Modell 206.
Das Bewegungs-Modell 206 umfasst Bewegungspläne. Das Bewegungs-Modell 206 ist durch eine Reihe von Konfigurations-Variablen C, definiert. Die
Konfigurations-Variablen C, haben einen Wertebereich, der einer Menge Knoten in einem im Folgenden beschriebenen Graphen entspricht, der mögliche Konfigurationen des Robotersystems 102 definiert. Vorzugsweise repräsentieren die Knoten mögliche Posen von Objekten und mögliche Ablagepunkte für Objekte im dreidimensionalen Raum der Arbeitsumgebung. Vorzugsweise sind außerdem Knoten im freien Raum definiert, wobei insbesondere eine maximale Kantenlänge nicht überschritten wird. Dies ermöglicht eine dichtere
Koordinierung der Komponenten.
Die erste Teilaufgabe wi ist im in Figur 2 dargestellten Beispiel mit einem ersten Bewegungsplan oi des Bewegungs-Modells 206 über erste Verbindungs- Variablen, Xi, ..., X3 verbunden. Die zweite Teilaufgabe 002 ist im in Figur 2 dargestellten Beispiel mit einem zweiten Bewegungsplan o2 des Bewegungs- Modells 206 über zweite Verbindungs-Variablen Xi, ..., X5 verbunden. Der Wert einer Variable A legt fest, auf welchen Bewegungsplan sich die X, einer
Teilaufgabe beziehen. Die Verbindungs-Variablen stellen eine Zuordnung dar, die einer Pose L eine Konfigurations-Variable C zuordnet.
Die erste Teilaufgabe 001 ist durch Variablen für erste Posen, die im Beispiel mit Li, ..., I_3 bezeichnet sind, in der Arbeitsumgebung definiert. Die zweite
Teilaufgabe 002 ist durch Variablen für zweite Posen, die im Beispiel mit Li, ..., L5 bezeichnet sind, in der Arbeitsumgebung definiert. Die erste Teilaufgabe 001 ist abhängig von Werten für erste Intervalle definiert. Im Beispiel sind Variablen für erste Intervalle mit h, ..., I3 bezeichnet und jeweils den Variablen für die ersten Posen Li, L3 mit demselben Index zugeordnet. Die zweite Teilaufgabe 002 ist abhängig von Werten für zweite Intervalle definiert. Im Beispiel sind Variablen für zweite Intervalle mit h, ..., I5 bezeichnet und jeweils den Variablen für die zweiten Posen Li, ..., L5 mit demselben Index zugeordnet. Die ersten Verbindungs- Variablen Xi , ... X3 sind jeweils den Variablen der ersten Pose Li , ... , L3 und den ersten Intervallen h, ..., I3 mit demselben Index zugeordnet. Die zweiten
Verbindungs-Variablen Xi, ... X5 sind jeweils den Variablen für die zweite Pose Li, ..., Ls und den zweiten Intervallen h, ..., I5 mit demselben Index zugeordnet.
Der erste Bewegungsplan 01 umfasst m Konfigurations-Variablen Ci, C2, C3, ... Cm. Jeder der Konfigurations-Variablen C, mit 1 <= i < m sind zwei Intervalle / v, / zugeordnet.
Der zweite Bewegungsplan 02 umfasst n-x Konfigurations-Variablen Cx, ..., Cn. Jeder der Konfigurations-Variablen C, mit x <= i < n sind im Beispiel zwei Intervalle / v, / zugeordnet. Die Anordnung der Konfigurations-Variablen ist entlang einer Produktionsspanne 208 für die Erledigung der Aufgabe dargestellt. Die Intervalle sind im Beispiel Tupel, die eine Startzeit, eine Endzeit und eine Dauer des Intervalls definieren. Aus der Belegung der Konfigurations-Variablen und der Variablen für die Intervalle mit Werten ergibt sich die dargestellte Produktionsspanne 208. Die Produktionsspanne 208 wird vorzugsweise als Optimierungskriterium verwendet.
Die erste Teilaufgabe 001 ist eine erste geordnete Ansteuerbedingung für die Komponente, der die erste Teilaufgabe 001 durch den Wert der Variablen A zugeordnet ist. Die zweite Teilaufgabe 002 ist eine zweite geordnete
Ansteuerbedingung für die Komponente, der die zweite Teilaufgabe 002 durch den Wert der Variablen A zugeordnet ist.
Allgemein sind die Bewegungspläne s im Beispiel durch eine Reihenfolge von m Konfigurations-Variablen C und eine Reihenfolge von 2m-1 Intervallvariablen I definiert. Es gilt im Beispiel: s = ([Ci, c2. cm], [1?, II /2 W, l\ . 4]).
Allgemein sind Teilaufgaben w im Beispiel durch folgendes Tupel definiert: ίύ ( A , _P , ... , Pi\, [ ... , Lj], [LJ, ... , /j], Cinfrcu hinter)·
Die Variablen P, repräsentieren ausführbare primitive Aktionen, d.h. Handlungen aus der Roboter-unabhängigen Aufgabenbeschreibung, beispielsweise„greifen“, „platzieren“,„bohren“.
Eine Ressource n ist ein abstraktes oder physisches Objekt des Roboters, das für eine bestimmte Zeit exklusiv reservierbar ist. Beispielsweise ist die Ressource n ein Werkstückhalter oder ein Greifer. Im Beispiel ist dieselbe Ressource n unterschiedlichen Intervallen der ersten Teilaufgabe 001 und der zweiten
Teilaufgabe 002 zugeordnet. Dies ist durch zwei unterschiedliche Rechtecke und deren Zuordnung zu dem mit h bezeichneten Intervall einerseits, und den mit h und l5 bezeichneten Intervallen andererseits dargestellt. Die Intervalle, während der die Ressource genutzt wird, überschneiden sich nicht.
In Figur 2 stellen die übrigen Rechtecke Variablen für Intervalle dar.
Bezeichnungen anderer Variablen sind in einem Kreis dargestellt. Die
Darstellung in Figur 2 bezieht sich auf eine Produktionsspanne 208 in der Teilaufgaben in vorgegebener Reihenfolge abgearbeitet werden.
Mit 71 ... , /; sind Intervalle bezeichnet, die eine Startzeit, eine Endzeit und eine Dauer einer primitiven Aktion mit demselben Index charakterisieren.
Mit den Intervallen l , ...
Figure imgf000014_0001
wird im Beispiel eine Dauer der Bewegung einer Komponente aus einer Konfiguration in eine andere Konfiguration berücksichtigt. Im Beispiel wird jedes Intervall / der Dauer der Bewegung aus einer
Konfiguration, die durch den Wert der Konfigurations-Variable C, bezeichnet ist, in eine Konfiguration, die mit dem Wert der Konfigurations-Variablen G+1 bezeichnet ist, zugeordnet. Mit den Intervallen wird eine Dauer des
Verweilens in einer Konfiguration, die mit dem Wert der Konfigurations-Variablen Ci bezeichnet ist, berücksichtigt. Das Verweilen dient entweder der Ausführung einer Aktion oder dem Warten bis zur nächsten Bewegung.
Mit Cintra wird eine Menge Bedingungen, insbesondere Beschränkungen, für Variablen derselben geordneten Ansteuerbedingungen bezeichnet. Es wird beispielsweise je eine Bedingung je geordneter Ansteuerbedingung definiert. Die Beschränkungen sind beispielsweise eine Auswahl bestimmter Komponenten, eine Menge Posen die Anzusteuern sind, bestimmte primitive Aufgaben, die auszuführen sind, eine minimale Wartezeit bei einer bestimmten Pose. Mit Cintra wird eine Menge von Beschränkungen definiert, die sich ausschließlich auf Variablen innerhalb der geordneten Ansteuerbedingung beziehen. Diese werden genutzt, um mögliche Varianten in der Aufgabenausführung abzubilden.
Beispielsweise definiert Cintra für einen Fall zweier Maschinen, die im
Arbeitsraum mit unterschiedlicher Arbeitsgeschwindigkeit arbeiten, Varianten. Das Robotersystem 102 kann ein Objekt entweder in der ersten Maschine oder in der zweiten Maschine bearbeiten lassen. Ausgehend davon, dass die erste Maschine für die Bearbeitung eine kürzere Zeit benötigt als die zweite Maschine, wird diese Abhängigkeit von der ausgewählten Maschine implizit in der Variablen für die Pose und der Variablen für die Dauer der Bearbeitung, d.h. das Intervall, als Beschränkung in Cintra abgelegt.
Mit Cinter wird eine Menge Bedingungen, insbesondere Beschränkungen, auf Variablen von unterschiedlichen geordneten Ansteuerbedingungen bezeichnet. Die Beschränkungen definieren beispielsweise kausale oder zeitliche
Abhängigkeiten zwischen den geordneten Ansteuerbedingungen. Dies dient beispielsweise der Synchronisierung der Ansteuerung oder der Vermeidung sich gegenseitig ausschließender Posen. Mit Cinter wird eine Menge an
Beschränkungen zwischen Variablen verschiedener geordneter
Ansteuerbedingungen definiert. Beispielsweise sind Allen-Intervall-Relationen nach Allen, James F. "Maintaining knowledge about temporal intervals".
Communications of the ACM. ACM Press: 832-843. ISSN 0001-0782, definiert, mit denen ein Verhältnis zweier Intervalle I beschrieben wird. Beispielsweise wird als Relation zweier Intervalle I definiert, dass eines der Intervalle nach dem anderen Intervall oder während des anderen Intervalls starten muss, oder dass sich die Intervalle nicht überschneiden. Es könnte aber auch festgelegt werden, dass zwei geordnete Ansteuerbedingungen von unterschiedlichen Komponenten erledigt werden müssen. Zum Beispiel greift in der ersten Variante ein erster Arm eine Bohrmaschine und ein zweiter Arm ein mit einem Loch zu versehendes Bauteil. In der zweiten Variante greift umgekehrt der erste Arm das Bauteil und der zweite Arm die Bohrmaschine. Im Folgenden wird davon ausgegangen, dass die Aufgaben und die Roboter- unabhängigen Aufgabenbeschreibungen, d.h. die Menge geordneter
Ansteuerbedingungen für die Teilaufgaben, bekannt sind. Welche der
Komponenten welche der Teilaufgaben erledigt, ist im Beispiel festlegbar. Die Roboter-unabhängigen Aufgabenbeschreibung umfasst beispielsweise die für ein Sortieren oder ein Spritzgussverfahren anzusteuernden Posen.
Das Verfahren zur Ansteuerung des Robotersystems 102 wird anhand der Figuren 3 und 4 beschrieben.
Im Verfahren ist ein Schritt 402 vorgesehen, in dem der Bewegungsplan für eine Komponente bestimmt wird.
Aus der Roboter-unabhängigen Aufgabenbeschreibung, d.h. im Beispiel aus der Menge der geordneten Ansteuerbedingungen, werden für die Komponenten des Robotersystems 102 individuelle Bewegungspläne bestimmt, die durch das Robotersystem 102 ausführbar sind. Die Variable A in einer geordneten
Ansteuerbedingung hat den Wertebereich der im Robotersystem 102
verfügbaren Komponenten. Durch Belegen der Variable A in einer geordneten Ansteuerbedingung wird entschieden, welche der Komponenten die geordneten Ansteuerbedingung, d.h. die Teilaufgabe erledigen soll.
Dazu wird eine diskretisierte, auf dem Graphen basierende Repräsentation verwendet, in der Knoten des Graphs Werte der Konfigurations-Variablen C, des Robotersystems 102 repräsentieren, in die das Robotersystem 102 bewegbar ist. Den Knoten sind im Beispiel Zahlenwerte zugeordnet. Die Konfigurationen werden im Beispiel durch Konfigurations-Variablen C, repräsentiert, deren mögliche Werte durch die Menge der Zahlenwerte für die Knoten des Graphs definiert ist.
Eine Kante Ey des Graphs, an deren einem Ende ein erster Knoten K, angeordnet ist und an deren anderen Ende ein zweiter Knoten Kj angeordnet ist,
repräsentiert eine Bewegung für eine Komponente des Robotersystems 102, durch die eine erste Konfiguration der Komponente des Robotersystems 102, die der erste Knoten K, repräsentiert, in eine zweite Konfiguration der Komponente des Robotersystems 102, die der zweite Knoten Kj repräsentiert, überführbar ist. Die Bewegung wird vorzugsweise vorab durch einen Bewegungsplaner unter Berücksichtigung der statischen Umgebung berechnet und vorzugsweise unter der Referenz der Kante Ey gespeichert. Zusätzlich zu den Bewegungen in Posen, die zur Ausführung einer Bestimmten Teilaufgabe erforderlich sind, kann der Bewegungsplaner auch zusätzliche Posen vorsehen, die die Anzahl der
Freiheitsgrade für mögliche Bewegungen vergrößern.
Figur 3 stellt schematisch Teile einer Repräsentation eines Konfigurationsraums einer Komponente des Robotersystems 102 dar. Beispielsweise beispielsweise beinhaltet die Repräsentation zumindest eine Teilmenge der durch die
Komponente einnehmbare Konfigurationen.
In Figur 3 sind Knoten Ki, K2, ..., Ke und Kanten Ey dargestellt. Eine Kante Ey verbindet die Knoten und Kj. Dies bedeutet, es existiert eine Bewegung, durch die das Robotersytem 102 aus einer Konfiguration, die der Knoten
repräsentiert, in eine Konfiguration, die der Knoten Kj repräsentiert überführbar ist.
Das bedeutet beispielsweise, ein Arm des Roboters ist im dreidimensionalen Raum aus einer Pose des Arms des Roboters bei der ersten Konfiguration, über die der Kante Ey zugeordneten Bewegung in eine Pose bei der zweiten
Konfiguration bewegbar. Werden beispielsweise redundante Roboter mit beispielsweise sieben Freiheitsgraden verwendet, ist eine Vielzahl
Konfigurationen möglich, um einen Endeffektor an eine bestimmte Pose zu bewegen. Diese wird beispielsweise durch eine Ansteuerung mit bestimmten Gelenkwinkeln erreicht, durch die der Endeffektor in einer bestimmten
Orientierung an einen Punkt im dreidimensionalen Raum bewegt wird, die durch die Pose definiert sind.
Die Zahl der Knoten und der Kanten sind nicht auf die in Figur 3 dargestellte Anzahl beschränkt. Es können für eine große Anzahl Konfigurationen sehr viel mehr Knoten und Kanten im Bewegungs-Modell definiert sein.
Eine Horizont-Variable H kann vorgesehen sein, die eine Anzahl der zu verwendenden Konfigurations-Variablen definiert. Im Beispiel werden
Konfigurations-Variablen für einen Bewegungsplan bei der Suche nicht berücksichtigt, wenn die Horizont-Variable H größer oder gleich dem Index der Konfigurations-Variable ist. Im Beispiel gilt für die Konfigurations-Variable C, = CH = Ci für i >= H, wobei I der letzte Index ist, der verwendet wird.
Es kann eine Vielzahl Bewegungspläne geben, durch die die Komponente, d.h. im Beispiel der Arm, aus der einem Knoten zugeordneten Konfiguration in eine einem anderen Knoten zugeordnete Konfiguration bewegbar ist. Zur
Ansteuerung wird vorzugsweise durch einen Constraint Löser in einem
Suchvorgang ein zeitlich festgelegter Bewegungsplan für die Komponenten bestimmt. Dazu wird im Beispiel wie folgt verfahren:
Eine Teilaufgabe w enthält Tripel Pj, Lj, Ij und bedeutet, dass eine Komponente die primitive Aktion P,· während der Zeit 7; in der Pose Lj ausführen soll.
Es kann eine Posen-Zuordnung A(Lj) vorgesehen sein, die für eine Pose Lj eine Menge Konfigurationen, d.h. Knoten K,, enthält, aus denen die Pose Lj erreichbar ist. Die Teilaufgabe für eine Komponente bedeutet in diesem Fall, dass die Komponente um eine primitive Aktion P, auszuführen während des Intervalls Ij in einer Konfiguration C, e A(L;) ist, sodass sich der Endeffektor in der Pose Lj befindet.
Der Kante E,j kann ein Gewicht zugeordnet sein, das eine minimale Dauer einer Bewegung der Komponente des Robotersystems aus der ersten Konfiguration C, in die zweite Konfiguration charakterisiert.
Sind zwei Knoten nicht direkt durch eine Kante verbunden, ist eine Bewegung der Komponente zwischen den Konfigurationen, die diesen zwei Knoten zugeordnet sind, wenn überhaupt, nur indirekt über eine andere Konfiguration, die einem anderen Knoten zugeordnet ist möglich.
Ein Knoten Kj, der eine Soll-Konfiguration definiert, kann aus einer Vielzahl Knoten des Graphs über verschiedene Pfade erreichbar sein. Für die Pfade, über die der Knoten Kj erreichbar ist, wird beispielsweise je eine Summe von Gewichten der auf dem Pfad liegenden Kanten E,j bestimmt. Der Bewegungsplan ist in diesem Beispiel abhängig vom Pfad mit der geringsten Summe definiert. Für eine erste Komponente 114 des Robotersystems 102 ist beispielsweise eine erste Zuordnung vorgesehen, die einer ersten Soll-Konfiguration für die erste Komponente 1 14 eine Vielzahl Knoten des Graphs zuordnet, aus deren
Konfiguration die erste Soll-Konfiguration erreichbar ist.
Für eine zweite Komponente 1 16 des Robotersystems ist beispielsweise eine zweite Zuordnung vorgesehen, die einer zweiten Soll-Konfiguration für die zweite Komponente 1 16 eine Vielzahl Knoten des Graphs zuordnet, aus deren
Konfiguration die zweite Soll-Konfiguration erreichbar ist.
Als Beschränkung insbesondere für den Constraint-Löser werden Knoten des Graphs einander zugeordnet, in deren Konfigurationen die erste Komponente 1 14 und die zweite Komponente 116 bei zeitgleichem Erreichen dieser
Konfiguration kollidieren.
Die Soll-Konfigurationen sind im Beispiel durch die Roboter-unabhängige Aufgabenbeschreibung definierte Posen im dreidimensionalen Raum, die eine Komponente am Ende des Bewegungsplans erreichen soll. Die einander zugeordneten Knoten des Graphs sind im Beispiel Posen im dreidimensionalen Raum, die zu einer Kollision der jeweiligen Komponente führen, wenn diese Posen zeitgleich erreicht werden.
Im Beispiel mit mehreren möglichen Pfaden wird für jede der Komponenten eine Menge von Pfaden für Bewegungen ermittelt, die es ermöglichen, ausgehend von der momentanen Pose der jeweiligen Komponente im dreidimensionalen Raum die Soll-Konfiguration zu erreichen.
Für die Erledigung aller Aufgaben wird aus den möglichen Bewegungen aller beteiligen Komponenten zeitlich ein festgelegter Bewegungsplan bestimmt.
Für jede der Komponenten wird im Beispiel aus allen möglichen Pfaden der kürzest mögliche für die Bewegung in die Soll-Konfiguration ausgewählt.
Mögliche Pfade im Graph werden im Beispiel anhand der Summe der Gewichte der Kanten im jeweiligen Pfad hinsichtlich ihrer Länge bewertet. Beispielsweise wird der zeitlich festgelegte Bewegungsplan bestimmt, mit dem die zu erledigende Aufgabe oder die zu erledigenden Aufgaben der
Komponenten mit insgesamt geringster Dauer erledigt werden, ohne dass eine Kollision auftritt.
Dazu werden im Beispiel für alle zuzuordnenden Teilaufgaben Verbindungs- Variablen Xwj verwendet. Die Zuordnung der Teilaufgaben zu den Komponenten erfolgt über die Werte der Variablen A. Mit dem Index w wird jede der Variablen XCAJ je eine der Teilaufgaben zugeordnet.
Der Wert der Variablen Cw^ = i bedeutet, dass die i-te Konfigurations-Variable C, der Variablen Lj der Teilaufgabe zugeordnet ist, die durch den Index w festgelegt ist. Für die Zuordnung gilt C, e A(L;). Die Werte der Verbindungs-Variablen Xw geben indexbasiert eine zeitliche Reihenfolge für die Ausführung vor.
Für die Indizes der Verbindungs-Variablen gilt X w j < C w^+1, da die Posen [Li,
..., U] in dieser Reihenfolge anzusteuern sind. Zwei Werte der Verbindungs- Variablen referenzieren im Beispiel nicht dieselbe Konfiguration. Zwei geordneten Ansteuerbedingungen können verschachtelt sein, wenn dadurch kein Ressourcenkonflikt und kein Konflikt zwischen den verschachtelten geordneten Ansteuerbedingungen selbst auftritt.
Diese indexbasierte Verknüpfung des Aufgaben-Modells und des Bewegungs- Modells ist besonders flexibel.
Als Löser, der den zu verwendende zeitlich festgelegten Bewegungsplan bestimmt, wird beispielsweise ein Constraint-Satisfaction-Löser zur Lösung eines entsprechenden Bedingungs-Erfüllungs-Problems, d.h. ein Constraint- Satisfaction-Problem verwendet. Das Problem, insbesondere das Constraint- Satisfaction-Problem wird mittels der Variablen, ihren Wertebereichen und optional den Bedingungen, die Verknüpfungen zwischen den Variablen hersteilen, definiert. In einem Suchvorgang werden die Teilaufgaben aus der Roboter-unabhängigen Aufgabenbeschreibung den Komponenten zugeordnet und eine Reihenfolge für die Ausführung der Teilaufgaben, die derselben Komponente zugeordnet werden bestimmt. Den Variablen für die Teilaufgaben, für die Komponenten, den Verbindungs-Variablen und den Konfigurations- Variablen, die die Reihenfolge für die Ausführung festlegen, werden in demselben kombinatorischen Suchvorgang insbesondere Werte aus einem Wertebereiche für diese Variablen zugeordnet, die optional die Bedingung oder die Bedingungen erfüllen. Es kann vorgesehen sein, auch die Horizont-Variablen im selben kombinatorischen Suchvorgang zu bestimmen. Vorzugsweise werden günstige Heuristiken für die Auswahl der Variablen und deren Werte festgelegt. Dadurch kann häufig schneller eine bessere Lösung gefunden werden.
Der Löser verwendet beispielsweise Backtracking und Constraint Propagation.
Um zulässige Lösungen effizient zu finden, werden die Verbindungs-Variablen im Beispiel aufgrund des indexbasierten Mechanismus, der Information über die Bedingungen aus dem Bewegungs-Modell und dem Aufgaben-Modell wie folgt behandelt. Dies ist am effizientesten möglich, wenn die Variablen der Posen der geordneten Ansteuerbedingung einen festen Wert haben.
Vorzugsweise wird bei der Suche nach der Lösung zunächst eine Komponente festgelegt und durch den Constraint-Löser folgende Reihenfolge für die Variablen verwendet:
1. Variablen für die Posen
2. Variablen für die Zuweisung der Teilaufgaben zu den Komponenten
3. Verbindungs-Variablen für die Zuordnung der Posen zu den Konfigurations- Variablen
4. Horizont-Variablen
5. Konfigurations-Variablen für die Reihenfolge der Konfigurationen für die
Ansteuerung
Nach der im Beispiel verwendeten Aufgabenbeschreibung sind Intervalle zeitlich bekannter Dauer den Ressourcen zugeordnet und durch die Verbindungs- Variablen mit den Bewegungsplänen verbunden.
Anschließend sind nur die Variablen für die Startzeit und die Endzeit der Intervalle, die zu verwendenden Ressourcen, die geordneten
Ansteuerbedingungen und die Bewegungspläne zu bestimmen. Im Beispiel sollen für die Übergänge zwischen den Konfigurationen die jeweils schnellsten Übergänge, d.h. die kürzesten Intervalle l , ...
Figure imgf000022_0001
verwendet werden. Diese entsprechen dem Pfad im Graphen zur Soll-Konfiguration mit dem niedrigsten Gewicht. Der Constraint-Löser muss in diesem Beispiel hinsichtlich der Variablen für die Intervalle für alle Komponenten nur über die Dauer des Verweilens in den jeweiligen Konfigurationen, d.h. über die Intervalle I , ... I entscheiden.
Vorzugsweise werden in diesem Beispiel durch den Constraint-Löser für die Intervalle I , ... I kleinst mögliche Werte für die Dauer bevorzugt. Dadurch wird die Produktionsspanne 208 minimiert.
Durch Bedingungen, die die zeitliche Reihenfolge geeignet festlegen, werden Kollisionen der Komponenten verhindert und hinsichtlich der Ressourcen Ressourcenkonflikte ausgeschlossen. Andere Bedingungen zwischen den geordneten Ansteuerbedingungen, wie Synchronisierung oder Festlegung einer Reihenfolge, werden ebenfalls erfüllt. Um die Produktionsspanne kurz zu halten, können Wartezeiten minimiert werden. Dadurch werden die geordneten
Ansteuerbedingungen für alle Komponenten bestimmt.
Für bestimmte Variablen beispielsweise für die Posen, die Komponenten und für die Konfigurationen der Bewegungspläne werden beispielsweise wenn der Löser eine Entscheidung für diese Variablen im Suchprozess trifft zufällige Werte aus dem Lösungsraum festgelegt.
Für die Verbindungs-Variablen und die Horizont-Variablen werden vorzugsweise kleine Werte festgelegt, um schnelle Bewegungspläne zu erhalten.
Die Lösung stellt den zeitlich festgelegten Bewegungsplan dar.
Anschließend wird das Robotersystem 102 in einem Schritt 404 abhängig vom zeitlich festgelegten Bewegungsplan angesteuert.
Für eine neue Aufgabe werden die Schritte 402 und 404 im Betrieb des
Robotersystems 102 wiederholt. Ein Computerprogramm, welches eingerichtet ist, das Verfahren auszuführen ist ebenfalls vorgesehen. Das Computerprogramm kann auf einem
maschinenlesbaren Speichermedium gespeichert sein.

Claims

Ansprüche
1. Verfahren zur Ansteuerung eines Robotersystems (102), dadurch
gekennzeichnet, dass eine Komponente (114, 116) des Robotersystems (102) abhängig von einem Bewegungsplan (o) angesteuert wird (404), wobei eine Roboter-unabhängige Beschreibung von Teilaufgaben (w) Information über Posen umfasst, wobei die Information über die Posen durch eine Zuordnung einer Reihenfolge von Konfigurationen für die Komponente (1 14,
1 16) in dem Bewegungsplan (o) zugeordnet ist, und wobei in einem kombinatorischen Suchvorgang eine Zuweisung der Teilaufgaben (w) zu wenigstens einer Komponente (1 14, 1 16) des Robotersystems (102) und die Reihenfolge der für diese Teilaufgaben (w) anzusteuernden Konfigurationen abhängig von Information über durch die wenigstens eine Komponente (1 14, 1 16) einnehmbaren Konfigurationen, der Information über die Posen und der Zuordnung bestimmt wird (402).
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass die Zuweisung der Teilaufgaben (w) und/oder die Reihenfolge der für diese Teilaufgaben (w) anzusteuernden Konfigurationen im kombinatorischen Suchvorgang abhängig von wenigstens einer Bedingung (Cintra, Cinter) insbesondere für wenigstens einen Teil der Roboter-unabhängigen Beschreibung der
Teilaufgabe (w) bestimmt wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass im
kombinatorischen Suchvorgang Werte aus einem Wertebereich bestimmt werden, welche insbesondere die wenigstens eine Bedingung erfüllen, und wobei die Werte für Variablen für die Posen, Werte für Variablen für die Zuweisung der Teilaufgaben zu den Komponenten, Werte für Verbindungs- Variablen für eine Zuordnung der Variablen für die Posen zu Konfigurations- Variablen und Werte für die Konfigurations-Variablen, die die Reihenfolge der für die Teilaufgaben (w) anzusteuernden Konfigurationen festlegen, bestimmt werden.
4. Verfahren nach Anspruch 3 dadurch gekennzeichnet, dass im
kombinatorischen Suchvorgang Werte für Horizont-Variablen bestimmt werden, die die Anzahl der zu berücksichtigenden Konfigurations-Variablen festlegen.
5. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Zuordnung indexbasiert ist.
6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Zuordnung eine der Posen einer Konfiguration zuordnet, in der die Komponente (1 14, 1 16) in diese Pose bewegt ist.
7. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine diskretisierte, auf einem Graphen basierende Repräsentation der Konfigurationen vorgesehen ist, in der Knoten des Graphs die
Konfigurationen des Robotersystems (102) repräsentieren, in die das Robotersystem (102) überführbar ist, und wobei eine Kante (E,j) des Graphs, an deren einen Ende ein erster Knoten ( ) angeordnet ist und an deren anderen Ende ein zweiter Knoten (Kj) angeordnet ist, eine Bewegung einer Komponente (114, 1 16) des Robotersystems (102) repräsentiert, durch die eine erste Konfiguration der Komponente (1 14, 116) des Robotersystems (102), die der erste Knoten ( ) repräsentiert, in eine zweite Konfiguration der Komponente (114, 1 16) des Robotersystems (102), die der zweite Knoten (Kj) repräsentiert, überführbar ist, und wobei der Kante (E,j) ein Gewicht zugeordnet ist, das eine minimale Dauer einer Überführung der Komponente (1 14, 1 16) des Robotersystems (102) aus der ersten Konfiguration in die zweite Konfiguration charakterisiert.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass einem Knoten (Kj) des Graphs, der gemäß der Roboter-unabhängigen
Aufgabenbeschreibung eine Soll-Konfiguration für eine Komponente (114, 1 16) des Robotersystems (102) darstellt, eine Vielzahl Knoten ( ) des Graphs zugeordnet wird, wobei für wenigstens einen Pfad von wenigstens einem der Vielzahl Knoten ( ) zum Knoten (Kj), der die Soll-Konfiguration darstellt, eine Summe von Gewichten der auf dem Pfad liegenden Kanten (Eij) bestimmt wird, und wobei der Bewegungsplan abhängig vom Pfad mit der geringsten Summe definiert ist.
9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass für eine erste Komponente (114) des Robotersystems (102) eine erste Zuordnung einer ersten Soll-Konfiguration für die erste Komponente (114) eine Vielzahl Knoten des Graphs zuordnet, aus deren Konfiguration die erste Soll- Konfiguration erreichbar ist, wobei für eine zweite Komponente (116) des Robotersystems eine zweite Zuordnung einer zweiten Soll-Konfiguration für die zweite Komponente (116) eine Vielzahl Knoten des Graphs zuordnet, aus deren Konfiguration die zweite Soll-Konfiguration erreichbar ist, und wobei Knoten des Graphs einander als Bedingung zugeordnet werden, in deren Konfigurationen die erste Komponente (114) und die zweite
Komponente (116) bei zeitgleichem Erreichen dieser Konfiguration kollidieren.
10. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass wenigstens ein Intervall (7-f, ... 7^ ) definiert ist, das einen Übergang zwischen zwei Konfigurationen charakterisiert, wobei das wenigstens eine Intervall (7-f, ... 7^) durch eine Startzeit, eine Endzeit und eine Dauer des Übergangs definiert ist, und/oder dass wenigstens ein Intervall (7 , ... 7 ) definiert ist, das ein Verweilen in einer der Konfigurationen charakterisiert, wobei das wenigstens eine Intervall (7 , ... 7 ) durch eine Startzeit, eine Endzeit und eine Dauer des Verweilens definiert ist.
1 1. Vorrichtung zur Ansteuerung eines Robotersystems (102), dadurch
gekennzeichnet, dass die Vorrichtung eine Recheneinrichtung (104), eine Ansteuereinrichtung (106) für das Robotersystem (102) und einen Speicher (108) für Instruktionen, eine Roboter-unabhängige Aufgabenbeschreibung und/oder Information über Konfigurationen für eine Ansteuerung wenigstens einer Komponente (114, 1 16) des Robotersystems (102) umfasst, wobei die Recheneinrichtung (104) ausgebildet ist, das Robotersystem (102) mittels der Ansteuereinrichtung (106) gemäß dem Verfahren nach einem der Ansprüche 1 bis 10 anzusteuern, wenn die Recheneinrichtung (104) die Instruktionen ausführt.
12. Computerprogramm, welches eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.
13. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 12 gespeichert ist.
PCT/EP2019/077139 2018-10-23 2019-10-08 Vorrichtung und verfahren zur ansteuerung eines robotersystems WO2020083633A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018218081.4 2018-10-23
DE102018218081.4A DE102018218081A1 (de) 2018-10-23 2018-10-23 Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems

Publications (1)

Publication Number Publication Date
WO2020083633A1 true WO2020083633A1 (de) 2020-04-30

Family

ID=68208297

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/077139 WO2020083633A1 (de) 2018-10-23 2019-10-08 Vorrichtung und verfahren zur ansteuerung eines robotersystems

Country Status (2)

Country Link
DE (1) DE102018218081A1 (de)
WO (1) WO2020083633A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020212658A1 (de) 2020-10-07 2022-04-07 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102021212134B3 (de) 2021-10-27 2023-02-02 Kuka Deutschland Gmbh Verfahren und System zum Betreiben eines Roboters
CN115816441B (zh) * 2022-10-31 2023-08-08 实时侠智能控制技术有限公司 基于任务描述的机器人控制方法、装置及可读介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018122567A1 (en) * 2016-12-27 2018-07-05 Siemens Industry Software Ltd. Method and system for determining a sequence of kinematic chains of a multiple robot

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10214880A1 (de) * 2002-04-04 2003-10-23 Erwin Rothballer Verfahren zum Programmieren einer Verfahrbewegung eines Handhabungsgeräts
DE102004064297B3 (de) * 2004-06-30 2016-05-12 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts
DE102004032996A1 (de) * 2004-07-08 2006-02-16 Abb Research Ltd. Einfache Roboterprogrammierung
WO2006043873A1 (en) * 2004-10-20 2006-04-27 Abb Research Ltd A system and a method for programming an in¬ dustrial robot
US7643907B2 (en) * 2005-02-10 2010-01-05 Abb Research Ltd. Method and apparatus for developing a metadata-infused software program for controlling a robot
DE102015204641B4 (de) * 2014-06-03 2021-03-25 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018122567A1 (en) * 2016-12-27 2018-07-05 Siemens Industry Software Ltd. Method and system for determining a sequence of kinematic chains of a multiple robot

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ALLEN, JAMES F: "Communications of the ACM", ACM PRESS, article "Maintaining knowledge about temporal intervals", pages: 832 - 843
ANONYMOUS: "Combinatorial Optimization (CS 491G)", 23 September 2017 (2017-09-23), XP055669838, Retrieved from the Internet <URL:http://web.archive.org/web/20170923203604/http://community.wvu.edu/~krsubramani/courses/su01/combopt/comb.html> [retrieved on 20200218] *
CHU H ET AL: "INTEGRATION OF TASK PLANNING AND MOTION CONTROL IN A MULTI-ROBOT ASSEMBLY WORKCELL", ROBOTICS AND COMPUTER INTEGRATED MANUFACTURING, ELSEVIER SCIENCE PUBLISHERS BV., BARKING, GB, vol. 10, no. 3, 1 June 1993 (1993-06-01), pages 235 - 255, XP000363219, ISSN: 0736-5845, DOI: 10.1016/0736-5845(93)90058-R *
DANNY Z. CHEN ET AL: "Finding an optimal path without growing the tree", JOURNAL OF ALGORITHMS., vol. 49, no. 1, 1 October 2003 (2003-10-01), US, pages 13 - 41, XP055669842, ISSN: 0196-6774, DOI: 10.1016/S0196-6774(03)00080-4 *
DAVID OWEN: "CS 491G Combinatorial Optimization Lecture Notes", 8 June 2001 (2001-06-08), XP055669836, Retrieved from the Internet <URL:http://community.wvu.edu/~krsubramani/courses/su01/combopt/lecnotes/lecture4.pdf> [retrieved on 20200218] *
DOGAR MEHMET ET AL: "Multi-robot grasp planning for sequential assembly operations", 2015 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA), IEEE, 26 May 2015 (2015-05-26), pages 193 - 200, XP033168410, DOI: 10.1109/ICRA.2015.7138999 *

Also Published As

Publication number Publication date
DE102018218081A1 (de) 2020-04-23

Similar Documents

Publication Publication Date Title
DE102016120763B4 (de) Verfahren zur kollisionsfreien Bewegungsplanung
DE102017223717B4 (de) Verfahren zum Betreiben eines Roboters in einem Multiagentensystem, Roboter und Multiagentensystem
WO2020083633A1 (de) Vorrichtung und verfahren zur ansteuerung eines robotersystems
DE102011113590B4 (de) Planen simultaner Pfade mit einem oder mehreren humanoiden Robotern
DE69535687T2 (de) Biegevorrichtung mit Mitteln zur Durchführung von Installationsvorgängen
EP2539116B1 (de) Prozessmodulbibliothek und programmierumgebung zur programmierung eines manipulatorprozesses
DE102018122376B3 (de) Verfahren und Vorrichtung zur kollisionsfreien Bewegungsplanung eines Manipulators
WO2019137665A1 (de) Verfahren zur rechnergestützten planung eines durch einen roboter ausführbaren arbeitsablaufs
DE112009002602T5 (de) Planung von Strecken mit mehreren Anfahrpunkten von Schweissrobotern mit automatischer Ablaufsteuerung
EP2353802A2 (de) Verfahren für eine kollisionsfreie Bahnplanung eines Industrieroboters
DE4431315A1 (de) Steuerungsverfahren und Steuerungsvorrichtung für Fabrik-Automatisierungssystem
WO2019020818A1 (de) Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten
DE102019203214B4 (de) Verfahren zum Betreiben eines Roboters in einem Multiagentensystem, Roboter und Multiagentensystem
DE102012213188B4 (de) Verfahren und System zum Steuern einer Ausführungssequenz eines geschickten Roboters unter Verwendung einer Zustandsklassifizierung
WO2019029870A1 (de) Handhabungseinrichtung mit einem roboter sowie verfahren und computerprogramm
DE102017112454A1 (de) Dynamisches Laser-Touch-Sensing mit dynamischem Multiroboter-User-Frame
DE112021004248T5 (de) Numerisches Steuersystem und Robotersteuerverfahren
DE112019007579B4 (de) Numerische-Steuerung-Vorrichtung und Maschinelles-Lernen-Gerät
EP3710900B1 (de) Verfahren und system zum vorgeben bzw. lernen eines roboterbefehls
DE102020200165A1 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102018003992B4 (de) Numerische Steuervorrichtung
DE102010004472A1 (de) Werkzeug und Verfahren zur Planung und/oder Steuerung eines Mehrrobotersystems
DE102019128583B4 (de) Optimierungsmodi für Steuerprogramme eines Robotermanipulators
DE102017201949A1 (de) System zur Steuerung mindestens eines Betriebsmittels zur Herstellung und/oder Montage von Werkstücken
EP3838500A1 (de) Konstruieren von greifwerkzeugen für eine laserschneidmaschine zum absortieren von teilen

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19786306

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19786306

Country of ref document: EP

Kind code of ref document: A1