DE112013003029B4 - Robotersteuerungsvorrichtung, Robotergerät, Robotersteuerungsverfahren, Programm zur Ausführung eines Robotersteuerungsverfahrens und ein Aufzeichnungsmedium, auf dem ein Programm aufgezeichnet ist. - Google Patents

Robotersteuerungsvorrichtung, Robotergerät, Robotersteuerungsverfahren, Programm zur Ausführung eines Robotersteuerungsverfahrens und ein Aufzeichnungsmedium, auf dem ein Programm aufgezeichnet ist. Download PDF

Info

Publication number
DE112013003029B4
DE112013003029B4 DE112013003029.2T DE112013003029T DE112013003029B4 DE 112013003029 B4 DE112013003029 B4 DE 112013003029B4 DE 112013003029 T DE112013003029 T DE 112013003029T DE 112013003029 B4 DE112013003029 B4 DE 112013003029B4
Authority
DE
Germany
Prior art keywords
estimated
speed
robot
interpolated
teaching
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.)
Expired - Fee Related
Application number
DE112013003029.2T
Other languages
English (en)
Other versions
DE112013003029T5 (de
Inventor
c/o CANON KABUSHIKI KAISHA Negishi Mahito
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of DE112013003029T5 publication Critical patent/DE112013003029T5/de
Application granted granted Critical
Publication of DE112013003029B4 publication Critical patent/DE112013003029B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39358Time optimal control along path for singular points, having veloctiy constraints
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/27Arm part
    • Y10S901/28Joint

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

Robotersteuerungsvorrichtung (300), die einen Positionsbefehl entlang einer Bewegungsbahn bei einem vorbestimmten Zeitintervall an eine Antriebssteuerungseinheit (230) ausgibt, die einen Betrieb einer jeweiligen Betätigungseinrichtung (201–206) zum Antreiben eines jeweiligen Gelenks (31–36) eines Knickarmroboters (200) steuert, sodass ein jeweiliges Gelenk (31–36) betrieben wird, um sequentiell einer Vielzahl von Lehrpunkten (p1–p4) auf der Bewegungsbahn zu folgen, die eine Lehrposition eines jeweiligen Gelenks (31–36) als eine Vektorkomponente beinhalten, mit einer Berechnungseinheit (301), wobei die Berechnungseinheit (301) ausführt: eine Interpolationsfunktionsberechnungsverarbeitung (361) zum Berechnen, durch Verwenden einer Interpolationsfunktion, die durch eine Vielzahl von interpolierten Lehrpunkten hindurchgeht, für eine Interpolation zwischen den jeweiligen Lehrpunkten, von Positionen jeweiliger Gelenke in jeweiligen Positionen der interpolierten Lehrpunkte; eine Differenzialkoeffizientberechnungsverarbeitung (362) zum Berechnen eines jeweiligen Differenzialkoeffizienten, der durch Differenziation einer jeweiligen Vektorkomponente, die in einem jeweiligen interpolierten Lehrpunkt beinhaltet ist, durch eine variable Zahl (s) der Interpolationsfunktion erhalten wird, wobei die variable Zahl (s) eine Serienzahl ist, die den jeweiligen interpolierten Lehrpunkten in der Reihenfolge eines Durchgangs zugewiesen wird; eine temporäre Einstellverarbeitung (363) zum temporären Einstellen einer jeweiligen Durchgangsgeschwindigkeit, ...

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft eine Robotersteuerungsvorrichtung, ein Robotergerät, ein Robotersteuerungsverfahren, ein Programm zur Ausführung des Robotersteuerungsverfahrens und ein Aufzeichnungsmedium, auf dem das Programm aufgezeichnet ist, die einen Positionsbefehl erzeugen, in dem eine Betriebszeit am kürzesten ist, wenn sich ein Knickarmroboter entlang einer Bewegungsbahn bewegt, die durch Lehrpunkte vorgegeben ist.
  • Hintergrund der Erfindung
  • In jüngster Zeit ist die Entwicklung eines Montagegeräts vorangetrieben worden, das einen Knickarmroboter aufweist, der in der Lage ist, einen komplizierten und schnellen Zusammenbau wie mit menschlichen Händen zu realisieren. Diesbezüglich ist ein Hochgeschwindigkeitsbetrieb des Knickarmroboters wichtig.
  • Um mit einem komplizierten und präzisen Zusammenbauziel zurecht zu kommen, ist es ferner erforderlich, mit einer komplizierten CP-Bewegungsbahn (Continuos-Path-Bewegungsbahn bzw. Kontinuierliche-Fahrt-Bewegungsbahn) zurecht zu kommen, die drei oder mehr Lehrpunkte verbindet, anstatt einer einfachen PTP-Bewegungsbahn (Point-To-Point-Bewegungsbahn bzw. Punkt-zu-Punkt-Bewegungsbahn), die zwei Lehrpunkte verbindet.
  • Eine Technik einer zeitoptimalen Steuerung eines Knickarmroboters, die diese Notwendigkeit erfüllt, ist vorgeschlagen worden (siehe Druckschrift JP H11-198072 A ). Diese zeitoptimale Steuerung ist in Abhandlungen seit den 1980ern vorgeschlagen worden und ist allgemein bekannt. Entsprechend der in der Druckschrift JP H11-198072 A offenbarten Technik wird, um einen Positionsbefehl (Zielposition bzw. Sollposition) in Bezug auf ein jeweiliges Gelenk des Knickarmroboters bei einem vorbestimmten Zeitintervall (beispielsweise ein Intervall von 1 ms) auszugeben, eine Interpolation zwischen jeweiligen vorgegebenen Lehrpunkten bei einem vorbestimmten Zeitintervall ausgeführt, um den Positionsbefehl zu berechnen. Dann wird ein Wert eines jeweiligen bzw. jedes Positionsbefehls korrigiert, um eine Betriebszeit zu minimieren.
  • Kurzzusammenfassung der Erfindung
  • Technisches Problem
  • In der in der Druckschrift JP H11-198072 A offenbarten Technik ist jedoch die Berechnungsmenge, die für die zeitoptimale Steuerung erforderlich ist, groß. Spezifisch wird in der in der Druckschrift JP H11-198072 A offenbarten Technik der Positionsbefehl, der die Sollposition angibt, auf der Grundlage jedes Lehrpunkts berechnet, eine Berechnung der zeitoptimalen Steuerung wird für den berechneten Positionsbefehl ausgeführt und dann wird der korrigierte Positionsbefehl erzeugt.
  • Um eine Verringerung einer Geschwindigkeit und Positionsgenauigkeit des Knickarmroboters zu unterdrücken, ist es erforderlich, den Positionsbefehl in einem vorbestimmten genauen bzw. winzigen (beispielsweise mehrere Millisekunden) Zeitintervall auszugeben, wobei somit die Datenmenge groß ist. Beispielsweise sind, wenn der Knickarmroboter für 10 Sekunden betrieben wird und der Positionsbefehl bei einem Intervall von 1 ms ausgegeben wird, 10 × 1000 = 10000 korrigierte Positionsbefehle erforderlich. Somit ist die Datenmenge, die einer Berechnungsverarbeitung in der zeitoptimalen Steuerung zu unterziehen ist, notwendigerweise groß. Ferner kehrt die zeitoptimale Steuerung zu einer Optimierungsangelegenheit für eine Lösung zurück, was eine Berechnungszeit erfordert. Somit hat die Vergrößerung der Datenmenge eine Vergrößerung der Berechnungszeit zur Folge. Während der Berechnungsverarbeitung ist es schwierig, den Knickarmroboter zu betreiben, was ein Problem verursacht, dass es schwierig ist, einen Hochgeschwindigkeitsbetrieb des Knickarmroboters auszuführen, was die Aufgabe der zeitoptimalen Steuerung ist.
  • Die Druckschrift US 2012/0029699 A1 beschreibt ein System und ein Verfahren zur Erzeugung einer Roboterbewegungsbahn mit kontinuierlichen Beschleunigungen.
  • Die Druckschrift US 2010/0204828 A1 beschreibt eine Vorrichtung zur Erzeugung eines Bewegungsweges eines Roboters.
  • Die Druckschrift DE 696 22 572 T2 beschreibt eine Lehrvorrichtung für Lehrdaten mit Bezug auf einen Arbeitspunkt an einem Roboter.
  • Die Druckschrift DE 692 17 420 T2 beschreibt eine manuelle Lernkontrollvorrichtung für Arbeitsvorgänge in einem Industrierobotersystem.
  • Die Druckschrift DE 38 85 640 T2 beschreibt einen Industrieroboter zur Verwendung bei einer Fertigungsautomatisierung.
  • Die Druckschrift DE 41 01 422 C2 beschreibt ein Verfahren zur Steuerung eines Industrieroboters.
  • Dementsprechend ist es eine Aufgabe der Erfindung, die Berechnungsmenge, die für eine zeitoptimale Steuerung erforderlich ist, zu verringern.
  • Diese Aufgabe wird durch eine Robotersteuerungsvorrichtung gemäß Patentanspruch 1 und ein Robotersteuerungsverfahren gemäß Patentanspruch 13 gelöst. Vorteilhafte Weiterbildungen sind in den abhängigen Patentansprüchen angegeben. Ferner sind ein entsprechendes Robotergerät gemäß Patentanspruch 12, ein Programm gemäß Patentanspruch 14 und ein computerlesbares Aufzeichnungsmedium gemäß Patentanspruch 15 bereitgestellt.
  • Vorteilhafte Wirkungen der Erfindung
  • Gemäß der Erfindung wird eine zeitoptimale Steuerungsverarbeitung zum Ändern einer jeweiligen Durchgangsgeschwindigkeit in Bezug auf die variable Zahl der Interpolationsfunktion in einem jeweiligen interpolierten Lehrpunkt, um die Zielfunktion zu minimieren, ausgeführt, wobei der Positionsbefehl bei einem jeweiligen vorbestimmten Zeitintervall aus der Interpolationsfunktion erzeugt wird, die eine jeweilige Durchgangsgeschwindigkeit, die auf diese Weise berechnet wird, verwendet. Auf diese Weise ist es, da der Positionsbefehl berechnet wird, nachdem die Zielfunktion minimiert ist, nicht erforderlich, die Zahl der interpolierten Lehrpunkte einzustellen, um gleich der Zahl von Positionsbefehlen zu sein, wobei es möglich ist, die Zahl der interpolierten Lehrpunkte einzustellen, um kleiner als die Zahl von Positionsbefehlen zu sein. Somit ist es möglich, die Berechnungsmenge, die für die zeitoptimale Steuerungsverarbeitung erforderlich ist, zu verringern und die Berechnungsgeschwindigkeit für eine Berechnung des Positionsbefehls in der Berechnungseinheit zu verbessern.
  • Weitere Merkmale der vorliegenden Erfindung werden aus der nachstehenden Beschreibung beispielhafter Ausführungsbeispiele unter Bezugnahme auf die beifügte Zeichnung ersichtlich.
  • Kurzbeschreibung der Zeichnung
  • 1 zeigt ein Diagramm, das schematisch eine Konfiguration eines Robotergeräts gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • 2 zeigt ein Blockschaltbild, das eine Konfiguration einer Robotersteuerungsvorrichtung veranschaulicht.
  • 3, die aus 3A und 3B zusammengesetzt ist, zeigt ein Funktionsblockschaltbild einer Robotersteuerungsvorrichtung.
  • 4A zeigt ein Diagramm, das schematisch einen Lehrpunkt veranschaulicht.
  • 4B zeigt ein Diagramm, das schematisch einen interpolierten Lehrpunkt und eine Interpolationsfunktion veranschaulicht.
  • 4C zeigt ein Diagramm, das schematisch eine Durchgangsgeschwindigkeit veranschaulicht.
  • 5 zeigt ein Diagramm, das schematisch einen Positionsbefehl veranschaulicht.
  • 6 zeigt ein Diagramm, das schematisch einen Betrieb eines Differenzialkoeffizientenberechnungsteils einer Robotersteuerungsvorrichtung gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • 7A zeigt ein Diagramm, das schematisch einen Aufbau eines Robotergeräts gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • 7B zeigt ein Diagramm, das schematisch eine Lehrpunktsequenz in Bezug auf einen jeweiligen Roboterarm veranschaulicht.
  • 8 zeigt ein Diagramm, das einen Verarbeitungsbetrieb eines Randbedingungsverletzungsratenberechnungsteils in einer Robotersteuerungsvorrichtung gemäß einem vierten Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • 9A zeigt ein Diagramm, das ein Modell eines elektrischen Motors gemäß dem vierten Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • 9B zeigt ein Diagramm, das ein zulässiges Motordrehmoment veranschaulicht.
  • Beschreibung der Ausführungsbeispiele
  • Nachstehend werden Ausführungsbeispiele zur Verwirklichung der vorliegenden Erfindung ausführlich unter Bezugnahme auf die beigefügte Zeichnung beschrieben.
  • Erstes Ausführungsbeispiel
  • 1 zeigt ein Diagramm, das schematisch eine Konfiguration eines Robotergeräts gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht. Das Robotergerät 100, das in 1 veranschaulicht ist, umfasst einen Roboterarm 200, der ein Knickarmroboter ist, und eine Robotersteuerungsvorrichtung 300, die den Roboterarm 200 steuert. Ferner umfasst das Robotergerät 100 ein Programmierhandgerät 400, das eine Lehrvorrichtung bzw. Programmiervorrichtung ist, die Daten über eine Vielzahl von Lehrpunkten zu der Robotersteuerungsvorrichtung 300 überträgt. Das Programmierhandgerät 400 wird durch einen Benutzer betätigt und wird zur Bestimmung bzw. Bezeichnung eines Betriebs des Roboterarms 200 oder der Robotersteuerungsvorrichtung 300 verwendet.
  • Der Roboterarm 200 ist ein Roboter mit sechs Gelenken bzw. Verbindungen in dem ersten Ausführungsbeispiel. Der Roboterarm 200 umfasst eine Vielzahl von (sechs) Betätigungseinrichtungen 201 bis 206, die jeweilige Gelenke J1 bis J6 um jeweilige Gelenkachsen A1 bis A6 jeweils drehbar antreiben. Der Roboterarm 200 kann es ermöglichen, dass ein Endpunkt (eine Spitze des Roboterarms) in eine beliebige Drei-Richtungs-Stellung bei einer beliebigen dreidimensionalen Position gerichtet ist, solange der Roboterarm 200 in einem bewegbaren Bereich ist. Im Allgemeinen können die Position und Stellung des Roboterarms 200 durch ein Koordinatensystem ausgedrückt werden. In 1 stellt To ein Koordinatensystem dar, das bei einem Sockel des Roboterarms 200 fixiert ist, und Te stellt ein Koordinatensystem dar, das bei dem Endpunkt des Roboterarms 200 fixiert ist.
  • In dem vorliegenden Ausführungsbeispiel umfassen die Betätigungseinrichtungen 201 bis 206 jeweils elektrische Motoren 211 bis 216 und Reduziereinrichtungen bzw. Vorgelege 221 bis 226, die mit den elektrischen Motoren 211 bis 216 verbunden sind. Eine Konfiguration jeder Betätigungseinrichtung 201 bis 206 ist nicht hierauf begrenzt, wobei beispielsweise ein künstlicher Muskel oder dergleichen verwendet werden kann.
  • In dem ersten Ausführungsbeispiel wird ein Fall beschrieben, bei dem die jeweiligen Gelenke J1 bis J6 Drehgelenke sind. In diesem Fall bezieht sich der Ausdruck ”Gelenkposition” auf einen Gelenkwinkel. Jedes Gelenk kann ein Schubgelenk sein. In diesem Fall ist die ”Gelenkposition” die Position des Schubgelenks. Auf ähnliche Weise werden in Bezug auf eine zugehörige Zeitdifferentiation die Ausdrücke ”Gelenkgeschwindigkeit”, ”Gelenkbeschleunigung” und ”Gelenkruck” verwendet.
  • Der Roboterarm 200 umfasst ferner eine Servosteuerungsvorrichtung 230, die eine Antriebssteuerungseinheit ist, die einen Antrieb der elektrischen Motoren 211 bis 216 der jeweiligen Betätigungseinrichtungen 201 bis 206 steuert. Die Servosteuerungsvorrichtung 230 gibt Strombefehle an die elektrischen Motoren 211 bis 216 aus und steuert die Betriebe der jeweiligen elektrischen Motoren 211 bis 216, sodass die Positionen der jeweiligen Gelenke J1 bis J6 Positionsbefehlen auf der Grundlage von eingegebenen Positionsbefehlen (Sollpositionen) folgen.
  • Die Robotersteuerungsvorrichtung 300 empfängt eine Eingabe einer Vielzahl von Lehrpunkten (Lehrpunktsequenz) von dem Programmierhandgerät 400. Die Robotersteuerungsvorrichtung 300 erzeugt Positionsbefehle, die zu der Servosteuerungsvorrichtung 230 bei vorbestimmten Zeitintervallen auszugeben sind, auf der Grundlage der Lehrpunkte und gibt die Positionsbefehle bei den vorbestimmten Zeitintervallen aus, sodass die jeweiligen Gelenke J1 bis J6 des Roboterarms 200 betrieben werden, um sequenziell der Vielzahl von Lehrpunkten zu folgen.
  • Der Lehrpunkt ist ein Vektor (Lehrpunktvektor), der die Lehrpositionen der jeweiligen Gelenke (sechs Gelenke) J1 bis J6 als eine Vektorkomponente umfasst. Ferner ist der Positionsbefehl, der abschließend in der Robotersteuerungsvorrichtung 300 berechnet wird, ein Vektor, der die Sollpositionen der jeweiligen Gelenke (sechs Gelenke) J1 bis J6 als eine Vektorkomponente umfasst. In dem ersten Ausführungsbeispiel sind der Lehrpunkt und der Positionsbefehl bezüglich der Zahl von Punkten unterschiedlich zueinander, wobei aber ihre Dimensionen (Einheiten) die gleichen sind.
  • Das heißt, die Robotersteuerungsvorrichtung 300 berechnet eine CP-Bewegungsbahn aus den eingegebenen Lehrpunkten, um die Vielzahl von Positionsbefehlen entlang der Bewegungsbahn zu erzeugen, und gibt die Positionsbefehle an die Servosteuerungsvorrichtung 230 bei vorbestimmten Zeitintervallen aus.
  • Zu dieser Zeit führt die Robotersteuerungsvorrichtung 300 in Bezug auf die Bewegungsbahn, die durch eine vorgegebene Lehrpunktsequenz bestimmt wird, eine zeitoptimale Steuerung des Knickarmroboters zur Justierung bzw. Einstellung der Durchgangsgeschwindigkeit auf der Bewegungsbahn in einem Bereich aus, ohne von Randbedingungen bzw. Beschränkungsbedingungen, wie beispielsweise Geschwindigkeiten, Beschleunigungen, Drehmomenten und dergleichen, der jeweiligen Gelenke J1 bis J6 des Roboterarms 200 abzuweichen.
  • Hierbei können zwei Typen von Verfahren als ein Betriebsverfahren des Roboterarms 200 durch ein Lehren bzw. Programmieren berücksichtigt werden.
  • 1 Bewegung in Konfigurationsraum
  • Verfahren zum Bezeichnen von Lehrpunkten bei Gelenkwinkeln des Roboterarms 200 und zum Bewegen des Roboterarms entlang einer Bewegungsbahn, die durch die bezeichneten Lehrpunkte bestimmt wird.
  • 2 Bewegung in Aufgabenraum
  • Verfahren zum Bezeichnen von Lehrpunkten bei dreidimensionalen Positionen und Stellungen und zum Bewegen des Roboterarms 200 entlang einer Bewegungsbahn, die durch die bezeichneten Lehrpunkte und den Endpunkt des Roboterarms 200 bestimmt wird.
  • In 1 sind vier Lehrpunkte p1, p2, p3 und p4 schematisch veranschaulicht. Der Betrieb des Roboterarms 200 bewegt sich in jeden Fall entlang einer Bewegungsbahn, die durch die Lehrpunkte bestimmt werden. Hierbei sind die Lehrpunkte keine Punkte in einem sogenannten dreidimensionalen Raum. In dem Fall einer Gelenkraumbewegung entsprechen die Lehrpunkte Gelenkwinkeln aller Gelenke J1 bis J6 (Drehwinkel aller Motoren). In dem Fall einer Aufgabenraumbewegung entsprechen die Lehrpunkte der Position und Stellung in dem dreidimensionalen Raum, in dem p1, p2, p3 und p4 als ein Koordinatensystem ausgedrückt werden, wie es in 1 veranschaulicht ist.
  • Nachstehend wird in dem ersten Ausführungsbeispiel der Fall einer Gelenkraumbewegung beschrieben. In der Gelenkraumbewegung entsprechen die Lehrpunkte Winkeln der jeweiligen Gelenke J1 bis J6 des Roboters. Dementsprechend sind in dem Fall eines 6-Achsen- und 6-Gelenk-Roboters sechs Vektorkomponenten in einem Lehrpunkt beinhaltet.
  • 2 zeigt ein Blockschaltbild, das eine Konfiguration der Robotersteuerungsvorrichtung 300 veranschaulicht. In dem ersten Ausführungsbeispiel ist die Robotersteuerungsvorrichtung 300 ein Computer, der eine CPU 301 umfasst, die eine Berechnungseinheit ist, wie es in 2 veranschaulicht ist.
  • Die Robotersteuerungsvorrichtung 300 umfasst eine CPU 301, die die Berechnungseinheit ist, ein ROM 302, ein RAM 303, eine HDD 304, ein Aufzeichnungsplattenlaufwerk 305 und verschiedene Schnittstellen 306 bis 309.
  • Das ROM 302, das RAM 303, die HDD 304, das Aufzeichnungsplattenlaufwerk 305 und die verschiedenen Schnittstellen 306 bis 309 sind mit der CPU 301 über einen Bus 310 verbunden. Ein Programm 330 zum Betreiben der CPU 301 ist in dem ROM 302 gespeichert. Das Programm 330 ist ein Programm, das die CPU 301 veranlasst, verschiedene Berechnungsverarbeitungen auszuführen. Die CPU 301 führt die verschiedenen Berechnungsverarbeitungen auf der Grundlage des in dem ROM 302 gespeicherten Programms 330 aus. Das RAM 303 ist eine Speichereinheit, die temporär das Berechnungsverarbeitungsergebnis der CPU 301 speichert. Die HDD 304 ist eine Speichereinheit zur Speicherung verschiedener Typen von Daten, die das Berechnungsverarbeitungsergebnis sind.
  • Das Programmierhandgerät 400 ist mit der Schnittstelle 306 verbunden, wobei die CPU 301 eine Eingabe von Daten über die Lehrpunkte von dem Programmierhandgerät 400 über die Schnittstelle 306 und den Bus 310 empfängt.
  • Daten (Positionsbefehlsdaten), die das Berechnungsergebnis in der CPU 301 oder dergleichen angeben, werden in der HDD 304 unter dem Befehl der CPU 301 gespeichert.
  • Die Servosteuerungsvorrichtung 230 des Roboterarms 200 ist mit der Schnittstelle 309 verbunden, wobei die CPU 301 die Positionsbefehlsdaten an die Servosteuerungsvorrichtung 230 über den Bus 310 und die Schnittstelle 309 bei vorbestimmten Zeitintervallen ausgibt.
  • Eine Überwachungseinrichtung bzw. ein Monitor 321 ist mit der Schnittstelle 307 verbunden, wobei verschiedene Bilder auf der Überwachungseinrichtung 321 angezeigt werden. Die Schnittstelle 308 ist derart konfiguriert, dass eine externe Speichervorrichtung 322, wie beispielsweise ein überschreibbarer nicht-flüchtiger Speicher oder eine externe HDD, damit verbunden werden kann. Das Aufzeichnungsplattenlaufwerk 305 ist in der Lage, verschiedene Typen von Daten, Programmen oder dergleichen zu lesen, die auf einer Aufzeichnungsplatte 331 aufgezeichnet sind.
  • 3 zeigt ein Funktionsblockschaltbild, das die Robotersteuerungsvorrichtung 300 veranschaulicht. Die CPU 301 führt das in den ROM 302 gespeicherte Programm 330 aus, um als verschiedene Verarbeitungsteile 351, 352 und 353 zu fungieren, die verschiedene Verarbeitungen ausführen, die nachstehend beschrieben werden. Das heißt, die CPU 301 fungiert auf der Grundlage des Programms 330 als ein erster Interpolationsteil 351, ein Durchgangsgeschwindigkeitsberechnungsteil 352, ein zweiter Interpolationsteil 353, der in 3 veranschaulicht ist. In 3 stellen abgerundete Rechtecke Daten dar, und Rechtecke stellen Verarbeitungen der CPU 301 dar.
  • Betriebe der jeweiligen Teile 351, 352 und 353 werden kurz beschrieben. Zuerst führt der erste Interpolationsteil 351 eine Interpolation zwischen den jeweiligen Lehrpunkten unter Verwendung einer Interpolationsfunktion aus, und er berechnet Positionen der jeweiligen Gelenke in jeweiligen Positionen der interpolierten Lehrpunkte. Ferner berechnet der erste Interpolationsteil 351 einen Differenzialwert erster Ordnung, einen Differenzialwert zweiter Ordnung und einen Differenzialwert dritter Ordnung.
  • Der Durchgangsgeschwindigkeitsberechnungsteil 352 definiert die Durchgangsgeschwindigkeit in jeder Position bzw. einer jeweiligen Position der interpolierten Lehrpunkte. Dann berechnet der Durchgangsgeschwindigkeitsberechnungsteil 352 einen Differenzialwert erster Ordnung der Durchgangsgeschwindigkeit und einen Differenzialwert zweiter Ordnung der Durchgangsgeschwindigkeit. Der Durchgangsgeschwindigkeitsberechnungsteil 352 berechnet eine geschätzte Geschwindigkeit, eine geschätzte Beschleunigung, einen geschätzten Ruck und ein geschätztes Drehmoment jedes Gelenks bzw. eines jeweiligen Gelenks des Roboterarms 200 aus dem Differenzialwert erster Ordnung und dem Differenzialwert zweiter Ordnung der Durchgangsgeschwindigkeit und der Position jedes Gelenks bzw. eines jeweiligen Gelenks, des Differenzialwerts erster Ordnung, des Differenzialwerts zweiter Ordnung und des Differenzialwerst dritter Ordnung, die in dem ersten Interpolationsteil 351 berechnet werden. Ferner berechnet der Durchgangsgeschwindigkeitsberechnungsteil 352 eine geschätzte Spitzengeschwindigkeit der Spitze des Roboterarms 200 (nachstehend als eine geschätzte Endpunktgeschwindigkeit bezeichnet) und eine geschätzte Drehgeschwindigkeit der Spitze des Roboterarms 200 (nachstehend als eine geschätzte Endpunktdrehgeschwindigkeit bezeichnet).
  • Dann berechnet der Durchgangsgeschwindigkeitsberechnungsteil 352 eine Randbedingungsverletzungsrate, die das Verhältnis der berechneten geschätzten Geschwindigkeit, der berechneten geschätzten Beschleunigung, des berechneten geschätzten Rucks, des berechneten geschätzten Drehmoments und der geschätzten Endpunktgeschwindigkeit und der geschätzten Endpunktdrehgeschwindigkeit und vorbestimmter Beschränkungswerte bzw. Randbedingungswerte ist.
  • Der Durchgangsgeschwindigkeitsberechnungsteil 352 löst ein Ungleichungsrandbedingungsoptimierungsproblem, dass eine Ungleichungsrandbedingung, in der die Gesamtheit oder ein vorausgewählter Teil der berechneten Randbedingungszustandverletzungsrate innerhalb eines vorbestimmten Randbedingungsbereichs (innerhalb eines Bereichs von ±1) ist, erfüllt ist, und die Summe von reziproken Zahlen der Durchgangsgeschwindigkeiten, d. h. eine Betriebszeit am kürzesten ist, um hierdurch die Durchgangsgeschwindigkeit zu erhalten.
  • Der zweite Interpolationsteil 353 berechnet den Positionsbefehl für jedes Gelenk des Roboterarms 200 in einer Position, die durch Integrieren der berechneten Durchgangsgeschwindigkeit bei vorbestimmten Zeitintervallen erhalten wird, wobei die Interpolationsfunktion verwendet wird.
  • Hierbei sind Symbole in mathematischen Ausdrücken wie nachstehend beschrieben definiert. In den mathematischen Ausdrücken stellt eine Fettschrift Vektoren dar.
  • Pi
    Lehrpunkt. Ein Vektor, der durch eine Vielzahl von Vektorkomponenten gebildet wird.
  • In dem Fall eines Roboterarms mit 6-Achsen-Gelenken wird ein Lehrpunkt durch sechs Lehrpositionen (Gelenkwinkel) gebildet.
  • h(s, pi)
    Interpolationsfunktion.
    q(s)
    Interpolierter Lehrpunkt. Ein Vektor, der durch eine Vielzahl von Vektorkomponenten gebildet wird.
  • In dem Fall eines Roboterarms mit 6-Achsen-Gelenken wird ein interpolierter Lehrpunkt durch sechs Lehrpositionen (Gelenkwinkel) gebildet.
  • s
    Variable Zahl, die eine Serienzahl jeweiliger interpolierter Lehrpunkte angibt. Hierbei ist es keine ganze Zahl, sondern eine reelle Zahl.
  • Figure DE112013003029B4_0002
  • Differenzialkoeffizienten erster Ordnung, zweiter Ordnung und dritter Ordnung, die durch die variable Zahl s in interpolierten Lehrpunkten differenziert werden. Φ(s) = ∂s/∂t Durchgangsgeschwindigkeit.
    Figure DE112013003029B4_0003
    Vollständige erforderliche Zeit.
    Figure DE112013003029B4_0004
    Geschätzte Geschwindigkeit eines Gelenks (Differenziation erster Ordnung nach der Zeit)
    Figure DE112013003029B4_0005
    Geschätzte Beschleunigung eines Gelenks (Differenziation zweiter Ordnung nach der Zeit)
    Figure DE112013003029B4_0006
    Geschätzter Ruck eines Gelenks (Differenziation dritter Ordnung nach der Zeit).
  • an
    Randbedingungsverletzungsrate.
    qi
    Positionsbefehl. Sollposition, die zu Servosteuerungsvorrichtung bei jedem vorbestimmten Zeitintervall zu übertragen ist.
    ·r(s)
    Geschätzte Endpunktgeschwindigkeit des Roboterarms (Geschwindigkeit des Koordinatensystems Te in 1).
    ·w(s)
    Geschätzte Endpunktdrehgeschwindigkeit des Roboterarms (Winkelgeschwindigkeit des Koordinatensystems Te in 1).
    u(s)
    Geschätztes Drehmoment, das an Gelenk des Roboterarms angelegt wird.
  • Nachstehend werden die Betriebe der jeweiligen Teile 351, 352 und 353 ausführlich unter Bezugnahme auf die 3, 4 und 5 beschrieben. Wie es in 3 veranschaulicht ist, umfasst der erste Interpolationsteil 351 einen Interpolationsfunktionsberechnungsteil 361 und einen Differenzialkoeffizientenberechnungsteil 362. Der Durchgangsgeschwindigkeitsberechnungsteil 352 umfasst einen temporären Einstellteil 363, einen Durchgangsgeschwindigkeitsdifferenzialkoeffizientenberechnungsteil 364, einen Schätzwertberechnungsteil 365, einen Randbedingungsverletzungsratenberechnungsteil 368, einen Zeitoptimale-Steuerung-Teil 369 und einen Durchgangsgeschwindigkeitsfunktionsberechnungsteil 372. Der zweite Interpolationsteil 353 umfasst einen Positionsbefehlerzeugungsteil 373. Der Schätzerwertberechnungsteil 365 umfasst einen Berechnungsteil 366 und einen Kinematikberechnungsteil 367. Der Zeitoptimale-Steuerung-Teil 369 umfasst einen Konvergenzbestimmungsteil 370 und einen Durchgangsgeschwindigkeitsänderungsteil 371.
  • Zuerst führt der Interpolationsfunktionsberechnungsteil 361 eine Interpolationsfunktionsberechnungsverarbeitung zum Berechnen einer Interpolationsfunktion, die durch eine Vielzahl von interpolierten Lehrpunkten (Vektoren) hindurchgeht, q(s) für eine Interpolation zwischen jeweiligen Lehrpunkten (Vektoren) pi aus (Interpolationsfunktionsberechnungsverarbeitung). Beispielsweise berechnet in einem Fall, in dem vier Lehrpunkte p1 bis p4, die in 4A veranschaulicht sind, erhalten werden, der Interpolationsfunktionsberechnungsteil 361 eine Interpolationsfunktion, die durch die Vielzahl von interpolierten Lehrpunkten q(1), q(2), ... hindurchgeht, die in 4B veranschaulicht sind, für eine Interpolation zwischen vier Lehrpunkten p1 bis p4. Der Lehrpunkt p1 ist ein Startpunkt und der Lehrpunkt p4 ist ein Endpunkt.
  • Hierbei ist eine variable Zahl s eine variable Zahl, die eine Serienzahl in den jeweiligen interpolierten Lehrpunkten ist, d. h. eine variable Zahl, die eine Serienzahl ist, die den jeweiligen interpolierten Lehrpunkten in der Reihenfolge eines Durchgangs zugewiesen wird, die einen reellen Wert in der Interpolationsfunktion annimmt.
  • In 4B ist die Interpolationsfunktion schematisch durch eine gestrichelte Linie dargestellt. Verschiedene Interpolationen, wie beispielsweise eine lineare Interpolation, eine Kreisinterpolation oder eine Spline-Interpolation, werden als die Interpolationsfunktion vorgeschlagen, wobei sie durch den nachstehenden Ausdruck (1) ausgedrückt werden kann. q(s) = h(s, pi) (1)
  • Hierbei wird die variable Zahl s eine Zahl eines jeweiligen interpolierten Lehrpunkts q(s) in einem Fall, bei dem die variable Zahl s als ein ganzzahliger Wert verwendet wird. Beispielsweise werden in einem Fall, bei dem jeder Abschnitt zwischen den jeweiligen Lehrpunkten p1 bis p4 in zehn Stücke geteilt wird, interpolierte Lehrpunkte q(1) bis q(31), die in 31 aufgeteilt sind, erhalten. Ferner kann die variable Zahl s Werte kontinuierlicher Zahlen (reelle Werte) anstelle einer ganzen Zahl in einer Interpolation annehmen.
  • Es ist zu bevorzugen, dass die Interpolationsfunktion eine polynomale Gleichung der variablen Zahl s ist. In dem ersten Ausführungsbeispiel ist, da eine Berechnung später bis zu einem Differenzialkoeffizienten dritter Ordnung ausgeführt wird, die Interpolationsfunktion als die nachstehende Gleichung (2) als eine dreidimensionale polynomale Gleichung angegeben. h(s, pi) = a3s3 + a2s2 + a1s1 + a0 (2)
  • Jeweilige Koeffizienten (Vektoren) a0, a1, a2 und a3 in der polynomalen Gleichung, die in Gleichung (2) gezeigt ist, werden als unterschiedliche Werte für jeden pi-pi-1-Abschnitt ausgewählt. In dem vorliegenden Ausführungsbeispiel werden die jeweiligen Koeffizienten als kontinuierliche Werte bis zu einem sekundären Differenzialkoeffizienten in einer Grenze des Abschnitts ausgewählt.
  • Als die Interpolationsfunktion werden eine Interpolationsfunktion, die durch jeden Lehrpunkt bzw. einen jeweiligen Lehrpunkt pi hindurchgeht, und eine Interpolationsfunktion, die nicht durch jeden Lehrpunkt pi hindurchgeht, verwendet. Das heißt, die Interpolationsfunktion ist nicht auf eine Interpolationsfunktion begrenzt, die notwendigerweise durch alle Lehrpunkte hindurchgeht.
  • Auf diese Weise berechnet der Interpolationsfunktionsberechnungsteil 361 die jeweiligen Koeffizienten a0, a1, a2 und a3, die in der Gleichung (2) gezeigt sind, um die Interpolationsfunktion zu erhalten, wobei sie die jeweiligen interpolierten Lehrpunkte q(1), q(2), ... durch Substituieren von s = 1, 2, ... in die variable Zahl s der Interpolationsfunktion erhält.
  • Hierbei ist es, da die interpolierten Lehrpunkte q(1), q(2), ... für eine Berechnung der Durchgangsgeschwindigkeit verwendet werden, wie es nachstehend beschrieben ist, nicht erforderlich, die Zahl zugehöriger Punkte so weit wie die Zahl von Positionsbefehlen zu vergrößern. Beispielsweise ist es ausreichend, den Abschnitt zwischen den Lehrpunkten pi-pi-1 in zehn Stücke zu teilen. Die Zahl der interpolierten Lehrpunkte q(s) wird eingestellt, um kleiner als die Zahl der Positionsbefehle zu sein, die an die Servosteuerungsvorrichtung 230 ausgegeben werden. Beispielsweise erlaubt der Roboterarm 200, dass vier Lehrpunkte p1 bis p4, die in 4A veranschaulicht sind, für 10 Sekunden bewegt werden, wobei in einem Fall, bei dem die Positionsbefehle an die Servosteuerungsvorrichtung 230 mit einem vorbestimmten Zeitintervall von 1 ms ausgegeben werden, Positionsbefehle von 10 + 0,001 = 10000 Punkten erforderlich sind. Diesbezüglich wird, wenn jeder Abschnitt zwischen den Lehrpunkten p1 bis p4 in zehn Stücke geteilt wird, die Zahl der interpolierten Lehrpunkte q(s)31, wobei es somit möglich ist, die Zahl der Positionsbefehle deutlich zu verringern.
  • Als Nächstes führt der Differenzialkoeffizientberechnungsteil 362 eine Differenzialkoeffizientberechnungsverarbeitung zum jeweiligen Berechnen von Differenzialkoeffizienten aus, die durch Differenzieren der jeweiligen Vektorkomponenten, die die Lehrpositionen angeben, die in den jeweiligen interpolierten Lehrpunkten q(1), q(2), ... beinhaltet sind, durch die variable Zahl s der Interpolationsfunktion erhalten werden (Differenzialkoeffizientberechnungsverarbeitung).
  • Hierbei wird in einem Verfahren zum zeitweiligen Berechnen von Differenzen zwischen den interpolierten Lehrpunkten q(1) bis q(31) ein Interpolationsfehler vergrößert, der für eine Differenziation höherer Ordnung nicht verwendet wird.
  • In dem ersten Ausführungsbeispiel wird, da die Differenziation bis zu der Differenziation dritter Ordnung ausgeführt wird, die einfache Differenzgleichung gemäß dem Stand der Technik nicht verwendet, sondern es wird die Funktion verwendet, die durch direktes Differenzieren der Interpolationsfunktion erhalten wird. Das heißt, wenn die Gleichung (2) der Differenziation erster Ordnung, der Differenziation zweiter Ordnung und der Differenziation dritter Ordnung durch die variable Zahl s jeweils unterzogen wird, wird die nachstehende Gleichung (3) erhalten.
  • Figure DE112013003029B4_0007
  • Dementsprechend berechnet in dem ersten Ausführungsbeispiel der Differenzialkoeffizientberechnungsteil 362 den Differenzialkoeffizienten erster Ordnung, den Differenzialkoeffizienten zweiter Ordnung und den Differenzialkoeffizienten dritter Ordnung unter Verwendung der Gleichung (3) als Differenzialkoeffizienten, die durch Differenzieren der jeweiligen Vektorkomponenten in den jeweiligen interpolierten Lehrpunkten q(1) bis q(3) durch die variable Zahl s erhalten werden. Das heißt, der Differenzialkoeffizientberechnungsteil 362 berechnet die Differenzialkoeffizienten in den jeweiligen interpolierten Lehrpunkten durch Substituieren von s = 1, 2, ..., 31 in die variable Zahl s der Gleichung (3).
  • Als Nächstes führt der temporäre Einstellteil 363 eine temporäre Einstellverarbeitung zum temporären Einstellen der Durchgangsgeschwindigkeit aus, die den Differenzialwert (Differenzialkoeffizient erster Ordnung) angibt, der durch eine Zeitdifferenzierung der variablen Zahl s in den jeweiligen interpolierten Lehrpunkten q(1) bis q(3) jeweils erhalten wird (temporäre Einstellverarbeitung). In den jeweiligen interpolierten Lehrpunkten q(1) bis q(31) stellt jede Durchgangsgeschwindigkeit eine Geschwindigkeit dar, bei der die variable Zahl s geändert wird.
  • Beispielsweise werden die jeweiligen Durchgangsgeschwindigkeiten als Φ(1) bis Φ(31) in den jeweiligen interpolierten Lehrpunkten anfänglich eingestellt (temporär eingestellt), wie es in 4C veranschaulicht ist. Die Durchgangsgeschwindigkeiten Φ(s) werden durch die nachstehende Gleichung definiert. Φ(s) = ∂s/∂t
  • Beispielsweise werden die jeweiligen Durchgangsgeschwindigkeiten Φ(1) bis Φ(31) auf vorbestimmte Zahlen eingestellt, wie es beispielsweise nachstehend beschrieben ist. Φ(s) = 1
  • Dies bedeutet einen Durchgang durch einen interpolierten Lehrpunkt für eine Sekunde.
  • Als Nächstes führt der Durchgangsgeschwindigkeitsdifferenzialkoeffizientberechnungsteil 361 eine Berechnungsverarbeitung zum Berechnen der Differenzialkoeffizienten (in dem vorliegenden Ausführungsbeispiel die Differenziation erster Ordnung und die Differenziation zweiter Ordnung), die durch Differenzieren der jeweiligen Durchgangsgeschwindigkeiten Φ(1) bis Φ(31) in den jeweiligen interpolierten Lehrpunkten q(1) bis q(31) durch die variable Zahl s erhalten werden, aus.
  • In der Durchgangsgeschwindigkeitsdifferenzialkoeffizientberechnungsverarbeitung wird die Berechnungsverarbeitung auf der Grundlage der nachstehenden Gleichung (4) ausgeführt.
  • Figure DE112013003029B4_0008
  • Als Nächstes führt der Berechnungsteil 366 eine Schätzwertberechnungsverarbeitung zum Berechnen geschätzter Geschwindigkeiten, geschätzter Beschleunigungen und geschätzter Rucke der jeweiligen Gelenke J1 bis J6 des Roboterarms 200 auf der Grundlage der jeweiligen Durchgangsgeschwindigkeiten und der jeweiligen Differenzialkoeffizienten aus (Schätzwertberechnungsverarbeitung). Das heißt, der Berechnungsteil 366 berechnet die geschätzten Geschwindigkeiten, die geschätzten Beschleunigungen und die geschätzten Rucke auf der Grundlage von Werten der jeweiligen Durchgangsgeschwindigkeiten Φ(s) (einschließlich Differenzialkoeffizienten Φ'(s) und Φ''(s), die auf der Grundlage dieser Werte berechnet werden) und von Werten der jeweiligen Differenzialkoeffizienten q'(s), q''(s) und q'''(s). Hierbei ist s = 1, 2, ... 31.
  • Spezifisch substituiert der Berechnungsteil 366 die jeweiligen Berechnungsergebnisse in die nachstehende Gleichung (5), um eine geschätzte Geschwindigkeit q(·)(s), eine geschätzte Beschleunigung q(··)(s) und einen geschätzten Ruck q(···)(s) zu berechnen. Die geschätzte Geschwindigkeit q(·)(s), die geschätzte Beschleunigung q(··)(s) und der geschätzte Ruck q(···)(s) sind Vektoren. q.(s) = q'(s)ϕ(s) q..(s) = q''(s)ϕ(s)2 + q'(s)ϕ'(s)ϕ(s) q...(s) = q'''(s)ϕ(s)3 + 3q''(s)ϕ'(s)ϕ(s)2 + q'(s)ϕ(s) (ϕ'(s)2 + ϕ(s)ϕ''(s)) (5)
  • Die geschätzte Beschleunigung ist ein Wert, der durch eine Differenziation erster Ordnung der geschätzten Geschwindigkeit durch die Zeit erhalten wird, und der geschätzte Ruck ist ein Wert, der durch eine Differenziation zweiter Ordnung der geschätzten Geschwindigkeit durch die Zeit erhalten wird.
  • Als Nächstes führt der Kinematikberechnungsteil 367 eine Schätzwertberechnungsverarbeitung zum Berechnen geschätzter Drehmomente der jeweiligen Gelenke in den jeweiligen Interpolationslehrpunkten, einer geschätzten Endpunktgeschwindigkeit des Roboterarms 20 und einer geschätzten Endpunktdrehgeschwindigkeit des Roboterarms 200 auf der Grundlage der jeweiligen Durchgangsgeschwindigkeiten und der jeweiligen Differenzialkoeffizienten aus.
  • Spezifisch berechnet der Kinematikberechnungsteil 367 ein geschätztes Drehmoment (Vektor) u(s), das an das Gelenk angelegt wird, aus dem interpolierten Lehrpunkt (Gelenklehrposition) q(s), der geschätzten Geschwindigkeit q(·)(s) und der geschätzten Beschleunigung q(··)(s).
  • Diese Berechnung ist als eine Inverse-Dynamik-Berechnung des Roboterarms 200 bekannt. Beispielsweise wird unter Bezugnahme auf Kono Haruhisa, Robot Kinematics, 10. Juni 2005, Ohmsha (Tokyo), Seite 91 die nachstehende Gleichung (6) erhalten. u(S) = I(q(s))q ..(s) + C(q(s), q .(s)q .(s) + G(q(s)) + J(q(s))f (6)
  • Auf der rechten Seite wird der erste Ausdruck als ein Trägheitsausdruck bezeichnet, der zweite Ausdruck wird als ein Coriolis-Ausdruck bezeichnet, das dritte Element wird als ein Gravitationsausdruck bezeichnet und der vierte Ausdruck wird als ein externer Kraftausdruck bezeichnet. Diese werden aus Anordnungen, Massen und Trägheitstensoren von Verbindungen, die den Roboterarm 200 bilden, sowie Positionen q(s), geschätzten Geschwindigkeiten q(·)(s) und geschätzten Beschleunigungen q(··)(s) jeweiliger Gelenke berechnet.
  • Ferner berechnet der Kinematikberechnungsteil 367 eine geschätzte Endpunktgeschwindigkeit (Vektor) r(·)(s) und eine geschätzte Endpunktdrehgeschwindigkeit (Vektor) w(·)(s) des Roboterarms 200 aus dem interpolierten Lehrpunkt q(s) und der geschätzten Geschwindigkeit q(·)(s) der jeweiligen Gelenke des Roboterarms 200.
  • Diese Berechnung ist als eine Direkte-Kinematik-Berechnung bzw. Forward-Kinematic-Berechnung bekannt und wird einfach unter Verwendung einer Jacobi-Matrix T erhalten. Beispielsweise wird unter Bezugnahme auf Kono Haruhisa, Robot Kinematics, 10. Juni 2005, Ohmsha (Tokyo), Seite 42, die nachstehende Gleichung (7) erhalten.
  • Figure DE112013003029B4_0009
  • Auf diese Weise berechnet der Kinematikberechnungsteil 367 das geschätzte Drehmoment, das an das Gelenk angelegt wird, aus den Schätzwerten der Position, der Geschwindigkeit, der Beschleunigung und des Rucks des Gelenks, der Masse und des Trägheitstensors jedes Gelenks des Roboters unter Verwendung der Gleichung (6). Ferner berechnet der Kinematikberechnungsteil 367 die geschätzte Endpunktgeschwindigkeit und die geschätzte Endpunktdrehgeschwindigkeit des Roboterarms 200 unter Verwendung der Gleichung (7).
  • Als Nächstes führt der Randbedingungsverletzungsratenberechnungsteil 368 eine Randbedingungsverletzungsratenberechnungsverarbeitung zum Berechnen einer Randbedingungsverletzungsrate einer Gelenkgeschwindigkeit aus, die das Verhältnis einer geschätzten Geschwindigkeit jedes Gelenks und einer vorbestimmten zulässigen Geschwindigkeit ist. Das heißt, der Randbedingungsverletzungsratenberechnungsteil 368 berechnet die nachstehend genannte Formel.
    Figure DE112013003029B4_0010
    (Verhältnis der Geschwindigkeit q ...j(s) der j-ten Gelenkachse des Roboters und einer zulässigen Geschwindigkeit Vj)
  • In dem Fall eines 6-Achsen-Knickarmroboters ist j = 1 bis 6. Die jeweiligen geschätzten Geschwindigkeiten werden auf der Grundlage der jeweiligen Durchgangsgeschwindigkeiten (Φ(s)) und der jeweiligen Differenzialkoeffizienten (q'(s)) unter Verwendung der Gleichung (5) berechnet.
  • Ferner führt der Randbedingungsverletzungsratenberechnungsteil 368 eine Randbedingungsverletzungsratenberechnungsverarbeitung zum Berechnen einer Randbedingungsverletzungsrate einer Gelenkbeschleunigung aus, die das Verhältnis einer geschätzten Beschleunigung jedes Gelenks und einer vorbestimmten zulässigen Beschleunigung ist. Das heißt, der Randbedingungsverletzungsratenberechnungsteil 368 berechnet die nachstehend gezeigte Formel.
    Figure DE112013003029B4_0011
    (Verhältnis einer Beschleunigung q ...j(s) einer j-ten Gelenkachse des Roboters und einer zulässigen Beschleunigung Aj)
  • In dem Fall eines 6-Achsen-Knickarmroboters ist j = 1 bis 6. Die jeweiligen geschätzten Beschleunigungen werden auf der Grundlage der jeweiligen Durchgangsgeschwindigkeiten (Φ(s) und Werten Φ'(s) einer Differenziation erster Ordnung jeweiliger Durchgangsgeschwindigkeiten) und der jeweiligen Differenzialkoeffizienten (q'(s) und q''(s)) unter Verwendung der Gleichung (5) berechnet.
  • Ferner führt der Randbedingungsverletzungsratenberechnungsteil 368 eine Randbedingungsverletzungsratenberechnungsverarbeitung zum Berechnen einer Randbedingungsverletzungsrate eines Gelenkrucks aus, die das Verhältnis eines geschätzten Rucks jedes Gelenks und eines vorbestimmten zulässigen Rucks ist. Das heißt, der Randbedingungsverletzungsratenberechnungsteil 368 berechnet die nachstehend gezeigte Formel.
    Figure DE112013003029B4_0012
    (Verhältnis eines Rucks q ...j(s) einer j-ten Gelenkachse des Roboters und eines zulässigen Rucks (Bj)
  • In dem Fall eines 6-Achsen-Knickarmroboters ist j = 1 bis 6. Die jeweiligen geschätzten Rucke werden auf der Grundlage der jeweiligen Durchgangsgeschwindigkeiten (Φ(s), Werte Φ'(s) einer Differenziation erster Ordnung und Werte Φ''(s) einer Differenziation zweiter Ordnung) und der jeweiligen Differenzialkoeffizienten (q'(s), q''(s) und q'''(s)) unter Verwendung der Gleichung (5) berechnet.
  • Ferner führt der Randbedingungsverletzungsratenberechnungsteil 368 eine Randbedingungsverletzungsratenberechnungsverarbeitung zum Berechnen einer Randbedingungsverletzungsrate eines Drehmoments, das an das Gelenk angelegt wird, aus, die das Verhältnis eines geschätzten Drehmoments jedes Gelenks und eines vorbestimmten zulässigen Drehmoments ist. Das heißt, der Randbedingungsverletzungsratenberechnungsteil 368 berechnet die nachstehend genannte Formel.
    Figure DE112013003029B4_0013
    (Verhältnis eines Drehmoments u3(s), das an j-tes Gelenk des Roboters angelegt wird, und eines zulässigen Drehmoments Uj)
  • In dem Fall eines 6-Achsen-Knickarmroboters ist j = 1 bis 6. Die jeweiligen geschätzten Drehmomente werden auf der Grundlage der jeweiligen interpolierten Lehrpunkte q(s), der jeweiligen Durchgangsgeschwindigkeiten (Φ(s) und Werte Φ'(s) einer Differenziation erster Ordnung jeweiliger Durchgangsgeschwindigkeiten) und der jeweiligen Differenzialkoeffizienten (q'(s) und q''(s)) berechnet.
  • Ferner führt der Randbedingungsverletzungsratenberechnungsteil 368 eine Randbedingungsverletzungsratenberechnungsverarbeitung zum Berechnen einer Randbedingungsverletzungsrate einer Endpunktgeschwindigkeit aus, die das Verhältnis einer geschätzten Spitzengeschwindigkeit der Spitze des Roboterarms 200 in jedem interpolierten Lehrpunkt und einer vorbestimmten zulässigen Spitzengeschwindigkeit ist. Das heißt, der Randbedingungsverletzungsratenberechnungsteil 368 berechnet die nachstehend genannte Formel.
    Figure DE112013003029B4_0014
    (Verhältnis einer geschätzten Spitzengeschwindigkeit r(s) und einer zulässigen Spitzengeschwindigkeit R)
  • Hierbei ist die geschätzte Spitzengeschwindigkeit die Größe des Geschwindigkeitsvektors der Spitze des Roboterarms 200. Das heißt, die geschätzte Spitzengeschwindigkeit ist wie nachstehend beschrieben.
  • Figure DE112013003029B4_0015
  • Die jeweiligen geschätzten Spitzengeschwindigkeiten werden auf der Grundlage der jeweiligen interpolierten Lehrpunkte q(s), der jeweiligen Durchgangsgeschwindigkeiten Φ(s) und der jeweiligen Differenzialkoeffizienten q'(s) unter Verwendung der Gleichung (7) berechnet.
  • Ferner führt der Randbedingungsverletzungsratenberechnungsteil 368 eine Randbedingungsverletzungsratenberechnungsverarbeitung zum Berechnen einer Randbedingungsverletzungsrate einer Endpunktdrehgeschwindigkeit aus, die das Verhältnis einer geschätzten Drehgeschwindigkeit der Spitze des Roboterarms 200 in jedem interpolierten Lehrpunkt und einer vorbestimmten zulässigen Drehgeschwindigkeit ist. Das heißt, der Randbedingungsverletzungsratenberechnungsteil 368 berechnet die nachstehend genannte Formel. w(s)/W (Verhältnis einer geschätzten Drehgeschwindigkeit w(s) und einer zulässigen Drehgeschwindigkeit W)
  • Hierbei ist die geschätzte Drehgeschwindigkeit die Größe des Drehgeschwindigkeitsvektors des Endpunkts. Das heißt, die geschätzte Drehgeschwindigkeit ist wie nachstehend beschrieben.
  • Figure DE112013003029B4_0016
  • Die jeweiligen geschätzten Drehgeschwindigkeiten werden auf der Grundlage der jeweiligen interpolierten Lehrpunkte q(s), der jeweiligen Durchgangsgeschwindigkeiten Φ(s) und der jeweiligen Differenzialkoeffizienten q'(s) unter Verwendung der Gleichung (7) berechnet.
  • Für die Beschreibung wird die vorstehend genannte Randbedingungsverletzungsrate wie nachstehend genannt ausgedrückt. αn(s)
  • Hierbei stellt n den Typ der Randbedingungsverletzungsrate dar. In dem ersten Ausführungsbeispiel gibt es 6 + 6 + 6 + 6 + 1 + 1 = 26 Typen von Randbedingungsverletzungsraten. Ein vorbestimmter Randbedingungsbereich der Randbedingungen wird wie in der nachstehend genannten Formel (8) unter Verwendung dieser Randbedingungsverletzungsraten eingestellt. αn(s) – 1 ≤ 0 –αn(s) – 1 ≤ 0 (8)
  • Es ist erforderlich, dass die Randbedingungsverletzungsrate αn(s) in dem Bereich von ±1 ist, um die Randbedingung zu erfüllen. Das heißt, es ist erforderlich, die zwei Formeln zu erfüllen.
  • Ferner wird eine Zeit, die erforderlich ist, damit der Roboterarm 200 sich von dem Startpunkt der Lehrpunkte zu dem Endpunkt hiervon bewegt, unter Verwendung einer Zielfunktion der nachstehend genannten Gleichung (9) durch Integrieren reziproker Zahlen der jeweiligen Durchgangsgeschwindigkeiten mit der variablen Zahl s bestimmt.
  • Figure DE112013003029B4_0017
  • Das Problem eines Minimierens der Zielfunktion der Gleichung (9) in einem Bereich, in dem die Ungleichungsrandbedingung der Formel (8) erfüllt ist, unter Verwendung der Durchgangsgeschwindigkeit als ein Parameter ist als ein Ungleichungsrandbedingungsoptimalwertproblem bekannt, wobei verschiedene Analysen vorgeschlagen worden sind. Beispielsweise wird das nachstehend genannte Verfahren zum Minimieren der Lagrange-Funktion verwendet.
  • Figure DE112013003029B4_0018
  • Hierbei wird ρ als ein Strafparameter bezeichnet.
  • In dem ersten Ausführungsbeispiel führt der Zeitoptimale-Steuerung-Teil 369 eine zeitoptimale Steuerungsverarbeitung zum Ändern der jeweiligen Durchgangsgeschwindigkeiten unter der Randbedingung aus, dass die Randbedingungsverletzungsrate αn(s) in dem Bereich von ±1 ist, um die Zielfunktion der Gleichung (9) zu minimieren (zeitoptimale Steuerungsverarbeitung).
  • Spezifisch bestimmt zuerst der Konvergenzbestimmungsteil 370 des Zeitoptimale-Steuerung-Teils 369, dass eine Konvergenz abgeschlossen ist, wenn die nachstehenden zwei Bedingungen erfüllt sind.
  • Eine erste Bedingung ist eine Bedingung, dass alle Randbedingungsverletzungsraten αn(1), αn(2), ..., αn(31) innerhalb ±1 liegen, d. h., die erste Bedingung erfüllt die Gleichung (8).
  • Eine zweite Bedingung ist eine Bedingung, dass die Durchgangsgeschwindigkeitsverteilungen Φ(1), Φ(2), ... Φ(31) in einer vorbestimmten kleinen Größe ε geändert werden, im Vergleich zu den vorangegangenen Durchgangsgeschwindigkeitsverteilungen Φ0(1), Φ0(2), ..., Φ0(31), d. h., die zweite Bedingung erfüllt die nachstehend genannte Formel (11). ϕ(s) – ϕu(s)| < ε (11)
  • In einem Fall, bei dem es keine Daten über die vorangegangenen Durchgangsgeschwindigkeitsverteilungen Φ0(1), Φ0(2), ..., Φ0(31) gibt, d. h. in einer ersten Wiederholungsverarbeitung), führt der Konvergenzbestimmungsteil 370 eine Bestimmung nur unter Verwendung der ersten Bedingung bei einer Konvergenzbestimmung aus.
  • In einem Fall, in dem der Konvergenzbestimmungsteil 370 bestimmt, dass es keine Konvergenz gibt, führt der Durchgangsgeschwindigkeitsänderungsteil 371 des Zeitoptimale-Steuerung-Teils 369 eine Verarbeitung zum Ändern von Werten der jeweiligen Durchgangsgeschwindigkeiten auf der Grundlage der Gleichung (10) aus. Ferner führen der Durchgangsgeschwindigkeitsdifferenzialkoeffizientberechnungsteil 364, der Schätzwertberechnungsteil 365 und der Randbedingungsverletzungsratenberechnungsteil 368 die vorstehend genannten jeweiligen Berechnungsverarbeitungen unter Verwendung der geänderten jeweiligen Durchgangsgeschwindigkeiten aus. Eine Wiederholung dieser Verarbeitungen wird ausgeführt, bis der Konvergenzbestimmungsteil 370 bestimmt, dass es die Konvergenz gibt. Wie es vorstehend beschrieben ist, optimiert der Zeitoptimale-Steuerung-Teil 369 die Durchgangsgeschwindigkeit derart, dass die Zielfunktion der Gleichung (9) in dem Bereich minimiert wird, in dem die Ungleichungsrandbedingung der Gleichung (8) erfüllt ist.
  • Als Nächstes führt in einem Fall, in dem der Konvergenzbestimmungsteil 370 bestimmt, dass es die Konvergenz in der Konvergenzbestimmung gibt, der Durchgangsgeschwindigkeitsfunktionsberechnungsteil 372 eine Durchgangsgeschwindigkeitsfunktionsberechnungsverarbeitung zum Berechnen einer Durchgangsgeschwindigkeitsfunktion aus den jeweiligen Durchgangsgeschwindigkeiten aus, die in der zeitoptimalen Steuerungsverarbeitung erhalten werden (Durchgangsgeschwindigkeitsfunktionsberechnungsverarbeitung).
  • Als Nächstes führt der Positionsbefehlerzeugungsteil 373 eine Positionsbefehlserzeugungsverarbeitung zum Erzeugen von Positionsbefehlen aus, indem, wann immer die berechnete Durchgangsgeschwindigkeitsfunktion durch einen vorbestimmten Zeitintervallwert δ zeitintegriert wird, der integrierte Wert in die variable Zahl s in der Interpolationsfunktion substituiert wird (Positionsbefehlserzeugungsverarbeitung).
  • 5 veranschaulicht ein Beispiel des Positionsbefehls, der in dem Positionsbefehlserzeugungsteil 373 berechnet wird. Der Positionsbefehlserzeugungsteil 373 integriert die Durchgangsgeschwindigkeitsfunktion Φ(s) bei dem vorbestimmten Zeitintervall δ (beispielsweise 1 ms), um eine Lehrpunktzahl s zu berechnen, und berechnet einen Positionsbefehl, der einen Gelenkwert bei der Position angibt, unter Verwendung der Interpolationsfunktion. Hierbei ist es im Unterschied zu dem ersten Interpolationsteil 351 nicht erforderlich, die Differenzialkoeffizientberechnung auszuführen. Diese Berechnung kann einfach unter Verwendung der einfachsten Integralgleichung ausgedrückt werden, wie sie nachstehend angegeben ist. Si+1 = Si + ϕ (si)δ (12) qi+1 = h(si+1, pi) (13)
  • Hierbei stellt ein tiefgestelltes Zeichen i die Zahl des Befehlswerts dar, der bei jedem vorbestimmten Zeitintervall δ berechnet wird. Ferner ist ein Anfangswert der variablen Zahl s null, wie es nachstehend genannt ist. s0 = 0
  • Der Positionsbefehlerzeugungsteil 373 berechnet eine Position si + 1 eines Lehrpunkts nach dem vorbestimmten Zeitintervall δ in der Gleichung (12) und berechnet einen Positionsbefehl (Vektor) qi + 1 jedes Gelenks in der Gleichung (13). Da der Positionsbefehl qi bei jedem konstanten Zeitintervall, der auf diese Weise berechnet wird, eine Lösung des Ungleichungsrandbedingungsoptimalwertproblems ist, das in den Gleichungen (8) und (9) genannt ist, wird der Roboterarm 200 mit der kürzesten Zeit betrieben.
  • Vorstehend wird in dem ersten Ausführungsbeispiel die zeitoptimale Steuerungsverarbeitung zum Ändern der jeweiligen Durchgangsgeschwindigkeiten Φ(1), Φ(2), ..., Φ(31) in Bezug auf die variable Zahl s der Interpolationsfunktion in den jeweiligen interpolierten Lehrpunkten derart ausgeführt, dass die Zielfunktion minimiert wird. Ferner werden unter Verwendung der jeweiligen Durchgangsgeschwindigkeiten Φ(1), Φ(2), ..., Φ(31), die auf diese Weise berechnet werden, Positionsbefehle q1, q2, ... bei jedem vorbestimmten Zeitintervall aus der Interpolationsfunktion erzeugt. Hierbei wird die Zahl der interpolierten Lehrpunkte, die in der zeitoptimalen Steuerung zu verwenden sind, durch den ersten Interpolationsteil 351 bestimmt. Im Allgemeinen benötigt das Ungleichungsrandbedingungsoptimalwertproblem eine Berechnungszeit, wobei aber die Zahl der interpolierten Lehrpunkte kleiner eingestellt werden kann als die Zahl der Positionsbefehle, die in einem gleichen Zeitintervall in der Servosteuerungsvorrichtung 230 gesendet werden, die schließlich erzeugt wird. Beispielsweise ist es, wenn die Zahl der integrierten Lehrpunkte 31 ist und die Zahl der Positionsbefehle 10000 ist, da das Verhältnis 31/10000 ist, d. h. etwa 0,3%, möglich, die Berechnungsmenge deutlich zu verringern.
  • Auf diese Weise ist es in dem ersten Ausführungsbeispiel, da die Positionsbefehle q1, q2, ... berechnet werden, nachdem eine Minimierung der Zielfunktion ausgeführt ist, nicht erforderlich, die Zahl der interpolierten Lehrpunkte so einzustellen, dass sie gleich der Zahl der Positionsbefehle ist, wobei es möglich ist, die Zahl der interpolierten Lehrpunkte einzustellen, um kleiner als die Zahl der Positionsbefehle zu sein. Somit ist es möglich, die Berechnungsmenge, die für die zeitoptimale Steuerungsverarbeitung erforderlich ist, zu verringern, wobei es möglich ist, die Berechnungszeit für eine Berechnung der Positionsbefehle in der CPU 301 zu verringern, um die Berechnungsgeschwindigkeit im Vergleich zu dem Stand der Technik zu verbessern.
  • Ferner wird der Differenzialkoeffizient jedes interpolierten Lehrpunkts einmal durch den Differenzialkoeffizientberechnungsteil 362 berechnet und als eine Konstante in dem Durchgangsgeschwindigkeitsberechnungsteil 352 betrachtet, wobei somit die Berechnungsmenge klein ist, wobei die Berechnungszeit verringert wird.
  • Ferner ist in dem verwandten Stand der Technik die Randbedingung nur eine Bedingung, dass eine Randbedingungsverletzungsrate einer geschätzten Geschwindigkeit eines Gelenks des Roboterarms innerhalb eines Bereichs einer vorbestimmten Randbedingung ist. Demgegenüber umfasst in dem ersten Ausführungsbeispiel die Randbedingung Bedingungen, dass die Randbedingungsverletzungsraten der geschätzten Geschwindigkeit, der geschätzten Beschleunigung, des geschätzten Rucks, des geschätzten Drehmoments, der geschätzten Endpunktgeschwindigkeit und der geschätzten Endpunktdrehgeschwindigkeit des Gelenks des Roboterarms 200 innerhalb des vorbestimmten Randbedingungsbereichs liegen, der in der Gleichung (8) veranschaulicht ist. Dementsprechend ist es möglich, mit breiten Randbedingungen im Vergleich zu dem Stand der Technik zurecht zu kommen, wobei der Betrieb des Roboterarms 200 stabilisiert wird. Beispielsweise ist es, da die Randbedingung die Bedingung umfasst, dass das Verhältnis des geschätzten Rucks und des vorbestimmten zulässigen Rucks innerhalb des vorbestimmten Randbedingungsbereichs liegt, möglich, dass ein Anlegen einer anormalen Anregungskraft an den Roboterarm 200 unterdrückt wird und dass eine fühlbare Schwingung des Roboterarms 200 unterdrückt wird.
  • In dem ersten Ausführungsbeispiel ist ein Beispiel beschrieben worden, in dem ein Spline dritter Ordnung als die Interpolationsfunktion verwendet wird, wobei aber die Interpolationsfunktion durch eine Spline-Interpolation vierter oder höherer Ordnung oder eine Polynomalgleichungsinterpolation berechnet werden kann. Ferner kann die Interpolationsfunktion durch eine lineare Interpolation, eine Kreisinterpolation oder dergleichen berechnet werden.
  • Ferner wird in dem ersten Ausführungsbeispiel die Verarbeitung zum Erzeugen des Positionsbefehls bei jeder konstanten Zeit aus der Vielzahl von Lehrpunkten als eine Reihe von kontinuierlichen Betrieben ausgeführt, wobei sie aber als zwei Stufen ausgeführt werden kann, die in der Mitte geteilt sind, wie es nachstehend beschrieben ist.
  • Die Verarbeitungen des ersten Interpolationsteils 351 und des Durchgangsgeschwindigkeitsberechnungsteils 352 werden kontinuierlich als eine Berechnungsverarbeitung A ausgeführt, um die Durchgangsgeschwindigkeit Φ(s) zu berechnen.
  • Ein Positionsbefehl bei jeder konstanten Zeit wird aus der Durchgangsgeschwindigkeit Φ(s) und dem Lehrpunkt durch den zweiten Interpolationsteil 353 als eine Berechnungsverarbeitung B erzeugt (Positionsbefehlerzeugungsteil 373).
  • Die Berechnungsverarbeitung A ist eine optimierte Berechnung und weist eine große Berechnungsmenge auf, wobei sie somit berechnet wird, bevor der Roboterarm 200 betrieben wird. Da die letztgenannte Berechnungsverarbeitung B eine kleine Berechnungsmenge aufweist, ist es möglich, die Verarbeitung auszuführen, während der Roboterarm 200 tatsächlich bewegt wird. In diesem Fall entspricht die Zeit, wenn der Roboterarm 200 für eine Berechnung gestoppt ist, der Verarbeitungszeit der Berechnungsverarbeitung A.
  • Das heißt, im Vergleich zu einem Verfahren zum Bewegen des Roboterarms 200, nachdem alle Berechnungsverarbeitungen A und B beendet sind, ist es möglich, die Stoppzeit des Roboterarms 200 zu verringern.
  • Zweites Ausführungsbeispiel
  • Als Nächstes wird eine Robotersteuerungsvorrichtung gemäß einem zweiten Ausführungsbeispiel der Erfindung beschrieben. 6 zeigt ein Diagramm, das schematisch einen Betrieb eines Differenzialkoeffizientberechnungsteils einer Robotersteuerungsvorrichtung gemäß dem zweiten Ausführungsbeispiel der Erfindung veranschaulicht. In dem zweiten Ausführungsbeispiel ist nur die Berechnungsverarbeitung des Differenzialkoeffizientberechnungsteils 362 (3) zu dem ersten Ausführungsbeispiel unterschiedlich. Dementsprechend wird in dem zweiten Ausführungsbeispiel die Berechnungsverarbeitung des Differenzialkoeffizientberechnungsteils 362 beschrieben.
  • In dem ersten Ausführungsbeispiel ist der Fall einer ”Bewegung in einem Konfigurationsraum” als ein Beispiel beschrieben worden. In dem zweiten Ausführungsbeispiel wird ein Fall einer ”Bewegung in einem Aufgabenraum” beschrieben. Das zweite Ausführungsbeispiel unterscheidet sich zu dem ersten Ausführungsbeispiel in der Interpolationsfunktion, die in der Gleichung (1) gezeigt ist.
  • In dem Fall einer ”Bewegung in einem Aufgabenraum” interpoliert die Interpolationsfunktion Lehrpunkte, die in einem Aufgabenraum ausgedrückt werden, und berechnet dann eine inverse Kinematik des Roboterarms 200 und wandelt das Ergebnis in einen Gelenkraum um, um interpolierte Lehrpunkte zu berechnen. Zu dieser Zeit ist es, da eine komplizierte inverse Kinematikberechnung ausgeführt wird, schwierig, Differenzialkoeffizienten analytisch zu berechnen.
  • In dem zweiten Ausführungsbeispiel fungiert ähnlich zu dem ersten Ausführungsbeispiel die CPU 301 (2), die eine Berechnungseinheit ist, als der Differenzialkoeffizientberechnungsteil 362 auf der Grundlage des Programms 330.
  • Ferner führt in dem zweiten Ausführungsbeispiel der Differenzialkoeffizientberechnungsteil 362 eine numerische Differenziation aus, um mit einem Fall zurecht zu kommen, in dem es schwierig ist, die Interpolationsfunktion analytisch zu differenzieren. Hierbei werden in dem zweiten Ausführungsbeispiel, da die Zahl von interpolierten Lehrpunkten durch eine grobe Ausführung einer Interpolation verringert wird, wenn die numerische Differenziation einfach durch Werte zwischen den interpolierten Lehrpunkten ausgeführt wird, Interpolationsfehler vergrößert. Somit werden die Differenzialkoeffizienten bei jeweiligen Positionen erhalten, die für eine Interpolation geteilt sind.
  • Der Differenzialkoeffizientberechnungsteil 362 berechnet als die Differenzialkoeffizientberechnungsverarbeitung jeweilige Vektorkomponenten auf der Grundlage der Interpolationsfunktion, wenn die variable Zahl s in einen winzigen Wert e geändert wird, der kleiner als das Intervall der jeweiligen interpolierten Lehrpunkte ist, in Bezug auf die jeweiligen Vektorkomponenten der jeweiligen interpolierten Lehrpunkte q(1) bis q(31). Ferner berechnet der Differenzialkoeffizientberechnungsteil 362 die jeweiligen Differenzialkoeffizienten unter Verwendung des berechneten Ergebnisses. Spezifisch berechnet der Differenzialkoeffizientberechnungsteil 362 einen Differenzialwert erster Ordnung, einen Differenzialwert zweiter Ordnung und einen Differenzialwert dritter Ordnung der Vektorkomponenten in den jeweiligen interpolierten Lehrpunkten q(1) bis q(31).
  • Spezifisch führt der Differenzialkoeffizientberechnungsteil 362 zuerst eine Vier-Punkt-Berechnung von Werten der Interpolationsfunktion in s = 1, 2, ..., 31 und von Werten der Interpolationsfunktion bei Positionen aus, bei denen die variablen Zahlen s um den winzigen Wert e in Bezug auf die jeweiligen Werte s verschoben sind. q(s) = h(s, pi) q(s + e) = h(s + e, pi) q(s – e) = h(s – e, pi) q(s + 2e) = h(s + 2e, pi) (14)
  • Als Nächstes berechnet der Differenzialkoeffizientberechnungsteil 362 den Differenzialwert erster Ordnung, den Differenzialwert zweiter Ordnung und den Differenzialwert dritter Ordnung in der nachstehend genannten Gleichung (15).
  • Figure DE112013003029B4_0019
  • Die vorstehend genannte Gleichung (15) ist ein Beispiel, wobei verschiedene Typen anderer numerischer Differenzialgleichungen bekannt sind. Gemäß diesem Verfahren ist es auch in dem Fall der Interpolationsfunktion, die schwierig analytisch zu differenzieren ist, möglich, den Differenzialwert erster Ordnung, den Differenzialwert zweiter Ordnung und den Differenzialwert dritter Ordnung mit hoher Genauigkeit zu berechnen und eine zeitoptimale Steuerung auszuführen.
  • Drittes Ausführungsbeispiel
  • Als Nächstes wird ein Robotergerät gemäß einem dritten Ausführungsbeispiel der Erfindung beschrieben. In dem dritten Ausführungsbeispiel ist ein Robotergerät 100B ein Roboter mit mehreren Gelenken, wobei es zwei Roboterarme 200a und 200b umfasst, und einer Robotersteuerungsvorrichtung 300B, die die Roboterarme 200a und 200b steuert. In dem dritten Ausführungsbeispiel ist das dritte Ausführungsbeispiel in einer Berechnungsverarbeitung einer CPU, die eine Berechnungseinheit ist, unterschiedlich zu den ersten und zweiten Ausführungsbeispielen in einer Interpolationsfunktionsberechnungsverarbeitung zum Berechnen der Interpolationsfunktion, wobei es aber in den anderen Berechnungsverarbeitungen gleich zu den ersten und zweiten Ausführungsbeispielen ist.
  • Dementsprechend verwendet in dem dritten Ausführungsbeispiel die Robotersteuerungsvorrichtung 300b zwei Roboterarme 200a und 200b als ein Steuerungsziel, wobei mit Ausnahme der Interpolationsfunktionsberechnungsverarbeitung in den jeweiligen Roboterarmen die gleichen Verarbeitungen wie die gemäß den ersten und zweiten Ausführungsbeispielen ausgeführt werden.
  • In einem manuellen Zusammenbau wird eine Vielzahl von Elementen, wie beispielsweise beide Arme oder Hände, synchron bewegt. Auf ähnliche Weise sollten in der Robotersteuerungsvorrichtung des Roboterarms synchrone Betriebe der Vielzahl von Roboterarmen realisiert werden.
  • In dem dritten Ausführungsbeispiel fungiert ähnlich zu dem ersten und zweiten Ausführungsbeispiel die CPU 301 (2), die eine Berechnungseinheit ist, als der Interpolationsfunktionsberechnungsteil 361 auf der Grundlage des Programms 330.
  • Ferner weist in dem dritten Ausführungsbeispiel der Interpolationsfunktionsberechnungsteil 361 eine Lehrpunktzahl entsprechend einer Zeit bei jedem Lehrpunkt zu und berechnet eine Interpolationsfunktion durch eine Spline-Interpolation unter Verwendung der Lehrpunktzahl als eine Interpolationsfunktionsberechnungsverarbeitung.
  • Spezifisch stellt der Interpolationsfunktionsberechnungsteil 361 eine Lehrpunktzahl ein, die monoton in den Lehrpunkten jeder Lehrpunktsequenz ansteigt, und berechnet eine Interpolationsfunktion, die eine Interpolation zwischen den Lehrpunkten der Lehrpunktsequenz ausführt, durch einen Spline mit ungleichmäßiger Beabstandung unter Verwendung der Lehrpunktzahl.
  • Beispielsweise wird, wie es in 7A veranschaulicht ist, angenommen, dass vier Lehrpunkte (1p1, 1p2, 1p3 und 1p4) für den ersten Roboterarm 200a vorhanden sind und drei Lehrpunkte (2p1, 2p3 und 2p4) für den zweiten Roboterarm 200b vorhanden sind. Bei diesen Lehrpunkten wird angenommen, dass beide Roboterarme 200a und 200b durch die letzten zwei Lehrpunkte zur gleichen Zeit für eine Zusammenarbeit hindurchgehen sollten.
  • Die Lehrpunktzahl, die monoton in jeder Lehrpunktsequenz ansteigt, beginnt bei der Zahl 1, aber die Zahl 2 fehlt bei dem zweiten Roboterarm 200b. Der Zweck ist, synchrone Bewegungen in Punkten zu realisieren, die die gleiche Lehrpunktzahl in zwei Lehrpunktsequenzen aufweisen. Das heißt, der Zweck ist, dass die jeweiligen Roboterarme 200a und 200b durch die Lehrpunkte der Zahlen 1, 3 und 4 mit Ausnahme der Zahl 2 zur gleichen Zeit hindurchgehen.
  • Dies kann verwirklicht werden, indem die Interpolationsfunktion auf eine Ungleichmäßiger-Abstand-Splinefunktion eingestellt wird. Als ein Beispiel der Ungleichmäßiger-Abstand-Splinefunktion ist ein B-Spline oder dergleichen bekannt.
  • Die Interpolationsfunktion jeder Lehrpunktsequenz für den ersten Roboterarm ist wie nachstehend genannt. 1h(s, 1pi)
  • Die Interpolationsfunktion der Lehrpunktsequenz für den zweiten Roboterarm ist wie nachstehend genannt. 2h(s, 2pi)
  • Beide Elemente werden kombiniert, was als eine Interpolationsfunktion wie nachstehend genannt ausgedrückt wird.
  • Figure DE112013003029B4_0020
  • Nachfolgende Verarbeitungen sind die gleichen wie die gemäß den ersten und zweiten Ausführungsbeispielen.
  • In dem dritten Ausführungsbeispiel ist es zusätzlich zu den Wirkungen der ersten und zweiten Ausführungsbeispiele möglich, die Roboterarme 200a und 200b bei den Plätzen der gleichen Lehrzahlen und bei den Plätzen der gleichen Werte s in der vorstehend genannten Gleichung zu synchronisieren. Das heißt, es ist möglich, die zeitoptimale Steuerung entsprechend den synchronen Betrieben der Vielzahl von Roboterarmen zu verwirklichen.
  • Viertes Ausführungsbeispiel
  • Als Nächstes wird eine Robotersteuerungsvorrichtung gemäß einem vierten Ausführungsbeispiel der Erfindung beschrieben. 8 zeigt ein Diagramm, das einen Verarbeitungsbetrieb eines Randbedingungsverletzungsratenberechnungsteils in der Robotersteuerungsvorrichtung gemäß dem vierten Ausführungsbeispiel der Erfindung veranschaulicht.
  • In der Robotersteuerungsvorrichtung gemäß dem vierten Ausführungsbeispiel wird ein vorbestimmter Randbedingungswert (zulässiger Wert) eingestellt, um einen unterschiedlichen Wert für jeden interpolierten Lehrpunkt zu haben. Ein unterschiedlicher Randbedingungswert wird jedem Lehrpunkt im Voraus gegeben, wobei eine Randbedingungsverletzungsrate unter Verwendung der Gleichung (8) entsprechend dem Wert berechnet wird. Da andere Berechnungsverarbeitungen gleich zu denen gemäß den ersten bis dritten Ausführungsbeispielen sind, wird eine Beschreibung hiervon weggelassen.
  • In dem Randbedingungsverletzungsratenberechnungsteil 368 gemäß den ersten bis dritten Ausführungsbeispielen wird das Verhältnis des geschätzten Werts und des vorbestimmten zulässigen Werts als die Randbedingungsverletzungsrate berechnet. Beispielsweise wird in dem Fall der Geschwindigkeit einer j-ten Gelenkachse in den ersten bis dritten Ausführungsbeispielen das Verhältnis der geschätzten Geschwindigkeit des Gelenks und der zulässigen Geschwindigkeit Vj, die eine Konstante ist, wie nachstehend beschrieben berechnet.
  • Figure DE112013003029B4_0021
  • In dem dritten Ausführungsbeispiel wird die zulässige Geschwindigkeit auf einen Wert eingestellt, der entsprechend dem Wert der variablen Zahl geändert wird, wobei das Verhältnis der geschätzten Geschwindigkeit und der zulässigen Geschwindigkeit, die für jeden Lehrpunkt geändert wird, wie nachstehend beschrieben berechnet wird.
  • Figure DE112013003029B4_0022
  • Die in 8 veranschaulichte transversale Achse ist eine variable Zahl s, die eine interpolierte Lehrpunktzahl angibt, wobei die variable Zahl s nicht auf eine ganze Zahl in einer Interpolation begrenzt ist, sondern kontinuierliche Zahlen aufweist. 8 veranschaulicht einen Zustand, nachdem die Berechnung einer Optimierung der Durchgangsgeschwindigkeit abgeschlossen ist. Dementsprechend überschreitet die geschätzte Geschwindigkeit des Gelenks nicht die zulässige Geschwindigkeit.
  • In dem vierten Ausführungsbeispiel wird, da es möglich ist, die Randbedingung für jeden Lehrpunkt einzustellen, der Freiheitsgrad der Randbedingung im Vergleich zu den ersten bis dritten Ausführungsbeispielen weiter verbessert.
  • Ferner wird in dem vierten Ausführungsbeispiel, wie es in 8 veranschaulicht ist, die zulässige Geschwindigkeit eingestellt, um verkleinert zu werden, wenn der Wert der variablen Zahl s vergrößert wird. Somit ist es, da die Gelenkgeschwindigkeit verringert wird, wenn der Roboterarm nahe an dem Endpunkt ist, möglich, den Zusammenbaubetrieb unter Verwendung des Roboterarms stabil auszuführen.
  • In dem vierten Ausführungsbeispiel ist die Gelenkgeschwindigkeitsrandbedingung beschrieben worden, wobei es aber auf ähnliche Weise möglich ist, die zulässigen Werte für jeden Lehrpunkt in Bezug auf andere Randbedingungen einzustellen, wie beispielsweise eine Gelenkbeschleunigung, einen Ruck, ein Drehmoment, eine Endpunktgeschwindigkeit oder eine Endpunktdrehgeschwindigkeit.
  • Wie es vorstehend beschrieben ist, ist es gemäß dem vierten Ausführungsbeispiel zusätzlich zu den Wirkungen der ersten bis dritten Ausführungsbeispiele möglich, die zeitoptimale Steuerung des Roboterarms zu verwirklichen, indem unterschiedliche zulässige Werte für jeden Lehrpunkt eingestellt werden.
  • Fünftes Ausführungsbeispiel
  • Als Nächstes wird eine Robotersteuerungsvorrichtung gemäß einem fünften Ausführungsbeispiel der Erfindung beschrieben. In dem fünften Ausführungsbeispiel umfasst die Randbedingung zusätzlich zu den Bedingungen in den ersten bis vierten Ausführungsbeispielen Bedingungen, dass das Verhältnis eines geschätzten Motordrehmoments und eines vorbestimmten zulässigen Motordrehmoments in einem vorbestimmten Randbedingungsbereich (in dem Bereich von ±1) liegt.
  • Gelenke J1 bis J6 des Roboterarms 200 und elektrische Motoren 211 bis 216 sind miteinander durch Reduziereinrichtungen bzw. Vorgelege 221 bis 226 verbunden. Es ist möglich, ein geschätztes Motordrehmoment in jedem der elektrischen Motoren 211 bis 216 aus einem Berechnungsmodell der Reduziereinrichtung 221 bis 226 und der elektrischen Motoren 211 bis 216 zu berechnen.
  • Das Modell der elektrischen Motoren 211 bis 216 ist in 9A veranschaulicht. Hierbei werden die nachstehend genannten Symbole verwendet.
  • Nj
    Reduktionsgrad einer j-Achsenreduziereinrichtung
    τj
    geschätztes Motordrehmoment eines j-Achsenmotors
    Ij
    Trägheitsmoment eines j-Achsenmotors
    cj
    viskoses Element einer j-Achse
    dj
    Reibungselement einer j-Achse
  • Das Modell wird spezifisch als eine Gleichung ausgedrückt. Die geschätzte Geschwindigkeit, die geschätzte Beschleunigung des Gelenks und das geschätzte Drehmoment, das an das Gelenk angelegt wird, die verwendet werden, wenn die Randbedingung berechnet wird, werden verwendet. Das geschätzte Motordrehmoment der elektrischen Motoren 211 bis 216 wird unter Berücksichtigung des Reduktionsgrades Nj wie nachstehend beschrieben geschrieben.
  • Figure DE112013003029B4_0023
  • Auf der rechten Seite ist der erste Ausdruck ein Drehmoment, das an das Gelenk angelegt wird, das in der Gleichung (6) berechnet wird. Der zweite Ausdruck ist eine Komponente, die proportional zu der Trägheitskraft und Beschleunigung des Motors ist. Der dritte Ausdruck ist eine Komponente, die proportional zu der viskosen Kraft und Geschwindigkeit des Motors ist. Der vierte Ausdruck ist eine Komponente, in der ein zugehöriges Vorzeichen entsprechend den Vorzeichen der Reibungskraft und Geschwindigkeit des Motors geändert wird.
  • Der Schätzwertberechnungsteil 365 berechnet geschätzte Motordrehmomente der elektrischen Motoren 211 bis 216 in jedem interpolierten Lehrpunkt q(s) auf der Grundlage der Reduktionsgrade der Reduziereinrichtungen 221 bis 226, jeweiliger Durchgangsgeschwindigkeiten und jeweiliger Differenzialkoeffizienten. In diesem Fall wird, da ein geschätztes Drehmoment uj(s) aus den Gleichungen (4), (5) und (6) berechnet werden kann, die Berechnung auf der Grundlage jedes interpolierten Lehrpunkts, jeder Durchgangsgeschwindigkeit (Durchgangsgeschwindigkeit, Differenzialwerte erster Ordnung und zweiter Ordnung der Durchgangsgeschwindigkeit) und jedes Differenzialkoeffizienten (Differenzialwerte erster Ordnung und zweiter Ordnung der Interpolationsfunktion) ausgeführt.
  • Wie es aus der Gleichung (17) ersichtlich ist, ist das Motordrehmoment auf der linken Seite größer als das Drehmoment, das an das Gelenk angelegt wird, das der erste Ausdruck ist. Das heißt, aufgrund des Einflusses der Trägheit oder Viskosität der Reduziereinrichtung ist ein größeres Drehmoment in dem Motor erforderlich.
  • Das geschätzte Motordrehmoment, das auf diese Weise berechnet wird, sollte nicht das zulässige Motordrehmoment überschreiten. Das zulässige Motordrehmoment ist im Allgemeinen durch einen Graphen ausgedrückt, der als eine TN-Kurve bezeichnet wird, in der die transversale Achse die Geschwindigkeit des Motors ist und die longitudinale Achse das Drehmoment des Motors ist. Durch Hinzufügen des Verhältnisses des geschätzten Motordrehmoments und des zulässigen Motordrehmoments zu der Berechnung der Randbedingungsverletzungsrate ist es möglich, die zeitoptimale Steuerung unter Berücksichtigung des Motordrehmoments zu verwirklichen.
  • 9B veranschaulicht ein Beispiel der TN-Kurve. Das zulässige Motordrehmoment ist im Allgemeinen eine Geschwindigkeitsfunktion. Eine Berechnung der folgenden Randbedingungsverletzungsrate wird zu dem Randbedingungsverletzungsratenberechnungsteil 368, der in 3 beschrieben ist, hinzugefügt.
  • Figure DE112013003029B4_0024
    Verhältnis des Motordrehmoments τj(s) eines j-Achsengelenks des Roboterarms und des zulässigen Drehmoments Tj eines Motors, das aus einer TN-Kurve des Motors bestimmt wird.
  • In dem Fall des 6-Achsen-Gelenkroboters ist j = 1 bis 6.
  • 9B veranschaulicht eine Situation, in der das geschätzte Motordrehmoment vollständig in einem zulässigen Bereich ist. Das heißt, die Größe der Randbedingungsverletzungsrate ist 1 oder weniger. Da Teile, die zu der Berechnung der Randbedingungsverletzungsrate unterschiedlich sind, die gleichen wie in den ersten bis vierten Ausführungsbeispielen sind, wird eine Beschreibung hiervon weggelassen.
  • Wie es vorstehend beschrieben ist, ist es gemäß dem fünften Ausführungsbeispiel, da die Randbedingung in Bezug auf das Motordrehmoment zusätzlich zu den Wirkungen der ersten bis vierten Ausführungsbeispiele eingestellt werden kann, möglich, den Freiheitsgrad der Randbedingung im Vergleich zu dem ersten Ausführungsbeispiel zu verbessern. Ferner ist es möglich, die zeitoptimale Steuerung des Roboterarms zu verwirklichen, die die Randbedingung des zulässigen Motordrehmoments erfüllt.
  • Die Erfindung ist nicht auf die vorstehend beschriebenen Ausführungsbeispiele begrenzt, wobei verschiedene Modifikationen durch einen Fachmann in dem Umfang der Erfindung ausgeführt werden können.
  • In den ersten bis fünften Ausführungsbeispielen werden alle Typen von Randbedingungen berücksichtigt, wobei aber diese Randbedingungen nicht notwendigerweise die ganze Zeit berücksichtigt werden sollten. Beispielsweise kann ein Betrieb, in dem die Betriebsgeschwindigkeit eine Priorität unabhängig von der geschätzten Endpunktgeschwindigkeit oder der geschätzten Endpunktdrehgeschwindigkeit aufweist, realisiert werden, indem nur die Randbedingung der geschätzten Endpunktgeschwindigkeit oder der geschätzten Endpunktdrehgeschwindigkeit von dem Typ gemäß αn(s) entfernt wird. Auf diese Weise kann im Voraus bestimmt werden, welcher Randbedingungstyp verwendet wird. Zu dieser Zeit kann der Differenzialkoeffizientberechnungsteil 362 lediglich erforderliche Differenzialkoeffizienten berechnen. Ferner können der Durchgangsgeschwindigkeitsdifferenzialkoeffizientberechnungsteil 364 und der Schätzwertberechnungsteil 365 lediglich erforderliche Differenzialwerte und Schätzwerte berechnen. Insbesondere kann in einem Fall, in dem lediglich die geschätzte Geschwindigkeit berechnet wird, der Durchgangsgeschwindigkeitsdifferenzialkoeffizientberechnungsteil 364 weggelassen werden.
  • Ferner ist in den ersten bis fünften Ausführungsbeispielen ein Fall beschrieben worden, in dem der Knickarmroboter, der das Steuerungsziel des Robotersteuerungsgeräts ist, der Roboterarm ist, wobei aber die Erfindung bei einem Fall angewendet werden kann, in dem der Knickarmroboter eine Roboterhand ist, die bei dem spitzen Ende des Roboterarms bereitgestellt ist.
  • Ferner werden die jeweiligen Verarbeitungsbetriebe gemäß den vorstehend beschriebenen Ausführungsbeispielen spezifisch durch die CPU ausgeführt, die die Berechnungseinheit des Roboterarmsteuerungsgeräts ist. Dementsprechend kann ein Aufzeichnungsmedium, das ein Programm aufzeichnet, das die vorstehend genannten Funktionen ausführt, dem Robotersteuerungsgerät 300 zugeführt werden, und ein Computer (CPU oder MPU) des Robotersteuerungsgeräts 300 kann das Programm lesen, das auf dem Aufzeichnungsmedium gespeichert ist, um ausgeführt zu werden. In diesem Fall verwirklicht das Programm, das von dem Aufzeichnungsmedium gelesen wird, die vorstehend genannten Funktionen gemäß den Ausführungsbeispielen, wobei somit das Programm und das Aufzeichnungsmedium, das das Programm aufzeichnet, die Erfindung bilden.
  • Ferner ist in den vorstehend beschriebenen Ausführungsbeispielen ein Fall beschreiben worden, in dem das computerlesbare Aufzeichnungsmedium das ROM 302 ist und das Programm 330 in dem ROM 302 gespeichert ist, wobei die Erfindung nicht hierauf begrenzt ist. Das Programm 330 kann auf einem beliebigen Aufzeichnungsmedium aufgezeichnet sein, solange es ein computerlesbares Aufzeichnungsmedium ist. Beispielsweise kann als das Aufzeichnungsmedium zur Zufuhr des Programms das HDD 304, die externe Speichervorrichtung 322, die Aufzeichnungsplatte 331 oder dergleichen, die in 2 veranschaulicht sind, verwendet werden. Spezifisch kann beispielsweise eine Floppy-Diskette, eine Festplatte, eine optische Scheibe, eine magnetooptische Scheibe, eine CD-ROM, eine CD-R, ein Magnetband, eine nichtflüchtige Speicherkarte, ein ROM oder dergleichen als das Aufzeichnungsmedium verwendet werden.
  • Ferner kann das Programm in den vorstehend beschriebenen Ausführungsbeispielen über ein Netzwerk heruntergeladen werden und durch einen Computer ausgeführt werden.
  • Ferner ist die Erfindung nicht auf einen Fall begrenzt, bei dem die Funktionen der Ausführungsbeispiele durch eine Ausführung der Programmcodes verwirklicht werden, die durch den Computer gelesen werden. Die Erfindung umfasst ebenso einen Fall, in dem ein OS (Betriebssystem) oder dergleichen, das auf dem Computer arbeitet, einen Teil oder die Gesamtheit von tatsächlichen Verarbeitungen entsprechend Anweisungen der Programmcodes ausführt und die Funktionen der Ausführungsbeispiele durch die Verarbeitungen verwirklicht werden.
  • Ferner können die Programmcodes, die von dem Aufzeichnungsmedium gelesen werden, in einen Speicher, der in einer Funktionserweiterungsplatine bereitgestellt ist, die in einen Computer eingeführt wird, oder eine Funktionserweiterungseinheit geschrieben werden, die mit dem Computer verbunden ist. Eine CPU oder dergleichen, die in der Funktionserweiterungsplatine oder der Funktionserweiterungseinheit bereitgestellt ist, kann einen Teil oder die Gesamtheit der tatsächlichen Verarbeitungen auf der Grundlage der Anweisungen der Programmcodes ausführen, wobei die Funktionen der Ausführungsbeispiele durch die Verarbeitungen verwirklicht werden können.
  • Während die vorliegende Erfindung unter Bezugnahme auf beispielhafte Ausführungsbeispiele beschrieben worden ist, ist es ersichtlicht, dass die Erfindung nicht auf die offenbarten beispielhaften Ausführungsbeispiele begrenzt ist. Den Umfang der nachstehenden Patentansprüche ist die breiteste Interpretation zuzugestehen, um alle derartigen Modifikationen und Äquivalentenstrukturen und Funktionen zu umfassen.
  • Diese Anmeldung beansprucht den Vorteil der japanischen Patentanmeldung Nr. 2012-050503 , die am 7. März 2012 eingereicht wurde, die durch diese Bezugnahme hiermit in ihrer Gesamtheit Bestandteil hiervon wird.
  • Bezugszeichenliste
  • 100
    Robotergerät
    200
    Roboterarm (Knickarmroboter)
    201–206
    Betätigungseinrichtung
    211–216
    elektrischer Motor
    221–226
    Reduziereinrichtung
    230
    Servosteuerungsvorrichtung (Antriebssteuerungseinheit)
    300
    Robotersteuerungsvorrichtung
    330
    Programm
    331
    Aufzeichnungsplatte (Aufzeichnungsmedium)
    361
    Interpolationsfunktionsberechnungsteil (Berechnungseinheit)
    362
    Differenzialkoeffizientberechnungsteil (Berechnungseinheit)
    363
    temporärer Einstellteil (Berechnungseinheit)
    365
    Schätzwertberechnungsteil (Berechnungseinheit)
    368
    Randbedingungsverletzungsratenberechnungsteil (Berechnungseinheit)
    369
    Zeitoptimale-Steuerung-Teil (Berechnungseinheit)
    372
    Durchgangsgeschwindigkeitsfunktionsberechnungsteil (Berechnungseinheit)
    373
    Positionsbefehlerzeugungsteil (Berechnungseinheit)

Claims (15)

  1. Robotersteuerungsvorrichtung (300), die einen Positionsbefehl entlang einer Bewegungsbahn bei einem vorbestimmten Zeitintervall an eine Antriebssteuerungseinheit (230) ausgibt, die einen Betrieb einer jeweiligen Betätigungseinrichtung (201206) zum Antreiben eines jeweiligen Gelenks (3136) eines Knickarmroboters (200) steuert, sodass ein jeweiliges Gelenk (3136) betrieben wird, um sequentiell einer Vielzahl von Lehrpunkten (p1–p4) auf der Bewegungsbahn zu folgen, die eine Lehrposition eines jeweiligen Gelenks (3136) als eine Vektorkomponente beinhalten, mit einer Berechnungseinheit (301), wobei die Berechnungseinheit (301) ausführt: eine Interpolationsfunktionsberechnungsverarbeitung (361) zum Berechnen, durch Verwenden einer Interpolationsfunktion, die durch eine Vielzahl von interpolierten Lehrpunkten hindurchgeht, für eine Interpolation zwischen den jeweiligen Lehrpunkten, von Positionen jeweiliger Gelenke in jeweiligen Positionen der interpolierten Lehrpunkte; eine Differenzialkoeffizientberechnungsverarbeitung (362) zum Berechnen eines jeweiligen Differenzialkoeffizienten, der durch Differenziation einer jeweiligen Vektorkomponente, die in einem jeweiligen interpolierten Lehrpunkt beinhaltet ist, durch eine variable Zahl (s) der Interpolationsfunktion erhalten wird, wobei die variable Zahl (s) eine Serienzahl ist, die den jeweiligen interpolierten Lehrpunkten in der Reihenfolge eines Durchgangs zugewiesen wird; eine temporäre Einstellverarbeitung (363) zum temporären Einstellen einer jeweiligen Durchgangsgeschwindigkeit, die einen Differenzialwert angibt, der durch eine zeitliche Differenziation der variablen Zahl in einem jeweiligen interpolierten Lehrpunkt erhalten wird; eine Schätzwertberechnungsverarbeitung (365) zum Berechnen einer geschätzten Geschwindigkeit eines jeweiligen Gelenks (3136) in einem jeweiligen interpolierten Lehrpunkt auf der Grundlage einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten; eine Zeitoptimale-Steuerung-Verarbeitung (369) zum Ändern der jeweiligen Durchgangsgeschwindigkeiten auf der Bewegungsbahn und zum Minimieren einer Zielfunktion, die durch Integrieren von reziproken Zahlen der jeweiligen Durchgangsgeschwindigkeiten mit der variablen Zahl (s) erhalten wird, unter einer Randbedingung, die eine Bedingung umfasst, dass das Verhältnis der geschätzten Geschwindigkeit eines jeweiligen Gelenks (3136) und einer vorbestimmten zulässigen Geschwindigkeit innerhalb eines vorbestimmten Randbedingungsbereichs liegt; eine Durchgangsgeschwindigkeitsfunktionsberechnungsverarbeitung (372) zum Berechnen einer Durchgangsgeschwindigkeitsfunktion aus einer jeweiligen Durchgangsgeschwindigkeit, die in der Zeitoptimale-Steuerung-Verarbeitung (369) erhalten wird; und eine Positionsbefehlserzeugungsverarbeitung (373) zum Erzeugen des Positionsbefehls durch Substituieren, wann immer die Durchgangsgeschwindigkeitsfunktion mit einem Wert des vorbestimmten Zeitintervalls zeitintegriert wird, eines Werts der Integration in die variable Zahl in der Interpolationsfunktion.
  2. Robotersteuerungsvorrichtung (300) nach Anspruch 1, wobei die Berechnungseinheit (301) als die Differenzialkoeffizientberechnungsverarbeitung (362) eine jeweilige Vektorkomponente, wenn die variable Zahl (s) um einen winzigen Wert geändert wird, der kleiner als ein Intervall zwischen jeweiligen interpolierten Lehrpunkten ist, in Bezug auf eine jeweilige Vektorkomponente eines jeweiligen interpolierten Lehrpunkts auf der Grundlage der Interpolationsfunktion berechnet, und einen jeweiligen Differenzialkoeffizienten unter Verwendung des Berechnungsergebnisses berechnet.
  3. Robotersteuerungsvorrichtung (300) nach Anspruch 1 oder 2, wobei die Berechnungseinheit (301) als die Interpolationsfunktionsberechnungsverarbeitung (361) eine Lehrpunktzahl entsprechend einer Zeit jedem Lehrpunkt (p1–p4) zuweist und die Interpolationsfunktion durch eine Spline-Interpolation berechnet, die die Lehrpunktzahl verwendet.
  4. Robotersteuerungsvorrichtung (300) nach einem der Ansprüche 1 bis 3, wobei die zulässige Geschwindigkeit auf einen Wert eingestellt wird, der entsprechend einem Wert der variablen Zahl (s) geändert wird.
  5. Robotersteuerungsvorrichtung (300) nach Anspruch 4, wobei die zulässige Geschwindigkeit eingestellt wird, um abzunehmen, wenn der Wert der variablen Zahl (s) vergrößert wird.
  6. Robotersteuerungsvorrichtung (300) nach einem der Ansprüche 1 bis 5, wobei die Berechnungseinheit (301) als die Schätzwertberechnungsverarbeitung (365) ferner eine geschätzte Beschleunigung, die durch eine Differenziation erster Ordnung der geschätzten Geschwindigkeit nach der Zeit erhalten wird, in Bezug auf ein jeweiliges Gelenk (3136) in einem jeweiligen interpolierten Lehrpunkt auf der Grundlage einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten berechnet, und wobei die Randbedingung ferner eine Bedingung umfasst, dass das Verhältnis der geschätzten Beschleunigung und einer vorbestimmten zulässigen Beschleunigung innerhalb eines vorbestimmten Randbedingungsbereichs liegt.
  7. Robotersteuerungsvorrichtung (300) nach einem der Ansprüche 1 bis 6, wobei die Berechnungseinheit (301) ferner als die Schätzwertberechnungsverarbeitung (365) einen geschätzten Ruck, der durch eine Differenziation zweiter Ordnung der geschätzten Geschwindigkeit durch die Zeit erhalten wird, in Bezug auf ein jeweiliges Gelenk (3136) in einen jeweiligen interpolierten Lehrpunkt auf der Grundlage einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten berechnet, und wobei die Randbedingung ferner eine Bedingung umfasst, dass das Verhältnis des geschätzten Rucks und eines vorbestimmten zulässigen Rucks innerhalb eines vorbestimmten Randbedingungsbereichs liegt.
  8. Robotersteuerungsvorrichtung (300) nach einem der Ansprüche 1 bis 7, wobei die Berechnungseinheit (301) als die Schätzwertberechnungsverarbeitung (365) ferner ein geschätztes Drehmoment eines jeweiligen Gelenks (3136) in einem jeweiligen interpolierten Lehrpunkt auf der Grundlage eines jeweiligen interpolierten Lehrpunkts, einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten berechnet, und wobei die Randbedingung ferner eine Bedingung umfasst, dass das Verhältnis des geschätzten Drehmoments und eines vorbestimmten zulässigen Drehmoments innerhalb eines vorbestimmten Randbedingungsbereichs liegt.
  9. Robotersteuerungsvorrichtung (300) nach einem der Ansprüche 1 bis 8, wobei die Berechnungseinheit (301) als die Schätzwertberechnungsverarbeitung (365) ferner eine geschätzte Spitzengeschwindigkeit der Spitze des Knickarmroboters (200) in einem jeweiligen interpolierten Lehrpunkt auf der Grundlage eines jeweiligen interpolierten Lehrpunkts, einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten berechnet, und wobei die Randbedingung ferner eine Bedingung umfasst, dass das Verhältnis der geschätzten Spitzengeschwindigkeit und einer vorbestimmten zulässigen Spitzengeschwindigkeit innerhalb eines vorbestimmten Randbedingungsbereichs liegt.
  10. Robotersteuerungsvorrichtung (300) nach einem der Ansprüche 1 bis 9, wobei die Berechnungseinheit (301) als die Schätzwertberechnungsverarbeitung (365) ferner eine geschätzte Drehgeschwindigkeit der Spitze des Knickarmroboters (200) in einem jeweiligen interpolierten Lehrpunkt auf der Grundlage eines jeweiligen interpolierten Lehrpunkts, einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten berechnet, und wobei die Randbedingung ferner eine Bedingung umfasst, dass das Verhältnis der geschätzten Drehgeschwindigkeit und einer vorbestimmten zulässigen Drehgeschwindigkeit innerhalb eines vorbestimmten Randbedingungsbereichs liegt.
  11. Robotersteuerungsvorrichtung (300) nach einem der Ansprüche 1 bis 10, wobei die Betätigungseinrichtung (201206) einen elektrischen Motor (211216) und eine Reduziereinrichtung (221226) umfasst, wobei die Berechnungseinheit (301) als die Schätzwertberechnungsverarbeitung (365) ferner ein geschätztes Motordrehmoment des elektrischen Motors (211216) in einem jeweiligen interpolierten Lehrpunkt auf der Grundlage des Reduktionsgrades der Reduziereinrichtung (221226), einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten berechnet, und wobei die Randbedingung ferner eine Bedingung umfasst, dass das Verhältnis des geschätzten Motordrehmoments und eines vorbestimmten zulässigen Motordrehmoments innerhalb eines vorbestimmten Randbedingungsbereichs liegt.
  12. Robotergerät (100) mit: einem Knickarmroboter (200); und der Robotersteuerungsvorrichtung (300), die den Knickarmroboter (200) steuert, gemäß einem der Ansprüche 1 bis 11.
  13. Robotersteuerungsverfahren, das eine Robotersteuerungsvorrichtung (300) verwendet, die eine Berechnungseinheit (301) umfasst, die einen Positionsbefehl entlang einer Bewegungsbahn erzeugt, der bei einem vorbestimmten Zeitintervall an eine Antriebssteuerungseinheit (230) auszugeben ist, die einen Betrieb einer jeweiligen Betätigungseinrichtung zum Antreiben eines jeweiligen Gelenks (3136) eines Knickarmroboters (200) steuert, sodass ein jeweiliges Gelenk (3136) betrieben wird, um einer Vielzahl von Lehrpunkten (p1–p4) zu folgen, die eine Lehrposition eines jeweiligen Gelenks (3136) als eine Vektorkomponente umfassen, wobei das Verfahren umfasst: eine Interpolationsfunktionsberechnungsverarbeitung (361) zum Berechnen, durch Verwenden einer Interpolationsfunktion, die durch eine Vielzahl von interpolierten Lehrpunkten hindurchgeht, für eine Interpolation zwischen den jeweiligen Lehrpunkten, von Positionen der jeweiligen Gelenke (3136) in jeweiligen Positionen der interpolierten Lehrpunkte durch die Berechnungseinheit (301); eine Differenzialkoeffizientberechnungsverarbeitung (362) zum Berechnen eines jeweiligen Differenzialkoeffizienten, der durch Differenziation einer jeweiligen Vektorkomponente, die in einem jeweiligen interpolierten Lehrpunkt beinhaltet ist, durch eine variable Zahl (s) der Interpolationsfunktion erhalten wird, durch die Berechnungseinheit, wobei die variable Zahl (s) eine Serienzahl ist, die den jeweiligen interpolierten Lehrpunkten in der Reihenfolge eines Durchgangs zugewiesen wird; eine temporäre Einstellverarbeitung (363) zum temporären Einstellen einer jeweiligen Durchgangsgeschwindigkeit, die einen Differenzialwert angibt, der durch eine zeitliche Differenziation der variablen Zahl (s) in einem jeweiligen interpolierten Lehrpunkt erhalten wird, durch die Berechnungseinheit (301); eine Schätzwertberechnungsverarbeitung (365) zum Berechnen einer geschätzten Geschwindigkeit eines jeweiligen Gelenks (3136) in einem jeweiligen interpolierten Lehrpunkt auf der Grundlage einer jeweiligen Durchgangsgeschwindigkeit und eines jeweiligen Differenzialkoeffizienten, durch die Berechnungseinheit (301); eine Zeitoptimale-Steuerung-Verarbeitung (369) zum Ändern der jeweiligen Durchgangsgeschwindigkeiten auf der Bewegungsbahn und zum Minimieren einer Zielfunktion, die durch Integrieren von reziproken Zahlen der jeweiligen Durchgangsgeschwindigkeiten mit der variablen Zahl (s) erhalten wird, unter einer Randbedingung, die eine Bedingung umfasst, dass das Verhältnis der geschätzten Geschwindigkeit eines jeweiligen Gelenks (3136) und einer vorbestimmten zulässigen Geschwindigkeit innerhalb eines vorbestimmten Randbedingungsbereichs liegt, durch die Berechnungseinheit (301); eine Durchgangsgeschwindigkeitsfunktionsberechnungsverarbeitung (372) zum Berechnen einer Durchgangsgeschwindigkeitsfunktion aus einer jeweiligen Durchgangsgeschwindigkeit, die in der Zeitoptimale-Steuerung-Verarbeitung (369) erhalten wird, durch die Berechnungseinheit (301); und eine Positionsbefehlserzeugungsverarbeitung (373) zum Erzeugen des Positionsbefehls durch Substituieren, wann immer die Durchgangsgeschwindigkeitsfunktion mit einem Wert des vorbestimmten Zeitintervalls zeitintegriert wird, eines Werts der Integration in die variable Zahl (s) in der Interpolationsfunktion, durch die Berechnungseinheit (301).
  14. Programm, das einen Computer veranlasst, die jeweiligen Verarbeitungen des Robotersteuerungsverfahrens gemäß Anspruch 13 auszuführen.
  15. Computerlesbares Aufzeichnungsmedium, auf dem das Programm nach Anspruch 14 aufgezeichnet ist.
DE112013003029.2T 2012-03-07 2013-02-28 Robotersteuerungsvorrichtung, Robotergerät, Robotersteuerungsverfahren, Programm zur Ausführung eines Robotersteuerungsverfahrens und ein Aufzeichnungsmedium, auf dem ein Programm aufgezeichnet ist. Expired - Fee Related DE112013003029B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012050503A JP5896789B2 (ja) 2012-03-07 2012-03-07 ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2012-050503 2012-03-07
PCT/JP2013/056202 WO2013133346A1 (en) 2012-03-07 2013-02-28 Robot controlling device, robot apparatus, robot control method, program for executing robot control method, and recording medium on which program is recorded

Publications (2)

Publication Number Publication Date
DE112013003029T5 DE112013003029T5 (de) 2015-03-26
DE112013003029B4 true DE112013003029B4 (de) 2016-04-14

Family

ID=47913508

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013003029.2T Expired - Fee Related DE112013003029B4 (de) 2012-03-07 2013-02-28 Robotersteuerungsvorrichtung, Robotergerät, Robotersteuerungsverfahren, Programm zur Ausführung eines Robotersteuerungsverfahrens und ein Aufzeichnungsmedium, auf dem ein Programm aufgezeichnet ist.

Country Status (5)

Country Link
US (1) US9221174B2 (de)
JP (1) JP5896789B2 (de)
CN (1) CN104254430B (de)
DE (1) DE112013003029B4 (de)
WO (1) WO2013133346A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016224564A1 (de) * 2016-12-09 2018-06-14 Robert Bosch Gmbh Verfahren zum Bereitstellen einer Bewegungskontur für einen Manipulator
DE102019001948B4 (de) 2018-03-26 2022-07-28 Fanuc Corporation Steuerung und maschinelle Lernvorrichtung
DE112019006713B4 (de) 2019-01-21 2023-06-15 Megarobo Technologies Co., Ltd. Ein Verfahren zur Steuerung einer Bewegung, eine Bewegungssteuereinrichtung und ein System sowie ein Speichermedium desselben

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6128767B2 (ja) * 2012-07-05 2017-05-17 キヤノン株式会社 ロボット制御装置、及びロボット制御方法
JP2015182143A (ja) * 2014-03-20 2015-10-22 セイコーエプソン株式会社 ロボットおよびロボットシステム
JP5908544B2 (ja) * 2014-08-11 2016-04-26 ファナック株式会社 駆動軸のジャークを低下させるロボットプログラムを生成するロボットプログラム生成装置
US9592608B1 (en) * 2014-12-15 2017-03-14 X Development Llc Methods and systems for providing feedback during teach mode
JP6126152B2 (ja) * 2015-03-16 2017-05-10 ファナック株式会社 曲線部を有する軌道を生成するロボットの軌道生成装置
JP6700669B2 (ja) 2015-04-07 2020-05-27 キヤノン株式会社 制御方法、ロボット装置、プログラム、記録媒体、及び物品の製造方法
CN104959983B (zh) * 2015-05-26 2017-01-18 南京阿福机器人有限公司 机器人手执示教方法
US9925662B1 (en) * 2015-06-28 2018-03-27 X Development Llc Generating a trained robot path based on physical manipulation of the robot and based on training user interface input(s) associated with the physical manipulation
US9844877B1 (en) * 2015-07-14 2017-12-19 X Development Llc Generating a parameter for a movement characteristic for a waypoint trained path of a robot
CN105082135B (zh) * 2015-09-11 2016-11-30 东南大学 一种机器人点动操作的速度控制方法
DE102015014994B3 (de) * 2015-11-19 2017-01-05 Kuka Roboter Gmbh Steuerung eines Roboters
JP6333795B2 (ja) * 2015-11-24 2018-05-30 ファナック株式会社 学習による教示作業の簡易化及び動作性能向上機能を備えたロボットシステム
US9919422B1 (en) 2016-01-06 2018-03-20 X Development Llc Methods and systems to provide mechanical feedback during movement of a robotic system
CN105717869B (zh) * 2016-03-15 2018-05-29 珞石(北京)科技有限公司 工业机器人操作空间路径复合限制求解方法
DE102016003144A1 (de) * 2016-03-15 2017-09-21 Kuka Roboter Gmbh Steuern einer Automatisierungsanordnung
CN105856246B (zh) * 2016-04-22 2018-05-22 广州捷士电子科技有限公司 一种示教编程过程中防止末端执行器碰撞产品的方法
JP6275196B2 (ja) * 2016-06-05 2018-02-07 Ntn株式会社 リンク作動装置の操作装置およびリンク作動システム
US9981381B1 (en) * 2016-06-08 2018-05-29 X Development Llc Real time generation of phase synchronized trajectories
US11192185B2 (en) 2016-12-16 2021-12-07 Canon Kabushiki Kaisha Method of producing product
US10207404B2 (en) 2017-02-09 2019-02-19 X Development Llc Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot
WO2019044237A1 (ja) * 2017-09-04 2019-03-07 パナソニックIpマネジメント株式会社 ロボット制御装置
US11565412B2 (en) * 2017-09-15 2023-01-31 Google Llc Generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot
JP6816704B2 (ja) * 2017-11-09 2021-01-20 オムロン株式会社 指令値補間装置及びサーボドライバ
US11458626B2 (en) * 2018-02-05 2022-10-04 Canon Kabushiki Kaisha Trajectory generating method, and trajectory generating apparatus
CN108563122B (zh) * 2018-04-12 2021-03-26 江南大学 一种移动机器人速度平滑插值方法
JP7225560B2 (ja) * 2018-04-26 2023-02-21 セイコーエプソン株式会社 制御装置、ロボットシステム、及び表示制御方法
DE102018004947B3 (de) 2018-06-22 2019-07-18 Sew-Eurodrive Gmbh & Co Kg Verfahren zur Steuerung von Antrieben eines Roboters und Robotersystem
US11045950B2 (en) 2018-11-02 2021-06-29 Canon Kabushiki Kaisha Driving device and detecting device
CN109551484B (zh) * 2019-01-21 2022-03-29 深圳镁伽科技有限公司 运动参数的处理方法、装置和系统及存储介质
CN109986556B (zh) * 2019-02-19 2022-10-04 宁波凯德科技服务有限公司 一种焊接机器人运动规划离散束方法
CN112621739B (zh) * 2019-10-08 2022-03-15 东元电机股份有限公司 机器人及其路径插值规划命令产生系统
CN113093716B (zh) * 2019-12-19 2024-04-30 广州极飞科技股份有限公司 一种运动轨迹规划方法、装置、设备及存储介质
CN113341876B (zh) * 2021-06-24 2022-08-26 合肥工业大学 一种基于微分向量优化的五轴曲面加工轨迹规划方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4101422C2 (de) * 1990-01-19 1993-06-24 Tokico Ltd., Kawasaki, Kanagawa, Jp
DE3885640T2 (de) * 1987-04-08 1994-03-10 Matsushita Electric Ind Co Ltd Industrieroboter.
DE69217420T2 (de) * 1991-07-05 1997-09-04 Daihen Corp Manuelle Lernkontrollvorrichtung für Arbeitsvorgänge in einem Industrierobotersystem
JPH11198072A (ja) * 1998-01-14 1999-07-27 Yaskawa Electric Corp ロボットの最短時間速度制御装置
DE69622572T2 (de) * 1995-09-14 2003-04-03 Yaskawa Denki Kitakyushu Kk Lehrvorrichtung für roboter
US20100204828A1 (en) * 2007-07-30 2010-08-12 Toyota Jidosha Kabushiki Kaisha Movement path generation device for robot
US20120029699A1 (en) * 2010-06-04 2012-02-02 Institute Of Automation, Chinese Academy Of Sciences System and method for robot trajectory generation with continuous accelerations

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3882304A (en) * 1973-05-04 1975-05-06 Allen Bradley Co Parametric interpolation of three-dimensional surfaces
US4623971A (en) * 1983-06-30 1986-11-18 Cincinnati Milacron Inc. Machine control with motor velocity constraint
US4975856A (en) * 1986-02-18 1990-12-04 Robotics Research Corporation Motion controller for redundant or nonredundant linkages
US4937759A (en) * 1986-02-18 1990-06-26 Robotics Research Corporation Industrial robot with controller
JP3396342B2 (ja) * 1995-07-17 2003-04-14 三菱電機株式会社 スプライン補間機能を有する数値制御装置
JP4060393B2 (ja) * 1996-01-24 2008-03-12 三菱電機株式会社 ロボットの速度演算装置、およびロボットの速度演算方法
JPH1124721A (ja) * 1997-06-30 1999-01-29 Tokico Ltd ロボット制御装置
WO2000059688A1 (fr) * 1999-04-05 2000-10-12 Sony Corporation Robot, circuit asservi, actionneur, procede de commande d'un robot, et procede de commande d'un actionneur
KR100959472B1 (ko) * 2002-03-18 2010-05-25 소니 주식회사 로봇 장치 및 로봇 장치의 제어 방법
US7146242B2 (en) * 2003-09-30 2006-12-05 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
US7180253B2 (en) * 2003-09-30 2007-02-20 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
KR101056600B1 (ko) * 2004-02-27 2011-08-11 티에치케이 가부시끼가이샤 클로소이드 곡선을 이용한 공업 제품의 설계 방법 및 이설계 방법에 의해 설계된 공업 제품, 클로소이드 곡선을이용한 수치 제어 방법 및 장치
JP4810251B2 (ja) 2006-02-16 2011-11-09 キヤノン株式会社 原子間力顕微鏡
US7915787B2 (en) 2007-07-20 2011-03-29 Canon Kabushiki Kaisha Actuator
JP5424581B2 (ja) 2008-06-06 2014-02-26 キヤノン株式会社 部分測定を合成する形状測定方法
JP5129064B2 (ja) * 2008-08-26 2013-01-23 新日本工機株式会社 工作機械の数値制御装置
CN101508112B (zh) * 2009-03-30 2010-12-29 东南大学 三自由度搬运工业机器人多目标优化设计参数的获取方法
DE102009023307A1 (de) 2009-05-29 2010-12-02 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Steuerung eines Manipulators
DE102009049172B4 (de) 2009-10-13 2019-07-25 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Steuerung eines Manipulators
JP5743495B2 (ja) 2010-11-05 2015-07-01 キヤノン株式会社 ロボット制御装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3885640T2 (de) * 1987-04-08 1994-03-10 Matsushita Electric Ind Co Ltd Industrieroboter.
DE4101422C2 (de) * 1990-01-19 1993-06-24 Tokico Ltd., Kawasaki, Kanagawa, Jp
DE69217420T2 (de) * 1991-07-05 1997-09-04 Daihen Corp Manuelle Lernkontrollvorrichtung für Arbeitsvorgänge in einem Industrierobotersystem
DE69622572T2 (de) * 1995-09-14 2003-04-03 Yaskawa Denki Kitakyushu Kk Lehrvorrichtung für roboter
JPH11198072A (ja) * 1998-01-14 1999-07-27 Yaskawa Electric Corp ロボットの最短時間速度制御装置
US20100204828A1 (en) * 2007-07-30 2010-08-12 Toyota Jidosha Kabushiki Kaisha Movement path generation device for robot
US20120029699A1 (en) * 2010-06-04 2012-02-02 Institute Of Automation, Chinese Academy Of Sciences System and method for robot trajectory generation with continuous accelerations

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016224564A1 (de) * 2016-12-09 2018-06-14 Robert Bosch Gmbh Verfahren zum Bereitstellen einer Bewegungskontur für einen Manipulator
DE102019001948B4 (de) 2018-03-26 2022-07-28 Fanuc Corporation Steuerung und maschinelle Lernvorrichtung
DE112019006713B4 (de) 2019-01-21 2023-06-15 Megarobo Technologies Co., Ltd. Ein Verfahren zur Steuerung einer Bewegung, eine Bewegungssteuereinrichtung und ein System sowie ein Speichermedium desselben

Also Published As

Publication number Publication date
JP5896789B2 (ja) 2016-03-30
WO2013133346A1 (en) 2013-09-12
JP2013184245A (ja) 2013-09-19
CN104254430A (zh) 2014-12-31
US9221174B2 (en) 2015-12-29
DE112013003029T5 (de) 2015-03-26
CN104254430B (zh) 2016-05-11
US20150025684A1 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
DE112013003029B4 (de) Robotersteuerungsvorrichtung, Robotergerät, Robotersteuerungsverfahren, Programm zur Ausführung eines Robotersteuerungsverfahrens und ein Aufzeichnungsmedium, auf dem ein Programm aufgezeichnet ist.
EP2146825B1 (de) Bewegungssteuerung für elastische roboterstrukturen
EP2954986B1 (de) Vorrichtung und Verfahren zum Steuern und Regeln eines Mehrkörpersystems
DE102016014264B4 (de) Maschinelle Lernvorrichtung, Blechpaketherstellungsvorrichtung, Blechpaketherstellungssystem und maschinelles Lernverfahren zum Erlernen des Stapelns von Paketblechen
DE102016117773B4 (de) Werkzeugmaschine, die eine optimale Beschleunigung/Verlangsamung erzeugt, Simulationsvorrichtung und Maschinenlernvorrichtung
DE102016008994B4 (de) Werkzeugmaschine, simulationsvorrichtung und maschineneinlerngerät
DE69636447T2 (de) Verfahren und vorrichtung zum steuern der bewegung eines redundanten manipulators
EP3285975B1 (de) Steuern und/oder regeln von motoren eines roboters
DE68927138T2 (de) Handhabungssteuerungsverfahren und -system
DE102012003196B4 (de) Numerische Steuervorrichtung mit einer Geschwindigkeitssteuerfunktion für eine maschinelle Mehrachsenverarbeitungsvorrichtung
DE102009024130B4 (de) Verfahren zur echtzeitfähigen Bahnplanung kontinuierlicher, rucksprungfreier Sollwerttrajektorien
DE102006055917B4 (de) Industrieroboter und Verfahren zum Erkennen eines ungenau parametrierten Robotermodells
DE102015103451B4 (de) Verfahren zum zeitdiskreten Kontrollieren antreibbarer Achsen und Computerprogrammprodukt
EP3023205B1 (de) Verfahren zum ermitteln einer bewegungsgrenze
DE112017003961B4 (de) Steuerung für Parallelverbindungsmechanismus
DE102016000754A1 (de) Verfahren und System zur Bahnplanung eines redundanten Roboters
WO2007014832A1 (de) Verfahren und einrichtung zur bewegungsführung eines bewegbaren maschinenelements einer maschine
EP1980374A2 (de) Robotersteuerung, Industrieroboter und Verfahren zum Erhalten eines absolutgenauen Modells
DE102020120116B4 (de) Verfahren zur impedanzbasierten Multi-Tasking Tracking-Regelung, impedanzbasierter Multi-Tasking Tracking-Regler und kraft- und/oder drehmomentgeregelter Roboter
DE112012006074T5 (de) Bahnregelungsvorrichtung
DE102018133349A1 (de) Verfahren und Vorrichtung zur Momentschätzung
AT516901B1 (de) Flugsimulator und Verfahren zur Flugsimulation
DE102020122373A1 (de) Vorrichtung für maschinelles Lernen, Servosteuervorrichtung, Servosteuersystem und Verfahren für maschinelles Lernen
DE102018209044B3 (de) Kraftregelung eines Roboters
DE69727866T2 (de) Verfahren zur Herstellung von Animationen

Legal Events

Date Code Title Description
R409 Internal rectification of the legal status completed
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R082 Change of representative

Representative=s name: TBK, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee