-
Diese Anmeldung beansprucht Priorität auf die am 14. November 2012 eingereichte Vorläufige US-Patentanmeldung, Serien-Nr.
61/726 263 , deren vollständige Offenlegung hiermit durch Verweis an dieser Stelle entha22lten ist.
-
Diese Erfindung betrifft ein Verfahren zur Auswahl eines Lehrpunktprogramms, das einer Position ihres Roboterweges zugrunde gelegt ist, in einer durch einen Robotersimulator erzeugten, dreidimensionalen (3-D), grafischen Darstellung einer Bearbeitungsstation.
-
Bei einer Roboterlackieranwendung können Hunderte unterschiedlicher Lehrpunktprogramme (TP) auf mehrfachen Robotersteuereinheiten vorhanden sein, die mit dem Lackieren eines einzelnen Fahrzeugs beschäftigt sind. Zum Beispiel kann jedes TP Programm bewirken, dass eine an einem Roboterarm angeordnete Lackauftragsvorrichtung einem vorgegebenen Weg folgt und eine vorgegebene Ausrichtung annimmt, um den Anstrich genau auf dem Fahrzeug aufzubringen. Wenn es auf einem Fahrzeug einen Bereich gibt, der sich nicht genau lackieren lässt, kann das Auffinden des richtigen TP Programms, der dem TP Programm zugeordneten, richtigen, beigebrachten Punkte und der exakten Einsatzanweisungen zum genauen Lackieren des strittigen Bereiches speziell für Benutzer des Robotersystems, die keine Experten sind und die Lackieranwendung durchführen, sehr schwierig und zeitaufwändig sein. Dies ist in einer Produktionsumgebung sehr unwirtschaftlich.
-
Es sind rechnerunabhängig arbeitende, grafische Programmierlösungen entwickelt worden, um den Prozess zum Erlernen eines Roboterwegs zur Ausführung einer festgelegten Roboteranwendung, wie etwa die oben erörterte Lackieranwendung, zu vereinfachen. Solche Softwareprodukte erzeugen und zeigen einen dreidimensionalen Raum an, um einen darin durchzuführenden Prozess zu simulieren. Die Simulierung des Roboterprozesses kann das Erzeugen jedes dem Roboterprozess zugeordneten TP Programms innerhalb des dreidimensionalen Raums in Form eines dreidimensionalen Weges oder einer Linie, dem durch eine Roboterkomponente zu folgen ist, umfassen. Der erzeugte, dreidimensionale Weg kann einem Benutzer des Softwareprodukts optisch angezeigt werden, oder der dreidimensionale Weg kann ausgeblendet werden. Bei optischer Darstellung kann jedes TP Programm außerdem in Form aller der beigebrachten Punkte oder Knoten, die den dreidimensionalen Weg beinhalten, dargestellt werden. Weil der dreidimensionale Raum einem Benutzer des Softwareprodukts auf einem zweidimensionalen (2-D) Bildschirm gezeigt wird, sind solche Softwareprodukte oft mit einer Benutzerschnittstelle (UI) ausgestattet, die es einem Benutzer erlaubt, Position und Stellung zu verändern, von der aus der dreidimensionale Raum betrachtet wird, indem eine auf dem zweidimensionalen Bildschirm angezeigte „Kamerasicht“ effektiv verändert wird. Die auf dem zweidimensionalen Bildschirm dargestellte Kamerasicht ist im Wesentlichen eine zweidimensionale Projektion des dreidimensionalen Raums in der Form eines Bildes.
-
Eine einzelne Lackieranwendung kann den Einsatz mehrfacher Roboter umfassen, wobei jeder Roboter zur Durchführung von hunderten TP Programmen verantwortlich sein kann. Jedes TP Programm kann wiederum aus Hunderten von beigebrachten Punkte (Knoten) bestehen. Die hohe Anzahl von TP Programmen und zugeordneter, beigebrachter Punkte macht eine Anzeige grafischer Darstellungen jedes TP Programms unerwünscht. Das Erzeugen einer grafischen Darstellung jedes TP Programms und zugeordneter, beigebrachter Punkte ist zeitaufwändig und vom Standpunkt der Computerisierung her beschwerlich. Außerdem führt die hohe Anzahl von zum Programmieren einer einzelnen Roboteranwendung genutzten TP Programmen zu vielen TP Programmen und zugeordneten, beigebrachten Punkten, die als Überlappung oder in engem Abstand angeordnet dargestellt sind, was die Erkennung eines vorgegebenen TP Programms in einer Anzeige zunehmend erschwert. Aus diesen Gründen zeigen viele Softwareprodukte die grafische Darstellung jedes einzelnen TP Programms nicht an, wenn der Benutzer in dem die Bearbeitungsstation darstellenden, dreidimensionalen Raum navigiert. Stattdessen erfordern diese Softwareprodukte, dass der Benutzer erkennt, welche TP Programme grafisch darzustellen sind, bevor ein vorgegebenes TP Programm zur Editierung ausgewählt wird.
-
Um ein vorgegebenes TP Programm zu erkennen und auszuwählen, kann der Benutzer des Softwareprodukts die UI nutzen, um einen gewünschten Bereich des dreidimensionalen Raums mit dem darin dargestellten, vorgegebenen TP Programm innerhalb der Ansicht des zweidimensionalen Anzeigebildschirms einzuordnen. Der Benutzer verwendet dann einen Cursor zum Auswählen eines Bereiches des dreidimensionalen Raumes, der auf den zweidimensionalen Anzeigebildschirm projiziert wird, wo der vorgegebene TP Programmweg liegt oder angenommen wird, dass er sich dort befindet. Wenn zum Beispiel die Tür eines Fahrzeugs nicht richtig lackiert ist, würde der Benutzer im dreidimensionalen Raum navigieren, um die Fahrzeugtür innerhalb der Ansicht des zweidimensionalen Anzeigebildschirms anzuordnen. Der Benutzer „passt“ anschließend den Problembereich auf der Fahrzeugtür ein, wie es auf dem zweidimensionalen Anzeigebildschirm projiziert und dargestellt ist. Das „Einpassen“ des ausgewählten Bereiches wird normalerweise durchgeführt, indem ein rechteckiges Kästchen über den zweidimensionalen Anzeigebildschirm gezeichnet wird. Sobald auf dem zweidimensionalen Anzeigebildschirm ein Bereich ausgewählt ist, kann das Softwareprodukt dann jeden beigebrachten Punkt, der jedem in dem ausgewählten Bereich befindlichen TP Programmweg zugeordnet ist, erkennen und anzeigen. Die beigebrachten Punkte befinden sich im dreidimensionalen Raum und müssen auf den zweidimensionalen Anzeigebildschirm projiziert werden. Eine Berechnung wird vorgenommen, um die Punkte zu filtern und solche Punkte auszuwählen, die sich innerhalb des von dem Benutzer ausgewählten Bildschirmbereichs befinden.
-
Wie oben erläutert ist, kann die Anzahl beigebrachter Punkte, die die TP Programme innerhalb des ausgewählten Bereiches einschließen, bei Hunderten oder mehr liegen. Folglich kann die zum Erkennen und Anzeigen jedes beigebrachten Punktes innerhalb des ausgewählten Bereiches benötigte Zeit aufgrund der bloßen Anzahl benötigter Berechnungen unangemessen hoch sein. Darüber hinaus erzeugt das Anzeigen jedes beigebrachten Punkts, der sich innerhalb des ausgewählten Bereichs befindet, oftmals eine „Wolke“ von überlappenden oder eng beanstandeten, beigebrachten Punkten, was eine Erkennung eines spezifischen TP Programms oder beigebrachten Punktes sehr schwierig macht. Die übermäßige Anzahl Berechnungen, die zur Anzeige der beigebrachten Punkte auf diese Weise benötigt wird, hat dazu geführt, dass vorhandene Softwareprodukte auf das Erkennen eines einzelnen TP Programms gleichzeitig oder nur solcher TP Programme begrenzt ist, die einer ausgewählten Robotersteuereinheit zugeordnet sind. Andererseits würde der Benutzer unerwartete Verzögerungen kennen lernen, die zu einer übermäßigen Verteuerung, verloren gegangener Zeit und potenzieller Enttäuschung des Benutzers führen.
-
Aus der
DE 10 2010 032 917 A1 geht ein Verfahren zur Offline-Programmierung eins NC-gesteuerten Manipulators hervor, der im Arbeitsbetrieb mit seinem Tool-Center-Point mindestens eine reale Bewegungsbahn ggf. sensorgestützt abfährt.
-
Die
EP 2 024 143 B1 offenbart eine Vorrictung und ein Verfahren zum Bearbeiten eines Robotersteuerungsprogramms.
-
In der
US 6 597 967 B2 wird ein automatisiertes Fertigungssystem und ein System und Verfahren zur Planung einer Werkzeugbahn entlang einer konturierten Oberfläche eines Werkstücks in einer automatisierten Fertigungsanwendung beschrieben.
-
Aus der
US 2004 / 0 019 407 A1 geht ein Verfahren und die zugehörige Software zur Erzeugung von Roboterbewegungskoordinaten für eine Beschichtungsmaschine hervor.
-
Die
US 5 977 978 A bezieht sich auf die interaktive Erstellung von 3D-Szenen und Filmen mit Hilfe eines Computersystems.
-
Aus der
JP H11-296 571 A geht eine Interferenzkontrollvorrichtung sowie ein Programmaufzeichnungsmedium hierfür hervor.
-
Es wäre daher wünschenswert, ein Verfahren zum Auswählen eines TP Programms innerhalb eines von einem Robotersimulator erzeugten dreidimensionalen Raums bereitzustellen, das eine Benutzerschnittstelle vorsieht, die die Auswahl eines auf einen zweidimensionalen Anzeigebildschirm projizierten, spezifischen Bereiches in Betracht zieht, die in zügiger Weise solche TP Programme automatisch erkennt und auswählt, die dem auf dem zweidimensionalen Anzeigebildschirm gewählten Bereich zugeordnet sind, und die die Identifizierung und Auswahl mehrfacher TP Programme berücksichtigt, die für mehrfache, der Roboteranwendung zugeordnete Robotersteuereinheiten bestimmt sind.
-
In Übereinstimmung mit der vorliegenden Offenlegung wurde überraschend ein effizientes und kostengünstiges Verfahren zur Auswahl eines vorgegebenen TP Programms innerhalb eines durch einen Robotersimulator erzeugten dreidimensionalen Raums entdeckt.
-
Es wird ein Verfahren zur Lokalisierung von mindestens einem TP Programm zum Editieren gemäß der Erfindung gezeigt. Das Verfahren umfasst die Schritte: Erzeugen einer dreidimensionalen, grafischen Darstellung eines in einer Bearbeitungsstation durchzuführenden Roboterprozesses entsprechend zumindest eines der Bearbeitungsstation zugeordneten TP Programms; Auswählen eines zweidimensionalen Auswahlbereichs, der über die dreidimensionale, grafische Darstellung gelegt wird; Erkennen des zumindest einen, dem zweidimensionalen Auswahlbereich zugeordneten TP Programms für einen Benutzer; und Erlauben, dass der Benutzer wenigstens einen Teil des mindestens einen, dem zweidimensionalen Auswahlbereich zugeordneten, erkannten TP Programms editiert.
-
Ferner ist ein erfindungsgemäßes Verfahren zur Auswahl von mindestens einem TP Programm in einer dreidimensionalen, grafischen Darstellung einer Bearbeitungsstation offenbart. Das Verfahren umfasst die folgenden Schritte: Vorausberechnen eines dreidimensionalen Begrenzungsrahmens für jedes der TP Programme, die der Bearbeitungsstation zugeordnet sind, Umwandeln jedes der dreidimensionalen Begrenzungsrahmen in einen entsprechenden zweidimensionalen Begrenzungsbereich, der über die dreidimensionale, grafische Darstellung der Bearbeitungsstation gelegt wird; Auswählen eines zweidimensionalen Auswahlbereiches, der über die dreidimensionale, grafische Darstellung der Bearbeitungsstation gelegt wird; Erkennen jedes zweidimensionalen Begrenzungsbereiches, der sich mit dem zweidimensionalen Auswahlbereich überlappt und/oder innerhalb einer Entfernungstoleranz des zweidimensionalen Auswahlbereiches liegt; und Nachweisen für einen Benutzer, dass jedes TP Programm einen entsprechenden zweidimensionalen Begrenzungsbereich aufweist, der als mit dem zweidimensionalen Auswahlbereich überlappend und/oder innerhalb der Abstandstoleranz des zweidimensionalen Auswahlbereiches liegend erkannt wird.
-
Die oben erwähnten sowie andere Vorteile der vorliegenden Erfindung erschließen sich dem Fachmann ohne weiteres aus der folgenden ausführlichen Beschreibung einer bevorzugten Ausführungsform bei Betrachtung angesichts der begleitenden Zeichnungen, in denen zeigen:
- 1 die perspektivische Ansicht einer dreidimensionalen, grafischen Darstellung einer Bearbeitungsstation einschließlich einer Fahrzeugkarosserie und einer Vielzahl von Robotern nach einer Ausführungsform der Erfindung;
- 2 ein Ablaufdiagramm, das einen Gesamtprozess nach der Ausführungsform der Erfindung zeigt;
- 3 eine perspektivische Darstellung der Arbeitsstation von 1, die ferner eine Darstellung eines Begrenzungsrahmens umfasst, der für ein zugeordnetes TP Programm berechnet ist;
- 4 eine perspektivische Darstellung der Bearbeitungsstation von 3, die das Umwandeln des Begrenzungsrahmens in einen Begrenzungsbereich für ein zugeordnetes TP Programm sowie den Prozess zum Auswählen eines Auswahlbereiches auf einem zweidimensionalen Anzeigebildschirm zeigt; und
- 5 die perspektivische Darstellung einer Bearbeitungsstation, die eine Erkennung und Auflistung einer Vielzahl von der Bearbeitungsstation zugeordneten TP Programmen zeigt.
-
Die folgende ausführliche Beschreibung und angefügte Zeichnungen beschreiben und veranschaulichen verschiedene beispielhafte Ausführungsformen der Erfindung. Beschreibung und Zeichnungen dienen dazu, es dem Fachmann zu ermöglichen, die Erfindung herzustellen und zu verwenden und sind nicht dazu beabsichtigt, den Umfang der Erfindung in irgendeiner Weise einzuschränken. Bezüglich der offenbarten Verfahren sind die dargestellten Schritte beispielhafter Natur, und somit ist die Reihenfolge der Schritte nicht notwendig oder entscheidend.
-
1 zeigt eine dreidimensionale Darstellung einer Bearbeitungsstation 5 einschließlich einer Fahrzeugkarosserie 10 und einer Vielzahl von Robotern 20. Die Bearbeitungsstation 5 befindet sich innerhalb eines dreidimensionalen Raums, der zur Simulierung eines Roboterprozesses genutzt wird. Der dreidimensionale Raum bezieht sich auf einen Raum, in dem die Position eines Punktes bezüglich eines herkömmlichen kartesischen Koordinatensystems mit drei senkrechten Achsen definiert werden kann, was bedeutet, dass jeder Punkt in dem dreidimensionalen Raum durch drei Koordinatenwerte relativ zu einem Bezugspunkt (Ursprung), der sich innerhalb des dreidimensionalen Raumes befindet, definiert werden kann.
-
Die in 1 dargestellten Roboter 20 werden konfiguriert, um an der Fahrzeugkarosserie 10 einen Lackierprozess durchzuführen; die Bearbeitungsstation 5 kann jedoch Roboter 20 umfassen, die zur Durchführung eines beliebigen Roboterprozesses, der zum Beispiel Lackieren, Schweißen, Aufnehmen und Ablegen (Pick-and-place), Montieren und Entgraten einschließt, jedoch nicht darauf beschränkt ist, konfiguriert werden. Die Bearbeitungsstation 5 ist nicht auf die Roboterprozesse beschränkt, die an der Fahrzeugkarosserie 10 durchzuführen sind, sondern kann stattdessen, in Abhängigkeit von der Anwendung, Werkstücke verschiedener Abmessungen, Formen und Ausrichtungen einschließen. Darüber hinaus kann die grafische Darstellung der Bearbeitungsstation 5 auch grafische Darstellungen von beliebigen peripheren Objekten (nicht gezeigt) enthalten, die auf den Arbeitsgang der Roboter 20 oder die Anordnung beliebiger Werkstücke störend einwirken können.
-
Die dreidimensionale, grafische Darstellung der Bearbeitungsstation 5 wird durch eine Softwareanwendung erzeugt, die zur Simulierung eines am Arbeitsplatz durchzuführenden Roboterprozesses konfiguriert wird. Jeder im Folgenden auf die Bearbeitungsstation 5 vorgenommene Verweis bezieht sich speziell auf die dreidimensionale, grafische Darstellung der Arbeitsstation 5 und nicht auf den aktuellen physikalischen Arbeitsplatz, der durch die Softwareanwendung simuliert wird. Die Softwareanwendung simuliert die Größe, Position und Ausrichtung aller Werkstücke, peripherer Objekte und Roboter, die in der Bearbeitungsstation 5 aufgenommen sind. Die dreidimensionalen, grafischen Darstellungen der Werkstücke, peripheren Objekte und Roboter können zum Beispiel in die Softwareanwendung von einem externen CAD-System importiert werden.
-
Die Softwareanwendung wird außerdem konfiguriert zum Simulieren der Roboterprozesse, die durch die Vielzahl von innerhalb der Bearbeitungsstation 5 enthaltenen Roboter 20 durchgeführt werden. Die Roboterprozesse betreffenden Daten können in die Softwareanwendung von mindestens einem externen System importiert werden. Zum Beispiel kann die Softwareanwendung Daten aus einem Speicher einer Vielzahl von Robotersteuereinheiten (nicht gezeigt), die sich an dem Arbeitsplatz befinden, importieren, oder alternativ dazu kann die Softwareanwendung die Daten aus einer anderen externen Speicherquelle importieren, die die Daten zur dreidimensionalen, grafischen Darstellung zusammengetragen und konfiguriert hat. Weil ein Arbeitsplatz oft mehrere Roboter umfasst, die durch mehrfache Robotersteuereinheiten zu steuern sind, wird die Softwareanwendung zur Kombination von Daten mehrfacher Robotersteuereinheiten konfiguriert, um alle durch die Vielzahl von Robotern 20 innerhalb der Bearbeitungsstation 5 durchzuführenden Prozesse zu simulieren.
-
Die Softwareanwendung ist eine rechnerunabhängig arbeitende Softwareanwendung, was bedeutet, dass die Softwareanwendung nicht zu verwenden ist, um Einstellungen in Echtzeit an aktuellen Robotersteuereinheiten und Robotern vorzunehmen, während sie an dem aktuellen Arbeitsplatz einen Roboterprozess durchführen. Wie es oben beschrieben ist, kann die Softwareanwendung konfiguriert werden, um anfangs alle für eine Simulierung der Bearbeitungsstation 5 relevanten Daten aus externen Datenspeichergeräten einschließlich des Speichers der Robotersteuereinheiten und jeder Form von Datenspeicherung, die durch andere Software genutzt wird, die in Verbindung mit der Softwareanwendung arbeiten kann, zu importieren. Das Importieren relevanter Daten kann die Operation der Softwareanwendung unterstützen, indem ein Datenvolumen reduziert wird, das von einem der Softwareanwendung zugeordneten Prozessor zu berechnen ist. Dieses Merkmal ermöglicht es, viele Aspekte der Simulierung vorher zu berechnen, was die Zeit, die zur Durchführung von bestimmten der Softwareanwendung zugeordneten Berechnungen benötigt wird, erheblich reduzieren kann.
-
Die in 1 gezeigte dreidimensionale, grafische Darstellung der Bearbeitungsstation 5 wird einem Benutzer angezeigt, der einen der Softwareanwendung zugeordneten, zweidimensionalen Bildschirm nutzt. Folglich zeigt der zweidimensionale Bildschirm eine zweidimensionale Projektion oder ein Bild beliebiger Objekte, die in der Bearbeitungsstation 5 aufgenommen sind, wenn die Bearbeitungsstation 5 von unterschiedlichen Positionen und Ausrichtungen innerhalb des dreidimensionalen Raums betrachtet wird. Eine Position von einem auf dem zweidimensionalen Bildschirm abgebildeten Punkt kann bezüglich eines herkömmlichen kartesischen Koordinatensystems mit zwei senkrechten Achsen definiert werden, was bedeutet, dass eine Position jedes auf dem zweidimensionalen Bildschirm abgebildeten Punktes definiert werden kann, indem zwei Koordinatenwerte relativ zu einem auf dem zweidimensionalen Bildschirm befindlichen Bezugspunkt (Ursprung) genutzt werden.
-
Die Softwareanwendung kann eine Benutzerschnittstelle (UI) enthalten, die konfiguriert wird, damit ein Benutzer die Position und den Winkel, von der aus die Bearbeitungsstation 5 betrachtet wird, einstellen kann, indem bewirkt wird, dass der zweidimensionale Bildschirm unterschiedliche entsprechende Bilder der Bearbeitungsstation 5 anzeigt. Die UI kann die Fähigkeit zum Scrollen der Ansicht in zwei Dimensionen, zum Drehen der Ansicht oder zum Heranholen oder Verkleinern der Ansicht einschließen. Die auf dem zweidimensionalen Bildschirm dargestellte Ansicht kann als „Kameraansicht“ der Bearbeitungsstation 5 bezeichnet werden.
-
Jede der zur Steuerung von zumindest einem der Roboter 20 genutzten Robotersteuereinheiten kann viele verschiedene Lehrpunkt-Programme (TP) besitzen, die in deren Speicher gespeichert oder anderweitig damit verbunden sind. Jedes TP Programm ist ein Operationsprogramm, das einen Roboter zur Ausführung einer vorgegebenen Aufgabe anweist. Zum Beispiel kann ein TP Programm ein auf einem Roboterarm angeordnetes Fertigstellwerkzeug (nicht gezeigt) anweisen, einem speziellen Bewegungsweg zu folgen, während es das Fertigstellwerkzeug außerdem anweist, wann zusätzliche Funktionen wie zum Beispiel Lackieren, Schweißen oder Erfassen eines Werkstücks auszuführen sind. Folglich kann die Softwareanwendung jedes TP Programm im dreidimensionalen Raum als einen dreidimensionalen Weg 25 darstellen, der Positionen und/oder Ausrichtungen eines vorgegebenen Teils eines entsprechenden Roboters 20 zeigt, wenn dieser einen Roboterprozess durchführt. Der dreidimensionale Weg 25 kann eine Vielzahl von Knoten 26 enthalten, die im Allgemeinen als Lehrpunkte bezeichnet werden, die an verschiedenen Punkten entlang des dreidimensionalen Weges 25 angeordnet sind. Jeder Knoten 26 kann einen kritischen Punkt entlang des dreidimensionalen Weges 25 darstellen wie etwa ein Punkt, an dem bewirkt wird, dass der Roboter 20 einen Bewegungsverlauf ändert. Folglich kann jeder Knoten 26 Daten beinhalten, die sich auf seine Position im dreidimensionalen Raum relativ zu dem Bezugspunkt beziehen, indem drei Koordinatenwerte verwendet werden. Im Folgenden bezeichnet Bezug auf ein innerhalb des dreidimensionalen Raums der Bearbeitungsstation 5 erzeugtes TP Programm den dreidimensionalen Weg 25 und Knoten 26, die das TP Programm innerhalb der Bearbeitungsstation 5 darstellen.
-
Bei vielen Roboterprozessen, wie etwa dem in 1 gezeigten Lackierprozess, kann der Roboterprozess die Ausführung mehrfacher TP Programme, die auf mehrfachen Robotersteuereinheiten laufen, beinhalten. Darüber hinaus kann jedes TP Programm mehrfache Knoten 26 einschließen, die den dreidimensionalen Weg 25 definieren, der jedem TP Programm zugeordnet sind. An sich können die dreidimensionalen, grafischen Darstellungen der mehrfachen TP Programme, die durch die Softwareanwendung erzeugt werden, viele dreidimensionale Wege 25 und Knoten 26 einschließen, die im engen Abstand angeordnet sind oder sich überlappen, was dem Benutzer der Softwareanwendung die Auswahl eines einzelnen dreidimensionalen Weges 25 oder Knotens 26 von der Anzeige her erschwert. Es ist daher eine Aufgabe der augenblicklichen Erfindung, ein Verfahren zur leichten Auswahl eines gewünschten TP Programms bereitzustellen, um aus einer Vielzahl der der Bearbeitungsstation zugeordneten TP Programme heraus zu editieren.
-
2 ist ein Ablaufdiagramm, das eine Vielzahl von Schritten zur Auswahl eines gewünschten TP Programms aus dem Innern der dreidimensionalen, grafischen Darstellung der Bearbeitungsstation 5 zeigt. Das erfindungsgemäße Verfahren umfasst einen ersten Schritt 100 zum Erzeugen der dreidimensionalen, grafischen Darstellung des in der Bearbeitungsstation 5 durchzuführenden Roboterprozesses. Der Erzeugungsschritt 100 umfasst sowohl das Erzeugen aller dreidimensionalen Objekte innerhalb der Bearbeitungsstation 5 als auch das Erzeugen des Weges jedes TP Programms, der den in der Bearbeitungsstation 5 durchzuführenden Roboterprozessen zugeordnet ist. Der Erzeugungsschritt 100 kann Anwendung auf alle der Bearbeitungsstation 5 zugeordneten TP Programme finden, ohne Rücksicht darauf, welche Robotersteuereinheit jedem TP Programm zugeordnet ist. Der Erzeugungsschritt 100 kann außerdem das Erzeugen des zweidimensionalen Bildes umfassen, welches die Projektion des für einen Benutzer der Softwareanwendung auf dem zweidimensionalen Bildschirm sichtbaren, dreidimensionalen Raums darstellt. Der Erzeugungsschritt 100 kann ferner einen Schritt zum Importieren aller Daten einschließen, die benötigt werden, um die dreidimensionale, grafische Anzeige aus allen notwendigen externen Speicherquellen zu erzeugen.
-
Das erfindungsgemäße Verfahren umfasst außerdem einen Schritt 110 zum Berechnen eines Begrenzungsrahmens 30 für jedes TP Programm, das der Bearbeitungsstation 5 zugeordnet ist, wie es in 3 dargestellt wird. Jeder Begrenzungsrahmen 30 stellt ein dreidimensionales Volumen innerhalb des dreidimensionalen Raums dar, das jeden dem TP Programm zugeordneten Knoten 26, für das der Begrenzungsrahmen 30 berechnet wird, völlig umgibt. Der Begrenzungsrahmen 30 wird berechnet, indem zuerst die dreidimensionalen Koordinaten jedes Knotens 26, der dem TP Programm zugeordnet ist, relativ zu einem Bezugspunkt identifiziert werden. Die Koordinatenwerte für jeden Knoten 26 können mit einem „x“-Wert, einem „y“-Wert und einem „z“-Wert dargestellt werden, was in der Form von (x, y, z) dargestellt werden kann. Als Nächstes werden die Minimal- und Maximalwerte für jeden der „x“-Werte, der „y“-Werte und der „z“-Werte für alle der identifizierten Knoten 26 bestimmt, die dem TP Programm zugeordnet sind. Unter Verwendung dieser Festlegungen können zwei Punkte Pmin und Pmax identifiziert werden, die die Koordinaten (xmin, ymin, zmin) bzw. (xmax, ymax, zmax) besitzen. Die Punkte Pmin und Pmax stellen zwei gegenüber liegende Ecken des Begrenzungsrahmens 30 dar, wie es in 3 dargestellt wird. Die Koordinaten der anderen sechs Ecken des Begrenzungsrahmens können aus den Koordinaten der Punkte Pmin und Pmax bestimmt und als (xmax, ymin, zmin), (xmax, ymax, zmin), (xmin, ymax, zmin), (xmin, ymax, zmax), (xmin, ymin, zmax) und (xmax, ymin, zmax) dargestellt werden. Folglich sind die acht Ecken des Begrenzungsrahmens 30 definiert, und jeder dem TP Programm zugeordnete Knoten 26, für das der Begrenzungsrahmen 30 berechnet wurde, befindet sich innerhalb des Begrenzungsrahmens 30 oder auf einer Außenfläche des Begrenzungsrahmens 30.
-
Das Verfahren umfasst ferner einen Schritt 120 zum Speichern jedes berechneten Begrenzungsrahmens 30 in einen Speicher oder eine Speichervorrichtung (nicht gezeigt), die mit der Softwareanwendung verbunden ist. Der Speicherschritt 120 vermeidet die Notwendigkeit, dass die Softwareanwendung während ihrer Anwendung den Begrenzungsrahmen 30 für jedes zugeordnete TP Programm immer wieder neu berechnet. Die vorausberechneten und gespeicherten Begrenzungsrahmen 30 müssen zum Beispiel nicht jedes Mal, wenn ein Benutzer die Position ändert, aus der der dreidimensionale Raum betrachtet wird, im dreidimensionalen Raum gemäß der neuen Betrachtungsposition neu berechnet werden.
-
Das Verfahren schließt ferner einen Schritt 130 zum Umwandeln jedes dreidimensionalen Begrenzungsrahmens 30 in einen zweidimensionalen Begrenzungsbereich 40 ein. Jeder Begrenzungsrahmen 30 in dem dreidimensionalen Raum kann auf dem zweidimensionalen Bildschirm als eine zweidimensionale Projektion eines dreidimensionalen Objekts dargestellt werden. Während die dreidimensionale Darstellung des Begrenzungsrahmens 30 ein rechtwinkliger Parallelepiped oder Würfel mit sechs charakteristischen ebenen Flächen ist, erscheint die zweidimensionale Projektion auf dem zweidimensionalen Bildschirm als ein Sechseck mit sechs charakteristischen Seiten, wie es in 4 dargestellt wird. Die Fläche, die durch die sechs charakteristischen Seiten begrenzt wird, stellt den umgewandelten Begrenzungsbereich 40 dar. Der Begrenzungsbereich 40 kann auch in Abhängigkeit des Winkels, von dem aus der dreidimensionale Begrenzungsrahmen 30 betrachtet wird, als ein vierseitiges Rechteck erscheinen. Weil der Begrenzungsbereich 40 auf dem zweidimensionalen Bildschirm in zwei Dimensionen dargestellt ist, besteht er aus einer Vielzahl von Punkten mit zweidimensionalen Koordinaten relativ zu einem Bezugspunkt (Ursprung). Folglich können die Koordinatenwerte für jeden den Begrenzungsbereich 40 einschließenden Punkt mit einem „x“ Wert und einem „y“ Wert dargestellt werden, die in Form von (x, y) dargestellt werden können. Obwohl in 4 der Begrenzungsbereich 40 optisch dargestellt ist, werden bei normaler Operation der Softwareanwendung die Begrenzungsbereiche 40 dem Benutzer auf dem zweidimensionalen Bildschirm nicht gezeigt, weil der Benutzer unter Verwendung der Benutzerschnittstelle in der Bearbeitungsstation 5 navigiert.
-
Der Umwandlungsschritt 130 kann jedes Mal, wenn ein Benutzer die Position ändert, von der aus die dreidimensionale Bearbeitungsstation 5 betrachtet wird, stattfinden. Mit anderen Worten wird sich die zweidimensionale Projektion der äußeren Kanten des dreidimensionalen Begrenzungsrahmens 30 immer wieder verändern, da ein Benutzer die dreidimensionale Bearbeitungsstation 5 aus unterschiedlichen Positionen betrachtet (Änderung des Ansichtspunktes).
-
Um ein TP Programm aus dem dreidimensionalen Raum der Bearbeitungsstation 5 auszuwählen, umfasst das erfindungsgemäße Verfahren einen Schritt 140 zum Auswählen eines zweidimensionalen Auswahlbereiches 50 von dem zweidimensionalen Bildschirm. Der Auswahlbereich 50 ist ein zweidimensionaler Bereich, der über die dreidimensionale, grafische Darstellung der Bearbeitungsstation 5 in ähnlicher Weise zum Begrenzungsbereich 40 gelegt wird, wie es oben erläutert ist. Gemäß 4 kann der Auswahlschritt 140 vom Benutzer durchgeführt werden, der eine Auswahlbegrenzung 60 um einen durch den Benutzer ausgewählten Bereich zeichnet. Weil die Auswahlbegrenzung 60 in zwei Dimensionen gezeichnet ist, wie es auf dem zweidimensionalen Bildschirm dargestellt ist, wird die Auswahlbegrenzung 60 aus einer Vielzahl von Punkten mit zweidimensionalen Koordinaten relativ zu einem Bezugspunkt (Ursprung), vorzugsweise der gleiche Bezugspunkt wie beim Bestimmen der Koordinaten der den Begrenzungsbereich 40 einschließenden Punkte verwendet, gebildet. Die Koordinatenwerte für jeden die Auswahlbegrenzung 60 einschließenden Punkt können mit einem „x“ Wert und einem „y“ Wert dargestellt werden, was in der Form von (x, y) dargestellt werden kann.
-
Die Auswahlbegrenzung 60 wird anschließend in den Auswahlbereich 50 umgewandelt. Das Umwandeln der Auswahlbegrenzung 60 in den Auswahlbereich 50 wird durchgeführt, indem zuerst die zweidimensionalen Koordinaten für jeden die Auswahlbegrenzung 60 einschließenden Punkt identifiziert werden. Als Nächstes werden die Minimal- und Maximalwerte für jeden der „x“ Werte und jeden der „y“ Werte für alle die Auswahlbegrenzung 60 einschließenden, identifizierten Punkte festgelegt. Unter Verwendung dieser Festlegungen können zwei Punkte Amin und Amax identifiziert werden, die die Koordinaten (xmin, ymin) bzw. (xmax, ymax) besitzen. Die Punkte Amin und Amax stellen diagonal gegenüberliegende Ecken eines Rechtecks dar, wie es in 5 gezeigt ist. Unter Verwendung der Koordinaten dieser beiden Punkte können die anderen, die Ecken des Rechtecks bildenden, zwei Punkte so festgelegt werden, dass sie die Punkte mit den Koordinaten (xmin, ymax) und (xmax, ymin) sind. So ist der Auswahlbereich 50 der Bereich, der durch das von diesen vier Eckpunkten gebildete Rechteck umgeben wird.
-
Die Zeichnung der Auswahlbegrenzung 60 kann durchgeführt werden, indem ein Cursor verwendet wird, der einem Benutzer der Softwareanwendung auf dem zweidimensionalen Bildschirm gezeigt wird, der dieser zugeordnet ist. Es können jedoch andere bekannte Verfahren zum Zeichnen der Auswahlbegrenzung 60 genutzt werden, einschließlich das Zeichnen der Auswahlbegrenzung 60 durch Berührung des Benutzers, wenn zum Beispiel ein Berührungsbildschirm verwendet wird.
-
Sobald der Auswahlbereich 50 ausgewählt ist, umfasst das Verfahren nach der Erfindung ferner einen Schritt 150 zur Erkennung jedes Begrenzungsbereichs 40, der jedem TP Programm zugeordnet ist und sich mit dem Auswahlbereich 50 überlappt oder der sich innerhalb einer vorgegebenen Abstandstoleranz des Auswahlbereiches 50 befindet. Der Erkennungsschritt 150 wird durchgeführt, indem die zweidimensionalen Koordinaten jedes dem Auswahlbereich 50 zugeordneten Punktes mit den zweidimensionalen Koordinaten jedes dem Begrenzungsbereich 40 zugeordneten Punktes unter der Annahme verglichen werden, dass die zweidimensionalen Koordinaten jedes Punktes sich relativ auf den gleichen Bezugspunkt (Ursprung) beziehen. Wenn der Auswahlbereich 50 und der Begrenzungsbereich 40 mindestens einen gemeinsamen Punkt teilen, können der Auswahlbereich 50 und der Begrenzungsbereich 40 als überlappend betrachtet werden.
-
Der Erkennungsschritt 150 kann konfiguriert werden, um einen Begrenzungsbereich 40 zu erkennen, der mindestens einen Teil des Begrenzungsbereichs 40 innerhalb des Auswahlbereichs 50 enthält, was bedeutet, dass mindestens ein Punkt des Auswahlbereichs 50 sich mindestens mit einem Punkt des Begrenzungsbereichs 40 überlappt. 4 zeigt eine solche Situation, bei der sich nur ein Teil des Begrenzungsbereichs 40 mit dem Auswahlbereich 50 überlappt. Alternativ dazu kann der Erkennungsschritt 150 konfiguriert werden, um nur einen Begrenzungsbereich 40 zu erkennen, der in seiner Gesamtheit in den Auswahlbereich 50 einbezogen ist, was bedeutet, dass alle Punkte des Begrenzungsbereiches 40 an dem Auswahlbereich 50 beteiligt sind. Der Erkennungsschritt 150 kann außerdem einen Begrenzungsbereich 40 innerhalb einer bestimmten Abstandstoleranz relativ zu einer äußeren Grenze des Auswahlbereiches 50 erkennen. Wird kein Begrenzungsbereich 40 als überlappend mit dem Auswahlbereich 50 oder innerhalb der Abstandstoleranz des Auswahlbereichs 50 erkannt, kann das erfindungsgemäße Verfahren den Begrenzungsbereich 40 erkennen, der sich am nächsten zum Auswahlbereich 50 befindet, wie es auf dem zweidimensionalen Bildschirm dargestellt wird, auf den der Begrenzungsbereich 40 und der Auswahlbereich 50 jeweils projiziert wird. Darüber hinaus können, wie oben beschrieben, einer oder mehrere der zu erkennenden Begrenzungsbereiche 40 einer unterschiedlichen Robotersteuereinheit als einer oder mehrere zu erkennende andere Begrenzungsbereiche 40 zugeordnet werden. An sich ziehen der Auswahlschritt 140 und der Erkennungsschritt 151 die Auswahl mehrfacher vorgegebener TP Programme in Betracht, die unterschiedlichen Robotersteuereinheiten zugeordnet werden.
-
Das erfindungsgemäße Verfahren umfasst außerdem einen Schritt zum Identifizieren 160 jedes einem Begrenzungsbereich 40 zugeordneten TP Programms, der als mit dem Auswahlbereich 50 überlappend oder innerhalb der vorbestimmten Abstandstoleranz des Auswahlbereichs 50 befindlich erkannt wurde. Wie im Folgenden verwendet, bezieht sich der Begriff „Identifizieren“ auf die Softwareanwendung, die einem Benutzer der Softwareanwendung jedes identifizierte TP Programm optisch anzeigt. Jedes einem Begrenzungsbereich 40 zugeordnete TP Programm, der als mit dem Auswahlbereich 50 überlappend (oder innerhalb der vorbestimmten Abstandstoleranz befindlich) erkannt wurde, kann dem Benutzer angezeigt werden, indem ein jedem identifizierten Programm zugeordneter, einzelner Knoten 26 angezeigt wird, der sich einem Mittelpunkt des Auswahlbereiches 50 am nächsten befindet. Alternativ dazu kann der Identifizierungsschritt 160 das Anzeigen des dreidimensionalen Weges 25 umfassen, der jedem identifizierten Programm in seiner Gesamtheit einschließlich aller dem dreidimensionalen Weg 25 zugeordneten Knoten 26 zugeordnet ist.
-
Falls mehrfache TP Kandidatenprogramme (die auf vielfachen Robotersteuereinheiten laufen können) erkannt und identifiziert sind, schließt das Verfahren nach der Erfindung einen weiteren Schritt 170 zum Darstellen eines Dialograhmens 70 für den Benutzer ein, wie es in 5 gezeigt wird. Der Dialograhmen 70 listet vorzugsweise alle der TP Programme auf, die als mit dem Auswahlbereich 50 überlappend erkannt und identifiziert werden, ohne Rücksicht auf eine Robotersteuereinheit, der das TP Programm zugeordnet ist. Der Dialograhmen 70 kann vorzugsweise ein Merkmal enthalten, mit dem ein Benutzer eines der aufgelisteten TP Programme von der Liste auswählen kann, um weitere Operationen bezüglich des gewählten TP Programms durchzuführen. Der Darstellungsschritt 170 kann konfiguriert werden, um nur eine grafische Darstellung des TP Programms, das durch den Benutzer aus der im Dialograhmen 70 dargestellten Liste ausgewählt ist, anzuzeigen. Gemäß 5 ist gegenwärtig ein als „TP Programm 2“ angegebenes TP Programm ausgewählt, und angezeigt wird nur „TP Programm 2“ in Form des dreidimensionalen Weges 25 und der Knoten 26. Wenn eine grafische Darstellung des ausgewählten TP Programms angezeigt wird, kann dem Benutzer auch der Begrenzungsrahmen 30, der das ausgewählte TP Programm umgibt, gleichzeitig mit dem TP Programm angezeigt werden. Darüber hinaus können die Begrenzungsrahmen 30, die für die in dem Dialograhmen 70 dargestellten, nicht ausgewählten TP Programme erzeugt wurden, dem Benutzer in Form von leeren Begrenzungsrahmen 30 angezeigt werden, was bedeutet, dass die jedem Begrenzungsrahmen 30 entsprechenden TP Programme nicht optisch angezeigt werden, wie es zum Beispiel in 5 mit Bezug auf „TP Programm 1“ und „TP Programm 3“ dargestellt ist.
-
Wenn mehrfache TP Programme erkannt und identifiziert sind und der Dialograhmen 70 dem Benutzer gezeigt wird, kann das erfindungsgemäße Verfahren des Weiteren einen Schritt 180 zum Speichern der Liste von TP Programmen, die dem Dialograhmen 70 zugeordnet sind, in einer Speicherquelle oder Gerät (nicht dargestellt) umfassen. Das Speichern 180 der Liste von TP Programmen kann den Benutzer dabei unterstützen, sich auf TP Programme innerhalb des Auswahlbereichs 50 zurück zu beziehen, wenn der Benutzer es wünscht, ein anderes TP Programm zum Editieren aus der durch den Dialograhmen 70 vorgesehenen Liste zu wählen.
-
Sobald alle der TP Programme innerhalb oder in der Nähe des Auswahlbereichs 50 für den Benutzer identifiziert sind, kann er eines der TP Programme auswählen. Sobald es ausgewählt ist, kann das erfindungsgemäße Verfahren außerdem einen Schritt 190 umfassen, der einem Benutzer das Editieren von mindestens einem Teil des ausgewählten TP Programms erlaubt, was einschließt, dass einem Benutzer das Editieren von beliebigen, dem ausgewählten TP Programm zugeordneten Knoten 26 erlaubt wird. Das Editieren vom Benutzer kann zum Beispiel das Verschieben einer Position eines TP Programms oder eines zugeordneten Knotens 26 innerhalb des dreidimensionalen Raums der Bearbeitungsstation 5 umfassen. Folglich kann das Editieren vom Benutzer das Zuweisen eines Knotens 26 umfassen, der an einer neuen Stelle im dreidimensionalen kartesischen Raum basierend auf einem in der Bearbeitungsstation 5 enthaltenen Bezugspunkt (Ursprung) neu zu positionieren ist.
-
Wenn der Benutzer das Verschieben oder anderweitige Verändern einer Position eines TP Programms oder eines dem TP Programm zugeordneten Knotens 26 wirklich wählt, kann das erfindungsgemäße Verfahren ferner einen Schritt 200 zum Berechnen eines Einstellvektors für jeden Knoten 26, der neu positioniert wird, umfassen. Der Einstellvektor gibt eine Größe und eine Richtung der Änderung in der Position des zu verschiebenden Knotens 26 im dreidimensionalen kartesischen Raum an. Weil jedes TP Programm aus einer Vielzahl von Knoten 26 besteht, wird das Neupositionieren eines gesamten TP Programms das Neupositionieren jedes dem TP Programm zugeordneten Knotens 26 umfassen, damit ein Einstellvektor für jeden dem TP Programm zugeordneten Knoten 26 berechnet wird. Die Berechnung des Einstellvektors verringert die Zeit, die zur Ausführung des Rechenschritts 110, des Speicherschritts 120 und des Umwandlungsschritts 130 benötigt wird. Dies tritt auf, weil vor dem Neupositionieren eines Knotens 26 die Softwareanwendung bereits vorzugsweise den Begrenzungsrahmen 30 und den Begrenzungsbereich 40 für jedes TP Programm vorausberechnet hat, von denen beide in dem der Softwareanwendung zugeordneten Speicher gespeichert werden. Wenn ein Knoten 26 neu positioniert ist, wird die Softwareanwendung vorzugsweise konfiguriert, um nur den Begrenzungsrahmen 30 und damit den Begrenzungsbereich 40 für das diesem Knoten 26 zugeordnete TP Programm erneut zu berechnen, anders als erneutes Berechnen von Begrenzungsrahmen 30 und Begrenzungsbereich 40 für jedes TP Programm, das der Bearbeitungsstation 5 zugeordnet ist.
-
Sobald jeder Einstellvektor berechnet wurde, umfasst das erfindungsgemäße Verfahren außerdem einen Schritt 210 zum Anwenden jedes berechneten Einstellvektors auf jeden entsprechenden, neu zu positionierenden Knoten 26. Weil jeder einem TP Programm innerhalb der Bearbeitungsstation 5 zugeordnete Knoten 26 einem Satz dreidimensionaler Koordinaten (x, y, z) zugewiesen ist, umfasst der Anwendungsschritt 210 des Einstellvektors das erneute Zuweisen von Koordinatenwerten für jeden neu positionierten Knoten 26 basierend auf dem für jeden neu positionierten Knoten 26 berechneten Einstellvektor. Der Anwendungsschritt 210 kann das erneute Berechnen jedes dem TP Programm zugeordneten Begrenzungsrahmens 30 enthalten, dem der neu zu positionierende Knoten 26 zugeordnet wird. Das Berechnen jedes Begrenzungsrahmens 30 wird durchgeführt, indem die wieder zugewiesenen Koordinaten für jeden neu positionierten Knoten 26 genutzt werden. Folglich kann der Anwendungsschritt 210 außerdem das erneute Berechnen jedes Begrenzungsbereichs 40 beinhalten, der jedem neu berechneten Begrenzungsrahmen 30 zugeordnet ist. Der Anwendungsschritt 210 kann ferner das erneute Erzeugen der dreidimensionalen, grafischen Darstellung des innerhalb der Bearbeitungsstation 5 durchzuführenden Roboterprozesses umfassen. Sobald der Anwendungsschritt 210 beendet wurde, kann der Benutzer einen weiteren Auswahlbereich 50 basierend auf den erneut berechneten Begrenzungsrahmen 30 und Begrenzungsbereichen 40 auswählen, dem sich das Neupositionieren des mindestens einen Knotens 26, der einem TP Programm zugeordnet ist, anschließt.