DE102022122663A1 - Verfahren zur dynamischen geschwindigkeitsändrung für ein robotiksystem - Google Patents

Verfahren zur dynamischen geschwindigkeitsändrung für ein robotiksystem Download PDF

Info

Publication number
DE102022122663A1
DE102022122663A1 DE102022122663.8A DE102022122663A DE102022122663A1 DE 102022122663 A1 DE102022122663 A1 DE 102022122663A1 DE 102022122663 A DE102022122663 A DE 102022122663A DE 102022122663 A1 DE102022122663 A1 DE 102022122663A1
Authority
DE
Germany
Prior art keywords
robot
joint
motion
obstacle
speed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022122663.8A
Other languages
English (en)
Inventor
Hsien-Chung Lin
Tetsuaki Kato
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.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE102022122663A1 publication Critical patent/DE102022122663A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • 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/1651Programme controls characterised by the control loop acceleration, rate 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/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding 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/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34216Programmable motion controller
    • 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/39001Robot, manipulator control
    • 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/39091Avoid collision with moving obstacles
    • 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/40424Online motion planning, in real time, use vision to detect workspace changes
    • 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/40425Sensing, vision based motion planning
    • 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/40477Plan path independent from obstacles, then correction for obstacles

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

Ein Verfahren und ein System für die robotische Bewegungsplanung, die eine dynamische Geschwindigkeitsverminderung vornehmen, um die Kollision eines Roboters mit statischen oder dynamischen Objekten zu vermeiden. Bei der Technik wird die geplante Roboterwerkzeugbahn auch dann beibehalten, wenn eine Geschwindigkeitsreduzierung erforderlich ist, indem einem Folgeregler eine Rückmeldung eines berechneten Verlangsamungsverhältnisses bereitgestellt wird, sodass die Bahnberechnung stets mit der aktuellen Robotergeschwindigkeit synchronisiert ist. Bei der Technik werden sowohl der Roboter-Hindernis-Abstand als auch die Relativgeschwindigkeit verwendet, um zu bestimmen, wann eine Geschwindigkeitsverminderung anzuwenden ist, und es wird ein Gelenkgeschwindigkeitsbegrenzungsvektor auf der Grundlage eines Roboter-Hindernis-Abstands, einer maximalen Hindernisgeschwindigkeit und einer berechneten Stoppzeit als Funktion der Gelenkgeschwindigkeit berechnet. Es werden zwei verschiedene Regelungsstrukturimplementierungen offenbart, die beide dem Bewegungsplaner eine Rückmeldung des Verlangsamungsverhältnisses bereitstellen, wie dies für eine getreue Bahnverfolgung erforderlich ist. Außerdem wird ein Verfahren zum Festlegen einer Geschwindigkeitsverminderungspriorität bei Systemen mit mehreren Robotern bereitgestellt.

Description

  • STAND DER TECHNIK
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich allgemein auf das Gebiet der Bewegungsplanung für Industrieroboter und insbesondere auf ein Verfahren und ein System für die robotische Bewegungsplanung, die eine dynamische Geschwindigkeitsverminderung vornehmen, um eine Kollision mit statischen oder dynamischen Objekten zu vermeiden, während die geplante Werkzeugbahn auch dann beibehalten wird, wenn eine Geschwindigkeitsreduzierung erforderlich ist.
  • Erörterung der verwandten Technik
  • Die Verwendung von Industrierobotern zur Durchführung eines breiten Spektrums von Herstellungs-, Montage- und Materialbewegungstätigkeiten ist gut bekannt. In vielen Roboterarbeitsraumumgebungen sind Hindernisse vorhanden und können sich manchmal in der Bewegungsbahn des Roboters befinden. Die Hindernisse können dauerhaft vorhandene Objekte wie Gebäudestrukturen und Spannzeuge sein, denen der Roboter aufgrund der statischen Natur des Objekts mit vorgeplanten Bewegungen leicht ausweichen kann. Die Hindernisse können auch dynamische Objekte sein, die sich - manchmal wahllos - in oder durch den Roboterarbeitsraum bewegen. Dynamische Objekte müssen in Echtzeitberechnungen vom Bewegungsplanungssystem berücksichtigt werden, wobei der Roboter seine Bewegung anpassen muss, um den Objekten auszuweichen, während er einen Arbeitsvorgang ausführt. Kollisionen zwischen Roboterteilen und Hindernissen müssen unbedingt vermieden werden.
  • Es wurden verschiedene Techniken entwickelt, um Objekte im Arbeitsraum eines Roboters zu erkennen und die Roboterbewegung bei Bedarf anzupassen, um eine Kollision oder Beinahekollision des Roboters mit dem Objekt zu vermeiden. Bei einer derartigen vorbekannten Technik wird der Roboter einfach gestoppt, wenn ein Objekt innerhalb eines Grenzabstands erkannt wird. Bei den meisten Anwendungen ist jedoch das Stoppen des Roboters bei Vorhandensein von Arbeitsraumhindernissen keine zufriedenstellende Lösung. Eine andere bei Industrierobotern häufig angewandte Technik ist die Festlegung von „Sicherheitszonen“, in denen ein menschlicher Bediener oder ein anderes dynamisches Objekt gefahrlos vorhanden sein kann, da der Roboter darauf vorprogrammiert ist, eine Roboterbewegung in die Sicherheitszone zu verhindern. Sicherheitszonen sind effektiv, erfordern jedoch zusätzlichen Vorprogrammierungsaufwand und schränken die Roboterbewegung oft übermäßig ein - einschließlich geometrisch geformter verbotener Zonen, die mehr Arbeitsraumvolumen als nötig beanspruchen, und der Durchsetzung der verbotenen Sicherheitszonen auch dann, wenn sie nicht von Hindernissen besetzt sind.
  • Bei noch einer weiteren Technik für die Bewegungsplanung zur Vermeidung von Roboterkollisionen wird die Geschwindigkeit des Roboters in Echtzeit auf der Grundlage von erkannten Objekten angepasst. Bei dieser Technik wird eine geeignete Robotergelenk-Geschwindigkeitsgrenze auf der Grundlage eines Roboter-Hindernis-Abstands, einer maximalen Hindernisgeschwindigkeit und einer berechneten Stoppzeit als Funktion der Gelenkgeschwindigkeit bestimmt. Bei dieser Technik besteht jedoch die Möglichkeit, dass die Synchronisation zwischen der Folgeregelungsberechnung und der befohlenen Roboterbewegung verloren geht, sodass das Roboterwerkzeug von der programmierten Bahn abweichen kann, insbesondere dann, wenn die programmierte Bahn gekrümmt ist und eine große Verlangsamung erforderlich ist, um einen sicheren Roboter-Hindernis-Abstand einzuhalten.
  • In Anbetracht der oben beschriebenen Umstände besteht ein Bedarf an einer verbesserten Technik der dynamischen Bewegungsplanung für Roboter, bei der die Robotergeschwindigkeit bei Bedarf reduziert wird, um Hindernissen auszuweichen, während der programmierten Roboterwerkzeugbahn getreu gefolgt wird.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Entsprechend der Lehre der vorliegenden Offenbarung werden ein Verfahren und ein System für die robotische Bewegungsplanung bereitgestellt, die eine dynamische Geschwindigkeitsverminderung vornehmen, um die Kollision eines Roboters mit statischen oder dynamischen Objekten zu vermeiden. Bei der Technik wird die geplante Roboterwerkzeugbahn auch dann beibehalten, wenn eine Geschwindigkeitsreduzierung erforderlich ist, indem einem Folgeregler eine Rückmeldung eines berechneten Verlangsamungsverhältnisses bereitgestellt wird, sodass die Bahnberechnung stets mit der aktuellen Robotergeschwindigkeit synchronisiert ist. Bei der Technik werden sowohl der Roboter-Hindernis-Abstand als auch die Relativgeschwindigkeit verwendet, um zu bestimmen, wann eine Geschwindigkeitsverminderung anzuwenden ist, und es wird ein Gelenkgeschwindigkeitsbegrenzungsvektor auf der Grundlage eines Roboter-Hindernis-Abstands, einer maximalen Hindernisgeschwindigkeit und einer berechneten Stoppzeit als Funktion der Gelenkgeschwindigkeit berechnet. Es werden zwei verschiedene Regelungsstrukturimplementierungen offenbart, die beide dem Bewegungsplaner eine Rückmeldung des Verlangsamungsverhältnisses bereitstellen, wie dies für eine getreue Bahnverfolgung erforderlich ist. Außerdem wird ein Verfahren zum Festlegen einer Geschwindigkeitsverminderungspriorität bei Systemen mit mehreren Robotern bereitgestellt.
  • Weitere Merkmale der hier offenbarten Systeme und Verfahren werden aus der nachstehenden Beschreibung und den beigefügten Patentansprüchen in Verbindung mit den begleitenden Zeichnungen ersichtlich.
  • Figurenliste
    • 1 ist ein Diagramm, das zeigt, wie eine Roboterstoppzeit anhand einer Robotergelenkgeschwindigkeit und einer maximalen Gelenkbeschleunigung sowie von Ruckbeschränkungen auf eine dem Fachmann bekannte Weise berechnet wird;
    • 2 ist eine Blockdiagrammdarstellung einer aus dem Stand der Technik bekannten Technik zur dynamischen Bewegungsoptimierung, bei der eine Robotergeschwindigkeit bei Vorhandensein eines Arbeitsraumhindernisses reduziert werden kann;
    • 3 ist eine Darstellung davon, wie eine befohlene Werkzeugbahnposition von einer geplanten Referenzbahn abweichen kann, wenn die Geschwindigkeit bei der bekannten Technik von 2 reduziert wird;
    • 4 ist eine Blockdiagrammdarstellung eines Systems für die dynamische Bewegungsoptimierung gemäß einer Ausführungsform der vorliegenden Offenbarung, bei dem eine Robotergeschwindigkeit bei Vorhandensein eines Arbeitsraumhindernisses reduziert werden kann und einem Folgeregler ein Verlangsamungsfaktor als Rückmeldung von einem Online-Geschwindigkeitsänderungs- (OVM) -Modul bereitgestellt wird;
    • 5 ist eine Darstellung davon, wie gemäß einer Ausführungsform der vorliegenden Offenbarung bei dem System von 4 eine geplante Referenzbahn, die aus einer Folge von Interpolationspunkten besteht, in eine kontinuierliche Bahn parametrisiert wird, die durch eine Bogenlänge s definiert ist.
    • 6 ist eine Darstellung eines Zwei-Roboter-Systems mit sich kreuzenden Bahnen mit Simulationsergebnissen, die zeigen, wie eine Kollision verhindert wird, wenn die Online-Geschwindigkeitsänderungstechnik von 4 in einem der Roboter gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert ist;
    • 7 ist eine Blockdiagrammdarstellung einer ersten Implementierungsarchitektur einer Online-Geschwindigkeitsänderungsregelungsstruktur gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 8 ist eine Blockdiagrammdarstellung einer zweiten Implementierungsarchitektur einer Online-Geschwindigkeitsänderungsregelungsstruktur gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 9 ist ein Flussdiagramm eines Verfahrens zum Auslösen der Online-Geschwindigkeitsänderungsberechnung auf der Grundlage des Roboter-Hindernis-Abstands und der Relativgeschwindigkeit gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 10 ist ein Flussdiagramm eines Verfahrens zum Festlegen der Priorität jedes Roboters in einem Multi-Roboter-System und zum Durchführen der Online-Geschwindigkeitsänderungsberechnung auf der Grundlage der Priorität gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 11 ist eine Darstellung eines Zwei-Roboter-Systems mit sich kreuzenden Bahnen mit Simulationsergebnissen, die zeigen, wie sich gemäß einer Ausführungsform der vorliegenden Offenbarung die OVM-Prioritätslogik von 10 auf ein erstes Bewegungsszenario auswirkt;
    • 12 ist eine Darstellung des Zwei-Roboter-Systems von 11 mit Simulationsergebnissen, die zeigen, wie sich gemäß einer Ausführungsform der vorliegenden Offenbarung die OVM-Prioritätslogik von 10 auf ein zweites Bewegungsszenario auswirkt;
    • 13 ist ein Diagramm einer Ist-Werkzeugmittelpunktsbahn, die einer Referenzbahn überlagert ist, das darstellt, wie gemäß einer Ausführungsform der vorliegenden Offenbarung die Ist-Werkzeugmittelpunktsbahn der Referenzbahn sogar in engen Kurven und auch dann folgt, wenn die Robotergeschwindigkeit reduziert wird, um Hindernissen auszuweichen; und
    • 14 ist ein Diagrammsatz, der den Roboter-Hindernis-Abstand und die Relativgeschwindigkeit gegen die Zeit aufträgt und auch den resultierenden OVM-Geschwindigkeitsübersteuerungsprozentsatz, oder das Verlangsamungsverhältnis, gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Die nachstehende Erörterung der Ausführungsformen der Offenbarung, die Verfahren und Systeme zur dynamischen Geschwindigkeitsänderung für ein Robotiksystem betrifft, ist nur beispielhafter Natur und soll die offenbarten Vorrichtungen und Techniken oder ihre Anwendungen und Verwendungen in keiner Weise beschränken.
  • Die Verwendung von Industrierobotern für eine Vielzahl von Herstellungs-, Montage- und Materialbewegungstätigkeiten ist gut bekannt. Diese Tätigkeiten schließen Spritzlackieraufgaben, Schweißaufgaben, Aufgaben des Aufnehmens und Platzierens von Teilen und viele andere ein. In vielen Roboterarbeitsraumumgebungen können Hindernisse vorhanden sein und sich bisweilen in der Bewegungsbahn des Roboters befinden. Das heißt, dass ohne eine adaptive Bewegungsplanung ein Teil des Roboters mit einem Teil eines Hindernisses kollidieren kann, wenn sich der Roboter von seiner aktuellen Position zu einer Zielposition bewegt. Die Hindernisse können statische Strukturen wie Spannzeuge und Tische sein, oder die Hindernisse können dynamische (sich bewegende) Objekte wie Menschen, Gabelstapler, andere Roboter und andere Maschinen sein. Wenn dynamische Objekte vorhanden sein können, muss die Bewegung des Roboters für jeden Steuerzyklus in Echtzeit geplant werden.
  • Bei einigen robotischen Anwendungen kann die Bahn des Roboters angepasst werden, um sich um ein Hindernis herum zu bewegen. Doch bei vielen Anwendungen muss sich der Roboter (Werkzeugmittelpunkt) entlang einer geplanten Referenzbahn bewegen, um die Aufgabe ordnungsgemäß abzuschließen. Bei diesen Anwendungen mit definierter Bahn besteht dann, wenn ein Hindernis die Bahn des Roboters versperrt, die einzige Abhilfe darin, den Roboter zu verlangsamen oder anzuhalten. Es wurden Techniken entwickelt, um die Geschwindigkeit eines Roboters als Reaktion auf das Vorhandensein eines Hindernisses zu ändern. Doch haben diese Techniken verschiedene Nachteile, darunter ein zu häufiges Stoppen des Roboters bei Vorhandensein eines Hindernisses und ein Abweichen von der geplanten Referenzbahn, wenn die Geschwindigkeit des Roboters reduziert wird.
  • Die vorliegende Offenbarung stellt Verfahren und Systeme bereit, die adaptiv auf das Vorhandensein von Hindernissen im Roboterarbeitsraum reagieren, indem sie den Roboter nur so weit verlangsamen, wie es erforderlich ist, um zu ermöglichen, dass die potenzielle Kollision vermieden wird, während die geplante Referenzbahn des Werkzeugs beibehalten wird. Diese Technik wurde in einer Simulation und in Versuchen unter realen Bedingungen getestet, einschließlich Umgebungen mit mehreren Robotern und Mensch-Roboter-Interaktionen. Diese Verfahren und Systeme, einschließlich zweier unterschiedlicher Implementierungsausführungsformen, werden nachstehend im Einzelnen erörtert.
  • Bei jeder Technik, bei der ein Roboter als Reaktion auf das Vorhandensein eines Arbeitsraumhindernisses verlangsamt wird, muss bestimmt werden, um wie viel der Roboter verlangsamt werden muss. Das Ausmaß der Verlangsamung basiert auf mehreren Faktoren, einschließlich der aktuellen Robotergeschwindigkeit (eigentlich ein Vektor von Rotationsgeschwindigkeiten, einer für jedes Gelenk im Roboter), einer Stoppzeit, die anhand der aktuellen Geschwindigkeit und der mechanischen Beschränkungen des Roboters berechnet wird, sowie der Abstands- und Geschwindigkeitseigenschaften des Hindernisses.
  • 1 ist ein Diagramm 100, das zeigt, wie eine Roboterstoppzeit anhand einer Robotergelenkgeschwindigkeit und einer maximalen Gelenkbeschleunigung sowie von Ruckbeschränkungen auf eine dem Fachmann bekannte Weise berechnet wird. In dem Diagramm 100 ist die Gelenkbeschleunigung auf einer vertikalen Achse gegen die Zeit auf einer horizontalen Achse aufgetragen. Das Diagramm 100 soll ein einzelnes Robotergelenk darstellen, wobei die gleiche Berechnung für jedes der (fünf oder sechs) Gelenke im Roboter durchgeführt wird. Zum Zeitpunkt t = 0 hat das Gelenk eine Geschwindigkeit -q̇ und eine Maximalbeschleunigung -q̈ in Richtung des Hindernisses. Zum Stoppen des Robotergelenks muss ein Maximalruck (Änderungsrate der Beschleunigung) q m a x
    Figure DE102022122663A1_0001
    in einer ersten Phase 110 angewendet werden, bis eine Maximalbeschleunigung q̈max erreicht ist. Die Werte des Maximalrucks und der Maximalbeschleunigung für jedes Gelenk sind bekannte mechanische Beschränkungen des Roboters. In einer zweiten Phase 120 behält das Robotergelenk die Maximalbeschleunigung q̈max bei. In einer dritten Phase 130 fällt die Beschleunigung mit einer Rate in Höhe des Negativwerts des Maximalrucks q m a x
    Figure DE102022122663A1_0002
    ab.
  • Die Fläche unter der Kurve eines Beschleunigung-ZeitDiagramms ist die Geschwindigkeit. Die zwei dreieckigen Flächenanteile unter der Kurve in der ersten Phase 110 heben sich gegenseitig auf. Der übrige Flächenanteil unter der Kurve ist die schraffierte Fläche des Diagramms 100, die aus einem rechteckigen Teil 140 und einem dreieckigen Teil 150 besteht. Die Gesamtfläche des rechteckigen Teils 140 und des dreieckigen Teils 150 muss sich zu einem Wert in Höhe von q aufsummieren, um das Gelenk von der Anfangsgeschwindigkeit -q̇ zum Anhalten zu bringen. Das heißt: q ˙ = 1 2 t s l o p e q ¨ m a x + t c o n s t q ¨ m a x
    Figure DE102022122663A1_0003
  • Die Gesamtstoppzeit tstop des Roboters ist durch den Pfeil 160 dargestellt. Die Gesamtstoppzeit tstop setzt sich aus drei Maximalruckabschnitten 170 (mit der Bezeichnung tslope) und einem Maximalbeschleunigungsabschnitt 180 (tconst) zusammen. Das heißt: t s t o p = 3 t s l o p e + t c o n s t
    Figure DE102022122663A1_0004
  • Darüber hinaus kann die Dauer der Maximalruckabschnitte 170 wie folgt bestimmt werden: t s l o p e = q ¨ m a x / q m a x
    Figure DE102022122663A1_0005
  • Durch Auswerten der Gleichungen (1) - (3) für jedes der Gelenke i im Roboter kann die Roboterstoppzeit tstop auf der Grundlage der Robotergelenkgeschwindigkeiten wie folgt bestimmt werden: t s t o p = m a x i = 1, , n ( | q ˙ i | q ¨ i , m a x + 2.5 q ¨ i , m a x q i , m a x )
    Figure DE102022122663A1_0006
    Wobei |q̇i| der Absolutwert der Geschwindigkeit jedes Gelenks i ist und alle anderen Werte bekannte Konstanten sind (mechanische Beschränkungen der einzelnen Gelenke).
  • Schließlich kann eine geeignete Robotergeschwindigkeitsgrenze für jedes Gelenk i im Roboter für den Betrieb bei Vorhandensein eines Hindernisses wie folgt bestimmt werden: | q ˙ i , b r a k e | = max ( 0,  min ( q ˙ i , m a x , ( t s t o p 2.5 q ¨ i , m a x q i , m a x ) q ¨ i , m a x ) )
    Figure DE102022122663A1_0007
    Wobei alle Konstanten und Variablen in der Gleichung (5) oben definiert wurden und die Geschwindigkeitsgrenze q̇i,brake für jedes Gelenk i im Roboter bestimmt wird. Für ein Hindernis im Roboterarbeitsraum mit einem Roboter-Hindernis-Abstand dobs und eine Höchstgeschwindigkeit vmax des Hindernisses selbst oder die Relativgeschwindigkeit zwischen Roboter und Hindernis kann der Wert von tstop als tstop = dobs/vmax bestimmt und in die Gleichung (5) eingesetzt werden, um die Gelenkgeschwindigkeitsgrenzen zu berechnen.
  • 2 ist eine Blockdiagrammdarstellung einer aus dem Stand der Technik bekannten Technik zur dynamischen Bewegungsoptimierung, bei der eine Robotergeschwindigkeit bei Vorhandensein eines Arbeitsraumhindernisses reduziert werden kann. Ein Folgeregler 210 empfängt als Eingabe eine Referenzposition xref und eine Referenzgeschwindigkeit vref, die eine Zielwerkzeugmittelpunktsbahn und eine Zielgeschwindigkeit definieren (beide in kartesischen Koordinaten). Der Folgeregler 210 berechnet anhand der Referenzeingaben und der Rückmeldung vom Roboter (unten erörtert) einen Soll-Geschwindigkeitsvektor ẋdes und stellt den Soll-Geschwindigkeitsvektor ẋdes einem Modul für die dynamische Bewegungsoptimierung 220 bereit.
  • Das Modul für die dynamische Bewegungsoptimierung 220 empfängt eine Hindernisdateneingabe von einem Wahrnehmungsmodul 230 und berechnet Robotergelenkpositions- und -geschwindigkeitsbefehle (qcmd bzw. q̇cmd). Die Gelenkbefehlsausgabe vom Modul für die dynamische Bewegungsoptimierung 220 beinhaltet bei Bedarf eine Verlangsamung des Roboters auf der Grundlage der Arbeitsraumhindernisdaten. Das Modul für die dynamische Bewegungsoptimierung 220 verwendet die obigen Gleichungen (1) - (5) zum Berechnen reduzierter Robotergelenkgeschwindigkeiten bei Vorhandensein von Arbeitsraumhindernissen. Ein Robotersystem 240 umfasst eine Steuerung und einen Roboter, wobei die Steuerung bewirkt, dass der Roboter den Gelenkbefehlen vom Modul für die dynamische Bewegungsoptimierung 220 folgt. Das Robotersystem 240 stellt dem Folgeregler 210 Ist-Gelenkzustandsdaten (Position und Geschwindigkeit) - qact bzw. qact - als Rückmeldung auf der Leitung 250 bereit.
  • 3 ist eine Darstellung davon, wie eine befohlene Werkzeugbahnposition von einer geplanten Referenzbahn abweichen kann, wenn die Geschwindigkeit bei der bekannten Technik von 2 reduziert wird. Auf der linken Seite von 3 stellt eine Kurve 310 die Zielwerkzeugmittelpunktsbahn dar, die die oben definierte Referenzposition xref ist, und ein Punkt 312 ist ein bestimmter Punkt entlang der Werkzeugmittelpunktsbahn xref. Der Punkt xref 312 ist der Punkt, der zuletzt vom Folgeregler 210 berechnet wurde. Ein aktueller Positionspunkt xcur 320 gibt den aktuellen Ist-Werkzeugmittelpunkt des Roboters an. Da der aktuelle Positionspunkt xcur 320 aufgrund einer Verlangsamung des Roboters, die vom Modul für die dynamische Bewegungsoptimierung 220 befohlen wurde, deutlich hinter dem Punkt xref 312 zurückliegt, berechnet der Folgeregler 210 einen Soll-Geschwindigkeitsvektor ẋdes (Pfeil 330), der nicht entlang der Kurve 310 verläuft, die die Referenzbahn definiert. Dies bewirkt, dass die Ist-Bahn des Roboters von der Referenzbahn 310 abweicht. Dieser Effekt ist in den Darstellungen auf der rechten Seite von 3 zu sehen.
  • Ein mehrgliedriger Roboterarm 340 ist in Draufsicht dargestellt. Der Roboterarm 340 hat einen Werkzeugmittelpunkt, der einer Referenzbahn 350 folgt. Ein Roboterarm 360 arbeitet im selben Arbeitsraum wie der Roboterarm 340, wobei der Roboterarm 360 so programmiert ist, dass sein Werkzeugmittelpunkt einer Referenzbahn 370 folgt. Die Referenzbahnen 350 und 370 überschneiden sich, und somit würden die Roboterarme 340 und 360 miteinander kollidieren, wenn keine Hinderniserkennungs- und Vermeidungsmaßnahmen ergriffen würden. In diesem Beispiel führt der Roboterarm 340 seine Bewegung ohne Kollisionsvermeidungsmaßnahmen aus, während der Roboterarm 360 mit der Technik zur dynamischen Bewegungsoptimierung von 2 programmiert ist. Das heißt, dass der Roboterarm 360 angewiesen wird, zu verlangsamen, wenn sich der Roboterarm 340 auf seiner Bahn befindet.
  • Eine Ist-Bahn 380 zeigt die vom Werkzeugmittelpunkt des Roboterarms 360 genommene Ist-Bahn. Man kann sehen, dass die Ist-Bahn 380 im mittleren Abschnitt der Bahnen von der Referenzbahn 370 abweicht. Diese Bahnabweichung von der Referenz ist unerwünscht und durch den oben erörterten Effekt bedingt, und zwar befiehlt das Modul für die dynamische Bewegungsoptimierung 220 eine Verlangsamung des Roboterarms 360 wegen des Hindernisses auf seiner Bahn, doch erkennt der Folgeregler 210 die Verlangsamung nicht angemessen und stellt die Soll-Geschwindigkeitsanweisungen bereit, die bewirken, dass die Ist-Bahn von der Referenzbahn abweicht.
  • Die Techniken der vorliegenden Offenbarung wurden entwickelt, um die Nachteile der oben erörterten Technik zur dynamischen Bewegungsoptimierung nach dem Stand der Technik zu überwinden.
  • 4 ist eine Blockdiagrammdarstellung eines Systems für die dynamische Bewegungsoptimierung 400 und ein Flussdiagramm eines entsprechenden Verfahrens gemäß einer Ausführungsform der vorliegenden Offenbarung, bei dem eine Robotergeschwindigkeit bei Vorhandensein eines Arbeitsraumhindernisses reduziert werden kann und einem Folgeregler ein Verlangsamungsfaktor als Rückmeldung von einem Online-Geschwindigkeitsänderungs- (OVM) -Modul bereitgestellt wird. Ein Folgeregler 410 empfängt als Eingabe eine Referenzposition qref, die eine Ziel- (geplante) - Roboterbahn in Gelenkkoordinaten definiert. Der Folgeregler 410 berechnet eine Soll-Robotergelenkposition und Soll-Geschwindigkeitsvektoren (qdes bzw. q̇des) auf der Grundlage der Referenzbahneingabe und stellt die Soll-Gelenkpositions- und Soll-Geschwindigkeitsvektordaten einem Online-Geschwindigkeitsänderungsmodul 420 bereit.
  • Das Online-Geschwindigkeitsänderungsmodul 420 empfängt eine Hindernisdateneingabe von einem Wahrnehmungsmodul 430 und berechnet Robotergelenkpositions- und -geschwindigkeitsbefehle (qcmd bzw. q̇cmd). Die Gelenkbefehlsausgabe vom Online-Geschwindigkeitsänderungsmodul 420 beinhaltet bei Bedarf eine Verlangsamung des Roboters auf der Grundlage der Arbeitsraumhindernisdaten. Das Online-Geschwindigkeitsänderungsmodul 420 verwendet die oben erörterten Gleichungen (1) - (5) zum Berechnen reduzierter Robotergelenkgeschwindigkeiten bei Vorhandensein von Arbeitsraumhindernissen. Der Betrag der vom Online-Geschwindigkeitsänderungsmodul 420 berechneten Robotergeschwindigkeitsverminderung ist in einem Verlangsamungsverhältnis ds verkörpert, wobei der Wert von ds in einem Bereich von null (ds = 0; vollständiger Stopp des Roboters) bis eins (ds = 1; volle Geschwindigkeit des Roboters für die geplante Bewegung; keine Verlangsamung; in diesem Fall gilt: q̇des = q̇cmd) liegt. Der Wert von ds wird dem Folgeregler 410 vom Online-Geschwindigkeitsänderungsmodul 420 auf einer Leitung 440 bereitgestellt.
  • Ein Robotersystem 450 umfasst eine Steuerung und einen Roboter, wobei die Steuerung bewirkt, dass der Roboter die Gelenkbefehle (qcmd und q̇cmd) vom Online-Geschwindigkeitsänderungsmodul 420 befolgt. Der Roboter in dem Robotersystem 450 stellt der Steuerung in dem Robotersystem 450 Ist-Gelenkzustandsdaten - qact und qact - als Rückmeldung bereit. Doch weil der Folgeregler 410 das Verlangsamungsverhältnis ds vom Online-Geschwindigkeitsänderungsmodul 420 bereits kennt, ist eine Rückmeldung von Roboterzustandsdaten vom Robotersystem 450 an den Folgeregler 410 nicht erforderlich. Das heißt, dass das Online-Geschwindigkeitsänderungsmodul 420 dem Folgeregler 410 den Wert von ds als Rückmeldung bereitstellt, wodurch der Folgeregler 410 die Roboterverlangsamung bei der Berechnung der Soll-Robotergelenkposition und Soll-Geschwindigkeitsvektoren (qdes bzw. q̇des) berücksichtigt. Dies wird in der folgenden Figur weiter veranschaulicht.
  • 5 ist eine Darstellung davon, wie gemäß einer Ausführungsform der vorliegenden Offenbarung bei dem System von 4 eine geplante Referenzbahn, die aus einer Folge von Interpolationspunkten besteht, in eine kontinuierliche Bahn parametrisiert wird, die durch eine Bogenlänge s definiert ist. Eine geplante Referenzbahn 510 wird durch eine Vielzahl von Interpolationspunkten q0 (512), q1 (514), q2 (516), ... usw. bis zu einem letzten Zielpunkt qT (518) definiert. Die geplante Referenzbahn 510 wird, wie in 4 gezeigt und oben erörtert, dem Folgeregler 410 als Eingabe bereitgestellt.
  • Auf der rechten Seite wird eine kontinuierliche Referenzbahn 520 als Funktion eines Bogenlängenparameters s berechnet, wobei gilt: s = 0 am ersten Bahnpunkt q0 (512) und s = 1 am letzten (Ziel-) Punkt qT (518). Die kontinuierliche Referenzbahn p(s) 520 wird vom Folgeregler 410 unter Verwendung einer beliebigen geeigneten Technik, wie etwa einer Splinefunktion, berechnet. Die kontinuierliche Referenzbahn p(s) 520 wird dann vom Folgeregler 410 zusammen mit der Rückmeldung des Verlangsamungsverhältnisses ds wie folgt verwendet. Bei jedem Berechnungszyklus würde der Folgeregler 410 normalerweise den Wert von s für die Bewegung entlang der kontinuierlichen Referenzbahn 520 um einen Betrag erhöhen, der mit der Zeitdauer der Referenzbahnbewegung und dem Zeitinkrement des Berechnungszyklus im Einklang steht. Wenn die Rückmeldung vom Online-Geschwindigkeitsänderungsmodul 420 angibt, dass der Wert von ds = 1 ist, dann erhöht der Folgeregler 410 für diesen Berechnungszyklus den Wert von s um den vollen Betrag. Wenn die Rückmeldung vom Online-Geschwindigkeitsänderungsmodul 420 andererseits angibt, dass der Wert von ds = 0 ist, dann erhöht der Folgeregler 410 den Wert von s für diesen Berechnungszyklus überhaupt nicht, was bedeutet, dass sich q̇des nicht gegenüber dem vorherigen Berechnungszyklus ändert, q̇des den Wert Null annimmt und der Roboter stoppt. Wenn 0 < ds < 1, dann erhöht der Folgeregler 410 für den aktuellen Berechnungszyklus den Wert von s um einen Betrag, der proportional zu ds ist; das bedeutet, dass der Roboter aus seiner geplanten Bewegung verlangsamt, was die gewünschte Reaktion bei Vorhandensein eines einschränkenden Arbeitsraumhindernisses ist.
  • Zurückkommend auf 4, empfängt das Online-Geschwindigkeitsänderungsmodul 420 die Hindernisdaten vom Wahrnehmungsmodul 430 und führt wie folgt eine Geschwindigkeitsänderungsoptimierung bei jedem Berechnungszyklus durch: min q ˙ q d e s q 2 + λ q ˙
    Figure DE102022122663A1_0008
    s . t .   q ˙ i | q ˙ i , b r a k e |
    Figure DE102022122663A1_0009
    Wobei die Gleichung (6) die Optimierungszielfunktion ist, die die Bahnabweichung zwischen einer berechneten Bahn q und der Soll-Bahn q̇des minimiert, und die Gleichung (7) eine Beschränkungsgleichung für die einzelnen Robotergelenkgeschwindigkeiten ist, und wobei lq̇i,brake| (in Gleichung (7)) anhand der zuvor erörterten Gleichung (5) berechnet wird. Auf diese Weise bestimmt das Online-Geschwindigkeitsänderungsmodul 420 auf der Grundlage der Hindernisdaten, ob eine Verlangsamung erforderlich ist, und berechnet, falls dies der Fall ist, die einzelnen Gelenkgeschwindigkeitsgrenzen auf der Grundlage der Stoppzeit tstop.
  • Nachdem die Optimierungsberechnung konvergiert hat, wird ein Wert des Verlangsamungsverhältnisses ds berechnet mit: d s = m i n ( | q ˙ b r a k e | / | q ˙ m a x | )
    Figure DE102022122663A1_0010
    Wobei die Gleichung (8) das Verhältnis von |q̇brake| zu lq̇max| für jedes Robotergelenk i berechnet und den kleinsten Gelenkgeschwindigkeitsverhältniswert als das Verlangsamungsverhältnis ds verwendet.
  • Wie oben erörtert, wird der Wert des Verlangsamungsverhältnisses ds dem Folgeregler 410 vom Online-Geschwindigkeitsänderungsmodul 420 als Rückmeldung bereitgestellt. Der Folgeregler 410 berechnet dann einen neuen Wert des Bogenlängenparameters als s = s + ds. Das heißt, wenn ds = 1, wird der Bogenlängenparameter um einen ganzen Schritt erhöht, und wenn ds = 0, ändert sich der Bogenlängenparameter nicht und stoppt der Roboter. Die neue Soll-Position längs der Bahn wird dann mit ẋdes = xref (s) (im kartesischen Raum) oder q̇des = qref(s) (im Gelenkraum) berechnet. Auf diese Weise stellt der Folgeregler 410 neue Soll-Gelenkpositionen q̇des bereit, die unverzüglich alle vom Online-Geschwindigkeitsänderungsmodul 420 befohlenen Robotergelenkgeschwindigkeitsreduzierungen zur Hindernisvermeidung widerspiegeln. Diese unverzügliche Anpassung durch den Folgeregler 410 bewirkt, dass die befohlenen Roboterbewegungen qcmd der Zielreferenzbahn qref getreu folgen.
  • Die Blockdiagrammdarstellung von 4 dient auch als Flussdiagrammdarstellung eines Verfahrens zur adaptiven Robotergeschwindigkeitsänderung gemäß der vorliegenden Offenbarung. Das heißt, dass das Verfahren das Bereitstellen von Arbeitsraumhindernisdaten, das Verwenden der Hindernisdaten und einer Referenzbahn, um zu bestimmen, ob eine Geschwindigkeitsverminderung zur Hindernisvermeidung erforderlich ist, die Berechnung des Verlangsamungsverhältnisses ds eingeschlossen, das Berechnen einer befohlenen Roboterbewegung unter Verwendung des Verlangsamungsverhältnisses und einer Soll-Bewegung, das Verwenden des Verlangsamungsverhältnisses und der Referenzbahn zum Berechnen der Soll-Bewegung für den nächsten Regelzyklus (Rückkopplungsschleife 440) und das Bereitstellen der befohlenen Roboterbewegung an das Robotersystem umfasst.
  • Bei dem System und Verfahren von 4 ist die Parametrisierung der Folge von Interpolationspunkten in eine kontinuierliche Bahn, wie in 5 dargestellt, optional. Diese Parametrisierung kann implizit im Bewegungssystem der Robotersteuerung durchgeführt werden, in das bei einigen nachstehend erörterten Ausführungsformen die Online-Geschwindigkeitsänderungsberechnungen eingebettet sind. Bei anderen Ausführungsformen ist die in 5 dargestellte Parametrisierung ein expliziter Schritt, der auf einem anderen Computer als der Robotersteuerung ausgeführt wird. Bei allen Ausführungsformen ist die Eingabe einer Referenzbahn (die eine geplante Aufgabenbewegung für den Roboter darstellt) erforderlich.
  • 6 ist eine Darstellung eines Zwei-Roboter-Systems mit sich kreuzenden Bahnen mit Simulationsergebnissen, die zeigen, wie eine Kollision verhindert wird, wenn die Online-Geschwindigkeitsänderungstechnik von 4 in einem der Roboter gemäß einer Ausführungsform der vorliegenden Offenbarung implementiert ist. Ein Roboter 610 und ein Roboter 630 arbeiten in einem gemeinsam genutzten Arbeitsraum 600, der in 6 durch ein dreidimensionales (3D) kartesisches Gitter dargestellt ist. Der Roboter 610 ist dazu programmiert, einer Bahn 620 in einer Richtung von einem Startpunkt 622 zu einem Endpunkt 624 zu folgen. Der Roboter 630 ist dazu programmiert, einer Bahn 640 in beide Richtungen von einem Startpunkt 642 zu einem Endpunkt 644 und zurück zum Startpunkt 642 zu folgen.
  • Ohne jede Kollisionsvermeidungstechnologie würden die Roboter 610 und 630 kollidieren, wenn beide ihre Aufgaben gleichzeitig beginnen, da es eine offensichtliche Überlappung ihrer Betriebsenveloppen um den Bereich gibt, wo sich die Bahnen 620 und 640 kreuzen. Es ist ineffizient, die Roboter einfach so zu programmieren, dass ein Roboter seine Aufgabe abschließt und dann der andere Roboter beginnt. Daher besteht ein Bedarf an einer automatischen Geschwindigkeitsanpassung im Falle einer drohenden Kollision.
  • Wenn der Roboter 610 mit dem Bewegungsoptimierungs-/Geschwindigkeitsänderungssystem von 4 konfiguriert ist, beginnen beide Roboter, ihren Werkzeugmittelpunkt entlang der jeweiligen Bahnen zu führen, und wenn sich der Roboter 610 einem Punkt 626 nähert, erkennt der Roboter 610 den Roboter 630 (mit seinem Werkzeugmittelpunkt ungefähr an einem Punkt 646) vorne auf seiner Bahn. Der Roboter 610 verlangsamt somit und stoppt möglicherweise mit seinem Werkzeugmittelpunkt ungefähr beim Punkt 626, während der Roboter 630 hin und zurück entlang der Bahn 640 weiterfährt. Wenn der Roboter 630 bei der Rückkehrbewegung ungefähr den Punkt 646 erreicht, nimmt der Roboter 610 die Bewegung entlang der Bahn 620 in Richtung des Endpunkts 624 wieder auf. Das Nettoergebnis ist, dass eine Roboterkollision vermieden wird, und der Roboter 610 kann seine Aufgabe zumindest teilweise zu Ende führen, während sich der Roboter 630 auf seiner Bahn befindet. Es sind leicht andere Szenarien vorstellbar, bei denen das Timing so ist, dass ein Roboter einfach ein wenig langsamer werden muss, während der andere Roboter den Überlappungsbereich räumt, und die offenbarte Bewegungsoptimierungs-/Geschwindigkeitsänderungstechnik eine sehr hohe Effizienz beibehält und gleichzeitig Kollisionen verhindert. Die in skizzierten Szenarien behandeln Kollisionen zwischen Robotern. Die offenbarte Geschwindigkeitsänderungstechnik ist gleichermaßen versiert im Umgang mit jeder anderen Art von sich bewegenden Hindernissen.
  • 4 zeigte ein Blockdiagramm des Bewegungsoptimierungs-/Geschwindigkeitsänderungssystems der vorliegenden Offenbarung auf hohem Niveau, und in der anschließenden Erörterung wurden die Einzelheiten der Geschwindigkeitsänderungsberechnungen sowie der Rückmeldung und Verwendung des Verlangsamungsverhältnisses, damit die Ist-Bahn auf der Referenzbahn bleibt, beschrieben. In den folgenden Figuren werden zwei unterschiedliche detaillierte Implementierungsausführungsformen zusammen mit einem Verfahren zum Bestimmen, wann die Geschwindigkeitsänderungsroutine zur Kollisionsvermeidung auszulösen ist, veranschaulicht.
  • 7 ist eine Blockdiagrammdarstellung einer ersten Implementierungsarchitektur 700 einer Online-Geschwindigkeitsänderungsregelungsstruktur gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Architektur von 7 spiegelt die von 4 wider, wobei ein Folgeregler 710 eine Soll-Robotergelenkposition und Soll-Geschwindigkeitsvektoren (qdes und q̇des, wobei q̇des entweder direkt bereitgestellt oder durch Differenzieren von q̇des im aktuellen Zeitschritt vom vorherigen Zeitschritt berechnet wird) auf der Grundlage der Referenzbahneingabe qref berechnet und die Soll-Gelenkpositions- und Soll-Geschwindigkeitsvektordaten einem Online-Geschwindigkeitsänderungsmodul 720 bereitstellt. Ein Wahrnehmungsmodul 730 (einer oder mehrere Sensoren, die das Vorhandensein und die Bewegung eines Hindernisses erkennen können, wie etwa Kameras, Lidar-Systeme, Bewegungserfassungssysteme oder Näherungsschalter) stellt Hindernispositions- und -geschwindigkeitsdaten (pobs und vobs) für alle in den Kamerabildern oder Sensordaten gefundenen Hindernisse bereit. Alternativ könnten die Hindernisdaten bei Multi-Roboter-Systemen Zustandsdaten über einen anderen Roboter sein, die von der Steuerung dieses anderen Roboters bereitgestellt werden, wie in Bezug auf 8 weiter erörtert wird.
  • Das Online-Geschwindigkeitsänderungsmodul 720 berechnet auf der Grundlage aller in den Hindernisdaten identifizierten Hindernisse einen Betrag der erforderlichen Geschwindigkeitsänderung („Grenzwert der reduzierten Geschwindigkeit“). Wenn sich im Arbeitsraum keine Hindernisse befinden, dann führt der Roboter seine Aufgabe unter Verwendung der ursprünglichen geplanten Bewegungsbahn und -geschwindigkeit aus. Das Online-Geschwindigkeitsänderungsmodul 720 stellt dem Folgeregler 710 eine Rückmeldung des Verlangsamungsverhältnisses ds (0 ≤ ds ≤ 1) bereit, und das Online-Geschwindigkeitsänderungsmodul 720 stellt einer Robotersteuerung 750 befohlene Robotergelenkpositionen und -geschwindigkeiten (qcmd und q̇cmd) bereit. Bei der Architektur 700 von 7 sind der Folgeregler 710 und das Online-Geschwindigkeitsänderungsmodul 720 der Steuerung 750 vorgeschaltet implementiert, wie etwa in einem separaten Computer 740. Der Computer 740 könnte auch einen Teil der Wahrnehmungsfunktion ausführen - beispielsweise könnte(n) die Kamera(s) dem Computer 740 Rohbilder bereitstellen, der dann die Bilder verarbeiten würde, um das Vorhandensein (sowie Position und Geschwindigkeit) von irgendwelchen Hindernissen zu bestimmen. Die Robotersteuerung 750 stellt einem Roboter 760 Gelenkbewegungsbefehle bereit und der Roboter 760 liefert eine Gelenkpositionsrückmeldung qact von Gelenkencodern zurück an die Steuerung 750, sodass die Steuerung 750 jederzeit die genaue Position der Robotergelenke kennt, wie in der Technik bekannt.
  • Die Architektur 700 von 7 wurde in Simulationen implementiert, die bestätigen, dass der Roboter 760 bei Abwesenheit jeglicher Arbeitsraumhindernisse mit der vollen geplanten Geschwindigkeit arbeitet und nach Bedarf verlangsamt, um Kollisionen mit Hindernissen zu vermeiden, und der Werkzeugmittelpunkt folgt getreu der Referenzbahn, selbst bei gekrümmten Bahnen, wenn erhebliche Verlangsamungen erzwungen werden.
  • 8 ist eine Blockdiagrammdarstellung einer Architektur 800, einer zweiten Implementierungsarchitektur einer Online-Geschwindigkeitsänderungsregelungsstruktur, gemäß einer Ausführungsform der vorliegenden Offenbarung. Die Architektur 800 von 8 ist für die einfache Implementierung in bestehende Robotersteuersysteme ausgelegt. Eine Robotersteuerung 810 verfügt über ein Bewegungssteuerungsmodul 820, das befohlene Robotergelenkbewegungen (qcmd und auch q̇cmd, entweder direkt oder implizit, wie oben erörtert) auf der Grundlage einer Referenzbahneingabe qref berechnet. Das Bewegungssteuerungsmodul 820 umfasst interne Module, die Berechnungen ausführen, die erforderlich sind, um die befohlenen Robotergelenkbewegungen (qcmd) bereitzustellen, einschließlich der Berechnung einer Zwischenvariablen, die den Soll-Robotergelenkbewegungen (qdes) entspricht.
  • Ein Wahrnehmungsmodul 840 (einer oder mehrere Sensoren, die das Vorhandensein und die Bewegung eines Hindernisses erkennen können, wie etwa Kameras, Lidar-Systeme, Bewegungserfassungssysteme oder Näherungsschalter) stellt Hindernispositions- und -geschwindigkeitsdaten (pobs und vobs) für alle in den Kamerabildern oder Sensordaten gefundenen Hindernisse bereit. Andererseits könnten die Hindernisdaten, wie oben beim System von 7 beschrieben, Zustandsdaten über einen anderen Roboter sein, die von der Steuerung 842 dieses anderen Roboters bereitgestellt werden. Das heißt, dass bei einem Multi-Roboter-System, wie es etwa in 6 dargestellt ist, jeder Roboter für den anderen ein Hindernis sein kann. Somit kann in einem Multi-Roboter-System das Wahrnehmungsmodul 840 eliminiert werden (wenn im Roboterarbeitsraum keine anderen Hindernisse erwartet werden), und stattdessen können die Positions- und Geschwindigkeitsdaten jedes Roboters an die Steuerung des anderen Roboters bereitgestellt werden, um beim Berechnen der Hindernisdaten verwendet zu werden. Die Hindernisdaten (entweder vom Wahrnehmungsmodul 840 oder von der Steuerung 842 des anderen Roboters oder von beiden) werden einem Online-Geschwindigkeitsänderungsmodul 850 bereitgestellt, das auf der Grundlage aller in den Hindernisdaten identifizierten Hindernisse einen Betrag der erforderlichen Geschwindigkeitsänderung („Grenzwert der reduzierten Geschwindigkeit“) berechnet. Wenn sich im Arbeitsraum keine Hindernisse befinden, dann führt der Roboter seine Aufgabe unter Verwendung der ursprünglichen geplanten Bewegungsbahn und - geschwindigkeit aus. Das Online-Geschwindigkeitsänderungsmodul 850 ist vorzugsweise auf einen Prozessor innerhalb der Robotersteuerung 810 (gestrichelte Umrisslinie) als zusätzlicher Software-Algorithmus implementiert.
  • Das Online-Geschwindigkeitsänderungsmodul 850 empfängt die Soll-Roboterbewegungen q̇des vom Bewegungssteuerungsmodul 820 und berechnet, einhergehend mit den Hindernisdaten, das Verlangsamungsverhältnis ds in der zuvor erörterten Weise. Das Online-Geschwindigkeitsänderungsmodul 850 stellt das Verlangsamungsverhältnis ds (0 ≤ ds ≤ 1) dem Bewegungssteuerungsmodul 820 bereit, wo es zum Berechnen der befohlenen Roboterbewegungen qcmd verwendet wird, die bei Bedarf gegenüber den Soll-Roboterbewegungen q̇des auf der Grundlage jeder in ds angegebenen Verlangsamung revidiert werden. Das Verlangsamungsverhältnis ds wird außerdem vom Bewegungssteuerungsmodul 820 verwendet, um bei Bedarf die Soll-Roboterbewegungen qdes, die anhand von qref berechnet werden, auf der Grundlage des Werts von ds zu verlangsamen. Das Bewegungssteuerungsmodul 820 stellt die befohlenen Robotergelenkbewegungen (qcmd und, entweder direkt oder implizit, q̇cmd) einem Servosteuerungsmodul 860 bereit, das ein bekanntes Element der Steuerung 810 ist. Das Servosteuerungsmodul 860 der Steuerung 810 stellt einem Roboter 870 Gelenkbewegungsbefehle bereit, und der Roboter 870 liefert eine Gelenkpositionsrückmeldung qact vom Gelenkencoder zurück an die Robotersteuerung 810, sodass das Servosteuerungsmodul 860 jederzeit die genaue Position der Robotergelenke kennt. Die Gelenkpositionsrückmeldung qact wird auch dem Online-Geschwindigkeitsänderungsmodul 850 bereitgestellt, sodass das Online-Geschwindigkeitsänderungsmodul 850 die Ist-Position und - Geschwindigkeit des Roboters 870 für die Berechnung des Roboter-Hindernis-Abstands und der relativen Geschwindigkeit kennt.
  • Die Architektur 800 von 8 wurde in einem tatsächlichen physischen Robotersteuerungssystem implementiert, wobei das Online-Geschwindigkeitsänderungsmodul 850 auf einem Prozessor in der Steuerung wie oben beschrieben programmiert wurde. Dieses Prototypsystem zeigte das gewünschte Verhalten, einschließlich des Betriebs des Roboters mit voller geplanter Geschwindigkeit bei Abwesenheit jeglicher Arbeitsraumhindernisse und der Verlangsamung des Roboters nach Bedarf zur Vermeidung von Kollisionen mit Hindernissen, während der Werkzeugmittelpunkt getreu der Referenzbahn folgte, sogar bei gekrümmten Bahnen, wenn erhebliche Verlangsamungen erzwungen wurden. Versuchsergebnisse werden weiter unten erörtert.
  • In der vorstehenden Erörterung der 4-8 wird beschrieben, wie das Online-Geschwindigkeitsänderungsmodul eine Optimierungsberechnung durchführt, um auf der Grundlage des Vorhandenseins von Arbeitsraumhindernissen ein Roboterverlangsamungsverhältnis zu bestimmen, und wie das Verlangsamungsverhältnis ds verwendet wird, um die Robotergeschwindigkeit bei Bedarf zu ändern, während der geplanten Referenzbahn des Werkzeugmittelpunkts getreu gefolgt wird. Ein weiterer Aspekt der vorliegenden Offenbarung ist eine Technik zum Bestimmen, wann die Optimierungsberechnung für die Geschwindigkeitsänderung „eingeschaltet“ werden soll, sodass die Online-Geschwindigkeitsänderungsberechnung nicht in Situationen durchgeführt wird, in denen Konflikte zwischen Roboter und Hindernissen nicht wahrscheinlich oder nicht möglich sind.
  • 9 ist ein Flussdiagramm 900 eines Verfahrens zum Auslösen der Online-Geschwindigkeitsänderungsberechnung auf der Grundlage des Roboter-Hindernis-Abstands und der Relativgeschwindigkeit gemäß einer Ausführungsform der vorliegenden Offenbarung. Bei dem Verfahren von 9 werden sowohl der Roboter-Hindernis-Abstand (Mindestabstand zwischen dem Hindernis und irgendeinem Teil des Roboters) als auch die Relativgeschwindigkeit zwischen Roboter und Hindernis (Änderungsrate des Mindestabstands) ausgewertet, und die Geschwindigkeitsänderungsberechnungen werden nur durchgeführt, wenn sowohl der Abstand als auch die Geschwindigkeit vordefinierte Kriterien erfüllen. Das Verfahren von 9 wird im Online-Geschwindigkeitsänderungsmodul 720 von 7 oder im Online-Geschwindigkeitsänderungsmodul 850 von 8 ausgeführt.
  • Beim Eintritt in das Online-Geschwindigkeitsänderungs-(OVM) -Modul wird bei der Entscheidungsraute 902 bestimmt, ob der aktuelle Roboter-Hindernis-Mindestabstand dobs kleiner oder gleich einem vorbestimmten Schwellenabstand dthresh ist. Der Schwellenabstand kann auf der Grundlage einer maximalen Arbeitsgeschwindigkeit des Roboters oder anderer Faktoren festgelegt werden, wie etwa, ob sich Personen im Arbeitsraum aufhalten können. Wenn der aktuelle Roboter-Hindernis-Mindestabstand größer als der Schwellenabstand ist, dann geht der Prozess zu Kasten 904 über, wo das Verlangsamungsverhältnis auf ds = 1 gesetzt wird, und die OVM-Optimierungsberechnungen werden nicht durchgeführt. Wenn der aktuelle Roboter-Hindernis-Mindestabstand bei der Entscheidungsraute 902 kleiner oder gleich dem Schwellenabstand ist, geht der Prozess zu Entscheidungsraute 906 über.
  • Bei der Entscheidungsraute 906 wird bestimmt, ob die Relativgeschwindigkeit vrel des Hindernisses in Bezug auf den Roboter kleiner oder gleich null ist. Die Relativgeschwindigkeit zwischen Roboter und Hindernis kann anhand der Änderungsrate des Roboter-Hindernis-Mindestabstands von einem Zeitschritt zum nächsten bestimmt werden. Wenn die Relativgeschwindigkeit zwischen Roboter und Hindernis größer null ist, bedeutet dies, dass sich das Hindernis vom Roboter weg bewegt (oder sich der Roboter vom Hindernis weg bewegt oder eine Kombination aus beiden), und weil der Abstand zunimmt, ist eine Kollision unter den aktuellen Bedingungen nicht möglich. Wenn die Relativgeschwindigkeit zwischen Roboter und Hindernis größer null ist, geht der Prozess zu Kasten 904 über, wo das Verlangsamungsverhältnis auf ds = 1 gesetzt wird, und die OVM-Berechnungen werden nicht durchgeführt.
  • Wenn die Relativgeschwindigkeit zwischen Roboter und Hindernis kleiner oder gleich null ist (und der Abstand kleiner als der Schwellenwert von der Entscheidungsraute 902 ist), dann wird bei Kasten 908 die Roboterstoppzeit tstop auf der Grundlage des Roboter-Hindernis-Abstands wie folgt berechnet: t s t o p = min ( d o b s | v r e l | , d o b s | v s a f e | )
    Figure DE102022122663A1_0011
    Wobei vsafe ein Geschwindigkeitsbetrag ist, der verwendet wird, um einen numerischen Fehler zu vermeiden, wenn vrel = 0.
  • Die Stoppzeit tstop wird dann in Gleichung (5) zum Bestimmen einer Gelenkgeschwindigkeitsgrenze verwendet, wie oben erörtert. Die Berechnungen für die Online-Geschwindigkeitsänderungsoptimierung werden dann bei Kasten 910 mithilfe der Gleichungen (6)-(8) wie oben erörtert durchgeführt, woraus sich ein Verlangsamungsverhältnis mit einem Wert 0 ≤ ds ≤ 1 ergibt. Die Ausgabe des Online-Geschwindigkeitsänderungsmoduls erfolgt entweder über Kasten 904 (ds = 1) oder über Kasten 910 (berechneter Wert von ds).
  • Aus dem Stand der Technik ist bekannt, Berechnungen zur Vermeidung einer Roboterkollision nur dann durchzuführen, wenn sich Arbeitsraumhindernisse innerhalb eines bestimmten Abstands vom Roboter befinden. Durch Auswerten der Relativgeschwindigkeit zwischen Roboter und Hindernis zusammen mit dem Mindestabstand, wie in 9 gezeigt, vermeidet die hier offenbarte Technik jedoch die Durchführung der Berechnungen und möglicherweise die Verlangsamung des Roboters in Situationen, in denen sich das Hindernis vom Roboter weg bewegt (und/oder sich der Roboter vom Hindernis weg bewegt), wenn eine Kollision nicht möglich ist, obwohl der Roboter-Hindernis-Abstand gering sein mag.
  • Es wurden viele Simulationen und Versuche unter realen Bedingungen durchgeführt, die die Wirksamkeit der oben erörterten Online-Geschwindigkeitsänderungstechniken validieren. Die Simulationen umfassen Arbeitsraumszenarien mit mehreren Robotern, wie das in 6 gezeigte, und die Versuche unter realen Bedingungen umfassen einen Menschen und ein handgehaltenes Hindernis, die sich im Arbeitsraum eines Roboters bewegen, der so programmiert ist, dass er sowohl geradlinigen als auch gekrümmten Bahnabschnitten folgt. In allen Fällen zeigt die Datenanalyse, dass eine Verlangsamung (ds < 1) nur dann befohlen wird, wenn der Roboter-Hindernis-Abstand kleiner als der Schwellenwert ist und die Relativgeschwindigkeit zwischen Roboter und Hindernis abnimmt, dass der Wert des Verlangsamungsverhältnisses aus den Online-Geschwindigkeitsänderungsberechnungen wie erwartet auf dem Roboter-Hindernis-Abstand basiert und dass die Ist-Werkzeugmittelpunktsbahn der Referenz-Werkzeugmittelpunktsbahn selbst in gekrümmten Abschnitten der Bahn folgt, wenn der Roboter als Reaktion auf ds < 1 verlangsamt. Mehrere Beispiele der Simulation und Versuchsergebnisse werden in nachfolgenden Figuren gezeigt und unten erörtert.
  • In der vorangegangenen Erörterung von 6 wurde beschrieben, wie Kollisionen bei einem Zwei-Roboter-System mit sich kreuzenden Bahnen verhindert werden, wenn die Online-Geschwindigkeitsänderungstechnik in einem der Roboter implementiert ist. Vorzugsweise sollte das Online-Geschwindigkeitsänderungstechnik in allen Robotern eines Multi-Roboter-Systems implementiert werden, sodass die Gesamteffizienz maximiert werden kann (minimierte Anzahl und Dauer der Verlangsamungen). Um dies zu tun, muss jedoch eine Roboterpriorität oder -rangordnung in Echtzeit auf der Grundlage der Arbeitsraumbedingungen festgelegt werden, und es muss ein sequentieller Prozess zum Berechnen des Verlangsamungsverhältnisses ds für jeden Roboter in einer Prioritätenfolge befolgt werden. Diese Technik wird unten erörtert.
  • Wenn zwei oder mehr Roboter in einem gemeinsam genutzten Arbeitsraum arbeiten, wobei sich die Betriebsenveloppen der Roboter überlappen, besteht die Möglichkeit, dass es zu Kollisionen kommt. Solche Kollisionen können vermieden werden, indem die Roboter so vorprogrammiert werden, dass sie strikt einem synchronisierten Bewegungsablauf folgen, der verhindert, dass sich zwei Roboter gleichzeitig am selben Ort befinden. Einige Arten von Aufgaben schreiben jedoch vor, dass jeder der Roboter mit seinem eigenen Tempo arbeitet, was eine strikte Synchronisation der Bewegungen verhindert. In solchen Fällen kann ein potenzieller Überlappungsbereich identifiziert werden, und der Abstand jedes Roboters von dem Überlappungsbereich (in einem aktuellen Zeitschritt oder Robotersteuerzyklus) kann verwendet werden, um eine Prioritätenfolge festzulegen. Diese Technik wird unten beschrieben.
  • 10 ist ein Flussdiagramm 1000 eines Verfahrens zum Festlegen der Priorität jedes Roboters in einem Multi-Roboter-System und zum Durchführen der Online-Geschwindigkeitsänderungsberechnung auf der Grundlage der Priorität gemäß einer Ausführungsform der vorliegenden Offenbarung; 11 ist eine Darstellung eines Zwei-Roboter-Systems 1100 mit sich kreuzenden Bahnen mit Simulationsergebnissen, die zeigen, wie sich gemäß einer Ausführungsform der vorliegenden Offenbarung die OVM-Prioritätslogik von 10 auf ein erstes Bewegungsszenario auswirkt; 12 ist eine Darstellung des Zwei-Roboter-Systems 1100 mit Simulationsergebnissen, die zeigen, wie sich gemäß einer Ausführungsform der vorliegenden Offenbarung die OVM-Prioritätslogik von 10 auf ein zweites Bewegungsszenario auswirkt;
  • Der Prozess beginnt für einen bestimmten Zeitschritt (Robotersteuerzyklus) bei Kasten 1002, wo ein potenzieller Überlappungsbereich der Roboterbewegung identifiziert wird. In einem Arbeitsraum 1100 von 11 wird ein Überlappungsbereich 1102 identifiziert, der einen Roboter 1110 und einen Roboter 1130 betrifft. Der Überlappungsbereich kann eine zweidimensionale Fläche (beispielsweise in Draufsicht) sein oder der Überlappungsbereich kann ein dreidimensionales Volumen sein. Bei Kasten 1004 wird ein Abstand von der aktuellen Position jedes Roboters zum Überlappungsbereich berechnet. Die Abstandsberechnung kann so formuliert werden, dass sie der Beschaffenheit des Überlappungsbereichs entspricht. Beispielsweise könnte der Abstand als der Abstand berechnet werden, den der Werkzeugmittelpunkt eines Roboters zurücklegen muss, um in den vertikal projizierten 2D-Überlappungsbereich einzutreten. Oder der Abstand könnte als ein tatsächlicher 3D-Abstand für irgendein Teil eines Roboters berechnet werden, um in ein 3D-Überlappungsvolumen einzutreten. Diese Berechnungen können so festgelegt werden, dass sie sich für eine bestimmte Anwendung eignen.
  • Bei Kasten 1006 wird eine Prioritätenfolge für die Roboter im System festgelegt, indem die Roboter auf der Grundlage eines Abstands (bei einer Ausführungsform) vom Überlappungsbereich geordnet werden, wobei der Roboter, der dem Überlappungsbereich am nächsten ist, die oberste/höchste Priorität (1) hat und der Roboter, der am weitesten vom Überlappungsbereich entfernt ist, die niedrigste Priorität hat. Diesem Ordnen nach der Priorität liegt der Gedanke zugrunde, den Roboter, der am nächsten ist, so schnell wie möglich den Überlappungsbereich durchqueren zu lassen, während die anderen Roboter den Überlappungsbereich anschließend nacheinander durchqueren. In vielen Fällen ist es möglich, dass der Roboter mit der obersten Priorität überhaupt nicht verlangsamen muss und die nachfolgenden Roboter nur wenig verlangsamen müssen.
  • Bei einer alternativen Ausführungsform kann statt des Abstands zum Überlappungsbereich eine Zeit zum Erreichen des Überlappungsbereichs für jeden Roboter bei Kasten 1004 berechnet und der Zeitwert zum Festlegen der Prioritätenfolge der Roboter bei Kasten 1006 verwendet werden. Die Zeit anstatt des Abstands kann in Anwendungen verwendet werden, bei denen ein Roboter im System eine geplante Geschwindigkeit oder Bahnlänge hat, die sich sehr von der eines oder mehrerer anderer Roboter im System unterscheidet. Bei noch anderen Ausführungsformen kann das Beschleunigungs-/Verzögerungsvermögen der Roboter beim Festlegen der Priorität berücksichtigt werden, wobei einem Roboter mit dem geringsten Beschleunigungs-/Verzögerungsvermögen (wie einem größten Roboter mit der größten Trägheit) die höchste Priorität zugewiesen werden kann. Andere Faktoren können ebenfalls berücksichtigt werden, und die Priorität kann in der Tat auf der Grundlage einer Benutzer-Präferenz oder unter Verwendung einer benutzerdefinierten Formel, die Konstanten (wie etwa die Fähigkeiten des Roboters) und Variablen (wie etwa ein Abstand zum Überlappungsbereich bei einem bestimmten Steuerzyklus) enthält, zugewiesen werden.
  • Die Ausgabe des Kastens 1006 ist eine Prioritätenfolge der Roboter für den bestimmten Robotersteuerzyklus, der im Moment ausgewertet wird. In 11 kann es beispielsweise sein, dass der Roboter 1130 die höchste Priorität und der Roboter 1110 die niedrigste Priorität hat. Für die folgende Erörterung wird ein Drei-Roboter-System als Beispiel verwendet, und es wird angenommen, dass die Prioritätenfolge für das Drei-Roboter-System PO = [R2, R1, R3] ist, was anzeigt, dass der Roboter R2 die höchste Priorität (1) hat, der Roboter R1 die zweithöchste Priorität (2) hat und der Roboter R3 die niedrigste Priorität (3) hat. Auch diese Prioritäten gelten nur für einen bestimmten Teil der Arbeitsvorgänge der Roboter; zu einem späteren Zeitpunkt kann die Prioritätenfolge basierend auf den Bedingungen zu jenem Zeitpunkt völlig anders sein.
  • Noch fortfahrend, beginnen für den bestimmten Robotersteuerzyklus die Berechnungen des Verlangsamungsverhältnisses für jeden Roboter bei Kasten 1008 mit einer Initiierung, wo ein Prioritätsrangzähler initialisiert wird (i = 1) und vorläufige Verlangsamungsverhältniswerte eingestellt werden (ds1 = dsmax = 1). Das heißt, dass das Verlangsamungsverhältnis ds für den Roboter mit der Priorität 1 (Roboter R2) auf einen vorläufigen Wert Eins eingestellt wird und ein Parameter dsmax ebenfalls auf einen Wert Eins eingestellt wird.
  • Bei der Entscheidungsraute 1010 wird bestimmt, ob der ds-Wert für alle Roboter (alle drei in diesem Beispiel) berechnet wurde. Ist das nicht der Fall, wird bei Kasten 1012 der Roboter ausgewählt, der den Prioritätsrang des aktuellen Prioritätsrangzählers hat, wobei es sich um den Roboter R2 handelt, weil der Zähler noch i = 1 ist. Das Verlangsamungsverhältnis ds wird dann für R2 unter Verwendung der oben erörterten OVM-Berechnungen (Auswerten des Roboter-Hindernis-Abstands und der Geschwindigkeit, dann Berechnen von ds anhand von tstop und Optimierungsberechnung) berechnet. Auch wenn der Roboter R2 die höchste Priorität hat, wird ds dennoch berechnet, weil es andere Hindernisse geben kann, die verlangen, dass der Roboter R2 verlangsamt. Der ds-Wert für R2 wird dann als der Mindestwert des gerade vom OVM berechneten Werts und des voreingestellten Werts von dsmax eingestellt. Das heißt für Roboter R2: ds2 = min(ds, dsmax). Für den Roboter mit der höchsten Priorität (R2) wurde dsmax = 1 zuvor bei Kasten 1008 eingestellt. Daher wird ds2 gleich dem gerade vom OVM berechneten Wert von ds sein, der so hoch wie ds = 1 sein könnte.
  • In der vorangehenden Erörterung des Kastens 1012 wurde der Wert von ds für den Roboter R2 berechnet, der die höchste Priorität (i = 1) hat. Dann wird bei Kasten 1014 der Zählerwert erhöht (i = i + 1), und der maximal mögliche Wert von ds für den Roboter mit der nächsten Priorität wird auf den ds-Wert für den gerade berechneten Roboter gesetzt. Das heißt, ds",,ax = dsj, wodurch festgelegt wird, dass jeder Roboter in absteigender Prioritätenfolge einen ds-Wert haben kann, der nicht höher ist als der des Roboters mit der unmittelbar höheren Priorität. Der Prozess kehrt dann zurück zur Entscheidungsraute 1010, wo bestimmt wird, ob die ds-Werte aller Roboter aktualisiert wurden.
  • Fortfahrend mit dem Beispiel des Drei-Roboter-Systems wurde bisher nur der Roboter R2 mit der obersten Priorität berechnet. Der Prozess fährt daher mit Kasten 1012 fort, wo nun ein Roboter mit der Priorität i = 2 ausgewählt wird (aus der bei Kasten 1006 festgelegten Prioritätenfolge), wobei es sich um Roboter R1 handelt. Der Wert von ds1 wird dann für den Roboter R1 berechnet und kann nicht höher sein als der Wert dsmax, der für den vorherigen Roboter festgelegt wurde (ds2). Bei Kasten 1014 wird der Prioritätsrangzähler erneut inkrementiert (i = i + 1), und der maximal mögliche Wert von ds für den Roboter mit der nächsten Priorität wird auf den ds-Wert für den gerade berechneten Roboter gesetzt.
  • Der Prozess kehrt dann zurück zur Entscheidungsraute 1010 und geht zum Kasten 1012 über, wo ds für den Roboter R3 mit der nächstniedrigeren Priorität (i = 3) berechnet wird. Wenn der Prozess wieder zur Entscheidungsraute 1010 zurückkehrt, wird bestimmt, dass für alle drei Roboter ein ds-Wert für den aktuellen Steuerzyklus berechnet wurde, und bei Kasten 1016 werden die Werte von dsj für alle Roboter (ds2 für den Roboter R2 mit der höchsten Priorität; ds1 für den Roboter R1 mit der zweithöchsten Priorität usw.) zur Verwendung wie oben erörtert ausgegeben (Rückmeldung an den Folgeregler für jeden Roboter oder Verwendung durch das Interpolationsmodul). Der Prozess kehrt dann zurück zum Kasten 1002 für den nächsten Steuerzyklus.
  • 11 zeigt den Roboter 1110 mit einer in eine Richtung verlaufenden geplanten Bahn 1112 und den Roboter 1130 mit einer in beide Richtungen (hin und zurück) verlaufenden geplanten Bahn 1132. In 11 ist das Szenario so, dass der Roboter 1130 die höchste Priorität erhält, da er dem Überlappungsbereich 1102 am nächsten ist oder am ehesten dort ankommt. Daher ist das erste, was geschieht, dass der Roboter 1110 sich entlang seiner geplanten Bahn 1112 zu bewegen beginnt und der Roboter 1130 sich entlang seiner geplanten Bahn 1132 zu bewegen beginnt. Diese Bewegungen finden gleichzeitig statt und sind beide mit einem mit ① gekennzeichneten Pfeil dargestellt, der anzeigt, dass sie zuerst stattfinden. Wenn sich der Roboter 1110 (der eine niedrigere Priorität hat) einem Punkt 1114 nähert, muss der Roboter 1110 langsamer werden und kann nahe dem Punkt 1114 stoppen, damit der Roboter 1130 mit der höheren Priorität seinen Hinweg (Pfeil ①) und seinen Rückweg (Pfeil ②) abschließen kann. Erst dann, wenn der Roboter 1130 seinen Rückweg (Pfeil ②) fast abgeschlossen hat, sodass der Roboter 1130 dem Roboter 1110 nicht im Weg ist und/oder sich von dem Roboter 1110 weg bewegt, kann der Roboter 1110 seine Bahn abschließen, wie durch den gestrichelten Pfeil ③ angezeigt.
  • 12 zeigt denselben Arbeitsraum 1100 mit den Robotern 1110 und 1130 mit den gleichen geplanten Bahnen (1112 bzw. 1132) und dem gleichen Überlappungsbereich 1102 wie in 11. In 12 ist das Szenario so, dass der Roboter 1110 die höchste Priorität erhält, da er dem Überlappungsbereich 1102 am nächsten ist oder am ehesten dort ankommt. Daher ist das erste, was geschieht, dass der Roboter 1110 sich entlang seiner geplanten Bahn 1112 zu bewegen beginnt und der Roboter 1130 sich entlang seiner geplanten Bahn 1132 zu bewegen beginnt. Diese Bewegungen finden gleichzeitig statt und sind beide mit einem mit ① gekennzeichneten Pfeil dargestellt, der anzeigt, dass sie zuerst stattfinden. Der Roboter 1110 schließt die gesamte geplante Bahn 1112 ohne Unterbrechung ab, weil er die höchste Priorität hat. Wenn sich indes der Roboter 1130 (der eine niedrigere Priorität hat) einem Punkt 1234 nähert, muss der Roboter 1130 langsamer werden und kann nahe dem Punkt 1234 stoppen, damit der Roboter 1110 mit höherer Priorität den Überlappungsbereich 1102 durchqueren kann. Erst dann, wenn der Roboter 1110 seine Bahn (Pfeil ①) fast abgeschlossen hat, sodass der Roboter 1110 dem Roboter 1130 nicht im Weg ist und/oder sich von dem Roboter 1130 weg bewegt, kann der Roboter 1130 seinen Hinweg (gestrichelter Pfeil ②) und dann seinen Rückweg (Pfeil ③) abschließen.
  • Die Roboter 1110 und 1130 der 11 und 12 können unabhängig voneinander arbeiten, sodass ihre Bewegungen nicht ständig für jede Aufgabe synchronisiert sein können. Dies wäre der Fall, wenn die Roboter Aufgaben ausführen, die beispielsweise von der Verfügbarkeit eingehender Teile oder vom Zustand einer anderen Maschine abhängen. Diese Situation macht die hier offenbarten Techniken - adaptives Bestimmen der Roboterpriorität in Echtzeit und Durchführen einer Geschwindigkeitsänderung nach Bedarf zum Verhindern von Kollisionen - äußerst vorteilhaft.
  • 13 ist ein Diagramm 1300 einer Ist-Werkzeugmittelpunktsbahn, die einer Referenzbahn überlagert ist, das darstellt, wie gemäß einer Ausführungsform der vorliegenden Offenbarung die Ist-Werkzeugmittelpunktsbahn der Referenzbahn sogar in engen Kurven und auch dann folgt, wenn die Robotergeschwindigkeit reduziert wird, um Hindernissen auszuweichen. Die im Diagramm 1300 aufgetragenen Daten stammen aus physikalischen Versuchen, die unter Verwendung der oben erörterten Online-Geschwindigkeitsänderungstechniken durchgeführt wurden, die auf eine Robotersteuerung programmiert waren, die einen Roboter wie in 8 steuerte.
  • Das Diagramm 1300 stellt einen Arbeitsraum mit einer x-Dimension auf einer horizontalen Achse 1310 und einer y-Dimension auf einer vertikalen Achse 1312 dar. Die Einheiten der Achsen 1310 und 1312 sind Millimeter (mm). Die z-Dimension ist nicht dargestellt und für die Erörterung unerheblich, da der Roboter beim Versuch so programmiert wurde, dass der Werkzeugmittelpunkt einer Art Zickzackform in einer x-y-Ebene folgt, wobei sich die Form in der y-Richtung einige Male hin- und herbewegt, während sie sich stetig in x-Richtung bewegt, und dann zum Anfangspunkt zurückkehrt. Diese Werkzeugmittelpunktsbahn wird durch einen Verlaufsgraphen 1320 dargestellt, der sowohl die Ist-Werkzeugmittelpunktsbahn als auch die (programmierte) Referenzbahn ist; die Ist-Bahn und die Referenzbahn gleichen sich derart, dass sie im Diagramm 1300 nicht unterschieden werden können.
  • Selbst wenn eine der Ecken der Bahn vergrößert wird, wie in einem zweiten Diagramm 1330, sind die Ist-Bahn und die Referenzbahn bei einem Verlaufsgraphen 1340 nicht zu unterscheiden, wobei der Verlaufsgraph 1340 der Teil des Verlaufsgraphen 1320 ist, der im Oval 1322 gezeigt wird. Die hochgetreue Bahnverfolgung ist erwiesen, obwohl vom Online-Geschwindigkeitsänderungsmodul während der Roboterbewegungen erhebliche und wiederholte Roboterverlangsamungen befohlen wurden. Ein drittes Diagramm 1350 zeigt den Geschwindigkeitsübersteuerungsprozentsatz (das in einen Prozentsatz umgewandelte Verlangsamungsverhältnis ds) gegenüber der Zeit für die Dauer der Bahnverfolgung der Diagramme 1300 und 1330. Die Verlangsamungen und Stopps zur Kollisionsvermeidung sind im Diagramm 1350 leicht ersichtlich. Der gestrichelte Verlaufsgraph im Diagramm 1350 gibt den Wert des Geschwindigkeitsübersteuerungsprozentsatzes (bei dem es sich um das in einen Prozentsatz umgewandelte Verlangsamungsverhältnis ds handelt) an, wie er vom OVM-Modul berechnet wurde, während der durchgezogene Verlaufsgraph den Wert des Geschwindigkeitsübersteuerungsprozentsatzes nach Durchgang durch ein Tiefpassfilter angibt.
  • Zusammengenommen veranschaulichen die Diagramme in 13, dass die Online-Geschwindigkeitsänderungstechniken der vorliegenden Offenbarung beim Aufrechterhalten einer programmierten (Referenz-) Werkzeugmittelpunktsbahn sehr effektiv sind, während die Robotergeschwindigkeit nach Bedarf vermindert wird, um nahe Begegnungen mit Arbeitsraumhindernissen zu vermeiden.
  • 14 ist ein Diagrammsatz, der den Roboter-Hindernis-Abstand und die Relativgeschwindigkeit gegen die Zeit aufträgt und auch den resultierenden OVM-Geschwindigkeitsübersteuerungsprozentsatz, oder das Verlangsamungsverhältnis, gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt. Ein Diagramm 1410 trägt den Roboter-Hindernis-Mindestabstand gegen die Zeit auf. Eine Kurve 1412 gibt den Wert des Mindestabstands an, wie er während eines Teils eines Versuchs unter Verwendung eines wirklichen Roboters und einer wirklichen, mit der Online-Geschwindigkeitsänderungstechnik programmierten Steuerung zunimmt, abnimmt und wieder zunimmt. In einem abgeschatteten Abschnitt 1414 des Diagramms 1410 ist der Roboter-Hindernis-Mindestabstand größer als der Mindestabstandsschwellenwert (0,5 m), der als Auslöser für die Online-Geschwindigkeitsänderungsberechnung verwendet wurde, wie in 9 dargestellt. In einem Abschnitt 1416 ist der Roboter-Hindernis-Mindestabstand kleiner als der Mindestabstandsschwellenwert. In einem abgeschatteten Abschnitt 1418 ist der Roboter-Hindernis-Mindestabstand wieder größer als der Mindestabstandsschwellenwert. Somit gibt der Roboter-Hindernis-Mindestabstand in den abgeschatteten Abschnitten 1414 und 1418 an, dass die Online-Geschwindigkeitsänderungsberechnung nicht durchgeführt werden muss.
  • Ein Diagramm 1420 trägt die Relativgeschwindigkeit zwischen Roboter und Hindernis gegen die Zeit auf. Eine Kurve 1422 gibt den Wert der Relativgeschwindigkeit an, wie sie sich im Verlauf eines Teils des Versuchs unter Verwendung des wirklichen Roboters und der wirklichen, mit der Online-Geschwindigkeitsänderungstechnik programmierten Steuerung ändert. Das Diagramm 1420 trägt Daten aus derselben experimentellen Erprobung wie der des Diagramms 1410 auf derselben Zeitskala auf. In einem abgeschatteten Abschnitt 1424 des Diagramms 1420 ist die Relativgeschwindigkeit zwischen Roboter und Hindernis größer als null. In einem Abschnitt 1426 ist die Relativgeschwindigkeit zwischen Roboter und Hindernis kleiner als null. In einem abgeschatteten Abschnitt 1428 ist die Relativgeschwindigkeit zwischen Roboter und Hindernis wieder größer als null. Erneut in Bezug auf das Verfahren von 9 gibt die Relativgeschwindigkeit zwischen Roboter und Hindernis in den abgeschatteten Abschnitten 1424 und 1428 somit an, dass die Online-Geschwindigkeitsänderungsberechnung nicht durchgeführt werden muss.
  • Die Kurve 1412 im Diagramm 1410 und die Kurve 1422 im Diagramm 1420 weisen beide das auf, was als Signalverhalten eines Halteglieds nullter Ordnung bekannt ist. Das ist dort, wo die Kurven einen kleinen horizontalen Schritt von einem Datenpunkt zum nächsten machen. Der Grund für dieses Verhalten liegt darin, dass das Robotersystem mit einer höheren Frequenz als das Wahrnehmungssystem (z.B. Kameras) läuft. Wenn daher das Robotersystem (wie etwa die Steuerung 750 von 7 oder die Steuerung 810 von 8) neue Roboterbefehle für einen Zeitschritt berechnet, aber die Kamera keinen aktualisierten Frame (keine neuen Hindernisdaten) bereitgestellt hat, behandelt das Robotersystem das Hindernis so, als befände es sich an der gleichen Position und als habe es die gleiche Geschwindigkeit wie im vorherigen Zeitschritt. Dieses Phänomen wirkt sich nicht nachteilig auf die Leistung des Robotersystems aus, wenn die Online-Geschwindigkeitsänderungstechniken verwendet werden.
  • Ein Diagramm 1430 trägt den OVM-Geschwindigkeitsübersteuerungsprozentsatz gegen die Zeit auf. Das Diagramm 1430 trägt Daten aus derselben experimentellen Erprobung wie der der Diagramme 1410 und 1420 auf derselben Zeitskala auf. Eine gestrichelte Kurve 1432 zeigt den Wert des Geschwindigkeitsübersteuerungsprozentsatzes (bei dem es sich um das in einen Prozentsatz umgewandelte Verlangsamungsverhältnis ds handelt), wie er vom OVM-Modul berechnet wird, während er sich im Laufe eines Teiles des Versuchs ändert. Eine durchgezogene Kurve 1434 gibt den Wert des Geschwindigkeitsübersteuerungsprozentsatzes nach Durchgang durch ein Tiefpassfilter an. Das Tiefpassfilter wird verwendet, um unstete Kennlinien des Geschwindigkeitsübersteuerungsprozentsatzes zu beseitigen, die unter bestimmten Bedingungen auftreten können, wie bei etwa 1,25 Sekunden im Diagramm 1430 beobachtet. Ein Abschnitt 1436 des Diagramms 1430 entspricht einem Zeitraum, in dem die Online-Geschwindigkeitsänderungsberechnungen sowohl vom Mindestabstand-Diagramm 1410 (dem Abschnitt 1416) und dem Relativgeschwindigkeit-Diagramm 1420 (dem Abschnitt 1426) angezeigt werden. Somit wird im Abschnitt 1436, wo der Roboter-Hindernis-Mindestabstand kleiner als der Schwellenwert ist und die Relativgeschwindigkeit kleiner als null ist, das Verlangsamungsverhältnis ds berechnet und hat einen Wert kleiner als eins. Die tiefpassgefilterte Version des ds-Signals (die Kurve 1434) wird dem Bewegungssystem in der Robotersteuerung bereitgestellt, um den Roboter zu verlangsamen oder zu stoppen, wodurch für das gewünschte Verhalten der Vermeidung einer Kollision zwischen Roboter und Hindernis gesorgt wird.
  • Die Diagramme von 14 zeigen deutlich, dass die Online-Geschwindigkeitsänderungstechnik der vorliegenden Offenbarung wirksam darin ist, eine Roboterverlangsamung (oder einen Stopp) nur nach Bedarf auf der Grundlage von Hindernisbedingungen im Arbeitsraum zu befehlen, einschließlich von sowohl Roboter-Hindernis-Mindestabstands- als auch Relativgeschwindigkeitsbedingungen. Diese Ergebnisse wurden bei Versuchen mit einem Menschen, der ein Objekt in dem Arbeitsraum mit dem Roboter handhabte, erhalten und beobachtet, wobei die Robotersteuerung mit den in 8 gezeigten Online-Geschwindigkeitsänderungstechniken programmiert war.
  • In der gesamten vorstehenden Erörterung werden verschiedene Computer und Steuerungen beschrieben und vorausgesetzt. Es muss verstanden werden, dass die Softwareanwendungen und -module dieser Computer und Steuerungen auf einer oder mehreren elektronischen Rechenvorrichtungen ausgeführt werden, die einen Prozessor und ein Speichermodul haben. Dies beinhaltet insbesondere einen Prozessor in jedem von der Robotersteuerung 750 und dem separaten Computer 740 von 7 sowie der Steuerung 810 von 8, zusammen mit den Wahrnehmungssystemen, wie oben erörtert. Insbesondere sind die Prozessoren in den Steuerungen und dem separaten Computer dazu eingerichtet, die oben ausführlich beschriebenen Online-Geschwindigkeitsänderungsberechnungen zur Kollisionsvermeidung zwischen Roboter und Hindernis durchzuführen, einschließlich der Technik zum Bestimmen, ob die Online-Geschwindigkeitsänderungsberechnung aktiviert werden soll, und der Technik zum Bestimmen einer Prioritätenfolge für Multi-Roboter-Systeme.
  • Zwar wurde oben eine Reihe beispielhafter Aspekte und Ausführungsformen der Verfahren und Systeme zur dynamischen Geschwindigkeitsänderung für ein Robotiksystem erörtert, doch erkennt der Fachmann Modifikationen, Permutationen, Hinzufügungen und Unterkombinationen hiervon. Es ist daher beabsichtigt, dass die folgenden beigefügten Patentansprüche und hiernach eingeführten Patentansprüche so ausgelegt werden, dass sie alle Modifikationen, Permutationen, Hinzufügungen und Unterkombinationen einschließen, die ihrem wahren Geist und Umfang entsprechen.

Claims (25)

  1. Verfahren zur adaptiven Robotergeschwindigkeitsänderung, wobei das Verfahren auf einem oder mehreren Rechenvorrichtungen ausgeführt wird und umfasst: Bereitstellen einer Roboter-Referenzbahn, die eine Roboterbewegung für eine von dem Roboter auszuführende Aufgabe definiert; Bereitstellen von Hindernisdaten, die Hindernisse in einem Roboterarbeitsraum beschreiben; Durchführen einer Robotergeschwindigkeitsänderungsberechnung, wenn durch die Hindernisdaten indiziert, umfassend das Bestimmen einer Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter und das Berechnen eines Roboterverlangsamungsverhältnisses als Mindestwert unter allen Gelenken der Gelenkgeschwindigkeitsgrenze geteilt durch eine Höchstgeschwindigkeit für jedes Gelenk; Berechnen einer befohlenen Roboterbewegung unter Verwendung des Roboterverlangsamungsverhältnisses und einer Soll-Roboterbewegung; Verwenden des Roboterverlangsamungsverhältnisses zum Berechnen einer neuen Position entlang der Roboter-Referenzbahn und Verwenden der neuen Position entlang der Roboter-Referenzbahn zum Berechnen der Soll-Roboterbewegung für einen nächsten Robotersteuerzyklus; und Bereitstellen der befohlenen Roboterbewegung an ein Steuermodul, das Bewegungen des Roboters steuert.
  2. Verfahren nach Anspruch 1, wobei die Soll-Roboterbewegung und die befohlene Roboterbewegung Vektoren sind, die einen Wert für jedes der Gelenke in Robotergelenkkoordinaten beinhalten, und die Roboter-Referenzbahn entweder eine in einem kartesischen Raum definierte Werkzeugmittelpunktsbahn oder eine in einem Gelenkraum definierte Roboterbewegung ist.
  3. Verfahren nach Anspruch 1, wobei das Durchführen einer Robotergeschwindigkeitsänderungsberechnung, wenn durch die Hindernisdaten indiziert, das Durchführen der Robotergeschwindigkeitsänderungsberechnung nur dann umfasst, wenn ein Roboter-Hindernis-Mindestabstand kleiner als ein vorbestimmter Schwellenwert ist und gleichzeitig eine Relativgeschwindigkeit zwischen Roboter und Hindernis kleiner als null ist.
  4. Verfahren nach Anspruch 1, wobei das Durchführen einer Robotergeschwindigkeitsänderungsberechnung das Durchführen einer Optimierungsberechnung umfasst, die eine Zielfunktion, die eine Abweichung einer berechneten Roboterbewegung von der Soll-Roboterbewegung minimiert, und eine Nebenbedingung der Ungleichheit aufweist, die vorschreibt, dass ein Betrag einer berechneten Gelenkgeschwindigkeit kleiner oder gleich der Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter ist.
  5. Verfahren nach Anspruch 1, wobei die Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter unter Verwendung einer Gleichung berechnet wird, die eine Roboterstoppzeit und vordefinierte Höchstwerte von Robotergelenkgeschwindigkeit, Beschleunigung und Ruck beinhaltet, und die Gelenkgeschwindigkeitsgrenze für jedes Gelenk so definiert ist, dass sie einen Mindestwert von null hat.
  6. Verfahren nach Anspruch 5, wobei die Roboterstoppzeit als Funktion der Hindernisdaten und Roboterfähigkeitsdaten berechnet wird.
  7. Verfahren nach Anspruch 1, wobei das Bereitstellen von Hindernisdaten das Bereitstellen der Hindernisdaten durch ein Wahrnehmungssystem umfasst, das eine oder mehrere Kameras oder Sensoren umfasst, die dazu eingerichtet sind, ein Hindernis im Arbeitsraum zu erkennen.
  8. Verfahren nach Anspruch 1, wobei das Verfahren zur adaptiven Robotergeschwindigkeitsänderung von zwei oder mehr Robotern mit sich überlappenden Bewegungsenveloppen im Roboterarbeitsraum verwendet wird, wobei die Steuerung jedes Roboters dessen Zustandsdaten allen anderen Robotersteuerungen übermittelt, damit sie als die Hindernisdaten verwendet werden, und wobei jedem Roboter ein Prioritätsrang für seine Geschwindigkeitsänderungsberechnungen bei jedem Robotersteuerzyklus zugewiesen wird.
  9. Verfahren nach Anspruch 8, wobei der Prioritätsrang auf der Grundlage eines Abstands von jedem der Roboter von einem Bahnüberlappungsbereich zugewiesen wird, wobei ein kleinerer Abstand zum Überlappungsbereich einer höheren Priorität entspricht, oder wobei der Prioritätsrang auf der Grundlage eines Beschleunigungs-/Verzögerungsvermögens der Roboter zugewiesen wird oder wobei der Prioritätsrang auf der Grundlage einer benutzerdefinierten Präferenz zugewiesen wird.
  10. Verfahren nach Anspruch 8, wobei die Robotergeschwindigkeitsänderungsberechnung der Reihe nach für jeden der Roboter in absteigender Prioritätenfolge beginnend mit einem Roboter mit der höchsten Priorität durchgeführt wird und wobei ein Wert des Roboterverlangsamungsverhältnisses für jeden Roboter derart nach oben begrenzt wird, dass er kleiner oder gleich dem Wert des Roboterverlangsamungsverhältnisses für einen Roboter mit einer unmittelbar höheren Priorität ist.
  11. Verfahren nach Anspruch 1, wobei die Robotergeschwindigkeitsänderungsberechnung von einem Prozessor in einem Computer durchgeführt wird, wobei das Roboterverlangsamungsverhältnis als Rückmeldung einem Folgemodul bereitgestellt wird, das auf dem Computer läuft, der die Soll-Roboterbewegung für den nächsten Robotersteuerzyklus berechnet, und die befohlene Roboterbewegung vom Computer einer Robotersteuerung bereitgestellt wird, die eine Regelung mit geschlossenem Regelkreis der Bewegungen des Roboters durchführt.
  12. Verfahren nach Anspruch 1, wobei die Robotergeschwindigkeitsänderungsberechnung von einem Prozessor in einer Robotersteuerung durchgeführt wird, wobei das Roboterverlangsamungsverhältnis einem Bewegungssystem bereitgestellt wird, das auf der Robotersteuerung läuft, wobei das Bewegungssystem die Soll-Roboterbewegung für den nächsten Robotersteuerzyklus unter Verwendung des Roboterverlangsamungsverhältnisses berechnet und wobei das Bewegungssystem die befohlene Roboterbewegung unter Verwendung des Roboterverlangsamungsverhältnisses und der Soll-Roboterbewegung berechnet und die befohlene Roboterbewegung einem Servosteuerungsmodul der Robotersteuerung bereitstellt, die eine Regelung mit geschlossenem Regelkreis der Bewegungen des Roboters durchführt.
  13. Verfahren zur adaptiven Robotergeschwindigkeitsänderung, wobei das Verfahren auf einem oder mehreren Rechenvorrichtungen ausgeführt wird und umfasst: Bereitstellen einer Roboter-Referenzbahn, die eine Roboterbewegung für eine von dem Roboter auszuführende Aufgabe definiert; Bereitstellen von Hindernisdaten, die Hindernisse in einem Roboterarbeitsraum beschreiben; Durchführen einer Robotergeschwindigkeitsänderungsberechnung, wenn durch die Hindernisdaten indiziert, umfassend das Bestimmen einer Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter und das Berechnen eines Roboterverlangsamungsverhältnisses als Mindestwert unter allen Gelenken der Gelenkgeschwindigkeitsgrenze geteilt durch eine Höchstgeschwindigkeit für jedes Gelenk, wobei die Robotergeschwindigkeitsänderungsberechnung eine Optimierungsberechnung umfasst, die eine Zielfunktion, die eine Abweichung einer berechneten Roboterbewegung von einer Soll-Roboterbewegung minimiert, und eine Nebenbedingung der Ungleichheit aufweist, die vorschreibt, dass ein Betrag einer berechneten Gelenkgeschwindigkeit kleiner oder gleich der Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter ist, und wobei die Gelenkgeschwindigkeitsgrenze für jedes Gelenk unter Verwendung einer Gleichung berechnet wird, die eine Roboterstoppzeit und vordefinierte Höchstwerte von Robotergelenkgeschwindigkeit, Beschleunigung und Ruck beinhaltet, und die Roboterstoppzeit als Funktion der Hindernisdaten und der Roboterfähigkeitsdaten berechnet wird; Berechnen einer befohlenen Roboterbewegung unter Verwendung des Roboterverlangsamungsverhältnisses und der Soll-Roboterbewegung; Verwenden des Roboterverlangsamungsverhältnisses zum Berechnen einer neuen Position entlang der Roboter-Referenzbahn und Verwenden der neuen Position entlang der Roboter-Referenzbahn zum Berechnen der Soll-Roboterbewegung für einen nächsten Robotersteuerzyklus; und Bereitstellen der befohlenen Roboterbewegung an ein Steuermodul, das Bewegungen des Roboters steuert.
  14. System für die adaptive Robotergeschwindigkeitsänderung, wobei das System umfasst: Mittel zum Parametrisieren einer Roboter-Referenzbahn aus einem Satz von Interpolationspunkten zu einer kontinuierlichen Referenzbahn, die als Funktion einer Bahnlänge definiert ist; Mittel zum Bereitstellen von Hindernisdaten, die Hindernisse in einem Roboterarbeitsraum beschreiben; Mittel zum Durchführen einer Robotergeschwindigkeitsänderungsberechnung, wenn durch die Hindernisdaten indiziert, umfassend das Bestimmen einer Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter und das Berechnen eines Roboterverlangsamungsverhältnisses als Mindestwert unter allen Gelenken der Gelenkgeschwindigkeitsgrenze geteilt durch eine Höchstgeschwindigkeit für jedes Gelenk; Mittel zum Berechnen einer befohlenen Roboterbewegung unter Verwendung des Roboterverlangsamungsverhältnisses und einer Soll-Roboterbewegung; Mittel zum Verwenden des Roboterverlangsamungsverhältnisses zum Berechnen einer neuen Position entlang einer Roboter-Referenzbahn und zum Verwenden der neuen Position entlang der Roboter-Referenzbahn zum Berechnen der Soll-Roboterbewegung für einen nächsten Robotersteuerzyklus; und einen Roboter, der mit den Mitteln zum Berechnen einer befohlenen Roboterbewegung in Verbindung steht, wobei der Roboter die befohlene Roboterbewegung ausführt.
  15. System nach Anspruch 14, wobei die Soll-Roboterbewegung und die befohlene Roboterbewegung Vektoren sind, die einen Wert für jedes der Gelenke in Robotergelenkkoordinaten beinhalten, und die Roboter-Referenzbahn entweder eine in einem kartesischen Raum definierte Werkzeugmittelpunktsbahn oder eine in einem Gelenkraum definierte Roboterbewegung ist.
  16. System nach Anspruch 14, wobei das Durchführen einer Robotergeschwindigkeitsänderungsberechnung, wenn durch die Hindernisdaten indiziert, das Durchführen der Robotergeschwindigkeitsänderungsberechnung nur dann umfasst, wenn ein Roboter-Hindernis-Mindestabstand kleiner als ein vorbestimmter Schwellenwert ist und gleichzeitig eine Relativgeschwindigkeit zwischen Roboter und Hindernis kleiner als null ist.
  17. System nach Anspruch 14, wobei das Durchführen einer Robotergeschwindigkeitsänderungsberechnung das Durchführen einer Optimierungsberechnung umfasst, die eine Zielfunktion, die eine Abweichung einer berechneten Roboterbewegung von der Soll-Roboterbewegung minimiert, und eine Nebenbedingung der Ungleichheit aufweist, die vorschreibt, dass ein Betrag einer berechneten Gelenkgeschwindigkeit kleiner oder gleich der Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter ist.
  18. System nach Anspruch 14, wobei die Gelenkgeschwindigkeitsgrenze für jedes Gelenk in dem Roboter unter Verwendung einer Gleichung berechnet wird, die eine Roboterstoppzeit und vordefinierte Höchstwerte von Robotergelenkgeschwindigkeit, Beschleunigung und Ruck beinhaltet, und die Gelenkgeschwindigkeitsgrenze für jedes Gelenk so definiert ist, dass sie einen Mindestwert von null hat.
  19. System nach Anspruch 18, wobei die Roboterstoppzeit als Funktion der Hindernisdaten und Roboterfähigkeitsdaten berechnet wird.
  20. System nach Anspruch 14, wobei das Mittel zum Bereitstellen von Hindernisdaten ein Wahrnehmungssystem ist, das eine oder mehrere Kameras oder Sensoren umfasst, die dazu eingerichtet sind, ein Hindernis im Arbeitsraum zu erkennen.
  21. System nach Anspruch 14, wobei das System zwei oder mehr Roboter mit sich überlappenden Bewegungsenveloppen im Roboterarbeitsraum umfasst und die Mittel zum Bereitstellen von Hindernisdaten Steuerungen anderer Roboter in dem System sind, wobei Roboterzustandsdaten von den Steuerungen der anderen Roboter als die Hindernisdaten verwendet werden und wobei jedem der Roboter ein Prioritätsrang für seine Geschwindigkeitsänderungsberechnungen bei jedem Robotersteuerzyklus zugewiesen wird.
  22. System nach Anspruch 21, wobei der Prioritätsrang auf der Grundlage eines Abstands von jedem der Roboter von einem Bahnüberlappungsbereich zugewiesen wird, wobei ein kleinerer Abstand zum Überlappungsbereich einer höheren Priorität entspricht, oder wobei der Prioritätsrang auf der Grundlage eines Beschleunigungs-/Verzögerungsvermögens der Roboter zugewiesen wird oder wobei der Prioritätsrang auf der Grundlage einer benutzerdefinierten Präferenz zugewiesen wird.
  23. System nach Anspruch 21, wobei die Robotergeschwindigkeitsänderungsberechnung der Reihe nach für jeden der Roboter in absteigender Prioritätenfolge beginnend mit einem Roboter mit der höchsten Priorität durchgeführt wird und wobei ein Wert des Roboterverlangsamungsverhältnisses für jeden Roboter derart nach oben begrenzt wird, dass er kleiner oder gleich dem Wert des Roboterverlangsamungsverhältnisses für einen Roboter mit einer unmittelbar höheren Priorität ist.
  24. System nach Anspruch 14, wobei das Mittel zum Durchführen einer Robotergeschwindigkeitsänderungsberechnung, das Mittel zum Berechnen einer befohlenen Roboterbewegung und das Mittel zum Verwenden des Roboterverlangsamungsverhältnisses zum Berechnen einer neuen Position ein Computer mit einem Prozessor sind, wobei das Roboterverlangsamungsverhältnis als Rückmeldung einem Folgemodul bereitgestellt wird, das auf dem Computer läuft, der die Soll-Roboterbewegung für den nächsten Robotersteuerzyklus berechnet, und die befohlene Roboterbewegung vom Computer einer Robotersteuerung bereitgestellt wird, die eine Regelung mit geschlossenem Regelkreis der Gelenkbewegungen des Roboters durchführt.
  25. System nach Anspruch 14, wobei das Mittel zum Durchführen einer Robotergeschwindigkeitsänderungsberechnung, das Mittel zum Berechnen einer befohlenen Roboterbewegung und das Mittel zum Verwenden des Roboterverlangsamungsverhältnisses zum Berechnen einer neuen Position ein Computer mit einem Prozessor sind, wobei das Roboterverlangsamungsverhältnis einem Bewegungssystem bereitgestellt wird, das auf der Robotersteuerung läuft, wobei das Bewegungssystem die Soll-Roboterbewegung für den nächsten Robotersteuerzyklus unter Verwendung des Roboterverlangsamungsverhältnisses berechnet und wobei das Bewegungssystem die befohlene Roboterbewegung unter Verwendung des Roboterverlangsamungsverhältnisses und der Soll-Roboterbewegung berechnet und die befohlene Roboterbewegung einem Servosteuerungsmodul der Robotersteuerung bereitstellt, die eine Regelung mit geschlossenem Regelkreis der Bewegungen des Roboters durchführt.
DE102022122663.8A 2021-10-15 2022-09-07 Verfahren zur dynamischen geschwindigkeitsändrung für ein robotiksystem Pending DE102022122663A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/502,699 2021-10-15
US17/502,699 US20230123463A1 (en) 2021-10-15 2021-10-15 Method of robotic system dynamic velocity modification

Publications (1)

Publication Number Publication Date
DE102022122663A1 true DE102022122663A1 (de) 2023-04-20

Family

ID=85773581

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022122663.8A Pending DE102022122663A1 (de) 2021-10-15 2022-09-07 Verfahren zur dynamischen geschwindigkeitsändrung für ein robotiksystem

Country Status (4)

Country Link
US (1) US20230123463A1 (de)
JP (1) JP2023059835A (de)
CN (1) CN115972190A (de)
DE (1) DE102022122663A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116494255B (zh) * 2023-06-30 2023-08-29 广州东焊智能装备有限公司 一种基于强化学习的空间机械臂路径规划系统
CN117428789B (zh) * 2023-12-19 2024-03-29 东莞市扬牧数控科技有限公司 一种数控机床关节速度计算方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2952301B1 (de) * 2014-06-05 2019-12-25 Softbank Robotics Europe Humanoider Roboter mit Kollisionsvermeidung und Bahnwiederherstellungsfähigkeiten
US10201901B2 (en) * 2015-01-29 2019-02-12 Canon Kabushiki Kaisha Robot apparatus, method for controlling robot, program, and recording medium
EP3115856A1 (de) * 2015-07-09 2017-01-11 Siemens Aktiengesellschaft Trajektorienbestimmungsverfahren für nebenzeitbewegungen
JP6576255B2 (ja) * 2016-01-25 2019-09-18 キヤノン株式会社 ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
US11597084B2 (en) * 2018-09-13 2023-03-07 The Charles Stark Draper Laboratory, Inc. Controlling robot torque and velocity based on context

Also Published As

Publication number Publication date
CN115972190A (zh) 2023-04-18
US20230123463A1 (en) 2023-04-20
JP2023059835A (ja) 2023-04-27

Similar Documents

Publication Publication Date Title
DE102022122663A1 (de) Verfahren zur dynamischen geschwindigkeitsändrung für ein robotiksystem
DE102017129665B3 (de) Kollisionsfreie Bewegungsplanung bei geschlossener Kinematik
DE112021001104T5 (de) Bewegungsplanungsverfahren mit kollisionsvermeidung für industrieroboter
DE69515464T2 (de) Verfahren zur planung/steuerung von roboterbewegungen
EP1366867B1 (de) Verfahren und Vorrichtung zum Vermeiden von Kollisionen zwischen Industrierobotern und anderen Objekten
DE102006007623B4 (de) Roboter mit einer Steuereinheit zum Steuern einer Bewegung zwischen einer Anfangspose und einer Endpose
DE102021120633A1 (de) Verfahren und system zur industrieroboter-bewegungssteuerung
DE102016002904B4 (de) Robotersystem
EP2500789B1 (de) Roboter und Verfahren zum Betreiben eines Roboters
EP3556521B1 (de) Bremswegüberwachung einer kinematik
EP2307935B1 (de) Positionsgesteuerter mechanismus und verfahren zur steuerung von in mehreren bewegungsfreiheitsgraden beweglichen mechanismen
DE10255037A1 (de) Verfahren und Vorrichtung zum Bearbeiten eines Werkstücks
DE10226140A1 (de) Verfahren und Vorrichtung zum Vermeiden von Kollisionen zwischen Industrierobotern und anderen Objekten
WO2021186068A1 (de) Ermittlung von sicherheitsbereichen um eine automatisiert arbeitende maschine
DE102022118934A1 (de) Ein Betonverteilermast und sein Kontrollverfahren
EP0530401A1 (de) Verfahren zum Auslösen von positionsbezogenen Schaltvorgängen während eines von einem Roboter oder einer Werkzeugmaschine ausgeführten Bearbeitungsvorganges
DE102012206952A1 (de) Verfahren und Vorrichtung zur Steuerung der Bewegung einer beweglichen Einheit im Raum
EP3225366B1 (de) Positionsüberwachung einer kinematik
EP2927764B1 (de) Numerische Steuerung mit Anzeige einer Vorschau bei Änderungen des Teileprogramms
EP4366917A1 (de) Verfahren und vorrichtung zur bestimmung einer zeitoptimalen trajektorie
DE19800552C2 (de) Verfahren zur Kommandosteuerung eines Manipulators
DE102017116788B4 (de) Roboter-Steuerungsvorrichtung und Verfahren zur Steuerung derselben
DE102016000850A1 (de) Steuern eines Roboterverbands
DE69428031T2 (de) Verfahren zur bezeichnung eines gebietes
DE102022102451A1 (de) System zur dynamischen bewegungsplanung