DE112020007414T5 - Robotersteuerung, robotersteuerverfahren und robotersteuerprogramm - Google Patents

Robotersteuerung, robotersteuerverfahren und robotersteuerprogramm Download PDF

Info

Publication number
DE112020007414T5
DE112020007414T5 DE112020007414.5T DE112020007414T DE112020007414T5 DE 112020007414 T5 DE112020007414 T5 DE 112020007414T5 DE 112020007414 T DE112020007414 T DE 112020007414T DE 112020007414 T5 DE112020007414 T5 DE 112020007414T5
Authority
DE
Germany
Prior art keywords
action
axis
robot
command
action command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112020007414.5T
Other languages
English (en)
Inventor
Nanase Haruo
Kiyoshi Maekawa
Koji Shiratsuchi
Takuya Okahara
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112020007414T5 publication Critical patent/DE112020007414T5/de
Granted 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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40476Collision, planning for collision free path

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)

Abstract

Eine Robotersteuerung (200) beinhaltet Folgendes: Achsenmotor-Steuereinheiten, die Achsenmotoren für Antriebsachsen eines Roboters (101) steuern; und eine Aktionsbefehlerzeugungseinheit (24), die einen ersten Aktionsbefehl für die Achsenmotoren mit der kürzesten Aktionszeit erzeugt, wenn der Roboter (101) von einem Aktionsstartpunkt zu einem Aktionszielpunkt bewegt wird, ohne ein Hindernis zu berücksichtigen, und aus den Achsen eine Achse mit der längsten Aktionszeit, wenn die Aktion gemäß dem ersten Aktionsbefehl durch geführt wird, als Hauptachse auswählt. Der erste Aktionsbefehl beinhaltet einen anderen Achsenbefehl, der ein Aktionsbefehl für eine andere Achse als die Hauptachse ist, und einen Hauptachsenbefehl, der ein Aktionsbefehl für die Hauptachse ist, und die Aktionsbefehlerzeugungseinheit (24) stellt den anderen Achsenbefehl ein, um eine Aktionszeit gemäß dem anderen Achsenbefehl zu reduzieren, und gibt an die Achsenmotor-Steuereinheiten einen zweiten Aktionsbefehl aus, der den Hauptachsenbefehl und den anderen Achsenbefehl nach der Einstellung beinhaltet und einer ersten Trajektorie entspricht, wenn bestimmt wird, dass die dem zweiten Aktionsbefehl entsprechende erste Trajektorie eine Trajektorie ist, die eine Kollision zwischen dem Roboter (101) und dem Hindernis vermeidet.

Description

  • Gebiet
  • Die vorliegende Erfindung betrifft eine Robotersteuerung, die einen Roboter steuert, ein Robotersteuerverfahren und ein Robotersteuerprogramm.
  • Allgemeiner Stand der Technik
  • Robotersteuerungen zum Steuern eines Roboters beinhalten eine, die einen Roboter steuert, der ein Werkstück mit einem Endeffektor hält und befördert. Die Robotersteuerung erzeugt eine Trajektorie, die eine Kollision zwischen einem Hindernis und einem beweglichen Objekt, wie etwa dem Werkstück oder dem Roboter einschließlich des Endeffektors, vermeidet und es dem Werkstück ermöglicht, sich entlang der erzeugten Trajektorie zu bewegen.
  • Eine in der Patentliteratur 1 beschriebene Steuerung erzeugt für jeden Motor eine Nockenkurve, welche die Aktionszeit des für die Beförderung eines Werkstücks verwendeten Motors bei der Bewegung des Werkstücks von einem Startpunkt zu einem Zielpunkt minimiert, und hält die Nockenkurve des Motors, der aus einer Vielzahl von Motoren am längsten betrieben wird. Die Steuerung legt als Passierpunkt eine Position fest, bei der das Werkstück unter den Positionen zwischen dem Startpunkt und dem Zielpunkt nicht mit einem Hindernis kollidiert, und stellt die Nockenkurve der übrigen Motoren so ein, dass die Nockenkurve den Passierpunkt passiert, wodurch die Aktionszeit für die Bewegung reduziert wird.
  • Entgegenhaltungsliste
  • Patentliteratur
  • Patentliteratur 1: Japanische Offenlegungsschrift Nr. 2014-37029
  • Kurzdarstellung
  • Technisches Problem
  • Da die Steuerung in der Technik der Patentliteratur 1 jedoch einen Aktionsbefehl für jede Achse so einstellt, dass das Werkstück den von einem Benutzer bezeichneten Passierpunkt passiert, besteht ein Problem, dass sich die Aktionszeit für die Bewegung erhöht, wenn der geeignete Passierpunkt nicht vom Benutzer bezeichnet wird.
  • Die vorliegende Offenbarung wurde in Anbetracht der vorstehenden Ausführungen gemacht und eine Aufgabe davon besteht darin, eine Robotersteuerung bereitzustellen, die in der Lage ist, die Aktionszeit für die Bewegung zu reduzieren, während eine Kollision zwischen einem Roboter und einem Hindernis auch dann vermieden wird, wenn ein geeigneter Passierpunkt nicht von einem Benutzer bezeichnet wird.
  • Lösung des Problems
  • Um das vorstehende Problem zu lösen und die Aufgabe zu lösen, umfasst eine Robotersteuerung eine Achsenmotor-Steuereinheit zum Steuern eines Achsenmotors, der eine entsprechende einer Vielzahl von Achsen antreibt, die Gelenke eines Roboters bewegt, und eine Speichereinheit zum Speichern von Roboterinformationen, Endpunktinformationen und Hindernisinformationen, wobei die Roboterinformationen Informationen über den Roboter sind, wobei die Endpunktinformationen Informationen über einen Aktionsstartpunkt, an dem eine spezifische Position des Roboters eine Aktion startet, und Informationen über einen Aktionszielpunkt, an dem die spezifische Position des Roboters die Aktion beendet, beinhalten, wobei die Hindernisinformationen Informationen über ein Hindernis in Bezug auf den Roboter sind. Die Robotersteuerung umfasst ferner eine Aktionsbefehlerzeugungseinheit zum: Erzeugen, auf der Grundlage der Roboterinformationen und der Endpunktinformationen, eines ersten Aktionsbefehls als Aktionsbefehl für den Achsenmotor, wobei der erste Aktionsbefehl eine erste Aktionszeit minimiert, wobei die erste Aktionszeit eine Aktionszeit der Bewegung ist, wenn die spezifische Position des Roboters vom Aktionsstartpunkt zum Aktionszielpunkt bewegt wird, ohne das Hindernis zu berücksichtigen; und zum Auswählen, aus den Achsen, einer Achse mit der längsten Aktionszeit, wenn die Aktion gemäß dem ersten Aktionsbefehl durchgeführt wird, wobei die ausgewählte Achse eine Hauptachse ist. Der erste Aktionsbefehl beinhaltet einen anderen Achsenbefehl und einen Hauptachsenbefehl, wobei der andere Achsenbefehl ein Aktionsbefehl für eine andere Achse als die Hauptachse ist und der Hauptachsenbefehl ein Aktionsbefehl für die Hauptachse ist. Die Aktionsbefehlerzeugungseinheit stellt den anderen Achsenbefehl auf der Grundlage der Roboterinformationen und der Endpunktinformationen so ein, dass eine zweite Aktionszeit reduziert wird, wobei die zweite Aktionszeit eine Aktionszeit gemäß dem anderen Achsenbefehl ist, und gibt an die Achsenmotor-Steuereinheit einen zweiten Aktionsbefehl aus, der den Hauptachsenbefehl und den anderen Achsenbefehl nach der Einstellung beinhaltet und einer ersten Trajektorie entspricht, wenn auf der Grundlage der Hindernisinformationen bestimmt wird, dass die dem zweiten Aktionsbefehl entsprechende erste Trajektorie eine Trajektorie ist, die eine Kollision zwischen dem Roboter und dem Hindernis vermeidet.
  • Vorteilhafte Effekte der Erfindung
  • Die Robotersteuerung gemäß der vorliegenden Offenbarung kann die Aktionszeit für die Bewegung unter Vermeidung der Kollision zwischen dem Roboter und dem Hindernis auch dann reduzieren, wenn der geeignete Passierpunkt nicht vom Benutzer bezeichnet wird.
  • Figurenliste
    • 1 ist eine Darstellung, welche eine schematische Konfiguration eines Robotersystems, das eine Robotersteuerung beinhaltet, gemäß einer ersten Ausführungsform veranschaulicht.
    • 2 ist eine Darstellung, die ein Beispiel für einen Roboter, der durch die Robotersteuerung gemäß der ersten Ausführungsform gesteuert wird, veranschaulicht.
    • 3 ist eine Darstellung, die eine Konfiguration der Robotersteuerung gemäß der ersten Ausführungsform veranschaulicht.
    • 4 ist ein Ablaufdiagramm, das eine Prozedur der Trajektorieerzeugungsverarbeitung durch die Robotersteuerung gemäß der ersten Ausführungsform veranschaulicht.
    • 5 ist ein Satz von Diagrammen zum Erläutern einer Hauptachse, die von der Robotersteuerung gemäß der ersten Ausführungsform ausgewählt ist.
    • 6 ist eine Darstellung zum Erläutern eines Passierbereichs, der durch die Robotersteuerung gemäß der ersten Ausführungsform festgelegt wurde.
    • 7 ist ein Ablaufdiagramm, das eine detaillierte Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der ersten Ausführungsform eine Trajektorie auf der Grundlage eines Passierbereichs erzeugt.
    • 8 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform einen temporären Aktionsbefehl für eine andere Achse erzeugt.
    • 9 ist eine Darstellung zum Erläutern eines temporären Relaispunktes, der verwendet wird, wenn die Robotersteuerung gemäß der ersten Ausführungsform den temporären Aktionsbefehl für die andere Achse erzeugt.
    • 10 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der ersten Ausführungsform einen Aktionsbefehl für die andere Achse einstellt.
    • 11 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform einen Beschleunigungs-/Verlangsamungszeitpunkt des Aktionsbefehls für die andere Achse verschiebt.
    • 12 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform einen Achsenwinkel des Aktionsbefehls für die andere Achse an dem temporären Relaispunkt verschiebt, um eine Aktionszeit zu reduzieren.
    • 13 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform einen Aktionsbefehl für die Hauptachse durch Verschieben eines Startzeitpunkts des Aktionsbefehls für die Hauptachse einstellt.
    • 14 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform den Aktionsbefehl für die Hauptachse durch Ändern der Maximalgeschwindigkeit der Hauptachse in Aktion einstellt.
    • 15 ist eine Darstellung, welche eine schematische Konfiguration eines Robotersystems, das eine Robotersteuerung beinhaltet, gemäß einer zweiten Ausführungsform veranschaulicht.
    • 16 ist eine Darstellung zum Erläutern eines Passierbereichs, der durch die Robotersteuerung gemäß der zweiten Ausführungsform festgelegt wurde.
    • 17 ist ein Ablaufdiagramm, das eine detaillierte Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform eine Trajektorie auf der Grundlage eines Passierbereichs erzeugt.
    • 18 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform einen temporären Aktionsbefehl für eine andere Achse erzeugt.
    • 19 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform einen Aktionsbefehl für die andere Achse einstellt.
    • 20 ist ein Satz von Diagrammen zum Erläutern von Aktionsbefehlen in einer kontinuierlichen Richtung, die von der Robotersteuerung gemäß der zweiten Ausführungsform integriert werden.
    • 21 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform einen Beschleunigungs-/Verlangsamungszeitpunkt des Aktionsbefehls für die andere Achse verschiebt, um eine Aktionszeit zu reduzieren.
    • 22 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform einen Achsenwinkel des Aktionsbefehls für die andere Achse an einem temporären Relaispunkt verschiebt, um die Aktionszeit zu reduzieren.
    • 23 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform einen Aktionsbefehl für eine Hauptachse durch Verschieben eines Startzeitpunkts des Aktionsbefehls für die Hauptachse einstellt.
    • 24 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Aktionsbefehl für die Hauptachse durch kollektives Ändern der Maximalgeschwindigkeit der Hauptachse in Aktion einstellt.
    • 25 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Aktionsbefehl für die Hauptachse durch lokales Ändern der Maximalgeschwindigkeit der Hauptachse in Aktion einstellt.
    • 26 ist eine Darstellung zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform einen Passierbereich in einen Raum ändert, der um einen spezifischen Abstand von einem Interferenzpunkt entfernt ist.
    • 27 ist eine Darstellung zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform einen Passierbereich in eine Position ändert, die kein Hindernis darin beinhaltet.
    • 28 ist ein Ablaufdiagramm, das eine Prozedur der Trajektorieerzeugungsverarbeitung durch eine Robotersteuerung gemäß einer dritten Ausführungsform veranschaulicht.
    • 29 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der dritten Ausführungsform einen Aktionsbefehl für eine andere Achse einstellt.
    • 30 ist ein Diagramm zum Erläutern eines Aktionsbefehls für jeden von der Robotersteuerung gemäß der dritten Ausführungsform verwendeten Achsenmotor.
    • 31 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der dritten Ausführungsform den Aktionsbefehl für alle Achsen einstellt.
    • 32 ist eine Darstellung, die eine Hardwarekonfiguration der Robotersteuerung gemäß der ersten bis dritten Ausführungsform veranschaulicht.
  • Beschreibung der Ausführungsformen
  • Nachfolgend werden eine Robotersteuerung, ein Robotersteuerverfahren und ein Robotersteuerprogramm gemäß Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf die Zeichnungen beschrieben.
  • Erste Ausführungsform.
  • 1 ist eine Darstellung, welche eine schematische Konfiguration eines Robotersystems, das eine Robotersteuerung beinhaltet, gemäß einer ersten Ausführungsform veranschaulicht. Ein Robotersystem 100 beinhaltet einen Roboter 101 und eine Robotersteuerung 200, die den Roboter 101 steuert. Der Roboter 101 ist eine Vorrichtung, die ein Werkstück 103 hält und befördert und einen Endeffektor 102 beinhaltet, der das Werkstück 103 hält. Der Roboter 101 wird zur Herstellung eines Produkts oder dergleichen verwendet.
  • Das Werkstück 103 ist ein vom Roboter 101 zu beförderndes Objekt. Die Robotersteuerung 200 ist ein Computer, der jeden in dem Roboter 101 enthaltenen Motor steuert, um eine Aktion jeder mit dem entsprechenden Motor verbundenen Welle zu steuern. Die Robotersteuerung 200 steuert die Position des Endeffektors 102 durch Steuern der Aktion der Welle des Roboters 101.
  • Es ist anzumerken, dass in der folgenden Beschreibung der Endeffektor 102, der das Werkstück 103 hält, als der Endeffektor 102 bezeichnet wird. Die Robotersteuerung 200 steuert daher den Roboter 101 so, dass der Roboter 101, der den Endeffektor 102 beinhaltet, nicht mit einem Hindernis 31 kollidiert. In der folgenden Beschreibung wird eine Kollision zwischen dem Endeffektor 102 und dem Hindernis 31 als ein Beispiel für eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 beschrieben. Das heißt, die Robotersteuerung 200 der ersten Ausführungsform steuert den Roboter 101 so, dass der Endeffektor 102 nicht mit dem Hindernis 31 kollidiert. Insbesondere steuert die Robotersteuerung 200 den Roboter 101 so, dass der Endeffektor 102 nicht mit dem Hindernis 31 kollidiert, wenn sich der Endeffektor 102 von einem Aktionsstartpunkt PS zu einem Aktionszielpunkt PG bewegt.
  • 2 ist eine Darstellung, die ein Beispiel für den Roboter, der durch die Robotersteuerung gemäß der ersten Ausführungsform gesteuert wird, veranschaulicht. 2 veranschaulicht Achsen des Roboters 101. Obwohl 2 einen Fall veranschaulicht, in dem der Roboter 101 sechs Achsen aufweist, von einer ersten Achse A1 bis zu einer sechsten Achse A6, kann die Anzahl der Achsen des Roboters 101 fünf oder weniger oder sieben oder mehr betragen. Der Roboter 101 bewegt den Endeffektor 102 durch Betreiben der ersten Achse A1 bis zur sechsten Achse A6.
  • 3 ist eine Darstellung, die eine Konfiguration der Robotersteuerung gemäß der ersten Ausführungsform veranschaulicht. Die Robotersteuerung 200 beinhaltet eine Hindernismodellspeichereinheit 21, eine Robotermodellspeichereinheit 22, eine Endpunktspeichereinheit 23, eine Aktionsbefehlerzeugungseinheit 24 und Achsenmotor-Steuereinheiten. Der Roboter 101 beinhaltet Achsenmotoren und Achsencodierer.
  • Die Anzahl der in der Robotersteuerung 200 angeordneten Achsenmotor-Steuereinheiten entspricht der Anzahl der Achsen des Roboters 101. Die Robotersteuerung 200 beinhaltet daher sechs der Achsenmotor-Steuereinheiten, das heißt eine erste Achsenmotor-Steuereinheit B1 bis sechste Achsenmotor-Steuereinheit B6. Es ist anzumerken, dass 3 die Veranschaulichung einer zweiten Achsenmotor-Steuereinheit B2 bis fünften Achsenmotor-Steuereinheit B5 weglässt.
  • Die Anzahl der in dem Roboter 101 angeordneten Achsenmotoren entspricht der Anzahl der Achsen des Roboters 101. Der Roboter 101 beinhaltet daher sechs der Achsenmotoren, das heißt einen ersten Achsenmotor M1 bis sechsten Achsenmotor M6. Es ist anzumerken, dass 3 die Veranschaulichung eines zweiten Achsenmotors M2 bis fünften Achsenmotors M5 weglässt.
  • Die Anzahl der in dem Roboter 101 angeordneten Achsencodierer entspricht der Anzahl der Achsen des Roboters 101. Der Roboter 101 beinhaltet daher sechs der Achsencodierer, das heißt einen ersten Achsencodierer E1 bis sechsten Achsencodierer E6. Es ist anzumerken, dass 3 die Veranschaulichung eines zweiten Achsencodierers E2 bis fünften Achsencodierers E5 weglässt.
  • Die Hindernismodellspeichereinheit 21 speichert Hindernisinformationen aller in dem Robotersystem 100 beinhalteten Hindernisse, wie des Hindernisses 31. Die Hindernisinformationen als Hindernismodell sind Informationen, die eine Form und eine Position des Hindernisses 31 angeben. Ein Beispiel für die Hindernisinformationen sind dreidimensionale computergestützte Konstruktionsdaten (three dimensional computer aided design data - 3D-CAD-Daten) des Hindernisses 31. Die Hindernisinformationen können zudem Form- und Positionsinformationen eines einfachen Modells sein, welches das Hindernis 31 umhüllt.
  • Die Robotermodellspeichereinheit 22 speichert Roboterinformationen, die Informationen bezüglich des Roboters 101 sind. Die Roboterinformationen beinhalten mindestens Forminformationen, die eine Form des Roboters 101 angeben, Abmessungsinformationen, welche die Abmessungen des Roboters 101 angeben, die Maximaldrehgeschwindigkeit, die durch die Achsenmotoren erreicht werden kann, Drehmomentbeschränkungsinformationen, die Information über die Drehmomentbeschränkungen der Achsenmotoren sind, und Informationen über einen Winkelbereich eines Drehwinkels, der durch die Achsenmotoren erreicht werden kann.
  • Die Endpunktspeichereinheit 23 speichert Endpunktinformationen, die Informationen sind, die sich auf den Aktionsstartpunkt PS und den Aktionszielpunkt PG beziehen. Die Endpunktinformationen beinhalten Koordinaten des Endeffektors 102, Informationen über eine Lage des Endeffektors 102 und Informationen über einen Gelenkwinkel jeder Achse des Roboters 101 am Aktionsstartpunkt PS. Die Endpunktinformationen beinhalten ferner Koordinaten des Endeffektors 102, Informationen über eine Lage des Endeffektors 102 und Informationen über einen Gelenkwinkel jeder Achse des Roboters 101 am Aktionszielpunkt PS.
  • Die Aktionsbefehlerzeugungseinheit 24 ist mit der Hindernismodellspeichereinheit 21, der Robotermodellspeichereinheit 22 und der Endpunktspeichereinheit 23 verbunden. Die Aktionsbefehlerzeugungseinheit 24 liest die Hindernisinformationen aus der Hindernismodellspeichereinheit 21 aus, liest die Roboterinformationen aus der Robotermodellspeichereinheit 22 aus und liest die Endpunktinformationen aus der Endpunktspeichereinheit 23 aus.
  • Die Aktionsbefehlerzeugungseinheit 24 erzeugt auf der Grundlage der Hindernisinformationen, der Roboterinformationen und der Endpunktinformationen eine Trajektorie des Endeffektors 102, wenn er sich vom Aktionsstartpunkt PS zu dem bezeichneten Aktionszielpunkt PG bewegt, während dem in dem Robotersystem 100 platzierten Hindernis 31 ausgewichen wird. Insbesondere erzeugt die Aktionsbefehlerzeugungseinheit 24 auf der Grundlage der Roboterinformation und der Endpunktinformation eine Trajektorie, welche die Beschränkungen des Roboters 101 erfüllt, und bestimmt auf der Grundlage der erzeugten Trajektorie und der Hindernisinformationen, ob die Trajektorie mit dem Hindernis 31 kollidiert oder nicht. Nachfolgend werden die Hindernisinformationen, die Roboterinformationen und die Endpunktinformationen als Aktionsinformationen bezeichnet. Die Aktionsbefehlerzeugungseinheit 24 gibt einen Aktionsbefehl für die Achsenmotoren entsprechend der erzeugten Trajektorie an die Achsenmotor-Steuereinheiten aus.
  • Die Achsenmotoren des Roboters 101 sind mit den Achsencodierern verbunden. Die Achsencodierer erfassen in Echtzeit Gelenkwinkeldaten, die Daten des Gelenkwinkels der Achsenmotoren sind, und melden die Gelenkwinkeldaten an die Achsenmotor-Steuereinheiten zurück.
  • Die Achsenmotor-Steuereinheiten führen eine Rückmeldungssteuerung an den Achsenmotoren unter Verwendung der von den Achsencodierern übertragenen Gelenkwinkeldaten durch.
  • Als Nächstes wird eine Prozedur beschrieben, in welcher die Aktionsbefehlerzeugungseinheit 24 die Trajektorie des Endeffektors 102 erzeugt. 4 ist ein Ablaufdiagramm, das die Prozedur der Trajektorieerzeugungsverarbeitung durch die Robotersteuerung gemäß der ersten Ausführungsform veranschaulicht.
  • Die Aktionsbefehlerzeugungseinheit 24 liest die Aktionsinformationen aus (Schritt S110). Die Aktionsinformationen beinhalten die Hindernisinformationen, die Roboterinformationen und die Endpunktinformationen. Insbesondere liest die Aktionsbefehlerzeugungseinheit 24 die Hindernisinformationen aus der Hindernismodellspeichereinheit 21 aus, liest die Roboterinformationen aus der Robotermodellspeichereinheit 22 aus und liest die Endpunktinformationen aus der Endpunktspeichereinheit 23 aus. Die Endpunktinformationen beinhalten die Gelenkwinkel der Achsen des Roboters 101 am Aktionsstartpunkt PS und am Aktionszielpunkt PG.
  • Als Nächstes erzeugt die Aktionsbefehlerzeugungseinheit 24 erzeugt eine Gelenkinterpolationstrajektorie R0 vom Aktionsstartpunkt PS zum Aktionszielpunkt PG (Schritt S120). Die Gelenkinterpolationstrajektorie R0 ist eine Trajektorie, welche die Aktionszeit des Roboters 101 minimiert, wenn sich der Endeffektor 102 von dem Aktionsstartpunkt PS zu dem Aktionszielpunkt PG bewegt, ohne das Hindernis 31 zu berücksichtigen.
  • Die Aktionsbefehlerzeugungseinheit 24 erzeugt für jede Achse einen Aktionsbefehl auf der Grundlage der Gelenkinterpolationstrajektorie R0. Der Aktionsbefehl, welcher der Gelenkinterpolationstrajektorie R0 entspricht, ist ein erster Aktionsbefehls. Der erste Aktionsbefehl beinhaltet einen anderen Achsenbefehl, der ein Aktionsbefehl für eine andere Achse ist, und einen Hauptachsenbefehl, der ein Aktionsbefehl für eine Hauptachse ist. Die Aktionszeit, wenn der Roboter 101 gemäß dem ersten Aktionsbefehl betrieben wird, ist eine erste Aktionszeit.
  • Die erste Ausführungsform beschreibt einen Fall, in dem die Robotersteuerung 200 einen Geschwindigkeitsbefehlswert als Aktionsbefehl für jede im Roboter 101 beinhaltete Achse verwendet. Die Aktionsbefehlerzeugungseinheit 24 legt die Gelenkinterpolationstrajektorie R0 als eine temporäre Trajektorie fest.
  • Als Nächstes wählt die Aktionsbefehlerzeugungseinheit 24 aus den Achsen die Hauptachse aus, die den größten Beitrag zur Aktionszeit auf der temporären Trajektorie aufweist. Das heißt, die Aktionsbefehlerzeugungseinheit 24 wählt aus den Achsen die Hauptachse aus, welche die Aktionszeit auf der temporären Trajektorie bestimmt (Schritt S130). Die Aktionsbefehlerzeugungseinheit 24 wählt ferner den Aktionsbefehl für die Hauptachse aus den Aktionsbefehlen für die Achsen aus, die in der temporären Trajektorie beinhaltet sind.
  • In der ersten Ausführungsform ist die Hauptachse als eine Achse mit der größten Winkeländerung vom Aktionsstartpunkt PS zum Aktionszielpunkt PG in Bezug auf die Maximalgeschwindigkeit, die durch die Achsenmotoren ausgegeben werden kann, definiert. Die Hauptachse kann als eine Achse betrachtet werden, die am meisten zur Aktionszeit beiträgt, das heißt eine Achse mit der längsten Aktionszeit in einem Fall, in dem die Aktion in kürzester Zeit vom Aktionsstartpunkt PS zum Aktionszielpunkt PG durchgeführt wird, ohne das Hindernis 31 zu berücksichtigen.
  • Die Hauptachse ist eine Achse, bei der die Winkelgeschwindigkeit des die Achse antreibenden Achsenmotors mit der Maximalgeschwindigkeit zusammenfällt, die durch den Achsenmotor bei der Aktion erreicht werden kann, wobei die Winkeländerung mindestens einer Achse ausreichend groß ist, wenn die Aktion in der kürzesten Zeit vom Aktionsstartpunkt PS zum Aktionszielpunkt PG durchgeführt wird, ohne das Hindernis 31 zu berücksichtigen. Bei kleinen Winkeländerungen aller Achsen ist die Hauptachse eine Achse, bei der ein Verhältnis der Maximalgeschwindigkeit, die während der Aktion erreicht wird, in Bezug auf die Maximalgeschwindigkeit, die durch den Achsenmotor erreicht werden kann, kleiner als eins ist und maximal ist. Es ist anzumerken, dass in der folgenden Beschreibung andere Achsen als die Hauptachse als andere Achsen bezeichnet werden können.
  • 5 ist ein Satz von Diagrammen zum Erläutern der Hauptachse, die von der Robotersteuerung gemäß der ersten Ausführungsform ausgewählt ist. Hier wird die Hauptachse in einem Fall beschrieben, in dem der Roboter 101 drei Achsen beinhaltet. 5 veranschaulicht eine Änderung der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert für jede der Hauptachse und der anderen Achsen in einem Fall, in dem der Roboter 101 auf der Gelenkinterpolationstrajektorie R0 betrieben wird.
  • Nachfolgend wird die Hauptachse oder werden die anderen Achsen als eine Achse „j“ bezeichnet. Die Hauptachse kann zudem als ein Hauptachse „j'“ bezeichnet werden. 5 veranschaulicht ein Diagramm der Winkelgeschwindigkeit für die Hauptachse „j'“, ein Diagramm der Winkelgeschwindigkeit für eine andere Achse j_b, die eine andere Achse als die Hauptachse ist, und ein Diagramm der Winkelgeschwindigkeit für eine andere Achse j_c, die eine andere Achse als die Hauptachse „j'“ ist. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit der Achse dar.
  • In 5 ist das obere Diagramm das Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert für die Hauptachse „j'“, ist das mittlere Diagramm das Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert für die andere Achse j_b und ist das untere Diagramm das Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert für die andere Achse j_c. Die Aktionsbefehlerzeugungseinheit 24 wählt als die Hauptachse „j'“ die Achse „j“ aus, die den folgenden Ausdruck (1) erfüllt.

    [Ausdruck 1] j ' = m a x j | ( θ G j θ s j ) / v _ m a x j |
    Figure DE112020007414T5_0001
  • Hier ist „θsj“ der Winkel der Achse „j“ am Aktionsstartpunkt PS, ist „θGj“ der Winkel der Achse „j“ am Aktionszielpunkt PG und ist „v_maxj“ die Maximalgeschwindigkeit, die durch den Achsenmotor der Achse „j“ erreicht werden kann. Ausdruck (1) ist ein Ausdruck zum Auswählen der Hauptachse „j'“, welche die Aktionszeit einer temporären Aktion bestimmt. Die rechte Seite des Ausdrucks (1) gibt an, wie groß eine Änderung des Winkels der Achse „j“ in Bezug auf die Maximalgeschwindigkeit v_maxj ist, die durch den Achsenmotor der Achse „j“ erreicht werden kann. Die Achse „j“ mit dem Maximalwert, der erhalten wird, wenn die Winkeländerung durch die Maximalgeschwindigkeit v_maxj dividiert wird, ist die Hauptachse „j'“. Das heißt, die Achse mit dem größten Verhältnis der Winkeländerung der Achse „j“ zur Maximalgeschwindigkeit v_maxj, die vom Achsenmotor ausgegeben werden kann, ist die Hauptachse.
  • Wie in dem Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert für die Hauptachse „j'“ veranschaulicht, fällt bei ausreichend großer Winkeländerung der Hauptachse „j'“ die Maximalgeschwindigkeit v-j' des Achsenmotors der Hauptachse „j'“, die während der Aktion erreicht wird, mit der Maximalgeschwindigkeit v_maxj' zusammen, die durch den Achsenmotor der Hauptachse „j'“ erreicht werden kann. Hier ist „-“ ein Überstrich und ist über „vj'“ angebracht. Gleichermaßen sind alle „-“ in der folgenden Beschreibung ein Überstrich. Die Aktionsbefehlerzeugungseinheit 24 berechnet die Maximalgeschwindigkeit vj- des Motors, die durch die andere Achse als die Hauptachse „j'“ in der temporären Trajektorie erreicht wird, auf der Grundlage des folgenden Ausdrucks (2).

    [Ausdruck 2] v ¯ j = ( θ G j θ s j ) ( θ G j ' θ s j ' ) * v _ m a x j '
    Figure DE112020007414T5_0002
  • In 5 ist die Maximalgeschwindigkeit, die durch den Achsenmotor der anderen Achse j_b erreicht werden kann, durch „v_maxj_b“ angegeben und ist die Maximalgeschwindigkeit, die durch den Achsenmotor der anderen Achse j_c erreicht werden kann, durch „v_maxj_c“ angegeben. Darüber hinaus ist die Maximalgeschwindigkeit der anderen Achse j_b, die während der Aktion der anderen Achse j_b auf der temporären Trajektorie erreicht wird, durch die Maximalgeschwindigkeit v-j_b angegeben und ist die Maximalgeschwindigkeit der anderen Achse j_c, die während der Aktion der anderen Achse j_c auf der temporären Trajektorie erreicht wird, durch die Maximalgeschwindigkeit v-j_c angegeben.
  • Die Aktionsbefehlerzeugungseinheit 24 initialisiert nach dem Auswählen des Aktionsbefehls für die Hauptachse einen ersten Wiederholungszähler. Das heißt, die Aktionsbefehlerzeugungseinheit 24 ersetzt i=1 in den ersten Wiederholungszähler (Schritt S140). Der erste Wiederholungszähler ist ein Zähler, der die Anzahl der Wiederholungen zählt, wenn die Verarbeitung des Änderns eines Passierbereichs, was später beschrieben wird, wiederholt wird. Der erste Wiederholungszähler wird in der Verarbeitung des Schrittes S220 verwendet.
  • Als Nächstes legt die Aktionsbefehlerzeugungseinheit 24 Kandidaten für den Passierbereich fest und bezeichnet den Passierbereich aus den Kandidaten, den eine spezifische Position des Endeffektors 102 passiert (Schritt S150).
  • 6 ist eine Darstellung zum Erläutern des Passierbereichs, der durch die Robotersteuerung gemäß der ersten Ausführungsform festgelegt wurde. In 6 sind ein Passierbereich 601 und ein Passierbereich 603 als Beispiele für die Kandidaten für den Passierbereich veranschaulicht.
  • Die Kandidaten für den Passierbereich werden von einem Benutzer auf der Grundlage der Platzierung des Hindernisses 31 im Voraus festgelegt. Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 den Kandidaten für den Passierbereich auf der Grundlage der von der Hindernismodellspeichereinheit 21 erfassten Hindernisinformationen auf einen Bereich, in dem das Hindernis 31 nicht vorhanden ist, festlegen kann.
  • Beim Bezeichnen des Passierbereichs bezeichnet die Aktionsbefehlerzeugungseinheit 24 einen Passierbereich aus einer Vielzahl von Kandidaten für den Passierbereich. Hier wird ein Fall beschrieben, bei dem die Aktionsbefehlerzeugungseinheit 24 den Passierbereich 601 bezeichnet. Die Aktionsbefehlerzeugungseinheit 24 erzeugt eine Trajektorie 602, auf der die spezifische Position des Endeffektors 102 zu einem beliebigen Zeitpunkt eine beliebige Position im Passierbereich 601 passiert.
  • Die Aktionsbefehlerzeugungseinheit 24 erzeugt die Passierbereiche 601 und 603 und die Trajektorie 602 für einen Roboteraktionsraum in Bezug auf den gesamten Roboter 101, das heißt in einem XYZ-Raum. Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 die Passierbereiche 601 und 603 und die Trajektorie 602 für einen Gelenkwinkelraum in Bezug auf den Gelenkwinkel des Roboters 101 erzeugen kann.
  • Die Aktionsbefehlerzeugungseinheit 24 initialisiert einen zweiten Wiederholungszähler nach dem Bezeichnen des Passierbereichs. Das heißt, die Aktionsbefehlerzeugungseinheit 24 ersetzt i2=1 in den zweiten Wiederholungszähler (Schritt S160). Der zweite Wiederholungszähler ist ein Zähler, der die Anzahl der Wiederholungen zählt, wenn die Verarbeitung des Erzeugens einer Trajektorie für einen Passierbereich wiederholt wird. Der zweite Wiederholungszähler wird in der Verarbeitung des Schrittes S210 verwendet.
  • Die Aktionsbefehlerzeugungseinheit 24 erzeugt nach der Initialisierung des zweiten Wiederholungszählers eine Trajektorie auf der Grundlage des im Schritt S150 ausgewählten Passierbereichs. In diesem Fall erzeugt die Aktionsbefehlerzeugungseinheit 24 auf der Grundlage der erzeugten Trajektorie einen Aktionsbefehl für die andere Achse als die Hauptachse und einen Aktionsbefehl für die Hauptachse.
  • In einem Fall, in dem die Aktionszeit des Aktionsbefehls für die andere Achse länger ist als die erste Aktionszeit, stellt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die andere Achse ein, um eine von der Gelenkinterpolationstrajektorie R0 abweichende Trajektorie zu erzeugen, wodurch die Aktionszeit für die erzeugte Trajektorie reduziert wird (Schritt S170). Die dem Aktionsbefehl für die andere Achse entsprechende Aktionszeit des Roboters 101 ist eine zweite Aktionszeit. In Schritt S170 stellt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die andere Achse ein, um die zweite Aktionszeit zu reduzieren.
  • Bei dem Aktionsbefehl, der den Aktionsbefehl für die andere Achse, der eingestellt wurde, und den Aktionsbefehl für die Hauptachse, der nicht eingestellt wurde, beinhaltet, handelt es sich um einen zweiten Aktionsbefehl. Eine dem zweiten Aktionsbefehl entsprechende Trajektorie ist eine erste Trajektorie. Nach dem Einstellen des Aktionsbefehls für die andere Achse erzeugt die Aktionsbefehlerzeugungseinheit 24 eine Trajektorie unter Verwendung des Aktionsbefehls, der eingestellt wurde. Diese Trajektorie kann eine Trajektorie sein, die dem Hindernis 31 ausweicht.
  • Außerdem bestimmt die Aktionsbefehlerzeugungseinheit 24, ob die Trajektorie, die erzeugt wurde, eine spezifische Bedingung erfüllt oder nicht. Insbesondere bestimmt die Aktionsbefehlerzeugungseinheit 24, ob die erzeugte Trajektorie, bei der es sich um die Trajektorie handelt, die erzeugt wurde, dem Hindernis 31 ausweicht oder nicht, auf der Grundlage der Hindernisinformationen (Schritt S180). Es ist anzumerken, dass, da die Gelenkinterpolationstrajektorie R0 die Trajektorie ist, die der kürzesten Aktionszeit entspricht, die Aktionszeit auf der erzeugten Trajektorie nicht kürzer als diejenige auf der Gelenkinterpolationstrajektorie R0 ist. Da nur die Einstellung des Aktionsbefehls für die andere Achse hier vorgenommen wird, ist die Aktionszeit auf der erzeugten Trajektorie zudem nicht länger als diejenige auf der Gelenkinterpolationstrajektorie R0. Das heißt, an diesem Punkt ist die Aktionszeit auf der erzeugten Trajektorie gleich der Aktionszeit auf der Gelenkinterpolationstrajektorie R0, bei der es sich um die kürzeste Aktionszeit handelt.
  • Weicht die erzeugte Trajektorie dem Hindernis 31 aus (Ja in Schritt S180), geht die Aktionsbefehlerzeugungseinheit 24 zur Verarbeitung des Schrittes S260 über. Das heißt, die Aktionsbefehlerzeugungseinheit 24 gibt den Aktionsbefehl entsprechend der erzeugten Trajektorie mit der kürzesten Aktionszeit aus. Die in der Aktionsbefehlerzeugungseinheit 24 gespeicherte erzeugte Trajektorie ist hier die erzeugte Trajektorie entsprechend der kürzesten Aktionszeit. Die Aktionsbefehlerzeugungseinheit 24 gibt daher ausgehend von dem zweiten Aktionsbefehl den Aktionsbefehl aus, welcher der ersten Trajektorie entspricht, die dem Hindernis 31 ausweicht.
  • Interferiert die erzeugte Trajektorie mit dem Hindernis 31 (Nein in Schritt S180), stellt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die Hauptachse ein und erzeugt unter Verwendung des Aktionsbefehls, der eingestellt wurde, eine Trajektorie (Schritt S190). Bei dem Aktionsbefehl, der den Aktionsbefehl für die andere Achse, der eingestellt wurde, und den Aktionsbefehl für die Hauptachse, der eingestellt wurde, beinhaltet, handelt es sich um einen dritten Aktionsbefehl. Die Aktionszeit des Roboters 101 gemäß dem dritten Aktionsbefehl ist eine dritte Aktionszeit und eine dem dritten Aktionsbefehl entsprechende Trajektorie ist eine zweite Trajektorie. Nachfolgend werden die in den Schritten S170 und S190 eingestellten Aktionsbefehle als eingestellte Aktionsbefehle bezeichnet.
  • Die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob die erzeugte Trajektorie eine spezifische Bedingung erfüllt oder nicht. Insbesondere erzeugt die Aktionsbefehlerzeugungseinheit 24 eine Trajektorie auf der Grundlage der eingestellten Aktionsbefehle für die andere Achse und die Hauptachse. Die Aktionsbefehlerzeugungseinheit 24 bestimmt dann, ob die erzeugte Trajektorie dem Hindernis 31 ausweicht oder nicht und „die Aktionszeit auf der erzeugten Trajektorie=der Aktionszeit auf der Gelenkinterpolationstrajektorie R0“ erfüllt (Schritt S200). An diesem Zeitpunkt bestimmt die Aktionsbefehlerzeugungseinheit 24, ob die erzeugte Trajektorie dem Hindernis 31 ausweicht oder nicht, auf der Grundlage der Hindernisinformationen.
  • Ist die Bedingung in Schritt S200 erfüllt (Ja in Schritt S200), gibt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl entsprechend der erzeugten Trajektorie mit der kürzesten Aktionszeit an die Achsenmotor-Steuereinheiten aus (Schritt S260). Die Aktionsbefehlerzeugungseinheit 24 berechnet die Aktionszeit auf der Grundlage der gespeicherten erzeugten Trajektorie. Die Aktionsbefehlerzeugungseinheit 24 wählt die kürzeste Aktionszeit aus den Aktionszeiten aus und gibt den Aktionsbefehl entsprechend der erzeugten Trajektorie mit der kürzesten Aktionszeit aus. Hier gibt die Aktionsbefehlerzeugungseinheit 24 ausgehend von dem dritten Aktionsbefehl den Aktionsbefehl aus, welcher der zweiten Trajektorie entspricht, die dem Hindernis 31 ausweicht und die kürzeste Aktionszeit aufweist.
  • Ist die Bedingung in Schritt S200 nicht erfüllt (Nein in Schritt S200), bestimmt die Aktionsbefehlerzeugungseinheit 24, ob ein Zählerstand des zweiten Wiederholungszählers einen festgelegten Maximalwert angibt oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i2=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht (Schritt S210).
  • Ist „i2=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S210), addiert die Aktionsbefehlerzeugungseinheit 24 eins zu „i2“ (Schritt S230) und kehrt zur Verarbeitung des Schrittes S170 zurück.
  • Die Aktionsbefehlerzeugungseinheit 24 ändert in diesem Fall einen Aktionsbefehlparameter, der eine Bedingung der Aktion des Roboters 101 angibt, und führt die Verarbeitung des Schrittes S170 aus. Das heißt, die Aktionsbefehlerzeugungseinheit 24 sucht nach einem Aktionsbefehl, der einen Zusammenstoß beim Ändern des Aktionsbefehlparameters vermeiden kann. Insbesondere ändert die Aktionsbefehlerzeugungseinheit 24 mindestens eines von der Anzahl der Winkeländerungen jedes Achsenmotors, der Startzeit jeder Winkeländerung, der Maximalgeschwindigkeit bei jeder Winkeländerung, der Ausgabezeit, welche die Zeitdauer ist, während der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt, der Beschleunigung bei jeder Winkeländerung und der Verlangsamung bei in jeder Winkeländerung als Aktionsbefehlsparameter auf einen neuen Wert und führt dann die Verarbeitung des Schrittes S170 aus.
  • Die Aktionsbefehlerzeugungseinheit 24 führt folglich die Verarbeitung des Schrittes S170 mehrmals aus, wodurch die Verarbeitung des Schrittes S170 unter einer Vielzahl von Bedingungen ausgeführt werden kann. Eine Winkeländerung jedes Achsenmotors entspricht einer Aktion von dem Punkt, an dem die Geschwindigkeit jedes Achsenmotors null ist, zu dem Punkt, an dem die Geschwindigkeit jedes Achsenmotors nach der Durchführung einer Beschleunigung oder Verlangsamung erneut null wird.
  • Ist „i2=der maximalen Anzahl von Wiederholungen“ erfüllt (Ja in Schritt S210), bestimmt die Aktionsbefehlerzeugungseinheit 24, ob ein Zählerstand des ersten Wiederholungszählers einen festgelegten Maximalwert angibt oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht (Schritt S220).
  • Ist „i=der maximalen Anzahl von Wiederholungen“ erfüllt (Ja in Schritt S220), gibt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl entsprechend der erzeugten Trajektorie mit der kürzesten Aktionszeit an die Achsenmotor-Steuereinheiten aus (Schritt S260).
  • Ist „i=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S220), ändert die Aktionsbefehlerzeugungseinheit 24 den Passierbereich (Schritt S240). Das heißt, die Aktionsbefehlerzeugungseinheit 24 bezeichnet einen anderen Passierbereich aus den festgelegten Passierbereichen. Dann addiert die Aktionsbefehlerzeugungseinheit 24 eins zu „i“ (Schritt S250) und kehrt zur Verarbeitung des Schrittes S160 zurück.
  • Hier wird eine Verarbeitung beschrieben, in der die Aktionsbefehlerzeugungseinheit 24 die Trajektorie auf der Grundlage des Passierbereichs erzeugt. 7 ist ein Ablaufdiagramm, das eine detaillierte Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der ersten Ausführungsform die Trajektorie auf der Grundlage des Passierbereichs erzeugt. Die nachfolgend beschriebene Verarbeitung der Schritte S310 bis S430 entspricht der in 4 beschriebenen Verarbeitung der Schritte S170 bis S200.
  • Die Aktionsbefehlerzeugungseinheit 24 initialisiert den zweiten Wiederholungszähler, das heißt, sie ersetzt i2=1 in den zweiten Wiederholungszähler (Schritt S160).
  • Die Aktionsbefehlerzeugungseinheit 24 legt nach dem Ersetzen von i2=1 in den zweiten Wiederholungszähler einen temporären Relaispunkt (nachfolgend als temporärer Relaispunkt PR bezeichnet) fest, den eine spezifische Position des Endeffektors 102 an einem beliebigen Punkt im Passierbereich (Schritt S310) passiert.
  • Die Aktionsbefehlerzeugungseinheit 24 bestimmt zudem einen Motorwinkel jedes Achsenmotors des Roboters 101, sodass die spezifische Position des Endeffektors 102 den temporären Relaispunkt PR erreicht. Anders ausgedrückt bestimmt die Aktionsbefehlerzeugungseinheit 24 den Motorwinkel jedes Achsenmotors des Roboters 101 am temporären Relaispunkt PR (Schritt S320). Das heißt, die Aktionsbefehlerzeugungseinheit 24 legt einen Satz von Gelenkwinkeln, beinhaltend den Endeffektor 102, für den temporären Relaispunkt PR im Passierbereich fest.
  • Es ist anzumerken, dass ein Benutzer anstelle der Aktionsbefehlerzeugungseinheit 24 eine beliebige Position im Passierbereich als den temporären Relaispunkt PR und die Lage des Roboters 101 zu diesem Zeitpunkt bezeichnen kann. Zudem kann die Aktionsbefehlerzeugungseinheit 24 zufällig einen Punkt im Passierbereich als den temporären Relaispunkt PR auswählen. Der temporäre Relaispunkt PR muss nicht auf der Trajektorie passiert werden und ist temporär zur Berechnung einer anfänglichen Trajektorie bezeichnet.
  • Als Nächstes bezeichnet die Aktionsbefehlerzeugungseinheit 24 die Winkelgeschwindigkeit jedes Achsenmotors bei dem im Schritt S320 bestimmten Motorwinkel jedes Achsenmotors. Das heißt die Aktionsbefehlerzeugungseinheit 24 bezeichnet eine Passiergeschwindigkeit, wenn der temporäre Relaispunkt PR mit dem bestimmten Gelenkwinkel passiert wird (Schritt S330). Die hier bezeichnete Winkelgeschwindigkeit ist eine zur Berechnung der anfänglichen Trajektorie temporär festgelegte Winkelgeschwindigkeit.
  • Als Nächstes berechnet die Aktionsbefehlerzeugungseinheit 24 auf der Grundlage der Endpunktinformationen, der Position des bezeichneten temporären Relaispunktes PR und der bezeichneten Winkelgeschwindigkeit das Maximalantriebsmoment, das zum Antreiben jeder Achse am Aktionsstartpunkt PS, am Aktionszielpunkt PG und dem temporären Relaispunkt PR verwendet werden kann (Schritt S340). Als Nächstes erzeugt die Aktionsbefehlerzeugungseinheit 24 einen temporären Aktionsbefehl für eine andere Achse, die eine andere Achse als die Hauptachse ist (Schritt S350).
  • 8 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform den temporären Aktionsbefehl für die andere Achse erzeugt. 9 ist eine Darstellung zum Erläutern des temporären Relaispunktes, der verwendet wird, wenn die Robotersteuerung gemäß der ersten Ausführungsform den temporären Aktionsbefehl für die andere Achse erzeugt. Wie in 9 veranschaulicht, wird der temporäre Relaispunkt PR innerhalb des Passierbereiches 601 festgelegt.
  • Das obere Diagramm aus 8 ist ein Diagramm der Winkelgeschwindigkeit in Bezug auf die Hauptachse „j'“. Das mittlere Diagramm ist ein Diagramm der Winkelgeschwindigkeit, wenn die andere Achse j_b beim Maximalantriebsmoment am Aktionsstartpunkt PS beschleunigt, und das untere Diagramm ist ein Diagramm der Winkelgeschwindigkeit, wenn die andere Achse j_b beim Maximalantriebsmoment am temporären Relaispunkt PR beschleunigt. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit dar.
  • Zunächst wird das obere Diagramm aus 8 beschrieben. Die Aktionsbefehlerzeugungseinheit 24 verwendet den Aktionsbefehl für die Hauptachse „j'“ auf der Gelenkinterpolationstrajektorie R0, um eine Aktionszeit t1 von dem Aktionsstartpunkt PS zu dem temporären Relaispunkt PR und eine Aktionszeit t2 von dem temporären Relaispunkt PR zu dem Aktionszielpunkt PG zu erhalten. Die Aktionszeit t1 ist die Zeit, in welcher eine Änderung des Winkels von einem Winkel θSj' der Hauptachse „j'“ an dem Aktionsstartpunkt PS zu einem Winkel θRj' der Hauptachse „j'“ an dem temporären Relaispunkt PR mit einem Integralwert des Aktionsbefehls für die Hauptachse „j'“ vom Zeitpunkt t=0 zu t1 zusammenfällt.
  • Als Nächstes wird unter Verwendung des mittleren Diagramms aus 8 ein Verfahren zum Erzeugen des temporären Aktionsbefehls für die andere Achse j_b als die Hauptachse „j'“ beschrieben. Die Aktionsbefehlerzeugungseinheit 24 berechnet eine Steigung einer Befehlslinie L1, wenn beim Maximalantriebsmoment am Aktionsstartpunkt PS eine Beschleunigung durchgeführt wird. Die Aktionsbefehlerzeugungseinheit 24 berechnet zudem eine Steigung einer Befehlslinie L2, wenn beim Maximalantriebsmoment zum temporären Relaispunkt PR eine Verlangsamung durchgeführt wird. Die Aktionsbefehlerzeugungseinheit 24 erzeugt ferner eine Befehlslinie L3, welche die Maximalgeschwindigkeit angibt, die von jedem Achsenmotor des Roboters 101 erreicht werden kann.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet einen Bereich S1 eines Trapezes, der von vier geraden Linien begrenzt wird, bei welchen es sich um die Befehlslinien L1, L2 und L3 und eine Nulllinie der Winkelgeschwindigkeit handelt. Hier schneiden sich die Befehlslinie L1 und die Nulllinie der Winkelgeschwindigkeit zum Zeitpunkt t=0. Die Aktionsbefehlerzeugungseinheit 24 bestimmt den Zeitpunkt, zu dem sich die Befehlslinie L2 und die Nulllinie der Winkelgeschwindigkeit schneiden, sodass der Wert des Bereichs S1 gleich einem Absolutwert |θRjSj| der Winkeländerung vom Aktionsstartpunkt PS zum temporären Relaispunkt PR der Achse j_b ist. Die Aktionszeit vom Zeitpunkt t=0 bis zu dem Zeitpunkt, zu dem die Befehlslinie L2 die Nulllinie der Winkelgeschwindigkeit schneidet, ist eine Aktionszeit t1j. Daher schneiden sich die Befehlslinie L2 und die Nulllinie der Winkelgeschwindigkeit zum Zeitpunkt t1j. Der Winkel θSj ist der Winkel der Achse j_b am Aktionsstartpunkt PS und der Winkel θRj ist der Winkel der Achse j_b am temporären Relaispunkt PR.
  • Wenn „a“ (>0) die Steigung der Befehlslinie L1 ist und „b“ (<0) die Steigung der Befehlslinie L2 ist, kann die Aktionsbefehlerzeugungseinheit 24 auf der Grundlage des folgenden Ausdrucks (3) den Zeitpunkt t1j berechnen, zu dem die Befehlslinie L2 die Nulllinie der Winkelgeschwindigkeit schneidet.

    [Ausdruck 3] t 1 j = | θ R j θ S j | v _ m a x j + v _ m a x j 2 ( 1 a 1 b )
    Figure DE112020007414T5_0003
  • Hier, wenn t1j>t1, ist ein durch die vier vorstehend beschriebenen geraden Linien begrenzter Kurverlauf des Trapezes der Aktionsbefehl für die Achse j_b vom Aktionsstartpunkt PS zum temporären Relaispunkt PR.
  • Wenn t1j<t1, ändert die Aktionsbefehlerzeugungseinheit 24 dagegen die Maximalgeschwindigkeit während der Aktion von „v_maxj“ zu „ovrd1j*v_maxj“, sodass die Aktionszeit vom Aktionsstartpunkt PS zum temporären Relaispunkt PR gleich t1 ist. Die Aktionsbefehlerzeugungseinheit 24 berechnet „ovrd1j*v_maxj“ durch Lösen des folgenden Ausdrucks (4) für „ovrd1j“.

    [Ausdruck 4] | θ R j θ S j | = o v r d 1 j * v _ m a x j 2 * ( 2 t 1 o v r d 1 j * v _ m a x j * ( 1 a 1 b ) ) , 0 < o v r d 1 j 1
    Figure DE112020007414T5_0004
  • Als Nächstes wird das untere Diagramm aus 8 beschrieben. Die Aktionsbefehlerzeugungseinheit 24 berechnet eine Steigung einer Befehlslinie L5, wenn beim Maximalantriebsmoment vom temporären Relaispunkt PR eine Beschleunigung durchgeführt wird. Die Aktionsbefehlerzeugungseinheit 24 berechnet zudem eine Steigung einer Befehlslinie L6, wenn beim Maximalantriebsmoment zum Aktionszielpunkt PG eine Verlangsamung durchgeführt wird. Die Aktionsbefehlerzeugungseinheit 24 erzeugt ferner eine Befehlslinie L7, welche die Maximalgeschwindigkeit angibt, die von jedem Achsenmotor des Roboters 101 erreicht werden kann.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet einen Bereich S2 eines Trapezes, der von vier geraden Linien begrenzt wird, bei welchen es sich um die Befehlslinien L5, L6 und L7 und die Nulllinie der Winkelgeschwindigkeit handelt.
  • Die Aktionsbefehlerzeugungseinheit 24 bestimmt den Zeitpunkt t1j+t2j, zu dem sich die Befehlslinie L6 und die Nulllinie der Winkelgeschwindigkeit schneiden, sodass der Wert des Bereichs S2 gleich einem Absolutwert |θGjRj| der Winkeländerung vom temporären Relaispunkt PR zum Aktionszielpunkt PG der Achse j_b ist. Der Winkel θGj ist der Winkel der Achse j_b am Aktionszielpunkt PG und der Winkel θRj ist der Winkel der Achse j_b am temporären Relaispunkt PR. Hier schneiden sich die Nulllinie der Winkelgeschwindigkeit und die Befehlslinie L5 zu einem Zeitpunkt t1j. Daher ist die Aktionszeit vom Zeitpunkt t1j bis zu dem Zeitpunkt t1j+t2j, zu dem die Befehlslinie L6 die Nulllinie der Winkelgeschwindigkeit schneidet, ist eine Aktionszeit t2j.
  • Wenn „c“ (>0) die Steigung der Befehlslinie L5 ist und „d“ (<0) die Steigung der Befehlslinie L6 ist, kann die Aktionsbefehlerzeugungseinheit 24 auf der Grundlage des folgenden Ausdrucks (5) den Zeitpunkt t1j + t2j berechnen, zu dem die Befehlslinie L6 die Nulllinie der Winkelgeschwindigkeit schneidet.

    [Ausdruck 5] t 1 j + t 2 j = t 1 j + | θ R j θ G j | v _ m a x j + v _ m a x j 2 ( 1 c 1 d )
    Figure DE112020007414T5_0005
  • Hier, wenn t2j>t2, ist ein Kurvenverlauf des Trapezes, der durch die vier geraden Linien begrenzt ist, bei welchen es sich um die Befehlslinien L5, L6 und L7 und die Nulllinie der Winkelgeschwindigkeit handelt, der Aktionsbefehl für die Achse j_b vom temporären Relaispunkt PR zum Aktionszielpunkt PG.
  • Wenn t2j≤t2, ändert die Aktionsbefehlerzeugungseinheit 24 dagegen die Maximalgeschwindigkeit während der Aktion von „v_maxj“ zu „ovrd2j*v_maxj“, sodass die Aktionszeit vom temporären Relaispunkt PR zum Aktionszielpunkt PG gleich t2 ist. Die Aktionsbefehlerzeugungseinheit 24 berechnet „ovrd2j*v_maxj“ durch Lösen des folgenden Ausdrucks (6) für „ovrd2j“ .

    [Ausdruck 6] | θ R j θ G j | = o v r d 2 j * v _ m a x j 2   * ( 2 t 1 o v r d 2 j * v _ m a x j * ( 1 c 1 d ) ) ,0 < o v r d 2 j 1
    Figure DE112020007414T5_0006
  • Die nachfolgend beschriebene Verarbeitung des Schrittes S360 entspricht der in 4 beschriebenen Verarbeitung des Schrittes S170 und die Verarbeitung der Schritte S370 und S380 entspricht der in 4 beschriebenen Verarbeitung des Schrittes S180.
  • Die Aktionsbefehlerzeugungseinheit 24 stellt nach dem Erzeugen des temporären Aktionsbefehls für die andere Achse den Aktionsbefehl für die andere Achse ein (Schritt S360). Die Aktionsbefehlerzeugungseinheit 24 erzeugt eine Trajektorie unter Verwendung des Aktionsbefehls für die andere Achse, der eingestellt wurde. Details der Verarbeitung des Schrittes S360 zum Einstellen des Aktionsbefehls für die andere Achse werden später beschrieben. In der ersten Ausführungsform wird der Aktionsbefehl für die Hauptachse eingestellt, nachdem der Aktionsbefehl für die andere Achse eingestellt worden ist.
  • Als Nächstes berechnet die Aktionsbefehlerzeugungseinheit 24 die Aktionszeit auf der Trajektorie auf der Grundlage des Aktionsbefehls für die andere Achse und des Aktionsbefehls für die Hauptachse, die eingestellt wurden, und bestimmt, ob die Aktionszeit auf der Trajektorie eine spezifische Bedingung erfüllt oder nicht.
  • Insbesondere bestimmt die Aktionsbefehlerzeugungseinheit 24 auf der Grundlage des Aktionsbefehls für die andere Achse und des Aktionsbefehls für die Hauptachse, die eingestellt wurden, ob die erzeugte Trajektorie für den Roboter 101 dem Hindernis 31 ausweicht oder nicht, wenn der Roboter 101 betrieben wird (Schritt S370). Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob ein Hauptkörper des Roboters 101, der Endeffektor 102 und das Werkstück 103, bei welchen es sich um den gesamten Roboter 101 handelt, mit dem Hindernis 31 kollidieren oder nicht, wenn der Roboter 101 auf der dem Aktionsbefehl entsprechenden Trajektorie betrieben wird.
  • Interferiert die erzeugte Trajektorie mit dem Hindernis 31 (Nein in Schritt S370), stellt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die Hauptachse ein, ohne die erzeugte Trajektorie als einen Kandidaten für eine Ausgabetrajektorie zu speichern (Schritt S400). Die Aktionsbefehlerzeugungseinheit 24 kann den Aktionsbefehl für die Hauptachse durch Verschieben des Startzeitpunkts des Aktionsbefehls einstellen oder kann den Aktionsbefehl für die Hauptachse durch Ändern der Maximalgeschwindigkeit während der Aktion einstellen.
  • Weicht die erzeugte Trajektorie dagegen dem Hindernis 31 aus (Ja in Schritt S370), speichert die Aktionsbefehlerzeugungseinheit 24 die erzeugte Trajektorie als einen Kandidaten für die Ausgabetrajektorie (Schritt S380). Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl, der dem Kandidaten für die Ausgabetrajektorie entspricht, zusammen mit dem Kandidaten für die Ausgabetrajektorie speichern kann. Die Aktionsbefehlerzeugungseinheit 24 geht dann zur Verarbeitung des Schrittes S260 über.
  • Hier wird die detaillierte Verarbeitung des Schrittes S360, das heißt die Verarbeitung des Einstellens des Aktionsbefehls für die andere Achse, beschrieben. 10 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der ersten Ausführungsform den Aktionsbefehl für die andere Achse einstellt.
  • Die Aktionsbefehlerzeugungseinheit 24 legt den im Schritt S350 aus 7 erzeugten temporären Aktionsbefehl als vorläufigen Aktionsbefehl fest (Schritt S510).
  • Als Nächstes wählt die Aktionsbefehlerzeugungseinheit 24 alle der anderen Achsen aus, deren Aktionszeit im vorläufigen Aktionsbefehl die Aktionszeit auf der Gelenkinterpolationstrajektorie R0 überschreitet (Schritt S520).
  • Als Nächstes verschiebt die Aktionsbefehlerzeugungseinheit 24 den Beschleunigungs-/Verlangsamungszeitpunkt des Aktionsbefehls, um die Aktionszeit der anderen ausgewählten Achsen zu reduzieren (Schritt S530). Insbesondere bestimmt die Aktionsbefehlerzeugungseinheit 24 eine Verschiebungsmenge des Beschleunigungs-/Verlangsamungszeitpunkts, um die Aktionszeit der anderen ausgewählten Achsen zu reduzieren, und erzeugt den Aktionsbefehl auf der Grundlage der bestimmten Verschiebungsmenge des Beschleunigungs-/Verlangsamungszeitpunkts. Die Aktionsbefehlerzeugungseinheit 24 ändert somit den Aktionsbefehl, um die Aktionszeit der anderen ausgewählten Achsen zu reduzieren.
  • 11 ist ein Satz von Diagrammen zum Erläutern der Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform den Beschleunigungs-/Verlangsamungszeitpunkt des Aktionsbefehls für die anderen Achsen verschiebt. In 11 wird ein Fall beschrieben, bei dem die Achse „j“ als die andere Achse ausgewählt ist.
  • In 11 ist das obere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert für die Hauptachse, ist das mittlere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert vor der Änderung für die andere Achse und ist das untere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert nach der Änderung für die andere Achse. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit der Achse dar. Im unteren Diagramm aus 11 ist der Kurvenverlauf der Winkelgeschwindigkeit vor der Änderung durch eine gestrichelte Linie angegeben und ist der Kurvenverlauf der Winkelgeschwindigkeit nach der Änderung durch eine durchgezogene Linie angegeben. In einem Diagramm, das sowohl einen gestrichelten Kurvenverlauf als auch einen durchgezogenen Kurvenverlauf in 11 und nachfolgenden Zeichnungen veranschaulicht, gibt der gestrichelte Kurvenverlauf auf ähnliche Weise die Winkelgeschwindigkeit vor der Änderung an und gibt die durchgezogene Kurvenform die Winkelgeschwindigkeit nach der Änderung an.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet den in Schritt S350 erzeugten temporären Aktionsbefehl, um die Aktionszeit t1j von dem Aktionsstartpunkt PS zu dem temporären Relaispunkt PR für die Achse „j“ und die Aktionszeit t1 von dem Aktionsstartpunkt PS zu dem temporären Relaispunkt PR für die Hauptachse zu berechnen. Die Aktionsbefehlerzeugungseinheit 24 prüft, ob t1j=t1 erfüllt ist.
  • Als Nächstes verwendet die Aktionsbefehlerzeugungseinheit 24 den in Schritt S350 erzeugten temporären Aktionsbefehl, um die Aktionszeit t2j von dem temporären Relaispunkt PR zu dem Aktionszielpunkt PG für die Achse „j“ und die Aktionszeit t2 von dem temporären Relaispunkt PR zu dem Aktionszielpunkt PG für die Hauptachse zu berechnen. Die Aktionsbefehlerzeugungseinheit 24 prüft, ob t2j=t2 erfüllt ist.
  • In einem Fall, in dem sowohl t1j=t1 als auch t2j=t2 nicht erfüllt sind, ändert die Aktionsbefehlerzeugungseinheit 24 den Beschleunigungs-/Verlangsamungszeitpunkt des Aktionsbefehls für die Achse „j“ nicht.
  • 11 veranschaulicht einen Fall, in dem nur t1j=t1 erfüllt ist und t2j=t2 nicht erfüllt ist. In diesem Fall erreicht die Maximalgeschwindigkeit ovrd1j*v_maxj des Achsenmotors für die Achse „j“ während der Aktion vom Aktionsstartpunkt PS zum temporären Relaispunkt PR die Maximalgeschwindigkeit v_maxj nicht, die der Achsenmotor für die Achse „j“ erreichen kann. Daher verwendet die Aktionsbefehlerzeugungseinheit 24 „ovrd1j_New“, die ovrd1j<ovrd1j_New<1 erfüllt, als die Maximalgeschwindigkeit des Achsenmotors für die Achse „j“ während der Aktion vom Aktionsstartpunkt PS zum temporären Relaispunkt PR. Das heißt, die Aktionsbefehlerzeugungseinheit 24 ändert die Maximalgeschwindigkeit des Achsenmotors für die Achse „j“ während der Aktion vom Aktionsstartpunkt PS zum temporären Relaispunkt PR zu „ovrd1j_New*v_maxj“.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet zudem, als Beschleunigung am Aktionsstartpunkt PS, die im Schritt S350 berechnete Steigung der Befehlslinie L1, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L1. Die Aktionsbefehlerzeugungseinheit 24 verwendet gleichermaßen, als Verlangsamung am temporären Relaispunkt PR, die im Schritt S350 berechnete Steigung der Befehlslinie L2, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L2.
  • Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 den Wert von „ovrd1j_New“ jedes Mal ändern kann, wenn die Erzeugung der Trajektorie im Passierbereich wiederholt wird. Anders ausgedrückt kann die Aktionsbefehlerzeugungseinheit 24 den Wert von „ovrd1j_New“ jedes Mal ändern, wenn in Schritt S210 bestimmt wird, ob „i2=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht. Beispielsweise legt die Aktionsbefehlerzeugungseinheit 24 zu Beginn der Wiederholung ovrd1j_New=1 fest und verringert „ovrd1j_New“ jedes Mal um eine gewisse Menge, wenn sich die Anzahl der Wiederholungen erhöht.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet unter Verwendung des folgenden Ausdrucks (7) eine Aktionszeit t1j_New, auf welche die Aktionszeit t1j vom Aktionsstartpunkt PS zum temporären Relaispunkt PR für die Achse „j“ geändert wird.

    [Ausdruck 7] t 1 j _ N e w = | θ R j θ S j | o v r d 1 j _ N e w * v _ m a x j + o v r d 1 j _ N e w * v _ m a x j 2 ( 1 a 1 b )
    Figure DE112020007414T5_0007
  • Als Nächstes wird ein Fall beschrieben, bei dem nur t2j=t2 erfüllt und t1j=t1 nicht erfüllt ist. In diesem Fall erreicht die Maximalgeschwindigkeit ovrd2j*v_maxj des Motors für die Achse „j“ während der Aktion vom temporären Relaispunkt PR zum Aktionszielpunkt PG die Maximalgeschwindigkeit v_maxj nicht, die der Motor für die Achse „j“ erreichen kann. Daher verwendet die Aktionsbefehlerzeugungseinheit 24 „ovrd2j_New“, die ovrd2j<ovrd2j_New<1 erfüllt, als die Maximalgeschwindigkeit des Motors für die Achse „j“ während der Aktion vom temporären Relaispunkt PR zum Aktionszielpunkt PG. Das heißt, die Aktionsbefehlerzeugungseinheit 24 ändert die Maximalgeschwindigkeit des Motors für die Achse „j“ während der Aktion vom temporären Relaispunkt PR zum Aktionszielpunkt PG. zu „ovrd2j_New*v_maxj“.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet zudem, als Beschleunigung am temporären Relaispunkt PR, die im Schritt S350 berechnete Steigung der Befehlslinie L5, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L5. Die Aktionsbefehlerzeugungseinheit 24 verwendet gleichermaßen, als Verlangsamung am Aktionszielpunkt PG, die im Schritt S350 berechnete Steigung der Befehlslinie L6, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L6.
  • Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 den Wert von „ovrd2j_New“ jedes Mal ändern kann, wenn die Erzeugung der Trajektorie im Passierbereich wiederholt wird. Anders ausgedrückt kann die Aktionsbefehlerzeugungseinheit 24 den Wert von „ovrd2j_New“ jedes Mal ändern, wenn in Schritt S210 bestimmt wird, ob „i2=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht. Beispielsweise legt die Aktionsbefehlerzeugungseinheit 24 zu Beginn der Wiederholung ovrd2j_New=1 fest und verringert „ovrd2j_New“ jedes Mal um eine gewisse Menge, wenn sich die Anzahl der Wiederholungen erhöht.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet unter Verwendung des folgenden Ausdrucks (8) eine Aktionszeit t2j_New, auf welche die Aktionszeit t2j vom temporären Relaispunkt PR zum Aktionszielpunkt PG für die Achse „j“ geändert wird.

    [Ausdruck 8] t 2 j N e w = | θ R j θ G j | o v r d 2 j _ N e w * v _ m a x j + o v r d 2 j _ N e w * v _ m a x j 2 ( 1 c 1 d )
    Figure DE112020007414T5_0008
  • Wie vorstehend beschrieben, berechnet die Aktionsbefehlerzeugungseinheit 24 für jede andere Achse, für die der Aktionsbefehl in Schritt S530 geändert wurde, eine Ausführungszeit des Aktionsbefehls nach der Änderung, das heißt die Aktionszeit, die dem Aktionsbefehl nach der Änderung entspricht. Die Aktionsbefehlerzeugungseinheit 24 berechnet ferner eine Ausführungszeit des vorläufigen Aktionsbefehls, das heißt die Aktionszeit, die dem vorläufigen Aktionsbefehl für jede andere Achse entspricht.
  • Als Nächstes bestimmt die Aktionsbefehlerzeugungseinheit 24 für jede andere Achse, ob die Aktionszeit im Aktionsbefehl nach der Änderung kürzer als oder gleich der Aktionszeit im vorläufigen Aktionsbefehl ist oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt für alle anderen Achsen, ob die andere Achse „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ erfüllt oder nicht (Schritt S540).
  • Erfüllt die andere Achse „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ (Ja in Schritt S540), speichert die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl nach der Änderung als einen Kandidaten für die Ausgabetrajektorie. Das heißt, die Aktionsbefehlerzeugungseinheit 24 legt für die andere Achse, welche „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen
    Aktionsbefehl“ erfüllt, den Aktionsbefehl nach der Änderung als den vorläufigen Aktionsbefehl fest (Schritt S550).
  • Für die andere Achse, welche „die Aktionszeit im Aktionsbefehl nach der Änderung>die Aktionszeit im vorläufigen Aktionsbefehl“ erfüllt (Nein in Schritt S540), ändert die Aktionsbefehlerzeugungseinheit 24 den vorläufigen Aktionsbefehl nicht und geht zur Verarbeitung des Schrittes S560 über.
  • Die Aktionsbefehlerzeugungseinheit 24 wählt aus den anderen Achsen, für welche der Aktionsbefehl in Schritt S530 geändert wurde, die andere Achse aus, deren Aktionszeit im vorläufigen Aktionsbefehl die Aktionszeit auf der Gelenkinterpolationstrajektorie R0 überschreitet (Schritt S560).
  • Als Nächstes verschiebt die Aktionsbefehlerzeugungseinheit 24 den Achsenwinkel, welcher der Winkel der anderen Achse am temporären Relaispunkt PR des Aktionsbefehls ist, um die Aktionszeit der anderen Achse, die in Schritt S520 ausgewählt wurde, zu reduzieren (Schritt S570). Die Aktionsbefehlerzeugungseinheit 24 erzeugt einen Aktionsbefehl, bei dem der Achsenwinkel am temporären Relaispunkt PR verschoben ist.
  • 12 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform den Achsenwinkel des Aktionsbefehls für die andere Achse an dem temporären Relaispunkt verschiebt, um die Aktionszeit zu reduzieren. In 12 wird ein Fall beschrieben, bei dem die Achse „j“ ausgewählt ist.
  • In 12 ist das obere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert für die Hauptachse, ist das mittlere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert vor der Änderung für die andere Achse und ist das untere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert nach der Änderung für die andere Achse. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit der Achse dar.
  • Die Aktionsbefehlerzeugungseinheit 24 ändert den Winkel der Achse „j“ am temporären Relaispunkt PR von „θRj“ zu „θRj_New“. Die Aktionsbefehlerzeugungseinheit 24 verwendet zudem, als Beschleunigung am Aktionsstartpunkt PS, die im Schritt S350 berechnete Steigung der Befehlslinie L1, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L1. Die Aktionsbefehlerzeugungseinheit 24 verwendet zudem, als Verlangsamung am temporären Relaispunkt PR, die im Schritt S350 berechnete Steigung der Befehlslinie L2, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L2.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet zudem, als Beschleunigung am temporären Relaispunkt PR, die im Schritt S350 berechnete Steigung der Befehlslinie L5, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L5. Die Aktionsbefehlerzeugungseinheit 24 verwendet gleichermaßen, als Verlangsamung am Aktionszielpunkt PG, die im Schritt S350 berechnete Steigung der Befehlslinie L6, das heißt die in 8 veranschaulichte Steigung der Befehlslinie L6.
  • Die Aktionsbefehlerzeugungseinheit 24 bezeichnet „θRj_New“ aus einem Bereich, der den folgenden Ausdruck (9) erfüllt.

    [Ausdruck 9] | θ R j θ S j | > | θ R j _ N e w θ S j |
    Figure DE112020007414T5_0009
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet unter Verwendung des folgenden Ausdrucks (10) den Wert der Aktionszeit t1j_New, auf welche die Aktionszeit t1j vom Aktionsstartpunkt PS zum temporären Relaispunkt PR für die Achse „j“ geändert wird. 12 veranschaulicht einen Fall, in dem ovrd1j_New=1.

    [Ausdruck 10] t 1 j _ N e w = | θ R j _ N e w θ S j | o v r d 1 j _ N e w * v _ m a x j + o v r d 1 j _ N e w * v _ m a x j 2 ( 1 a 1 b )
    Figure DE112020007414T5_0010
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet unter Verwendung des folgenden Ausdrucks (11) den Wert der Aktionszeit t2j_New, auf welche die Aktionszeit t2j vom temporären Relaispunkt PR zum Aktionszielpunkt PG für die Achse „j“ geändert wird. 12 veranschaulicht einen Fall, in dem ovrd2j_New=1.

    [Ausdruck 11] t 2 j _ N e w = | θ G j θ R j _ N e w | o v r d 2 j _ N e w * v _ m a x j + o v r d 2 j _ N e w * v _ m a x j 2 ( 1 c 1 d )
    Figure DE112020007414T5_0011
  • Die Aktionsbefehlerzeugungseinheit 24 kann, wie in 12 veranschaulicht, die Winkeländerung durch Verschieben des Achsenwinkels des Aktionsbefehls für die Achse „j“ am temporären Relaispunkt PR reduzieren, um die Aktionszeit zu reduzieren. Eine Differenz zwischen einem Bereich T1 eines Trapezes vor der Änderung des Achsenwinkels und einem Bereich T2 eines Trapezes nach der Änderung des Achsenwinkels entspricht einer Menge der Reduzierung der Änderung des Winkels.
  • Als Nächstes bestimmt die Aktionsbefehlerzeugungseinheit 24 für jede andere Achse, ob die Aktionszeit im Aktionsbefehl nach der Änderung kürzer als oder gleich der Aktionszeit im vorläufigen Aktionsbefehl ist oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt für alle anderen Achsen, ob die andere Achse „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ erfüllt oder nicht (Schritt S580).
  • Erfüllt die andere Achse „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ (Ja in Schritt S580), speichert die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl nach der Änderung als einen Kandidaten für die Ausgabetrajektorie. Das heißt, die Aktionsbefehlerzeugungseinheit 24 legt für die andere Achse, welche „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ erfüllt, den Aktionsbefehl nach der Änderung als den vorläufigen Aktionsbefehl fest (Schritt S590). Die Aktionsbefehlerzeugungseinheit 24 erzeugt eine Trajektorie entsprechend dem in Schritt S550 oder Schritt S590 festgelegten vorläufigen Aktionsbefehl.
  • Erfüllt die andere Achse, welche „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ nicht (Nein in Schritt S580), ändert die Aktionsbefehlerzeugungseinheit 24 den vorläufigen Aktionsbefehl nicht. Das heißt, für die Achse, welche „die Aktionszeit im Aktionsbefehl nach der Änderung>die Aktionszeit im vorläufigen Aktionsbefehl“ erfüllt, ändert die Aktionsbefehlerzeugungseinheit 24 den vorläufigen Aktionsbefehl nicht und beendet die Verarbeitung des Einstellens des Aktionsbefehls für die andere Achse.
  • Die nachfolgend beschriebene Verarbeitung des Schrittes S400 entspricht der in 4 beschriebenen Verarbeitung des Schrittes S190 und die Verarbeitung der Schritte S410 bis S430 entspricht der in 4 beschriebenen Verarbeitung des Schrittes S200.
  • 13 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform den Aktionsbefehl für die Hauptachse durch Verschieben des Startzeitpunkts des Aktionsbefehls für die Hauptachse einstellt. 14 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der ersten Ausführungsform den Aktionsbefehl für die Hauptachse durch Ändern der Maximalgeschwindigkeit der Hauptachse in Aktion einstellt.
  • In 13 ist das obere Diagramm ein Diagramm der Winkelgeschwindigkeit für die Hauptachse und ist das untere Diagramm ein Diagramm der Winkelgeschwindigkeit für die andere Achse. In 14 ist das obere Diagramm ein Diagramm der Winkelgeschwindigkeit für die Hauptachse und ist das untere Diagramm ein Diagramm der Winkelgeschwindigkeit für die andere Achse. In jedem Diagramm, das in 13 und 14 veranschaulicht ist, stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit der Achse dar.
  • Die Aktionsbefehlerzeugungseinheit 24 stellt den Aktionsbefehl für die Hauptachse ein, um eine Aktionszeit t1jl+t2jl einer anderen Achse j_l mit der längsten Aktionszeit aus den Aktionsbefehlen für die anderen Achsen, die in Schritt S360 eingestellt wurden, anzupassen (Schritt S400) .
  • Die Aktionsbefehlerzeugungseinheit 24 stellt den Aktionsbefehl für die Hauptachse entweder auf der Grundlage des in 13 veranschaulichten Verfahrens oder des in 14 veranschaulichten Verfahrens ein. Zwischen dem in 13 veranschaulichten Verfahren und dem in 14 veranschaulichten Verfahren passiert der Endeffektor 102 unterschiedliche Positionen. Daher erzeugt die Aktionsbefehlerzeugungseinheit 24 zum Beispiel den Aktionsbefehl für die Hauptachse unter Verwendung eines der Verfahren und erzeugt den Aktionsbefehl für die Hauptachse unter Verwendung des anderen Verfahrens nur dann, wenn die erzeugte Trajektorie mit dem Hindernis 31 kollidiert.
  • Zunächst wird 13 verwendet, um das Verfahren zu beschrieben, bei dem die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die Hauptachse durch Verschieben des Startzeitpunkts des Aktionsbefehls für die Hauptachse einstellt. Die Aktionsbefehlerzeugungseinheit 24 wählt eine Zeit Δt, die eine Verschiebungsmenge des Startzeitpunktes des Aktionsbefehls ist, innerhalb eines Bereiches aus, in dem eine Aktionszeit (Δt+Δt1j'+Δt2j') der Hauptachse nach der Einstellung eine Aktionszeit (Δt1j_l+Δt2j_l) der anderen Achse j_l mit der längsten Aktionszeit aus den anderen Achsen nicht überschreitet.
  • Als Nächstes wird 14 verwendet, um das Verfahren zu beschrieben, bei dem die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die Hauptachse durch Ändern der Maximalgeschwindigkeit der Hauptachse in der Aktion einstellt. Die Aktionsbefehlerzeugungseinheit 24 ändert die Maximalgeschwindigkeit von „v_maxj'“ zu „ovrdj'*v_maxj'“. Die Aktionsbefehlerzeugungseinheit 24 verwendet als „ovrdj'“ einen Wert, der durch Lösen des folgenden Ausdrucks (12) für „ovrdj'“ erhalten wird. Die Aktionsbefehlerzeugungseinheit 24 verwendet als Beschleunigung und Verlangsamung die gleichen Werte wie diejenigen des Aktionsbefehls für die Hauptachse vor der Einstellung. Im Ausdruck (12) stellen „a_j'“ und „b_j'“ die Beschleunigung bzw. die Verlangsamung im Aktionsbefehl für die Hauptachse dar.

    [Ausdruck 12] | θ G j ' θ S j ' | = o v r d j ' * v _ m a x j ' 2   * ( 2 ( t 1 j _ l + t 2 j _ l ) o v r d j ' * v _ m a x j ' * ( 1 a _ j ' 1 b _ j ' ) ) ,0   < o v r d j ' 1
    Figure DE112020007414T5_0012
  • Als Nächstes erzeugt die Aktionsbefehlerzeugungseinheit 24 eine Trajektorie auf der Grundlage des eingestellten Aktionsbefehls für die andere Achse und des eingestellten Aktionsbefehls für die Hauptachse und bestimmt, ob die erzeugte Trajektorie eine spezifische Bedingung erfüllt oder nicht. Die Aktionsbefehlerzeugungseinheit 24 bestimmt insbesondere auf der Grundlage des eingestellten Aktionsbefehls für die andere Achse und des eingestellten Aktionsbefehls für die Hauptachse, ob der Endeffektor 102 beim Betrieb des Roboters 101 auf der erzeugten Trajektorie mit dem Hindernis 31 interferiert oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob die erzeugte Trajektorie dem Hindernis 31 ausweicht oder nicht (Schritt S410).
  • Weicht die erzeugte Trajektorie dem Hindernis 31 aus (Ja in Schritt S410), speichert die Aktionsbefehlerzeugungseinheit 24 die erzeugte Trajektorie als einen Kandidaten für die Ausgabetrajektorie (Schritt S420). Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl, der dem Kandidaten für die Ausgabetrajektorie entspricht, zusammen mit dem Kandidaten für die Ausgabetrajektorie speichern kann.
  • Interferiert die erzeugte Trajektorie dagegen mit dem Hindernis 31 (Nein in Schritt S410), speichert die Aktionsbefehlerzeugungseinheit 24 die erzeugte Trajektorie nicht als den Kandidaten für die Ausgabetrajektorie und geht zur Wiederholung der Verarbeitung zum Erzeugen einer anderen Trajektorie über, die den bezeichneten Passierbereich passiert. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i2“ als ein Zählerstand auf dem zweiten Wiederholungszähler „i2=der maximalen Anzahl von Wiederholungen“ erfüllt oder nicht (Schritt S210).
  • Als Nächstes bestimmt die Aktionsbefehlerzeugungseinheit 24, ob die Aktionszeit, wenn der Roboter 101 betrieben wird, kürzer als oder gleich der Aktionszeit auf der Gelenkinterpolationstrajektorie R0 ist oder nicht, auf der Grundlage des Aktionsbefehls für die andere Achse und des Aktionsbefehls für die Hauptachse, die eingestellt wurden. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „die Aktionszeit auf der erzeugten Trajektorie=der Aktionszeit auf der Gelenkinterpolationstrajektorie R0“ erfüllt ist oder nicht (Schritt S430).
  • Ist „die Aktionszeit auf der erzeugten Trajektorie=der Aktionszeit auf der Gelenkinterpolationstrajektorie R0“ erfüllt (Ja in Schritt S430), geht die Aktionsbefehlerzeugungseinheit 24 zur Verarbeitung des Schrittes S260 über. Ist „die Aktionszeit auf der erzeugten Trajektorie>die Aktionszeit auf der Gelenkinterpolationstrajektorie R0“ erfüllt (Nein in Schritt S430), geht die Aktionsbefehlerzeugungseinheit 24 zur Wiederholung der Verarbeitung zum Erzeugen einer anderen Trajektorie über, die den bezeichneten Passierbereich passiert. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i2“ als der Zählerstand auf dem zweiten Wiederholungszähler „i2=der maximalen Anzahl von Wiederholungen“ erfüllt oder nicht (Schritt S210).
  • Ist „i2=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S210), addiert die Aktionsbefehlerzeugungseinheit 24 eins zu „i2“ (Schritt S230) und kehrt zur Verarbeitung des Schrittes S310 zurück.
  • Ist „i2=der maximalen Anzahl von Wiederholungen“ erfüllt (Ja in Schritt S210), bestimmt die Aktionsbefehlerzeugungseinheit 24, ob eine oder mehrere der erzeugten Trajektorien, um dem Hindernis 31 auszuweichen, bei der Verarbeitung des Schrittes S380 oder des Schrittes S420 gespeichert werden oder nicht (Schritt S215).
  • Werden eine oder mehrere der erzeugten Trajektorien, um dem Hindernis 31 auszuweichen, gespeichert (Ja in Schritt S215), geht die Aktionsbefehlerzeugungseinheit 24 zur Wiederholung der Verarbeitung zum Ändern des Passierbereichs über. Das heißt, wenn eine oder mehrere der Trajektorien, um dem Hindernis 31 auszuweichen, gespeichert werden, geht die Aktionsbefehlerzeugungseinheit 24 zur Verarbeitung des unter Bezugnahme auf 4 beschriebenen Schrittes S220 über.
  • Wird dagegen keine erzeugte Trajektorie, um dem Hindernis 31 auszuweichen, gespeichert (Nein in Schritt S215), fügt die Aktionsbefehlerzeugungseinheit 24 einen neuen Passierbereich hinzu (Schritt S216). Die Aktionsbefehlerzeugungseinheit 24 kehrt danach zur Verarbeitung des Schrittes S140 zurück.
  • Ist, wie unter Bezugnahme auf 4 beschrieben, „i=der maximalen Anzahl von Wiederholungen“ erfüllt (Ja in Schritt S220), gibt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl entsprechend der erzeugten Trajektorie mit der kürzesten Aktionszeit an die Achsenmotor-Steuereinheiten aus (Schritt S260).
  • Ist „i=der maximalen Anzahl von Wiederholungen“ dagegen nicht erfüllt (Nein in Schritt S220), ändert die Aktionsbefehlerzeugungseinheit 24 den Passierbereich (Schritt S240). Die Aktionsbefehlerzeugungseinheit 24 führt dann die unter Bezugnahme auf 4 beschriebene Verarbeitung des Schrittes S250 aus und kehrt dann zur Verarbeitung des Schrittes S160 zurück.
  • Da die Aktionsbefehlerzeugungseinheit 24 in der ersten Ausführungsform die erzeugte Trajektorie speichert, auf welcher der Roboter 101 nicht mit dem Hindernis 31 kollidiert, und den der erzeugten Trajektorie entsprechenden Aktionsbefehl ausgibt, kann eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 vermieden werden. Dadurch kann die Robotersteuerung 200 die Herstellungseffizienz verbessern.
  • Die Aktionsbefehlerzeugungseinheit 24 kann darüber hinaus auch dann nach dem Aktionsbefehl suchen, wenn der Passierbereich nicht durch einen Benutzer bezeichnet ist, wodurch die Trajektorie mit einer gegenüber einem Fall der Erzeugung der Trajektorie durch die Bezeichnung des Passierbereichs reduzierten Aktionszeit leicht erzeugt werden kann.
  • In einem Fall, in dem die Trajektorie ohne das Ändern des Aktionsbefehls für die Hauptachse erzeugt wird, kann die Aktionsbefehlerzeugungseinheit 24 darüber hinaus die Trajektorie, die eine Kollision vermeidet, ohne das Erhöhen der Aktionszeit erzeugen. In einem Fall, in dem die Trajektorie, welche die Interferenz vermeiden kann, nicht erzeugt werden kann, ohne den Aktionsbefehl für die Hauptachse zu ändern, erzeugt die Aktionsbefehlerzeugungseinheit 24 die Trajektorie durch das Ändern des Aktionsbefehls für die Hauptachse, wodurch die Trajektorie, welche die Interferenz vermeiden kann, auch dann erzeugt werden kann, wenn die Trajektorie, die eine Kollision vermeidet, kompliziert ist.
  • Die Aktionsbefehlerzeugungseinheit 24 sucht darüber hinaus nach dem Aktionsbefehl auf der Grundlage des Passierbereichs und kann so die Zeit für die Suche nach dem Aktionsbefehl, der eine Kollision vermeiden kann, reduzieren.
  • Die Aktionsbefehlerzeugungseinheit 24 fügt darüber hinaus einen anderen Kandidaten für den Passierbereich als den anfänglich bezeichneten Passierbereich hinzu und leitet somit leicht die Trajektorie mit der kürzesten Aktionszeit ab.
  • Die Aktionsbefehlerzeugungseinheit 24 stellt gemäß der ersten Ausführungsform, wie vorstehend beschrieben, den Aktionsbefehl für die anderen Achsen ein und ändert dann den Aktionsbefehl für die Hauptachse ausgehend von dem Aktionsbefehl für die Hauptachse auf der Gelenkinterpolationstrajektorie R0. Die Aktionsbefehlerzeugungseinheit 24 erzeugt dann die Trajektorie für den geänderten Aktionsbefehl und speichert die erzeugte Trajektorie als einen Kandidaten für die Ausgabetrajektorie, wenn keine Interferenz mit dem Hindernis 31 vorliegt. Die Aktionsbefehlerzeugungseinheit 24 kann daher nur die Trajektorie erzeugen, die eine Kollision mit dem Hindernis 31 vermeidet und vom Roboter 101 als Kandidat für die Ausgabetrajektorie umgesetzt werden kann.
  • Darüber hinaus erzeugt die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem die Aktionszeit auf der erzeugten Trajektorie länger ist als die Aktionszeit auf der Gelenkinterpolationstrajektorie R0, eine neue Trajektorie durch das Ändern des Passierbereiches. Die Aktionsbefehlerzeugungseinheit 24 kann somit die Trajektorie mit der Aktionszeit erzeugen, die kürzer als oder gleich derjenigen im Falle einer Begrenzung des Passierpunkts ist.
  • Wenn eine Aktion gemäß der erzeugten Trajektorie durchgeführt wird, gibt die Aktionsbefehlerzeugungseinheit 24 vorzugsweise die Trajektorie mit der Aktionszeit aus, die kürzer oder gleich der Aktionszeit auf der Gelenkinterpolationstrajektorie R0 ist. Darüber hinaus wählt die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem die Aktionszeit auf allen erzeugten Trajektorien länger ist als die Aktionszeit auf der Gelenkinterpolationstrajektorie R0, die Trajektorie mit der kürzesten Aktionszeit aus den erzeugten Trajektorien aus. Die Aktionsbefehlerzeugungseinheit 24 kann daher aus den Trajektorien, die eine Interferenz mit dem Hindernis 31 vermeiden, die Trajektorie mit der kürzesten Aktionszeit auswählen.
  • Die Aktionsbefehlerzeugungseinheit 24 legt darüber hinaus die Achse mit der maximalen Winkeländerung während einer Aktion in Bezug auf die Maximalgeschwindigkeit, die von jedem Achsenmotor ausgegeben werden kann, als die Hauptachse fest und wählt den Aktionsbefehl für die Hauptachse aus. Die Aktionsbefehlerzeugungseinheit 24 sucht nach dem Aktionsbefehl für jeden Achsenmotor, um dem Hindernis 31 auszuweichen, indem sie den Aktionsbefehl für die ausgewählte Hauptachse als einen anfänglichen Wert verwendet, wodurch sie in der Lage ist, effizient nach einer Route mit einer kurzen Aktionszeit zu suchen. Ferner sucht die Aktionsbefehlerzeugungseinheit 24 nach dem Aktionsbefehl jedes Achsenmotors, ohne den Passierpunkt explizit zu bezeichnen, und kann somit die Aktionszeit gegenüber dem Fall der expliziten Bezeichnung des Passierpunktes reduzieren.
  • Zweite Ausführungsform.
  • Als Nächstes wird eine zweite Ausführungsform unter Bezugnahme auf die 4, 14 und 15 bis 27 beschrieben. In der zweiten Ausführungsform erzeugt die Robotersteuerung 200 eine Trajektorie in einem Fall, in dem eine Vielzahl von Passierbereichen vorhanden ist.
  • 15 ist eine Darstellung, welche eine schematische Konfiguration des Robotersystems, das die Robotersteuerung beinhaltet, gemäß der zweiten Ausführungsform veranschaulicht. 16 ist eine Darstellung zum Erläutern der Passierbereiche, die durch die Robotersteuerung gemäß der zweiten Ausführungsform festgelegt wurden. Komponenten in 15, welche die gleichen Funktionen wie diejenigen des Robotersystem 100 der ersten Ausführungsform, die in 1 veranschaulicht ist, erfüllen, sind mit den gleichen Bezugszeichen wie denjenigen in 1 versehen, sodass auf eine redundante Beschreibung verzichtet wird.
  • Das Robotersystem 100 der zweiten Ausführungsform unterscheidet sich von dem Robotersystem 100 der ersten Ausführungsform durch die Verwendung von zwei Passierbereichen 601a und 601b. Es ist anzumerken, dass die Anzahl der Passierbereiche drei oder mehr betragen kann. Ein Beispiel für den Fall, in dem die Vielzahl von Passierbereichen 601a und 601b vorhanden ist, ist ein Fall, in dem eine Vielzahl von Hindernissen 31 und 32 in dem Robotersystem 100 platziert ist.
  • Die Aktionsbefehlerzeugungseinheit 24 des Robotersystems 100 steuert den Roboter 101 so, dass der Endeffektor 102 nicht mit den Hindernissen 31 und 32 kollidiert, wenn eine spezifische Position des Endeffektors 102 vom Aktionsstartpunkt PS zum Aktionszielpunkt PG bewegt wird.
  • Als Nächstes wird eine Prozedur beschrieben, in welcher die Aktionsbefehlerzeugungseinheit 24 die Trajektorie des Endeffektors 102 erzeugt. Auch in der zweiten Ausführungsform erzeugt die Aktionsbefehlerzeugungseinheit 24 die Trajektorie durch Ausführen von Hauptschritten in der in 4 beschriebenen Verarbeitungsprozedur der ersten Ausführungsform. Daher wird aus der Verarbeitung der in 4 beschriebenen Hauptschritte eine Verarbeitung beschrieben, die von derjenigen der ersten Ausführungsform abweicht.
  • Die Aktionsbefehlerzeugungseinheit 24 legt in Schritt S150 der zweiten Ausführungsform eine Vielzahl von Kandidaten für den Passierbereich fest, den die spezifische Position des Endeffektors 102 passiert. Die Aktionsbefehlerzeugungseinheit 24 legt dann eine beliebige Anzahl (eine Vielzahl) von Passierbereiche aus der Vielzahl von Kandidaten für den Passierbereich fest. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bezeichnet eine Vielzahl von Passierbereichen aus der Vielzahl von Kandidaten für den Passierbereich, der festgelegt wurde. Die Aktionsbefehlerzeugungseinheit 24 bezeichnet beispielsweise, wie in 16 veranschaulicht, die beiden Passierbereiche 601a und 601b.
  • Die Kandidaten für den Passierbereich werden von einem Benutzer auf der Grundlage der Platzierung der Hindernisse 31 und 32 im Voraus festgelegt. Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 den Kandidaten für den Passierbereich auf der Grundlage der von der Hindernismodellspeichereinheit 21 erfassten Hindernisinformationen auf einen Bereich, in dem das Hindernis 31 nicht vorhanden ist, festlegen kann.
  • Die Aktionsbefehlerzeugungseinheit 24 erzeugt nach dem Festlegen der Vielzahl von Passierbereichen die Trajektorie auf der Grundlage der festgelegten Vielzahl der Passierbereiche. Die Aktionsbefehlerzeugungseinheit 24 erzeugt insbesondere die Trajektorie, auf der die spezifische Position des Endeffektors 102 zu einem beliebigen Zeitpunkt eine beliebige Position in jedem Passierbereich passiert.
  • In der zweiten Ausführungsform weicht die Verarbeitung, in welcher die Aktionsbefehlerzeugungseinheit 24 die Trajektorie auf der Grundlage des Passierbereichs erzeugt, von derjenigen der ersten Ausführungsform ab. 17 ist ein Ablaufdiagramm, das eine detaillierte Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform die Trajektorie auf der Grundlage des Passierbereichs erzeugt. Aus den in 17 veranschaulichten Verarbeitungen wird die Beschreibung der Verarbeitung, die der in 7 beschriebenen Verarbeitung ähnelt, weggelassen, wenn sie redundant ist.
  • In der folgenden Beschreibung wird jeder Passierbereich, der in dem Satz der in Schritt S150 der zweiten Ausführungsform ausgewählten Passierbereiche enthalten ist, als Passierbereich „m“ bezeichnet. Hier ist „m“ eine natürliche Zahl von eins bis zu einer Gesamtzahl der Passierbereiche, die in dem Satz von Passierbereichen enthalten sind. Jeder durch „m“ angegebene numerische Wert entspricht der Passierreihenfolge des Endeffektors 102.
  • Die Aktionsbefehlerzeugungseinheit 24 initialisiert den zweiten Wiederholungszähler, das heißt, sie ersetzt i2=1 in den zweiten Wiederholungszähler (Schritt S160). Die Aktionsbefehlerzeugungseinheit 24 legt den temporären Relaispunkt PR fest, den die spezifische Position des Endeffektors 102 an dem temporären Relaispunkt PR passiert, welcher der beliebige Punkt im Passierbereich „m“ ist (Schritt S310). Diese Verarbeitungen in den Schritten S160 und S310 ähneln den in der ersten Ausführungsform beschriebenen Verarbeitungen in den Schritten S160 und S310. Es ist anzumerken, dass in der folgenden Beschreibung ein X-ter („X“ ist eine natürliche Zahl von eins bis „m“) temporärer Relaispunkt PR aus den temporären Relaispunkten PR als „Px“ bezeichnet sein kann.
  • Als Nächstes bestimmt die Aktionsbefehlerzeugungseinheit 24 den Motorwinkel jedes Achsenmotors des Roboters 101 am temporären Relaispunkt PR (Schritt S320). Das heißt, die Aktionsbefehlerzeugungseinheit 24 legt einen Satz von Gelenkwinkeln, beinhaltend den Endeffektor 102, für den temporären Relaispunkt PR im Passierbereich „m“ fest.
  • Es ist anzumerken, dass ein Benutzer anstelle der Aktionsbefehlerzeugungseinheit 24 eine beliebige Position im Passierbereich als den temporären Relaispunkt PR und die Lage des Roboters 101 zu diesem Zeitpunkt bezeichnen kann. Zudem kann die Aktionsbefehlerzeugungseinheit 24 zufällig einen Punkt im Passierbereich als den temporären Relaispunkt PR auswählen. Die Aktionsbefehlerzeugungseinheit 24 bezeichnet den temporären Relaispunkt PR für alle der „m“ Passierbereiche.
  • Nach dem Bestimmen des Motorwinkels erzeugt die Aktionsbefehlerzeugungseinheit 24 einen temporären Aktionsbefehl für eine andere Achse, die eine andere Achse als die Hauptachse ist (Schritt S350). Insbesondere erzeugt die Aktionsbefehlerzeugungseinheit 24 den temporären Aktionsbefehl für die andere Achse auf der Grundlage der Positionen des Aktionsstartpunktes PS, des Aktionszielpunktes PG und des temporären Relaispunktes PR.
  • Die Aktionsbefehlerzeugungseinheit 24 stellt nach dem Erzeugen des temporären Aktionsbefehls für die andere Achse den Aktionsbefehl für die andere Achse ein (Schritt S360). Details der Verarbeitung des Schrittes S350, der den temporären Aktionsbefehl für die andere Achse erzeugt, und der Verarbeitung des Schrittes S360, der den Aktionsbefehl für die andere Achse einstellt, werden später beschrieben. Die Verarbeitungen in Schritt S370 und den nachfolgenden Schritten ähneln den in der ersten Ausführungsform beschriebenen Verarbeitungen.
  • 18 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den temporären Aktionsbefehl für die andere Achse erzeugt. Die Diagramme aus 18 zeigen Winkelgeschwindigkeiten der Achsenmotoren auf der Gelenkinterpolationstrajektorie im Falle der zwei Passierbereiche. Das heißt, m=2 in 18.
  • Die zwei Diagramme oben in 18 sind Diagramme der Winkelgeschwindigkeit in Bezug auf die Hauptachse. Das mittlere und das untere Diagramm sind Diagramme der Winkelgeschwindigkeiten in Bezug auf die anderen Achsen. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit dar.
  • Die Aktionsbefehlerzeugungseinheit 24 erzeugt eine Gelenkinterpolationstrajektorie, um den Endeffektor 102 dazu zu veranlassen, sich von dem Aktionsstartpunkt PS zu dem Aktionszielpunkt PG zu bewegen, während er an jedem der „m“ temporären Relaispunkte PR stoppt. Nachfolgend wird die Gelenkinterpolationstrajektorie in der zweiten Ausführungsform als eine Gelenkinterpolationstrajektorie R1 bezeichnet. Zwischen den in 18 veranschaulichten oberen Diagrammen entspricht das linke Diagramm der Gelenkinterpolationstrajektorie R1 und entspricht das rechte Diagramm der Gelenkinterpolationstrajektorie R0.
  • Alle im Roboter 101 enthaltenen Achsen weisen die gleiche Aktionszeit auf. Hier ist „t1j“ die Aktionszeit vom Aktionsstartpunkt PS zu einem temporären Relaispunkt P1, ist „tkj“ („k“ ist eine natürliche Zahl von zwei bis „m“) die Aktionszeit von einem temporären Relaispunkt Pk-1 zu einem temporären Relaispunkt Pk und ist „tm+1j“ die Aktionszeit vom temporären Relaispunkt PR zum Aktionszielpunkt PG.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet für die Hauptachse den Aktionsbefehl auf der Gelenkinterpolationstrajektorie R0 und nicht den Aktionsbefehl auf der Gelenkinterpolationstrajektorie R1. Die Aktionsbefehlerzeugungseinheit 24 berechnet für die Hauptachse die Aktionszeit t1j, wenn eine Aktion vom Aktionsstartpunkt PS zum temporären Relaispunkt P1 durchgeführt wird, unter Verwendung des Aktionsbefehls auf der Gelenkinterpolationstrajektorie R0.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet für die Hauptachse ferner die Aktionszeit tkj, wenn eine Aktion vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk durchgeführt wird, unter Verwendung des Aktionsbefehls auf der Gelenkinterpolationstrajektorie R0. 18 veranschaulicht einen Fall des temporären Relaispunktes Pk-1=P1, des temporären Relaispunktes Pk=P2 und der Aktionszeit tkj=t2.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet für die Hauptachse ferner die Aktionszeit tm+1j, wenn eine Aktion vom temporären Relaispunkt PR zum Aktionszielpunkt PG durchgeführt wird, unter Verwendung des Aktionsbefehls auf der Gelenkinterpolationstrajektorie R0. 18 veranschaulicht einen Fall des temporären Relaispunktes PR=P2 und der Aktionszeit tm+1j=t3.
  • Zum Beispiel ist die Aktionszeit t1j die Zeit, in welcher eine Änderung des Winkels von einem Winkel θsj' der Hauptachse „j'“ an dem Aktionsstartpunkt PS zu einem Winkel θR1' der Hauptachse „j'“ an dem temporären Relaispunkt P1 mit einem Integralwert des Aktionsbefehls für die Hauptachse „j'“ vom Zeitpunkt t=0 zu t1j zusammenfällt.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet die Aktionszeiten t1j, tkj und tm+1j der anderen Achsen durch eine Verarbeitung, die derjenigen in der ersten Ausführungsform ähnelt. Hier ist die Aktionszeit für die Aktion vom Aktionsstartpunkt PS zum temporären Relaispunkt P1 die Aktionszeit t1j, ist die Aktionszeit für die Aktion vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk die Aktionszeit t2j und ist die Aktionszeit für die Aktion vom temporären Relaispunkt PR zum Aktionszielpunkt PG eine Aktionszeit t3j.
  • Nun wird die detaillierte Verarbeitung des Schrittes S360 in 17, das heißt die Verarbeitung des Einstellens des Aktionsbefehls für die andere Achse, beschrieben. 19 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Aktionsbefehl für die andere Achse einstellt. Aus den in 19 veranschaulichten Verarbeitungen wird die Beschreibung der Verarbeitung, die der in 10 beschriebenen Verarbeitung ähnelt, weggelassen, wenn sie redundant ist.
  • Die Aktionsbefehlerzeugungseinheit 24 legt den im Schritt S350 aus 17 erzeugten temporären Aktionsbefehl als vorläufigen Aktionsbefehl fest (Schritt S510).
  • Als Nächstes integriert die Aktionsbefehlerzeugungseinheit 24 Aktionen in aufeinanderfolgende Abschnitte gleicher Bewegungsrichtung (Schritt S521). Anders ausgedrückt, integriert die Aktionsbefehlerzeugungseinheit 24 die Abschnitte, in denen eine Winkeländerung in einer kontinuierlichen Richtung durchgeführt wird, in den vorläufigen Aktionsbefehl jeder Achse. Ein Satz von aufeinanderfolgenden Abschnitten mit gleicher Bewegungsrichtung ist ein Satz von Abschnitten, in dem der folgende Ausdruck (13) in einem Fall gilt, in dem ein Abschnitt vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk und ein Abschnitt vom temporären Relaispunkt Pk zu einem temporären Relaispunkt Pk+1 für die Achse „j“ vorliegen.

    [Ausdruck 13] s g n ( | θ k j θ k 1 j | ) = s g n ( | θ k + 1 j θ k j | )
    Figure DE112020007414T5_0013
  • 20 ist ein Satz von Diagrammen zum Erläutern der Aktionsbefehle in der kontinuierlichen Richtung, die von der Robotersteuerung gemäß der zweiten Ausführungsform integriert werden. Die Diagramme aus 20 zeigen die Winkelgeschwindigkeit in den aufeinanderfolgenden Abschnitten mit der gleichen Drehrichtung, bei der es sich um die Bewegungsrichtung handelt. In 20 ist das linke Diagramm ein Diagramm der Winkelgeschwindigkeit vor der Integration und ist das rechte Diagramm ein Diagramm der Winkelgeschwindigkeit nach der Integration. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit dar.
  • In 20 gibt „t1j“ die Aktionszeit im Abschnitt vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk an, gibt „t2j“ die Aktionszeit im Abschnitt vom temporären Relaispunkt Pk zum temporären Relaispunkt Pk+1 an und gibt „t3j“ die Aktionszeit im Abschnitt vom temporären Relaispunkt Pk+1 zu einem temporären Relaispunkt Pk+2 an.
  • Die Aktionen werden in der gleichen Drehrichtung in dem Abschnitt vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk und dem Abschnitt vom temporären Relaispunkt Pk zum temporären Relaispunkt Pk+1 durchgeführt. Daher integriert die Aktionsbefehlerzeugungseinheit 24 den Abschnitt von dem temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk und dem Abschnitt vom temporären Relaispunkt Pk zum temporären Relaispunkt Pk+1. Folglich integriert die Aktionsbefehlerzeugungseinheit 24 die Abschnitte, in denen die Winkeländerung kontinuierlich in der gleichen Richtung durchgeführt wird.
  • In diesem Fall verwendet die Aktionsbefehlerzeugungseinheit 24 für die Beschleunigung im integrierten Abschnitt die gleiche Beschleunigung wie die Beschleunigung im Abschnitt vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk. Für die Verlangsamung nach der Integration verwendet die Aktionsbefehlerzeugungseinheit 24 die gleiche Verlangsamung wie im Abschnitt vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk. Darüber hinaus legt die Aktionsbefehlerzeugungseinheit 24 die Aktionszeit im integrierten Abschnitt auf eine Summe der Aktionszeit im Abschnitt vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk und der Aktionszeit im Abschnitt vom temporären Relaispunkt Pk zum temporären Relaispunkt Pk+1 fest. Die Maximalgeschwindigkeit v-k-1j des Aktionsbefehls für die Achse „j“ im integrierten Abschnitt wird durch Lösen des folgenden Ausdrucks (14) für „v-k-1j“ bestimmt. Hier bezeichnet „a“ die Beschleunigung und bezeichnet „b“ die Verlangsamung.

    [Ausdruck 14] | θ k + 1 j θ k 1 j |   = a b s ( v ¯ k 1 j ) 2 * ( 2 ( t k 1 j + t k j ) a b s ( v ¯ k 1 j ) * ( 1 a 1 b ) ) s g n ( v ¯ k 1 j ) = s g n ( | θ k + 1 j θ k 1 j | )
    Figure DE112020007414T5_0014
  • In der folgenden Beschreibung wird im integrierten Abschnitt eine Position, an der mj (<m) Achsen „j“ einen Winkel θkj zu einem Zeitpunkt aufweisen, an dem die Winkelgeschwindigkeit der Achse „j“ null ist, als ein integrierter temporärer Relaispunkt bezeichnet.
  • Als Nächstes verschiebt die Aktionsbefehlerzeugungseinheit 24 den Beschleunigungs-/Verlangsamungszeitpunkt des Aktionsbefehls, um die Aktionszeit einer anderen ausgewählten Achse zu reduzieren (Schritt S530). Insbesondere bestimmt die Aktionsbefehlerzeugungseinheit 24 eine Verschiebungsmenge des Beschleunigungs-/Verlangsamungszeitpunkts, um die Aktionszeit der anderen ausgewählten Achse zu reduzieren, und erzeugt den Aktionsbefehl auf der Grundlage der bestimmten Verschiebungsmenge des Beschleunigungs-/Verlangsamungszeitpunkts.
  • 21 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Beschleunigungs-/Verlangsamungszeitpunkt des Aktionsbefehls für die andere Achse verschiebt, um die Aktionszeit zu reduzieren. In 21 wird ein Fall beschrieben, bei dem die Achse „j“ als die andere Achse ausgewählt ist.
  • In 21 ist das obere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert auf der Gelenkinterpolationstrajektorie R0 für die Hauptachse. Das mittlere Diagramm ist ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert vor der Änderung für die andere Achse und das untere Diagramm ist ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert nach der Änderung für die andere Achse. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit der Achse dar.
  • In 21 gibt „t1j“ die Aktionszeit im Abschnitt vom temporären Relaispunkt Pk-1 zum temporären Relaispunkt Pk an, gibt „t2j“ die Aktionszeit im Abschnitt vom temporären Relaispunkt Pk zum temporären Relaispunkt Pk+1 an und gibt „t3j“ die Aktionszeit im Abschnitt vom temporären Relaispunkt Pk+1 zum temporären Relaispunkt Pk+2 an.
  • Die Aktionsbefehlerzeugungseinheit 24 reduziert die Aktionszeit durch das Ändern der Maximalgeschwindigkeit des Aktionsbefehls in der Reihenfolge vom Aktionsbefehl für den Aktionsstartpunkt PS zum integrierten temporären Relaispunkt P1. Insbesondere ändert die Aktionsbefehlerzeugungseinheit 24 die Maximalgeschwindigkeit des Aktionsbefehls für den integrierten temporären Relaispunkt Pk-1 zum integrierten temporären Relaispunkt Pk von der Maximalgeschwindigkeit ovrdkj*v_maxj zur Maximalgeschwindigkeit ovrdkj_New*v_maxj (0<ovrdkj_New<1).
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet die im Schritt S521 verwendete Beschleunigung als Beschleunigung am integrierten temporären Relaispunkt Pk-1. Die Aktionsbefehlerzeugungseinheit 24 verwendet gleichermaßen die im Schritt S521 verwendete Verlangsamung als Verlangsamung am integrierten temporären Relaispunkt Pk-1.
  • Es ist anzumerken, dass die Aktionsbefehlerzeugungseinheit 24 den Wert von „ovrdkj_New“ jedes Mal ändern kann, wenn die Erzeugung der Trajektorie im Passierbereich wiederholt wird. Beispielsweise legt die Aktionsbefehlerzeugungseinheit 24 zu Beginn der Wiederholung ovrdkj_New=1 fest und verringert „ovrdkj_New“ jedes Mal um eine gewisse Menge, wenn sich die Anzahl der Wiederholungen erhöht.
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet unter Verwendung des folgenden Ausdrucks (15) eine Aktionszeit tkj_New, zu welcher die Aktionszeit tkj vom integrierten temporären Relaispunkt Pk-1 zum integrierten temporären Relaispunkt Pk geändert wird.

    [Ausdruck 15] t k j _ N e w = | θ k j θ k 1 j | o v r d k j _ N e w * v _ m a x j   + o v r d k j _ N e w * v _ m a x j 2 ( 1 a 1 b )
    Figure DE112020007414T5_0015
  • Das untere Diagramm aus 21 veranschaulicht die Aktionszeit bei k=1. Das heißt, das untere Diagramm aus 21 veranschaulicht die Aktionszeit t1j_New, bei der es sich um die Aktionszeit nach der Änderung handelt.
  • Die Aktionsbefehlerzeugungseinheit 24 kann, wie in 21 veranschaulicht, die Winkeländerung durch Verschieben des Achsenwinkels des Aktionsbefehls für die Achse „j“ am temporären Relaispunkt Pk reduzieren, um die Aktionszeit zu reduzieren. Eine Differenz zwischen einem Bereich T3 eines Trapezes vor der Änderung des Achsenwinkels und einem Bereich T4 eines Trapezes nach der Änderung des Achsenwinkels entspricht einer Menge der Reduzierung der Änderung des Winkels.
  • Als Nächstes bestimmt die Aktionsbefehlerzeugungseinheit 24 für jede andere Achse, für welche der Aktionsbefehl in Schritt S530 geändert wurde, ob die Aktionszeit im Aktionsbefehl nach der Änderung kürzer als oder gleich der Aktionszeit im vorläufigen Aktionsbefehl ist oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt für alle anderen Achsen, ob die andere Achse „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ erfüllt oder nicht (Schritt S540).
  • Erfüllt die andere Achse „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen Aktionsbefehl“ (Ja in Schritt S540), speichert die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl nach der Änderung als einen Kandidaten für die Ausgabetrajektorie. Das heißt, die Aktionsbefehlerzeugungseinheit 24 legt für die andere Achse, welche „die Aktionszeit im Aktionsbefehl nach der Änderung=der Aktionszeit im vorläufigen
    Aktionsbefehl“ erfüllt, den Aktionsbefehl nach der Änderung als den vorläufigen Aktionsbefehl fest (Schritt S550).
  • Für die andere Achse, welche „die Aktionszeit im Aktionsbefehl nach der Änderung>die Aktionszeit im vorläufigen Aktionsbefehl“ erfüllt (Nein in Schritt S540), ändert die Aktionsbefehlerzeugungseinheit 24 den vorläufigen Aktionsbefehl nicht und geht zur Verarbeitung des Schrittes S560 über.
  • Die Aktionsbefehlerzeugungseinheit 24 wählt aus den anderen Achsen, für welche der Aktionsbefehl in Schritt S530 geändert wurde, die andere Achse aus, deren Aktionszeit im vorläufigen Aktionsbefehl die Aktionszeit auf der Gelenkinterpolationstrajektorie R0 überschreitet (Schritt S560).
  • Als Nächstes verschiebt die Aktionsbefehlerzeugungseinheit 24 den Achsenwinkel des Aktionsbefehls am temporären Relaispunkt PR, um die Aktionszeit der im Schritt S521 integrierten anderen Achse zu reduzieren (Schritt S571). Die Aktionsbefehlerzeugungseinheit 24 erzeugt einen Aktionsbefehl, bei dem der Achsenwinkel am temporären Relaispunkt PR verschoben ist. Die Verarbeitungen in Schritt S580 und den nachfolgenden Schritten ähneln den in der ersten Ausführungsform beschriebenen Verarbeitungen.
  • 22 ist ein Satz von Diagrammen zum Erläutern einer Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Achsenwinkel des Aktionsbefehls für die andere Achse an dem temporären Relaispunkt verschiebt, um die Aktionszeit zu reduzieren. In 22 wird ein Fall beschrieben, bei dem die Achse „j“ ausgewählt ist.
  • In 22 ist das obere Diagramm ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert auf der Gelenkinterpolationstrajektorie R0 für die Hauptachse. Das mittlere Diagramm ist ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert vor der Änderung für die andere Achse und das untere Diagramm ist ein Diagramm der Winkelgeschwindigkeit entsprechend dem Geschwindigkeitsbefehlswert nach der Änderung für die andere Achse. In jedem Diagramm stellt die horizontale Achse die Zeit dar und stellt die vertikale Achse die Winkelgeschwindigkeit der Achse dar.
  • Die Aktionsbefehlerzeugungseinheit 24 ändert den Winkel der Achse „j“ am temporären Relaispunkt PR von „θRkj“ zu „θRkj_New“. Die Aktionsbefehlerzeugungseinheit 24 verwendet zudem die im Schritt S521 verwendete Beschleunigung als Beschleunigung am Aktionsstartpunkt PS. Die Aktionsbefehlerzeugungseinheit 24 verwendet darüber hinaus die im Schritt S521 verwendete Verlangsamung als Verlangsamung am temporären Relaispunkt PR.
  • Die Aktionsbefehlerzeugungseinheit 24 bezeichnet „θRkj_New“ aus einem Bereich, der den folgenden Ausdruck (16) erfüllt.

    [Ausdruck 16] | θ R k j θ R k 1 j | > | θ R k j _ N e w θ R K 1 j |
    Figure DE112020007414T5_0016
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet unter Verwendung des folgenden Ausdrucks (17) einen Wert der Aktionszeit tkj_New nach der Änderung vom integrierten temporären Relaispunkt Pk-1 zum integrierten temporären Relaispunkt Pk für die Achse „j“. 22 veranschaulicht einen Fall, in dem ovrdkj_New=1. Hier bezeichnet „a“ die Beschleunigung und bezeichnet „b“ die Verlangsamung.
    [Ausdruck 17] t k j _ N e w = | θ R k j _ N e w θ R k _ 1 j | o v r d k j _ N e w * v _ m a x j + o v r d k j _ N e w * v _ m a x j 2 ( 1 a 1 b )
    Figure DE112020007414T5_0017
  • Die Aktionsbefehlerzeugungseinheit 24 berechnet unter Verwendung des folgenden Ausdrucks (18) einen Wert der Aktionszeit tk+1j_New nach der Änderung vom integrierten temporären Relaispunkt Pk zum integrierten temporären Relaispunkt Pk+1 für die Achse „j“. 22 veranschaulicht einen Fall, in dem ovrdk+1j_New=1. Hier bezeichnet „c“ die Beschleunigung und bezeichnet „d“ die Verlangsamung.

    [Ausdruck 18] t k + 1 j _ N e w = | θ R k + 1 j θ R k j _ N e w | o v r d k + 1 j _ N e w * v _ m a x j   + o v r d k + 1 j _ N e w * v _ m a x j 2 ( 1 c 1 d )
    Figure DE112020007414T5_0018
  • Das untere Diagramm aus 22 veranschaulicht die Aktionszeit bei k=1. Das heißt, das untere Diagramm aus 22 veranschaulicht die Aktionszeit t1j_New und die Aktionszeit t2j_New als die Aktionszeit nach der Änderung.
  • Die Aktionsbefehlerzeugungseinheit 24 kann, wie in 22 veranschaulicht, die Winkeländerung durch Verschieben des Achsenwinkels des Aktionsbefehls für die Achse „j“ am temporären Relaispunkt Pk reduzieren, um die Aktionszeit zu reduzieren. Eine Differenz zwischen einem Bereich T5 eines Trapezes vor der Änderung des Achsenwinkels und einem Bereich T6 eines Trapezes nach der Änderung des Achsenwinkels entspricht einer Menge der Reduzierung der Änderung des Winkels.
  • Hier erfolgt eine Beschreibung der Verarbeitung in Schritt S400, bei welcher es sich um die Verarbeitung handelt, in welcher die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die Hauptachse einstellt. Die Aktionsbefehlerzeugungseinheit 24 kann den Aktionsbefehl für die Hauptachse durch zum Beispiel Verschieben des Startzeitpunkts des Aktionsbefehls einstellen. Alternativ kann die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für die Hauptachse durch kollektives Ändern der Maximalgeschwindigkeit während der Aktion einstellen oder kann den Aktionsbefehl für die Hauptachse durch lokales Ändern der Maximalgeschwindigkeit während der Aktion einstellen.
  • 23 ist ein Satz von Diagrammen zum Erläutern der Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Aktionsbefehl für die Hauptachse durch Verschieben des Startzeitpunkts des Aktionsbefehls für die Hauptachse einstellt. 24 ist ein Satz von Diagrammen zum Erläutern der Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Aktionsbefehl für die Hauptachse durch kollektives Ändern der Maximalgeschwindigkeit der Hauptachse während der Aktion einstellt. 25 ist ein Satz von Diagrammen zum Erläutern der Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Aktionsbefehl für die Hauptachse durch lokales Ändern der Maximalgeschwindigkeit der Hauptachse während der Aktion einstellt.
  • In jeder der 23 bis 25 ist das obere Diagramm ein Diagramm der Winkelgeschwindigkeit auf der Gelenkinterpolationstrajektorie R0 für die Hauptachse und ist das untere Diagramm ein Diagramm der Winkelgeschwindigkeit auf der Gelenkinterpolationstrajektorie R1 für die andere Achse.
  • Die Aktionsbefehlerzeugungseinheit 24 stellt den Aktionsbefehl für die Hauptachse ein, um eine Aktionszeit Σ1 m'tkj_1_New der Achse j 1 mit der längsten Aktionszeit aus den Aktionsbefehlen für die anderen Achsen, die in Schritt S360 eingestellt wurden, anzupassen.
  • Beim Einstellen des Aktionsbefehls für die Hauptachse durch das Verschieben des Startzeitpunktes des Aktionsbefehls verschiebt die Aktionsbefehlerzeugungseinheit 24 den Startzeitpunkt des Aktionsbefehls um „Δt“, wie in 23 veranschaulicht. In diesem Fall wählt die Aktionsbefehlerzeugungseinheit 24 „Δt“ innerhalb eines Bereiches so aus, dass die Aktionszeit Δt+Σ1 mtk der Hauptachse nach der Einstellung die Aktionszeit Σ1 m'tkj_l_New der Achse j_l mit der längsten Aktionszeit nicht überschreitet.
  • Beim Einstellen des Aktionsbefehls für die Hauptachse durch kollektives Ändern der Maximalgeschwindigkeit während der Aktion ändert die Aktionsbefehlerzeugungseinheit 24 die Maximalgeschwindigkeit von „v_maxj'“ zu „ovrdj'*v_maxj'“, wie in 24 veranschaulicht. Die Aktionsbefehlerzeugungseinheit 24 verwendet als „ovrdj'“ einen Wert, der durch Lösen des folgenden Ausdrucks (19) für „ovrdj'“ erhalten wird. Die Aktionsbefehlerzeugungseinheit 24 verwendet darüber hinaus als Beschleunigung und Verlangsamung die gleiche Beschleunigung und Verlangsamung wie diejenigen des Aktionsbefehls für die Hauptachse vor der Einstellung. Im Ausdruck (19) bezeichnen „a_j'“ und „b_j'“ die Beschleunigung bzw. die Verlangsamung im Aktionsbefehl für die Hauptachse.

    [Ausdruck 19] | θ G j ' θ S j ' |   = o v r d j ' * v _ m a x j ' 2   * ( 2 ( 1 m ' t k j _ l _ N e w ) o v r d j ' * v _ m a x j ' * ( 1 a _ j ' 1 b _ j ' ) )   0 < o v r d j ' 1
    Figure DE112020007414T5_0019
  • Beim Einstellen des Aktionsbefehls für die Hauptachse durch lokales Ändern der Maximalgeschwindigkeit während der Aktion ändert die Aktionsbefehlerzeugungseinheit 24, wie in 25 veranschaulicht, die Aktionszeit im Aktionsbefehlsabschnitt für die Hauptachse zu „tkj_l_New“, wobei der Aktionsbefehlsabschnitt der Aktion vom integrierten temporären Relaispunkt Pk-1 zum integrierten temporären Relaispunkt Pk für die Achse j_l entspricht. In einem Fall, in dem die Aktion von dem integrierten temporären Relaispunkt Pk-1 zu dem integrierten temporären Relaispunkt Pk für die Achse j_l die Integration von Δk+1 Aktionsbefehlen von einem temporären Relaispunkt Pk'-1 vor der Integration zu einem temporären Relaispunkt Pk'+Δk vor der Integration ist, ist hier der entsprechende Aktionsbefehlsabschnitt für die Hauptachse ein Abschnitt von dem Zeitpunkt tk, bis zum Zeitpunkt tk'+Δk.
  • Die Maximalgeschwindigkeit der Hauptachse in Bezug auf die Aktion vom integrierten temporären Relaispunkt Pk-1 zum integrierten temporären Relaispunkt Pk für die Achse j_l ist als „ovrdkj'*v_maxj'“ definiert. In der zweiten Ausführungsform wird zudem die Zeit, die zum Ändern der Geschwindigkeit beim Wechseln des Aktionsbefehlsabschnitts erforderlich ist, in einen nachfolgenden Aktionsabschnitt aufgenommen. In diesem Fall berechnet die Aktionsbefehlerzeugungseinheit 24 das Maximalantriebsmoment, das zum Antreiben der Hauptachse zum Zeitpunkt tkj_1_New verwendet werden kann, aus dem Aktionsbefehl für die andere Achse, der in Schritt S360 eingestellt wurde, und den Positions- und Geschwindigkeitsinformationen des temporären Relaispunkts PR für die Hauptachse. Als Nächstes erhält die Aktionsbefehlerzeugungseinheit 24 die Beschleunigung „ak“, wenn die Achse „j“ mit dem maximalen Antriebsmoment angetrieben wird. Hier bestimmt die Aktionsbefehlerzeugungseinheit 24 „ovrdkj'“ durch Lösen des folgenden Ausdrucks (20).

    [Ausdruck 20] | θ k + 1 j θ k j ' |   = o v r d k j '   * v _ m a x j ' + v _ m a x j ' 2 2 * a k ( o v r d k j ' o v r d k 1 j ' ) 2 ,0   < o v r d k j ' 1
    Figure DE112020007414T5_0020
  • 25 veranschaulicht „ovrdi1j'*v_maxj'“, „ovrd2j'*v_maxj'“ und „ovrd3j'*v_maxj'“ als Maximalgeschwindigkeit der Hauptachse nach der Änderung.
  • Die Aktionsbefehlerzeugungseinheit 24 führt eine Verarbeitung durch, die derjenigen der ersten Ausführungsform von Schritt S160 bis S230 ähnelt. Hier erfolgt eine Beschreibung der Verarbeitung in Schritt S240 der zweiten Ausführungsform, das heißt der Verarbeitung, in welcher die Aktionsbefehlerzeugungseinheit 24 den Passierbereich ändert.
  • In einem Fall, in dem die erzeugte Trajektorie mit einem der Hindernisse 31 und 32 interferiert, bestimmt die Aktionsbefehlerzeugungseinheit 24 einen Kandidaten aus den in Schritt S150 festgelegten Kandidaten für den Passierbereich und ändert den aktuellen Passierbereich in den bezeichneten Passierbereich. Alternativ kann die Aktionsbefehlerzeugungseinheit 24 einen Interferenzpunkt als Referenz verwenden, um den aktuellen Passierbereich in einen Passierbereich in einem Raum entfernt vom Interferenzpunkt um einen spezifischen Abstand zu ändern. Der Interferenzpunkt ist eine Schnittposition zwischen dem Roboter 101 und dem Hindernis, mit dem der Roboter zu einem Zeitpunkt kollidiert, zu dem die von der Aktionsbefehlerzeugungseinheit 24 erzeugte Trajektorie erstmals mit einem beliebigen der Hindernisse 31 und 32 kollidiert.
  • 26 ist eine Darstellung zum Erläutern der Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Passierbereich in den Raum ändert, der um den spezifischen Abstand von dem Interferenzpunkt entfernt ist. 26 veranschaulicht einen Fall, in dem drei Hindernis 31 bis 33 vorhanden sind. In dem hier veranschaulichten Fall ist das erste Hindernis, mit dem die Trajektorie kollidiert, das Hindernis 31.
  • Die Aktionsbefehlerzeugungseinheit 24 ändert einen Passierbereich (nicht veranschaulicht), der einen Interferenzpunkt PX passiert, in einen Passierbereich 604, der um einen spezifischen Abstand von dem Interferenzpunkt PX entfernt ist. Der spezifische Abstand ist in diesem Fall beispielsweise ein Abstand, dessen Wert etwa ein Vielfaches der Abmessung einer spezifischen Position des Endeffektors 102 beträgt. Es ist anzumerken, dass der spezifische Abstand ein Abstand sein kann, dessen Wert etwa das Vielfache der Abmessung einer spezifischen Position des Roboters 101 beträgt. Eine Richtung, in der die Aktionsbefehlerzeugungseinheit 24 den Passierbereich 604 hinzufügt, ist wünschenswerterweise eine Richtung weg vom Objektzentrum des Hindernisses 31, wie vom Interferenzpunkt PX aus betrachtet.
  • Die Aktionsbefehlerzeugungseinheit 24 ändert den Passierbereich, indem sie einen Kandidaten aus den im Schritt S150 festgelegten Kandidaten für den Passierbereich bezeichnet, und kann einen Passierbereich in einem Fall hinzufügen, in dem keine auszugebende Trajektorie vorhanden ist, auch wenn die Verarbeitung zum Einstellen des Aktionsbefehls für alle Kandidaten ausgeführt wird.
  • In einem Fall, in dem die Aktionszeit auf der erzeugten Trajektorie länger ist als die Aktionszeit auf der Gelenkinterpolationstrajektorie R0, wählt die Aktionsbefehlerzeugungseinheit 24 einen Kandidaten aus den in Schritt S150 bezeichneten Kandidaten für den Passierbereich aus und ändert den aktuellen Passierbereich in den bezeichneten Passierbereich. Darüber hinaus kann die Aktionsbefehlerzeugungseinheit 24, wie in 27 veranschaulicht, die Position des aktuellen Passierbereichs innerhalb eines Bereichs bewegen, in dem die Hindernisse 31 bis 33 nicht enthalten sind.
  • 27 ist eine Darstellung zum Erläutern der Verarbeitung, in welcher die Robotersteuerung gemäß der zweiten Ausführungsform den Passierbereich in die Position ändert, die kein Hindernis darin beinhaltet. 26 veranschaulicht einen Fall, in dem das Hindernis ein Hindernis 41 beinhaltet. Hier ist der Passierbereich vor der Änderung als ein Passierbereich 605 angegeben und ist der Passierbereich nach der Änderung als ein Passierbereich 606 angegeben.
  • Eine Bewegungsrichtung von dem Passierbereich 605 zu dem Passierbereich 606 ist wünschenswerterweise eine Richtung, in welcher sich die Änderung des Winkels jeder Achse des Roboters 101 verringert.
  • In einem Fall, in dem die Aktionszeit auch dann nicht reduziert wird, wenn die Position des Passierbereichs 605 in die Position des Passierbereichs 606 bewegt wird, kann die Aktionsbefehlerzeugungseinheit 24 den Passierbereich ändern, indem sie einen Kandidaten aus den in Schritt S150. festgelegten Kandidaten für den Passierbereich bezeichnet.
  • Wie bei der ersten Ausführungsform gibt die Aktionsbefehlerzeugungseinheit 24 der zweiten Ausführungsform zudem bevorzugt die Trajektorie mit der Aktionszeit aus, die kürzer als oder gleich der Aktionszeit auf der Gelenkinterpolationstrajektorie R0 ist, wenn die Aktion gemäß der erzeugten Trajektorie durchgeführt wird. Darüber hinaus wählt die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem die Aktionszeit auf allen erzeugten Trajektorien länger ist als die Aktionszeit auf der Gelenkinterpolationstrajektorie R0, die Trajektorie mit der kürzesten Aktionszeit aus den erzeugten Trajektorien aus. Die Aktionsbefehlerzeugungseinheit 24 kann daher aus den Trajektorien, die eine Interferenz mit dem Hindernis 31 vermeiden, die Trajektorie mit der kürzesten Aktionszeit auswählen.
  • Die Aktionsbefehlerzeugungseinheit 24 kann, wie vorstehend beschrieben, gemäß der zweiten Ausführungsform auch in dem Fall, in dem die Vielzahl von Hindernissen platziert und die Vielzahl von Passierbereichen festgelegt ist, die Trajektorie, die den Passierbereich passiert, erzeugen, wie in der ersten Ausführungsform. Das heißt, die Aktionsbefehlerzeugungseinheit 24 stellt den Aktionsbefehl für die andere Achse ein und stellt dann den Aktionsbefehl für die Hauptachse ein, um die Trajektorie für den Aktionsbefehl, der eingestellt wurde, zu erzeugen. Die Aktionsbefehlerzeugungseinheit 24 speichert die erzeugte Trajektorie als einen Kandidaten für die Ausgabetrajektorie, wenn keine Interferenz mit dem Hindernis 31 vorliegt. Die Aktionsbefehlerzeugungseinheit 24 kann daher nur die Trajektorie erzeugen, die eine Kollision mit jedem Hindernis vermeidet und vom Roboter 101 als Kandidat für die Ausgabetrajektorie umgesetzt werden kann.
  • Wie bei der ersten Ausführungsform kann die Aktionsbefehlerzeugungseinheit 24 zudem die Trajektorie mit der Aktionszeit erzeugen, die kürzer als oder gleich derjenigen in dem Fall ist, in dem der Passierpunkt begrenzt ist und die Position des Passierpunkts nicht geändert wird. Wie bei der ersten Ausführungsform kann die Aktionsbefehlerzeugungseinheit 24 darüber hinaus aus den Trajektorien, die eine Interferenz mit dem Hindernis vermeiden, die Trajektorie mit der kürzesten Aktionszeit erzeugen.
  • Dritte Ausführungsform.
  • Als Nächstes wird eine dritte Ausführungsform unter Bezugnahme auf die 28 bis 31 beschrieben. In der dritten Ausführungsform stellt die Robotersteuerung 200 den Aktionsbefehl für jede Achse durch maschinelles Lernen ein. Wie bei der ersten Ausführungsform beschreibt auch die dritte Ausführungsform ein Verfahren zum Erzeugen einer Trajektorie, auf welcher der Endeffektor 102 betrieben wird, ohne mit dem Hindernis 31 zu kollidieren, wenn sich eine spezifische Position des Endeffektors 102 vom Aktionsstartpunkt PS zum Aktionszielpunkt PG bewegt.
  • In der dritten Ausführungsform ist kein Passierbereich für den Endeffektor 102 bezeichnet. Darüber hinaus sind die Konfigurationen des Roboters 101 und der Robotersteuerung 200 der dritten Ausführungsform die gleichen wie die Konfigurationen des Roboters 101 und der Robotersteuerung 200 der ersten Ausführungsform.
  • Nachfolgend wird eine Verarbeitung beschrieben, in welcher die Aktionsbefehlerzeugungseinheit 24 der dritten Ausführungsform die Trajektorie des Endeffektors 102 erzeugt. 28 ist ein Ablaufdiagramm, das eine Prozedur der Trajektorieerzeugungsverarbeitung durch die Robotersteuerung gemäß der dritten Ausführungsform veranschaulicht. In der Robotersteuerung 200 der dritten Ausführungsform führt die Aktionsbefehlerzeugungseinheit 24 eine Verarbeitung aus, die der Verarbeitung in den Schritten S110 bis S140 ähnelt, die unter Bezugnahme auf 4 in der ersten Ausführungsform beschrieben wurden.
  • Nach der Bearbeitung des Schrittes S140 verwendet die Aktionsbefehlerzeugungseinheit 24 maschinelles Lernen, um eine Lernverarbeitung zum Erzeugen des Aktionsbefehls für jeden Achsenmotor entsprechend einer Trajektorie mit der kürzesten Aktionszeit aus Trajektorien auszuführen, welche eine Interferenz mit dem Hindernis 31 unter den Beschränkungen der Roboterhandlung vermeiden. Die Lernverarbeitung beinhaltet die Verarbeitung zum Reduzieren der Aktionszeit durch Einstellen des Aktionsbefehls für die andere Achse und die Verarbeitung zum Erzeugen der Trajektorie durch Einstellen des Aktionsbefehls für die Achsenmotoren, einschließlich mindestens derjenigen für die Hauptachse.
  • Insbesondere führt die Aktionsbefehlerzeugungseinheit 24 die Verarbeitung des Schrittes S140 und dann die Verarbeitung der Schritte S170 bis S200 durch. In diesem Fall führt die Aktionsbefehlerzeugungseinheit 24 die Verarbeitung von Schritt S191 anstelle von Schritt S190 aus. Das heißt, wenn die erzeugte Trajektorie dem Hindernis 31 nicht ausweichen kann (Nein in Schritt S180), stellt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für alle Achsen, einschließlich der Hauptachse, ein und erzeugt die Trajektorie (Schritt S191). Details der Verarbeitung zum Einstellen des Aktionsbefehls für alle Achsen, wie bei der Verarbeitung des Schrittes S191, werden später beschrieben.
  • Erfüllt in der Verarbeitung des Schrittes S200 die Trajektorie die Bedingung in Schritt S200 nicht (Nein in Schritt S200), bestimmt die Aktionsbefehlerzeugungseinheit 24, ob ein Zählerstand des ersten Wiederholungszählers einen festgelegten Maximalwert angibt oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht (Schritt S220).
  • Ist „i=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S220), wird eins zu „i“ addiert (Schritt S250) und kehrt die Verarbeitung zu Schritt S170 zurück. Ist „i=der maximalen Anzahl von Wiederholungen“ dagegen erfüllt (Ja in Schritt S220), gibt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl entsprechend der erzeugten Trajektorie mit der kürzesten Aktionszeit an die Achsenmotor-Steuereinheiten aus (Schritt S260).
  • Hier wird die Verarbeitung des Schrittes S170 in der dritten Ausführungsform, das heißt die Verarbeitung des Einstellens des Aktionsbefehls für die andere Achse, unter Bezugnahme auf 29 detailliert beschrieben. 29 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der dritten Ausführungsform den Aktionsbefehl für die andere Achse einstellt. 30 ist ein Diagramm zum Erläutern des Aktionsbefehls für jeden von der Robotersteuerung gemäß der dritten Ausführungsform verwendeten Achsenmotor. 30 veranschaulicht Parameter, die Werte des Aktionsbefehls für jeden Achsenmotor darstellen.
  • In der dritten Ausführungsform verwendet die Aktionsbefehlerzeugungseinheit 24 einen Motorgeschwindigkeitsbefehl für jeden Achsenmotor. In der dritten Ausführungsform verwendet die Aktionsbefehlerzeugungseinheit 24 zudem die in 30 veranschaulichten Parameter als Aktionsbefehlparameter, um die Einstellung des Aktionsbefehls für jeden Achsenmotor zu vereinfachen.
  • Der erste Aktionsbefehlparameter ist die Anzahl der Winkeländerungen während der Aktion. Die Winkeländerung während der Aktion ist eine Winkeländerung in einer Reihe von Motoraktionen, bei denen jeder Achsenmotor aus einem Zustand der Geschwindigkeit von null heraus beschleunigt, mit einer konstanten Geschwindigkeit nach dem Erreichen der bezeichneten Maximalgeschwindigkeit betrieben wird und sich nach einem Ablauf eines gewissen Zeitraums verlangsamt. In der dritten Ausführungsform stellt „jk“ die Anzahl der Winkeländerungen während einer Aktion eines j-Achsenmotors dar, welcher der Achsenmotor der Achse „j“ des Roboters 101 ist.
  • Der zweite Aktionsbefehlparameter ist ein Startzeitpunkt jeder Winkeländerung. Es sind „jk“ Startzeitpunkte der Winkeländerungen in Bezug auf den Aktionsbefehl für den j-Achsenmotor des Roboters 101 vorhanden. In der dritten Ausführungsform stellt „timejk“ den Startzeitpunkt einer jk-ten Winkeländerung dar.
  • Der dritte Aktionsbefehlparameter ist die Maximalwinkelgeschwindigkeit bei jeder Winkeländerung. Es sind „jk“ Maximalgeschwindigkeiten bei den Winkeländerungen in Bezug auf den Aktionsbefehl für den j-Achsenmotor des Roboters 101 vorhanden. In der dritten Ausführungsform stellt „v_maxjk“ die Maximalgeschwindigkeit bei der jk-ten Winkeländerung dar.
  • Der vierte Aktionsbefehlparameter ist eine Zeitdauer, in der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt. Es sind „jk“ Zeitdauern vorhanden, in denen jeder Achsenmotor die Maximalgeschwindigkeit in Bezug auf den Aktionsbefehl für den j-Achsenmotor des Roboters 101 ausgibt. In der dritten Ausführungsform stellt „ctjk“ eine Ausgabezeit dar, bei der es sich um die Zeitdauer handelt, in der jeder Achsenmotor die Maximalgeschwindigkeit bei der jk-ten Winkeländerung ausgibt.
  • Der fünfte Aktionsbefehlparameter ist die Beschleunigung bei jeder Winkeländerung. Es sind „jk“ Beschleunigungen bei den Winkeländerungen in Bezug auf den Aktionsbefehl für den j-Achsenmotor des Roboters 101 vorhanden. In der dritten Ausführungsform stellt „ajk“ die Beschleunigung bei jeder jk-ten Winkeländerung dar.
  • Der sechste Aktionsbefehlparameter ist die Verlangsamung bei jeder Winkeländerung. Es sind „jk“ Verlangsamungen bei den Winkeländerungen in Bezug auf den Aktionsbefehl für den j-Achsenmotor des Roboters 101 vorhanden. In der dritten Ausführungsform stellt „djk“ die Verlangsamung bei jeder jk-ten Winkeländerung dar.
  • Die Aktionsbefehlerzeugungseinheit 24 legt zunächst für alle anderen Achsen „jk“ fest, wobei es sich um die Anzahl der Winkeländerungen während der Aktion handelt (Schritt S810). Auf der Gelenkinterpolationstrajektorie R0 wird für alle Achsen jk=1 festgelegt.
  • Die Aktionsbefehlerzeugungseinheit 24 erlernt und erzeugt eine Trajektorie, die eine Interferenz mit dem Hindernis 31 vermeidet. Da die Trajektorie, welche die Interferenz vermeidet, einen höheren Freiheitsgrad aufweist als die Gelenkinterpolationstrajektorie R0, erzeugt die Aktionsbefehlerzeugungseinheit 24 die Trajektorie wünschenswerterweise so, dass eine Vielzahl von Achsen vorhanden ist, die jk=2 oder mehr erfüllt.
  • Als Nächstes legt die Aktionsbefehlerzeugungseinheit 24 für jede Winkeländerung vorläufige Werte der Beschleunigung ajk und der Verlangsamung djk fest (Schritt S820). In diesem Fall legt die Aktionsbefehlserzeugungseinheit 24 Werte als „ajk“ und „djk“ fest, welche die Maximalbeschleunigung, die von jedem Achsenmotor allein abgegeben werden kann, nicht überschreiten.
  • Als Nächstes initialisiert die Aktionsbefehlerzeugungseinheit 24 einen ersten Lernzähler, der ein Zähler ist, der zum Bestimmen der Anzahl von Wiederholungen bei der Verarbeitung von sich wiederholendem primären Lernen verwendet wird. Das heißt, die Aktionsbefehlerzeugungseinheit 24 ersetzt i2=1 in den ersten Lernzähler (Schritt S830). Der erste Lernzähler ist ein Zähler, der bei der Verarbeitung des später beschriebenen Schrittes S870 verwendet wird.
  • Als Nächstes erzeugt die Aktionsbefehlerzeugungseinheit 24 einen Kandidaten C1 als Kandidaten für den Startzeitpunkt timejk, die Maximalgeschwindigkeit v_maxjk und die Ausgabezeit ctjk aus den Aktionsbefehlparametern (Schritt S840). Insbesondere erzeugt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C1 für den Aktionsbefehl, der den Startzeitpunkt timejk der Winkeländerung, die Maximalgeschwindigkeit v maxjk bei jeder Winkeländerung und einen anfänglichen Wert der Ausgabezeit ctjk, in der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt, festlegt, aus den Aktionsbefehlparametern. Hier legt die Aktionsbefehlerzeugungseinheit 24 als „v_maxjk“ einen Wert fest, der die Maximalgeschwindigkeit, die von jedem Achsenmotor ausgegeben werden kann, nicht überschreitet. Darüber hinaus legt die Aktionsbefehlerzeugungseinheit 24 als „timejk“ einen Wert fest, der die Aktionszeit auf der Gelenkinterpolationstrajektorie R0 nicht überschreitet.
  • Die Aktionsbefehlerzeugungseinheit 24 bestimmt die Anzahl der Sätze des zu erzeugenden Kandidaten C1 auf der Grundlage eines Parameterlernalgorithmus, der bei der Verarbeitung des folgenden Schritts S850 zu verwenden ist. Der bei der Verarbeitung von Schritt S850 verwendete Parameterlernalgorithmus ist ein Algorithmus zum Lernen der Aktionsbefehlparameter. Das heißt, der bei der Verarbeitung von Schritt S850 verwendete Parameterlernalgorithmus ist ein Algorithmus zum Lernen einer Bewertungsfunktion (später zu beschreibende Bewertungsfunktion J1) der den Aktionsbefehl darstellenden Parameter.
  • Zum Beispiel bereitet die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem bestärkendes Schwarmlernen oder ein genetischer Algorithmus bei der Verarbeitung von Schritt S850 verwendet wird, eine Vielzahl von Sätzen von Aktionsbefehlparametern als den Kandidaten C1 vor. Alternativ bereitet die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem ein Bayes'sche Optimierung bei der Verarbeitung von Schritt S850 verwendet wird, einen Satz von Aktionsbefehlparametern als den Kandidaten C1 vor.
  • Als Nächstes aktualisiert die Aktionsbefehlerzeugungseinheit 24 die Werte jedes erzeugten Kandidaten C1 auf der Grundlage der Bewertungsfunktion J1 (Schritt S850). Das heißt, auf der Grundlage der Bewertungsfunktion J1 aktualisiert die Aktionsbefehlerzeugungseinheit 24 die Werte des Startzeitpunktes timejk der Winkeländerung, der Maximalgeschwindigkeit v_maxjk bei jeder Winkeländerung und der Ausgabezeit ctjk, in der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt. Die Aktionsbefehlerzeugungseinheit 24 aktualisiert die Werte jedes Kandidaten C1 der Aktionsbefehlparameter, um einen Bewertungswert V1 der Bewertungsfunktion J1 zu minimieren.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet beispielsweise eine Funktion, die durch den folgenden Ausdruck (21) ausgedrückt ist, als Bewertungsfunktion J1. In Ausdruck (21) stellt „Ci“ eine beliebige Konstante dar, die c1>0 erfüllt, und ist „tact“ die Aktionszeit im Aktionsbefehl, entsprechend dem Kandidaten C1 der verwendeten Aktionsbefehlparameter.

    [Ausdruck 21] 1 = K o l l i s i o n + c 1 * t a c t   K o l l i s i o n = { 100000 i m   K o l l i s i o n s f a l l 0 i n   a n d e r e n   F a ¨ l l e n }
    Figure DE112020007414T5_0021
  • Ein erster Term der durch den Ausdruck (21) ausgedrückten Funktion erhöht sich, wenn während einer Aktion eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 auftritt. Ein zweiter Term der durch den Ausdruck (21) ausgedrückten Funktion ist proportional zu der Aktionszeit, wenn der Aktionsbefehl aus den Aktionsbefehlparametern als Kandidat C1 erzeugt wird. Der Kandidat C1 zum Verringern des Bewertungswertes V1, wobei es sich um den Wert der in Ausdruck (21) ausgedrückten Funktion handelt, ist ein Kandidat, der eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 vermeidet und die Aktionszeit reduziert. Das heißt, die Aktionsbefehlerzeugungseinheit 24 erzeugt den Kandidaten C1 der Parameter, der die dritte Aktionszeit reduziert, während eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 vermieden wird, auf der Grundlage des Parameterlernalgorithmus zum Lernen der Bewertungsfunktion J1. Der Bewertungswert V1 verringert sich mit der Reduzierung der Aktionszeit.
  • Wie vorstehend beschrieben, ist der Parameterlernalgorithmus in Schritt S850, der von der Aktionsbefehlerzeugungseinheit 24 verwendet wird, zum Beispiel ein beliebiges Black-Box-Optimierungsverfahren, wie etwa bestärkendes Schwarmlernen, ein genetischer Algorithmus oder eine Bayes'sche Optimierung.
  • Als Nächstes prüft die Aktionsbefehlerzeugungseinheit 24, ob ein oder mehrere der Kandidaten C1 vorhanden sind oder nicht, für die der Bewertungswert V1 als Wert der Bewertungsfunktion J1 kleiner als oder gleich einem bezeichneten Wert TH1 ist, der im Voraus aus den Kandidaten C1 der aktualisierten Aktionsbefehlparameter bezeichnet ist (Schritt S860). Der bezeichnete Wert TH1, der im Voraus bezeichnet ist, ist beispielsweise ein Wert, der etwa das Doppelte des Wertes der Aktionszeit auf der Gelenkinterpolationstrajektorie R0 ist.
  • Gibt es keinen Kandidaten C1, für den der Bewertungswert V1 kleiner als oder gleich dem bezeichneten Wert TH1 ist (Nein in Schritt S860), bestimmt die Aktionsbefehlerzeugungseinheit 24, ob die Anzahl der Wiederholungen gleich der maximalen Anzahl von Wiederholungen ist oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i2=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht (Schritt S870).
  • Ist „i2=der maximalen Anzahl von Wiederholungen“ erfüllt (Ja in Schritt S870), geht die Verarbeitung zu Schritt S191 über, das heißt der Verarbeitung zum Einstellen des Aktionsbefehls für alle Achsen, einschließlich der Hauptachse. Ist „i2=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S870), addiert die Aktionsbefehlerzeugungseinheit 24 eins zu „i2“ (Schritt S880) und kehrt zur Verarbeitung des Schrittes S850 zurück.
  • Gibt es keinen Kandidaten C1, für den der Bewertungswert V1 kleiner als oder gleich dem bezeichneten Wert TH1 ist (Nein in Schritt S860), und ist „i2=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S870), wiederholt die Aktionsbefehlerzeugungseinheit 24 die Verarbeitung von Schritt S850 bis S880.
  • Gibt es mindestens einen Kandidaten C1, für den der Bewertungswert V1 kleiner als oder gleich dem bezeichneten Wert TH1 ist (Ja in Schritt S860), initialisiert die Aktionsbefehlerzeugungseinheit 24 einen zweiten Lernzähler, der ein Zähler ist, der für das Bestimmen der Anzahl von Wiederholungen bei der Verarbeitung zum Wiederholen des primären Lernens verwendet wird. Das heißt, die Aktionsbefehlerzeugungseinheit 24 ersetzt i3=1 in den zweiten Lernzähler (Schritt S890). Der zweite Lernzähler ist ein Zähler, der bei der Verarbeitung des später beschriebenen Schrittes S930 verwendet wird.
  • Als Nächstes erzeugt die Aktionsbefehlerzeugungseinheit 24 auf der Grundlage des Kandidaten C1 der Parameter, dessen Bewertungswert V1 kleiner als oder gleich dem bezeichneten Wert TH1 ist, einen Kandidaten C2 als Kandidaten für den Startzeitpunkt timejk, die Maximalgeschwindigkeit v_maxjk, die Ausgabezeit ctjk, die Beschleunigung ajk und die Verlangsamung djk aus den Aktionsbefehlparametern (Schritt S900). Insbesondere erzeugt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C2 als einen Kandidaten für den Aktionsbefehl, der den Startzeitpunkt timejk der Winkeländerung, die Maximalgeschwindigkeit v_maxjk bei jeder Winkeländerung, die Ausgabezeit ctjk, in der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt, einen anfänglichen Wert der Beschleunigung ajk und einen anfänglichen Wert der Verlangsamung djk festlegt, aus den Aktionsbefehlparametern. Hier verwendet die Aktionsbefehlerzeugungseinheit 24 „timejk“, „v_maxjk“ und „ctjk“ des Kandidaten C1, für den der Bewertungswert V1 kleiner als oder gleich dem bezeichneten Wert TH1 ist, in Schritt S860.
  • Die Aktionsbefehlerzeugungseinheit 24 bestimmt die Anzahl der zu erzeugenden Kandidaten C2 auf der Grundlage eines Parameterlernalgorithmus, der bei der Verarbeitung des folgenden Schritts S910 zu verwenden ist. Der bei der Verarbeitung von Schritt S910 verwendete Parameterlernalgorithmus ist ein Algorithmus zum Lernen der Aktionsbefehlparameter. Das heißt, der bei der Verarbeitung von Schritt S910 verwendete Parameterlernalgorithmus ist ein Algorithmus zum Lernen einer Bewertungsfunktion (später zu beschreibende Bewertungsfunktion J2) der den Aktionsbefehl darstellenden Parameter.
  • Zum Beispiel bereitet die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem bestärkendes Schwarmlernen oder ein genetischer Algorithmus bei der Verarbeitung von Schritt S910 verwendet wird, eine Vielzahl von Sätzen von Aktionsbefehlparametern als den Kandidaten C2 vor. Alternativ bereitet die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem ein Bayes'sche Optimierung bei der Verarbeitung von Schritt S910 verwendet wird, einen Satz von Aktionsbefehlparametern als den Kandidaten C2 vor.
  • Als Nächstes aktualisiert die Aktionsbefehlerzeugungseinheit 24 die Werte jedes erzeugten Kandidaten C2 auf der Grundlage der Bewertungsfunktion J2 (Schritt S910). Das heißt, auf der Grundlage der Bewertungsfunktion J2 aktualisiert die Aktionsbefehlerzeugungseinheit 24 die Werte des Startzeitpunktes timejk der Winkeländerung, der Maximalgeschwindigkeit v_maxjk bei jeder Winkeländerung, der Ausgabezeit ctjk, in der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt, die Beschleunigung ajk und die Verlangsamung djk. Die Aktionsbefehlerzeugungseinheit 24 aktualisiert die Werte jedes Kandidaten C2 der Aktionsbefehlparameter, um einen Bewertungswert V2 der Bewertungsfunktion J2 zu minimieren.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet beispielsweise eine Funktion, die durch den folgenden Ausdruck (22) ausgedrückt ist, als Bewertungsfunktion J2. In Ausdruck (22) stellt „c1“ eine beliebige Konstante dar, die c1>0 erfüllt, und stellt „c2“ stellt eine beliebige Konstante dar, die c2>0 erfüllt. Darüber hinaus ist
    „tact“ die Aktionszeit im Aktionsbefehl, entsprechend dem Kandidaten C2 der verwendeten Aktionsbefehlparameter. Zudem ist „torque_o“ ein absoluter Wert der Maximalüberschussmenge, wenn eine Achse vorhanden ist, die Drehmomentbeschränkungen während einer Aktion überschreitet, und wird auf null gesetzt, wenn keine Achse die Drehmomentbeschränkungen während der Aktion überschreitet.
    [Ausdruck 22] J 2 = K o l l i s i o n + c 1 * t a c t + c 2 * t o r q u e _ o   K o l l i s i o n = { 100000 i m   K o l l i s i o n s f a l l 0 i n   a n d e r e n   F a ¨ l l e n }
    Figure DE112020007414T5_0022
  • Ein erster Term der durch den Ausdruck (22) ausgedrückten Funktion erhöht sich, wenn während einer Aktion eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 auftritt. Ein zweiter Term der durch den Ausdruck (22) ausgedrückten Funktion ist proportional zu der Aktionszeit, wenn der Aktionsbefehl aus den Aktionsbefehlparametern als Kandidat C2 erzeugt wird. Ein dritter Term der durch den Ausdruck (22) ausgedrückten Funktion, ist ein Term, der sich auf die Drehmomentbeschränkungen des Roboters 101 bezieht, und der Wert des dritten Terms erhöht sich, wenn die Beschränkungen missachtet werden. Da hier die Drehmomentbeschränkungen des Roboters 101 von der Lage des Roboters 101 und der Geschwindigkeit jeder Achse abhängen, ändert sich der Wert während der Aktion. Der Kandidat C2 zum Verringern des Bewertungswertes V2, wobei es sich um den Wert der in Ausdruck (22) ausgedrückten Funktion handelt, ist ein Kandidat, der eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 vermeidet, die Drehmomentbeschränkungen des Roboters 101 während der Aktion erfüllt und die Aktionszeit reduziert. Das heißt, die Aktionsbefehlerzeugungseinheit 24 erzeugt den Kandidaten C2 der Parameter, der eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 vermeidet, die Drehmomentbeschränkungen des Roboters 101 während der Aktion erfüllt und die dritte Aktionszeit reduziert, auf der Grundlage des Parameterlernalgorithmus zum Lernen der Bewertungsfunktion J2. Der Bewertungswert V2 verringert sich mit der Reduzierung der Aktionszeit.
  • Wie vorstehend beschrieben, ist der Parameterlernalgorithmus in Schritt S910, der von der Aktionsbefehlerzeugungseinheit 24 verwendet wird, zum Beispiel ein beliebiges Black-Box-Optimierungsverfahren, wie etwa bestärkendes Schwarmlernen, ein genetischer Algorithmus oder eine Bayes'sche Optimierung.
  • Als Nächstes prüft die Aktionsbefehlerzeugungseinheit 24, ob ein oder mehrere der Kandidaten C2 vorhanden sind oder nicht, für die der Bewertungswert V2 als Wert der Bewertungsfunktion J2 kleiner als oder gleich einem bezeichneten Wert TH2 ist, der im Voraus aus den Kandidaten C2 der aktualisierten Aktionsbefehlparameter bezeichnet ist (Schritt S920). Der bezeichnete Wert TH2, der im Voraus bezeichnet ist, ist beispielsweise ein Wert der Aktionszeit auf der Gelenkinterpolationstrajektorie R0.
  • Gibt es mindestens einen Kandidaten C2, für den der Bewertungswert V2 kleiner als oder gleich dem bezeichneten Wert TH2 ist (Ja in Schritt S920), legt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C2, für den der Bewertungswert V2 minimal ist, als den Aktionsbefehl für die andere Achse fest (Schritt S950). Das heißt, die Aktionsbefehlerzeugungseinheit 24 wählt einen Kandidaten C2 mit der kürzesten Aktionszeit aus und legt den ausgewählten Kandidaten C2 als Parameter beim Einstellen des Aktionsbefehls für die andere Achse fest.
  • Gibt es dagegen keinen Kandidaten C2, für den der Bewertungswert V2 kleiner als oder gleich dem bezeichneten Wert TH2 ist (Nein in Schritt S920), bestimmt die Aktionsbefehlerzeugungseinheit 24, ob die Anzahl der Wiederholungen gleich der maximalen Anzahl von Wiederholungen ist oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i3=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht (Schritt S930).
  • Ist „i3=der maximalen Anzahl von Wiederholungen“ erfüllt (Ja in Schritt S930), legt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C2, für den der Bewertungswert V2 minimal ist, als den Aktionsbefehl für die andere Achse fest (Schritt S950).
  • Ist „i3=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S930), addiert die Aktionsbefehlerzeugungseinheit 24 eins zu „i3“ (Schritt S940) und kehrt zur Verarbeitung des Schrittes S910 zurück.
  • Gibt es keinen Kandidaten C2, für den der Bewertungswert V2 kleiner als oder gleich dem bezeichneten Wert TH2 ist (Nein in Schritt S920), und ist „i3=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S930), wiederholt die Aktionsbefehlerzeugungseinheit 24 die Verarbeitung von Schritt S910 bis S940. Gibt es mindestens einen Kandidaten C2, für den der Bewertungswert V2 kleiner als oder gleich dem bezeichneten Wert TH2 ist, oder ist „i3=der maximalen Anzahl von Wiederholungen“ erfüllt, legt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C2, für den der Bewertungswert V2 minimal ist, als den Aktionsbefehl für die andere Achse fest (Schritt S950). Die Aktionsbefehlerzeugungseinheit 24 führt danach die Verarbeitung des Schrittes S170 durch.
  • Nach dem Abschließen der in 28 veranschaulichten Verarbeitung des Schrittes S170 prüft die Aktionsbefehlerzeugungseinheit 24, ob die Aktionszeit beim Betrieb des Roboters 101 unter Verwendung des in Schritt S950 eingestellten Aktionsbefehls kürzer als oder gleich der Aktionszeit auf der Gelenkinterpolationsbahn R0 ist. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob die erzeugte Trajektorie dem Hindernis 31 ausweicht oder nicht (Schritt S180).
  • Weicht die erzeugte Trajektorie dem Hindernis 31 aus (Ja in Schritt S180), führt die Aktionsbefehlerzeugungseinheit 24 die Verarbeitung des Schrittes S260 aus. Wenn die erzeugte Trajektorie dem Hindernis 31 dagegen nicht ausweichen kann (Nein in Schritt S180), stellt die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl für alle Achsen, einschließlich der Hauptachse, ein und erzeugt die Trajektorie mit dem eingestellten Aktionsbefehl (Schritt S191).
  • Hier wird die Verarbeitung des Schrittes S191 in der dritten Ausführungsform, das heißt die Verarbeitung des Einstellens des Aktionsbefehls für alle Achsen, einschließlich der Hauptachse, unter Bezugnahme auf 31 detailliert beschrieben. 31 ist ein Ablaufdiagramm, das eine Verarbeitungsprozedur veranschaulicht, in welcher die Robotersteuerung gemäß der dritten Ausführungsform den Aktionsbefehl für alle Achsen einstellt.
  • Die Aktionsbefehlerzeugungseinheit 24 legt zunächst für alle Achse, einschließlich der Hauptachse, „jk“ fest, wobei es sich um die Anzahl der Winkeländerungen während der Aktion handelt (Schritt S1010). Die Aktionsbefehlerzeugungseinheit 24 legt „jk“ für die andere Achse wünschenswerterweise auf den in Schritt S950 eingestellten Wert fest.
  • Als Nächstes legt die Aktionsbefehlerzeugungseinheit 24 für jede Winkeländerung vorläufige Werte der Beschleunigung ajk und der Verlangsamung djk fest (Schritt S1020). Die Aktionsbefehlerzeugungseinheit 24 legt die Beschleunigung ajk und die Verlangsamung djk für die andere Achse wünschenswerterweise auf die in Schritt S950 eingestellten Werte fest.
  • Als Nächstes initialisiert die Aktionsbefehlerzeugungseinheit 24 einen dritten Lernzähler, der ein Zähler ist, der zum Bestimmen der Anzahl von Wiederholungen bei der Verarbeitung von sich wiederholendem Lernen verwendet wird. Das heißt, die Aktionsbefehlerzeugungseinheit 24 ersetzt i4=1 in den dritten Lernzähler (Schritt S1030). Der dritte Lernzähler ist ein Zähler, der bei der Verarbeitung des später beschriebenen Schrittes S1070 verwendet wird.
  • Als Nächstes erzeugt die Aktionsbefehlerzeugungseinheit 24 einen Kandidaten C3 als Kandidaten für den Startzeitpunkt timejk, die Maximalgeschwindigkeit v_maxjk, die Ausgabezeit ctjk die Beschleunigung ajk und die Verlangsamung djk aus den Aktionsbefehlparametern (Schritt S1040). Insbesondere erzeugt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C3 als einen Kandidaten für den Aktionsbefehl, der den Startzeitpunkt timejk der Winkeländerung, die Maximalgeschwindigkeit v_maxjk bei jeder Winkeländerung, die Ausgabezeit ctjk, in der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt, den anfänglichen Wert der Beschleunigung ajk und den anfänglichen Wert der Verlangsamung djk festlegt, aus den Aktionsbefehlparametern.
  • Die Aktionsbefehlerzeugungseinheit 24 bestimmt die Anzahl der zu erzeugenden Kandidaten C3 auf der Grundlage eines Parameterlernalgorithmus, der bei der Verarbeitung des folgenden Schritts S1050 zu verwenden ist. Der bei der Verarbeitung von Schritt S1050 verwendete Parameterlernalgorithmus ist ein Algorithmus zum Lernen der Aktionsbefehlparameter. Das heißt, der bei der Verarbeitung von Schritt S1050 verwendete Parameterlernalgorithmus ist ein Algorithmus zum Lernen einer Bewertungsfunktion (später zu beschreibende Bewertungsfunktion J3) der den Aktionsbefehl darstellenden Parameter.
  • Zum Beispiel bereitet die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem bestärkendes Schwarmlernen oder ein genetischer Algorithmus bei der Verarbeitung von Schritt S1050 verwendet wird, eine Vielzahl von Sätzen von Aktionsbefehlparametern als den Kandidaten C3 vor. Alternativ bereitet die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem ein Bayes'sche Optimierung bei der Verarbeitung von Schritt S1050 verwendet wird, einen Satz von Aktionsbefehlparametern als den Kandidaten C3 vor.
  • Als Nächstes aktualisiert die Aktionsbefehlerzeugungseinheit 24 die Werte jedes erzeugten Kandidaten C3 auf der Grundlage der Bewertungsfunktion J3 (Schritt S1050). Das heißt, auf der Grundlage der Bewertungsfunktion J3 aktualisiert die Aktionsbefehlerzeugungseinheit 24 die Werte des Startzeitpunktes timejk der Winkeländerung, der Maximalgeschwindigkeit v_maxjk bei jeder Winkeländerung, der Ausgabezeit ctjk, in der jeder Achsenmotor die Maximalgeschwindigkeit ausgibt, die Beschleunigung ajk und die Verlangsamung djk. Die Aktionsbefehlerzeugungseinheit 24 aktualisiert die Werte jedes Kandidaten C3 der Aktionsbefehlparameter, um einen Bewertungswert V3 der Bewertungsfunktion J3 zu minimieren.
  • Die Aktionsbefehlerzeugungseinheit 24 verwendet beispielsweise einen Ausdruck als Bewertungsfunktion J3, der durch Ersetzen von „J2“ im vorstehenden Ausdruck (22) durch „J3“ erhalten wird. Der Kandidat C3 zum Verringern des Bewertungswertes V3, wobei es sich um den Wert der in Ausdruck (22) ausgedrückten Funktion handelt, ist ein Kandidat, der eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 vermeidet, die Drehmomentbeschränkungen des Roboters 101 während der Aktion erfüllt und die Aktionszeit reduziert. Das heißt, die Aktionsbefehlerzeugungseinheit 24 erzeugt den Kandidaten C3 der Parameter, der eine Kollision zwischen dem Roboter 101 und dem Hindernis 31 vermeidet, die Drehmomentbeschränkungen des Roboters 101 während der Aktion erfüllt und die dritte Aktionszeit reduziert, auf der Grundlage des Parameterlernalgorithmus zum Lernen der Bewertungsfunktion J3. Der Bewertungswert V3 verringert sich mit der Reduzierung der Aktionszeit.
  • Wie vorstehend beschrieben, ist der Parameterlernalgorithmus in Schritt S1050, der von der Aktionsbefehlerzeugungseinheit 24 verwendet wird, zum Beispiel ein beliebiges Black-Box-Optimierungsverfahren, wie etwa bestärkendes Schwarmlernen, ein genetischer Algorithmus oder eine Bayes'sche Optimierung.
  • Als Nächstes prüft die Aktionsbefehlerzeugungseinheit 24, ob ein oder mehrere der Kandidaten C3 vorhanden sind oder nicht, für die der Bewertungswert V3 als Wert der Bewertungsfunktion J3 kleiner als oder gleich einem bezeichneten Wert TH3 ist, der im Voraus aus den Kandidaten C3 der aktualisierten Aktionsbefehlparameter bezeichnet ist (Schritt S1060). Der bezeichnete Wert TH3, der im Voraus bezeichnet ist, ist beispielsweise ein Wert der Aktionszeit auf der Gelenkinterpolationstrajektorie R0.
  • Gibt es mindestens einen Kandidaten C3, für den der Bewertungswert V3 kleiner als oder gleich dem bezeichneten Wert TH3 ist (Ja in Schritt S1060), legt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C3, für den der Bewertungswert V3 minimal ist, als den Aktionsbefehl für jede Achse fest (Schritt S1090). Das heißt, die Aktionsbefehlerzeugungseinheit 24 wählt einen Kandidaten C3 mit der kürzesten Aktionszeit aus und legt den ausgewählten Kandidaten C3 als Parameter beim Einstellen des Aktionsbefehls für jede Achse fest.
  • Gibt es dagegen keinen Kandidaten C3, für den der Bewertungswert V3 kleiner als oder gleich dem bezeichneten Wert TH3 ist (Nein in Schritt S1060), bestimmt die Aktionsbefehlerzeugungseinheit 24, ob die Anzahl der Wiederholungen gleich der maximalen Anzahl von Wiederholungen ist oder nicht. Das heißt, die Aktionsbefehlerzeugungseinheit 24 bestimmt, ob „i4=der maximalen Anzahl von Wiederholungen“ erfüllt ist oder nicht (Schritt S1070).
  • Ist „i4=der maximalen Anzahl von Wiederholungen“ erfüllt (Ja in Schritt S1070), legt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C3, für den der Bewertungswert V3 minimal ist, als den Aktionsbefehl für jede Achse fest (Schritt S1090).
  • Ist „i4=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S1070), addiert die Aktionsbefehlerzeugungseinheit 24 eins zu „i4“ (Schritt S1080) und kehrt zur Verarbeitung des Schrittes S1050 zurück.
  • Gibt es keinen Kandidaten C3, für den der Bewertungswert V3 kleiner als oder gleich dem bezeichneten Wert TH3 ist (Nein in Schritt S1060), und ist „i4=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S1070), wiederholt die Aktionsbefehlerzeugungseinheit 24 die Verarbeitung von Schritt S1050 bis S1080. Gibt es mindestens einen Kandidaten C3, für den der Bewertungswert V3 kleiner als oder gleich dem bezeichneten Wert TH3 ist, oder ist „i4=der maximalen Anzahl von Wiederholungen“ erfüllt, legt die Aktionsbefehlerzeugungseinheit 24 den Kandidaten C3, für den der Bewertungswert V3 minimal ist, als den Aktionsbefehl für die andere Achse fest (Schritt S1090). Die Aktionsbefehlerzeugungseinheit 24 führt danach die Verarbeitung des Schrittes S200 und der nachfolgenden Schritte aus, die unter Bezugnahme auf 28 beschrieben werden.
  • Ist bei der Verarbeitung des Schrittes S220 „i=der maximalen Anzahl von Wiederholungen“ nicht erfüllt (Nein in Schritt S220), addiert die Aktionsbefehlerzeugungseinheit 24 eins zu „i“ (Schritt S250) und kehrt zur Verarbeitung des Schrittes S170 zurück. Das heißt, wenn der Wert des ersten Wiederholungszählers die maximale Anzahl von Wiederholungen nicht erreicht hat, kehrt die Aktionsbefehlerzeugungseinheit 24 zur Verarbeitung des Schrittes S170 zurück, um den Aktionsbefehl für die andere Achse einzustellen und die Trajektorie erneut zu erzeugen. In diesem Fall kann die Aktionsbefehlerzeugungseinheit 24 die Trajektorie anders als die im vorherigen Versuch erzeugte erzeugen, indem sie „jk“, das heißt die Anzahl der Winkeländerungen während der Aktion, ändert, die in der Verarbeitung des Schrittes S170 festgelegt wurde.
  • Wie bei der ersten und zweiten Ausführungsform gibt die Aktionsbefehlerzeugungseinheit 24 der dritten Ausführungsform zudem bevorzugt die Trajektorie mit der Aktionszeit aus, die kürzer als oder gleich der Aktionszeit auf der Gelenkinterpolationstrajektorie R0 ist, wenn die Aktion gemäß der erzeugten Trajektorie durchgeführt wird. Darüber hinaus wählt die Aktionsbefehlerzeugungseinheit 24 in einem Fall, in dem die Aktionszeit auf allen erzeugten Trajektorien länger ist als die Aktionszeit auf der Gelenkinterpolationstrajektorie R0, die Trajektorie mit der kürzesten Aktionszeit aus den erzeugten Trajektorien aus. Die Aktionsbefehlerzeugungseinheit 24 kann daher aus den Trajektorien, die eine Interferenz mit dem Hindernis 31 vermeiden, die Trajektorie mit der kürzesten Aktionszeit auswählen. Es ist anzumerken, dass die in der dritten Ausführungsform beschriebene Lernverarbeitung auf die Trajektorieerzeugungsverarbeitung in der zweiten Ausführungsform angewendet werden kann.
  • Gemäß der dritten Ausführungsform erzeugt die Aktionsbefehlerzeugungseinheit 24 die Trajektorie, wie vorstehend beschrieben, durch Ausdrücken des Aktionsbefehls für jeden Achsenmotor mit einer endlichen Anzahl von Aktionsbefehlparametern und Einstellen der Aktionsbefehlparameter unter Verwendung des vorhandenen Lernalgorithmus. Die Aktionsbefehlerzeugungseinheit 24 kann daher die Trajektorie, die dem Hindernis 31 ausweicht, durch eine endliche Anzahl von Einstellungsversuchen erzeugen. Darüber hinaus kann die Aktionsbefehlerzeugungseinheit 24 den Aktionsbefehl, der eine Kollision vermeidet, in einer kurzen Zeit berechnen.
  • Hier wird eine Hardwarekonfiguration der Robotersteuerung 200 beschrieben. 32 ist eine Darstellung, welche die Hardwarekonfiguration der Robotersteuerung gemäß der ersten bis dritten Ausführungsform veranschaulicht.
  • Die Robotersteuerung 200 kann durch eine in 32 veranschaulichte Steuerschaltung, das heißt einen Prozessor 301 und einen Speicher 302, umgesetzt werden. Der Prozessor 301 ist beispielsweise eine zentrale Verarbeitungseinheit (central processing unit - CPU) oder ein System mit hohem Integrationsgrad (large scale integration - LSI) sein, wobei die CPU zudem als ein Zentralprozessor, eine Verarbeitungseinheit, eine arithmetische Einheit, ein Mikroprozessor, ein Mikrocomputer, ein Prozessor oder ein digitaler Signalprozessor (DSP) bezeichnet wird. Der Speicher 302 ist beispielsweise ein Direktzugriffsspeicher (random access memory - RAM) oder ein Festwertspeicher (read only memory - ROM) .
  • Die Robotersteuerung 200 wird dadurch umgesetzt, dass der Prozessor 301 ein in dem Speicher 302 gespeichertes Programm zum Ausführen des Betriebs der Robotersteuerung 200 ausliest und ausführt. Man kann auch sagen, dass das Programm einen Computer dazu veranlasst, die Prozedur oder das Verfahren in Bezug auf die Robotersteuerung 200 auszuführen. Das von der Robotersteuerung 200 ausgeführte Programm weist eine Modulkonfiguration auf, welche die Aktionsbefehlerzeugungseinheit 24 und die Achsenmotor-Steuereinheiten beinhaltet, die auf eine Hauptspeichervorrichtung geladen und auf der Hauptspeichervorrichtung erzeugt werden.
  • Der Speicher 302 speichert die Hindernisinformationen, die Roboterinformationen und die Endpunktinformationen. Der Speicher 302 wird zudem als ein temporärer Speicher verwendet, wenn der Prozessor 301 verschiedene Verarbeitungen ausführt.
  • Das vom Prozessor 301 ausgeführte Programm kann in einem computerlesbaren Speichermedium in einer Datei in einem installierbaren Format oder einem ausführbaren Format gespeichert und als Computerprogrammprodukt bereitgestellt werden. Das vom Prozessor 301 ausgeführte Programm kann der Robotersteuerung 200 zudem über ein Netzwerk, wie etwa das Internet, bereitgestellt werden.
  • Die Robotersteuerung 200 kann durch dedizierte Hardware umgesetzt werden. Darüber hinaus können die Funktionen der Robotersteuerung 200 teilweise durch dedizierte Hardware und teilweise durch Software oder Firmware umgesetzt werden.
  • Die in den vorstehenden Ausführungsformen veranschaulichten Konfigurationen veranschaulichen lediglich ein Beispiel, sodass eine andere bekannte Technik kombiniert werden kann, die Ausführungsformen miteinander kombiniert werden können oder die Konfigurationen teilweise weggelassen und/oder modifiziert werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • Bezugszeichenliste
  • 21
    Hindernismodellspeichereinheit;
    22
    Robotermodellspeichereinheit;
    23
    Endpunktspeichereinheit;
    24
    Aktionsbefehlerzeugungseinheit;
    31 bis 33, 41
    Hindernis;
    100
    Robotersystem;
    101
    Roboter;
    102
    Endeffektor;
    103
    Werkstück;
    200
    Robotersteuerung;
    301
    Prozessor;
    302
    Speicher;
    601, 601a, 601b, 603 bis 606
    Passierbereich;
    602
    Trajektorie;
    B1
    erste Achsenmotor-Steuereinheit;
    B2
    zweite Achsenmotor-Steuereinheit;
    B3
    dritte Achsenmotor-Steuereinheit;
    B4
    vierte Achsenmotor-Steuereinheit;
    B5
    fünfte Achsenmotor-Steuereinheit;
    B6
    sechste Achsenmotor-Steuereinheit;
    E1
    erster Achsencodierer;
    E2
    zweiter Achsencodierer;
    E3
    dritter Achsencodierer;
    E4
    vierter Achsencodierer;
    E5
    fünfter Achsencodierer;
    E6
    sechsterAchsencodierer;
    M1
    erster Achsenmotor;
    M2
    zweiter Achsenmotor;
    M3
    dritter Achsenmotor;
    M4
    vierter Achsenmotor;
    M5
    fünfter Achsenmotor;
    M6
    sechster Achsenmotor;
    L1 bis L3, L5 bis L7
    Befehlslinie;
    PG
    Aktionszielpunkt;
    PR
    temporärer Relaispunkt;
    PS
    Aktionsstartpunkt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 2014037029 [0004]

Claims (11)

  1. Robotersteuerung, umfassend: eine Achsenmotor-Steuereinheit zum Steuern eines Achsenmotors, der eine entsprechende einer Vielzahl von Achsen antreibt, die Gelenke eines Roboters bewegt; eine Speichereinheit zum Speichern von Roboterinformationen, Endpunktinformationen und Hindernisinformationen, wobei die Roboterinformationen Informationen über den Roboter sind, wobei die Endpunktinformationen Informationen über einen Aktionsstartpunkt, an dem eine spezifische Position des Roboters eine Aktion startet, und Informationen über einen Aktionszielpunkt, an dem die spezifische Position des Roboters die Aktion beendet, beinhalten, wobei die Hindernisinformationen Informationen über ein Hindernis in Bezug auf den Roboter sind; und eine Aktionsbefehlerzeugungseinheit zum: Erzeugen, auf der Grundlage der Roboterinformationen und der Endpunktinformationen, eines ersten Aktionsbefehls als Aktionsbefehl für den Achsenmotor, wobei der erste Aktionsbefehl eine erste Aktionszeit minimiert, wobei die erste Aktionszeit eine Aktionszeit der Bewegung ist, wenn die spezifische Position des Roboters vom Aktionsstartpunkt zum Aktionszielpunkt bewegt wird, ohne das Hindernis zu berücksichtigen; und zum Auswählen, aus den Achsen, einer Achse mit der längsten Aktionszeit, wenn die Aktion gemäß dem ersten Aktionsbefehl durchgeführt wird, wobei die ausgewählte Achse eine Hauptachse ist, wobei der erste Aktionsbefehl einen anderen Achsenbefehl und einen Hauptachsenbefehl beinhaltet, wobei der andere Achsenbefehl ein Aktionsbefehl für eine andere Achse als die Hauptachse ist und der Hauptachsenbefehl ein Aktionsbefehl für die Hauptachse ist, und die Aktionsbefehlerzeugungseinheit den anderen Achsenbefehl auf der Grundlage der Roboterinformationen und der Endpunktinformationen so einstellt, dass eine zweite Aktionszeit reduziert wird, wobei die zweite Aktionszeit eine Aktionszeit gemäß dem anderen Achsenbefehl ist, und an die Achsenmotor-Steuereinheit einen zweiten Aktionsbefehl ausgibt, der den Hauptachsenbefehl und den anderen Achsenbefehl nach der Einstellung beinhaltet und einer ersten Trajektorie entspricht, wenn auf der Grundlage der Hindernisinformationen bestimmt wird, dass die dem zweiten Aktionsbefehl entsprechende erste Trajektorie eine Trajektorie ist, die eine Kollision zwischen dem Roboter und dem Hindernis vermeidet.
  2. Robotersteuerung nach Anspruch 1, wobei die Aktionsbefehlerzeugungseinheit den Hauptachsenbefehl auf der Grundlage der Roboterinformationen und der Endpunktinformationen einstellt, und wenn die Aktionsbefehlerzeugungseinheit auf der Grundlage der Hindernisinformationen bestimmt, dass zweite Trajektorien, die dritten Aktionsbefehlen entsprechen, eine Kollision zwischen dem Roboter und dem Hindernis vermeiden und dritte Aktionszeiten gemäß den dritten Aktionsbefehlen nicht länger sind als die zweite Aktionszeit, wobei die dritten Aktionsbefehle jeweils den Hauptachsenbefehl nach der Einstellung und den anderen Achsenbefehl nach der Einstellung beinhalten, die Aktionsbefehlerzeugungseinheit einen dritten Aktionsbefehl aus den dritten Aktionsbefehlen an die Achsenmotor-Steuereinheit ausgibt, wobei der ausgegebene dritte Aktionsbefehl eine kürzeste der dritten Aktionszeiten bereitstellt.
  3. Robotersteuerung nach Anspruch 2, wobei die Aktionsbefehlerzeugungseinheit den Hauptachsenbefehl einstellt, wenn eine Kollision zwischen dem Roboter und dem Hindernis trotz der Einstellung des anderen Achsenbefehls nicht vermieden werden kann.
  4. Robotersteuerung nach Anspruch 2 oder 3, wobei die Aktionsbefehlerzeugungseinheit mindestens einen des anderen Achsenbefehls und des Hauptachsenbefehls einstellt, um es dem Roboter zu ermöglichen, einen oder eine Vielzahl von Passierbereichen zu passieren, die zwischen dem Aktionsstartpunkt und dem Aktionszielpunkt platziert sind.
  5. Robotersteuerung nach Anspruch 4, wobei die Aktionsbefehlerzeugungseinheit den Passierbereich ändert und mindestens einen des anderen Achsenbefehls und des Hauptachsenbefehls einstellt, wenn die dritte Aktionszeit nicht gleich der ersten Aktionszeit ist.
  6. Robotersteuerung nach Anspruch 5, wobei die Aktionsbefehlerzeugungseinheit mindestens einen des anderen Achsenbefehls und des Hauptachsenbefehls einstellt, indem sie einen Parameter für jeden Passierbereich anwendet, wobei der Parameter den Aktionsbefehl ausdrückt und in Abhängigkeit vom Passierbereich variiert.
  7. Robotersteuerung nach Anspruch 2, wobei die Aktionsbefehlerzeugungseinheit auf der Grundlage eines Parameterlernalgorithmus, der eine Bewertungsfunktion eines den Aktionsbefehl ausdrückenden Parameters erlernt, einen Kandidaten für den Parameter erzeugt, der die dritte Aktionszeit reduziert, während eine Kollision zwischen dem Roboter und dem Hindernis vermieden wird, und einen Kandidaten, der die kürzeste Aktionszeit des Roboters bereitstellt, als Parameter beim Einstellen des anderen Achsenbefehls oder des Hauptachsenbefehls festlegt.
  8. Robotersteuerung nach Anspruch 7, wobei der Parameter mindestens eines beinhaltet von: der Anzahl der Winkeländerungen des Achsenmotors; einer Startzeit jeder Winkeländerung; einer Maximalgeschwindigkeit bei jeder Winkeländerung; einer Länge einer Ausgabezeit, bei der es sich um eine Zeit handelt, während welcher der Achsenmotor die Maximalgeschwindigkeit ausgibt; einer Beschleunigung bei jeder Winkeländerung; und einer Verlangsamung bei jeder Winkeländerung.
  9. Robotersteuerung nach Anspruch 7 oder 8, wobei die Aktionsbefehlerzeugungseinheit den Kandidaten für den Parameter erzeugt, der eine Drehmomentbeschränkung des Roboters erfüllt.
  10. Robotersteuerverfahren zum Steuern eines Achsenmotors, der eine entsprechende einer Vielzahl von Achsen antreibt, die Gelenke eines Roboters bewegt, wobei das Robotersteuerverfahren Folgendes umfasst: einen ersten Erfassungsschritt zum Erfassen von Roboterinformationen und Endpunktinformationen, wobei die Roboterinformationen Informationen über den Roboter sind, wobei die Endpunktinformationen Informationen über einen Aktionsstartpunkt, an dem eine spezifische Position des Roboters eine Aktion startet, und Informationen über einen Aktionszielpunkt, an dem die spezifische Position des Roboters die Aktion beendet, beinhalten, und einen Speicherschritt zum Speichern von Hindernisinformationen, die Informationen über ein Hindernis in Bezug auf den Roboter sind; einen ersten Erzeugungsschritt zum Erzeugen, auf der Grundlage der Roboterinformationen und der Endpunktinformationen, eines ersten Aktionsbefehls als Aktionsbefehl für den Achsenmotor, wobei der erste Aktionsbefehl eine erste Aktionszeit minimiert, wobei die erste Aktionszeit eine Aktionszeit der Bewegung ist, wenn die spezifische Position des Roboters vom Aktionsstartpunkt zum Aktionszielpunkt bewegt wird, ohne das Hindernis zu berücksichtigen; einen Auswahlschritt zum Auswählen, aus den Achsen, einer Achse mit der längsten Aktionszeit, wenn die Aktion gemäß dem ersten Aktionsbefehl durchgeführt wird, wobei die ausgewählte Achse eine Hauptachse ist; und einen zweiten Erzeugungsschritt zum Erzeugen einer Trajektorie, die eine Kollision zwischen dem Roboter und dem Hindernis vermeidet, wobei der erste Aktionsbefehl einen anderen Achsenbefehl und einen Hauptachsenbefehl beinhaltet, wobei der andere Achsenbefehl ein Aktionsbefehl für eine andere Achse als die Hauptachse ist und der Hauptachsenbefehl ein Aktionsbefehl für die Hauptachse ist, und der zweite Erzeugungsschritt Folgendes beinhaltet: Einstellen des anderen Achsenbefehls auf der Grundlage der Roboterinformationen und der Endpunktinformationen, sodass eine zweite Aktionszeit reduziert wird, wobei die zweite Aktionszeit eine Aktionszeit gemäß dem anderen Achsenbefehl ist; und Ausgeben, an die Achsenmotor-Steuereinheit zum Steuern des Achsenmotors, eines zweiten Aktionsbefehls, der den Hauptachsenbefehl und den anderen Achsenbefehl nach der Einstellung beinhaltet und einer ersten Trajektorie entspricht, wenn auf der Grundlage der Hindernisinformationen bestimmt wird, dass die dem zweiten Aktionsbefehl entsprechende erste Trajektorie eine Trajektorie ist, die eine Kollision zwischen dem Roboter und dem Hindernis vermeidet.
  11. Robotersteuerprogramm zum Steuern eines Achsenmotors, der eine entsprechende einer Vielzahl von Achsen antreibt, die Gelenke eines Roboters bewegt, wobei das Robotersteuerprogramm einen Computer dazu veranlasst, Folgendes auszuführen: einen ersten Erfassungsschritt zum Erfassen von Roboterinformationen und Endpunktinformationen, wobei die Roboterinformationen Informationen über den Roboter sind, wobei die Endpunktinformationen Informationen über einen Aktionsstartpunkt, an dem eine spezifische Position des Roboters eine Aktion startet, und Informationen über einen Aktionszielpunkt, an dem die spezifische Position des Roboters die Aktion beendet, beinhalten, und einen Speicherschritt zum Speichern von Hindernisinformationen, die Informationen über ein Hindernis in Bezug auf den Roboter sind; einen ersten Erzeugungsschritt zum Erzeugen, auf der Grundlage der Roboterinformationen und der Endpunktinformationen, eines ersten Aktionsbefehls als Aktionsbefehl für den Achsenmotor, wobei der erste Aktionsbefehl eine erste Aktionszeit minimiert, wobei die erste Aktionszeit eine Aktionszeit der Bewegung ist, wenn die spezifische Position des Roboters vom Aktionsstartpunkt zum Aktionszielpunkt bewegt wird, ohne das Hindernis zu berücksichtigen; einen Auswahlschritt zum Auswählen, aus den Achsen, einer Achse mit der längsten Aktionszeit, wenn die Aktion gemäß dem ersten Aktionsbefehl durchgeführt wird, wobei die ausgewählte Achse eine Hauptachse ist; und einen zweiten Erzeugungsschritt zum Erzeugen einer Trajektorie, die eine Kollision zwischen dem Roboter und dem Hindernis vermeidet, wobei der erste Aktionsbefehl einen anderen Achsenbefehl und einen Hauptachsenbefehl beinhaltet, wobei der andere Achsenbefehl ein Aktionsbefehl für eine andere Achse als die Hauptachse ist und der Hauptachsenbefehl ein Aktionsbefehl für die Hauptachse ist, und der zweite Erzeugungsschritt Folgendes beinhaltet: Einstellen des anderen Achsenbefehls auf der Grundlage der Roboterinformationen und der Endpunktinformationen, sodass eine zweite Aktionszeit reduziert wird, wobei die zweite Aktionszeit eine Aktionszeit gemäß dem anderen Achsenbefehl ist; und Ausgeben, an die Achsenmotor-Steuereinheit zum Steuern des Achsenmotors, eines zweiten Aktionsbefehls, der den Hauptachsenbefehl und den anderen Achsenbefehl nach der Einstellung beinhaltet und einer ersten Trajektorie entspricht, wenn auf der Grundlage der Hindernisinformationen bestimmt wird, dass die dem zweiten Aktionsbefehl entsprechende erste Trajektorie eine Trajektorie ist, die eine Kollision zwischen dem Roboter und dem Hindernis vermeidet.
DE112020007414.5T 2020-07-08 2020-07-08 Robotersteuerung, robotersteuerverfahren und robotersteuerprogramm Granted DE112020007414T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/026686 WO2022009333A1 (ja) 2020-07-08 2020-07-08 ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Publications (1)

Publication Number Publication Date
DE112020007414T5 true DE112020007414T5 (de) 2023-05-11

Family

ID=79552456

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020007414.5T Granted DE112020007414T5 (de) 2020-07-08 2020-07-08 Robotersteuerung, robotersteuerverfahren und robotersteuerprogramm

Country Status (5)

Country Link
US (1) US20230226691A1 (de)
JP (1) JP7313564B2 (de)
CN (1) CN115702064A (de)
DE (1) DE112020007414T5 (de)
WO (1) WO2022009333A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023149298A1 (ja) * 2022-02-04 2023-08-10 三菱電機株式会社 軌道生成装置
WO2023162031A1 (ja) * 2022-02-22 2023-08-31 三菱電機株式会社 ロボット制御装置およびロボット制御方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014037029A (ja) 2012-08-16 2014-02-27 Canon Inc 搬送装置の制御方法及び搬送システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4942672B2 (ja) * 2008-01-25 2012-05-30 三菱電機株式会社 ロボット軌道制御装置及びロボット軌道制御方法
JP6217089B2 (ja) 2013-02-21 2017-10-25 セイコーエプソン株式会社 ロボット制御システム、ロボット、ロボット制御方法及びプログラム
JP6282140B2 (ja) 2014-02-26 2018-02-21 キヤノン株式会社 軌道生成方法、ロボット装置、プログラム及び記録媒体
JP7158862B2 (ja) 2018-02-05 2022-10-24 キヤノン株式会社 情報処理方法及び情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014037029A (ja) 2012-08-16 2014-02-27 Canon Inc 搬送装置の制御方法及び搬送システム

Also Published As

Publication number Publication date
CN115702064A (zh) 2023-02-14
JP7313564B2 (ja) 2023-07-24
WO2022009333A1 (ja) 2022-01-13
US20230226691A1 (en) 2023-07-20
JPWO2022009333A1 (de) 2022-01-13

Similar Documents

Publication Publication Date Title
DE102016111691A1 (de) Halbautonomes Fahrzeug und Verfahren zum Steuern eines halbautonomen Fahrzeugs
DE102009024130B4 (de) Verfahren zur echtzeitfähigen Bahnplanung kontinuierlicher, rucksprungfreier Sollwerttrajektorien
DE102016002904B4 (de) Robotersystem
DE60204374T2 (de) Spracherkennungsvorrichtung
EP3785177B1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neuronalen netzes
DE102019134487A1 (de) System und verfahren einer algorithmischen lösung zum erzeugen einer glatten fahrzeuggeschwindigkeitstrajektorie für ein autonomes fahrzeug mit räumlichen geschwindigkeitsbegrenzungen
DE19725461B4 (de) Verfahren zum Erzeugen abgesonderter Punkte, die eine Schneideeinrichtungsbahn definieren, wobei durch die Berücksichtigung einer Fähigkeit einer individuellen Maschine ein Bearbeitungswirkungsgrad erhöht wird
DE112017003517T5 (de) Steuergerät und Verfahren zur Steuerung eines Fahrzeugs und nichtflüchtiger computerlesbarer Speicher
DE112020007414T5 (de) Robotersteuerung, robotersteuerverfahren und robotersteuerprogramm
DE102016008994A1 (de) Werkzeugmaschine, simulationsvorrichtung und maschineneinlerngerät
DE112017000787T5 (de) Verfahren zum Steuern der Bewegung eines Fahrzeugs und Fahrzeugsteuersystem
DE102018119867B4 (de) Autonome Verhaltenssteuerung unter Verwendung von Richtlinienauslösung und -ausführung
DE19618332A1 (de) Numerische Steuervorrichtung mit Spline-Interpolationsfunktion
DE69631694T2 (de) Genetisches Programmiersystem und Verfahren unter Verwendung genetischer Programmiertechniken
DE112021001104T5 (de) Bewegungsplanungsverfahren mit kollisionsvermeidung für industrieroboter
DE102015120118B4 (de) Werkzeugmaschine mit einer Werkzeugwegkurvenerzeugungsvorrichtung
EP0762250A1 (de) Verfahren zur Steuerung von Koordinatenmessgeräten
DE3825891A1 (de) Verfahren zum entwurf einer gekruemmten flaeche
DE102012010408A1 (de) Numerische Steuervorrichtung mit einer Funktion zum Korrigieren des Bewegungswegs eines Maschinenprogramms
EP3765927A1 (de) Verfahren zum erzeugen eines trainingsdatensatzes zum trainieren eines künstlichen-intelligenz-moduls für eine steuervorrichtung eines fahrzeugs
DE102018005378A1 (de) Steuergerät und Lernvorrichtung
EP2989421A1 (de) Verfahren zum bestimmen eines fahrspurverlaufes einer fahrspur
DE102015209066A1 (de) Aufwandsreduzierte Trajektorienplanung für ein Fahrzeug
DE102018213971A1 (de) Verfahren und Vorrichtung zur Auswahl eines Fahrmanövers
DE112017004424T5 (de) Befehlswerterzeugungsvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R016 Response to examination communication
R018 Grant decision by examination section/examining division