DE102015204641A1 - Verfahren und System zur Programmierung eines Roboters - Google Patents

Verfahren und System zur Programmierung eines Roboters Download PDF

Info

Publication number
DE102015204641A1
DE102015204641A1 DE102015204641.9A DE102015204641A DE102015204641A1 DE 102015204641 A1 DE102015204641 A1 DE 102015204641A1 DE 102015204641 A DE102015204641 A DE 102015204641A DE 102015204641 A1 DE102015204641 A1 DE 102015204641A1
Authority
DE
Germany
Prior art keywords
robot
movement
condition
conditions
execution
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.)
Granted
Application number
DE102015204641.9A
Other languages
English (en)
Other versions
DE102015204641B4 (de
Inventor
Rainer Jäkel
Gerhard Dirschl
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.)
Artiminds Robotics De GmbH
Original Assignee
Artiminds Robotics 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=54481690&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE102015204641(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Artiminds Robotics GmbH filed Critical Artiminds Robotics GmbH
Priority to DE102015204641.9A priority Critical patent/DE102015204641B4/de
Priority to PCT/DE2015/200313 priority patent/WO2015185049A1/de
Priority to JP2016571289A priority patent/JP6580602B2/ja
Priority to KR1020197022969A priority patent/KR102126729B1/ko
Priority to US15/313,219 priority patent/US10279476B2/en
Priority to EP15736391.2A priority patent/EP3013537B2/de
Priority to CN201580029953.3A priority patent/CN106457565B/zh
Priority to KR1020167034098A priority patent/KR20160149290A/ko
Publication of DE102015204641A1 publication Critical patent/DE102015204641A1/de
Publication of DE102015204641B4 publication Critical patent/DE102015204641B4/de
Application granted granted Critical
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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
    • 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
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/39298Trajectory learning
    • 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/40395Compose movement with primitive movement segments from database
    • 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/40523Path motion planning, path in space followed by tip of robot

Abstract

Ein Verfahren zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm, wobei, vorzugsweise in einem Roboterprogramm, mit einer vordefinierten Bewegungsschablone eine auszuführende Roboterbewegung eingerichtet wird, wobei die Bewegungsschablone aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektiert wird, wobei die Bewegungsschablone ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst, wobei das Ausführungsmodul bzw. die Ausführungsmodule zur Planung und/oder Durchführung der Roboterbewegung oder einer Teilbewegung der Roboterbewegung verwendet wird bzw. werden, wobei das Lernmodul in einem Initialisierungsprozess, insbesondere in Form eines Teach-Prozesses, eine oder mehrere Konfigurationen des Roboters aufzeichnet, und wobei das Lernmodul basierend auf den aufgezeichneten Konfigurationen, vorzugsweise unter Verwendung eines maschinellen Lernverfahrens, Parameter für das Ausführungsmodul bzw. die Ausführungsmodule berechnet. Des Weiteren ist ein entsprechendes System zur Programmierung eines Roboters angegeben.

Description

  • Die Erfindung betrifft ein Verfahren und ein System zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm.
  • Verfahren und Systeme der in Rede stehenden Art sind seit Jahren aus der Praxis bekannt. Demnach existieren für die Programmierung von Industrierobotern verschiedene Programmierverfahren: Teach-In, Playback, sensorgestützte Programmierung, CAD (Computer-aided design) Programmierung und dialoggestützte bzw. textuelle Programmierung.
  • Beim dem aus der Praxis bekannten Teach-In wird der Roboter durch das manuelle Anfahren und Abspeichern verschiedener Wegpunkte programmiert. Das Werkzeug dazu ist das Teach-Panel, eine Fernsteuerung mit grafischem Display auf dem der Roboterzustand und das Roboterprogramm dargestellt werden können. Der Benutzer fährt den Roboter an verschiedene Punkte, indem er zum Beispiel mit einem Joystick den Tool-Center-Point (TCP), einen definierten Punkt am letzten Gelenk des Roboters in 3 oder 6 Raumrichtungen, steuert. Der Benutzer speichert die Koordinaten der verschiedenen angefahrenen Punkte ab und integriert diese Information in das Roboterprogramm. Dabei wird jeder Wegpunkt als Ziel oder Zwischenpunkt eines Bewegungsbefehls definiert, zum Beispiel einer Punkt-zu-Punkt-, Linear- oder Zirkularbewegung. Der Bediener gibt zusätzliche Bahnparameter manuell ein, zum Beispiel Geschwindigkeit, Beschleunigung oder Überschleifen mit dem nächsten Befehl. Der Aufbau des Roboterprogramms, d.h. insbesondere die einzelnen Bewegungsbefehle, können üblicherweise aus einer Liste ausgewählt und zusammengestellt werden.
  • Beim dem aus der Praxis bekannten Playback werden nicht nur einzelne Punkte abgespeichert, sondern der Benutzer kann einen Roboterarm auf einer kontinuierlichen Bahn bewegen, wobei eine große Menge an Wegpunkten abgespeichert wird. Dadurch können komplexe Freiformbahnen, zum Beispiel entlang eines Kotflügels eines Fahrzeugs, einfach einprogrammiert werden, die durch einzelne Bewegungsbefehle beim Teach-In nur schwer programmiert werden könnten. Das kontinuierliche Führen wird üblicherweise durch einen Kraft-Momenten-Sensor (KMS) am Roboterflansch ermöglicht: der Mensch bzw. eine Bedienperson greift den Roboter und übt Kraft auf diesen aus. Die Kräfte werden mit dem KMS gemessen und an die Robotersteuerung übergeben, die fortlaufend eine Bewegung berechnet, die die Kräfte ausgleicht. Diese Bahn wird dann einem oder mehreren Bewegungsbefehlen im Roboterprogramm zugewiesen.
  • Bei der sensorgestützten Programmierung wird analog zum Playback eine kontinuierliche Bahn erzeugt, wozu jedoch weitere Sensoren eingesetzt werden. Zum Beispiel die Projektion einer Laserlinie auf ein Bauteil, die Erfassung dieser Linie mit einem Kamerasystem und Umrechnung der erkannten Linie in eine Bewegungsbahn für den Roboter. Dabei kann eine hohe Genauigkeit erzielt werden. Der Roboter muss nicht direkt bewegt werden, was bei großen Robotern von Vorteil ist. Jedoch ist zusätzliche Hardware sowie eine Kalibrierung von Kamera und Roboter notwendig.
  • Im Gegensatz zu diesen zuvor genannten Online-Verfahren, bei denen der Roboter direkt am Einsatzort programmiert wird, wird bei der CAD-Programmierung ein detailliertes CAD-Modell der Arbeitszelle, des Roboters und der zu manipulierenden Bauteile verwendet, um den Roboter in einer Simulationsumgebung zu programmieren. Dabei werden Wegpunkte durch Mausinteraktion, zum Beispiel auf der Oberfläche des CAD-Modells des Bauteils, festgelegt. Oder es werden komplette Bahnen auf der Oberfläche berechnet, zum Beispiel den Kanten des CAD-Modells oder einem bestimmten Muster, zum Beispiel Mäander, folgend. Die Punkte werden auf Punkt-zu-Punkt, Linear- oder Zirkularbewegungsbefehle abgebildet und als Roboterprogramm gespeichert. Analog zum Teach-In-Verfahren können zusätzliche Bahnparameter vorgegeben werden. Vorteile sind der geringe Aufwand zur Bestimmung einer Bahn entlang der Oberfläche von Objekten, da diese direkt anhand des CAD-Modells berechnet werden kann und die Nicht-Belegung des Roboters bei der Programmierung. Nachteilig sind jedoch die Kalibrierung zwischen realer Arbeitszelle und Simulation, die Bereitstellung von CAD-Modellen und die notwendige Anpassung bei kleinen Abweichungen.
  • Gemeinsamer Nenner der genannten Programmierverfahren ist die Programmierung mittels Wegpunkten und Sequenzen von Wegpunkten (Bahnen), die anschaulich mittels verschiedener Techniken erzeugt werden können. Ein wesentlicher Nachteil einzelner Wegpunkte, insbesondere kartesischer Wegpunkte, ist, dass diese zum Beispiel aufgrund von Hindernissen, Singularitäten und/oder mangelnder Erreichbarkeit bei kleinen Abweichungen nicht angefahren werden können und das Roboterprogramm damit fehlschlägt.
  • Bei der aus der Praxis bekannten dialoggestützten und textuellen Programmierung werden komplette Roboterprogramme mit Hilfe eines textuellen Editors oder eines grafischen Baukastens erstellt. Dabei kann der volle Leistungsumfang der Robotersteuerung ausgenutzt werden. Insbesondere kann durch die Auswertung von roboterexternen Sensoren auf Prozessabweichungen reagiert werden, die zum Beispiel durch die visuelle Lokalisierung eines zu manipulierenden Bauteils oder Fertigungstoleranzen entstehen. Mittels der direkten Programmierung in der Roboterprogrammiersprache können zusätzliche Bewegungsbefehle genutzt werden, die aktuell nicht mittels oben genannter Techniken programmiert werden können, zum Beispiel eine Kraftsteuerung mittels FTCtrl von KUKA oder AdeptForce von Adept. Für die Kraftsteuerung können zum Beispiel die Raumrichtungen für die Regelung, Sollwerte für Kraft/Moment und einfache Abbruchbedingungen vorgegeben werden. Aus diesen grundlegenden Befehlen können sehr komplexe Roboterprogramme erstellt werden. Dabei bestehen selbst einfache Aufgaben, wie zum Beispiel das Einsetzen eines Zylinders in ein Loch, aus mehreren Bewegungsbefehlen und unterschiedlichen Kraftreglern. Eine durchschnittliche Montageaufgabe basiert auf einer Vielfalt solcher Aufgaben, zum Beispiel Einsetzen, Verschrauben, Einhaken. Daher ist die Umsetzung einer Montageaufgabe mit sehr hohem Aufwand verbunden. Des Weiteren ist nachteilig, dass Expertenwissen betreffend einer Roboterprogrammiersprache, des Prozesses und des Roboters notwendig sind.
  • Weiter problematisch ist, dass der Automatisierungsgrad heutzutage in der Industrie, selbst im Automobilbereich, relativ gering ist. Der überwiegende Teil der Anwendungen, die unter Verwendung von Roboterarmen automatisiert werden, können durch das Abfahren von fest programmierten Bewegungsbahnen, ohne die sensorbasierte Reaktion auf Abweichungen, charakterisiert werden. Dabei wird ein Werkzeug, zum Beispiel eine Schweißzange, auf der fest programmierten Bewegungsbahn bewegt. Durch einen hohen und teuren Engineeringaufwand werden die Abweichungen im Prozess auf ein vernachlässigbares Maß reduziert, zum Beispiel durch spezielle Greifer für jedes Bauteil und spezielle, hochgenaue Zuführungseinrichtungen. Erst dadurch kann ggf. eine Programmierung mittels Teach-In oder Playback zur Erzeugung der festen Bewegungsbahn eingesetzt werden. Falls dies ökonomisch nicht möglich ist, wird in den meisten Fällen von einer Automatisierung mittels komplexerer Programmierung abgesehen. Problematisch bei diesem Vorgehen ist, dass dieser Ansatz schnell an seine Grenzen stößt, zum Beispiel auf Grund folgender Probleme:
    • – Kleinserien erfordern eine häufige Umprogrammierung, wodurch der hohe Engineeringaufwand unökonomisch ist. Beispielsweise können in der Qualitätssicherung Prüfungen an im Wochentakt sich ändernden Geräten erforderlich sein, zum Beispiel Waschmaschinenlangzeittests.
    • – Montageaufgaben besitzen oft geringes Spiel, wodurch eine Kraftinteraktion, zum Beispiel beim Stecken von Bauteilen, unumgänglich ist, und bestehen aus einer Vielzahl an unterschiedlichen Teilaufgaben, wie zum Beispiel Greifen, Fügen, Kontaktieren.
    • – Nachgiebige Bauteile besitzen Abweichungen in der Geometrie, die im Prozess berücksichtigt werden müssen, zum Beispiel ein nachgebendes Blech beim Greifen oder das Fügen von Plastikteilen.
    • – Mittels visueller Sensoren erkannte Objekte, zum Beispiel eine Schraube zum Verschrauben, befinden sich an immer unterschiedlichen Raumpunkten, weshalb die Positionierung des Roboters flexibel sein muss
  • Deshalb werden solche Aufgaben, die nicht mit festen Bewegungsbahnen programmiert werden können, zum Beispiel in der Montage und Qualitätssicherung, heutzutage größtenteils durch Menschen durchgeführt.
  • Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und ein System zur Programmierung eines Roboters der eingangs genannten Art derart auszugestalten und weiterzubilden, dass eine einfache und robuste Programmierung des Roboters, insbesondere für einen Manipulator- und/oder einen Montageprozess, ermöglicht ist.
  • Erfindungsgemäß ist die voranstehende Aufgabe durch die Merkmale des Patentanspruchs 1 gelöst. Danach ist ein Verfahren zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm, angegeben, wobei, vorzugsweise in einem Roboterprogramm, mit einer vordefinierten Bewegungsschablone eine auszuführende Roboterbewegung eingerichtet wird, wobei die Bewegungsschablone aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektiert wird, wobei die Bewegungsschablone ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst, wobei das Ausführungsmodul bzw. die Ausführungsmodule zur Planung und/oder Durchführung der Roboterbewegung oder einer Teilbewegung der Roboterbewegung verwendet wird bzw. werden, wobei das Lernmodul in einem Initialisierungsprozess, insbesondere in Form eines Teach-Prozesses, eine oder mehrere Konfigurationen des Roboters aufzeichnet, und wobei das Lernmodul basierend auf den aufgezeichneten Konfigurationen, vorzugsweise unter Verwendung eines maschinellen Lernverfahrens, Parameter für das Ausführungsmodul bzw. die Ausführungsmodule berechnet.
  • Des Weiteren ist die voranstehende Aufgabe durch die Merkmale des Patentanspruchs 15 gelöst. Danach ist ein System zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm, angegeben, wobei, vorzugsweise in einem Roboterprogramm, mit einer vordefinierten Bewegungsschablone eine auszuführende Roboterbewegung eingerichtet wird, wobei die Bewegungsschablone aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektierbar ist, wobei die Bewegungsschablone ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst, wobei das Ausführungsmodul bzw. die Ausführungsmodule zur Planung und/oder Durchführung der Roboterbewegung oder einer Teilbewegung der Roboterbewegung verwendet wird bzw. werden, wobei das Lernmodul in einem Initialisierungsprozess, insbesondere in Form eines Teach-Prozesses, eine oder mehrere Konfigurationen des Roboters aufzeichnet, und wobei das Lernmodul basierend auf den aufgezeichneten Konfigurationen, vorzugsweise unter Verwendung eines maschinellen Lernverfahrens, Parameter für das Ausführungsmodul bzw. die Ausführungsmodule berechnet.
  • Schließlich ist die voranstehende Aufgabe durch die Merkmale des Patentanspruchs 16 betreffend ein Computerprogrammprodukt gelöst.
  • In erfindungsgemäßer Weise ist zunächst einmal erkannt worden, dass die Erstellung von Roboterprogrammen, die tolerant gegenüber Abweichungen in der Positionierung und Geometrie von Objekten sind, verglichen mit der dialoggestützten und textuellen Programmierung wesentlich zu vereinfachen ist, um zuvor genannte Aufgaben oder Probleme für die Automatisierung – und ggf. die damit verbundenen Vorteile wie Durchsatz, Wiederholbarkeit, Qualität, etc. – möglichst effizient erschließen zu können. Durch im Roboterprogramm realisierte Toleranz gegenüber Abweichungen kann der allgemeine Engineeringaufwand erheblich verringert werden, zum Beispiel durch einfache, standardisierte, vorzugsweise auch für Menschen geeignete, Zuführungseinrichtungen und Greifersysteme, damit eine Automatisierung ökonomisch erfolgt.
  • Erfindungsgemäß wird zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm, eine auszuführende Roboterbewegung über eine vordefinierte Bewegungsschablone, vorzugsweise in einem Roboterprogramm, eingerichtet. Die Bewegungsschablone wird aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektiert, wobei die Bewegungsschablone erfindungsgemäß ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst. Das Ausführungsmodul bzw. die Ausführungsmodule wird/werden zur Planung und/oder Durchführung der Roboterbewegung bzw. einer Teilbewegung der Roboterbewegung verwendet. Das Lernmodul zeichnet in einem Initialisierungsprozess, zum Beispiel in Form eines Teach-Prozesses, eine oder mehrere Konfigurationen des Roboters auf. Basierend auf den aufgezeichneten Konfigurationen berechnet das Lernmodul, vorzugsweise unter Verwendung eines maschinellen Lernverfahrens wie beispielsweise der RANSAC-Algorithmus oder die Hauptkomponentenanalyse, Parameter für das Ausführungsmodul bzw. für die Ausführungsmodule.
  • Der Nachteil der klassischen Programmierverfahren Teach-In und Playback ist, dass nur Wegpunkte und Bahnen erzeugt werden können, jedoch keine Informationen ob oder wie diese Wegpunkte oder Bahnen angepasst werden müssten, um Abweichungen tolerieren bzw. kompensieren zu können. Im Unterschied zu Ansätzen zur Berücksichtigung von Abweichungen bei der Ausführung von Bewegungsbahnen durch die Vorgabe von Bewegungskorridoren kann mit dem erfindungsgemäßen Verfahren bzw. dem erfindungsgemäßen System berücksichtigt werden, dass sich nicht nur Abweichungen bei der Bewegungsbahn ergeben, sondern beispielsweise auch bei der zeitlichen Änderung der Greiferstellungen und/oder der gemessenen Kräfte und in verschiedenen Prozessschritten unterschiedliche Abweichungen zu berücksichtigen sind.
  • Folglich ist mit dem erfindungsgemäßen Verfahren und mit dem erfindungsgemäßen System sowie mit dem erfindungsgemäßen Computerprogrammprodukt eine einfache und robuste Programmierung eines Roboters, insbesondere für einen Manipulator- und/oder einen Montageprozess, ermöglicht.
  • In vorteilhafter Weise können die Parameter des Ausführungsmoduls bzw. der Ausführungsmodule Bedingungen umfassen, wobei auf Basis der Bedingungen die Roboterbewegung bzw. die Teilbewegung der Roboterbewegung geplant und/oder durchgeführt wird. Somit kann eine variable und dynamische Planung einer Roboterbewegung bzw. einer Teilbewegung einer Roboterbewegung erfolgen, so dass eine möglichst robuste und flexible Durchführung der Roboterbewegung realisierbar ist, insbesondere hinsichtlich etwaiger Abweichungen betreffend die Bewegung.
  • In weiter vorteilhafter Weise kann eine Bedingung eine Bedingungsfunktion f und eine Bedingungsregion R umfassen, wobei die Bedingungsfunktion f eine Konfiguration k in einen vorzugsweise reellwertigen Vektorraum abbildet, und wobei die Bedingungsregion R einer Teilmenge eines, vorzugsweise reellwertigen, Vektorraums entspricht. Eine Bedingung für eine Konfiguration k ist erfüllt, wenn f(k) in R liegt. Somit ist auf raffinierte Weise eine einheitliche Umsetzung verschiedenster Bedingungen möglich, was eine effektive Bahn- und Bewegungsplanung des Roboters ermöglicht.
  • Des Weiteren kann als Typ für eine Bedingungsfunktion f einer oder mehrere der folgenden Typen verwendet werden:
    • – Gelenkwinkel, -geschwindigkeit und/oder -beschleunigung des Roboters oder eines Endeffektors, insbesondere eines Greifers, des Roboters;
    • – Position, Orientierung und/oder Lage eines Tool-Center-Points des Roboters relativ zu einem Koordinatensystem;
    • – Geschwindigkeit, Winkelgeschwindigkeit und/oder Twist gemessen in einem Tool-Center-Point relativ zu einem Koordinatensystem;
    • – Kraft, Drehmoment und/oder Wrench gemessen in einem Tool-Center-Point relativ zu einem Koordinatensystem;
    • – Kollisionsfreiheit, Distanzbetrag und/oder Distanzvektor von einem CAD-Modell zu einem weiteren CAD-Modell;
    • – Griffbewertung von einem Endeffektor, insbesondere eines Greifers, des Roboters und einem CAD-Modell.
  • Somit kann durch Verwendung eines oder durch Kombination mehrerer der zuvor genannten Typen im Rahmen einer oder mehrerer Bedingungsfunktionen eine möglichst umfassende Berücksichtigung und Kompensierung von diversen Abweichungen in der Planung und Durchführung der Roboterbewegung erfolgen bzw. bereitgestellt werden.
  • In einer vorteilhaften Ausgestaltung kann als Typ für eine Bedingungsregion R ein achsausgerichteter Würfel, ein orientierter Würfel, ein Zylinder, ein Kegel, eine Kugel, eine Konvexe Hülle, ein CAD-Modell, eine Veroderung, eine Verundung und/oder eine Produktbildung verwendet werden. Die Veroderung, Verundung und Produktbildung kombinieren mindestens zwei Bedingungsregionen zu einer einzelnen Bedingungsregion. Somit können je nach Anwendungsfall und Typ einer Bedingungsfunktion der geeignete Wertebereich – durch entsprechende Verwendung des passenden Typs für die dazugehörige Bedingungsregion – gewählt werden.
  • In vorteilhafter Weise können die Parameter des Ausführungsmoduls bzw. der Ausführungsmodule Währendbedingungen als Bedingungen umfassen, wobei eine Währendbedingung eine zeitabhängige Bedingung ist, die für ein vorgebbares Intervall von Zeitpunkten eine zu erfüllende Bedingung definiert.
  • Des Weiteren können die Parameter des Ausführungsmoduls bzw. der Ausführungsmodule Zielbedingungen als Bedingungen umfassen, wobei eine Zielbedingung eine Bedingung ist, die für eine obere Intervallgrenze eines bzw. des vorgebbaren Intervalls von Zeitpunkten eine zu erfüllende Bedingung definiert.
  • Die Menge der Während- und Zielbedingungen einer bedingungsbasierten Bewegungsbeschreibung kann somit – direkt – zulässige Abweichungen modellieren, die während der Ausführung eines Manipulator- bzw. eines Montageprozesses auftreten können. Des Weiteren stellen Während- und Zielbedingungen Informationen dar, wie größere Abweichungen zu kompensieren sind. Dies stellt einen wesentlichen Fortschritt gegenüber klassischen Programmiermethoden dar, die keine derartige Information zur Verfügung stellen.
  • In einer vorteilhaften Ausgestaltung kann das Ausführungsmodul bzw. können die Ausführungsmodule unter Einhaltung eines Regelungsalgorithmus die Roboterbewegung oder eine Teilbewegung der Roboterbewegung derart adaptieren bzw. anpassen, dass die Währendbedingungen eingehalten werden. Des Weiteren kann bei Erfüllung der Zielbedingungen die Roboterbewegung bzw. eine Teilbewegung der Roboterbewegung erfolgreich beendet werden. Folglich führt ein Roboter eine Bewegung erfolgreich durch, wenn alle für die Bewegungsbahn gegebenen Während- und Zielbedingungen erfüllt sind. Der Roboter wird unter Einhaltung von Regelungsalgorithmen seine Bewegung so adaptieren, dass die Währendbedingungen eingehalten werden. Sobald die Zielbedingungen erfüllt sind, wird die Bewegung erfolgreich beendet. Ansonsten ist die Ausführung nicht erfolgreich.
  • In besonders vorteilhafter Weise kann basierend auf den Bedingungen, insbesondere basierend auf den Während- und/oder Zielbedingungen, für das Ausführungsmodul bzw. für die Ausführungsmodule der Bewegungsschablone, vorzugsweise unter Verwendung eines Bahnplanungsalgorithmus, eine Bewegungsbahn berechnet werden.
  • In vorteilhafter Weise kann das Ausführungsmodul bzw. die Ausführungsmodule mittels Kompilierung auf ein Zielsystem, zum Beispiel eine Robotersteuerung, abgebildet werden. Dazu kann basierend auf dem jeweiligen Regelungstyp, der berechneten Bewegungsbahn sowie den Während- und Zielbedingungen ausführbarer Robotercode erzeugt werden. Der Robotercode kann dann auf dem jeweiligen Zielsystem alleinständig ausgeführt werden.
  • Des Weiteren ist es denkbar, dass in dem Initialisierungsprozess die aufzuzeichnenden Konfigurationen mittels unterschiedlicher Schnittstellen durch einen Benutzer erzeugbar sind. Zum Beispiel mittels manuellen Führens des Roboters durch den Benutzer, mittels Mausinteraktion in einer 3D-Simulationsumgebung und/oder mittels weiterer geeigneter Steuermittel.
  • In einer vorteilhaften Ausgestaltung kann in dem Initialisierungsprozess eine Interaktion mit einem Benutzer durchgeführt werden, wobei Rückfragen bzw. Anweisungen an den Benutzer zur Erzeugung der aufzuzeichnenden Konfigurationen gestellt werden. Somit kann der Benutzer während des Initialisierungsprozesses bzw. beim Teach-Prozess effektiv unterstützt werden.
  • Im Hinblick auf eine einfache und effiziente Strukturierung kann das Ausführungsmodul bzw. können die Ausführungsmodule derart hierarchisch aufgebaut sein, dass ein Ausführungsmodul als nicht zerlegbarer primitiver Operator, d.h. als primitives Ausführungsmodul, ausgebildet ist oder aus einem oder mehreren Ausführungsmodulen und/oder einer oder mehreren Bewegungsschablonen zusammengesetzt ist. Somit können bereits vorhandene und ggf. parametrierte Bewegungsschablonen oder Ausführungsmodule effizient wiederverwendet werden.
  • Das erfindungsgemäße Verfahren ermöglicht eine robuste Einrichtung von Roboterprogrammen, die tolerant gegenüber Abweichungen in der Positionierung von Werkstücken und deren Geometrie sind, und ist industriell vorteilhaft einsetzbar.
  • Derartige Roboterprogramme werden nicht direkt in Form von Befehlen der Roboterprogrammiersprache (im Gegensatz zur dialoggestützten, textuellen Programmierung) erzeugt, sondern können auf Basis einer Datenbank von vordefinierten Bewegungsschablonen in einem Initialisierungsprozess bzw. Teach-Prozess erstellt werden. Die Bewegungsschablonen können, analog zum Teach-In, auf Basis von wenigen Konfigurationen für einen vorliegenden Prozess eingerichtet werden. Die Bewegungsschablonen umfassen vorzugsweise eine ausführbare Vorschrift, um Abweichungen im Prozess bei der Roboterausführung zu detektieren und ggf. zu kompensieren. Dabei können die bei Teach-In verwendeten Interpolationsverfahren zur Erzeugung von Bewegungsbahnen zwischen Wegpunkten durch Bahnplanungsverfahren ergänzt werden, die Bewegungsbahnen zwischen (implizit definierten) Wegpunktbereichen erzeugen können.
  • Nachfolgend werden einige Aspekte der Erfindung anhand einer beispielhaften Implementierung näher ausgeführt. Es sei darauf hingewiesen, dass die nachfolgenden Ausführungen lediglich besonders bevorzugte Ausführungsbeispiele beinhalten, die Lehre jedoch nicht als auf diese Ausführungsbeispiele beschränkt anzusehen sind.
  • Der Teach-Prozess als Initialisierungsprozess kann insbesondere die folgenden Schritte umfassen:
    • 1. Hinzufügen einer Bewegungsschablone aus einer Datenbank in ein Roboterprogramm (bzw. in ein leeres Roboterprogramm), zum Beispiel Einfügen, Spiralsuche, Anrücken und Greifen, Kontaktieren. Für jede Bewegungsschablone kann je eine Menge von Ausführungsmodulen und ein Lernmodul gegeben sein. Jedes Ausführungsmodul enthält Parameter, vorzugsweise einschließlich Während- und Zielbedingungen. Ein primitives Ausführungsmodul kann dabei einem bestimmten Regelungsalgorithmus entsprechen, wobei bekannte Reglerimplementierungen, wie beispielsweise eine hybride Kraft-Positionsregelung, erweitert werden. Das Lernmodul implementiert maschinelle Lernverfahren um die Parameter aus geteachten Konfigurationen und/oder aus dialogbasierten Eingaben zu erstellen.
    • 2. Das Lernmodul wird ausgeführt. Es kann als Erweiterung der Teach-In Programmierung, insbesondere auf die Erstellung von Während- und Zielbedingungen, aufgefasst werden. Das Lernmodul kann je nach Lernmodultyp Rückfragen (grafisch: 3D Visualisierung auf Robotersteuerung/externer PC, dialogbasiert: 2D Visualisierung) an den Benutzer bzw. an die Bedienperson zur Erzeugung bestimmter Konfigurationen stellen, wobei aus den Konfigurationen später die Parameter der Ausführungsmodule durch das Lernmodul berechnet werden. Der Benutzer erzeugt diese Konfigurationen mittels unterschiedlicher Schnittstellen, zum Beispiel durch Führen des realen Roboters oder durch Mausinteraktion in einer 3D-Simulationsumgebung. Zum Beispiel wird der reale Roboter in vier Konfigurationen bewegt, die vier Ecken eines Rechtecks markieren sollen oder der Benutzer markiert die entsprechenden vier Punkte auf einem CAD-Modell. Die Konfigurationen werden aufgezeichnet, zum Beispiel mittels der im Roboterarm integrierten Sensorik sowie externem Kraft-Momenten-Sensor (KMS).
    • 3. Im Lernmodul einer Bewegungsschablone sind maschinelle Lernverfahren implementiert, die aus den aufgezeichneten Konfigurationen, welche Roboterarmstellung und/oder Greiferstellung und/oder Kraft/Momentemessungen und/oder Punkte auf einem CAD-Modell beinhalten können, die Parameter der Ausführungsmodule berechnen.
    • 4. Basierend auf den Parametern kann für jedes Ausführungsmodul der Bewegungsschablone eine Bewegungsbahn berechnet werden, vorzugsweise unter Verwendung von Bahnplanungsalgorithmen, zum Beispiel Rapidly-Exploring-Random-Tree-Algorithmus. Dieser Schritt ist analog zum Teach-In, bei dem basierend auf Wegpunkten unter Auswahl von Interpolationsarten eine kontinuierliche Bahn, zum Beispiel eine lineare Verbindung zweier Wegpunkte erzeugt wird. Hier werden basierend auf Bedingungen, insbesondere Während- und Zielbedingungen, kontinuierliche Bahnen unter Einsatz von Planungsalgorithmen erzeugt.
    • 5. Die Ausführungsmodule mit Parametern können auf ein Zielsystem, d.h. eine Robotersteuerung, zum Beispiel unter Einsatz von Kompilierung abgebildet werden. Dazu wird basierend auf dem jeweiligen Regelungstyp, der berechneten Bewegungsbahn sowie den Während- und Zielbedingungen ausführbarer Robotercode erzeugt. Der Robotercode kann dann auf dem jeweiligen Zielsystem alleinständig ausgeführt werden. In einer alternativen Umsetzung können die Ausführungsmodule, inbesondere die primitiven Ausführungsmodule, direkt auf einer Computer- bzw. PC-basierten Steuerung ohne Überführung in Robotercode ausgeführt werden.
  • Die Parameter der Ausführungsmodule müssen im Gegensatz zum klassischen Teach-In oder Playback keine Wegpunkte oder Bewegungsbahnen sein, sondern können Während- und Zielbedingungen darstellen, die beide einheitlich wie folgt definiert werden können:
    Eine Bedingung besteht aus einer Bedingungsfunktion f (constraint function), die eine Konfiguration k in einen reellwertigen Vektorraum abbildet, und einer Bedingungsregion R (constraint region), die einer Teilmenge eines reellwertigen Vektorraums entspricht. Eine Bedingung ist für eine Konfiguration k erfüllt, genau dann wenn f(k) in R liegt.
  • Folgende Typen können zum Beispiel für eine Bedingungsfunktion f eingesetzt werden:
    • – Gelenkwinkel, -geschwindigkeit und/oder -beschleunigung des Roboters oder eines Endeffektors, insbesondere eines Greifers, des Roboters;
    • – Position, Orientierung und/oder Lage eines Tool-Center-Points des Roboters relativ zu einem Koordinatensystem;
    • – Geschwindigkeit, Winkelgeschwindigkeit und/oder Twist gemessen in einem Tool-Center-Point relativ zu einem Koordinatensystem;
    • – Kraft, Drehmoment und/oder Wrench gemessen in einem Tool-Center-Point relativ zu einem Koordinatensystem;
    • – Kollisionsfreiheit, Distanzbetrag und/oder Distanzvektor von einem CAD-Modell zu einem weiteren CAD-Modell;
    • – Griffbewertung von einem Endeffektor, insbesondere eines Greifers, des Roboters und einem CAD-Modell.
  • Im Hinblick auf eine Positions-, Orientierungs- oder Lagebedingungsfunktion (Pose constraint) stellt eine Bedingungsfunktion f die aktuelle Lage des Werkzeugpunkts (Tool Center Point TCP) relativ zu einem bestimmten (vordefinierten) Koordinatensystem K als 3-dimensionalen Vektor (Positions-, Orientierungsbedingung) oder als 6-dimensionalen Vektor (Lagebedingung) dar.
  • Im Rahmen einer beispielhaften Ausgestaltung kann die Berechnung der Lagebedingungsfunktion bestehend aus einem 3-dimensionalen Vektor der Position und einem 3-dimensionalen Vektor der Orientierung wie folgt beschrieben werden. Positions- und Orientierungsbedingungen bestehen nur aus dem jeweils 3-dimensionalen Vektor.
  • Wenn H die homogene Transformationsmatrix ist, die die Lage des TCPs relativ zu K beschreibt, dann wird der 6-dimensionale Vektor gebildet aus dem 3-dimensionalen Translationsvektor von H sowie der 3-dimensionalen skalierten Rotationsachse von H (axis-angle representation). Die skalierte Rotationsachse von H kann wie folgt berechnet werden:
    • 1. die 3 × 3 Rotationsmatrix von H wird in ein Quaternion (qx, qy, qz, qw) umgewandelt, wobei qw der Realteil ist.
    • 2. Der Rotationswinkel a ist 2·acos(qw). Acos ist die Arkuskosinus-Funktion.
    • 3. Die skalierte Rotationsachse ist a·1/sin(a)·[qx qy qz]. [qx qy qz] ist der 3-dimensionale Vektor bestehend aus qx, qy und qz.
  • Eine Geschwindigkeits-, Winkelgeschwindigkeits- sowie Twistbedingungsfunktion kann in analoger Weise berechnet werden (Twist = 6-dimensionaler Vektor bestehend aus 3-dimensionalen Geschwindigkeits- und 3-dimensionalen Winkelgeschwindigkeitsvektor). Allerdings wird hier die 3-dimensionale (Translations-)Geschwindigkeit und die 3-dimensionale Winkelgeschwindigkeit des TCPs relativ zu einem bestimmten Koordinatensystem K gemäß der Transformationsvorschrift für Geschwindigkeitsvektoren transformiert und als Wert der Bedingungsfunktion gespeichert.
  • Kraft-, Drehmoment- sowie Wrenchbedingungsfunktionen können ebenfalls analog wie im vorigen Abschnitt behandelt werden. Dabei wird die Kraft, das Drehmoment oder die Kombination aus Kraft und Drehmoment (Wrench) berechnet.
  • Gelenkwinkel, Gelenkgeschwindigkeit und Gelenkbeschleunigungsbedingungsfunktionen stellen direkt die n-dimensionalen Vektoren der aktuellen Position, Geschwindigkeit und Beschleunigung der Bewegungsfreiheitsgrade des Robotersystems dar.
  • Eine Kollisionsfreiheitsbedingungsfunktion kann derart implementiert sein, dass diese als Wert 1 ausgibt, falls eine Kollision der 3D CAD Modelle der Umgebung mit den 3D CAD Modellen des Roboters oder des Roboters mit sich selbst vorliegt. Diese Kollisionsberechnung kann u.a. durch Intersektion der Dreiecksnetze der 3D CAD Modelle erfolgen, wofür ggf. gängige Bibliotheken eingesetzt werden können. Falls keine Kollision vorliegt, wird 0 zurückgegeben.
  • Eine Distanzbetragsbedingungsfunktion berechnet vorzugsweise die euklidische Distanz eines 3D CAD Modells zu einem zweiten 3D CAD Modell als den Abstand des Punktpaares, welches aus den beiden Punkten des ersten und zweiten 3D Modells mit kürzestem Abstand zueinander entspricht. Eine Distanzvektorbedingungsfunktion berechnet vorzugsweise den normierten Vektor vom ersten zum zweiten Punkt des gleichen Punktpaares.
  • Eine Lagebedingung kann beispielsweise wie folgt realisiert bzw. implementiert werden: Sei das Koordinatensystem K im Schwerpunkt eines Objekts definiert. Dann wird die relative Lage des TCPs relativ zu K als 6-dimensionaler Vektor nach obiger Formel berechnet. R sei ein 6 dimensionaler Würfel gegeben als Mittelpunktsvektor [m1 m2 m3 m4 m5 m6] und Abweichungsvektor [e1 e2 e3 e4 e5 e6]. Der Würfel entspricht allen Vektoren [v1 v2 v3 v4 v5 v6] mit mi – ei <= vi <= mi + ei. Die Bedingung besagt, dass der Tool Center Point, und damit ebenfalls die Roboterarmstellung, in einem bestimmten Bereich liegen muss, zum Beispiel oberhalb des Objekts, das gegriffen werden soll. Das Koordinatensystem K ist in diesem Fall im Schwerpunkt des Objekts definiert. In diesem Fall wären mögliche Werte von R: [m1 m2 m3 m4 m5 m6] = [0 0 0.05 1.5708 0 0] und [e1 e2 e3 e4 e5 e6] = [0.01 0.01 0 0 0 0].
  • Die Bedingungsregion befindet sich zu 0.05m oberhalb des Schwerpunkts des Objekts mit einer Orientierung von ca. 90 Grad, entsprechend 1.5708 rad, um die x-Achse rotiert. Erlaubte Abweichungen von diesem Punkt sind 0.01m in x- sowie in y-Richtung.
  • Eine Kraftbedingung (force constraint) kann wie folgt realsiert werden: Die gemessene Kraft mit dem KMS wird als 3-dimensionaler Vektor [fx fy fz] dargestellt. Die Bedingungsregion R sei eine 3-dimensionale Kugel R mit Radius r und Mittelpunktsvektor [m1 m2 m3]. Die Kraftbedingung ist erfüllt, genau dann wenn [fx fy fz] in R liegt, d.h. norm([fx – m1 fy – m2 fz – m3]) <= r.
  • Dabei ist norm die euklidische Norm des Vektors. Die Kraftbedingung ist somit erfüllt, genau dann wenn der Betrag der Kraft kleiner gleich r ist.
  • Im Rahmen eines bevorzugten Ausführungsbeispiels der Erfindung sollte bzw. muss eine Bedingungsfunktion eine oder mehrere der folgenden Berechnungen erfüllen, wobei K eine Konfiguration und r ein reellwertiger Vektor mit Dimension entsprechend der Dimension von R(k) ist:
    • 1. f(k) = r, d.h. die Funktion f kann auf die Konfiguration k angewendet werden. Dies muss für alle Funktionen f erfüllt sein.
    • 2. f–1(r, k’) = k, d.h. wenn ein Wert r und eine Referenzkonfiguration k’ gegeben ist, kann eine Konfiguration k berechnet werden, die f(k) = r erfüllt. (Berechnung B.1)
    • 3. f(k) kann mittels r inkrementiert werden, d.h. wenn eine Konfiguration k und ein Vektor r gegeben ist, dann kann eine Konfiguration k’ berechnet werden, so dass f(k’) = f(f–1(f(k) + r)), d.h. die Konfiguration k wird so abgeändert, dass die Änderung einem gegebenen Schritt r in R entspricht.
  • Gemäß einem Ausführungsbeispiel definiert eine Bedingungsregion einen reellwertigen Wertebereich R. R sollte bzw. muss dabei eine oder mehrere der folgenden Berechnungen erlauben. r sei ein reellwertiger Vektor mit Dimension gleich Dimension von R:
    • 1. Reellwertige Distanz d >= 0 von r zu R: d ist 0, falls r in R ansonsten der minimale Abstand von r zur Oberfläche von R (Berechnung B.2)
    • 2. Reellwertige Distanz d von r zur Oberfläche von R: falls r in R ist d der negative Wert des minimalen Abstands von r zur Oberfläche von R. Ansonsten ist d der minimale Abstand von r zur Oberfläche von R
    • 3. Enthalten e = 0 oder 1. e ist 1, genau dann wenn r in R. Diese Berechnung muss von allen Bedingungsregionen erfüllt werden.
    • 4. Den Mittelpunkt m von R. Diese Berechnung muss von allen Bedingungsregionen erfüllt werden.
    • 5. Zufälliger Punkt auf Oberfläche r. Es kann ein zufälliger Vektor r berechnet werden, so dass r auf der Oberfläche von R liegt.
    • 6. Zufälliger Punkt aus Innenraum. Es kann ein zufälliger Vektor r berechnet werden, so dass r in R liegt. (Berechnung B.3)
    • 7. Berechnung der Ausdehnung von R in eine beliebige Richtung v. (Berechnung B.4)
  • Eingesetzte Typen von R können dabei sein: Achsausgerichteter Würfel (axisaligned bounding box), orientierter Würfel (oriented bounding box), Zylinder, Kegel, Kugel, Konvexe Hülle, CAD-Modell, Veroderung, Verundung und/oder Tupelbildung.
  • Die Menge der Während- und Zielbedingungen einer bedingungsbasierten Bewegungsbeschreibung kann somit direkt zulässige Abweichungen modellieren, die während der Ausführung eines Roboterprogramms, zum Beispiel eines Montageprozesses, auftreten können. Des Weiteren stellen sie Informationen dar, wie größere Abweichungen zu kompensieren sind, was einen wesentlichen Fortschritt gegenüber klassischen Programmiermethoden darstellt, die keine derartige Information zur Verfügung stellen.
  • Eine mögliche Kompensation größerer Abweichungen wird im Folgenden detaillierter beschrieben. Dabei wird zwischen Bewegungsplanung und Regelung unterschieden.
  • Im Rahmen einer Bewegungsplanung ist das Ziel die Erzeugung einer Bewegungsbahn, die eine bedingungsbasierte Bewegungsbeschreibung erfüllt. Hierbei kann der Algorithmus Constraint-based bidirectional Rapidly-Exploring Random Tree (CBiRRT) nach Berenson et al.: "Manipulation Planning on Constraint Manifolds", IEEE International Conference on Robotics and Automation (ICRA '09), May, 2009 mit der Projektionstechnik Randomized Gradient Descent (RGD) nach Stilman, M: "Task constrained motion planning in robot joint space," Intelligent Robots and Systems, 2007 kombiniert werden und auf die Während- und Zielbedingungen angepasst werden. Der Bahnplanungsalgorithmus umfasst dann folgende Schritte:
    • 1. Erzeugung von Zielkonfigurationen, d.h. Konfigurationen, für die alle Zielbedingungen erfüllt sind. Da die Menge der Zielkonfigurationen im Allgemeinen mehr als ein Element enthält, handelt es sich hierbei um zulässige Abweichungen, zum Beispiel von einer Stelle, an der das Robotersystem einen Gegenstand ablegen kann.
    • 2. Suche einer stückweise linearen Verbindung von einer Startkonfiguration zu den erzeugten Zielkonfigurationen. In diesem Schritt wird die Bewegungsbahn erzeugt, die von der Startkonfiguration zu einer der Zielkonfigurationen führt. Dadurch ist das Robotersystem in der Lage zielgerichtet innerhalb der zulässigen Abweichungen, die in Form von Währendbedingungen gegeben sind, eine gültige Bewegungsbahn autonom zu generieren.
  • Als Grundlage für die Berechnung der Zielkonfigurationen sowie der Suche kann zunächst jedoch eine Projektionstechnik vorgesehen sein, die eine Konfiguration, in der nicht alle Bedingungen erfüllt sind, auf eine ähnliche Konfiguration abbildet, die alle Bedingungen erfüllt. Insofern kann als Projektionstechnik ein zufälliger Gradientenabstieg (Randomized Gradient Descent, RGD) mit Bedingungen implementiert werden. Das Ziel ist die Abbildung einer Konfiguration k auf eine Konfiguration k’, so dass eine gegebene Menge an Bedingungen in k’ erfüllt ist und k’ nicht weiter von k entfernt ist als d > 0. D.h. die vorgesehene Projektionstechnik ermöglicht es daher eine Konfiguration k, in der eine Menge an Bedingungen verletzt sind, minimal so abzuändern, dass die Bedingungen erfüllt werden. Der RGD-Algorithmus wird hierbei mit einer speziellen Distanzfunktion eingesetzt.
  • Die Distanzfunktion dist() kann wie folgt definiert sein: Gegeben sei die Konfiguration k und eine Menge an Bedingungen b1 bis bn:
    • 1. Berechne für jedes bi einen Distanzwert di: sei f die Bedingungsfunktion und R die Bedingungsregion von bi. Falls R die Distanzberechnung unterstützt (siehe Berechnung B.2), dann gilt di = Minimum von MAX und Distanz von f(k) zu R. Falls R keine Distanzberechnung unterstützt, dann ist di = 0, falls f(k) enthalten in R. Ansonsten ist di = MAX. MAX ist eine Konstante > 0, hier: 100000.
    • 2. Bilde das Maximum dmax aller Distanzwerte di
    • 3. Der Wert der Distanzfunktion für die Konfiguration k ist dmax
  • Der RGD-Algorithmus projiziert eine Konfiguration k auf eine Konfiguration k’, in der alle Bedingungen bi erfüllt sind, indem ein zufallsgesteuerter Gradientenabstieg durchgeführt wird. Dabei wird der folgende Prozess durchgeführt. Sei e > 0 gegeben und k’ = k zu Beginn:
    Funktion bool RGD(k, bi, k’):
    • 1. Setze ZAEHLER = 0
    • 2. Falls ZAEHLER > MAXIMUM, breche mit Rückgabewert Falsch ab
    • 3. Erzeuge nach einer Gleichverteilung m Richtungsvektoren si der Dimension der Konfiguration k. Setze die Konfiguration ki = k’ + e·si. Berechne vi = dist(ki) für alle ki.
    • 4. Bestimme das Argument j mit minimalem Wert (argmin-Funktion) aller vi.
    • 5. Falls vj = 0, setze k’ = kj und breche mit Rückgabewert Wahr ab.
    • 6. Falls vj >= dist(k), setze ZAEHLER = ZAEHLER + 1 und gehe zu 2
    • 7. Falls norm(k – k’) > d, setze ZAEHLER = ZAEHLER + 1 und gehe zu 2
    • 8. Setze k’ = kj
    • 9. Gehe zu 2.
  • Die Zielkonfigurationen können dann in einem mehrstufigen Prozess erzeugt werden. Seien bi = (fi, Ri) die gegebenen Zielbedingungen mit Bedingungsfunktion fi und Bedingungsregion Ri:
    • 1. Bestimme die Bedingungen bj aus bi, so dass fj invertierbar ist (siehe Berechnung B.1) und Rj die Berechnung von zufälligen Vektoren unterstützt (siehe Berechnung B.3).
    • 2. Iteriere durch alle bj: a. Berechne einen zufälligen Wert rj aus Rj nach Berechnung B.3 b. Berechne kj = f–1(rj, k)
    • 3. Falls RGD(k, bi, k’) Wahr ist, füge k’ zur Menge der Zielkonfigurationen hinzu
  • Im Hinblick auf die Suche einer stückweisen linearen Verbindung von einer Startkonfiguration k0 zur Menge der Zielkonfiguration kj kann der CBiRRT Algorithmus mit folgender Modifikation eingesetzt werden: der Schritt ConstrainConfig(kalt, kneu) wird ersetzt durch RGD(kalt, bi(t), kneu). Hierbei sind bi(t) die Währendbedingungen zum Zeitpunkt t, der im Planungsprozess schritthaltend inkrementiert wird.
  • Das Endergebnis des Bahnplanungsalgorithmus ist eine Sequenz von Zeitpunkten mit Konfigurationen (t1, k1), ..., (tm, km), so dass k1 die Startkonfiguration und km eine der Zielkonfigurationen aus der Menge der Zielkonfigurationen entspricht. Dabei sind die Währendbedingungen in k1 bis km–1 erfüllt. Die Zielbedingungen sind in km erfüllt.
  • Zur Bereitstellung einer geeigneten Regelung gemäß einem Ausführungsbeispiel kann der Regelungsalgorithmus hybride Positions- und Kraftregelung weiterentwickelt werden, um auf Basis von Während- und Zielbedingungen parametriert werden zu können. Die Interpretation der Während- und Zielbedingungen ist dabei wie folgt:
    • 1. Währendbedingungen, die durch Einsatz von Regelung einzuhalten sind
    • 2. Zielbedingungen, die, wenn sie erfüllt werden, die Ausführung unterbrechen
  • Im Rahmen des Ausführungsbeispiels ist der Regelungsalgorithmus als Proportional-Integral-Differential-Regler (PID-Regler) in den sechs Dimensionen x, y, z, rx, ry und rz implementiert vorgesehen. Der wesentliche Unterschied zum hybriden Positions- und Kraftregler liegt in der Fehlerberechnung, die die üblicherweise verwendete Selektionsvorschrift ersetzt. Der Regelungsalgorithmus unterstützt Währendbedingungen mit Positions-, Orientierungs-, Lage-, Kraft-, Drehmoment- oder Wrench-Bedingungsfunktion. Diese Bedingungsfunktionen sind einheitlich aufgebaut und basierend auf der Lage oder Wrench im TCP relativ zu einem bestimmten Koordinatensystem K.
  • Der Update-Schritt des PID-Reglers kann wie folgt umgesetzt werden:
    • 1. Iteriere durch alle Währendbedingungen
    • 2. Berechne für die aktuelle Konfiguration k den Wert f(k) der Bedingungsfunktion f der aktuellen Währendbedingung.
    • 3. Die Fehlerberechnung im PID-Regler erfolgt für jede Dimension x, y, z, rx, ry und rz einzeln. Dabei werden folgenden Schritte in jeder Dimension i durchlaufen: a. Berechne den Abstand di von f(k) zum Mittelpunkt der Region m an der Koordinate i b. Berechne nach Berechnung B.4 die Ausdehnung ai der Bedingungsregion R in der Richtung, die durch i gegeben ist. Dabei ist explizit möglich, dass die Ausdehnung unendlich ist, zum Beispiel bei einer 2D-Ebene. c. Falls Betrag di kleiner ai, dann setze den Fehler ei auf 0. Ansonsten ist der Fehler ei = ai – di d. Wende das PID-Update auf den Fehler ei an und berechne den Sollwert si
    • 4. Transformiere den Sollvektor s = [s1 s2 s3 s4 s5 s6] in den TCP nach den Transformationsvorschriften der Bedingungsfunktion
    • 5. Falls eine Kraft, Drehmoment oder Wrench-Bedingungsfunktion gegeben ist, wandle den Sollvektor mit einer gegebenen Federkonstante nach dem Prinzip der Federkraft in einen Lagesollvektor um
    • 6. Berechne die Summe der Sollvektoren und transformierten Lagesollvektoren aller Währendbedingungen
    • 7. Bewege den Roboter relativ um die berechnete Summe
  • Somit führt der Roboter in einer gegebenen Dimension i entweder eine Positions-, eine Kraft- oder eine zeitgleiche Positions- und Kraftregelung durch, je nach vorliegenden Währendbedingungen.
  • Der Regelungsvorgang wird abgebrochen, falls alle Zielbedingungen in der aktuellen Konfiguration erfüllt sind.
  • Zusätzlich können die Regelungsalgorithmen einfach auf die Verwendung von Zielbedingungen erweitert werden, zum Beispiel eine Positionsregelung im Gelenkwinkelraum und/oder im kartesischen Raum oder eine Kraftregelung. Dabei wird in der Regelungsschleife die aktuelle Konfiguration k berechnet. Die Regelung wird erfolgreich abgebrochen, falls alle Zielbedingungen in k erfüllt sind.
  • Gemäß einem Ausführungsbeispiel der Erfindung stellen Während- und Zielbedingungen eine besonders vorteilhafte Parametrierung zur Erzeugung von Bewegungsbahnen mittels Bahnplanung und Regelung dar, die erlaubte Abweichungen explizit modellieren können und daher zur Steigerung der Robustheit führen können. Die Programmierung mittels Während- und Zielbedingungen ist aufgrund der algorithmischen Komplexität nur Experten in der Robotik vorbehalten. In raffinierter Weise werden daher Bewegungsschablonen eingesetzt, die Ausführungsmodule mit Lernmodulen kombinieren. Die Ausführungsmodule können mittels Bedingungen – insbesondere mittels Während- und Zielbedingungen – parametriert werden. Lernmodule können einfache maschinelle Lernverfahren einsetzen, um Während- und Zielbedingungen als Parameter für die Ausführungsmodule aus wenigen Konfigurationen zu erzeugen. Das Lernmodul an sich repräsentiert einen Prozess, der eine Bedienperson schrittweise, beispielsweise anhand schematischer Darstellungen der wenigen Konfigurationen, durch deren Erzeugung führt. Somit können selbst Nicht-Experten Roboterprogramme für Aufgaben auf einfache Weise erstellen, die bisher eine aufwändige und komplexe textuelle Programmierung von Abbruch- oder Sollkriterien erforderten.
  • Die Bewegungen eines Roboters werden durch Bewegungsschablonen beschrieben. Eine Bewegungsschablone besteht aus einem oder mehreren Ausführungsmodulen und einem Lernmodul. Jedes Ausführungsmodul ist entweder ein primitiver Operator (Basic Operator), d.h. er kann nicht weiter zerlegt werden, oder es besteht wiederum aus mehreren Ausführungsmodulen (Macro Operator). Dabei existieren mindestens zwei Klassen an Ausführungsmodulen: Regler (Controller) sowie Bahnplaner (Motion Planner). Bahnplaner erzeugen auf Basis von Während- und Zielbedingungen eine Bewegungsbahn. Controller sind vom Typ der beschriebenen Positionsregler im Gelenkwinkelraum, Positionsregler im kartesischen Raum, Kraftregler oder erweiterten hybriden Positions-Kraftregler. Controller bzw. Regler verarbeiten die Während- und Zielbedingungen und erzeugen während der Ausführung eine Bewegungsbahn.
  • Ausführungsmodule können durch eine Menge aus Während- und/oder Zielbedingungen parametriert werden. Die Während- und Zielbedingungen, die in der Bewegungsschablone gespeichert sind, sind vorzugsweise nur teilweise parametriert: für jede Bedingung ist der Typ der Bedingungsfunktion f fest sowie der Typ der Bedingungsregion R fest. Die Parameter der Bedingungsfunktion sind frei, also zum Beispiel das Koordinatensystem K bei Lagebedingungen bzw. die Lage des TCPs. Ebenso sind die Parameter der Bedingungsregion, d.h. zum Beispiel Mittelpunkt, Orientierung und Ausdehnung eines achsorientierten Würfels frei. Die freien Parameter werden durch Lernmodule berechnet.
  • Das Ziel im Hinblick auf die Interaktion mit einem Benutzer bzw. einer Bedienperson im Rahmen des Initialisierungsprozesses bzw. des Teach-Prozesses ist eine schematische Darstellung der zu erzeugenden Konfiguration zu erzeugen, damit der Benutzer eine semantisch richtige Konfiguration für die Berechnung der freien Parameter der Ausführungsmodule erzeugt. Zum Beispiel muss der Benutzer Kontakt mit einem Gegenstand herstellen, um eine Kraftmessung mit dem KMS zu ermöglichen.
  • Die Darstellung erfolgt schematisch, da die Bewegungsschablonen allgemein definiert und unabhängig vom konkreten Aussehen der Objekte, des Greifers bzw. des Roboters sind.
  • Die schematische Darstellung kann auf mehrere Arten erfolgen:
    • 1. Darstellung eines Videos mit einer realen und/oder computeranimierten Darstellung der Ausführung der Bewegungsschablone und/oder des Prozesses der Konfigurationserzeugung in einem prototypischen Beispiel der Bewegungsschablone. Dabei werden in letzterem Fall die einzelnen Schritte, d.h. die einzelnen zu erzeugenden Konfigurationen hervorgehoben, zum Beispiel durch Pausieren im Video.
    • 2. Verwendung eines Dialogsystems, um den Nutzer schrittweise durch den Prozess der Konfigurationserzeugung zu führen, so dass der Nutzer bereits erzeugte Konfigurationen zurücknehmen und Teile des Prozesses wiederholen kann. Dabei wird für jede zu erzeugende Konfiguration mindestens ein Dialogfenster anzeigt mit einer schematischen Visualisierung der zu erzeugenden Konfiguration analog zu 1.
  • Die freien Parameter können von den Lernmodulen auf Basis der Konfigurationen Ti berechnet werden. Dabei seien der Bedingungsregionstyp sowie die Bedingungsfunktion gegeben.
  • Wenn T1 bis Tn die Konfigurationen zur Berechnung der freien Parameter der Bedingung b = (f, R) sind. Dann gilt:
    • 1. Berechne f(T1), ... f(Tn)
    • 2. Setze eine Gütefunktion g(Rp) >= 0 fest, die einer Bedingungsregion Rp ohne freie Parameter einen numerischen Wert zuweist. In der vorliegenden Arbeit wurde g(R) = gewichtete Summe aus Volumen und Oberfläche der Region R gesetzt.
    • 3. Verwende ein nicht-lineares Optimierungsverfahren, zum Beispiel den Simplex- oder Rosenbrock-Algorithmus, um das folgenden Optimierungsproblem zu lösen: Finde Werte für die freien Parameter von R, so dass Rp bzgl. g(R) minimal ist und f(T1) bis f(Tn) in Rp enthalten sind.
  • Der Einsatz eines vorgegebenen Lernmoduls für eine Bewegungsschablone, die vorzugsweise teilweise parametriert ist, ermöglicht die Bestimmung von Während- und Zielbedingungen mit nur einer geringen Menge von Konfigurationen, was zu einer Reduktion der Programmierzeit führt und gleichzeitig das Prozessergebnis überprüfbar macht, was für den robusten industriellen Einsatz erforderlich bzw. besonders vorteilhaft ist. Im Vergleich mit textueller oder dialoggestützter Programmierung muss der Programmierer nicht direkt die Parameter der Bewegungsbefehle eingeben, sondern diese Parameter werden aus dem vorgestellten Teach-Prozess automatisch berechnet.
  • Für jeden Regelungstyp und jedes Zielsystem können Kompilierungsvorschriften vorhanden sein, die das Ausführungsmodul in ausführbaren Robotercode übersetzen. Dabei wird die Auswertung von Zielbedingungen direkt im Robotercode nachgebildet. Währendbedingungen werden abhängig vom Reglertyp nachgebildet. Bei Positionsreglern werden nur Währendbedingungen, die die Lage oder Gelenkwinkel des Roboterarms betreffen, eingeregelt (zum Beispiel mit den zuvor beschriebenen Verfahren). Bei Kraftreglern Währendbedingungen für die gemessenen KMS Werte. Bei hybrider Positions/Kraftregelung werden Währendbedingungen für die Position und KMS Werte berücksichtigt. Dabei wird die Bedingungsregion R analysiert, um die Raumachsen festzulegen, die kraft- oder positionsgesteuert werden. Eine Ausdehnung in einer gewissen Raumachse größer einem Schwellwert wird als unendliche Ausdehnung bewertet. Raumachsen mit unendlicher Ausdehnung werden bei Positions-Bedingungen nicht positions- und bei Kraft-Bedingungen nicht kraftgeregelt.
  • Das erfindungsgemäße Verfahren bzw. das erfindungsgemäße System und/oder deren unterschiedlichen, vorteilhaften Ausgestaltungen stellen eine Erweiterung des klassischen Teach-Ins auf Roboterprogramme mit Notwendigkeit zur Berücksichtigung von Abweichungen dar. Das Ergebnis ist ein ausführbares Programm, das nicht nur Bewegungsbefehle wie beim Teach-In enthält, sondern bei dem ein Bewegungsbefehl vorzugsweise noch Während- und Zielbedingungen besitzt. Die integrierten Regelungsalgorithmen ändern die Roboterbewegung entsprechend dem Reglertyp ab, um die Währendbedingungen einzuhalten und die Zielbedingungen zu erreichen. Die beschriebenen möglichen vorteilhaften Ausgestaltungen ermöglichen somit die einfache Einrichtung von Roboterprogrammen mit Regelungsstrategien, die sonst nur sehr zeitaufwendig durch dialoggestützte oder textuelle Programmierung manuell erstellt werden können.
  • Mögliche Verfahrensschritte sind somit: Teachen von Konfigurationen auf Basis von Schablonen, Berechnung der Während- und Zielbedingungen, Berechnung einer prototypischen Bewegungsbahn, Abbildung auf Regelungsverfahren mit Während- und Zielbedingungen, Kompilierung zur Erzeugung von Robotercode.
  • Das ersetzt einen analogen Vorgang bei der dialoggestützten bzw. textuellen Programmierung, wonach der Programmierer in der Programmiersprache ein Regelungsverfahren entwickelt und dessen Parameter für eine vorliegenden Aufgabe manuell festlegt; er erzeugt und parametriert Ziel- und Abbruchbedingungen in der Programmiersprache. Startposen und Zwischenpunkte werden durch Teach-In am Roboter erzeugt.
  • Das erfindungsgemäße Verfahren und das erfindungsgemäße System und/oder dessen vorteilhafte Ausgestaltungen ermöglichen dagegen eine schnellere Einrichtung von komplexen Roboterprogrammen bei gleichzeitig geringeren Anforderungen an die Bedienperson, wodurch bisher aus ökonomischen oder komplexitätstechnischen Gründen nicht automatisierte Anwendungen für die Automation erschlossen werden können. Zusätzlich können erzeugte Teillösungen, d.h. Mengen von parametrierten Bewegungsschablonen, einfach wiederverwendet werden, da sie einfach angepasst werden können, indem mit den Lernmodulen einzelne Konfigurationen abgeändert werden.
  • Konkret entfällt beim definierten Aufgabenprofil, zum Beispiel einer durchschnittlichen Montageaufgabe, die zeitaufwendige, manuelle Einrichtung von Soll- und Abbruchkriterien für eine große Zahl an Bewegungsbefehlen durch den Programmierer mittels einer dialoggestützten oder textuellen Programmierschnittstelle. An deren Stelle treten eine raffiniert einfache Einrichtung des Roboterprogramms aus einer Menge von Bewegungsschablonen sowie das Teachen von wenigen, klar definierten Konfigurationen für jedes Lernmodul. Das daraus abgeleitete Roboterprogramm enthält automatisch Soll- und Abbruchkriterien in Form von Während- und Zielbedingungen. Im Gegensatz zu Teach-In oder Playback muss somit nicht ein bestimmter Wegpunkt angefahren werden, sondern die Bewegung kann erfolgreich ausgeführt werden, wenn die Bedingungen erfüllt sind, d.h. zum Beispiel wenn ein Wegpunkt aus einer Region angefahren werden kann, wodurch die Ausführung flexibler wird. In Form der Bedingungen liegt zusätzlich Information vor, wie eine Abweichung kompensiert werden kann. Das Roboterprogramm ist somit tolerant gegenüber Abweichungen entsprechend der Ausdehnung der Bedingungsregion.
  • Nachfolgend sind beispielhaft vorteilhafte Definitionen zur Anwendung im Rahmen von bevorzugten Ausgestaltungen der Erfindung angegeben.
  • Eine Konfiguration (configuration) ist in der Bahnplanungsfachliteratur eine eindeutige Beschreibung des Zustands eines Robotersystems. Im vorliegenden Fall kann eine Konfiguration daher gegeben sein als ein n-dimensionaler, reellwertiger Vektor, der folgende Information enthält:
    • – die Werte aller steuer- und nicht-steuerbaren Freiheitsgrade des Robotersystems, d.h. bei einem Sechsachs-Industrieroboter sechs Gelenkwinkelwerte
    • – die Werte aller steuer- und nicht-steuerbaren Freiheitsgrade der am Roboter angebrachten Werkzeuge, d.h. bei einem elektrischen Backengreifer ein Wert für die Greiferbackenstellung
    • – die Werte der erfassten Sensordaten der am Roboter angebrachten Sensoren, d.h. bei einem sechs dimensionalen Kraft-Momenten-Sensor drei Werte für die gemessenen Kräfte in Raumrichtung x, y und z sowie drei Werte für die gemessenen Drehmomente in Raumrichtung x, y und z
    • – einen Wert für den Zeitpunkt t
  • Ein Konfigurationsraum (configuration space) ist die Menge aller Konfigurationen, die das Robotersystem einnehmen kann. Dabei werden physikalische Randbedingungen, wie zum Beispiel eine ansteuerbare Gelenkwinkelstellung, die zu einer Selbstkollision des Roboters führt, ignoriert. Wenn eine Konfiguration aus n Koordinaten besteht und jede Koordinate Werte zwischen Li und Ui annehmen kann, dann ist der Konfigurationsraum definiert als der Hyperwürfel mit Dimension n und Kantenlängen Ui – Li sowie Mittelpunkt (Li + Ui)/2.
  • Eine Bewegungsbahn (motion) kann als eine Funktion b angegeben werden, die jedem Punkt aus dem abgeschlossenen Intervall von 0 bis 1 eine Konfiguration zuweist und stetig ist. Der Wert von b an der Stelle 0 ist die Startkonfiguration. Der Wert von b an der Stelle 1 ist die Zielkonfigurationen. Eine Bewegungsbahn ist daher eine stetige Verbindung im Konfigurationsraum.
  • Eine Bedingung (constraint) kann als eine Funktion g angegeben werden, die einer Konfiguration k, den Wert 0 oder 1 zuweist. Man sagt eine Bedingung g sei in der Konfiguration k erfüllt, genau dann wenn g(k) = 1. Ansonsten ist die Bedingung nicht erfüllt.
  • Eine Währendbedingung (runtime constraint) kann als eine zeitabhängige Bedingung angegeben werden, d.h. sie definiert für jeden Zeitpunkt t eine Bedingung. Sie wird auf die Werte an den Stellen größer gleich 0 und kleiner 1 einer Bewegungsbahn angewendet wird. Eine Währendbedingung g(t) ist auf einer Bewegungsbahn b erfüllt, genau dann wenn g(t)(b(t)) = 1 ist für alle t >= 0 und t < 1.
  • Eine Zielbedingung (goal constraints) kann als eine Bedingung angegeben werden, die auf den Wert an der Stelle 1 einer Bewegungsbahn angewendet wird. Eine Zielbedingung g ist auf einer Bewegungsbahn b erfüllt, genau dann wenn g(b(1)) = 1.
  • Eine bedingungsbasierte Bewegungsbeschreibung (constraint-based motion representation) ist defnierbar als eine Menge von Während- und eine Menge von Zielbedingungen. Eine Bewegungsbahn erfüllt eine bedingungsbasierte Bewegungsbeschreibung, wenn alle Während- und alle Zielbedingungen auf der Bewegungsbahn erfüllt sind.
  • Im Rahmen der Ausführung einer Roboterbewegung unter Verwendung von Während- und Zielbedingungen können Bewegungsbahnen zum Beispiel wie folgt generiert werden: durch den Einsatz von Bewegungsplanung und/oder durch den Einsatz von Regelung. Bei der Bewegungsplanung wird eine Bewegungsbahn vor der Ausführung auf dem Roboter erzeugt. Bei der Regelung wird eine Bewegungsbahn durch einen Regelungsalgorithmus während der Ausführung erzeugt. Dabei ist die Startkonfiguration konstant und entspricht dem Beginn der Bewegung. Die Zielkonfiguration ist immer die aktuelle Konfiguration, in der sich der Roboter zum aktuellen Zeitpunkt befindet. Damit wächst die mit einem Regelungsalgorithmus erzeugte Bahn kontinuierlich an. Ein Roboter führt eine Bewegung erfolgreich durch, wenn alle für die Bewegungsbahn gegebenen Während- und Zielbedingungen erfüllt sind. Der Roboter wird unter Einhaltung von Regelungsalgorithmen seine Bewegung so adaptieren, dass die Währendbedingungen eingehalten werden. Sobald die Zielbedingungen erfüllt sind, wird die Bewegung erfolgreich beendet. Ansonsten ist die Ausführung nicht erfolgreich.
  • Es gibt nun weitere verschiedene Möglichkeiten, die Lehre der vorliegenden Erfindung in vorteilhafter Weise auszugestalten und weiterzubilden. Dazu ist einerseits auf die dem Patentanspruch 1 nachgeordneten Patentansprüche und andererseits auf die nachfolgende Erläuterung weiterer bevorzugter Ausführungsbeispiele der Erfindung anhand der Zeichnung zu verweisen. In Verbindung mit der Erläuterung der bevorzugten Ausführungsbeispiele der Erfindung anhand der Zeichnung werden auch im Allgemeinen bevorzugte Ausgestaltungen und Weiterbildungen der Lehre erläutert. In der Zeichnung zeigen
  • 1 in einer schematischen Ansicht ein beispielhaftes Roboterprogramm wie es ein Mensch manuell erstellen würde, um das Einstellen einer Schraube bis auf ein vorgebbares Drehmoment mit einem Roboter zu bewerkstelligen (Stand der Technik),
  • 2 in einer schematischen Ansicht ein Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems, wobei der hierarchische Aufbau, insbesondere während eines Kompilierungsprozesses, einer Bewegungsschablone angedeutet ist,
  • 3 in einer schematischen Ansicht den Aufbau sowie Parameter einer Bewegungsschablone gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems,
  • 4 in einer schematischen Ansicht einen Programmierprozess gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems,
  • 5 in einer schematischen Ansicht einzelne Komponenten zur Programmierung eines Roboterprogramms, insbesondere mit Während- und Zielbedingungen, durch Teaching gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems,
  • 610 in einer schematischen Ansicht einen Initialisierungsprozess bzw. einen Teach-Prozess – gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems – zur Aufzeichnung von Konfigurationen für einen Schraubvorgang, die von einer Bedienperson erzeugt werden,
  • 11 in einer schematischen Ansicht einen beispielhaften Zielbereich für ein Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems,
  • 12 ein Beispiel einer grafischen Anleitung für eine Bedienperson zur Erzeugung von zu teachenden bzw. aufzuzeichnenden Konfigurationen gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems, und
  • 13 in einer schematischen Ansicht den Ablauf eines Initialisierungsprozesses bzw. eines Teach-Prozesses mittels eines Lernmoduls zur Erzeugung der Parameter für eine Bewegungsschablone gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems.
  • Die Figuren 1 bis 12 umfassen ein gemeinsames Anwendungsbeispiel, nämlich die Programmierung eines Roboters zum Eindrehen einer Schraube in ein Werkstück bis auf ein gewisses Drehmoment durch einen Roboter.
  • 1 zeigt in einer schematischen Ansicht ein beispielhaftes Roboterprogramm 1 wie es – gemäß dem Stand der Technik – ein Mensch manuell erstellen würde, um das Eindrehen einer Schraube bis auf ein vorgebbares Drehmoment mit einem Roboter zu bewerkstelligen. Im Konkreten umfasst das Roboterprogramm 1 gemäß 1 Anweisungen bzw. Roboterbefehle zur Durchführung/Erledigung der genannten Aufgabe, und zwar so wie es ein Mensch heutzutage manuell programmieren bzw. erstellen müsste. Die Kästchen sind einzelne Roboterbefehle mit Parametern. P1, P2, P3 und P4 sind geteachte Punkte, die manuell als Parameter, vorzugsweise durch den Programmierer, in dass Programm integriert wurden. SENSOR[2] liest den z-Wert des Kraftmomentsensors am Roboter aus, SENSOR[5] das Drehmoment um z. OUT[0] = 1 bzw. 0 aktiviert bzw. deaktiviert den Schraubendreher am Roboter.
  • Das in 1 dargestellte, beispielhafte Roboterprogramm 1 umfasst folgende Programmanweisungen PA1 bis PA14:
  • PA1:
    Bewege schnell zur Startposition P1 oberhalb der Schraube
    PA2:
    Rücke an mit Schraubendreher bis P2, d.h. 2 mm oberhalb Schraube
    PA3:
    Solange gemessener Kraftwert in z-Richtung kleiner 2 Newton
    PA4:
    Bewege relativ zum Tool-Center-Point 1 mm in z-Richtung
    PA5:
    Schleifenende
    PA6:
    Aktiviere Schraubendreher
    PA7:
    Speichere aktuelle Tool-Center-Position in P4
    PA8:
    Aktiviere Kraftregelung und stelle 5 N in z-Richtung ein
    PA9:
    Solange Positionsänderung kleiner als 1 cm und gemessener Drehmomentwert um z-Achse kleiner 10 Nm
    PA10:
    Warte einen Zeitschritt
    PA11:
    Schleifenende
    PA12:
    Schraubvorgang erfolgreich wenn Drehmomentwert mindestens 10 Nm
    PA13:
    Deaktiviere Schraubendreher
    PA14:
    Rücke ab von der festgezogenen Schraube auf Position P3
  • Gemäß dem Beispiel aus 1 muss der Programmierer bzw. der Mensch sich die Struktur des Programms sowie einzelne Parameter wie „< 2“, „< 0.01“, „< 10“ etc. überlegen bzw. diese wählen. Mit Hilfe eines Teach-Panels kann der Programmierer Zwischenpunkte anfahren und in das Programm einfügen, insbesondere die Punkte P1 bis P4. Es erfordert einen sehr hohen Aufwand die Struktur des Programms festzulegen und verschiedene Abbruchkriterien festzulegen.
  • 2 zeigt in einer schematischen Ansicht ein Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems, wobei der hierarchische Aufbau einer Bewegungsschablone 2 („Screwing“), insbesondere während eines Kompilierungsprozesses, angedeutet ist. Folglich zeigt 2 wie in einem Kompilierungsprozess aus den Bewegungsschablonen schrittweise der Roboterprogrammquelltext automatisch erzeugt werden kann, ohne textuelle Programmierung. Dabei entspricht üblicherweise der erzeugte Quelltext nicht genau dem, den ein Mensch schreiben/erstellen würde. In 2 ist dies zum Zwecke der einfacheren Darstellung angenommen worden.
  • Die Bewegungsschablone 2, rechts dargestellt in 2, besteht aus mehreren Ausführungsmodulen 3. Jedes der Ausführungsmodule 3 kann prinzipiell wieder eine Bewegungsschablone oder ein oder mehrere Ausführungsmodule 4 umfassen (hierarchische Repräsentation). Dadurch können Teilprogramme repräsentiert und wiederverwendet werden.
  • In der untersten Ebene befinden sich Ausführungsmodule, die nicht weiter zerlegt werden. Enthalten sind roboterprogrammtypische Befehle, wie zum Beispiel Ein/Ausgänge der Steuerung setzen. Relevant für den Kompilierungsprozess ist das verwendete Ausführungsmodul Controller. Type bezeichnet den Typ des Controllers, insbesondere Positions-, Kraft- oder hybride Positions-Kraftregelung. Ri bzw. Gi sind die Während- bzw. Zielbedingungen. Der Regler des jeweiligen Typs ist so implementiert, dass die Währendbedingungen Ri eingehalten und die Zielbedingungen Gi erreicht werden sollen. Für die Ausführungsmodule dieser Ebene sowie die Typen der Während- und Zielbedingungen sind Regeln hinterlegt, wie diese auf ausführbaren Roboterprogrammquelltext für die jeweilige Zielrobotersteuerung abgebildet werden können. Nach Berechnung aller Parameter werden diese Regeln angewendet, um den ausführbaren Quelltext zu erzeugen.
  • 3 zeigt in einer schematischen Ansicht den Aufbau sowie Parameter einer Bewegungsschablone 2 („Screwing“) gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems. Die Bewegungsschablone 2 besteht aus Ausführungsmodulen 3, Strukturinformation (siehe Pfeile über Verbindungen im Graph) über die Reihenfolge der Ausführungsmodule 3 und einem Lernmodul 5. Die Ausführungsmodule 3 können hierarchisch aus weiteren Ausführungsmodulen (oder aus vorzugsweise Bewegungsschablonen) bestehen.
  • Die Parameter T1 bis T6 der Bewegungsschablone 2 sind Konfigurationen, die variable, vorzugsweise alle variablen, Freiheitsgrade des Robotersystems (zum Beispiel Armstellung, Greiferstellung), Sensordaten (zum Beispiel Kraftmomentenmessungen) und Referenzpunkte auf CAD-Modellen (zum Beispiel Kontaktpunkte auf einem 3D-Modell) umfassen bzw. enthalten.
  • Die Struktur von Ausführungsmodulen spiegelt die Ausführungsreihenfolge des daraus erzeugten Roboterprogrammquelltextes wieder und entspricht der realen Ausführungsreihenfolge.
  • Lernmodule werden entsprechend ihrer Struktur ausgeführt und berechnen aus Konfigurationen T1–Tn die Parameter der Ausführungsmodule, also insbesondere Währendbedingungen Ri und Zielbedingungen Gj. Hierbei bezeichnet B.f die Bedingungsfunktion der Bedingung B sowie B.R die Bedingungsregion der Bedingung B.
  • Im Konkreten kann gemäß dem in 3 dargestellten Ausführungsbeispiels eine Bewegungsschablone 2 („Screwing“) aus den Ausführungsmodulen 3, nämlich MoveToState, MoveToContact, FastenScrew und Depart bestehen. Die Parameter der Ausführungsmodule 3 sind – allgemein formuliert – Währendbedingungen (Ri) und Zielbedingungen (Gi). Diese Während- und Zielbedingungen werden durch vordefinierte Funktionen des Lernmoduls schrittweise berechnet.
  • Das Ausführungsmodul MoveToState in 3 hat nur eine Zielbedingung G1. Diese Zielbedingung hat eine Bedingungsfunktion f vom Typ Gelenkwinkelbedingung, d.h. für eine Konfiguration k ist f(k) der reellwertige Vektor bestehend aus allen Gelenkwinkelwerten des Roboters, sowie eine Bedingungsregion R vom Typ Kugel mit Mittelpunkt entsprechend der geteachten Konfiguration T1 oberhalb der Schraube und Radius entsprechend der Ungenauigkeit des Robotergelenkpositionssensors, zum Beispiel 0.0001 RAD. MoveToState besteht intern aus einem Bahnplanungs-Ausführungsmodul „MotionPlanner“ (vgl. 2) sowie einem Regler-Ausführungsmodul „Controller“. Das Bahnplanungs-Ausführungsmodul berechnet mit dem definierten Bahnplanungsprozess eine Bewegungsbahn P1 von der Startkonfiguration zu einer Konfiguration, die die Zielbedingung G1 erfüllt, d.h. bis auf die Ungenauigkeit des Robotergelenkpositionssensors die geteachte Konfiguration T1 anfährt. Die berechnete Bewegungsbahn wird dann mit dem Regler vom Typ Positionsregler ausgeführt und ist erfolgreich, wenn die letzte, über die Robotergelenkpositionssensoren gemessene Konfiguration die Zielbedingung erfüllt. Der Roboter fährt somit von der aktuellen Konfiguration zur Konfiguration, in der der Schraubendreher oberhalb der Schraube positioniert ist.
  • Das Ausführungsmodul MoveToContact gemäß 3 besitzt die Währendbedingung R1 und die Zielbedingungen G2 und G3. Es besteht aus einem Bahnplanungs-Ausführungsmodul und zwei Regelungs-Ausführungsmodulen. Die Währendbedingung R1 beschreibt die lineare Bewegung von der Konfiguration oberhalb der Schraube zu einer Konfiguration, in der der Schraubendreher Kontakt mit der Schraube hat. Die Bedingungsfunktion ist eine Lagebedingungsfunktion, die den TCP relativ zu dem Koordinatensystem beschränkt, das exakt der Lage des TCPs in der Startkonfiguration entspricht. Die Bedingungsregion ist ein Würfel, der aus den in einem Initialisierungsprozess geteachten Konfigurationen T1, T2 und T3 berechnet wird. D.h. die Ausdehnung in Richtung der Schraube entspricht in der Länge der gefahrenen Strecke von der Konfiguration oberhalb der Schraube (T1) zu der Konfiguration in Kontakt mit der Schraube (T2 und T3). Die Ausdehnung orthogonal dazu entspricht der Abweichung, die der Mensch von T1 nach T2 und T3 von der linearen Bewegung geteacht hat. G2 ist eine Lagebedingung mit gleicher Bedingungsfunktion wie R1, aber unterschiedlicher Bedingungsregion. Die Bedingungsregion ist ein Würfel mit minimaler Ausdehnung, der die Werte der Bedingungsfunktion an T2 und T3 enthält.
  • Die einheitliche, komplexe Parametrierung der Ausführungsmodule mit Während- und Zielbedingungen ermöglicht es, ein einheitliches maschinelles Lernverfahren zur Erzeugung dieser Parameter aus geteachten Konfigurationen anzugeben.
  • Das Ziel des Lernmoduls 5 der Bewegungsschablone 2 ist es die Parameter der Ausführungsmodule 3, die in Form von Während- und Zielbedingungen gegeben sind, aus wenigen Konfigurationen zu erzeugen. Da Konfigurationen über mehrere, intuitive Eingabekanäle erzeugt werden können, ist somit ein erheblich einfacheres Programmierverfahren gegeben als mit der textuellen Programmierung, die in funktioneller Hinsicht vergleichbare Roboterprogramme (mit Abbruchkriterien und Reglern) erzeugen kann. Der Vorteil gegenüber gängigen, aus der Praxis bekannten Verfahren liegt in der minimalen Anzahl an Konfigurationen (oder auch Trainingsbeispielen in der maschinellen Lernliteratur), die notwendig sind, um vergleichbar komplexe Roboterprogramme zu erzeugen. Dies wird ermöglicht, indem explizite Vorschriften zur Berechnung der freien Parameter der Während- und Zielbedingungen bereits in der Aktionsbeschreibung, insbesondere in der Beschreibung der Bewegungsschablone, abgespeichert werden. Diese Vorschriften sind hier repräsentiert als die einzelnen Prozessschritte, die im Lernmodul 5 ausgeführt werden.
  • Im Lernmodul ist eine Menge von Prozessschritten definiert, die jeweils basierend auf einer Menge von Konfigurationen, siehe T1 bis T6 in 3, eine Während- oder Zielbedingung berechnen. Diese Während- und Zielbedingungen dienen dann als Eingabe für die Ausführungsmodule.
  • Gemäß Beispiel aus 3 hat das Ausführungsmodul MoveToContact drei Parameter, nämlich Währendbedingung R1 sowie Zielbedingungen G2 und G3. R1 ist eine Lagebedingung mit Bedingungsregiontyp Cylinder. Die freien Parameter von R1, d.h. die Lage des Mittelpunkts des Cylinders, dessen Höhe und Radius, werden berechnet aus den Konfigurationen T1, T2 und T3. Dazu wird die Bedingungsfunktion f auf T1, T2 und T2 angewendet mit Ergebnis R1.f(T1), R1.f(T2), R1.f1(T3). Die verwendete Funktion Cylinder (A1, A2, ..., An) berechnet dabei die freien Parameter der Bedingungsregion aus den Vektoren A1 bis An unter Verwendung eines Optimierungsalgorithmus. Der berechnete Cylinder approximiert die Bewegung, die der TCP auf dem Weg zum Kontaktpunkt durchzuführen hat.
  • Gemäß dem Ansatz eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens wird ein Großteil der Struktur durch die Ausführungsmodule der Bewegungsschablonen erzeugt. Die Abbruchkriterien werden automatisch mit Hilfe der Während- und Zielbedingungen festgelegt, die aus geteachten Konfigurationen berechnet werden.
  • 4 zeigt die Auflistung eines Programmierprozesses gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems. Der Programmierprozess umfasst folgende Teilschritte TS1 bis TS6:
  • TS1:
    Bewegungschablone in Gesamtprogramm einfügen
    TS2:
    Ausführung des Lernmoduls
    TS3:
    Rückfragen an Nutzer zur Erzeugung von Schlüsselkonfigurationen
    TS4:
    Ausführung Berechnungsvorschriften für Während- und Zielbe dingungen
    TS5:
    Ausführung Bahnplanung zur Berechnung von Pfaden auf Basis von Während- und Zielbedingungen
    TS6:
    Kompilierung zu ausführbarem Roboterprogrammquelltext
  • 5 zeigt die Visualisierung der eingesetzten Komponenten. Eine Bedienperson 6 erzeugt Konfigurationen direkt am Roboter 7 und mit Hilfe eines Computers/PCs 8 (bei Punkten am CAD-Modell). Der Roboter 7 verfügt über einen oder mehrere Sensoren 9 und einen Schraubendreher 10, um die Umgebung wahrzunehmen (zum Beispiel Kräfte oder visuell). Mit Hilfe des Computers/PCs 8 wird Quelltext für die Robotersteuerung 11 erzeugt, die dort bzw. auf dem Roboter 7 lauffähig ist.
  • Die Figuren 6, 7, 8, 9 und 10 zeigen die Visualisierung der von einer Bedienperson erzeugten Konfigurationen T1–T6 zur Programmierung des Roboters 7 für einen Schraubvorgang im Rahmen des in 5 dargestellten Anwendungsumfelds.
  • 6 zeigt den Start des Prozesses, d.h. des Initialisierungsprozesses bzw. des Teach-Prozesses, wodurch der Roboter 7 zur Durchführung der Arbeitsoperation derart programmiert werden soll, dass mit dem Roboter 7, der einen Sensor 9 und einen Schraubendreher 10 umfasst, eine Schraube 12 in ein Werkstück 13 geschraubt wird.
  • Gemäß 7 führt die Bedienperson den Schraubendreher 10 direkt oberhalb der Schraube 12 ohne Kontakt, so dass die Konfiguration T1 aufgezeichnet wird. Die Zielbedingung G1 mit vordefiniertem Typ der Bedingungsfunktion f = Gelenkwinkelbedingungsfunktion sowie Typ der Bedingungsregion R = Sphere wird aus der Konfiguration T1 berechnet. Die Funktion Sphere berechnet nach einem Gütekritierum die optimale Kugel, die Konfiguration T1 umschließt: G1.R = Sphere(G1.f(T1))
  • Die Zielbedingung G1 besagt, dass der Roboter genau diese Armstellung einnehmen soll.
  • Gemäß 8 führt die Bedienperson den Roboter 7 auf Kontakt mit der Schraube 12. Die Bedienperson nimmt zwei redundante Konfigurationen T2 und T3 auf. Aus den zwei (ggf. auch mehr) Konfigurationen wird die Zielbedingung G3 für die Kraft beim auf Kontaktfahren mit der Schraube berechnet. Der Typ der Bedingungsfunktion ist Kraftbedingungsfunktion mit Tool-Center-Point TCP in der Spitze des Schraubendrehers 10 sowie Koordinatensystem exakt gleich der Lage des TCP in der Startkonfiguration, d.h. T2. Der Typ der Bedingungsregion ist Cube.
  • Die Funktion Cube berechnet basierend auf den Werten der Bedingungsfunktion für T2 und T3, d.h. der gemessenen Kräfte transformiert in den TCP, die Bedingungsregion von G3: G3.R = Cube(G3.f(T2), G3.f(T3))
  • Zusätzlich wird aus der Differenz aus den voherigen Konfigurationen T1 und T3 die Richtung der Bewegung berechnet und als Währendbedingung abgespeichert, d.h. der Roboter 7 muss sich in die geteachte Richtung bewegen.
  • Die Funktion Cylinder berechnet für die Werte der Bedingungsfunktion in T1, T2 und T3 den optimalen Cylinder, der diese Werte enthält. Dabei ist R1.f eine Lagebedingungsfunktion. R1.R = Cylinder(R1.f(T1), R1.f(T2), F1.f(T3))
  • Analog dazu wird die Zielbedingung G2 berechnet. Allerdings ist der Bedingungsregionstyp: Cube. G2.R = Cube(G2.f(T2), G2.f(T3))
  • G2 wird zur Berechnung der Bewegung zum Kontaktpunkt verwendet. Bei der Ausführung wird die berechnete Bewegung ausgeführt und erfolgreich abgebrochen, falls G3 erfüllt ist.
  • Gemäß 9 aktiviert die Bedienperson den Schraubendreher 10, dreht die Schraube 12 ein und stoppt den Schraubendreher 10. Die Bedienperson wiederholt den Prozess und speichert zwei redundante Konfigurationen T4 und T5 jeweils am Ende der Bewegung ab.
  • Aus der vorherigen Konfiguration T2 und der neuen Konfiguration T4 wird die Währendbedingung für die Bewegung der Schraube berechnet, analog zu R1: R2.R = Cylinder(R2.f(T2), R2.f(T4))
  • D.h. die Bewegung wird abgebrochen sobald die Schraube 12 sich weiter bewegt als die Bedienperson es vorgemacht hat.
  • Zusätzlich wird eine Währendbedingung für die Kraft, die der Schraubendreher 10 auf die Schraube 12 aufbringen soll, berechnet. Der Vorgang ist analog zu G3: R3.R = Cube(R3.f(T4), R3.f(T5))
  • Aus den gleichen Konfigurationen wird eine Zielbedingung berechnet. D.h. die Bewegung ist erfolgreich, wenn das Drehmoment im Bereich der von der Bedienperson geteachten Drehmomente ist. Die Berechnung erfolgt analog zu R3, allerdings mit einer Drehmomentbedingungsfunktion: G4.R = Cube(G4.f(T4), G4.f(T5))
  • Gemäß 10 bewegt die Bedienperson den Roboter 7 weg von der Schraube 12 zur Konfiguration T6. Aus der vorherigen Konfiguration T5 und aus der Konfiguration T6 wird eine Zielbedingung berechnet, analog zu G2: G5.R = Cube(G5.f(T5), G5.f(T6))
  • D.h. der Roboter 7 wird eine relative Bewegung nach oben machen, die der Entfernung von T5 nach T6 entspricht. Damit rückt der Roboter 7 sicher ein Stück von der Schraube 12 ab.
  • 11 zeigt in einer schematischen Ansicht eine beispielhafte Bedingungsregion für eine Kraftbedingungsfunktion einer Zielbedingung für ein Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems.
  • 11 ist analog zum Aufzeichnungsschritt aus 8 zur Berechnung von G3.R = Cube(G3.f(T2), G3.f(T3)) auf Basis der Konfigurationen T2 und T3. In den Konfigurationen T2 und T3 sind alle relevanten Informationen über den Roboter 7 zum Zeitpunkt des Teachings gespeichert, also auch gemessene Kraftwerte. Im Lernmodul ist für die Zielbedingung G3 die Funktion f und Bedingungsregion R hinterlegt mit noch zu bestimmenden freien Parametern. f ist hier eine Kraftbedingungsfunktion definiert als die gemessene Kraft als 3-dimensionaler Vektor (fx fy fz) gemessen im Tool-Center-Point (TCP), hier am Endpunkt des Schraubendrehers 10, relativ zu einem Referenzkoordinatensystem F1 (hier gleich Tool-Center-Point). Die zwei Werte von f für T2 und T3 werden berechnet, nämlich f(T2) und f(T3).
  • Die Bedingungsregion R ist in diesem Beispiel vom Bedingungsregionstyp: Sphere, d.h. eine Kugel mit Mittelpunkt M und Radius. Sie wird mit der Funktion Sphere() aus den zwei Werten der Bedingungsfunktion in T2 und T3 berechnet. Der berechnete Radius entspricht damit genau der Abweichung vom Mittelwert der geteachten Kraftwerte, die der Roboter selbst bei der Regelung zulassen kann. Damit kann die Bedienperson durch geeignete Konfigurationen die Robustheit der Ausführung erhöhen.
  • 12 zeigt ein Beispiel einer grafischen Anleitung 14 für eine Bedienperson bzw. einen Benutzer zur Erzeugung von zu teachenden bzw. aufzuzeichnenden Konfigurationen gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems. Im Konkreten ist ein Beispiel für eine grafische Anleitung der Bedienperson/des Benutzers im Teach-Prozess dargestellt. Die Bedienperson bekommt prototypische Beispiele für zu teachende bzw. aufzuzeichnende Konfigurationen in ähnlichen Anwendungen (in 2D oder 3D) dargestellt und wird, vorzugsweise schrittweise, durch den Initialisierungsprozess geleitet.
  • 13 zeigt in einer schematischen Ansicht den Ablauf eines Initialisierungsprozesses bzw. eines Teach-Prozesses mittels eines Lernmoduls zur Erzeugung der Parameter für eine Bewegungsschablone gemäß einem Ausführungsbeispiel eines erfindungsgemäßen Verfahrens oder Systems. 13 umfasst die Darstellung des Ablaufs des Lernmoduls für eine Bewegungsschablone, die eine Spiralsuche ausführt. Das Ziel ist es einen gegriffenen Gegenstand 15 in ein Loch 16 zu stecken. Falls die Lage des Lochs 16 nur ungenau bekannt ist, muss das Loch 16 zuerst gesucht werden. Hierfür wird die Bewegungsschablone Spiralsuche eingesetzt. Bei der Spiralsuche kontaktiert der Roboter mit dem Gegenstand 15 die ebene Fläche 17, in der sich das Loch 16 befindet, wozu das bereits beschriebene Ausführungsmodul MoveToContact eingesetzt wird. Bei Kontakt führt der Roboter eine spiralförmige Bewegung 18 durch und übt dabei Kraft auf die Oberfläche aus. Falls die Spirale über das Loch 16 verläuft, rutsch der Gegenstand 15 in das Loch 16. Die Bewegung wird beendet, sobald der Gegenstand 15 um mindestens min und maximal max Millimeter in das Loch 16 gerutscht ist, was durch eine Zielbedingung repräsentiert wird.
    • a) Die Bedienperson demonstriert nacheinander 4 Konfigurationen, die eine Region um das Loch 16 markieren. Die Bedienperson demonstriert drei weitere Konfigurationen, die einen Bereich markieren, in den der Gegenstand 15 in das Loch 16 bewegt werden soll (siehe 13a).
    • b) Aus den ersten vier Konfigurationen werden eine Während- und zwei Zielbedingungen generiert für MoveToContact, analog zu 2. Aus der erzeugten Zielbedingung mit Bedingungsregionstyp Würfel (siehe 13b) wird schrittweise eine spiralförmige Bewegung generiert: es werden die zwei Raumrichtungen mit der größten Ausdehnung berechnet, zum Beispiel unter Verwendung der Hauptkomponentenanalyse. Es wird unter Verwendung eines Algorithmus zur Erzeugung einer Spirale, zum Beispiel Archimedische Spirale, eine Spirale erzeugt und skaliert, so dass diese innerhalb der zwei größten Ausdehnungen liegt (siehe 13d)
    • c) Aus den letzten zwei Konfigurationen wird eine Zielbedingung vom Typ Lagebedingungsfunktion und Bedingungsregionstyp Cylinder berechnet (analog zu 9), 13c
    • d) Der Roboter bewegt sich auf der Spirale und bricht die Bewegung erfolgreich ab, falls die Zielbedingung gemäß 13c erfüllt ist, d.h. der Gegenstand ist ins Loch gerutscht.
  • Hinsichtlich weiterer vorteilhafter Ausgestaltungen des erfindungsgemäßen Verfahrens bzw. des erfindungsgemäßen Systems wird zur Vermeidung von Wiederholungen auf den allgemeinen Teil der Beschreibung sowie auf die beigefügten Patentansprüche verwiesen.
  • Schließlich sei ausdrücklich darauf hingewiesen, dass die voranstehend beschriebenen Ausführungsbeispiele des erfindungsgemäßen Verfahrens bzw. des erfindungsgemäßen Systems lediglich zur Erörterung der beanspruchten Lehre dienen, diese jedoch nicht auf die Ausführungsbeispiele einschränken.
  • Bezugszeichenliste
  • 1
    Roboterprogramm
    2
    Bewegungsschablone
    3
    Ausführungsmodul
    4
    Ausführungsmodul
    5
    Lernmodul
    6
    Bedienperson
    7
    Roboter
    8
    Computer
    9
    Sensor
    10
    Schraubendreher
    11
    Robotersteuerung
    12
    Schraube
    13
    Werkstück
    14
    Grafische Anleitung
    15
    Gegenstand
    16
    Loch
    17
    Fläche
    18
    Spiralförmige Bewegung
    M
    Mittelpunkt
    F1
    Referenzkoordinatensystem
    PA1–PA14
    Programmanweisung
    TS1–TS6
    Teilschritt
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Berenson et al.: "Manipulation Planning on Constraint Manifolds", IEEE International Conference on Robotics and Automation (ICRA '09), May, 2009 [0056]
    • Stilman, M: "Task constrained motion planning in robot joint space," Intelligent Robots and Systems, 2007 [0056]

Claims (16)

  1. Verfahren zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm, wobei, vorzugsweise in einem Roboterprogramm, mit einer vordefinierten Bewegungsschablone eine auszuführende Roboterbewegung eingerichtet wird, wobei die Bewegungsschablone aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektiert wird, wobei die Bewegungsschablone ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst, wobei das Ausführungsmodul bzw. die Ausführungsmodule zur Planung und/oder Durchführung der Roboterbewegung oder einer Teilbewegung der Roboterbewegung verwendet wird bzw. werden, wobei das Lernmodul in einem Initialisierungsprozess, insbesondere in Form eines Teach-Prozesses, eine oder mehrere Konfigurationen des Roboters aufzeichnet, und wobei das Lernmodul basierend auf den aufgezeichneten Konfigurationen, vorzugsweise unter Verwendung eines maschinellen Lernverfahrens, Parameter für das Ausführungsmodul bzw. die Ausführungsmodule berechnet.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Parameter des Ausführungsmoduls bzw. der Ausführungsmodule Bedingungen umfassen, wobei auf Basis der Bedingungen die Roboterbewegung bzw. die Teilbewegung der Roboterbewegung geplant und/oder durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass eine Bedingung eine Bedingungsfunktion f und eine Bedingungsregion R umfasst, wobei die Bedingungsfunktion f eine Konfiguration k in einen vorzugsweise reellwertigen Vektorraum abbildet, wobei die Bedingungsregion R einer Teilmenge eines vorzugsweise reellwertigen Vektorraums entspricht, und wobei eine Bedingung für eine Konfiguration k erfüllt ist, wenn f(k) in R liegt.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass als Typ für eine Bedingungsfunktion f einer oder mehrere der folgenden Typen verwendet wird: – Gelenkwinkel, -geschwindigkeit und/oder -beschleunigung des Roboters oder eines Endeffektors, insbesondere eines Greifers, des Roboters; – Position, Orientierung und/oder Lage eines Tool-Center-Points des Roboters relativ zu einem Koordinatensystem; – Geschwindigkeit, Winkelgeschwindigkeit und/oder Twist gemessen in einem Tool-Center-Point relativ zu einem Koordinatensystem; – Kraft, Drehmoment und/oder Wrench gemessen in einem Tool-Center-Point relativ zu einem Koordinatensystem; – Kollisionsfreiheit, Distanzbetrag und/oder Distanzvektor von einem CAD-Modell zu einem weiteren CAD-Modell; – Griffbewertung von einem Endeffektor, insbesondere eines Greifers, des Roboters und einem CAD-Modell.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass als Typ für eine Bedingungsregion R ein achsausgerichteter Würfel, ein orientierter Würfel, ein Zylinder, ein Kegel, eine Kugel, eine Konvexe Hülle, ein CAD-Modell, eine Veroderung, eine Verundung und/oder eine Produktbildung verwendet wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Parameter des Ausführungsmoduls bzw. der Ausführungsmodule Währendbedingungen als Bedingungen umfassen, wobei eine Währendbedingung eine zeitabhängige Bedingung ist, die für ein vorgebbares Intervall von Zeitpunkten eine zu erfüllende Bedingung definiert.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Parameter des Ausführungsmoduls bzw. der Ausführungsmodule Zielbedingungen als Bedingungen umfassen, wobei eine Zielbedingung eine Bedingung ist, die für eine obere Intervallgrenze eines/des vorgebbaren Intervalls von Zeitpunkten eine zu erfüllende Bedingung definiert.
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass das Ausführungsmodul bzw. die Ausführungsmodule unter Einhaltung eines Regelungsalgorithmus die Roboterbewegung bzw. eine Teilbewegung der Roboterbewegung so adaptiert/adaptieren, dass die Währendbedingungen eingehalten werden.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass bei Erfüllung der Zielbedingungen die Roboterbewegung bzw. eine Teilbewegung der Roboterbewegung erfolgreich beendet wird.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass basierend auf den Bedingungen, insbesondere basierend auf den Während- und/oder Zielbedingungen, für das Ausführungsmodul bzw. für die Ausführungsmodule der Bewegungsschablone, vorzugsweise unter Verwendung eines Bahnplanungsalgorithmus, eine Bewegungsbahn berechnet wird.
  11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass das Ausführungsmodul bzw. die Ausführungsmodule mittels Kompilierung auf ein Zielsystem, insbesondere auf eine Robotersteuerung, abgebildet wird bzw. werden.
  12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass in dem Initialisierungsprozess die aufzuzeichnenden Konfigurationen mittels unterschiedlicher Schnittstellen durch einen Benutzer erzeugbar sind, insbesondere mittels manuellen Führens des Roboters durch den Benutzer, mittels Mausinteraktion in einer 3D-Simulationsumgebung und/oder mittels weiterer geeigneter Steuermittel.
  13. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass in dem Initialisierungsprozess eine Interaktion mit einem Benutzer erfolgt, wobei Rückfragen bzw. Anweisungen an den Benutzer zur Erzeugung der aufzuzeichnenden Konfigurationen gestellt werden.
  14. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, dass das Ausführungsmodul bzw. die Ausführungsmodule derart hierarchisch aufgebaut ist/sind, dass ein Ausführungsmodul als primitiver Operator ausgebildet ist oder aus mindestens einem Ausführungsmodul und/oder mindestens einer Bewegungsschablone gebildet wird.
  15. System zur Programmierung eines Roboters, insbesondere eines Roboters umfassend einen Roboterarm, insbesondere zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 14, wobei, vorzugsweise in einem Roboterprogramm, mit einer vordefinierten Bewegungsschablone eine auszuführende Roboterbewegung eingerichtet wird, wobei die Bewegungsschablone aus einer mehrere Bewegungsschablonen umfassenden Datenbank selektierbar ist, wobei die Bewegungsschablone ein oder mehrere parametrierbare Ausführungsmodule und mindestens ein Lernmodul umfasst, wobei das Ausführungsmodul bzw. die Ausführungsmodule zur Planung und/oder Durchführung der Roboterbewegung oder einer Teilbewegung der Roboterbewegung verwendet wird bzw. werden, wobei das Lernmodul in einem Initialisierungsprozess, insbesondere in Form eines Teach-Prozesses, eine oder mehrere Konfigurationen des Roboters aufzeichnet, und wobei das Lernmodul basierend auf den aufgezeichneten Konfigurationen, vorzugsweise unter Verwendung eines maschinellen Lernverfahrens, Parameter für das Ausführungsmodul bzw. die Ausführungsmodule berechnet.
  16. Computerprogrammprodukt mit Programmcode, der auf einem maschinenlesbaren Träger gespeichert ist und ein Verfahren zur Programmierung eines Roboters nach einem der Ansprüche 1 bis 14 bereitstellt und/oder ausführt.
DE102015204641.9A 2014-06-03 2015-03-13 Verfahren und System zur Programmierung eines Roboters Active DE102015204641B4 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE102015204641.9A DE102015204641B4 (de) 2014-06-03 2015-03-13 Verfahren und System zur Programmierung eines Roboters
US15/313,219 US10279476B2 (en) 2014-06-03 2015-05-15 Method and system for programming a robot
JP2016571289A JP6580602B2 (ja) 2014-06-03 2015-05-15 ロボットをプログラムする方法およびシステム
KR1020197022969A KR102126729B1 (ko) 2014-06-03 2015-05-15 로봇을 프로그래밍하기 위한 방법 및 시스템
PCT/DE2015/200313 WO2015185049A1 (de) 2014-06-03 2015-05-15 Verfahren und system zur programmierung eines roboters
EP15736391.2A EP3013537B2 (de) 2014-06-03 2015-05-15 Verfahren und system zur programmierung eines roboters
CN201580029953.3A CN106457565B (zh) 2014-06-03 2015-05-15 用于对机器人进行编程的方法和系统
KR1020167034098A KR20160149290A (ko) 2014-06-03 2015-05-15 로봇을 프로그래밍하기 위한 방법 및 시스템

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102014210525.0 2014-06-03
DE102014210525 2014-06-03
DE102015204641.9A DE102015204641B4 (de) 2014-06-03 2015-03-13 Verfahren und System zur Programmierung eines Roboters

Publications (2)

Publication Number Publication Date
DE102015204641A1 true DE102015204641A1 (de) 2015-12-03
DE102015204641B4 DE102015204641B4 (de) 2021-03-25

Family

ID=54481690

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015204641.9A Active DE102015204641B4 (de) 2014-06-03 2015-03-13 Verfahren und System zur Programmierung eines Roboters

Country Status (7)

Country Link
US (1) US10279476B2 (de)
EP (1) EP3013537B2 (de)
JP (1) JP6580602B2 (de)
KR (2) KR102126729B1 (de)
CN (1) CN106457565B (de)
DE (1) DE102015204641B4 (de)
WO (1) WO2015185049A1 (de)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109129462A (zh) * 2017-06-15 2019-01-04 发那科株式会社 学习装置、控制装置以及控制系统
CN109895087A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人交互系统
CN109895135A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人控制装置
CN109895089A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人移动监测装置
EP3518059A1 (de) * 2018-01-24 2019-07-31 Siemens Aktiengesellschaft Verfahren zur rechnergestützten benutzerassistenz bei der in-betriebnahme eines bewegungsplaners für eine maschine
DE102018218081A1 (de) * 2018-10-23 2020-04-23 Robert Bosch Gmbh Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems
DE102020103852A1 (de) 2020-02-14 2021-08-19 Franka Emika Gmbh Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator
DE102020209511B3 (de) 2020-07-28 2021-08-19 ArtiMinds Robotics GmbH Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm
DE102018116053B4 (de) 2017-07-12 2023-01-19 Fanuc Corporation Robotersystem und Roboterlernverfahren

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120364B2 (en) * 2015-03-27 2018-11-06 GM Global Technology Operations LLC Self-corrective nut running for robotic applications
FR3035961B1 (fr) * 2015-05-04 2020-12-25 Commissariat Energie Atomique Procede, programme d'ordinateur et systeme pour la commande d'un deplacement d'un agent navigant dans un environnement organise en reseau
KR101764120B1 (ko) * 2016-11-21 2017-08-14 한국과학기술정보연구원 3d 모델링 기반 삽입력과 이탈력 해석 방법 및 그 장치
JP6534126B2 (ja) * 2016-11-22 2019-06-26 パナソニックIpマネジメント株式会社 ピッキングシステム及びその制御方法
JP6438450B2 (ja) 2016-11-29 2018-12-12 ファナック株式会社 レーザ加工ロボットの加工順序を学習する機械学習装置、ロボットシステムおよび機械学習方法
JP6877192B2 (ja) * 2017-03-03 2021-05-26 株式会社キーエンス 画像処理装置、画像処理方法、画像処理プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
EP3428754B1 (de) * 2017-07-13 2023-02-15 Siemens Aktiengesellschaft Verfahren zum einrichten eines bewegungsautomaten und einrichtungsanordnung
CN110914022B (zh) * 2017-08-10 2023-11-07 罗伯特·博世有限公司 直接教导机器人的系统和方法
US10828775B2 (en) * 2017-09-26 2020-11-10 Siemens Aktiengesellschaft Method and system for automatic robot control policy generation via CAD-based deep inverse reinforcement learning
KR101948558B1 (ko) * 2017-09-28 2019-02-18 김종태 손으로 조작하여 프로그래밍 가능한 모듈러 로봇
CN107617877B (zh) * 2017-10-13 2019-05-10 湘潭大学 一种多机器人装配单元及其优化方法
US10792810B1 (en) * 2017-12-14 2020-10-06 Amazon Technologies, Inc. Artificial intelligence system for learning robotic control policies
US10800040B1 (en) * 2017-12-14 2020-10-13 Amazon Technologies, Inc. Simulation-real world feedback loop for learning robotic control policies
US10926408B1 (en) 2018-01-12 2021-02-23 Amazon Technologies, Inc. Artificial intelligence system for efficiently learning robotic control policies
DE102018203078B3 (de) * 2018-03-01 2019-05-09 Kuka Deutschland Gmbh Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie und zugehöriges Computerprogrammprodukt
US11084169B2 (en) * 2018-05-23 2021-08-10 General Electric Company System and method for controlling a robotic arm
JP7028092B2 (ja) * 2018-07-13 2022-03-02 オムロン株式会社 把持姿勢評価装置及び把持姿勢評価プログラム
JP6826076B2 (ja) * 2018-07-17 2021-02-03 ファナック株式会社 自動経路生成装置
DE102018214417B3 (de) * 2018-08-27 2019-07-25 Volkswagen Aktiengesellschaft Verfahren zur Programmierung eines Roboters sowie Recheneinrichtung und Computerprogramm
CN109032571A (zh) * 2018-08-28 2018-12-18 苏州艾利特机器人有限公司 一种机器人工艺程序生成方法
JP7184595B2 (ja) * 2018-10-29 2022-12-06 オークマ株式会社 工作機械システム
AU2019380324B2 (en) * 2018-11-16 2022-08-11 Liveperson, Inc. Automatic bot creation based on scripts
US20200160210A1 (en) * 2018-11-20 2020-05-21 Siemens Industry Software Ltd. Method and system for predicting a motion trajectory of a robot moving between a given pair of robotic locations
WO2020132903A1 (zh) * 2018-12-25 2020-07-02 深圳配天智能技术研究院有限公司 机器人程序指令编译方法、机器人控制系统及存储装置
EP3924792A4 (de) * 2019-02-13 2022-09-14 ABB Schweiz AG Verfahren und vorrichtung zur verwaltung eines roboterprogramms
US11541274B2 (en) 2019-03-11 2023-01-03 Rom Technologies, Inc. System, method and apparatus for electrically actuated pedal for an exercise or rehabilitation machine
US11904202B2 (en) 2019-03-11 2024-02-20 Rom Technolgies, Inc. Monitoring joint extension and flexion using a sensor device securable to an upper and lower limb
CN110216670B (zh) * 2019-04-30 2022-04-15 武汉理工大学 一种基于损失场的工业机器人自动避障方法及装置
US11433276B2 (en) 2019-05-10 2022-09-06 Rehab2Fit Technologies, Inc. Method and system for using artificial intelligence to independently adjust resistance of pedals based on leg strength
US11957960B2 (en) 2019-05-10 2024-04-16 Rehab2Fit Technologies Inc. Method and system for using artificial intelligence to adjust pedal resistance
US11904207B2 (en) 2019-05-10 2024-02-20 Rehab2Fit Technologies, Inc. Method and system for using artificial intelligence to present a user interface representing a user's progress in various domains
US11801423B2 (en) 2019-05-10 2023-10-31 Rehab2Fit Technologies, Inc. Method and system for using artificial intelligence to interact with a user of an exercise device during an exercise session
CN110162052A (zh) * 2019-05-27 2019-08-23 北京新能源汽车股份有限公司 自动驾驶决策的代码生成方法、系统及车辆
EP3993959A1 (de) * 2019-07-01 2022-05-11 KUKA Deutschland GmbH Durchführen einer applikation mithilfe wenigstens eines roboters
CN112189185A (zh) * 2019-07-31 2021-01-05 深圳市大疆创新科技有限公司 一种编程系统、方法及程序执行设备
CN110533969B (zh) * 2019-08-05 2022-03-29 深圳市编玩边学教育科技有限公司 一种编程教学端及系统
US11747787B2 (en) 2019-08-30 2023-09-05 Intrinsic Innovation Llc Combining transformers for robotics planning
US11577392B2 (en) 2019-08-30 2023-02-14 Intrinsic Innovation Llc Splitting transformers for robotics planning
US11701548B2 (en) 2019-10-07 2023-07-18 Rom Technologies, Inc. Computer-implemented questionnaire for orthopedic treatment
US11071597B2 (en) 2019-10-03 2021-07-27 Rom Technologies, Inc. Telemedicine for orthopedic treatment
CN110666797B (zh) * 2019-09-30 2023-01-06 东莞市李群自动化技术有限公司 一种机器人控制系统及方法
US11101028B2 (en) 2019-10-03 2021-08-24 Rom Technologies, Inc. Method and system using artificial intelligence to monitor user characteristics during a telemedicine session
US11282604B2 (en) 2019-10-03 2022-03-22 Rom Technologies, Inc. Method and system for use of telemedicine-enabled rehabilitative equipment for prediction of secondary disease
US11270795B2 (en) 2019-10-03 2022-03-08 Rom Technologies, Inc. Method and system for enabling physician-smart virtual conference rooms for use in a telehealth context
US11978559B2 (en) 2019-10-03 2024-05-07 Rom Technologies, Inc. Systems and methods for remotely-enabled identification of a user infection
US11961603B2 (en) 2019-10-03 2024-04-16 Rom Technologies, Inc. System and method for using AI ML and telemedicine to perform bariatric rehabilitation via an electromechanical machine
US11955220B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for using AI/ML and telemedicine for invasive surgical treatment to determine a cardiac treatment plan that uses an electromechanical machine
US11830601B2 (en) 2019-10-03 2023-11-28 Rom Technologies, Inc. System and method for facilitating cardiac rehabilitation among eligible users
US20210134432A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. Method and system for implementing dynamic treatment environments based on patient information
US11887717B2 (en) 2019-10-03 2024-01-30 Rom Technologies, Inc. System and method for using AI, machine learning and telemedicine to perform pulmonary rehabilitation via an electromechanical machine
US11282599B2 (en) 2019-10-03 2022-03-22 Rom Technologies, Inc. System and method for use of telemedicine-enabled rehabilitative hardware and for encouragement of rehabilitative compliance through patient-based virtual shared sessions
US11515021B2 (en) 2019-10-03 2022-11-29 Rom Technologies, Inc. Method and system to analytically optimize telehealth practice-based billing processes and revenue while enabling regulatory compliance
US11515028B2 (en) 2019-10-03 2022-11-29 Rom Technologies, Inc. Method and system for using artificial intelligence and machine learning to create optimal treatment plans based on monetary value amount generated and/or patient outcome
US20210134425A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. System and method for using artificial intelligence in telemedicine-enabled hardware to optimize rehabilitative routines capable of enabling remote rehabilitative compliance
US20210142893A1 (en) 2019-10-03 2021-05-13 Rom Technologies, Inc. System and method for processing medical claims
US11955221B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for using AI/ML to generate treatment plans to stimulate preferred angiogenesis
US11325005B2 (en) 2019-10-03 2022-05-10 Rom Technologies, Inc. Systems and methods for using machine learning to control an electromechanical device used for prehabilitation, rehabilitation, and/or exercise
US11282608B2 (en) 2019-10-03 2022-03-22 Rom Technologies, Inc. Method and system for using artificial intelligence and machine learning to provide recommendations to a healthcare provider in or near real-time during a telemedicine session
US11139060B2 (en) 2019-10-03 2021-10-05 Rom Technologies, Inc. Method and system for creating an immersive enhanced reality-driven exercise experience for a user
US11337648B2 (en) 2020-05-18 2022-05-24 Rom Technologies, Inc. Method and system for using artificial intelligence to assign patients to cohorts and dynamically controlling a treatment apparatus based on the assignment during an adaptive telemedical session
US11075000B2 (en) 2019-10-03 2021-07-27 Rom Technologies, Inc. Method and system for using virtual avatars associated with medical professionals during exercise sessions
US11756666B2 (en) 2019-10-03 2023-09-12 Rom Technologies, Inc. Systems and methods to enable communication detection between devices and performance of a preventative action
US11955223B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for using artificial intelligence and machine learning to provide an enhanced user interface presenting data pertaining to cardiac health, bariatric health, pulmonary health, and/or cardio-oncologic health for the purpose of performing preventative actions
US11923065B2 (en) 2019-10-03 2024-03-05 Rom Technologies, Inc. Systems and methods for using artificial intelligence and machine learning to detect abnormal heart rhythms of a user performing a treatment plan with an electromechanical machine
US20210134458A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. System and method to enable remote adjustment of a device during a telemedicine session
US11317975B2 (en) 2019-10-03 2022-05-03 Rom Technologies, Inc. Method and system for treating patients via telemedicine using sensor data from rehabilitation or exercise equipment
US11915816B2 (en) 2019-10-03 2024-02-27 Rom Technologies, Inc. Systems and methods of using artificial intelligence and machine learning in a telemedical environment to predict user disease states
US20210127974A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. Remote examination through augmented reality
US20210134412A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. System and method for processing medical claims using biometric signatures
US20210128080A1 (en) 2019-10-03 2021-05-06 Rom Technologies, Inc. Augmented reality placement of goniometer or other sensors
US11915815B2 (en) 2019-10-03 2024-02-27 Rom Technologies, Inc. System and method for using artificial intelligence and machine learning and generic risk factors to improve cardiovascular health such that the need for additional cardiac interventions is mitigated
US11069436B2 (en) 2019-10-03 2021-07-20 Rom Technologies, Inc. System and method for use of telemedicine-enabled rehabilitative hardware and for encouraging rehabilitative compliance through patient-based virtual shared sessions with patient-enabled mutual encouragement across simulated social networks
US11955222B2 (en) 2019-10-03 2024-04-09 Rom Technologies, Inc. System and method for determining, based on advanced metrics of actual performance of an electromechanical machine, medical procedure eligibility in order to ascertain survivability rates and measures of quality-of-life criteria
US11826613B2 (en) 2019-10-21 2023-11-28 Rom Technologies, Inc. Persuasive motivation for orthopedic treatment
US11691280B2 (en) 2020-01-24 2023-07-04 The Cleveland Clinic Foundation Hybrid control of a robotic system
WO2021148129A1 (en) * 2020-01-24 2021-07-29 Siemens Healthcare Gmbh Machine-learned network for medical robot generation from configurable modules
JP7375587B2 (ja) * 2020-02-05 2023-11-08 株式会社デンソー 軌道生成装置、多リンクシステム、及び軌道生成方法
US11707843B2 (en) 2020-04-03 2023-07-25 Fanuc Corporation Initial reference generation for robot optimization motion planning
US11816112B1 (en) 2020-04-03 2023-11-14 Soroco India Private Limited Systems and methods for automated process discovery
US11813756B2 (en) 2020-04-16 2023-11-14 Fanuc Corporation Disassembly based assembly planning
US20210349462A1 (en) 2020-05-08 2021-11-11 Robust Al, Inc. Ultraviolet end effector
US11472025B2 (en) 2020-05-21 2022-10-18 Intrinsic Innovation Llc Robotic demonstration learning device
US11679497B2 (en) 2020-05-21 2023-06-20 Intrinsic Innovation Llc Distributed robotic demonstration learning
US11534913B2 (en) 2020-05-21 2022-12-27 Intrinsic Innovation Llc Integrating sensor streams for robotic demonstration learning
US11524402B2 (en) 2020-05-21 2022-12-13 Intrinsic Innovation Llc User feedback for robotic demonstration learning
US11820014B2 (en) 2020-05-21 2023-11-21 Intrinsic Innovation Llc Simulated local demonstration data for robotic demonstration learning
US11685047B2 (en) 2020-05-21 2023-06-27 Intrinsic Innovation Llc Skill template distribution for robotic demonstration learning
WO2021245965A1 (ja) * 2020-06-05 2021-12-09 株式会社島津製作所 自動試料注入装置
CN113040915A (zh) * 2021-03-12 2021-06-29 杭州柳叶刀机器人有限公司 机器人安全边界控制装置及方法、电子设备和存储介质
CN115178944A (zh) * 2022-08-04 2022-10-14 广东工业大学 一种安全强化学习的狭窄空间机器人作业规划方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JP2000218576A (ja) * 1999-02-04 2000-08-08 Toshiba Corp マニピュレータ
DE102004032996A1 (de) * 2004-07-08 2006-02-16 Abb Research Ltd. Einfache Roboterprogrammierung
DE102008063680A1 (de) * 2008-10-10 2010-04-15 Abb Ag Verfahren zum Einlernen (Teachen) eines Industrieroboters sowie ein entsprechend ausgestatteter Industrieroboter
US20110208355A1 (en) * 2009-09-28 2011-08-25 Yuko Tsusaka Control apparatus and control method for robot arm, robot, control program for robot arm, and robot arm control-purpose integrated electronic circuit
DE102013203381A1 (de) * 2012-03-15 2013-09-19 GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05127718A (ja) * 1991-11-08 1993-05-25 Fujitsu Ltd マニピユレータの手先軌道自動生成装置
CN100380324C (zh) 2000-08-28 2008-04-09 索尼公司 通信设备和通信方法、网络系统、以及机器人设备
JP2002189608A (ja) 2000-08-28 2002-07-05 Sony Corp 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置
US6718229B1 (en) * 2000-11-03 2004-04-06 Smc Kabushiki Kaisha Linear actuator palletizing system and method
JP2005125475A (ja) 2003-10-24 2005-05-19 Sunao Kitamura 一回の成功試行で最良経路を学習するアーキテクチャ
WO2005091090A2 (en) 2004-03-16 2005-09-29 Abb Ab Industrial robot system, method and computer program
JP3959415B2 (ja) 2004-08-09 2007-08-15 ファナック株式会社 サーボツール切離し/結合方法及びロボット制御装置
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
US9207668B2 (en) * 2005-02-25 2015-12-08 Abb Research Ltd. Method of and apparatus for automated path learning
JP5052013B2 (ja) 2005-03-17 2012-10-17 ソニー株式会社 ロボット装置及びその制御方法
EP1724676A1 (de) * 2005-05-20 2006-11-22 ABB Research Ltd. Verfahren und Vorrichtung zur Entwicklung eines Softwareprogramms
DE102005033593B3 (de) 2005-07-19 2007-01-04 Hirschmann Car Communication Gmbh Kontaktfeder in einem Trägerrahmen eines Antennenverstärkers eines Fahrzeuges
DK3045273T3 (en) * 2006-03-03 2019-02-25 Universal Robots As Joint for a robot
JP2008087109A (ja) 2006-10-02 2008-04-17 Toyota Motor Corp ロボット制御システム
US8170287B2 (en) 2007-10-26 2012-05-01 Honda Motor Co., Ltd. Real-time self collision and obstacle avoidance
WO2009055707A1 (en) 2007-10-26 2009-04-30 Honda Motor Co., Ltd. Real-time self collision and obstacle avoidance
JP4531126B2 (ja) 2008-02-28 2010-08-25 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路
CN101549495B (zh) 2008-03-31 2011-04-13 上海宝信软件股份有限公司 可避免奇异点发生的机器人控制方法
DE102010012598A1 (de) 2010-02-26 2011-09-01 Kuka Laboratories Gmbh Prozessmodulbibliothek und Programmierumgebung zur Programmierung eines Manipulatorprozesses
JP2011238104A (ja) 2010-05-12 2011-11-24 Toyota Motor Corp 移動ロボット
JP5626775B2 (ja) 2010-07-21 2014-11-19 住友重機械工業株式会社 支援装置および支援方法
JP2012206219A (ja) 2011-03-30 2012-10-25 Seiko Epson Corp ロボット制御装置及びロボットシステム
CN102749919B (zh) 2012-06-15 2014-05-07 华中科技大学 一种多足机器人平衡控制方法
US20130343640A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Vision-guided robots and methods of training them
JP5862611B2 (ja) * 2013-04-02 2016-02-16 トヨタ自動車株式会社 作業変更装置、作業変更方法、及び作業変更プログラム
US9403273B2 (en) * 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JP2000218576A (ja) * 1999-02-04 2000-08-08 Toshiba Corp マニピュレータ
DE102004032996A1 (de) * 2004-07-08 2006-02-16 Abb Research Ltd. Einfache Roboterprogrammierung
DE102008063680A1 (de) * 2008-10-10 2010-04-15 Abb Ag Verfahren zum Einlernen (Teachen) eines Industrieroboters sowie ein entsprechend ausgestatteter Industrieroboter
US20110208355A1 (en) * 2009-09-28 2011-08-25 Yuko Tsusaka Control apparatus and control method for robot arm, robot, control program for robot arm, and robot arm control-purpose integrated electronic circuit
DE102013203381A1 (de) * 2012-03-15 2013-09-19 GM Global Technology Operations LLC (n. d. Ges. d. Staates Delaware) Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Berenson et al.: "Manipulation Planning on Constraint Manifolds", IEEE International Conference on Robotics and Automation (ICRA '09), May, 2009
Stilman, M: "Task constrained motion planning in robot joint space," Intelligent Robots and Systems, 2007

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109129462A (zh) * 2017-06-15 2019-01-04 发那科株式会社 学习装置、控制装置以及控制系统
DE102018116053B4 (de) 2017-07-12 2023-01-19 Fanuc Corporation Robotersystem und Roboterlernverfahren
CN109895087A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人交互系统
CN109895090A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种下坡机器人交互控制系统
CN109895135A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人控制装置
CN109895089A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种机器人移动监测装置
CN109895091A (zh) * 2017-12-10 2019-06-18 湘潭宏远电子科技有限公司 一种下坡机器人交互系统
EP3518059A1 (de) * 2018-01-24 2019-07-31 Siemens Aktiengesellschaft Verfahren zur rechnergestützten benutzerassistenz bei der in-betriebnahme eines bewegungsplaners für eine maschine
US11654560B2 (en) 2018-01-24 2023-05-23 Siemens Aktiengesellschaft Method for computer-aided user assistance during the activation of a movement planner for a machine
DE102018218081A1 (de) * 2018-10-23 2020-04-23 Robert Bosch Gmbh Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems
DE102020103852A1 (de) 2020-02-14 2021-08-19 Franka Emika Gmbh Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator
DE102020103852B4 (de) 2020-02-14 2022-06-15 Franka Emika Gmbh Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator
DE102020209511B3 (de) 2020-07-28 2021-08-19 ArtiMinds Robotics GmbH Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm
WO2022022784A1 (de) 2020-07-28 2022-02-03 ArtiMinds Robotics GmbH Verfahren und system zur bestimmung von optimierten programmparametern für ein roboterprogramm

Also Published As

Publication number Publication date
US10279476B2 (en) 2019-05-07
CN106457565A (zh) 2017-02-22
EP3013537A1 (de) 2016-05-04
WO2015185049A1 (de) 2015-12-10
KR20190105039A (ko) 2019-09-11
JP6580602B2 (ja) 2019-09-25
US20170190052A1 (en) 2017-07-06
EP3013537B1 (de) 2016-10-12
DE102015204641B4 (de) 2021-03-25
KR102126729B1 (ko) 2020-06-26
JP2017520415A (ja) 2017-07-27
KR20160149290A (ko) 2016-12-27
CN106457565B (zh) 2020-06-23
EP3013537B2 (de) 2020-02-19

Similar Documents

Publication Publication Date Title
EP3013537B1 (de) Verfahren und system zur programmierung eines roboters
DE102014103738B3 (de) Visuelle fehlersuche bei roboteraufgaben
DE102011079117B4 (de) Verfahren zum Programmieren eines Roboters
EP2539116B1 (de) Prozessmodulbibliothek und programmierumgebung zur programmierung eines manipulatorprozesses
DE102017001131B4 (de) Verfahren und System zum Betreiben eines Roboters
DE102015223258A1 (de) Verfahren zum Bearbeiten der Oberfläche eines dreidimensionalen Objekts
DE102021201918A1 (de) Vorrichtung und Verfahren zum Steuern ein oder mehrerer Roboter
DE10393527T5 (de) Systeme und Verfahren zur Darstellung komplexer n-Kurven für die Direktsteuerung einer Werkzeugbewegung
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102019205651B3 (de) Verfahren und System zum Ausführen von Roboterapplikationen
DE102012022190B4 (de) Inverse Kinematik
WO2019029870A1 (de) Handhabungseinrichtung mit einem roboter sowie verfahren und computerprogramm
DE102020209511B3 (de) Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm
DE102006036490A1 (de) Verfahren und Vorrichtung zum Steuern eines Handhabungsgeräts
DE112008003870T5 (de) Verfahren und System zum Steuern eines Industrieroboters in Übereinstimmung mit einem Bewegungssteuerungs-Parametersatz
WO2020178435A1 (de) Verfahren, system sowie nichtflüchtiges speichermedium
Vidaković et al. Procedure for definition of end-effector orientation in planar surfaces robot applications
DE102021212134B3 (de) Verfahren und System zum Betreiben eines Roboters
Diaz Posada Optimized model-based path generation for robotic manufacturing processes
DE102023117136A1 (de) Prädiktives regelungsverfahren zum regeln der drehmomentänderungsrate und zur schwingungsunterdrückung
DE102021129897A1 (de) Modulare robotervorrichtung und verfahren zum betrieb einer modularen robotervorrichtung
Pritzi Intuitive Robot Programming and Physical Human-Robot Interaction
DE102022206273A1 (de) Verfahren zum Trainieren eines maschinellen Lernmodells zum Implementieren einer Steuerungsvorschrift
Shabeeb Dr. Laith Abdullah Mohammed Assistant Professor

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: ARTIMINDS ROBOTICS GMBH, DE

Free format text: FORMER OWNER: ARTIMINDS ROBOTICS GMBH, 76139 KARLSRUHE, DE

R082 Change of representative

Representative=s name: PATENT- UND RECHTSANWAELTE ULLRICH & NAUMANN P, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative

Representative=s name: ALTMANN STOESSEL DICK PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: ALTMANN STOESSEL DICK PATENTANWAELTE PARTG MBB, DE