DE102018218081A1 - Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems - Google Patents

Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems Download PDF

Info

Publication number
DE102018218081A1
DE102018218081A1 DE102018218081.4A DE102018218081A DE102018218081A1 DE 102018218081 A1 DE102018218081 A1 DE 102018218081A1 DE 102018218081 A DE102018218081 A DE 102018218081A DE 102018218081 A1 DE102018218081 A1 DE 102018218081A1
Authority
DE
Germany
Prior art keywords
component
robot system
configuration
variables
configurations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018218081.4A
Other languages
English (en)
Inventor
Ralph Lange
Jan Kristof Behrens
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102018218081.4A priority Critical patent/DE102018218081A1/de
Priority to PCT/EP2019/077139 priority patent/WO2020083633A1/de
Publication of DE102018218081A1 publication Critical patent/DE102018218081A1/de
Pending legal-status Critical Current

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

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 (C, C) für wenigstens einen Teil der Roboter-unabhängigen Beschreibung der Teilaufgabe (ω) bestimmt wird.

Description

  • 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:
    • 1 schematisch Teile eines Robotersystems und einer Vorrichtung zu dessen Ansteuerung,
    • 2 schematisch eine Übersicht über ein auf Constraint-Programmierung basierendes Modell,
    • 3 schematisch Teile einer Repräsentation eines Konfigurationsraums einer Komponente des Robotersystems,
    • 4 schematisch Schritte in einem Verfahren zur Ansteuerung des Robotersystems.
  • 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 110, 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 112 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 1 ist ein zweiarmiger Roboter mit einer ersten Komponente 114 und einer zweiten Komponente 116 dargestellt. Diese sind über einen Roboterkörper 118 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 Roboterunabhä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 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 ω1 der Roboter-unabhängigen Aufgabenbeschreibung. Das Aufgaben-Modell 202 umfasst zweite Teilaufgaben ω2 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 Ci definiert. Die Konfigurations-Variablen Ci 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 ω1 ist im in 2 dargestellten Beispiel mit einem ersten Bewegungsplan σ1 des Bewegungs-Modells 206 über erste Verbindungs-Variablen, X1 , ..., X3 verbunden. Die zweite Teilaufgabe ω2 ist im in 2 dargestellten Beispiel mit einem zweiten Bewegungsplan σ2 des Bewegungs-Modells 206 über zweite Verbindungs-Variablen X1 , ..., X5 verbunden. Der Wert einer Variable A legt fest, auf welchen Bewegungsplan sich die Xi einer Teilaufgabe beziehen. Die Verbindungs-Variablen stellen eine Zuordnung dar, die einer Pose L eine Konfigurations-Variable C zuordnet.
  • Die erste Teilaufgabe ω1 ist durch Variablen für erste Posen, die im Beispiel mit L1 , ..., L3 bezeichnet sind, in der Arbeitsumgebung definiert. Die zweite Teilaufgabe ω2 ist durch Variablen für zweite Posen, die im Beispiel mit L1 , ..., L5 bezeichnet sind, in der Arbeitsumgebung definiert. Die erste Teilaufgabe ω1 ist abhängig von Werten für erste Intervalle definiert. Im Beispiel sind Variablen für erste Intervalle mit I1 , ..., I3 bezeichnet und jeweils den Variablen für die ersten Posen L1 , ..., L3 mit demselben Index zugeordnet. Die zweite Teilaufgabe ω2 ist abhängig von Werten für zweite Intervalle definiert. Im Beispiel sind Variablen für zweite Intervalle mit I1 , ..., I5 bezeichnet und jeweils den Variablen für die zweiten Posen L1 , ..., L5 mit demselben Index zugeordnet. Die ersten Verbindungs-Variablen X1 , ... X3 sind jeweils den Variablen der ersten Pose L1 , ..., L3 und den ersten Intervallen I1 , ..., I3 mit demselben Index zugeordnet. Die zweiten Verbindungs-Variablen X1 , ... X5 sind jeweils den Variablen für die zweite Pose L1 , ..., L5 und den zweiten Intervallen I1 , ..., I5 mit demselben Index zugeordnet.
  • Der erste Bewegungsplan σ1 umfasst m Konfigurations-Variablen C1 , C2 , C3 , ... Cm . Jeder der Konfigurations-Variablen Ci mit 1 <= i < m sind zwei Intervalle I i w , I i t
    Figure DE102018218081A1_0001
    zugeordnet.
  • Der zweite Bewegungsplan σ2 umfasst n-x Konfigurations-Variablen Cx , ..., Cn . Jeder der Konfigurations-Variablen Ci mit x <= i < n sind im Beispiel zwei Intervalle I i w , I i t
    Figure DE102018218081A1_0002
    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 ω1 ist eine erste geordnete Ansteuerbedingung für die Komponente, der die erste Teilaufgabe ω1 durch den Wert der Variablen A zugeordnet ist. Die zweite Teilaufgabe ω2 ist eine zweite geordnete Ansteuerbedingung für die Komponente, der die zweite Teilaufgabe ω2 durch den Wert der Variablen A zugeordnet ist.
  • Allgemein sind die Bewegungspläne σ im Beispiel durch eine Reihenfolge von m Konfigurations-Variablen C und eine Reihenfolge von 2m-1 Intervallvariablen I definiert. Es gilt im Beispiel: σ = ( [ C 1 ,   C 2 ,   ,   C m ] , [ I 1 w , I 1 t , I 2 w , I 2 t , , I m w , I m t ] ) .
    Figure DE102018218081A1_0003
    Allgemein sind Teilaufgaben ω im Beispiel durch folgendes Tupel definiert: ω = ( A , [ P 1 , , P l ] , [ L 1 , , L l ] , [ I 1 , , I l ] , C i n t r a ,   C i n t e r ) .
    Figure DE102018218081A1_0004
  • Die Variablen Pj repräsentieren ausführbare primitive Aktionen, d.h. Handlungen aus der Roboter-unabhängigen Aufgabenbeschreibung, beispielsweise „greifen“, „platzieren“, „bohren“.
  • Eine Ressource r1 ist ein abstraktes oder physisches Objekt des Roboters, das für eine bestimmte Zeit exklusiv reservierbar ist. Beispielsweise ist die Ressource r1 ein Werkstückhalter oder ein Greifer. Im Beispiel ist dieselbe Ressource r1 unterschiedlichen Intervallen der ersten Teilaufgabe ω1 und der zweiten Teilaufgabe ω2 zugeordnet. Dies ist durch zwei unterschiedliche Rechtecke und deren Zuordnung zu dem mit I3 bezeichneten Intervall einerseits, und den mit I1 und I5 bezeichneten Intervallen andererseits dargestellt. Die Intervalle, während der die Ressource genutzt wird, überschneiden sich nicht.
  • In 2 stellen die übrigen Rechtecke Variablen für Intervalle dar. Bezeichnungen anderer Variablen sind in einem Kreis dargestellt. Die Darstellung in 2 bezieht sich auf eine Produktionsspanne 208 in der Teilaufgaben in vorgegebener Reihenfolge abgearbeitet werden.
  • Mit I1 ..., Il sind Intervalle bezeichnet, die eine Startzeit, eine Endzeit und eine Dauer einer primitiven Aktion mit demselben Index charakterisieren.
  • Mit den Intervallen I 1 t ,   I m t
    Figure DE102018218081A1_0005
    wird im Beispiel eine Dauer der Bewegung einer Komponente aus einer Konfiguration in eine andere Konfiguration berücksichtigt. Im Beispiel wird jedes Intervall I i t
    Figure DE102018218081A1_0006
    der Dauer der Bewegung aus einer Konfiguration, die durch den Wert der Konfigurations-Variable Ci bezeichnet ist, in eine Konfiguration, die mit dem Wert der Konfigurations-Variablen Ci+1 bezeichnet ist, zugeordnet. Mit den Intervallen I i w
    Figure DE102018218081A1_0007
    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 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 Ki des Graphs Werte der Konfigurations-Variablen Ci des Robotersystems 102 repräsentieren, in die das Robotersystem 102 bewegbar ist. Den Knoten Ki sind im Beispiel Zahlenwerte zugeordnet. Die Konfigurationen werden im Beispiel durch Konfigurations-Variablen Ci repräsentiert, deren mögliche Werte durch die Menge der Zahlenwerte für die Knoten Ki des Graphs definiert ist.
  • Eine Kante Eij des Graphs, an deren einem Ende ein erster Knoten Ki 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 Ki 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 Eij 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.
  • 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 3 sind Knoten K1, K2, ..., K8 und Kanten Eij dargestellt. Eine Kante Eij verbindet die Knoten Ki und Kj. Dies bedeutet, es existiert eine Bewegung, durch die das Robotersytem 102 aus einer Konfiguration, die der Knoten Ki 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 Eij 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 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 Ci = 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 ω enthält Tripel Pj , Lj, Ij und bedeutet, dass eine Komponente die primitive Aktion Pj während der Zeit Ij in der Pose Lj ausführen soll.
  • Es kann eine Posen-Zuordnung λ(Lj) vorgesehen sein, die für eine Pose Lj eine Menge Konfigurationen, d.h. Knoten Ki, 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 Pj auszuführen während des Intervalls Ij in einer Konfiguration Ci ∈ λ(Lj) ist, sodass sich der Endeffektor in der Pose Lj befindet.
  • Der Kante Eij kann ein Gewicht zugeordnet sein, das eine minimale Dauer einer Bewegung der Komponente des Robotersystems aus der ersten Konfiguration Ci in die zweite Konfiguration Cj 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 Ki 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 Eij 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 114 eine Vielzahl Knoten des Graphs zuordnet, aus deren Konfiguration die erste Soll-Konfiguration erreichbar ist.
  • Für eine zweite Komponente 116 des Robotersystems ist beispielsweise eine zweite Zuordnung vorgesehen, die 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.
  • Als Beschränkung insbesondere für den Constraint-Löser werden Knoten des Graphs einander zugeordnet, in deren Konfigurationen die erste Komponente 114 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 Xω,j verwendet. Die Zuordnung der Teilaufgaben zu den Komponenten erfolgt über die Werte der Variablen A. Mit dem Index ω wird jede der Variablen Xw,j je eine der Teilaufgaben zugeordnet.
  • Der Wert der Variablen Xw,j = i bedeutet, dass die i-te Konfigurations-Variable Ci der Variablen Lj der Teilaufgabe zugeordnet ist, die durch den Index ω festgelegt ist. Für die Zuordnung gilt Ci ∈ λ(Lj). Die Werte der Verbindungs-Variablen Xw,j geben indexbasiert eine zeitliche Reihenfolge für die Ausführung vor.
  • Für die Indizes der Verbindungs-Variablen gilt Xω,j < Xω,j+1, da die Posen [L1 , ..., Ll] 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 herstellen, 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. 1. Variablen für die Posen
    2. 2. Variablen für die Zuweisung der Teilaufgaben zu den Komponenten
    3. 3. Verbindungs-Variablen für die Zuordnung der Posen zu den Konfigurations-Variablen
    4. 4. Horizont-Variablen
    5. 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 I 1 t , I m t
    Figure DE102018218081A1_0008
    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 1 w ,   I m w
    Figure DE102018218081A1_0009
    entscheiden.
  • Vorzugsweise werden in diesem Beispiel durch den Constraint-Löser für die Intervalle I 1 w , I m w
    Figure DE102018218081A1_0010
    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 (13)

  1. Verfahren zur Ansteuerung eines Robotersystems (102), dadurch gekennzeichnet, dass eine Komponente (114, 116) des Robotersystems (102) abhängig von einem Bewegungsplan (σ) angesteuert wird (404), 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 und der Zuordnung bestimmt wird (402).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Zuweisung der Teilaufgaben (ω) und/oder die Reihenfolge der für diese Teilaufgaben (ω) 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 (ω) 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 (ω) 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 (114, 116) 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 (Eij) des Graphs, an deren einen Ende ein erster Knoten (Ki) angeordnet ist und an deren anderen Ende ein zweiter Knoten (Kj) angeordnet ist, eine Bewegung einer Komponente (114, 116) des Robotersystems (102) repräsentiert, durch die eine erste Konfiguration der Komponente (114, 116) des Robotersystems (102), die der erste Knoten (Ki) repräsentiert, in eine zweite Konfiguration der Komponente (114, 116) des Robotersystems (102), die der zweite Knoten (Kj) repräsentiert, überführbar ist, und wobei der Kante (Eij) ein Gewicht zugeordnet ist, das eine minimale Dauer einer Überführung der Komponente (114, 116) 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, 116) des Robotersystems (102) darstellt, eine Vielzahl Knoten (Ki) des Graphs zugeordnet wird, wobei für wenigstens einen Pfad von wenigstens einem der Vielzahl Knoten (Ki) 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 ( I 1 t , I m t )
    Figure DE102018218081A1_0011
    definiert ist, das einen Übergang zwischen zwei Konfigurationen charakterisiert, wobei das wenigstens eine Intervall ( I 1 t , I m t )
    Figure DE102018218081A1_0012
    durch eine Startzeit, eine Endzeit und eine Dauer des Übergangs definiert ist, und/oder dass wenigstens ein Intervall ( I 1 w , I m w )
    Figure DE102018218081A1_0013
    definiert ist, das ein Verweilen in einer der Konfigurationen charakterisiert, wobei das wenigstens eine Intervall ( I 1 w , I m w )
    Figure DE102018218081A1_0014
    durch eine Startzeit, eine Endzeit und eine Dauer des Verweilens definiert ist.
  11. 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, 116) 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.
DE102018218081.4A 2018-10-23 2018-10-23 Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems Pending DE102018218081A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102018218081.4A DE102018218081A1 (de) 2018-10-23 2018-10-23 Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems
PCT/EP2019/077139 WO2020083633A1 (de) 2018-10-23 2019-10-08 Vorrichtung und verfahren zur ansteuerung eines robotersystems

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
DE102018218081A1 true DE102018218081A1 (de) 2020-04-23

Family

ID=68208297

Family Applications (1)

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

Country Status (2)

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

Cited By (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
CN115816441A (zh) * 2022-10-31 2023-03-21 实时侠智能控制技术有限公司 基于任务描述的机器人控制方法、装置及可读介质

Citations (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
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
US20060178778A1 (en) * 2005-02-10 2006-08-10 Fuhlbrigge Thomas A Method and apparatus for developing a software program
DE102015204641A1 (de) * 2014-06-03 2015-12-03 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters
DE102004064297B3 (de) * 2004-06-30 2016-05-12 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts

Family Cites Families (1)

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

Patent Citations (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
US20060178778A1 (en) * 2005-02-10 2006-08-10 Fuhlbrigge Thomas A Method and apparatus for developing a software program
DE102015204641A1 (de) * 2014-06-03 2015-12-03 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ALLEN, James F.: Maintaining knowledge about temporal intervals. In: Communications of the ACM (CACM) / Association for Computer Machinery, Bd. 26, 1983, H. 11, S. 832-843. - ISSN 1557-7317 (E); 0001-0782 (P). DOI: 10.1145/182.358434. URL: https://dl.acm.org/ft_gateway.cfm?id=358434&ftid=45809&dwn=1&CFID=22979591&CFTOKEN=d4e4d8dfa8d0abd5-C94D74D7-0D19-1838-23C75E5ED94DCC64 [abgerufen am 2019-02-27]. *

Cited By (5)

* 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
US11806872B2 (en) 2020-10-07 2023-11-07 Robert Bosch Gmbh Device and method for controlling a robotic device
DE102021212134B3 (de) 2021-10-27 2023-02-02 Kuka Deutschland Gmbh Verfahren und System zum Betreiben eines Roboters
CN115816441A (zh) * 2022-10-31 2023-03-21 实时侠智能控制技术有限公司 基于任务描述的机器人控制方法、装置及可读介质
CN115816441B (zh) * 2022-10-31 2023-08-08 实时侠智能控制技术有限公司 基于任务描述的机器人控制方法、装置及可读介质

Also Published As

Publication number Publication date
WO2020083633A1 (de) 2020-04-30

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
DE102018122376B3 (de) Verfahren und Vorrichtung zur kollisionsfreien Bewegungsplanung eines Manipulators
DE102017128652B4 (de) Robotersystem mit einer mehrzahl von robotern, robotersteuerung und robotersteuerverfahren
DE102011113590B4 (de) Planen simultaner Pfade mit einem oder mehreren humanoiden Robotern
DE69535687T2 (de) Biegevorrichtung mit Mitteln zur Durchführung von Installationsvorgängen
WO2020083633A1 (de) Vorrichtung und verfahren zur ansteuerung eines robotersystems
WO2019137665A1 (de) Verfahren zur rechnergestützten planung eines durch einen roboter ausführbaren arbeitsablaufs
DE102019203214B4 (de) Verfahren zum Betreiben eines Roboters in einem Multiagentensystem, Roboter und Multiagentensystem
EP3434424A1 (de) Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten
WO2019029870A1 (de) Handhabungseinrichtung mit einem roboter sowie verfahren und computerprogramm
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102021201918A1 (de) Vorrichtung und Verfahren zum Steuern ein oder mehrerer Roboter
DE102012213188A1 (de) Verfahren und System zum Steuern einer Ausführungssequenz eines geschickten Roboters unter Verwendung einer Zustandsklassifizierung
DE112019007579T5 (de) Numerische-Steuerung-Vorrichtung und Maschinelles-Lernen-Gerät
DE102017112454A1 (de) Dynamisches Laser-Touch-Sensing mit dynamischem Multiroboter-User-Frame
DE102020210823A1 (de) Maschinen-Steueranordnung
DE102018003992B4 (de) Numerische Steuervorrichtung
DE102020200165A1 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102010004472A1 (de) Werkzeug und Verfahren zur Planung und/oder Steuerung eines Mehrrobotersystems
DE102019128583B4 (de) Optimierungsmodi für Steuerprogramme eines Robotermanipulators
EP3838500A1 (de) Konstruieren von greifwerkzeugen für eine laserschneidmaschine zum absortieren von teilen
DE102021212494B4 (de) Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung
DE102015003573B4 (de) Verfahren zur Durchführung eines Produktionsprozesses mittels einer Bearbeitungsstation, sowie Anordnung zur Durchführung des Verfahrens
DE112018007703C5 (de) Robotersteuerung

Legal Events

Date Code Title Description
R163 Identified publications notified