-
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:
- 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.
-
Ein anderes Verfahren umfasst 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.
-
Ein noch anderes Verfahren umfasst 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 dem 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.
-
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.