DE102015010124B4 - Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt - Google Patents

Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt Download PDF

Info

Publication number
DE102015010124B4
DE102015010124B4 DE102015010124.2A DE102015010124A DE102015010124B4 DE 102015010124 B4 DE102015010124 B4 DE 102015010124B4 DE 102015010124 A DE102015010124 A DE 102015010124A DE 102015010124 B4 DE102015010124 B4 DE 102015010124B4
Authority
DE
Germany
Prior art keywords
robot
robot program
unit
joints
program
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.)
Active
Application number
DE102015010124.2A
Other languages
English (en)
Other versions
DE102015010124A1 (de
DE102015010124A8 (de
Inventor
Masahiro Oyamada
Yoshiharu Nagatsuka
Yanxue Liang
Toshiya Takeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE102015010124A1 publication Critical patent/DE102015010124A1/de
Publication of DE102015010124A8 publication Critical patent/DE102015010124A8/de
Application granted granted Critical
Publication of DE102015010124B4 publication Critical patent/DE102015010124B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40053Pick 3-D object from pile of objects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40454Max velocity, acceleration limit for workpiece and arm jerk rate as constraints
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40517Constraint motion planning, variational dynamic programming
    • 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
    • Y10S901/03Teaching system
    • 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

Abstract

Roboterprogramm-Erzeugungsvorrichtung (10), die dazu eingerichtet ist, um ein Roboterprogramm zum Betreiben eines mehrere Gelenke umfassenden Roboters (2) zu erzeugen, wobei die Roboterprogramm-Erzeugungsvorrichtung (10) Folgendes umfasst:eine Einstelleinheit für den zulässigen Stoßwert (11), die dazu eingerichtet ist, - um zulässige Stoßwerte für die Gelenke des Roboters (2) einzustellen;eine Gelenkinformations-Berechnungseinheit (12), die dazu eingerichtet ist, um die Ausführung eines Roboterprogramms in einem virtuellen Raum (8) zu simulieren und Positionen und Stöße der Gelenke in Zuordnung zur Zeit zu berechnen;eine Stoßüberprüfungseinheit (13), die dazu eingerichtet ist, um zu bestimmen, ob die durch die Gelenkinformations-Berechnungseinheit (12) berechneten Stöße überhöhte Stöße sind, die die zulässigen Werte überschreiten, oder nicht;eine Gelenkinformations-Identifikationseinheit (14), die dazu eingerichtet ist, um Gelenke und Positionen der Gelenke zu identifizieren, in denen die überhöhten Stöße erzeugt werden; undeine Roboterprogramm-Anpasseinheit (15), die dazu eingerichtet ist, um das Roboterprogramm anzupassen, indem eine Lehrposition innerhalb der Umgebung der Positionen der Gelenke, in denen die überhöhten Stöße erzeugt werden, so abgeändert wird, dass die Stöße der durch die Gelenkinformations-Identifikationseinheit (14) identifizierten Stöße gleich oder kleiner als die zulässigen Werte werden.

Description

  • Allgemeiner Stand der Technik
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Roboterprogramm-Erzeugungsvorrichtung, die ein Roboterprogramm zum Betreiben eines Roboters erzeugt.
  • Beschreibung der verwandten Technik
  • In einem Robotersystem, das zum Befördern eines Gegenstands durch einen Roboter benutzt wird, ist es wünschenswert, den Roboter mit hoher Geschwindigkeit zu betreiben, um eine Bearbeitungseffizienz zu erhöhen. Wenn die Geschwindigkeit der Bewegungen des Roboters einfach nur erhöht wird, besteht jedoch das Risiko der Beschädigung eines Gegenstands, wenn der Roboter den Gegenstand greift oder freigibt. Es besteht ebenfalls das Risiko, dass der Roboter den Gegenstand während der Beförderung fallen lässt. Wenn der Gegenstand beschädigt oder fallengelassen wird, muss ein Bediener daher ein Roboterprogramm abändern.
  • Beispielsweise verwendet ein bekanntes Verfahren der Bewegungsbahn-Planung von Industrierobotern einen Tiefpassfilter beim Interpolieren eines Geschwindigkeitsprofils oder dergleichen, um ein Eingabeprofil zu glätten und Änderungen bei Stößen zu reduzieren, wodurch Bewegungen von Robotern geglättet werden (siehe JP 2003 - 241811 A und JP H11-249724 A ).
  • Selbst wenn Bewegungen eines Roboters durch Anpassen der Interpolationsbahn gemäß den oben genannten Verfahren geglättet werden, ist dies jedoch nicht immer ausreichend, um Schwingungen des Roboters während Bewegungen bei hoher Geschwindigkeit zu unterdrücken. Ein Bediener würde daher ein Roboterprogramm durch Ausprobieren abändern. Es besteht daher ein Bedarf an einer Technik, die leichter und zuverlässiger Stöße reduzieren kann, die eine der Ursachen der Schwingungen sind.
  • Die Druckschrift WO 2013/133 346 A1 offenbart eine Robotersteuerungsvorrichtung, die einen Positionsbefehl bei einem vorbestimmten Zeitintervall ausgibt, um eine Steuerungseinheit anzusteuern, die einen Betrieb einer jeweiligen Betätigungseinrichtung zum Antreiben eines jeweiligen Gelenks eines Knickarmroboters steuert, sodass ein jeweiliges Gelenk betrieben wird, um sequenziell einer Vielzahl von Lehrpunkten zu folgen, die eine Lehrposition eines jeweiligen Gelenks als eine Vektorkomponente beinhalten.
  • Die Druckschrift US 5,655,060 A offenbart eine Anwendung eines algorithmischen Ansatzes, der zum Finden des zeitoptimalen Bahnverlaufs für drehmomentbegrenzte Industrieroboter verwendet wird, um den Betrieb von Substrathandhabungswerkzeugen, so wie Cluster Tool Robots, in einer verbesserten Weise zu erreichen, durch Modifizieren des angewendeten Algorithmus durch Hinzufügen von zwei zusätzlichen Beschränkungen, d. h. Stoß (die Größe der Beschleunigungsänderung) und der durch die Last erfahrenen Beschleunigung.
  • Die Druckschrift US 2013/0 197 688 A1 offenbart eine Steuervorrichtung für eine Vorrichtung mit einer beweglichen Einheit, die durch mehrere Antriebsachsen bewegt wird. Auf der Grundlage einer vorab erzeugten Soll-Bahnkurve mit Start- und Endpunkt wird ein verbleibender Abstand zwischen Ist-Position und Endpunkt geschätzt. Der verbleibende Abstand wiederum dient zur Ermittlung einer Soll-Geschwindigkeit, die die Bewegung hin zum Endpunkt realisiert. Abweichungen zwischen Ist- und Soll-Geschwindigkeit werden durch eine korrigierende Beschleunigung ausgeregelt.
  • Die Druckschrift US 2003/0 033 050 A1 offenbart ein Verfahren, das die Bewegung einer Gruppe von Achsen steuert, um für die gewünschte Verfahrbewegung eines beweglichen Elements oder mehrerer beweglicher Elemente der Maschine zu sorgen. Das Verfahren umfasst das Berechnen einer Länge für jedes Wegstück in einer Mehrzahl von Wegstücken sowie bei jedem Wegstück das Ermitteln der relativen Länge eines ersten Wegstücks in Bezug auf mindestens ein weiteres, benachbartes Wegstück in der Mehrzahl von Wegstücken. Auf der Grundlage der relativen Länge wird entschieden, ob das betreffende Wegstück mithilfe einer Spline-Funktion interpoliert werden soll und ob das benachbarte Wegstück mit Hilfe einer Spline-Funktion interpoliert werden soll. Wenn das erste Wegstück mit Hilfe einer Spline-Funktion interpoliert werden soll, leitet das Verfahren eine Spline-Interpolation-Gleichung für das erste Wegstück ab.
  • Die Druckschrift US 6,216,058 B1 offenbart ein System zur Erzeugung von Bahnkurven für mehrarmige Roboter. Eine zeitoptimale Bahnkurve wird eingestellt auf der Grundlage von Profilen bezüglich Position, Geschwindigkeit und Beschleunigung, die die kürzest mögliche Bewegung ohne Verletzung von Randbedingungen definieren.
  • Die Druckschrift US 2009/0 043 425 A1 offenbart ein Roboterprogrammeinstellungssystem, das ein Betriebsprogramm eines eine Vielzahl von Achsen aufweisenden Roboterarms einstellt. Wenn eine andere als die identifizierte Achse von der identifizierten Achse an einer vorderen Endseite des Roboterarms positioniert ist, wird diese andere Achse bewegt, so dass der Schwerpunkt des von einer Hand eines Roboterarms gehaltenen Werkstücks an einer Verlängerung des Drehpunkts oder der Bewegungsrichtung der identifizierten Achse positioniert wird; und dann, wenn die andere als die identifizierte Achse von der identifizierten Achse an einer Basisendseite des Roboterarms positioniert ist, wird diese andere Achse bewegt, so dass ein horizontaler Richtungsabstand zwischen einem Mittelpunkt einer Drehung oder einer Bewegungsrichtung einer Achse einer Basisendseite des Roboterarms der identifizierten Achse und einem Schwerpunkt eines von einer Hand des Roboterarms gehaltenen Werkstücks minimiert wird.
  • Die Druckschrift US 2007/0 021 868 A1 offenbart ein Verfahren zur Bewertung und Korrektur eines Roboterbetriebsprogramms zum Korrigieren eines Pseudo-Lernpunktes auf einer anhand einer von einem Computer durchgeführten Simulation des Roboterbetriebsprogramms definierten Pseudo-Betriebsroute, wobei das Verfahren die Schritte umfasst: Korrigieren des Pseudo-Lernpunktes durch Ausführen der Simulation, bis die Abweichung auf einen Wert gesenkt wird, der niedriger ist als ein vorgegebener, erlaubter Wert, indem der Pseudo-Lernpunkt um einen vorgegebenen Änderungsabstand verschoben wird, sodass die Abweichung für den Fall reduziert wird, in dem die Abweichung größer ist als der vorgegebene, erlaubte Wert, wobei der Pseudo-Lernpunkt um einen Betrag verschoben wird, der einer Abweichung zwischen der Ziel-Betriebsroute und der Pseudo-Betriebsroute entspricht.
  • Die Druckschrift US 2014/0 031 982 A1 offenbart ein Robotersystem, das bestimmt, ob ein beweglicher Abschnitt mit einem mehrgelenkigen Arm und einem Endeffektor einander stören oder nicht. Die Bestimmung basiert auf Positionsinformationen einer Vielzahl von Lernpunkten und Positionsinformationen des Hindernisses bei Bewegung des beweglichen Abschnitts entlang der Lernpunkte. Wenn eine solche Störung auftritt, wird ein entsprechender vorbestimmter Lernpunkt auf der Grundlage von Begrenzungsinformationen geändert.
  • Kurzdarstellung der Erfindung
  • Gemäß der Erfindung wird eine Vorrichtung gemäß dem unabhängigen Anspruch bereitgestellt. Entwicklungen sind in den abhängigen Ansprüchen dargestellt.
  • Gemäß einem ersten Beispiel wird eine Roboterprogramm-Erzeugungsvorrichtung bereitgestellt, die dazu eingerichtet ist, ein Roboterprogramm zum Betreiben eines mehrere Gelenke aufweisenden Roboters zu erzeugen, wobei die Roboterprogramm-Erzeugungsvorrichtung vorzugsweise umfasst: eine Einstelleinheit für den zulässigen Stoßwert, die dazu eingerichtet ist, zulässige Stoßwerte für die Gelenke des Roboters einzustellen; eine Gelenkinformations-Berechnungseinheit, die dazu eingerichtet ist, die Ausführung eines Roboterprogramms in einem virtuellen Raum zu simulieren und Positionen und Stöße der Gelenke in Zuordnung zur Zeit zu berechnen; eine Stoßüberprüfungseinheit, die dazu eingerichtet ist zu bestimmen, ob die durch die Gelenkinformations-Berechnungseinheit berechneten Stöße überhöhte Stöße sind, die die zulässigen Werte überschreiten, oder nicht; eine Gelenkinformations-Identifikationseinheit, die dazu eingerichtet ist, Gelenke und Positionen der Gelenke zu identifizieren, in denen die überhöhten Stöße erzeugt werden; und eine Roboterprogramm-Anpasseinheit, die dazu eingerichtet ist, das Roboterprogramm anzupassen, indem eine Lehrposition innerhalb der Umgebung der Positionen der Gelenke, in denen die überhöhten Stöße erzeugt werden, abgeändert wird, so dass die Stöße der durch die Gelenkinformation-Identifikationseinheit identifizierten Stöße gleich oder kleiner als die zulässigen Werte werden.
  • Gemäß einem zweiten Beispiel ist in der Roboterprogramm-Erzeugungsvorrichtung gemäß dem ersten Beispiel die Roboterprogramm-Anpasseinheit vorzugsweise dazu eingerichtet, die Lehrposition so abzuändern, dass sie mit einem Gitterpunkt übereinstimmt, in dem Stöße am kleinsten werden unter Gitterpunkten, die durch Aufteilen eines Raums innerhalb der Umgebung der Positionen der Gelenke, in denen die überhöhten Stöße erzeugt werden, gemäß einem Rechengitter gebildet werden.
  • Gemäß einem dritten Beispiel ist in der Roboterprogramm-Erzeugungsvorrichtung gemäß dem ersten Beispiel die Roboterprogramm-Anpasseinheit vorzugsweise dazu eingerichtet, die Lehrposition so abzuändern, dass ein auf die Zeit bezogener Änderungsbetrag von Stößen in den Gelenken, in denen die überhöhten Stöße erzeugt werden, reduziert wird.
  • Gemäß einem vierten Beispiel umfasst die Roboterprogramm-Erzeugungsvorrichtung gemäß einem des ersten bis dritten Beispiels eine Störungsüberprüfungseinheit, die dazu vorzugsweise eingerichtet ist, ein dreidimensionales Modell des Roboters und ein dreidimensionales Modell eines in der Umgebung des Roboters vorhandenen physischen Gegenstands in dem virtuellen Raum anzuordnen und zu bestimmen, ob sich der Roboter und der physische Gegenstand gegenseitig stören oder nicht, wenn die Simulation ausgeführt wird, wobei die Roboterprogramm-Anpasseinheit dazu eingerichtet ist, die Lehrposition so abzuändern, dass keine Störung zwischen dem Roboter und dem physischen Gegenstand verursacht wird.
  • Gemäß einem fünften Beispiel umfasst die Roboterprogramm-Erzeugungsvorrichtung gemäß einem des ersten bis vierten Beispiels ferner eine Bewegungszeit-Berechnungseinheit, die vorzugsweise dazu eingerichtet ist, eine Bewegungszeit zu berechnen, die erforderlich ist, um das Roboterprogramm auszuführen, wobei die Roboterprogramm-Anpasseinheit dazu eingerichtet ist, die Lehrposition so abzuändern, dass die Bewegungszeit verkürzt wird.
  • Gemäß einem sechsten Beispiel umfasst die Roboterprogramm-Erzeugungsvorrichtung gemäß einem des ersten bis fünften Beispiels ferner vorzugsweise: eine Überschreib-Bestimmungseinheit, die dazu eingerichtet ist zu bestimmen, ob ein Roboterprogramm im Roboter überschrieben werden kann oder nicht; und eine Programm-Übertragungseinheit, die dazu eingerichtet ist, ein durch die Roboterprogramm-Erzeugungsvorrichtung erzeugtes Programm an den Roboter zu übertragen, wobei die Programm-Übertragungseinheit dazu eingerichtet ist, das Roboterprogramm an den Roboter zu übertragen, wenn die Überschreib-Bestimmungseinheit bestimmt, dass das Roboterprogramm überschrieben werden kann.
  • Diese und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden deutlicher angesichts der ausführlichen Beschreibung von deren Ausführungsbeispielen, wie in den Zeichnungen dargestellt.
  • Figurenliste
    • 1 stellt eine Konfiguration eines Robotersystems mit einer Roboterprogramm-Erzeugungsvorrichtung dar.
    • 2 ist eine beispielhafte Darstellung eines in einem virtuellen Raum angeordneten Robotermodells.
    • 3 ist ein Funktionsblockschaltbild einer Roboterprogramm-Erzeugungsvorrichtung gemäß einem Ausführungsbeispiel.
    • 4 ist ein Ablaufdiagramm, das durch die Roboterprogramm-Erzeugungsvorrichtung gemäß dem Ausführungsbeispiel ausgeführte Prozesse darstellt.
    • 5 stellt Lehrpositionen, einen gemäß den Lehrpositionen gebildeten Bewegungspfad und ein Erzeugungsintervall der überhöhten Stöße dar.
    • 6 stellt einen Abänderungsbereich von Lehrpositionen dar.
    • 7 stellt das Rechengitter des zylindrischen Raums von 6 dar.
    • 8 stellt die Lehrpositionen vor und nach der Abänderung dar.
    • 9 ist ein Funktionsblockschaltbild einer Roboterprogramm-Erzeugungsvorrichtung gemäß einem weiteren Ausführungsbeispiel.
    • 10 stellt ein Robotermodell und ein störendes Gegenstandsmodell, die sich gegenseitig überlappen, dar. Der vereinfachten Darstellung halber werden die jeweiligen Modelle in rechtwinkliger Form dargestellt.
    • 11 ist ein Funktionsblockschaltbild einer Roboterprogramm-Erzeugungsvorrichtung gemäß noch einem weiteren Ausführungsbeispiel.
    • 12 stellt ein Beispiel einer zweiten abgeänderten Lehrposition und einer dritten abgeänderten Lehrposition gemäß der Roboterprogramm-Erzeugungsvorrichtung in 11 dar.
    • 13 ist ein Funktionsblockschaltbild einer Roboterprogramm-Erzeugungsvorrichtung nach noch einem weiteren Ausführungsbeispiel.
    • 14 ist ein Ablaufdiagramm, das Prozesse zum Überschreiben eines durch die Roboterprogramm-Erzeugungsvorrichtung in 12 ausgeführten Roboterprogramms darstellt.
  • Ausführliche Beschreibung der Erfindung
  • Ausführungsbeispiele der vorliegenden Erfindung werden nachstehend ausführlich mit Bezug auf die beigefügten Zeichnungen beschrieben. Die Größen von dargestellten Bauteilen können nach Bedarf abgeändert werden, um das Verständnis für die vorliegende Erfindung zu erleichtern. Gleiche oder entsprechende Bauteile werden durch die gleichen Bezugszeichen bezeichnet.
  • 1 stellt eine beispielhafte Konfiguration eines Robotersystems 1 dar. Das Robotersystem 1 wird beispielsweise benutzt, um nacheinander mehrere Gegenstände 3 (zum Beispiel Werkstücke) an eine vorbestimmte Position mittels eines Roboters 2 zu befördern. Der Roboter 2 ist beispielsweise ein vertikaler Knickarmroboter mit einer Hand 7 an einem Spitzenende eines Arms. Die Gegenstände 3 sind willkürlich in beispielsweise einem Behälter 4 angehäuft. Die Gegenstände 3 werden nacheinander durch die Hand 7 des Roboters gehalten und aus dem Behälter 4 entnommen. Das Robotersystem 1 umfasst ebenfalls einen Computer 5 zum Steuern eines Servomotors, der eine Antriebswelle eines jeden Gelenks des Roboters 2 antreibt.
  • Der Computer funktioniert online als Steuerungsvorrichtung, die den Roboter 2 in Zusammenarbeit mit einem visuellen Sensor (nicht dargestellt), der verwendet wird, um eine Position und eine Lage des Gegenstands 3 zu erkennen. Der Computer 5 kann ebenfalls als eine Steuerungsvorrichtung des visuellen Sensors und als eine Bildverarbeitungsvorrichtung funktionieren, die ein durch eine Kamera aufgenommenes Bild verarbeitet. Des Weiteren funktioniert der Computer 5 offline als Roboterprogramm-Erzeugungsvorrichtung 10, die eine Bewegung des Roboters 2 in einem virtuellen Raum simuliert, um ein Roboterprogramm zu erzeugen. Der Computer 5 ist ein digitaler Computer, der mit einer Zentraleinheit (CPU), einem Nur-Lese-Speicher (ROM), einem Direktzugriffsspeicher (RAM) und einer Schnittstelle oder dergleichen, die miteinander durch einen Bus verbunden sind, ausgestattet ist. Die Schnittstelle überträgt und empfängt Daten und Signale zu und von einer externen Vorrichtung. Ein Monitor, wie etwa eine Flüssigkristallanzeige, eine Eingabevorrichtung, wie etwa eine Maus und eine Tastatur, und andere externe Vorrichtungen können mit dem Computer 5 verbunden sein. Die Roboterprogramm-Erzeugungsvorrichtung 10, die ein Roboterprogramm gemäß einem Ausführungsbeispiel der vorliegenden Erfindung erzeugt, wird nachfolgend beschrieben.
  • Wie oben beschrieben hat die Roboterprogramm-Erzeugungsvorrichtung 10 die Funktion der Simulation einer Bewegung des Roboters 2 in einem virtuellen Raum. Beim Ausführen der Simulation ordnet die Roboterprogramm-Erzeugungsvorrichtung 10 Formmodelle an, die die jeweiligen zugehörigen Bauteile dreidimensional in einem virtuellen Raum wiedergeben. 2 ist ein Beispiel eines virtuellen Raums 8, der auf einem mit der Roboterprogramm-Erzeugungsvorrichtung 10 verbundenen Monitor 6 angezeigt wird. In dem virtuellen Raum 8 sind ein Robotermodell 2M, ein Gegenstandsmodell 3M und ein Behältermodell 4M, die entsprechend den Roboter 2, den Gegenstand 3 und den Behälter 4 wiedergeben, als dreidimensionale Modelle angeordnet. Ein Bediener kann eine Positionsbeziehung zwischen den jeweiligen Modellen im dreidimensionalen Raum durch Bedienen der Eingabevorrichtung überprüfen, um einen Blickpunkt zu ändern.
  • Ein in der Simulation verwendetes Modell ist ein Näherungsmodell mit nötiger Genauigkeit der Dynamik und Schwingung. Das Näherungsmodell kann ein Starrkörpermodell sein, in dem nur ein Mechanismus berücksichtigt wird, oder es kann ein elastoplastisches Modell, in dem eine Last auf einer Hand, eine Durchbiegung eines Mechanismus und eine Schwerkraft zusätzlich zu dem Mechanismus berücksichtigt werden. Ferner kann das Näherungsmodel auf ein Robotersystem anwendbar sein, das eine aus den Gelenken erhaltene Position des Spitzenendes der Hand des Roboters durch einen im Servomotor installierten Winkelsensor erhält, und auf ein Robotersystem anwendbar sein, das im Gegenzug die Positionen der Gelenke aus einer Position des Spitzenendes der Hand des Roboters erhält.
  • 3 ist ein Funktionsblockschaltbild der Roboterprogramm-Erzeugungsvorrichtung 10. Wenn der Roboter 2 gemäß einem vorbestimmten Roboterprogramm bewegt wird, erfüllt die Roboterprogramm-Erzeugungsvorrichtung 10 die Funktion, das Roboterprogramm anzupassen, indem Lehrpositionen der erwünschten Gelenke so abgeändert werden, dass Stöße (Änderungsbetrag der Beschleunigungen per Zeiteinheit) der Gelenke gleich oder kleiner als vorbestimmte zulässige Stoßwerte werden. Wie in 3 dargestellt umfasst die die Roboterprogramm-Erzeugungsvorrichtung 10 eine Einstelleinheit für den zulässigen Stoßwert 11, eine Gelenkinformation-Berechnungseinheit 12, eine Stoßüberprüfungseinheit 13, eine Gelenkinformation-Identifikationseinheit 14 und eine Roboterprogramm-Anpasseinheit 15 als eine funktionelle Konfiguration.
  • Die Einstelleinheit für den zulässigen Stoßwert 11 stellt einen zulässigen Stoßwert für jedes Gelenk des Roboters 2 ein. Der zulässige Stoßwert ist beispielsweise ein durch den Hersteller des Roboters 2 festgelegter Wert, wie etwa ein in den Spezifikationen des Roboters geschriebener Wert. Der zulässige Stoßwert kann auch basierend auf einem Stoß erhalten werden, der berechnet wird, wenn der Roboter entsprechend eines Testprogramms bewegt wird. Die Stöße werden basierend auf den Gelenkpositionsdaten berechnet, die durch in den Servomotoren installierten Winkelsensoren erkannt werden. Die durch die Winkelsensoren erkannten Gelenkpositionen werden in Bezug auf die Zeit erhalten. Die Stöße werden durch Ausführen einer Differentiation dritter Ordnung der Gelenkposition in Bezug auf die Zeit erhalten.
  • Die Stöße können durch tatsächliches Bewegen des Roboters erhaltene aktuelle Werte sein oder können als Ergebnis einer im virtuellen Raum ausgeführten Simulation erhalten werden, wie in 2 dargestellt. Die durch ein Test-Roboterprogramm festgelegte Bewegung des Roboters 2 enthält einige Handhabungsbewegungen des Roboters 2 für einen Beförderungsprozess. Es können verschiedene, während tatsächlicher Bewegungen zu erwartende Bedingungen angewendet werden. Ferner muss das Test-Roboterprogramm dasjenige sein, das keine Schwingungen erzeugt, die eine Beschädigung oder einen Fall des gegriffenen Gegenstands verursachen können. Die Einstelleinheit für den zulässigen Stoßwert 11 stellt einen Maximalwert für jeden als Ergebnis der Ausführung des Test-Roboterprogramms erhaltenen Stoß als einen zulässigen Stoßwert ein.
  • Die Gelenkinformation-Berechnungseinheit 12 berechnet Positionen der Gelenke und Stöße in Bezug auf die Zeit, wenn eine Bewegung des Roboters 2 im virtuellen Raum simuliert wird. Die Stöße können berechnet werden, indem eine Differentiation dritter Ordnung an den Gelenkpositionsdaten mit Bezug auf die Zeit durchgeführt wird.
  • Die Stoßüberprüfungseinheit 13 bestimmt für jeden durch die Gelenkinformation-Berechnungseinheit 12 berechneten Stoß, ob er sich außerhalb des durch die Einstelleinheit für den zulässigen Stoß 11 eingestellten Werts befindet oder nicht. Das Ergebnis der Bestimmung durch die Stoßüberprüfungseinheit 13 wird an die Gelenkinformation-Identifikationseinheit 14 gesendet. Ein Stoß, der sich außerhalb des zulässigen Stoßwerts des entsprechenden Gelenks befindet, kann nachfolgend der Einfachheit halber als ein „überhöhter Stoß“ bezeichnet werden.
  • Wenn die Stoßüberprüfungseinheit 13 bestimmt, dass ein oder mehrere überhöhte Stöße erzeugt werden, identifiziert die Gelenkinformation-Identifikationseinheit 14 die Gelenke, in denen ein oder mehrere überhöhte Stöße erzeugt werden, sowie die Positionen der Gelenke. Ein überhöhter Stoß kann in mehr als einem Gelenk erzeugt werden. Der überhöhte Stoß kann auch mehr als einmal im selben Gelenk erzeugt werden. Die Gelenkinformation-Identifikationseinheit 14 identifiziert die Gelenke und deren Positionen, die all den überhöhten Stößen entsprechen.
  • Die Roboterprogramm-Anpasseinheit 15 passt das Roboterprogramm durch Reduzieren von Stößen der Gelenke so an, dass jeder Stoß des Gelenks gleich oder kleiner als der zulässige Stoßwert wird. Insbesondere ändert die Roboterprogramm-Anpasseinheit 15 die Lehrpositionen innerhalb der Umgebung der Positionen der Gelenke ab, die den durch die Gelenkinformation-Identifikationseinheit 14 identifizierten jeweiligen überhöhten Stößen entsprechen.
  • Durch die Roboterprogramm-Erzeugungsvorrichtung 10 ausgeführte Prozesse werden mit Bezug auf ein in 4 dargestelltes Ablaufdiagramm beschrieben. Zunächst stellt in Schritt S401 die Einstelleinheit für den zulässigen Stoßwert 11 die zulässigen Stoßwerte ein.
  • In Schritt S402 führt die Roboterprogramm-Erzeugungsvorrichtung 10 eine Simulation des Roboterprogramms durch. Um die Simulation durchzuführen, werden vorab erstellte dreidimensionale Modelle der jeweiligen Bauteile des Robotersystems 1, wie etwa das Robotermodell 2M und das Gegenstandsmodell 3M, im virtuellen Raum 8 angeordnet.
  • In Schritt S403 berechnet die Gelenkinformation-Berechnungseinheit 12 die Gelenkpositionen des Roboters 2 in Bezug auf die Zeit basierend auf einem Simulationsergebnis des Bewegungsprogramms und berechnet Zeitreihendaten der Stöße aus den Gelenkpositionen mit der entsprechenden Zeit.
  • In Schritt S404 bestimmt die Stoßüberprüfungseinheit 13, ob die in Schritt S403 erhaltenen Stöße die in Schritt S401 erhaltenen zulässigen Stöße überschreiten oder nicht. Wenn die Ergebnisse der Bestimmungen in Schritt S404 negativ in Bezug auf alle Stöße von allen Gelenken sind, kann daraus geschlossen werden, dass alle Stöße ausreichend gering sind und keine überhöhten Schwingungen im Roboter 2 erzeugt werden, so dass die Verarbeitung abgeschlossen wird.
  • Wenn andererseits in dem Fall, in dem das Ergebnis der Bestimmung in Schritt S404 positiv ist, d.h. ein oder mehrere überhöhten Stöße in mindestens einem Intervall erkannt werden, dann geht der Prozess weiter zu Schritt S405 und die Gelenkinformation-Identifikationseinheit 14 identifiziert die Gelenke, in denen die jeweiligen überhöhten Stöße erzeugt werden, sowie die Positionen der Gelenke.
  • 5 stellt die Lehrpositionen PA, PB und PC innerhalb der Umgebung des Intervalls, in dem einige überhöhten Stöße erzeugt werden, sowie einen basierend auf den Lehrpositionen PA, PB und PC erstellten Bewegungspad Q dar. In 5 zeigen zwei schwarze Punkte einen Startpunkt Q(t1) und einen Endpunkt Q(t2) des Intervalls dar, in dem einige überhöhten Stöße kontinuierlich erzeugt werden. Q(t1) zeigt an, dass mindestens ein Stoß eines Gelenks von allen Gelenken den Zustand startet, dass sich der Stoß außerhalb des zulässigen Stoßwertes des Gelenks befindet. Q(t2) zeigt an, dass alle Stöße von allen Gelenken den Zustand starten, dass sich alle Stöße von allen Gelenken innerhalb der zulässigen Werte befinden. Es ist nicht erforderlich, dass sich ein Stoß eines bestimmten Gelenkes kontinuierlich außerhalb des zulässigen Stoßwerts des Gelenks in dem Intervall befindet. Selbst wenn sich ein Stoßwert eines bestimmten Gelenks innerhalb des zulässigen Stoßwertes zu einem mittleren Zeitpunkt im Intervall befindet, sich aber mindestens einer von den anderen Stoßwerten außerhalb der zulässigen Stoßwerte befindet, dann bedeutet dies, dass ein oder mehrere überhöhten Stöße erzeugt werden. „t1“ und „t2“ sind Zeitpunkte, die dem Startpunkt beziehungsweise dem Endpunkt des Erzeugungsintervalls der überhöhten Stöße entsprechen. Weiße Quadrate zeigen Lehrpositionen an, die für den Roboter durch das Roboterprogramm festgelegt werden und sich innerhalb der Umgebung des Erzeugungsintervalls der überhöhten Stöße befindet. Die durch das Roboterprogramm festgelegten Lehrpositionen sind eine Gruppe von Positionen, die die Positionen P1, P2, P3, ..., PA, PB, PC, ..., und Pn (n: natürliche Zahl) umfassen. Wenn das Roboterprogramm ausgeführt wird, wird an diesen Lehrpositionen eine vorbestimmte Interpolationsverarbeitung durchgeführt und der Bewegungspfad Q wird erstellt.
  • In Schritt S406 ändert die Roboterprogramm-Anpasseinheit 15 die Lehrpositionen innerhalb der Umgebung der Positionen der Gelenke, in denen die überhöhten Stöße erzeugt werden. In dem beispielsweise in 5 dargestellten Fall sind die beiden Lehrpositionen PB und PC abgeändert, die sich innerhalb der Umgebung des zwischen dem Startpunkt Q(t1) und dem Endpunkt Q(t2) definierten Erzeugungsintervalls der überhöhten Stöße befinden. Eine spezifische Art der Abänderung der Lehrpositionen PB und PC wird nachstehend beschrieben.
  • Wenn die Abänderung des Roboterprogramms abgeschlossen ist, kehrt der Prozess zu Schritt S402 zurück und die Bewegung des Roboters 2 wird entsprechend dem angepassten Roboterprogramm simuliert, das die in Schritt S406 modifizierten Lehrpositionen enthält.
  • Als Nächstes wird mit Bezug auf die 6 bis 8 die Art und Weise beschrieben, in der die Roboterprogramm-Anpassungseinheit 15 die Lehrpositionen in Schritt S406 abändert.
  • Wie oben beschrieben ändert die Roboterprogramm-Anpasseinheit 14 die Lehrpositionen innerhalb der Umgebung des Intervalls ab, in dem die überhöhten Stöße erzeugt werden. Gemäß einem Ausführungsbeispiel kann die Lehrposition innerhalb eines Bereichs eines zylindrischen Raums abgeändert werden, der eine zentrale axiale Linie auf dem Bewegungspfad Q aufweist. In dem beispielsweise in 6 dargestellten Fall weist ein zylindrischer Raum TS eine Mittelachsenlinie auf dem Bewegungspfad Q sowie einen Radius auf, der gleich der Länge des Bewegungspfads Q in dem Intervall ist, in dem die überhöhten Stöße erzeugt werden, d.h., einem Abstand zwischen dem Startpunkt Q(t1) und dem Endpunkt Q(t2) entlang dem Bewegungspfad Q.
  • Die Roboterprogramm-Anpasseinheit 15 bestimmt die abgeänderten Lehrpositionen PB' und PC' innerhalb des Bereichs des zylindrischen Raums TS (siehe 6). In diesem Fall werden die Lehrpositionen des durch die Roboterprogramm-Erzeugungsvorrichtung 10 erzeugten Roboterprogramms die Punkte P1, P2, P3, ..., PA, PB', PC', ..., und Pn sein, und es wird ein durch eine punktierte Linie in 6 angezeigter Bewegungspfad Q' entsprechend der abgeänderten Lehrpunkte erstellt.
  • Gemäß einem Ausführungsbeispiel kann ein Kandidat einer Lehrposition durch Aufteilen des zylindrischen Raums TS entsprechend einem Rechengitter erhalten werden, wie in 7 dargestellt. In diesem Fall werden die abgeänderten Lehrpositionen PB' und PC', die den Lehrpositionen PB beziehungsweise PC entsprechen, aus einer endlichen Anzahl von innerhalb des zylindrischen Raums TS eingestellten Rechengitterpunkten ausgewählt.
  • Gemäß einem Ausführungsbeispiel erhält die Roboterprogramm-Anpassungseinheit 15 eine abgeänderte Lehrposition gemäß den folgenden Prozessen. Zunächst identifiziert die Roboterprogramm-Anpassungseinheit 15 die Zeitreihendaten der Stöße entsprechend dem Intervall, in dem die Stöße erzeugt werden, aus den in Schritt S403 in 4 erhaltenen Zeitreihendaten der Stöße. Die Roboterprogramm-Anpassungseinheit 15 erzeugt neue Zeitreihendaten der Stöße, um einen Änderungsbetrag der Stöße in Bezug auf die Zeit basierend auf den identifizierten Zeitreihendaten der Stöße zu reduzieren. In diesem Prozess wird gewährleistet, dass ein aus den neuen Zeitreihendaten der Stöße erhaltener Rotationsbetrag der Gelenke mit einem aus den ursprünglichen Zeitreihendaten der Stöße erhaltenen Rotationsbetrag im Wesentlichen übereinstimmt. Gemäß dem vorliegenden Ausführungsbeispiel ändert die Roboterprogramm-Anpassungseinheit 15 die Lehrposition basierend auf den durch Reduzieren eines Änderungsbetrags der Stöße in Bezug auf die Zeit erhaltenen neuen Zeitreihendaten der Stöße.
  • 8 stellt den Bewegungspfad Q bevor die Lehrposition abgeändert wird und den basierend auf den neuen Zeitreihendaten der Stöße erstellten Bewegungspfad Q' dar. „Q'(t1)“ zeigt eine Position auf dem Bewegungspfad Q' zur Zeit t1 an, die dem Startpunkt Q(t1) des Erzeugungsintervalls der überhöhten Stöße in dem Roboterprogramm vor der Abänderung entspricht. „Q'(t2) zeigt eine Position auf dem Bewegungspfad Q' zur Zeit t2, die dem Endpunkt Q(t2) des Erzeugungsintervalls der überhöhten Stöße entspricht. Gemäß dem in 8 dargestellten Beispiel ändert die Roboterprogramm-Anpassungseinheit 15 die Lehrpositionen PB und PC des Roboterprogramms innerhalb der Umgebung des Startpunkts Q(t1) und des Endpunkts Q(t2) auf die Lehrpositionen PB' und PC' ab, die identisch zu „Q'(t1)“ und „Q'(t2)“ auf dem Bewegungspfad Q' sind. Ein basierend auf Lehrpositionen, die die abgeänderten Lehrpositionen PB' und PC' enthalten, erstellter Bewegungspfad hängt von der für den Roboter spezifischen Servosteuerung und Interpolationsverarbeitung ab und kann somit möglicherweise nicht immer mit dem dargestellten Bewegungspfad Q' übereinstimmen. Ein auf den abgeänderten Lehrpositionen basierender Bewegungspfad ist jedoch dem durch Reduzieren des Zeitänderungsbetrags der Stöße erhaltenen Bewegungspfad Q' angenähert, und somit kann eine die Stöße reduzierende Wirkung erreicht werden.
  • Gemäß einem Ausführungsbeispiel kann die Roboterprogramm-Erzeugungsvorrichtung 10 dazu eingerichtet sein, die Anpassung des Roboterprogramms in dem Fall zu beenden, in dem überhöhte Stöße selbst dann noch erzeugt werden, nachdem die Abänderung von Lehrpositionen durch die Roboterprogramm-Anpassungseinheit 15 über eine vorbestimmte Anzahl von Wiederholungen durchgeführt wurde. Wenn die überhöhten Stöße nach wiederholter Durchführung der Abänderung von Lehrpositionen nicht eliminiert sind, kann es ratsam sein, dass ein Bediener die Einstellungskonfigurationen, mit Ausnahme der Lehrpositionen, überprüft, um die überhöhten Stöße zu reduzieren.
  • Wenn mehrere Erzeugungsintervalle von überhöhten Stößen erkannt werden, wird die Bearbeitung des Abänderns einer Lehrposition des Roboterprogramms ausgeführt, um Stöße in jedem der Erzeugungsintervalle der überhöhten Stößen zu reduzieren.
  • Die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem oben beschriebenen Ausführungsbeispiel hat die folgenden Vorteile.
    1. (1) Die Roboterprogramm-Anpassungseinheit 15 passt eine Lehrposition für einen Roboter so an, dass Stöße gleich oder kleiner als zulässige Werte werden. Dementsprechend können Schwingungen des Roboters aufgrund von starken Stößen der Gelenke verhindert werden.
    2. (2) Die Roboterprogramm-Erzeugungsvorrichtung 10 kann das Roboterprogramm automatisch anpassen, wenn die Erzeugung von einem oder mehreren Stößen erwartet wird. Dementsprechend können die Stöße reduziert werden, ohne einem Bediener die Belastung des Ausprobierens aufzuerlegen.
    3. (3) Die Roboterprogramm-Erzeugungsvorrichtung 10 kann durch Abändern einer Lehrposition für einen zu betreibenden Roboter Stöße reduzieren. Mit anderen Worten, die Roboterprogramm-Erzeugungsvorrichtung 10 kann ein Stoßreduzierungsverfahren bereitstellen, das nicht von einer Spezifikation des Roboters abhängt. Beispielsweise werden Parameter und Interpolationsbearbeitungen abhängig von jedem Roboterhersteller ausgelegt. Deshalb kann in einem Robotersystem mit mehreren von unterschiedlichen Roboterherstellern hergestellten Robotern eine Stoßreduzierungswirkung nicht immer ausreichend erreicht werden, wenn die Parameter und die Interpolationsbearbeitung durch dasselbe Verfahren angepasst werden. Hingegen ändert die Roboterprogramm-Erzeugungsvorrichtung 10 eine Lehrposition für einen Roboter ab und kann somit eine Stoßreduzierungswirkung erreichen, die nicht von der Spezifikation des Roboters abhängt.
    4. (4) Gemäß dem Ausführungsbeispiel, in dem eine abgeänderte Lehrposition innerhalb eines entlang des Bewegungspfads Q ausgebildeten zylindrischen Raums TS gewählt wird, kann die Abänderung der Lehrposition effizient ausgeführt werden.
    5. (5) Gemäß dem Ausführungsbeispiel, in dem eine abgeänderte Lehrposition aus Gitterpunkten gewählt wird, die durch Aufteilen des zylindrischen Raums TS gemäß einem Rechengitter gebildet werden, kann die Lehrposition aus einer endlichen Anzahl von Kandidaten gewählt werden, so dass die Abänderung der Lehrposition effizient ausgeführt werden kann.
  • 9 ist ein Funktionsblockdiagramm einer Roboterprogramm-Erzeugungsvorrichtung 10 gemäß einem weiteren Ausführungsbeispiel. Die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel enthält zusätzlich zu der oben mit Bezug auf die 3 beschriebene Konfiguration ferner ein Störungsüberprüfungseinheit 16.
  • Die Störungsüberprüfungseinheit 16 bestimmt, ob sich ein Robotermodell 2M und ein physischer Gegenstand in der Umgebung (zum Beispiel ein Gegenstandsmodell 3M oder ein Behältermodell 4M) gegenseitig stören, wenn eine Bewegung eines Roboters 2 in einem virtuellen Raum 8 simuliert wird.
  • In der Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel ändert die Roboterprogramm-Anpassungseinheit 15 eine Lehrposition des Roboterprogramms so ab, dass sich der Roboter und der physische Gegenstand in der Umgebung nicht gegenseitig stören. Daher kann die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel ein Roboterprogramm erzeugen, das die Stöße der Gelenke gleich oder kleiner als die entsprechenden zulässigen Werte macht und gleichzeitig verhindert, dass das Robotersystem 1 eine Störung verursacht.
  • Ein beispielhaftes Abänderungsverfahren einer Lehrposition, wenn eine Störung in dem Robotersystem 1 auftritt, wird mit Bezug auf 10 beschrieben. Wenn eine Störung in dem virtuellen Raum 8 auftritt, dann ist das Robotermodell 2M in an mindestens einem Punkt in Kontakt mit einem störendem Gegenstandsmodell 9M, oder das Robotermodell 2M und das störende Gegenstandsmodell 9M überlappen einander im dreidimensionalen Raum. 10 stellt einen Zustand dar, in dem das Robotermodell 2M und das störende Gegenstandsmodell 9M einander überlappen. Mit Bezug auf 10 stellt ein Punkt K1 eine Position des Massenzentrums eines überlappenden Teils des Robotermodells 2M und des störenden Gegenstandsmodells 9M dar. Wenn das Robotermodell 2M an einem Punkt in Kontakt mit dem störenden Gegenstandsmodell ist, kann eine Position des Kontaktpunkts als der Punkt K1 definiert werden. Ein Punkt K2 stellt eine Position des Massenschwerpunkts der Masse des Robotermodells 2M (ein dreidimensionales Modell der Hand des Roboters) dar, und ein Punkt K3 stellt den Massenschwerpunkt des störenden Gegenstands dar. Ein Vektor V1 stellt einen in einer Richtung von Punkt K1 zum Punkt K2 gerichteten Einheitsvektor dar, und ein Vektor V2 ist ein in Richtung von Punkt K3 zum Punkt K2 gerichteter Einheitsvektor. Ein Vektor V3 ist ein Durchschnitt der Vektoren V1 und V2. Wenn die Störungsüberprüfungseinheit 16 bestimmt, dass eine Störung auftritt, ändert die Roboterprogramm-Anpassungseinheit 15 eine Lehrposition Pm, an der die Störung auftritt, zu einer abgeänderten Lehrposition Pm' ab, die einen vorbestimmten Abstand in Richtung des Vektors entfernt liegt. Auf diese Weise kann die Roboterprogramm-Erzeugungsvorrichtung 10 das Roboterprogramm erzeugen, das so angepasst ist, dass eine gegenseitige Störung des Roboters 2 und eines physischen Gegenstands in der Umgebung verhindert wird.
  • 11 ist ein Funktionsblockschaltbild einer Roboterprogramm-Erzeugungsvorrichtung 10 gemäß noch einem weiteren Ausführungsbeispiel. Die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel enthält ferner zusätzlich zu der oben mit Bezug auf die 3 beschriebenen Konfiguration eine Bewegungszeit-Berechnungseinheit 17. Die Bewegungszeit-Berechnungseinheit 17 berechnet die zum Ausführen eines jeden Roboterprogramms erforderliche Zeit. Die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel erzeugt ein Roboterprogramm, das die kürzeste Ausführungszeit unter einer bestimmten Anzahl von Roboterprogrammen erfordert.
  • Beispielsweise erzeugt die Roboterprogramm-Erzeugungsvorrichtung 10 basierend auf dem Roboterprogramm (der Einfachheit halber als ein „erstes Roboterprogramm bezeichnet), das eine Lehrposition (der Einfachheit halber als eine „erste abgeänderte Lehrposition“ bezeichnet) enthält, die abgeändert wird, um Stöße gemäß dem oben beschriebenen Ausführungsbeispiel zu reduzieren, eine bestimmte Anzahl von Roboterprogrammen, die sich vom ersten Roboterprogramm unterscheiden, beispielsweise zwei Roboterprogramme. Mit anderen Worten, es werden zunächst drei Arten von Roboterprogrammen erzeugt, in denen sich eine Lehrposition voneinander unterscheidet. Basierend auf dem Ergebnis der Berechnung durch die Bewegungszeit-Berechnungseinheit 17 erzeugt dann die Roboterprogramm-Erzeugungsvorrichtung 10 gezielt das Roboterprogramm, das die kürzeste Zeit unter den drei Roboterprogrammen erfordert.
  • Ein beispielhaftes Verfahren zum Erhalten von Lehrpositionen des zweiten Roboterprogramms und des dritten Roboterprogramms aus den Lehrpositionen des ersten Roboterprogramms wird mit Bezug auf die 12 beschrieben. Mit Bezug auf die 12 stellt ein Vektor V1 die Erstreckung von dem Startpunkt Q(t1) des Erzeugungsintervalls von überhöhten Stößen vor der Abänderung der Lehrposition zu einer Position Q'(t1) zur Zeit t1 auf einem gemäß dem ersten Roboterprogramm erstellten Bewegungspfad dar. Ein Vektor V2 und ein Vektor V3 werden durch Rotieren des Vektors V1 um einen Winkel α, beziehungsweise einen Winkel -α um den Startpunkt Q(t1) auf einer zum Bewegungspfad vor der Abänderung rechtwinkligen Ebene PL erhalten.
  • Im zweiten Roboterprogramm wird die Lehrposition PB (siehe 5) zu einer Lehrposition PB2 an einer vom Startpunkt Q(t1) um den Vektor V2 verschobenen Position geändert. Des Weiteren wird die Lehrposition PC (siehe 5) zu einer Lehrposition PC2 an einer um den Vektor V2 vom Endpunkt Q(t2) des Erzeugungsintervalls von überhöhten Stößen (siehe 5) verschobenen Position geändert. Auf diese Weise werden die durch das zweite Roboterprogramm festgelegten Lehrpositionen die Punkte P1, P2, P3, ..., PA, PB2, PC2, ..., und Pn.
  • Im dritten Roboterprogramm wird die Lehrposition PB (siehe 5) zu einer Lehrposition PB3 an einer um den Vektor V3 vom Startpunkt Q(t1) verschobenen Position geändert. Des Weiteren wird die Lehrposition PC (siehe 5) zu einer Lehrposition PC3 an einer vom Endpunkt Q(t2) des Erzeugungsintervalls der überhöhten Stöße (siehe 5) um den Vektor V3 verschobenen Position geändert. Auf diese Weise werden die durch das dritte Roboterprogramm festgelegten Lehrpositionen die Punkte P1, P2, P3, ..., PA, PB3, PC3, ..., und Pn.
  • Wenn die durch Ausführen des ersten bis dritten Roboterprogramms erzeugten Stöße kleiner als der zulässige Wert sind, erzeugt die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel gezielt ein Roboterprogramm, das die kürzeste Ausführungszeit unter dem ersten Roboterprogramm, dem zweiten Roboterprogramm und dem dritten Roboterprogramm erfordert.
  • 13 ist ein Funktionsblockdiagramm einer Roboterprogramm-Erzeugungsvorrichtung 10 gemäß noch einem weiteren Ausführungsbeispiel. Die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel enthält zusätzlich zu der oben in Bezug auf die 3 beschriebenen Konfiguration eine Überschreib-Bestimmungseinheit 18 und eine Programm-Übertragungseinheit 19. Die Überschreib-Bestimmungseinheit 18 bestimmt, ob der Roboter 2 (siehe 1) in einem Zustand ist, in dem das Roboterprogramm überschrieben werden kann, oder nicht. Die Programm-Übertragungseinheit 19 überträgt das durch die Roboterprogramm-Erzeugungsvorrichtung 10 erzeugte Roboterprogramm an den Roboter 2 beispielsweise in Erwiderung auf eine an einem Handprogrammiergerät ausgeführte Bewegung.
  • 14 ist ein Ablaufdiagramm, das Prozesse zum Überschreiben des Roboterprogramms gemäß dem vorliegenden Ausführungsbeispiel darstellt. Die Prozesse werden gestartet, wenn die Roboterprogramm-Erzeugungsvorrichtung 10 das Roboterprogramm erzeugt. In Schritt S1402 benachrichtigt die Roboterprogramm-Erzeugungsvorrichtung 10 (der Computer 5) den Roboter 2 über die Erzeugung des Roboterprogramms.
  • In Schritt S1402 bestimmt die Überschreib-Bestimmungseinheit 18, ob der Roboter 2 das Überschreiben des Roboterprogramms zulässt oder nicht. Das Roboterprogramm kann beispielsweise unabhängig von dem durch die Roboterprogramm-Erzeugungsvorrichtung 10 erzeugten Roboterprogramm überschrieben werden, wenn der Roboter 2 in Bewegung ist. Wenn das Ergebnis der Bestimmung in Schritt S1402 negativ ist, wird die Bestimmung in Schritt S1402 in einem vorbestimmten Steuerzyklus ausgeführt, ohne zum Schritt S1403 weiterzugehen.
  • Wenn das Ergebnis der Bestimmung in Schritt S1402 positiv ist, geht der Prozess weiter zu Schritt S1403 und die Programm-Übertragungseinheit 19 überträgt das durch die Roboterprogramm-Erzeugungsvorrichtung 10 erzeugte Roboterprogramm an den Roboter 2. Dementsprechend kann der Roboter 2 eine vorbestimmte Bewegung gemäß dem Roboterprogramm ausführen, in dem eine Lehrposition abgeändert ist, um die Stöße zu reduzieren.
  • Die Roboterprogramm-Erzeugungsvorrichtung 10 gemäß dem vorliegenden Ausführungsbeispiel lässt abhängig von der Situation das Überschreiben des Roboterprogramms zu, ohne die Bewegung des Roboters 2 vorübergehend zu stoppen. Dementsprechend kann die Produktivität verbessert werden.
  • Wirkung der Erfindung
  • Gemäß der Roboterprogramm-Erzeugungsvorrichtung der vorliegenden Erfindung ändert die Roboterprogramm-Anpassungseinheit, wenn ein oder mehrere Stößen erzeugt werden, die die entsprechenden zulässigen Stoßwerte überschreiten, eine Lehrposition für die Gelenke, in denen die überhöhten Stöße erzeugt werden, um die Stöße zu reduzieren. Dementsprechend können Stöße, die Schwingungen während der Bewegung des Roboters verursachen, reduziert werden und der Roboter kann somit sicher mit hoher Geschwindigkeit betrieben werden.

Claims (6)

  1. Roboterprogramm-Erzeugungsvorrichtung (10), die dazu eingerichtet ist, um ein Roboterprogramm zum Betreiben eines mehrere Gelenke umfassenden Roboters (2) zu erzeugen, wobei die Roboterprogramm-Erzeugungsvorrichtung (10) Folgendes umfasst: eine Einstelleinheit für den zulässigen Stoßwert (11), die dazu eingerichtet ist, - um zulässige Stoßwerte für die Gelenke des Roboters (2) einzustellen; eine Gelenkinformations-Berechnungseinheit (12), die dazu eingerichtet ist, um die Ausführung eines Roboterprogramms in einem virtuellen Raum (8) zu simulieren und Positionen und Stöße der Gelenke in Zuordnung zur Zeit zu berechnen; eine Stoßüberprüfungseinheit (13), die dazu eingerichtet ist, um zu bestimmen, ob die durch die Gelenkinformations-Berechnungseinheit (12) berechneten Stöße überhöhte Stöße sind, die die zulässigen Werte überschreiten, oder nicht; eine Gelenkinformations-Identifikationseinheit (14), die dazu eingerichtet ist, um Gelenke und Positionen der Gelenke zu identifizieren, in denen die überhöhten Stöße erzeugt werden; und eine Roboterprogramm-Anpasseinheit (15), die dazu eingerichtet ist, um das Roboterprogramm anzupassen, indem eine Lehrposition innerhalb der Umgebung der Positionen der Gelenke, in denen die überhöhten Stöße erzeugt werden, so abgeändert wird, dass die Stöße der durch die Gelenkinformations-Identifikationseinheit (14) identifizierten Stöße gleich oder kleiner als die zulässigen Werte werden.
  2. Roboterprogramm-Erzeugungsvorrichtung (10) nach Anspruch 1, wobei die Roboterprogramm-Anpasseinheit (15) dazu eingerichtet ist, um die Lehrposition so abzuändern, dass sie mit einem Gitterpunkt übereinstimmt, in dem Stöße am kleinsten werden unter Gitterpunkten, die durch Aufteilen eines Raums innerhalb der Umgebung der Positionen der Gelenke, in denen die überhöhten Stöße erzeugt werden, gemäß einem Rechengitter gebildet werden.
  3. Roboterprogramm-Erzeugungsvorrichtung (10) nach Anspruch 1, wobei die Roboterprogramm-Anpasseinheit (15) dazu eingerichtet ist, um die Lehrposition so abzuändern, dass ein auf die Zeit bezogener Änderungsbetrag von Stößen in den Gelenken, in denen die überhöhten Stöße erzeugt werden, reduziert wird.
  4. Roboterprogramm-Erzeugungsvorrichtung (10) nach einem der Ansprüche 1 bis 3, ferner umfassend eine Störungsüberprüfungseinheit (16), die dazu eingerichtet ist, um ein dreidimensionales Modell (2M) des Roboters (2) und ein dreidimensionales Modell (9M) eines in der Umgebung des Roboters (2) vorhandenen physischen Gegenstands in dem virtuellen Raum (8) anzuordnen, und zu bestimmen, ob sich der Roboter (2) und der physische Gegenstand gegenseitig stören oder nicht, wenn die Simulation ausgeführt wird, wobei die Roboterprogramm-Anpasseinheit (15) dazu eingerichtet ist, um die Lehrposition so abzuändern, dass keine Störung zwischen dem Roboter (2) und dem physischen Gegenstand verursacht wird.
  5. Roboterprogramm-Erzeugungsvorrichtung (10) nach einem der Ansprüche 1 bis 4, ferner umfassend eine Bewegungszeit-Berechnungseinheit (17), die dazu eingerichtet ist, um eine Bewegungszeit zu berechnen, die erforderlich ist, um das Roboterprogramm auszuführen, wobei die Roboterprogramm-Anpasseinheit (15) dazu eingerichtet ist, um die Lehrposition so abzuändern, dass die Bewegungszeit verkürzt wird.
  6. Roboterprogramm-Erzeugungsvorrichtung (10) nach einem der Ansprüche 1 bis 5, ferner umfassend: eine Überschreib-Bestimmungseinheit (18), die dazu eingerichtet ist, um zu bestimmen, ob ein Roboterprogramm im Roboter (2) überschrieben werden kann oder nicht; und eine Programm-Übertragungseinheit (19), die dazu eingerichtet ist, um ein durch die Roboterprogramm-Erzeugungsvorrichtung (10) erzeugtes Programm an den Roboter (2) zu übertragen, wobei die Programm-Übertragungseinheit (19) dazu eingerichtet ist, um das Roboterprogramm an den Roboter (2) zu übertragen, wenn die Überschreib-Bestimmungseinheit (18) bestimmt, dass das Roboterprogramm überschrieben werden kann.
DE102015010124.2A 2014-08-11 2015-08-04 Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt Active DE102015010124B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-163796 2014-08-11
JP2014163796A JP5908544B2 (ja) 2014-08-11 2014-08-11 駆動軸のジャークを低下させるロボットプログラムを生成するロボットプログラム生成装置

Publications (3)

Publication Number Publication Date
DE102015010124A1 DE102015010124A1 (de) 2016-02-11
DE102015010124A8 DE102015010124A8 (de) 2016-03-24
DE102015010124B4 true DE102015010124B4 (de) 2018-06-14

Family

ID=55134929

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015010124.2A Active DE102015010124B4 (de) 2014-08-11 2015-08-04 Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt

Country Status (4)

Country Link
US (1) US9610688B2 (de)
JP (1) JP5908544B2 (de)
CN (1) CN106181964B (de)
DE (1) DE102015010124B4 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6632208B2 (ja) * 2015-03-24 2020-01-22 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP6898779B2 (ja) * 2016-08-18 2021-07-07 株式会社ユーシン精機 成形品取出機
JP6514171B2 (ja) * 2016-09-27 2019-05-15 ファナック株式会社 最適な物品把持経路を学習する機械学習装置、及び機械学習方法
EP3367185A1 (de) * 2017-02-28 2018-08-29 Siemens Aktiengesellschaft Antriebssystem und dessen beurteilung
DE102017104335A1 (de) * 2017-03-02 2018-09-06 Physik Instrumente (Pi) Gmbh & Co. Kg Vorrichtung zur Bewegungsanalyse und Antriebsvorrichtung
JP7237447B2 (ja) * 2017-09-29 2023-03-13 キヤノン株式会社 情報処理方法、プログラム、記録媒体、情報処理装置、ロボットシステム、および物品の製造方法
MX2018014250A (es) 2017-11-21 2019-08-16 Tti Macao Commercial Offshore Ltd Nebulizador en frio.
JP7080649B2 (ja) * 2018-01-17 2022-06-06 キヤノン株式会社 制御方法、物品の製造方法、制御プログラム、記録媒体、ロボットシステム、制御装置
JP7158862B2 (ja) * 2018-02-05 2022-10-24 キヤノン株式会社 情報処理方法及び情報処理装置
US11458626B2 (en) 2018-02-05 2022-10-04 Canon Kabushiki Kaisha Trajectory generating method, and trajectory generating apparatus
JP6879238B2 (ja) * 2018-03-13 2021-06-02 オムロン株式会社 ワークピッキング装置及びワークピッキング方法
US11235466B2 (en) * 2018-04-23 2022-02-01 University Of Southern California Setup planning and parameter selection for robotic finishing
US11325263B2 (en) * 2018-06-29 2022-05-10 Teradyne, Inc. System and method for real-time robotic control
JP6895128B2 (ja) * 2018-11-09 2021-06-30 オムロン株式会社 ロボット制御装置、シミュレーション方法、及びシミュレーションプログラム
JP7444588B2 (ja) 2019-11-25 2024-03-06 ファナック株式会社 軌道生成装置、自動位置制御装置および軌道生成方法
JP6792184B1 (ja) * 2019-11-27 2020-11-25 株式会社安川電機 シミュレーションシステム、シミュレーション方法、シミュレーションプログラム、ロボットの製造方法、およびロボットシステム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655060A (en) 1995-03-31 1997-08-05 Brooks Automation Time optimal trajectory for cluster tool robots
JPH11249724A (ja) 1997-12-31 1999-09-17 Samsung Electronics Co Ltd ロボット制御のための経路計画装置及び経路計画方法
US6216058B1 (en) 1999-05-28 2001-04-10 Brooks Automation, Inc. System of trajectory planning for robotic manipulators based on pre-defined time-optimum trajectory shapes
US20030033050A1 (en) 1999-12-16 2003-02-13 Yutkowitz Stephen J. Motion control system and method utilizing spline interpolation
JP2003241811A (ja) 2002-02-15 2003-08-29 Nachi Fujikoshi Corp 産業用ロボットの経路計画方法及び経路計画装置
US20070021868A1 (en) 2005-07-25 2007-01-25 Fanuc Ltd. Method of evaluating and correcting robot program and device for evaluating and correcting robot program
US20090043425A1 (en) 2007-08-10 2009-02-12 Fanuc Ltd Robot program adjusting system
US20130197688A1 (en) 2010-10-13 2013-08-01 Omoron Corporation Control apparatus, control system and control method
WO2013133346A1 (en) 2012-03-07 2013-09-12 Canon Kabushiki Kaisha Robot controlling device, robot apparatus, robot control method, program for executing robot control method, and recording medium on which program is recorded
US20140031982A1 (en) 2012-07-27 2014-01-30 Seiko Epson Corporation Robotic system and robot control device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2664476B2 (ja) * 1989-05-19 1997-10-15 トキコ株式会社 工業用ロボット
JP3900789B2 (ja) * 2000-04-14 2007-04-04 セイコーエプソン株式会社 モータの速度・加速度決定方法、加減速生成方法、加減速制御方法、加減速制御装置及びモータ制御装置
JP2004314137A (ja) * 2003-04-17 2004-11-11 Fanuc Ltd レーザ加工ロボット
JP4829151B2 (ja) * 2005-07-25 2011-12-07 ファナック株式会社 ロボットプログラム評価・修正方法及びロボットプログラム評価・修正装置
JP5005366B2 (ja) * 2007-01-24 2012-08-22 株式会社ダイヘン ロボット制御装置
US7919940B2 (en) * 2007-10-21 2011-04-05 Ge Intelligent Platforms, Inc. System and method for jerk limited trajectory planning for a path planner
JP2010137292A (ja) * 2008-12-09 2010-06-24 Seiko Epson Corp ロボット、ロボットの駆動制御方法
JP6128767B2 (ja) * 2012-07-05 2017-05-17 キヤノン株式会社 ロボット制御装置、及びロボット制御方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655060A (en) 1995-03-31 1997-08-05 Brooks Automation Time optimal trajectory for cluster tool robots
JPH11249724A (ja) 1997-12-31 1999-09-17 Samsung Electronics Co Ltd ロボット制御のための経路計画装置及び経路計画方法
US6216058B1 (en) 1999-05-28 2001-04-10 Brooks Automation, Inc. System of trajectory planning for robotic manipulators based on pre-defined time-optimum trajectory shapes
US20030033050A1 (en) 1999-12-16 2003-02-13 Yutkowitz Stephen J. Motion control system and method utilizing spline interpolation
JP2003241811A (ja) 2002-02-15 2003-08-29 Nachi Fujikoshi Corp 産業用ロボットの経路計画方法及び経路計画装置
US20070021868A1 (en) 2005-07-25 2007-01-25 Fanuc Ltd. Method of evaluating and correcting robot program and device for evaluating and correcting robot program
US20090043425A1 (en) 2007-08-10 2009-02-12 Fanuc Ltd Robot program adjusting system
US20130197688A1 (en) 2010-10-13 2013-08-01 Omoron Corporation Control apparatus, control system and control method
WO2013133346A1 (en) 2012-03-07 2013-09-12 Canon Kabushiki Kaisha Robot controlling device, robot apparatus, robot control method, program for executing robot control method, and recording medium on which program is recorded
US20140031982A1 (en) 2012-07-27 2014-01-30 Seiko Epson Corporation Robotic system and robot control device

Also Published As

Publication number Publication date
JP5908544B2 (ja) 2016-04-26
DE102015010124A1 (de) 2016-02-11
US20160039090A1 (en) 2016-02-11
DE102015010124A8 (de) 2016-03-24
JP2016036895A (ja) 2016-03-22
US9610688B2 (en) 2017-04-04
CN106181964A (zh) 2016-12-07
CN106181964B (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
DE102015010124B4 (de) Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt
DE102014115774B3 (de) Robotersystem und Verfahren zum Vermeiden eines Kontakts zwischen einem Greiforgan des Robotersystems und einem dynamischen Hindernis in der Umgebung
DE102015106227B3 (de) Steuern und/oder Regeln von Motoren eines Roboters
DE102012104194B4 (de) Roboter und Punktschweissroboter mit lernender Steuerungsfunktion
DE102012007254B4 (de) Verfahren und Vorrichtung zum Vorausberechnen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Objekt
DE602005005306T2 (de) Steuerung der Bahn eines Greifers
DE202015105595U1 (de) Absolutes robotergestütztes Positionsverfahren
DE102018112360B3 (de) Bereichsabhängige Kollisionsdetektion für einen Robotermanipulator
DE102019118637B4 (de) Automatische pfadgenerierungsvorrichtung
DE102006055917B4 (de) Industrieroboter und Verfahren zum Erkennen eines ungenau parametrierten Robotermodells
DE102011110902A1 (de) Sicherer Betrieb eines Kraft- oder ImpedanzgesteuertenRoboters im Arbeitsraum
EP3227061A1 (de) Verfahren zur bewegungssimulation eines manipulators
DE102018210864B3 (de) Verfahren und System zum Regeln eines Roboters
DE102016008866A1 (de) Robotersteuervorrichtung mit Kompensation elastischer Deformation eines Stützkörpers
DE102019205651B3 (de) Verfahren und System zum Ausführen von Roboterapplikationen
EP3272468B1 (de) Verfahren und vorrichtung zum steuern einer roboterbewegung eines roboters anhand einer zweiten trajektorie
DE102014226787B3 (de) Sicherer Roboter mit Bahnfortschrittsvariablen
EP3993959A1 (de) Durchführen einer applikation mithilfe wenigstens eines roboters
WO2019025248A1 (de) Verfahren und system zum überprüfen und/oder modifizieren eines arbeitsprozesses eines roboters
WO2019029870A1 (de) Handhabungseinrichtung mit einem roboter sowie verfahren und computerprogramm
DE102018112370B4 (de) Richtungsabhängige Kollisionsdetektion für einen Robotermanipulator
DE102012022190B4 (de) Inverse Kinematik
DE102018209044B3 (de) Kraftregelung eines Roboters
WO2017016641A2 (de) Verfahren und system zum steuern eines roboters
DE102006036490A1 (de) Verfahren und Vorrichtung zum Steuern eines Handhabungsgeräts

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: WUESTHOFF & WUESTHOFF, PATENTANWAELTE PARTG MB, DE

R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final