[go: up one dir, main page]

DE112010000794B4 - Verfahren zum Steuern eines Roboterwerkzeuges - Google Patents

Verfahren zum Steuern eines Roboterwerkzeuges Download PDF

Info

Publication number
DE112010000794B4
DE112010000794B4 DE112010000794.2T DE112010000794T DE112010000794B4 DE 112010000794 B4 DE112010000794 B4 DE 112010000794B4 DE 112010000794 T DE112010000794 T DE 112010000794T DE 112010000794 B4 DE112010000794 B4 DE 112010000794B4
Authority
DE
Germany
Prior art keywords
workpiece
path
image
data
feature
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
DE112010000794.2T
Other languages
English (en)
Other versions
DE112010000794T5 (de
DE112010000794T8 (de
Inventor
Ken Krause
E. Coldren Bruce
Edward Roney
Steven Prehn
M. Sharpe Michael
Claude Dinsmoor
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 America Corp
Original Assignee
Fanuc Robotics America 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 Robotics America Corp filed Critical Fanuc Robotics America Corp
Publication of DE112010000794T5 publication Critical patent/DE112010000794T5/de
Publication of DE112010000794T8 publication Critical patent/DE112010000794T8/de
Application granted granted Critical
Publication of DE112010000794B4 publication Critical patent/DE112010000794B4/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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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/37Measurements
    • G05B2219/37555Camera detects orientation, position workpiece, points of workpiece
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40425Sensing, vision based motion planning

Landscapes

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

Abstract

Ein Verfahren zum Steuern eines Robotersystems, das Verfahren die Schritte umfassend:a. Bereitstellen eines Werkzeugs, gehalten durch einen beweglichen Mechanismus des Robotersystems;b. Bereitstellen eines Werkstücks, gehalten durch einen Träger;c. Erzeugen eines Bilds des Werkstücks;d. Extrahieren von Daten aus dem Bild, die ein Merkmal des Werkstücks definieren;e. Erzeugen eines durchgängigen dreidimensionalen Pfads entlang des Werkstücks, wobei der Pfad dem Merkmal folgt, welches durch die extrahierten Daten aus dem Bild definiert wurde; undf. Bewegen des Werkzeugs entlang des Pfads.

Description

  • Diese Anmeldung nimmt die Vorteile der vorläufigen US-Patentanmeldung Nr. 61/149,443 , angemeldet am 3. Februar 2009, in Anspruch, die hiermit durch Bezug in vollem Umfang aufgenommen wird.
  • Die vorliegende Erfindung bezieht sich allgemein auf ein Verfahren zum Programmieren eines Roboters, um einem gewünschten Pfad zu folgen. Insbesondere richtet sich die Erfindung auf ein Verfahren zum Steuern eines Robotersystems, um ein Werkzeug entlang eines gewünschten Pfads mit Hilfe visueller Informationen zu bewegen, um einen Programmiervorgang abzuschließen.
  • Industrieroboter werden zunehmend für eine größere Breite von Anwendungen verwendet. In den meisten Fällen ist es notwendig, einen Roboter den Pfad zu „lehren“, entlang welchem der Roboter sich zum Vervollständigen einer gewünschten Operation bewegen muss. Beispielsweise muss der Roboter in einer Schweißanwendung so programmiert werden, dass er sich in einer Anzahl aufeinanderfolgender Ausrichtungen bewegt, die den Schweißbrenner tatsächlich entlang der Schweißnaht des Werkstücks bewegen.
  • Das Programmieren oder Teachen eines Roboters mit einem gewünschten Pfad wurde herkömmlicherweise von Hand durchgeführt. Ein Bediener interagiert mit der Robotersteuereinheit und veranlasst den Roboter manuell, sich in den notwendigen Ausrichtungen zum Platzieren des Werkstücks in die notwendigen Positionen entlang des gewünschten Pfads zu bewegen. Jede der Positionen wird dann in die Steuereinheit des Roboters programmiert, welcher später den programmierten Pfad wiederholt. Der Prozess ist üblicherweise zeitintensiv, schwierig und oft nicht genau genug, um am Ende der Roboteroperation befriedigende Ergebnisse zu erzielen. Des Weiteren beinhaltet die übliche Praxis den Nachteil, dass sich der Bediener während des Teachbetriebs im Arbeitsbereich des Roboters befindet, was die Möglichkeit einer ungewünschten Kollision zwischen Roboter und Bediener einführt.
  • Es wurden verschiedene Systeme vorgeschlagen, die ein Roboter-Bildverarbeitungssystem zum Steuern des Roboterbetriebs beinhalten. Jedoch haben keine das Bildverarbeitungssystem für das Teachen oder Programmieren des Roboters zum Verfolgen des Programmpfads verwendet. Zwar enthalten die Druckschriften US 4 616 121 A ; US 4 965 499 A und US 5 572 103 A alle ein mit einem Industrieroboter verknüpftes Bildverarbeitungssystem, das visuelle Informationen zum Korrigieren eines vorprogrammierten Pfads während des Roboterbetriebs, jedoch ist es bei allen diesen Systemen notwendig, den Roboter nach herkömmlicher Art vorzuprogrammieren. Schwächen des Stands der Technik sind, dass der Benutzer für jedes zu verarbeitende Teil ausdrücklich ein Programm teachen muss.
  • Zum Programmieren eines Roboters kann auch Nahtverfolgung verwendet werden. Druckschrift 4 812 614 A beschreibt ein Verfahren für Nahtverfolgung mittels maschineller Bildverarbeitung und eine Vorrichtung für Schweißroboter. Die Vorrichtung kann automatisch die Abweichung zwischen einer tatsächlichen Schweißnaht und einem geteachten Pfad erkennen, wobei die Vorrichtung Mittel zur Bilderzeugung und einen Bildprozessor für das Korrigieren des Schweißpfads umfasst. Durch die Bilderzeugungsmittel kann ein Licht von einer gewöhnlichen Lichtquelle, nachdem es kondensiert und übertragen wurde, auf ein Werkzeug projiziert werden, um eine Lichtzeile über der Schweißnaht zu bilden. Eine entlang der Schweißnahtrichtung platzierte Festkörperkamera kann das Bild der Schweißnaht erfassen, welches dann an den Bildprozessor übertragen wird. Der Bildprozessor ist vorzugsweise ein Mikrocomputer, der Software zur Bearbeitung durch die Stumpf-, Hohlkehl-, Überlapp- bzw. V-Fugenverbindung gebildeten Bilder aufweist, um die vorhandene Abweichung zwischen der tatsächlichen Schweißnaht und dem geteachten Pfad, einschließlich der Positionsfehler über der Schweißnaht und der Abstandsvariation zwischen Schweißbrenner und Werkstück (die sogenannte Höhe des Schweißbrenners), zu berechnen. Eine Steuereinheit des Schweißroboters kann die Fehlersignale der Schweißnaht in entsprechende Daten umrechnen, mit denen die Koordinaten des Schweißroboters zum Angleichen an die tatsächliche Schweißnaht korrigiert werden können.
  • Nahtverfolgung erfordert jedoch einen geteachten Pfad oder ein geteachtes Programm, wobei der ganz durchgängige geteachte Pfad auf eine festgestellte Abweichung vom geteachten Pfad hin versetzt wird.
  • Roboter können in einem anderen Beispiel des Stands der Technik auch veranlasst werden, sich einen Pfad entlang zu bewegen, der als CAD-Daten verfügbare Punkte umfasst, die den Pfad beschreiben (d. h. CAD-zu-Pfad). Bei CAD-zu-Pfad-Programmierung wird der Roboterpfad mittels Echtzeitinformationen in Form eines visuellen Stimulus eingestellt. Schwächen von CAD-zu-Pfad sind jedoch: 1) Der CAD-zu-Pfad-Algorithmus benötigt zu viel Zeit zur Ausführung; 2) ist zu teuer in der Herstellung; 3) Er ermöglicht es nicht, die Roboterposition beruhend auf ungenauem Aufsetzen von Teilen anzupassen; und 4) Er ermöglicht nicht das Nachverfolgen manuell gezeichneter Referenzpunkte oder -linien.
    Es besteht Bedarf, die derzeitigen Verfahren zum Teachen von Roboterpfaden zu vereinfachen und verbessern. Beispielsweise ist es wünschenswert, die Notwendigkeit des Aufenthalts des Bedieners im Arbeitsbereich des Roboters während des Pfadausbildungsvorgangs zu beseitigen. Zudem ist es wünschenswert, die Effizienz des Teachens eines Roboterpfads durch die Verringerung der benötigten Zeit zu verbessern.
  • US 5 959 425 A verwendet eine Methode um aus einem Werkstück, dass durch einen Benutzer mit einer sichtbaren Markierungen versehen ist, die einen Abschnitt eines gewünschten Pfades markieren, unter Verwendung zweier Bildaufnahmen, aus dieser Markierung eine dreidimensionale Positionierung dieser Markierung relativ zum realen Ort des Roboters erzeugen.
  • DE 60 2006 000 648 T2 zeigt eine Vorrichtung zum Teachen von Roboterpfaden in einem Offline-Modus, wobei ein bereits vorhandenes Maschinenprogramm, welches für die Bearbeitung eines ersten Werkstückes ausgeführt wurde, angepasst wird, um einen Roboterpfad durch ein zweites Werkstück zu interpolieren. Ein Benutzer definiert hierbei einen Pfad entlang des Werkstückes indem er Arbeitspunkte auf ein Bild des Werkstückes aufbringt.
  • DE 601 27 644 T2 verwendet ein Lehrgerät welches von einem Bild einer Kamera über eine Oberfläche eines Gegenstandes durch ein darauf abgebildetes Lichtmuster eine dreidimensionale Position der Lage der Oberfläche erhält. Es werden Punkte festgelegt, welche die Arbeitslinie auf dem Bild der Kamera und deren dreidimensionale Position ausmachen.
  • In US 2008 / 0 027 580 A1 wird ein Bild einer auf einem Referenzstück gebildeten hellen Linie, die auf das Werkstück projiziert wird und als Indikator dient, mit einer zweiten Kamera fotografiert und daraus eine 3D Position eines Messpunktes anhand einer Vermessung bestimmt.
    US 6 816 755 B2 definiert sechs Zielmerkmale, die herkömmliche Merkmale eines Werkstücks sind. Mit diesen Zielmerkmalen als Referenzrahmen wird ein Roboter darauf trainiert, in einem Fall, in dem das gleiche Objekt lokalisiert wird, der Roboter seinen Arbeitspfad schnell finden kann und auf in den Referenzrahmen des Werkstückes übertragen kann.
  • In DE 103 61 018 A1 wird ein Verfahren zum Erkennen einer auf einem Substrat aufzubringenden Struktur beschrieben, wobei die aufgebrachte Struktur beim Abfahren für die Bewertung der Struktur als optisches Abbild verarbeitet wird.
  • Entsprechend und übereinstimmend mit der vorliegenden Erfindung wurde überraschenderweise ein Verfahren zum Steuern eines Roboterwerkzeugs mittels visuell erlangter Informationen bezüglich eines Werkstücks entdeckt.
  • Die vorliegende Erfindung richtet sich auf den oben beschrieben Bedarf und vermeidet die Schwächen und Nachteile des Stands der Technik, indem sie Mittel zum Synthetisieren eines Roboterprogramms vollständig aus Informationen, die aus einem Eingangsbild und Roboterkalibrierungsdaten extrahiert wurden.
  • Die Erfindung bietet Verfahren zum Steuern eines Robotersystems. Insbesondere will die vorliegende Erfindung ein verbessertes und verfeinertes Verfahren vorschlagen, welches keine durch einen Benutzer aufgebrachte Markierung benötigt.
    Hierfür wird aus den extrahierten Daten eines Bildes des Werkstücks ein Merkmal definiert, anhand dessen ein durchgängiger dreidimensionaler Pfad entlang des Werkstücks erzeugt wird. Ein durch einen Benutzer vordefinierter Pfad oder vordefinierte Referenzpunkte die auf das Werkstück appliziert werden entfallen somit.
  • Ein Verfahren umfasst die Schritte:
    1. a. Bereitstellen eines Werkzeugs, gehalten durch einen beweglichen Mechanismus des Robotersystems;
    2. b. Bereitstellen eines Werkstücks, gehalten durch einen Träger;
    3. c. Erzeugen eines Bilds des Werkstücks;
    4. d. Extrahieren von Daten aus dem Bild, die ein Merkmal des Werkstücks definieren;
    5. e. Erzeugen eines durchgängigen dreidimensionalen Pfads entlang des Werkstücks., wobei der Pfad dem Merkmal folgt, welches durch die extrahierten Daten aus dem Bild definiert wurde; und
    6. f. Bewegen des Werkzeugs entlang des Pfads.
  • Ein anderes Verfahren umfasst die Schritte:
    1. a. Bereitstellen eines Werkzeugs, gehalten durch einen beweglichen Mechanismus des Robotersystems;
    2. b. Bereitstellen eines Werkstücks, gehalten durch einen Träger;
    3. c. Kalibrieren des beweglichen Mechanismus auf den Träger;
    4. d. Erzeugen eines Bilds des Werkstücks;
    5. e. Extrahieren von Daten aus dem Bild, die ein Merkmal des Werkstücks definieren;
    6. f. Zuweisen eines Knotens an jeden von mehreren Punkten entlang des Merkmals des Werkstücks mittels aus dem Bild extrahierter Daten und Daten der Kalibrierung des beweglichen Mechanismus;
    7. g. Erzeugen eines durchgängigen dreidimensionalen Pfads entlang des Werkstücks, wobei der Pfad dem Merkmal folgt, welches durch die extrahierten Daten aus dem Bild definiert wurde; und
    8. h. Bewegen des Werkzeugs entlang des Pfads.
  • Ein noch anderes Verfahren umfasst die Schritte:
    1. a. Bereitstellen eines Werkzeugs;
    2. b. Bereitstellen eines Werkstücks;
    3. c. Anwenden einer Führungslinie auf das Werkstück;
    4. d. Extrahieren von Daten aus dem Bild des Werkstücks, die ein Merkmal des Werkstücks definieren;
    5. e. Lokalisieren des Werkstücks;
    6. f. Erzeugen eines idealen dreidimensionalen Pfads des Werkzeugs entlang des Werkstücks, wobei der Pfad dem Merkmal folgt, welches durch die extrahierten Daten aus dem Bild definiert wurde;
    7. g. Bewegen des Werkzeugs entlang wenigstens eines Teils des idealen Pfads; und h. Einstellen einer Position des Werkzeugs, um der Führungslinie zur folgen.
  • Die obigen und andere Vorteile der vorliegenden Erfindung werden den Fachleuten ohne weiteres anhand der nachfolgenden detaillierte Beschreibung der Ausführungsbeispiele ersichtlich werden, wenn sie im Lichte der beigefügten Zeichnungen betrachtet werden, in denen:
    • 1 eine schematische Darstellung eines Robotersystems gemäß eines Ausführungsbeispiels der vorliegenden Erfindung ist; und
    • 2 ein schematisches Flussdiagramm eines Verfahrens zum Steuern des Robotersystems der 1 ist, gemäß eines Ausführungsbeispiels der vorliegenden Erfindung;
    • 3 eine schematische Darstellung eines über ein Werkstück gelegten Roboterpfads gemäß des Verfahrens der 2 ist;
    • 4 eine schematische Darstellung eines über ein Werkstück gelegten Roboterpfads gemäß des Verfahrens der 2 ist, die einen Schweißpfad auf dem Werkstück zeigt, der einem Teil des Roboterpfads folgt;
    • 5 ein schematisches Flussdiagramm eines Verfahrens zum Steuern des Robotersystems der 1 ist, gemäß eines anderen Ausführungsbeispiels der vorliegenden Erfindung; und
    • 6 ein schematisches Diagramm mehrerer Pfade auf einem Werkstück ist.
  • 1 illustriert ein Robotersystem 10 einschließlich eines Roboters 12 mit einer Roboterbasis 14 und einem beweglichen Arm 16 auf einer Basis 14. An einem Ende trägt der Arm 16 ein Werkzeug, das zum Ausführen eines gewünschten Arbeitsgangs verwendet wird.
  • Beispielsweise könnte das Werkzeug 18 ein Schweißbrenner, ein Plasmaschneidwerkzeug, ein Materialabtragungs-/entgratungswerkzeug oder ein(e) Beschichtungswerkzeug/- vorrichtung zum Auftragen eines Dichtungsmittels oder von Farbe sein. Es kann jedes Roboterwerkzeug verwendet werden.
  • Eine Steuereinheit 20 wird eingerichtet, um eine Bewegung des Roboterarms 16 derart zu steuern, dass der gewünschte Arbeitsgang auf dem Werkstück 22 durchgeführt wird. Das Werkstück 22 wird von einem üblichen Werkstückträger 24 in dem Arbeitsbereich des Roboters getragen. In einem nicht einschränkenden Beispiel beinhaltet der Träger einen ebenflächigen Tisch. Jedoch kann jeder Träger oder jede Haltevorrichtung verwendet werden.
  • Ein Bildverarbeitungssystem 26 ist zum Aufnehmen eines Bilds wenigstens des Werkstücks 22 angeordnet. In dem gezeigten Ausführungsbeispiel enthält das Bildverarbeitungssystem 26 einen dreidimensionalen Laserbildverarbeitungssensor 28 (z. B. den iRVision®-Sensor, hergestellt von FANUX Robotics America, Inc.) auf dem Roboterarm 16 und fähig, sich mit diesem mitzubewegen. Das Bilderzeugungssystem 26 kann jedoch eine zweidimensionale Digitalkamera (nicht gezeigt) enthalten, die zum Betrachten des Werkstücks 26 und Sammeln von Daten, die ein von der Kamera wahrgenommenes Bild darstellen, fähig ist.
  • In einem nicht einschränkenden Beispiel erzeugt der Bildverarbeitungssensor 28 ein zweidimensionales Bild. Jedoch kann der Bildverarbeitungssensor 28 zum Erzeugen einer dreidimensionalen Repräsentation des Werkstücks 22 eingerichtet oder ausgerichtet sein. Wie dargestellt, steht der Bildverarbeitungssensor in Verbindung mit der Steuereinheit 20 , so dass die vom Bildverarbeitungssensor 28 erhaltene Bildinformation wie unten beschrieben verarbeitet werden kann.
  • Bei manchen Ausführungsformen enthält die Steuereinheit 20 einen Prozessor 30 und ein Speichergerät oder -vorrichtung 32. Der Prozessor 30 ist mit Hilfe eines Befehlssatzes 34 zum Analysieren der von der Kamera erfassten Bilder oder anderer, von Komponenten des Bildverarbeitungssystems 26 empfangenen Daten eingerichtet. Der Befehlssatz 34, der in einem beliebigen computerlesbaren Medium verkörpert sein kann, enthält von dem Prozessor ausführbare Befehle, um den Prozessor 30 für das Durchführen verschiedenen Aufgaben zu konfigurieren.
  • In einem nicht beschränkenden Beispiel enthält der Befehlssatz 34 einen Bildanalysecode oder -algorithmus, um ein Bild des Werkstücks 22 auszuwerten und Informationen bezüglich der Kanten und anderer Merkmale des Werkstücks zu extrahieren, wobei die Merkmale jegliche Bereiche oder Kanten auf dem Werkstück 22, die jegliche Form, komplex oder einfach, oder bspw. Profil enthalten können. Ein Merkmal kann in Segmente aufgeteilt werden, und ein einzelnes Segment kann in mehrere Untersegmente aufgeteilt werden. Bei der Erstellung eines Programms oder eines Pfads können jedem Segment des Merkmals verschiedene Erstelleigenschaften zugewiesen werden, um gewünschte Roboterprozessprogramme zu erzeugen.
  • Ein Merkmal kann aus computerunterstützten Zeichnungen (d. h. CAD-Kanten) extrahiert oder durch Benutzereingaben wie Mausklicks auf einer Oberfläche einer computerunterstützten Zeichnung erzeugt werden, um eine Knoten-zu-Knoten-Linie oder -Pfad zu erstellen.
  • Das Speichersystem 32 kann eine einzelne Speichervorrichtung oder mehrere Speichervorrichtungen sein. Teile des Speichersystems 32 können auch auf dem Prozessor 30 angesiedelt sein. Zudem kann das Speichersystem 32 ein Solid-State-Speichersystem (Flash-Speicher), ein Magnetspeichersystem, ein optisches Speichersystem oder jedes andere geeignete Speichersystem sein. Das Speichersystem 32 ist zum Speichern des Befehlssatzes 34 eingerichtet. Andere Daten und Informationen wie bspw. gepufferte Daten können im Speichersystem 32 gespeichert werden.
  • Die Steuereinheit 20 kann weiterhin eine programmierbare Komponente 36 enthalten. Die programmierbare Komponente 36 steht in Verbindung mit dem Prozessor 30. Die programmierbare Komponente 36 kann bspw. in Verbindung mit jeder anderen Komponente des Robotersystems 10 oder Bildverarbeitungssystems 26 stehen. Bei manchen Ausführungsformen ist die programmierbare Komponente 36 zum Verwalten und Steuern von Verarbeitungsfunktionen des Prozessors 30 eingerichtet. Die programmierbare Komponente 36 stellt für den Benutzer ein Mittel zum aktiven Verwalten der Operation des Prozessors 30 und damit zum Steuern der Funktionalität des Robotersystems 10 und des Bildverarbeitungssystems 26 zur Verfügung.
  • 2 illustriert ein Verfahren 100 zum Steuern des Robotersystems 10 gemäß der vorliegenden Erfindung. In Schritt 102 wird das Werkzeug 18 auf dem beweglichen Arm 16 des Robotersystems 10 angeordnet. In Schritt 104 wird das Werkstück 22 auf dem Träger 24 angeordnet. Wie Schritt 106 gezeigt, werden der Arm 16 des Robotersystems 10 und das Werkzeug 18 auf der Grundlage einer Position und Ausrichtung des Trägers 24 relativ zum Arm 16 kalibriert, sobald das Werkstück 22 in Position ist. In einem nicht einschränkenden Beispiel wird der Arm 16 mittels eines dreidimensionalen Kalibrierungsgitterrahmens zum Errichten eines Koordinatensystems zum Ermitteln der relativen Position und Ausrichtung verschiedener Komponenten auf den Träger 24 kalibriert. Den Kalibrierungsschritt repräsentierende Daten können zur weiteren Verwendung gespeichert werden.
  • In Schritt 108 erzeugt das Bildverarbeitungssystem 26 ein Bild des Werkstücks 22. In einem nicht einschränkenden Beispiel ist das Bild ein zweidimensionales Bild. Jedoch könnten andere Bilder erzeugt werden. Das Bild wird an die Steuereinheit 20 zum Extrahieren von Informationen bezüglich eines das Bild repräsentierenden entscheidenden Merkmals oder Kante übertragen.
  • Die Steuereinheit 20 verarbeitet das entscheidende Merkmal des Bilds zusammen mit den in Schritt 106 erhaltenen Kalibrierungsdaten, um einen durchgängigen dreidimensionalen Pfad entlang des Werkstücks 22 zu erzeugen, wie den Schritten 110 bspw. 112 gezeigt. In einem nicht einschränkenden Beispiel analysiert der Prozessor 30 das Bild auf der Grundlage eines im Stand der Technik bekannten Bildverarbeitungsverfahrens. In einem weiteren Beispiel analysiert der Prozessor 30 das Bild, um mehrere Kanten des Werkstücks 22 zu definieren und interpoliert/extrapoliert die definierten Kanten zum Anpassen an mehrere Merkmale, so dass ein geometrisches Profil des Werkstücks 22 entsteht.
  • Bei manchen Ausführungsformen wird jeder vom Prozessor 30 erkannten Kante oder Merkmals eine eindeutige Identifizierung und ein bestimmter Längenwert zugewiesen. Jeder Punkt des Merkmals oder der Kante wird auf der Grundlage vorbestimmter Einstellungen des Prozessors 30 durch einen Knoten repräsentiert. Beispielsweise können sich auf jeden Knoten beziehende Daten die folgenden Informationsfelder enthalten: $contrast - Betrag eines Gradienten des Knotens zu einer vorbestimmten, erkennbaren Eigenschaft des Bilds (z. B. Licht, Reflexion); $edge_len - Länge der Kante, mit der der Knoten (Merkmalspunkt) verbunden ist; $edge_id - numerische Identifikation einer Kette verbundener Knoten, wobei jede Kette eine andere Identifikation hat; und $position - Standard-XYZWPR-Position, wobei eine X-Koordinate des Knotens in dem Bild auf der Grundlage des Kalibrierungsgitterrahmens lokalisiert wird, eine Y-Koordinate in dem Bild auf der Grundlage des Kalibrierungsgitterrahmens gefunden wird, eine Z-Koordinate in dem Kalibrierungsgitterrahmen aus wenigstens einer Benutzereingabe oder einer Bildanalyse (auf der Grundlage eines dreidimensionalen Bilds) ermittelt wird, und ein R-Winkel eines Gradienten, der auf eine „Lichtseite“ des Knotens zeigt, wobei der Winkel als Bogenmaßwert auf der Grundlage des Kalibrierungsgitterrahmens angegeben wird.
    Die Kantenlänge ($edge_len) und Kantenidentifizierung ($edge_id) haben für jeden mit einer bestimmten Kette verbundenen Knoten den gleichen Wert, wobei alle einen durchgängigen Pfad entlang einer Kante oder eines Merkmals des Bilds repräsentierenden Knoten die gleiche Kantenidentifikation ($edge_id) haben. Die Anzahl der Knoten/Punkte in dem Pfad wird auf der Grundlage vordefinierter Einstellungen des Prozessors 30 ermittelt.
  • Bei manchen Ausführungsformen gibt ein Benutzer eine Anzahl von Bildpunkten (Knoten), die nicht ohne Weiteres vom Prozessor 30 erkannt werden, per Hand ein. Ein Benutzer kann ein sekundäres Modell einer dritten Dimension, die nicht durch das Bild repräsentiert wird, durch Vorwissen über eine zu erwartende Geometrie des Werkstücks 22 bereitstellen. Ein Benutzer kann dreidimensionale Schlüsselmerkmale des Werkstücks 22 mittels Benutzereingabe an den Prozessor 30 teachen.
  • Bei manchen Ausführungsformen erzeugt der Prozessor 30 den dreidimensionalen Pfad auf der Grundlage eines Kurvenanpassungsverfahrens, das Punktdaten auf der Grundlage einer Änderungsrate zwischen Merkmalen oder entlang einer Kante in einer vorbestimmten Dimension erzeugt. In einem nicht einschränkenden Beispiel ist das Kurvenanpassungsverfahren ähnlich einer Pfadüberlagerung der ArcTool®-Anwendungssoftware, hergestellt von FANUC Robotics America, Inc. Eine Datenfilterung kann auch zum Eliminieren von Bilddaten verwendet werden, die nicht relevant oder mit den Bilddaten für das weitere Vorgehen zu kombinieren sind. In einem weiteren Beispiel wird der erzeugte Pfad auf der Grundlage von Prozesswissen und Prozessparametern modifiziert, die für einen mit dem auf dem Arm 16 montierten Werkzeug 18 verbundenen Prozess spezifisch sind.
  • Zusätzliche Steuerung der Auswertung des erzeugten Bilds und der resultierenden Darstellung von Knoten und Pfaddaten wird durch ein Pfadlokalisierungswerkzeugt bereitgestellt, das jede mehrerer Graustufenkanten in einem über das Bild gelegten Suchfenster nachverfolgt und mehrere Punkte auf mehreren erkannten Kanten ausgibt. Ein Benutzer ist in der Lage, das Pfadlokalisierungswerkzeug zu konfigurieren, um entweder alle gefundenen Punkte auf jeder Kante oder eine Untermenge von Punkten mit Hilfe der unten beschriebenen Verfahren zu erhalten.
  • Ein Kontrastgrenzwertverfahren beinhaltet das Einstellen eines minimalen Kontrasts für einen zu berücksichtigenden Punkt. Ein Maximalabweichungsverfahren beinhaltet das Einstellen einer Grenzwertabweichung von einem vorbestimmten „Lineal“. Ein Punktabstandsverfahren beinhaltet das Einstellen eines Grenzwerts auf der Grundlage eines Abstands zwischen aufeinanderfolgenden Punkten. Wird die maximale Abweichung verwendet, gibt das Bildverarbeitungssystem 26 Endpunkte von gerade Segmenten zurück, die eine bestimmten Kante approximieren. Werden Punktabstände verwendet, gibt das Bildverarbeitungssystem 26 gleich beabstandete Punkte zurück.
  • Aufgrund der Bandbreite von Anwendungen, die voraussichtlich die hier offenbarten Verfahren verwenden werden, müssen mehrere bestehende Bildverarbeitungsprozesse in der Lage sein, den Pfad wie oben beschrieben zu erzeugen. Beispielsweise werden die Pfadpunkte in einem zweidimensionalen, Einzelbild-Bildverarbeitungsprozess mit einem festen Z-Abstand über der Kalibrierungsgitterebene auf eine Ebene projiziert. In einem Entpalletier-Bildverarbeitungsprozess werden die Pfadpunkte mit einem Z-Abstand auf eine Ebene projiziert, der durch einen Registerwert angegeben werden kann. In einem Bildverarbeitungsprozess mit beweglichem Rahmen werden die Pfadpunkte auf eine Ebene projiziert, die sich mit der Sichtposition einer robotermontierten Kamera mit bewegt. In einem dreidimensionalen Laser-Einzelbild-Bildverarbeitungsprozess misst zuerst ein Lasersensor die Ebene und dann werden die Pfadpunkte auf die gemessene Ebene projiziert. In einem dreidimensionalen Querschnitt-Bildverarbeitungsprozess baut ein Lasersensor ein Querschnittbild auf, in welchem die vertikale Koordinate einen Abstand entlang einer Laserlinie repräsentiert und die horizontale Koordinate den Z-Abstand zum Sensor repräsentiert, wobei ein Bildverarbeitungssystem die Punkte auf der Schwarz-Weiß-Grenze des Querschnittbilds findet und die X-, Y- und Z-Koordinaten entweder aller oder einer Teilmenge der Punkte zurückgibt, wo die Laserebene eine Oberfläche schneidet.
  • Bei manchen Ausführungsformen wird ein vorgeteachter Pfad von Prozessor 30 auf der Grundlage des erzeugten dreidimensionalen Pfads versetzt. Ein Benutzer kann einen gewünschten Pfad auf der Grundlage der Analyse des Bilds auswählen.
  • Sobald der dreidimensionale Pfad erzeugt ist, bewegt das Robotersystem 10 das Werkzeug 18 entlang des Pfads unter Verwendung der entscheidenden Merkmale zum Feststellen einer Stelle des Werkzeugs 18 entlang jedes Teilbereichs des Pfads, wie in Schritt 114 gezeigt. Insbesondere kann der erzeugte Pfad verwendet werden, um Bewegungsbefehle für den Mechanismus zum Verfolgen des Pfads zu erzeugen. Bei manchen Ausführungsformen kann das Bildverarbeitungssystem 26 Echtzeitaktualisierungen zu einer Position des Werkzeugs 18 relativ zum Werkstück 22 an die Steuereinheit liefern.
  • 3 illustriert einen dreidimensionalen Pfad 200, der gemäß dem Verfahren 100 erzeugt wurde. Wie dargestellt weist der Pfad 200 mehrere Knoten 202 auf, die über ein Werkstück 204 gelegt sind, wobei jeder der Knoten 202 einen entscheidenden Punkt entlang eines Merkmals des Werkstücks 204 repräsentiert. Ein „entscheidender Punkt“ wird auf der Grundlage vorbestimmter Einstellungen wie oben diskutiert ausgewählt. In einem nicht einschränkenden Beispiel repräsentiert der Pfad 200 eine tatsächliche Naht des Werkstücks 203, die mit einem Roboterbrenner zu schweißen ist. Wenn keine Beschneidewerkzeuge zum Ausschneiden des Werkstücks verwendet werden, ist eine ideale, konsistente und gerade Naht nicht immer möglich. Das Verfahren 100 bietet ein Mittel zum Erzeugen des Pfads 200, das die inkonsistenten Merkmale des Werkstücks 204 für eine auf diesem auszuführende, genauere Operation identifiziert und nachverfolgt. Wie in gezeigt, kann ein Werkzeug wie etwa ein Schweißbrenner entlang des Pfads 200 verfolgt werden, um eine Schweißnaht 206 auf einem Bereich des Werkstücks 204 aufzubringen. Eine Rückmelde-Position des Brenners kann auf der Grundlage einer relativen Nachverfolgung des Brenners von einem Knoten 202 zu einem anderen ermittelt werden.
  • 5-6 illustrierten ein Verfahren 300 zum Steuern des Robotersystems 10 gemäß der vorliegenden Erfindung. In einem nicht einschränkenden Beispiel wird das Verfahren 300 zum Nachverfolgen einer per Hand gezeichneten Linie auf einem geometrisch komplexen Bauteil verwendet.
  • In Schritt 302 wird das Werkzeug 18 auf dem beweglichen Arm 16 des Robotersystems 10 angeordnet. In Schritt 304 wird das Werkstück 22 auf dem Träger 24 angeordnet. Wie in Schritt 306 gezeigt, wird auf das Werkstück 22 eine Führungslinie aufgebracht. Typischerweise wird die Führungslinie auf dem Werkstück 22 per Hand gezeichnet. Jedoch können jegliche Mittel für das Aufbringen der Führungslinie verwendet werden.
  • In Schritt 308 werden Daten bezüglich eines Merkmals des Werkstücks 22 erhalten. Bei manchen Ausführungsformen erzeugt das Bildverarbeitungssystem 26 ein Bild des Werkstücks 22. In einem nicht einschränkenden Beispiel ist das Bild ein zweidimensionales Bild. Jedoch können andere Bilder erzeugt werden. Das Bild wird an die Steuereinheit 20 zum Extrahieren von Informationen bezüglich eines/einer in dem Bild verkörperten entscheidenden Merkmals oder Kante übertragen. In anderen Ausführungsbeispielen werden die Daten bezüglich eines Merkmals des Werkstücks aus einer computerunterstützten Zeichnung eines idealen Teils extrahiert.
  • In Schritt 310 wird das Bildverarbeitungssystem 26 zum Lokalisieren des Werkstücks 22 verwendet. Der Prozessor 30 erzeugt aus wenigstens einer der extrahierten Daten bezüglich eines Merkmals des Werkstücks und einer relativen Position des Werkstücks 22 einen idealen Pfad für das Werkzeug 18 entlang des Werkstücks 18, wie in Schritt 312 gezeigt. In Schritt 314 wird das Werkzeug zunächst entlang wenigstens eines Teils des idealen Pfads bewegt. In Schritt 316 wird das Bildverarbeitungssystem 26 zum Lokalisieren der Führungslinie und Einstellen einer Position des Werkzeugs 18 zum Folgen der Führungslinie verwendet.
  • Das Verfahren 300 wird weiter erläutert, wenn man das einfache Diagramm in 6 studiert. Wie gezeigt, stellt eine obere durchgezogene Linie 400 den erzeugten idealen Pfad dar. Eine mittige gestrichelte Linie 402 stellt die tatsächliche Position des Werkstücks 22 dar, wobei ein Rahmen um zwei Punkte verschoben wird. Es wird davon ausgegangen, dass alle Zwischenpunkte gemäß dieser neuen Beziehung verschoben werden. Eine untere gepunktete Linie 404 stellt die Position der gezeichneten Führungslinie auf dem Werkstück 22 dar. Alle zuvor erstellen Punktdaten bleiben erhalten, mit Ausnahme der Y-Position (Abweichung) der Linie.
  • In einem nicht einschränkenden Beispiel werden drei funktionale Anwendungsgruppen benötigt, um das Verfahren 300 zu ermöglichen: 1) ein Teilpositionsreferenzrahmen wird auf der Grundlage eines Paars von dreidimensionalen Punkten verschoben, die mittels des automatischen Bilderzeugungssystems 26 aufgefunden werden (d. h. A_CREATE_FRAME), wobei Segmentstart- und -endpunkte in einem Roboterkoordinatenraum aufgefunden werden und trigonometrische Funktionen die Start-/Endpunkte verwenden, um einen neuen Rahmen zu definieren, der die räumliche Beziehung zwischen dem tatsächlichen Werkstück 22 und einem Model davon berichtigt; 2) Daten einer computerunterstützten Zeichnung (CAD) werden erzeugt, die eine Abfolge von Punkten enthalten, die den idealen Pfad und den Werkzeugwinkel entlang des erzeugten Rahmens kennzeichnen (d. h. A_EMULATE_CAD), wobei wenigstens einer von mehreren Pfadpunkten für ein aktives Segment mit X-, Y- und Z-Punkten aufgezeichnet wird, die mit einer festen Neigung abgetastet wurden, das Bilderzeugungssystem 26 wird in einer festen Lage platziert, um die gezeichnete Führungslinie zu sehen, und eine geeignete Werkzeugschneideinformation (Rollwinkel, Nickwinkel, Gierwinkel, Höhe) wird bereitgestellt; und 3) die Führungslinie wird „verfolgt“; während das Werkzeug 18 durch die Positionen bewegt wird und lediglich die Y-Position wird verändert, welche der gefundenen Linie entspricht (d. h. A_MOVING_LINE_TRACK), wobei eine gleichmäßige Bewegung das Auffinden der Linienposition durch einen Aufruf des Bildverarbeitungsprogramms „on the fly“ erfordert.
  • Bei manchen Ausführungsformen erzeugt ein A_CREATE_FRAME.TP-Programm eine neue Rahmenreferenz, die die Position der Nachfolgeroutine führen wird. In einem nicht einschränkenden Beispiel wird ein iRVision® 3DL-System, hergestellt von FANUC Robotics America, Inc., verwendet, um die Start- und Stopppositionen bezüglich X, Y und Z aufzufinden. Ein Bildverarbeitungsprogramm lokalisiert die Startposition. Dann gibt es eine Bewegung zu der aufgefundenen Position und ein Verfeinern der Position, während die Z-Höhe extrahiert wird. Dieser Vorgang erfolgt für die Endposition nochmals. Eine trigonometrische Funktion erzeugt einen Rahmen aus zwei Punkten; dem Ursprung und dem X-Achsen-Punkt. Der neue Rahmen wird in einer Ebene durch O bis X gebildet und der Benutzerrahmen Z-Achse wird vererbt. Zusammenfassend betrachtet das A_CREATE_FRAME.TP-Programm einen Abschnitt des Werkstücks 22, und erzeugt einen Rahmen, der am Start (0, 0, 0) und am Ende (X, 0, 0) ist. Die eingehenden beschreibenden Teildaten werden an diesen Rahmen normalisiert, und einzelne Pfadpunkte und Werkzeugwinkel weichen von dieser Linie (Rahmen) ab.
  • Bei manchen Ausführungsformen erzeugt ein A_EMULATE_CAD.TP-Programm simulierte CAD-Daten für das Werkstück 22 unter Verwendung eines iRVision® „Querschnitt-Analyse-Werkzeugs“. Insbesondere werden einzelnen Punkte in Bezug auf einen Rahmen (normalisiert an die Start- und Endpunkte des derzeitigen Abschnitts) in X, Y und Z extrahiert.
  • Das A_EMULATE_CAD.TP-Programm lokalisiert den Beginn des Abschnitts und bewegt dann eine 3D-Kamera an den Startpunkt. Ein Querschnitt-Programm extrahiert X-, Y- und Z-Position des Profils der Laserlinie, und findet die gewünschte geometrische Beziehung oder Anbindung auf. Alle Punkte werden gespeichert, und Zähler werden verwendet, um den Überblick zu behalten, wie viele Intervalle in diesem Abschnitt enthalten sind. Sobald die Laserprofilposition aufgefunden ist, wird das Werkzeug eine bestimmte Schrittweite voran bewegt, bevor der nächste Querschnitt eingehend geprüft wird.
  • Zusammenfassend erzeugt das A_EMULATE_CAD.TP-Programm Datenpunkte relativ zum Referenzrahmen, die X, Y und Z und Werkzeugwerte W, P, R beinhalten, um das Merkmalssegmentdatenformat zu simulieren, das gleichartig zu den Daten ist, die von dem CAD-Zu-Pfad-Merkmal im FANUC® RoboGuide-Programm erzeugt werden. Die Punktedaten werden verwendet, um nur unter Änderung des Y-Werts (basierend darauf, wo die Bildverarbeitung die per Hand gesetzte Führungslinie auffindet) einen idealen Pfad zu erzeugen.
  • Bei manchen Ausführungsformen extrahiert ein A_MOVING_LINE_TRACK-Programm Punkte von CAD-Daten, die relativ zum derzeitigen Abschnitt normalisiert werden. Das A_MOVING_LINE_TRACK-Programm lädt zunächst die Startposition und positioniert das Bildverarbeitungssystem 26 über einem Grat, um die Position der gezeichneten Linie zu erkennen. Das Bildverarbeitungssystem 26 wird dann in einer festen Höhe über dem nächsten Führungsliniensegment positioniert. Ein automatisches Bildverarbeitungsprogramm läuft im Hintergrund, um die tatsächliche Position der Führungslinie zu ermitteln. Die gefundene Position der Führungslinie wird zum Aktualisieren einer Position des Arms 16 und Werkzeugs 18 relativ zum Werkstück 22 verwendet, indem dem Werkzeug nur ein Verschieben in eine Richtung erlaubt wird. Auf diese Weise kann die Führungslinie nachverfolgt werden, während gleichzeitig das Werkzeug 18 bewegt und seine Position aktualisiert wird. Zusammenfassend verwendet das A_MOVING_LINE_TRACK-Programm einen Grundstock an Punkten, um einem idealen Pfad zu folgen. Das Bildverarbeitungssystem 26 aktualisiert die Pfadpositionen (nur Y-Wert), während sich das Werkzeug 18 über alle Punkte bewegt.
  • Das Robotersystem 10 und die Verfahren 100, 300 stellen Mittel für das Steuern des Roboterwerkzeugs 18 durch Synthetisieren eines Roboterprogramms vollständig aus von einem Bild des Werkstücks 22 extrahierten Informationen und Roboterkalibrierungsdaten bereit. Die Verfahren können für unterschiedliche Roboterwerkzeuge und Arbeitsgänge eingesetzt werden.

Claims (20)

  1. Ein Verfahren zum Steuern eines Robotersystems, das Verfahren die Schritte umfassend: a. Bereitstellen eines Werkzeugs, gehalten durch einen beweglichen Mechanismus des Robotersystems; b. Bereitstellen eines Werkstücks, gehalten durch einen Träger; c. Erzeugen eines Bilds des Werkstücks; d. Extrahieren von Daten aus dem Bild, die ein Merkmal des Werkstücks definieren; e. Erzeugen eines durchgängigen dreidimensionalen Pfads entlang des Werkstücks, wobei der Pfad dem Merkmal folgt, welches durch die extrahierten Daten aus dem Bild definiert wurde; und f. Bewegen des Werkzeugs entlang des Pfads.
  2. Das Verfahren gemäß Anspruch 1, wobei das Bild ein zweidimensionales Bild ist.
  3. Das Verfahren gemäß Anspruch 1, wobei das Bild von einem dreidimensionalen Bildverarbeitungssensor erzeugt wird.
  4. Das Verfahren gemäß Anspruch 2, weiter umfassend den Schritt des Bereitstellens von Bildpunkten, die dreidimensionale Daten bilden, die nicht ohne weiteres in dem zweidimensionalen Bild detektierbar sind.
  5. Das Verfahren gemäß Anspruch 2, weiter umfassend den Schritt des Bereitstellens eines sekundären Modells einer dritten Dimension des Werkstücks, die mit Vorwissen einer erwarteten Geometrie des Werkstücks nicht ohne weiteres detektierbar ist.
  6. Das Verfahren gemäß Anspruch 1, weiter umfassend den Schritt des manuellen Teachens eines Punkts auf dem Pfad.
  7. Das Verfahren gemäß Anspruch 1, wobei der erzeugte Pfad zum Erzeugen von Bewegungsbefehlen für den Mechanismus verwendet wird, um den Pfad zu verfolgen.
  8. Das Verfahren gemäß Anspruch 1, weiter umfassend den Schritt des Versetzens eines vorgegebenen Pfads basierend auf wenigstens einer der aus dem Bild extrahierten Daten und dem erzeugten Pfad.
  9. Das Verfahren gemäß Anspruch 1, wobei der Pfad über das Merkmal des Werkstücks gelegt wird.
  10. Das Verfahren gemäß Anspruch 1, weiter umfassend den Schritt des Filterns der aus dem Bild extrahierten Daten.
  11. Das Verfahren gemäß Anspruch 10, wobei der Schritt des Filterns der Daten auf wenigstens einem Kontrastgrenzwert, einer Maximalabweichung und/oder einem Punktabstand basiert.
  12. Ein Verfahren zum Steuern eines Robotersystems, das Verfahren umfassend die Schritte: a. Bereitstellen eines Werkzeugs, gehalten durch einen beweglichen Mechanismus des Robotersystems; b. Bereitstellen eines Werkstücks, gehalten durch einen Träger; c. Kalibrieren des beweglichen Mechanismus auf den Träger; d. Erzeugen eines Bilds des Werkstücks; e. Extrahieren von Daten aus dem Bild, die ein Merkmal des Werkstücks definieren; f. Zuweisen eines Knotens an jeden von mehreren Punkten entlang des Merkmals des Werkstücks mittels aus dem Bild extrahierter Daten und Daten der Kalibrierung des beweglichen Mechanismus; g. Erzeugen eines durchgängigen dreidimensionalen Pfads entlang des Werkstücks, wobei der Pfad dem Merkmal folgt, welches durch die extrahierten Daten aus dem Bild definiert wurde; und h. Bewegen des Werkzeugs entlang des Pfads.
  13. Das Verfahren gemäß Anspruch 12, wobei das Bild von einem dreidimensionalen Bildverarbeitungssensor erzeugt wird.
  14. Das Verfahren gemäß Anspruch 12, weiter umfassend den Schritt des Bereitstellens eines sekundären Modells einer dritten Dimension des Werkstücks, die mit Vorwissen einer erwarteten Geometrie des Werkstücks nicht ohne weiteres detektierbar ist.
  15. Das Verfahren gemäß Anspruch 12, weiter umfassend den Schritt des manuellen Teachens eines Punkts auf dem Pfad.
  16. Das Verfahren gemäß Anspruch 12, wobei der erzeugte Pfad zum Erzeugen von Bewegungsbefehlen für den Mechanismus verwendet wird, um den Pfad zu verfolgen.
  17. Das Verfahren gemäß Anspruch 12, wobei sich auf jeden Knoten beziehende Daten wenigstens einen Betrag eines Gradienten, eine Länge des Merkmals, mit dem der Knoten verknüpft ist; eine numerische Identifikation einer Kette verknüpfter Knoten, und/oder eine Position des Knotens in einem vordefinierten Koordinatensystem.
  18. Ein Verfahren zum Steuern eines Robotersystems, das Verfahren umfassend die Schritte: a. Bereitstellen eines Werkzeugs; b. Bereitstellen eines Werkstücks; c. Anwenden einer Führungslinie auf das Werkstück; d. Extrahieren von Daten aus einem Bild des Werkstücks, die ein Merkmal des Werkstücks definieren; e. Lokalisieren des Werkstücks; f. Erzeugen eines idealen dreidimensionalen Pfads des Werkzeugs entlang des Werkstücks, wobei der Pfad dem Merkmal folgt, welches durch die extrahierten Daten aus dem Bild definiert wurde; g. Bewegen des Werkzeugs entlang wenigstens eines Teils des idealen Pfads; und h. Einstellen einer Position des Werkzeugs, um der Führungslinie zur folgen.
  19. Das Verfahren gemäß Anspruch 18, wobei der Schritt des Lokalisierens des Werkstücks von einem Bildbearbeitungssystem ausgeführt wird.
  20. Das Verfahren gemäß Anspruch 18, wobei die Daten bezüglich des Merkmals des Werkstücks aus computerunterstützten Zeichnungsdaten für einen idealen Teil extrahiert werden.
DE112010000794.2T 2009-02-03 2010-02-03 Verfahren zum Steuern eines Roboterwerkzeuges Active DE112010000794B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14944309P 2009-02-03 2009-02-03
US61/149,443 2009-02-03
PCT/US2010/023053 WO2010091086A1 (en) 2009-02-03 2010-02-03 Method of controlling a robotic tool

Publications (3)

Publication Number Publication Date
DE112010000794T5 DE112010000794T5 (de) 2012-07-05
DE112010000794T8 DE112010000794T8 (de) 2012-09-06
DE112010000794B4 true DE112010000794B4 (de) 2019-04-25

Family

ID=42542365

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010000794.2T Active DE112010000794B4 (de) 2009-02-03 2010-02-03 Verfahren zum Steuern eines Roboterwerkzeuges

Country Status (5)

Country Link
US (1) US8706300B2 (de)
JP (2) JP5981143B2 (de)
CN (2) CN106994684B (de)
DE (1) DE112010000794B4 (de)
WO (1) WO2010091086A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020104362A1 (de) 2020-02-19 2021-08-19 Franka Emika Gmbh Bahnplanung für einen Robotermanipulator mittels Kamerabild
US11656597B2 (en) 2020-12-07 2023-05-23 Industrial Technology Research Institute Method and system for recognizing deburring trajectory
US12220806B2 (en) 2020-02-21 2025-02-11 Fanuc Corporation Deburring device and control system
DE102024123356B3 (de) * 2024-08-15 2025-05-22 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Entgratungsverfahren, maschinenlesbares Speichermedium und Entgratungssystem

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10361018C9 (de) * 2003-12-23 2021-03-04 QUISS Qualitäts-Inspektionssysteme und Service GmbH Verfahren zum Erkennen einer auf einem Substrat aufzubringenden Struktur mit mehreren Kameras sowie eine Vorrichtung hierfür
DE102007060653A1 (de) * 2007-12-15 2009-06-18 Abb Ag Positionsermittlung eines Objektes
US20110295408A1 (en) * 2010-05-27 2011-12-01 Toyota Motor Engineering & Manufacturing North America, Inc. Process for positioning a workpiece
GB201009219D0 (en) * 2010-06-02 2010-07-21 Airbus Operations Ltd Aircraft component manufacturing method and apparatus
JP2012223839A (ja) * 2011-04-15 2012-11-15 Yaskawa Electric Corp ロボットシステムおよびロボットシステムの駆動方法
US9026242B2 (en) * 2011-05-19 2015-05-05 Taktia Llc Automatically guided tools
US20120306443A1 (en) * 2011-06-03 2012-12-06 GM Global Technology Operations LLC Automated charging for vehicle energy storage systems
TWI520834B (zh) * 2011-12-27 2016-02-11 財團法人金屬工業研究發展中心 異型材成型機構
JP6301314B2 (ja) 2012-04-26 2018-03-28 シェイパー ツールズ, インク.Shaper Tools, Inc. 材料に作業を実行するため又は材料の表面に対する装置の位置を特定するためのシステム及び方法
EP2842104B1 (de) * 2012-05-14 2016-10-19 Omron Corporation Verfahren und vorrichtung zur gewährleistung eines mindestkontrastes für ein maschinenvisionssystem
US20140000516A1 (en) * 2012-06-29 2014-01-02 Toyota Motor Engineering & Manufacturing North America, Inc. Digital point marking transfer
JP5664629B2 (ja) * 2012-10-19 2015-02-04 株式会社安川電機 ロボットシステムおよび加工品の製造方法
US10427300B2 (en) * 2012-12-10 2019-10-01 Abb Schweiz Ag Robot program generation for robotic processes
CN103963198A (zh) * 2013-01-31 2014-08-06 汉达精密电子(昆山)有限公司 自动赶毛边装置
US9056396B1 (en) * 2013-03-05 2015-06-16 Autofuss Programming of a robotic arm using a motion capture system
JP5845212B2 (ja) 2013-06-28 2016-01-20 ファナック株式会社 視覚センサ及び力センサを備えたバリ取り装置
KR101459479B1 (ko) 2013-07-01 2014-11-07 현대자동차 주식회사 올인원 지그리스 프로젝션 로딩 시스템 및 이를 이용한 차체 부품 조립 방법
US9616574B2 (en) * 2013-08-20 2017-04-11 Honda Motor Co., Ltd. Plasma-sealant wobble paddle
US20150073584A1 (en) * 2013-09-10 2015-03-12 Andrew Goodale Wireless vision systems and methods for use in harsh environments
US9701018B2 (en) 2014-04-01 2017-07-11 Bot & Dolly, Llc Software interface for authoring robotic manufacturing process
CN104526117A (zh) * 2015-01-08 2015-04-22 中国二十二冶集团有限公司 移动式弧焊机器人及其控制系统
GB2536434A (en) * 2015-03-16 2016-09-21 Sony Corp A cutting device, cutting equipment and method
NL2014637B1 (nl) * 2015-04-14 2016-12-16 Rijk Zwaan Zaadteelt En Zaadhandel Bv Systeem en werkwijze voor het zaaien van zaden.
US9919421B2 (en) 2015-04-15 2018-03-20 Abb Schweiz Ag Method and apparatus for robot path teaching
WO2016183390A1 (en) 2015-05-13 2016-11-17 Taktia Llc Systems, methods and apparatus for guided tools
JP6267157B2 (ja) * 2015-05-29 2018-01-24 ファナック株式会社 位置補正機能を有するロボットを備えた生産システム
US10987693B2 (en) * 2015-08-18 2021-04-27 The Boeing Company Sealant application tip
WO2017064851A1 (ja) * 2015-10-14 2017-04-20 川崎重工業株式会社 ロボット教示方法及びロボットアーム制御装置
US9737987B1 (en) 2015-11-20 2017-08-22 X Development Llc Visual cards for describing and loading operational modes to motorized interface element
TWI641933B (zh) * 2016-01-15 2018-11-21 施教競 Processing method of processing machine
JP6530568B2 (ja) * 2016-02-19 2019-06-12 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 身体の一部分を処理するシステム及び方法
JP6602688B2 (ja) * 2016-02-22 2019-11-06 株式会社東芝 軌道データ生成装置および軌道データ生成方法
CN108701430B (zh) * 2016-03-28 2020-12-01 Abb瑞士股份有限公司 确定用于焊缝点校准的搜索参数的方法、系统和装置
US10384353B2 (en) * 2016-05-16 2019-08-20 Kurion, Inc. System and method for a robotic manipulator system
EP4375773A3 (de) 2016-08-19 2024-07-17 Shaper Tools, Inc. Systeme, verfahren und vorrichtung zur gemeinsamen nutzung von werkzeugherstellungs- und -entwurfsdaten
DE102016221734A1 (de) * 2016-11-07 2018-05-09 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Verfahren zur Feinausrichtung von Roboterwerkzeugen
US10545480B2 (en) 2016-11-07 2020-01-28 Lincoln Global, Inc. System and method for manufacturing and control thereof
JP6457468B2 (ja) * 2016-12-08 2019-01-23 ファナック株式会社 バリ取り装置
CN106804685A (zh) * 2017-01-19 2017-06-09 大连理工大学 一种机器人智能家畜剖切的装置及方法
JP6392922B1 (ja) * 2017-03-21 2018-09-19 ファナック株式会社 検査システムの検査対象外となる領域を算出する装置、および検査対象外となる領域を算出する方法
WO2018183904A1 (en) * 2017-03-31 2018-10-04 Canvas Construction, Inc. Automated drywall mudding system and method
CN107138861B (zh) 2017-06-15 2019-01-04 京东方科技集团股份有限公司 一种激光切割设备及控制方法和控制装置
JP6637928B2 (ja) * 2017-06-21 2020-01-29 株式会社大気社 自動研磨システム
TWI650626B (zh) * 2017-08-15 2019-02-11 由田新技股份有限公司 基於三維影像之機械手臂加工方法及系統
US11338441B2 (en) * 2017-12-01 2022-05-24 Delta Electronics, Inc. Calibration system for robot tool and calibration method for the same
CN113059559B (zh) * 2020-01-02 2022-07-12 台达电子工业股份有限公司 机器人工具的校正方法与校正系统
DE102017011252A1 (de) * 2017-12-06 2019-06-06 Kuka Deutschland Gmbh Verfahren und System zur Bauteilbearbeitung durch Roboter
GB201804215D0 (en) * 2018-03-16 2018-05-02 Rolls Royce Plc Applying a cladding layer to a component
JP7035727B2 (ja) * 2018-03-30 2022-03-15 日本電産株式会社 キャリブレーション精度の評価方法及び評価装置
DE102018113122A1 (de) * 2018-06-01 2019-12-05 Mack Rides Gmbh & Co Kg Verfahren zum Facettieren sowie Vorrichtung für ein solches Verfahren
CN108972573A (zh) * 2018-06-12 2018-12-11 浙江大学 一种基于图像特征识别的工业机器人自动化轮毂打磨系统及方法
CN109048917B (zh) * 2018-09-12 2021-06-29 南方电网电力科技股份有限公司 机器人自动控制方法、装置、设备及计算机可读存储介质
US11897141B2 (en) * 2018-11-19 2024-02-13 Palletec, Llc Automated fastening system
CN109605381A (zh) * 2019-01-29 2019-04-12 欧米瑞(广东)智能制造有限公司 一种三维定位取料系统及取料方法
CN111645176B (zh) * 2019-03-04 2024-12-20 唐山贺祥智能科技股份有限公司 坐便器座圈自动涂泥系统
US10399227B1 (en) 2019-03-29 2019-09-03 Mujin, Inc. Method and control system for verifying and updating camera calibration for robot control
US10906184B2 (en) 2019-03-29 2021-02-02 Mujin, Inc. Method and control system for verifying and updating camera calibration for robot control
NL2022872B1 (en) * 2019-04-05 2020-10-08 Voortman Steel Machinery Holding B V A method for automatic welding of a structural steel assembly and an automatic welding system for welding of a structural steel assembly
EP3730256A1 (de) * 2019-04-26 2020-10-28 Prophesee Servosteuerungsverfahren und system zur steuerung der bewegung eines roboters
KR102130617B1 (ko) * 2019-05-13 2020-07-06 주식회사 하나비전테크 로봇 위치 제어 장치 및 방법
US11014237B2 (en) * 2019-07-11 2021-05-25 Intelligrated Headquarters, Llc Methods, systems, and apparatuses, for path planning and execution in a robotic system
GB2589418A (en) * 2019-08-09 2021-06-02 Quantum Leap Tech Limited Fabric maintenance system and method of use
US20220371196A1 (en) * 2019-09-30 2022-11-24 Siemens Ltd., China Method, Device and System for Controlling Robot, Storage Medium and Terminal
JP7342617B2 (ja) * 2019-10-30 2023-09-12 富士電機株式会社 バリ取り装置
CN110744546B (zh) * 2019-11-01 2022-06-07 云南电网有限责任公司电力科学研究院 一种缺陷修复机器人抓取非静止导线的方法及系统
US20220410394A1 (en) * 2019-12-09 2022-12-29 Augmentus Pte. Ltd. Method and system for programming a robot
CN111347423B (zh) * 2020-01-19 2022-08-05 天津大学 工业机器人传送带动态跟踪涂胶方法
JP6903777B1 (ja) 2020-01-24 2021-07-14 株式会社大気社 自動ティーチングシステム
JP7462290B2 (ja) * 2020-02-05 2024-04-05 株式会社エヌテック 箱開封装置及び箱開封方法
TWI746080B (zh) * 2020-04-29 2021-11-11 雙鴻科技股份有限公司 扣具及使用此扣具之散熱模組
CN111846028A (zh) * 2020-06-17 2020-10-30 长沙长泰机器人有限公司 汽车挡风玻璃柔性装配系统及方法
US12290932B2 (en) * 2020-07-10 2025-05-06 Fanuc Corporation Trajectory generation device and automatic position control device
FR3112502B1 (fr) 2020-07-16 2022-06-24 Inbolt Contrôle automatique d’un système d’ébavurage de pièces
WO2022204799A1 (en) * 2021-03-29 2022-10-06 Poly-Robotics Inc. System for welding at least a portion of a piece and related methods
JP7190552B1 (ja) * 2021-11-05 2022-12-15 株式会社ダイヘン ロボット教示システム
TWI809705B (zh) 2022-02-09 2023-07-21 財團法人工業技術研究院 加工路徑產生方法及裝置
JP2023176951A (ja) * 2022-06-01 2023-12-13 リンクウィズ株式会社 作業経路生成システムおよび作業経路生成方法
CN115351448A (zh) * 2022-08-10 2022-11-18 北斗启明(北京)节能科技服务有限公司 一种新型可视自动化焊接技术

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616121A (en) 1982-11-01 1986-10-07 National Research Development Corporation Automatic welding with imaging of workpiece surfaces and of the junction between the surfaces
US4812614A (en) * 1987-02-26 1989-03-14 Industrial Technology Research Institute Machine vision seam tracking method and apparatus for welding robots
US4965499A (en) 1987-12-31 1990-10-23 Westinghouse Electric Corp Parametric path modeling for an optical automatic seam tracker and real time robotic control system
US5572103A (en) 1993-09-14 1996-11-05 Fanuc, Ltd. Robot teaching program correction method
US5959425A (en) 1998-10-15 1999-09-28 Fanuc Robotics North America, Inc. Vision guided automatic robotic path teaching method
US6816755B2 (en) 2002-01-31 2004-11-09 Braintech Canada, Inc. Method and apparatus for single camera 3D vision guided robotics
DE10361018A1 (de) 2003-12-23 2005-07-28 Quiss Gmbh Verfahren zum Erkennen einer auf einem Substrat aufzubringenden Struktur mit mehreren Kameras sowie eine Vorrichtung hierfür
DE60127644T2 (de) 2000-12-07 2007-07-19 Fanuc Ltd. Lehrvorrichtung für einen Roboter
US20080027580A1 (en) 2006-07-28 2008-01-31 Hui Zhang Robot programming method and apparatus with both vision and force
DE602006000648T2 (de) 2005-10-12 2009-03-26 Fanuc Ltd. Offline-Lehrgerät für einen Roboter

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4724302A (en) 1987-03-30 1988-02-09 General Electric Company Bead process control with profiler
US4907169A (en) * 1987-09-30 1990-03-06 International Technical Associates Adaptive tracking vision and guidance system
DD290838A5 (de) 1989-12-27 1991-06-13 Technische Hochschule Zwickau,De Verfahren zur steuerung der lage einer bahnkontur
JP3543329B2 (ja) * 1991-11-11 2004-07-14 豊田工機株式会社 ロボットの教示装置
DE69314688T2 (de) 1992-04-23 1998-02-19 Heidenhain Gmbh Dr Johannes Numerische Steuerungseinrichtung und Verfahren zur Steuerung der Bewegung eines Werkzeuges
JPH05301182A (ja) * 1992-04-27 1993-11-16 Nippon Telegr & Teleph Corp <Ntt> ロボットの直接教示装置
US5372540A (en) 1993-07-13 1994-12-13 The Laitram Corporation Robot cutting system
JPH09222913A (ja) * 1996-02-20 1997-08-26 Komatsu Ltd ロボットの教示位置補正装置
USRE40176E1 (en) * 1996-05-15 2008-03-25 Northwestern University Apparatus and method for planning a stereotactic surgical procedure using coordinated fluoroscopy
JPH11102209A (ja) * 1997-09-26 1999-04-13 Sekisui Chem Co Ltd ワークの教示点位置データ収集方法及び収集装置
DE10157964B4 (de) * 2001-11-26 2011-06-22 Siemens AG, 80333 Verfahren zur Optimierung einer Oberflächengüte eines zu fertigenden Werkstücks anhand von CNC-Programmdaten
JP2005515910A (ja) * 2002-01-31 2005-06-02 ブレインテック カナダ インコーポレイテッド シングルカメラ3dビジョンガイドロボティクスの方法および装置
CN1418761A (zh) * 2002-12-10 2003-05-21 北京航空航天大学 面向生物医学工程的微操作机器人系统
JP3950805B2 (ja) * 2003-02-27 2007-08-01 ファナック株式会社 教示位置修正装置
JP3733364B2 (ja) 2003-11-18 2006-01-11 ファナック株式会社 教示位置修正方法
DE102005061211B4 (de) 2004-12-22 2023-04-06 Abb Schweiz Ag Verfahren zum Erzeugen einer Mensch-Maschine-Benutzer-Oberfläche
CN100561491C (zh) 2005-02-25 2009-11-18 Abb研究有限公司 自动路径学习的方法和设备
DE102007033309A1 (de) 2007-07-18 2009-01-22 Abb Ag Verfahren zum Bearbeiten einer Kontur an wenigstens einem Werkstück mittels eines Roboters

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616121A (en) 1982-11-01 1986-10-07 National Research Development Corporation Automatic welding with imaging of workpiece surfaces and of the junction between the surfaces
US4812614A (en) * 1987-02-26 1989-03-14 Industrial Technology Research Institute Machine vision seam tracking method and apparatus for welding robots
US4965499A (en) 1987-12-31 1990-10-23 Westinghouse Electric Corp Parametric path modeling for an optical automatic seam tracker and real time robotic control system
US5572103A (en) 1993-09-14 1996-11-05 Fanuc, Ltd. Robot teaching program correction method
US5959425A (en) 1998-10-15 1999-09-28 Fanuc Robotics North America, Inc. Vision guided automatic robotic path teaching method
DE60127644T2 (de) 2000-12-07 2007-07-19 Fanuc Ltd. Lehrvorrichtung für einen Roboter
US6816755B2 (en) 2002-01-31 2004-11-09 Braintech Canada, Inc. Method and apparatus for single camera 3D vision guided robotics
DE10361018A1 (de) 2003-12-23 2005-07-28 Quiss Gmbh Verfahren zum Erkennen einer auf einem Substrat aufzubringenden Struktur mit mehreren Kameras sowie eine Vorrichtung hierfür
DE602006000648T2 (de) 2005-10-12 2009-03-26 Fanuc Ltd. Offline-Lehrgerät für einen Roboter
US20080027580A1 (en) 2006-07-28 2008-01-31 Hui Zhang Robot programming method and apparatus with both vision and force

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020104362A1 (de) 2020-02-19 2021-08-19 Franka Emika Gmbh Bahnplanung für einen Robotermanipulator mittels Kamerabild
DE102020104362B4 (de) 2020-02-19 2022-04-14 Franka Emika Gmbh Bahnplanung für einen Robotermanipulator mittels Kamerabild
US12220806B2 (en) 2020-02-21 2025-02-11 Fanuc Corporation Deburring device and control system
DE112021001173B4 (de) 2020-02-21 2025-03-13 Fanuc Corporation Entgratungsvorrichtung und Steuerungssystem
US11656597B2 (en) 2020-12-07 2023-05-23 Industrial Technology Research Institute Method and system for recognizing deburring trajectory
DE102024123356B3 (de) * 2024-08-15 2025-05-22 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Entgratungsverfahren, maschinenlesbares Speichermedium und Entgratungssystem

Also Published As

Publication number Publication date
DE112010000794T5 (de) 2012-07-05
JP2015212012A (ja) 2015-11-26
DE112010000794T8 (de) 2012-09-06
CN106994684A (zh) 2017-08-01
US20110282492A1 (en) 2011-11-17
CN102378943A (zh) 2012-03-14
JP2012517053A (ja) 2012-07-26
JP5981143B2 (ja) 2016-08-31
US8706300B2 (en) 2014-04-22
CN106994684B (zh) 2021-04-09
WO2010091086A1 (en) 2010-08-12

Similar Documents

Publication Publication Date Title
DE112010000794B4 (de) Verfahren zum Steuern eines Roboterwerkzeuges
DE102015107436B4 (de) Lernfähige Bahnsteuerung
DE102014108956B4 (de) Vorrichtung zum Entgraten mit visuellem Sensor und Kraftsensor
DE60127644T2 (de) Lehrvorrichtung für einen Roboter
DE102015000587B4 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
DE102018112820B4 (de) Teach-Positionskorrekturvorrichtung und Teach-Positionskorrekturverfahren
EP3221094B1 (de) Verfahren und system zur korrektur einer bearbeitungsbahn eines robotergeführten werkzeugs
DE102015000589B4 (de) Datenerzeugungsvorrichtung für einen visuellen Sensor und ein Erfassungssimulationssystem
DE102015105687B4 (de) Roboter
DE102015012763B4 (de) Roboterlehrvorrichtung zum Einlernen eines Roboters offline
DE102007008598A1 (de) Automatische Programmierung von Robotern zum Abschweißen gehefteter Profile auf Mikropaneelen mit Hilfe digitaler Bilderfassung
DE3144843A1 (de) Verfahren zum betreiben eines als schweissroboter arbeitenden manipulators und dementsprechende steuerung
DE102013113165A1 (de) Kalibrierungsverfahren für Robotersystem
DE102013114707A1 (de) Verfahren zur Durchführung und Kontrolle eines Bearbeitungsschritts an einem Werkstück
EP2269783A1 (de) Kalibrierungsverfahren für ein Messsystem
DE102019125335B4 (de) Robotersteuervorrichtung zur Steuerung der Kreisbogenbewegung eines Roboters
DE102018107857A1 (de) Vorrichtung, System und Verfahren zur automatischen Erzeugung eines Bewegungspfads eines Roboters
EP2199036A2 (de) Verfahren und Vorrichtung zur Kompensation einer kinematischen Abweichung
DE102014101568A1 (de) Verfahren und Vorrichtung zum Laserschweißen oder -schneiden mit einem dynamisch anpassbaren Analysebereich
DE10351669A1 (de) Verfahren und Vorrichtung zum Steuern eines Handhabungsgeräts relativ zu einem Objekt
EP3528993A1 (de) Bild-basierte technologiewahl beim laserschweissen
EP2359202B1 (de) Verfahren und vorrichtung zur auswahl einer gespeicherten position eines arbeitspunktes eines manipulators
DE102018124208B4 (de) Verfahren und Vorrichtung zur Überwachung eines Laserbearbeitungsprozesses an einem Werkstück sowie dazugehöriges Laserbearbeitungssystem
DE102014100538B4 (de) Verfahren zum Kalibrieren eines Roboters und einer Kamera und System zum Durchführen des Verfahrens
DE112018007703C5 (de) Robotersteuerung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G05B0019230000

Ipc: B25J0009180000

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