-
Die vorliegende Erfindung bezieht sich auf eine Robotersteuervorrichtung, die einen Roboter steuert, der einen Arm, dessen äußerstes Ende mit einer Kamera versehen ist, hat, und auf ein Verfahren zum Teachen bzw. Anlernen des Roboters.
-
Bei einem Roboter, der eine visuelle Inspektion unter Verwendung einer Kamera ausführt, ist es notwendig, der Kamera optimale räumliche Positionen zum Abbilden eines inspizierten Objekts zu geben. Bei einer Prozedur zum Versehen der Kamera mit solchen optimalen Positionen ist es häufig gewünscht, dass die Kamerastellung um einen Beobachtungspunkt (d. h. eine Position (einen Punkt oder einen Bereich), die zu beobachten oder zu inspizieren ist) auf dem Objekt geändert wird, ohne die Strecke bzw. den Abstand zu dem Beobachtungspunkt zu ändern. Um diese Anforderung zu erfüllen, ist es erforderlich, die Strecke von der Kamera zu einem inspizierten Objekt durch eine Abstands- bzw. Streckenmessungstechnik bei einem Teaching-Verfahren bzw. Anlernverfahren zu kennen. Als diese Streckenmessungstechnik wird beispielsweise ein Triangulationsverfahren verwendet.
-
Ein Beispiel dieser Streckenmessungstechnik ist in einem Patentdokument
JP H06 - 75 617 A offenbart. Bei dieser Technik werden die folgenden Verfahren durchgeführt. Ein Bild, das einen Beobachtungspunkt aufweist, wird genauer gesagt durch eine Kamera, die an einem äußersten Ende eines Roboterarms angeordnet ist, aufgenommen. Die Position des Beobachtungspunktes der Kamera wird dann durch den Benutzer geändert, dem ein Aufnehmen eines weiteren Bilds, das den gleichen Beobachtungspunkt aufweist, folgt. Danach wird unter Verwendung eines Triangulationsverfahrens basierend auf den erfassten Stereobildern die Strecke von der Kamera zu dem Beobachtungspunkt gemessen. Die Position des Beobachtungspunkts der Kamera wird dann gemäß den erhaltenen Streckendaten geändert.
-
Die in dem vorhergehenden Patentdokument
JP H06 - 75 617 A offenbarte Technik bürdet einem Betreiber, der einen Roboter zum Anlernen von Bewegungsdestinationen handhabt, dennoch große Mengen an Arbeit auf. Das heißt, wie es im Vorhergehenden bemerkt ist, i) um die räumlichen Stellungen (Positionen) der Kamera zum Abbilden von verschiedenen Positionen um einen Beobachtungspunkt auf einem inspizierten Objekt zu ändern, ist es erforderlich, ii) die Strecke von der Kamera zu dem Objekt zu messen. Wenn die durch das Patentdokument
JP H06 - 75 617 A offenbarte Technik übernommen ist, sollte ein Betreiber Betriebsvorgänge für beide Schritte i) und ii) getrennt voneinander durchführen. Diese Art und Weise führt zu der im Vorhergehenden beschriebenen Aufbürdung von großen Mengen an Arbeit auf Betreiber.
-
DE 692 19 532 T2 offenbart ein Verfahren zum Korrigieren von Daten eines von einem Sensor erfassten Objektes zur Positionsbestimmung des Objektes mit folgenden Schritten: Es werden erste Kalibrierungsdaten gemäß einem zwischen dem Koordinatensystem einer beweglichen Komponente und dem Koordinatensystem eines an der beweglichen Komponente angebauten Sensors ausgeführten Kalibrierungsprozesses bestimmt; es werden die Position und Lage des Sensors vor seiner Bewegung erfasst, wenn der Kalibrierungsprozess ausgeführt wird; es werden die Position und Lage des Sensors nach seiner Bewegung mittels der beweglichen Komponente erfasst; aus den Positionen und Lagen des Sensors vor und nach seiner Bewegung wird ein Abstand bestimmt, um welchen sich die Position und Lage des Sensors bewegt hat; es werden zweite Kalibrierungsdaten für den Sensor nach seiner Bewegung bestimmt, basierend auf dem Abstand und den ersten Kalibrierungsdaten und es wird die Position des Objektes basierend auf den zweiten Kalibrierungsdaten und Daten des vom Sensor nach seiner Bewegung erfassten Objektes bestimmt.
-
Die
EP 1 607 194 A2 offenbart ein Robotersystem aus mehreren Robotern mit Mitteln zur Kalibrierung ihrer relativen Lage. Dieses umfasst einen ersten Roboter mit einer Kamera eines darauf montierten visuellen Sensors und einen zweiten Roboter mit einem Funktionsabschnitt. Die Roboter werden in die ersten Anfangszustände versetzt, aus denen der erste Roboter oder der zweite Roboter bewegt wird, so dass das Bild des Funktionsabschnitts eine Zielposition oder -größe einnimmt, wodurch die gegenwärtigen Positionen gespeichert werden. Der gleiche Vorgang wird N-mal (N ≥ 3)wiederholt, während die Positionen der Anfangszustände der Roboter geändert werden. Basierend auf den Positionen, die durch die obigen N-Wiederholungsprozesse erhalten wurden, wird eine Matrix bestimmt, die die Koordinatenumwandlung von ∑b nach ∑b' angibt. Es können ein oder zwei Robotersteuereinheiten vorgesehen sein. Infolgedessen kann die Kalibrierung zur Bestimmung der relativen Positionen zwischen den Robotern einfach und mit hoher Genauigkeit durchgeführt werden, wodurch die mit der Vorrichtung verbundenen Kosten reduziert werden
-
US 2009 / 0 187 276 A1 betrifft eine Verarbeitungsroboterprogramm-Erzeugungsvorrichtung, die in einem Robotersystem mit einem Vision-Sensor verwendet wird, der in der Lage ist, einen Fehler in der Form eines Werkstücks auszugleichen und die für einen Lehrvorgang erforderlichen Arbeitsstunden zu reduzieren. Bilderkennungsmodelle werden in einem grafischen Bild eines Werkstücks erzeugt, das von einer virtuellen Kamera aus betrachtet wird. Ein Verarbeitungsprogramm, das Daten von Lernpunkten zum Verarbeiten von Segmenten einer Verarbeitungslinie des Werkstücks enthält, wird erzeugt. Ein Erfassungsprogramm zum tatsächlichen Abbilden des Werkstücks wird erzeugt, und die Position und Ausrichtung jedes Segments wird, entsprechend zu jedem erzeugten Erfassungsmodell, erfasst. Eine Befehlszeile zum Berechnen eines Änderungsbetrags zwischen dem Erfassungsmodell und dem tatsächlich erfassten Bild des Werkstücks wird dem Verarbeitungsprogramm hinzugefügt. Dann wird ein Korrekturprogramm in das Verarbeitungsprogramm eingefügt, wobei das Korrekturprogramm den Lernpunkt zum Verarbeiten jedes Segments korrigieren kann.
-
JP H09 - 44 218 A offenbart eine Positions- und Lagekorrekturmethode für ein Objekt, sowie eine Lehrkurskorrekturmethode für einen Roboter. Die Methoden können die Position und die Lage des Objektes und die Arbeitsbahn des Roboters effizient und flexibel entsprechend zu Änderungen der Position des Objektkörpers und der Arbeitsumgebung korrigieren. Hierzu sind verschiedene Sensoren am Umfang des Objektes montiert und Positionsmodelle werden als Referenzen für die Positions- und Lageerfassung des Objektkörpers durch die Sensoren erzeugt. Wenn sich das Objekt in einer translatorischen Bewegung, einer Rotationsbewegung oder einer kombinierten translatorischen Rotationsbewegung befindet, messen die Sensoren das Objekt und es wird eine Evaluationsfunktion, die zwischen jeweiligen Messwerten und den, den Sensoren entsprechenden, Positionsmodellen des Körpers definiert ist, berechnet; und der Schwankungsbetrag des Körpers wird berechnet, wenn der Wert der Evaluationsfunktion minimal wird und der Translationskorrekturbetrag und der Rotationskorrekturbetrag des Körpers werden berechnet.
-
JP S63 - 58 505 A offenbart einer Robotersteuerung. Diese wird vorgesehen, um die Position eines Roboters zu einem Objekt mit hoher Genauigkeit unter Verwendung einer Kamera und einer Vision-Systems zu bestimmen. Ein Robotersteuerteil betätigt einen Roboterhauptkörper mittels Steuerung eines Offline-Programmsystems, um Positionen von Armen oder eines Endeffektors zu bestimmen. In diesem Fall wird eine Kamera nahe des Endeffektors platziert, um ein Bild des Objektes aufzunehmen und diese an ein Vision-System zu senden. Das System analysier das Bild, das durch die Kamera aufgenommen wurd, und erkennt die relative Positionsbeziehung des Hauptkörpers zwischen dem Endeffektor und dem Objekt. Falls eine Positionsverschiebung erfasst wird, wird das Ergebnisse dieses Erkennungsvorgangs an das Robotersteuerteil zum Korrigieren der durch das Offline-Programm des Robotersteuerteils ausgeführten Steuerung. Auf diese Weise werden die Positionsveschiebungen des Roboters selbst und der Objekte korrigiert und die Position des Roboters zum Objekt kann mit hoher Genauigkeit bestimmt werden.
-
JP S60 - 229 109 A offenbart ein Positionskorrektursystem, das eine visuelle Kamera verwendet. Das Positionskorrektursystem ist vorgesehen, um eine leichte Verbindung zwischen einem Positionskorrektursystem und einem Montageroboter einer beliebigen Position herzustellen, indem die relative Positionsbeziehung zwischen einem von einer visuellen Kamera erkannten Objekt und einer Referenzposition der Kamera erfasst und die gewünschte Verschiebungsrichtung und einen stufenförmigen Verschiebungsbetrag aus einer Menge von im Voraus gespeicherten Verschiebungsbeträgen ausgewählt und bereitgestellt werden, um den relative Positionsbeziehung zu korrigieren. Hierzu bewegt sich eine visuelle Kamera, die an einem Roboterarm befestigt ist, zu einer Referenzposition, welche im Voraus durch Erlernen eingestellt wurde, sobald ein Stecker in eine Buchse eines Computers gesteckt wird. Die Bilder nahe der Mitte der Buchse werden an einen Bildverarbeitungsteil gesendet und die relative Positionsbeziehung zwischen der Mitte der Buchse und der visuellen Kamera wird berechnet. Basierend auf dieser Berechnung, werden die gewünschten Verschiebungsrichtungen und stufenförmigen Verschiebungsbeträge aus den speicherten Daten ausgewählt und sukzessive an ein Robotersteuerteil gesendet. Dadurch wird die Position der Kamera korrigiert und die Mitte eines Steckers zur korrigierten Position der Kamera verschoben. Dieses Korrektursystem kann mit allen Montagerobotern verbunden sein.
-
Die vorliegende Erfindung wurde im Lichte des im Vorhergehenden dargelegten Problems gemacht, und ihre Aufgabe besteht darin, eine Robotersteuervorrichtung, die fähig ist, die Strecke von der Kamera eines Roboters zu einem abzubildenden Objekt zu messen, während der Roboter angelernt wird, und ein Verfahren zum Anlernen des Roboters zu schaffen.
-
Diese Aufgabe wird durch die Merkmale der unabhängigen Ansprüche 1 und 4 gelöst. Weitere vorteilhafte Ausführungsformen und Weiterentwicklungen sind Gegenstand der sich jeweils daran anschließenden Ansprüche.
-
Gemäß einem Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Steuern eines Roboters geschaffen. Bei dieser Vorrichtung wird eine vorbestimmte Region um die Mitte eines Rahmens eines Bilds (auf den im Folgenden, als ein „Bildrahmen“ Bezug genommen ist), das bei einer Anfangsposition einer Kamera aufgenommen wurde, als eine Beobachtungsregion eingestellt, und eine Koordinate bei der Anfangsposition wird als eine Ursprungskoordinate eingestellt. Dann wird die Kamera, wobei ihre Stellung bei der Anfangsposition beibehalten wird, in einer Richtung einer Bewegung, die durch den Benutzer eingegeben wird, auf eine Art und Weise leicht bewegt, derart, dass die Beobachtungsregion immer noch innerhalb des Bildrahmens liegt. Die Kamera wird mit anderen Worten um eine Menge bewegt, die es ermöglicht, dass ein Abschnitt des inspizierten Objekts, der durch die Beobachtungsregion spezifiziert ist, noch in dem Bildrahmen verbleibt, d. h. nicht aus dem Bild verschwindet. Eine Positionskoordinate nach der Bewegung wird dann als eine Destinationskoordinate eingestellt.
-
Eine Bewegungsstrecke der Kamera wird basierend auf der Ursprungskoordinate und der Destinationskoordinate berechnet. In der Bildregion wird eine Ähnlichkeit ein bestimmtes Niveau überschreitend maximiert, wobei die Ähnlichkeit in der Menge von Bildcharakteristiken zwischen einem Teilbild in der Beobachtungsregion, die auf das Bild der Ursprungskoordinate eingestellt ist, und dem Bild in der Destinationskoordinate besteht. Eine Bewegungsstrecke der Beobachtungsregion wird dann basierend auf einer Koordinate, die durch die definierte Bildregion angegeben ist, und einer Koordinate, die durch die Beobachtungsregion in der Ursprungskoordinate angegeben ist, als eine Zwischenkameraparallaxe berechnet.
-
Ein Abbildungsabstand bzw. eine Abbildungsstrecke von der Destinationskoordinate der Kamera zu einem abzubildenden Objekt wird dann unter Verwendung eines Triangulationsverfahrens basierend auf einer Linsen-zu-Abbildungselemente-Strecke der Kamera, die im Voraus gemerkt wird, der Bewegungsstrecke der Kamera und der Zwischenkameraparallaxe berechnet. Die Linsen-zu-Abbildungselemente-Strecke ist als die Strecke von einer Linsenmitte zu der Ebene von Abbildungselementen in der Kamera definiert. Eine Zielbogenbahn, mit der die Kamera konstant zu einem Beobachtungspunkt gerichtet wird, wird dann basierend auf der eingegebenen Richtung einer Bewegung und der Abbildungsstrecke berechnet. Die Zielbogenbahn hat die Destinationskoordinate als ihren Startpunkt und die Abbildungsstrecke als ihren Radius. Anweisungen werden somit zu einem Roboter ausgegeben, um dadurch der Kamera zu ermöglichen, sich entlang der Zielbogenbahn um eine Bewegungsmenge, die durch den Benutzer eingegeben wird, zu bewegen.
-
Der Benutzer muss genauer gesagt lediglich die Richtung einer Bewegung und die Bewegungsmenge eingeben und anweisen, um den Roboter die Änderung des Beobachtungspunkts der Kamera anzulernen bzw. beizubringen. Die Abbildungsstrecke von der Beobachtungsposition der Kamera zu dem Beobachtungspunkt kann somit automatisch berechnet werden, während die Kamera durch eine Steuereinheit und den Roboter gemäß den Anweisungen bewegt wird. Zu dem Zeitpunkt, zu dem die Abbildungsstrecke berechnet wurde, kann die Zielbewegungsbahn so erzeugt werden, dass eine Bewegungsanweisungen ausgebende Einrichtung den Beobachtungspunkt ändern kann. Dies wird der Kamera unmittelbar ermöglichen, sich zu bewegen, wobei die Abbildungsstrecke auf einem konstanten Wert beibehalten wird.
-
Wenn die Kamera leicht bewegt wird, um die Abbildungsstrecke zu berechnen, kann es zwischen einer idealen Anfangsbahn und der Zielbogenbahn einen Versatz geben. Die Strecke der leichten Bewegung kann jedoch beim Ändern des Beobachtungspunkts der Kamera ignoriert werden, da die Strecke einer Bewegungsmenge innerhalb eines Bereichs entspricht, der es ermöglicht, dass die Beobachtungsregion in den Bildrahmen fällt. Da ein anzulernender Endpunkt unvermeidbar leicht angepasst werden muss, kann ein Fehler dieses Niveaus in dem Verlauf eines Anlernens als gleich Nichts betrachtet werden. Der Benutzer muss daher eine Änderung des Beobachtungspunkts der Kamera nicht getrennt durchführen, um lediglich die Abbildungsstrecke zu berechnen. Die Arbeitslast des Benutzers kann somit gelindert werden.
-
Die Einstellung der Größe der vorbestimmten Region kann vorzugsweise geändert werden. Abhängig von den Bedingungen eines durch die Kamera abzubildenden Objekts kann die Anfangsgröße der vorbestimmten Region zum geeigneten Extrahieren einer Menge von Bildcharakteristiken, die den Beobachtungspunkt aufweisen, ungeeignet sein. Aus diesem Grund ist sichergestellt, dass die Größe der vorbestimmten Region gemäß einem abzubildenden Objekt geeignet eingestellt ist.
-
Es zeigen:
- 1 ein Diagramm, das die Konfiguration eines Steuersystems, das einen Roboter aufweist, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung darstellt;
- 2A ein Flussdiagramm, das ein Verfahren zum Ändern des Beobachtungspunktes einer Kamera gemäß dem Ausführungsbeispiel darstellt;
- 2B ein Flussdiagramm, das ein Bahnerzeugungsverfahren, das bei einem Schritt S5 von 2A durchgeführt wird, darstellt; und
- 3 bis 8 erläuternde schematische Diagramme, die den Inhalt von Verarbeitungsschritten darstellen.
-
Unter Bezugnahme auf die beigefügten Zeichnungen ist im Folgenden ein Ausführungsbeispiel der vorliegenden Erfindung beschrieben.
-
1 stellt eine Konfiguration eines Steuersystems, das einen vertikal gelenkigen (Sechs-Achsen-) Roboter 1 aufweist, dar. Dieser Roboter 1 weist eine Basis (eine Drehwelle) 2 und einen Sechs-Achsen-Arm, der auf der Basis 2 angeordnet ist, auf. Der Arm ist aus den ersten bis sechsten Armen 3 bis 8 gebildet und hat ein äußerstes Ende, an dem solche Werkzeuge TL, wie eine Hand und eine Kamera, die später beschrieben sind, befestigt sind. Die Basis 2 hat ein oberes Ende, mit dem der erste Arm 3 über ein erstes Gelenk J1 drehbar verbunden ist. Der erste Arm 3 ist über ein zweites Gelenk J2 mit einem unteren Endabschnitt des zweiten Arms 4, der sich aufwärts erstreckt, drehbar verbunden. Der zweite Arm 4 hat einen äußersten Endabschnitt, mit dem der dritte Arm 5 über ein drittes Gelenk J3 drehbar verbunden ist.
-
Der dritte Arm 5 hat ein äußerstes Ende, mit dem der vierte Arm 6 über ein viertes Gelenk J4 drehbar verbunden ist. Der vierte Arm 6 hat ein äußerstes Ende, mit dem der fünfte Arm 7 über ein fünftes Gelenk J5 drehbar verbunden ist. Der fünfte Arm 7 ist über ein sechstes Gelenk J6 mit dem sechsten Arm 8 drehbar verbunden. Die Gelenke J1 bis J6 sind mit nicht gezeigten Servomotoren versehen, durch die die Arme 3 bis 8 (oder die Wellen der Arme) adaptiert sind, um jeweils gedreht und betätigt zu werden.
-
Der Roboter 1 weist ferner eine Steuerung 11, eine Konsolensteuerung (eingebende Einrichtung) 13, eine Kamera (Abbildungseinrichtung) 21, einen Personalcomputer 23 (auf den im Folgenden lediglich als ein „Computer 23“ Bezug genommen ist), der eine Anzeige 23D hat, verbindende Kabel 12 und 18 und Kabel 24 und 25 auf. Der Roboter 1 und die Steuerung 11 sind über das verbindende Kabel 12 verbunden. Die Servomotoren, die die jeweiligen Wellen der Arme des Roboters 1 betätigen, können somit durch die Steuerung 11 gesteuert werden. Die Konsolensteuerung 13 weist einen horizontal langen Körper 14, Griffe 15L und 15R, Spaßtasten- bzw. Joypads 16L und 16R und Knöpfe 17L und 17R auf. Die Griffe 15L und 15R sind an beiden Enden des horizontal langen Körpers 14 vorgesehen, sodass der Benutzer die Griffe mit der linken und rechten Hand halten kann. Die Joypads 16L und 16R sind derart angeordnet, dass der Benutzer die Joypads mit den Daumen in dem Zustand eines Haltens der Griffe 15L und 15R mit beiden Händen herunterdrücken und betreiben kann. Die Knöpfe 17L und 17R sind auf der oberen Seite, wie in der Fig. zu sehen ist, angeordnet, sodass der Benutzer die Knöpfe mit den Zeigefingern herunterdrücken und steuern kann.
-
Die Kamera 21 verwendet eine CCD (CCD = charge coupled device = ladungsgekoppelte Vorrichtung) oder einen CMOS-Bildsensor und ist an dem Arm 8 des Roboters 1 vorgesehen. Ein Bild, das ein abzubildendes Objekt 22 aufweist, wird durch die Kamera 21 aufgenommen. Wie im Vorhergehenden erwähnt ist, ist der Computer 23 über das Kabel 24 mit der Steuerung 11 verbunden.
-
In dem Computer 23 ist eine Speicherungseinheit (Speichereinrichtung), wie zum Beispiel ein Speicher oder eine Festplatte, aufgenommen. Die Konsolensteuerung 13 ist über das verbindende Kabel 18 mit dem Computer 23 verbunden und ist adaptiert, um über eine Kommunikationsschnittstelle zwischen der Konsolensteuerung 13 an sich und dem Computer 23 eine Hochgeschwindigkeitsdatenübertragung durchzuführen. Informationen in der Form von betätigenden Signalen oder dergleichen, die als ein Resultat des Betriebs der Joypads 16L und 16R eingegeben werden, werden über den Computer 13 von der Konsolensteuerung 13 zu der Steuereinheit 11 gesendet. Die Kamera 21 ist über das Kabel 25 mit dem Computer 23 verbunden. Bilddaten, die durch die Kamera 21 erfasst werden, werden zu dem Computer 23 gesendet und auf der Anzeige 23D angezeigt.
-
Nun Bezug nehmend auf 2A und 2B als auch auf 3 bis 8 ist im Folgenden das vorliegende Ausführungsbeispiel beschrieben. 2A ist ein Flussdiagramm, das ein Ansichtspunktänderungsverfahren darstellt. Dieses Verfahren wird automatisch durchgeführt, wenn durch den Benutzer durch eine Konsolensteuerung 13 für die Änderung einer Abbildungsposition (Position eines Beobachtungspunktes) ein Anlernen durchgeführt wird, was eine Abbildungsstrecke der Kamera 21 hält. 2B ist ein Flussdiagramm, das genauer gesagt ein „Bahnerzeugungsverfahren“, das bei einem Schritt S5 von 2A durchgeführt wird, darstellt. 3 bis 8 sind Diagramme zum schematischen Erläutern des Inhalts der Verarbeitungsschritte. Diese Verarbeitungsschritte werden hauptsächlich unter Verwendung des Computers 23 durchgeführt.
-
Wie in 2A gezeigt, wird eine Schleife des Ansichtspunktänderungsverfahrens von den Schritten S1 bis S10 mit dem EIN-Betrieb des Benutzers des Joypads 16R in einer Richtung, während der Benutzer den EIN-Betrieb des Knopfs 17R hält (Schritt S0), ausgeführt. Bei dem Schritt S2 kann der Benutzer die Konsolensteuerung 13 verwenden, um einzugeben und anzuweisen, in welcher Richtung und mit welcher Geschwindigkeit (Winkelgeschwindigkeit) die Kamera 21, die an dem äußersten Ende des Arms 8 des Roboters 1 befestigt ist, bewegt werden sollte (Schritt S2). In diesem Fall kann der Benutzer bezüglich der Menge einer Kippung des Joypads 16L in einer bestimmten Richtung bei dem EIN-Betrieb Anweisungen zu der Bewegungsgeschwindigkeit abgeben. Die Zeitdauer, während derer der EIN-Betrieb ausgeführt wird, entspricht der Zeitdauer einer Bewegung mit der im Vorhergehenden angewiesenen Bewegungsgeschwindigkeit.
-
3 zeigt ein Kamerakoordinatensystem ∑C, das auf eine Linse der Kamera 21 zentriert ist, und ein Koordinatensystem ∑I eines Bilds (das ein Vorlagenbild „N×M“ aufweist), das durch die Kamera 21 aufgenommen wird, bei dem Fall, bei dem die Kamera 21 bei einer Anfangsposition ist. Das Vorlagenbild dient als eine Vorlage für ein Vorlagenabgleichen bei einer Bildverarbeitung. In der folgenden Beschreibung ist, wenn eine Angabe eines „(Vektors)“ einem Bezugssymbol folgt, das Bezugsymbol ein Symbol, das ursprünglich durch eine Vektornotation ausgedrückt werden sollte (mit jedoch den Ausnahmen jener Bezugsymbole, die eine Angabe eines „Vektors“ haben).
-
Der Benutzer kann, während dieser die Anzeige 23D des Computers 23 sieht, anweisen, in welcher Richtung in dem Bild (Einheitsrichtungsvektor dI in dem Bildkoordinatensystem ΣI), mit welcher Geschwindigkeit (Winkelgeschwindigkeit ω) und wie lange der Benutzer die Kamera 21 bewegen möchte. Die Koordinate zu der Zeit, zu der die Kamera 21 bei der Ausgangsposition ist, ist als eine Ursprungskoordinate gespeichert (Ursprungskoordinaten-Einstelleinrichtung).
-
Es wird anschließend bestimmt, ob die Geschwindigkeit, die bei dem Schritt S2 angewiesen wird, null ist oder nicht (Schritt S3). Wenn die Geschwindigkeit nicht null ist (NEIN), wird bestimmt, ob eine Bahn zum Ändern des Beobachtungspunkts erzeugt wurde oder nicht (Schritt S4). Wenn keine Bahn erzeugt wurde (NEIN), schreitet die Steuerung zu einem Schritt S5 fort, um das Bahnerzeugungsverfahren, das in 2B gezeigt ist, auszuführen. Nachdem Abschließen des Bahnerzeugungsverfahrens wird bestimmt, ob der Abschluss ein „normaler Abschluss“ war oder nicht (Schritt S6). Wenn ein „normaler Abschluss“ erreicht wurde (JA), wird die Kamera 21 entlang der erzeugten Bahn gemäß der Bewegungsmenge, die bei dem Schritt S2 angewiesen wird, bewegt (Schritt S7). Wie es im Folgenden beschrieben ist, entspricht dieser Verarbeitungsschritt einer Bahnkorrektur zum Verschieben der Bewegungsbahn der Kamera 21 von einer vorübergehenden Bahn zu einer Zielbahn.
-
Wenn ein Abschluss des Ansichtspunktänderungsverfahrens durch den Benutzer angewiesen wird (JA bei den Schritten S8 und S9), wird das Verfahren abgeschlossen. Wenn ein Abschluss des Ansichtspunktänderungsverfahrens durch den Benutzer nicht angewiesen wird (NEIN bei Schritt S9), kehrt die Steuerung zu dem Schritt S1 zurück, um die Schleife zu wiederholen. Wenn eine „JA“ -Bestimmung bei dem Schritt S3 vorgenommen wird, schreitet die Steuerung zu einem Schritt S8 fort. Wenn eine „JA“-Bestimmung bei dem Schritt S4 vorgenommen wird, schreitet die Steuerung zu dem Schritt S7 fort. Wenn das Bahnerzeugungsverfahren bei dem Schritt S5 in einem abnormalen Abschluss resultiert (NEIN bei Schritt S6), wird das Ansichtspunktänderungsverfahren unverzüglich abgeschlossen.
-
Bezug nehmend auf 2B ist das Bahnerzeugungsverfahren beschrieben. Bei dem Zustand, bei dem die Kamera 21 bei der Anfangsposition ist, wird zuerst ein Bild 1 aufgenommen. In 3 ist ein Beobachtungspunkt Pc (Vektor; der Punkt, wie er von dem Kamerakoordinatensystem ΣC, das in der Mitte der Linse liegt, gesehen wird, wobei der Punkt in dem Anfangszustand unbekannt ist), der die Drehungsmitte der Kamera 21 ist, ein Punkt, der auf ein Bildmittenpixel OI (Vektor) in dem Bildkoordinatensystem ∑I projiziert wird. In dem Bild, das bei der Anfangsposition aufgenommen wird, werden benachbarte (N×M) Pixel um das Pixel, auf das der Beobachtungspunkt Pc projiziert wird, als eine Beobachtungsregion eingestellt. Eine Gruppe von Pixeln, die zu der Beobachtungsregion gehört, wird als ein Vorlagenbild registriert (Schritt S12).
-
Die Gruppe von Pixeln wir genauer gesagt beispielsweise in dem Speicher oder der Festplatte, die beispielsweise in dem Computer 23 aufgenommen ist, gespeichert. Mit als N = (Breite eines Bilds) / 4, M = (Höhe eines Bilds) / 4 eingestellten Anfangswerten kann die Größe (Vergrößerung) der Beobachtungsregion unter Verwendung des Joypads 16R der Konsolensteuerung 13 angepasst werden. Die Beobachtungsregion wird zu dem Zeitpunkt, zu dem der Knopf 17R EIN-geschaltet wird, festgelegt.
-
Die Arme 3 bis 8 des Roboters 1 werden dann wie erforderlich bewegt, wobei die Stellung der Kamera 21 bei der Anfangsposition für eine leicht parallele Translation der Kamera 21 beibehalten wird (Schritt S13). Eine Matrix ist hier als CHI bezeichnet, mit der das Bildkoordinatensystem ∑I in das Kamerakoordinatensystem ∑C gewandelt wird. Eine Matrix ist ferner als BHC bezeichnet, mit der das Kamerakoordinatensystem ∑C in ein Basiskoordinatensystem ∑B, das in 1 gezeigt ist, des Roboters 1 gewandelt wird. Die Wandlungsmatrix CHI ist aus der Spezifikation der Kamera 21 ohne Weiteres bekannt (oder kalibriert), während die Wandlungsmatrix BHC aus der Spezifikation des Roboters 1 ohne Weiteres bekannt ist (oder kalibriert ist).
-
Der Ausgangspunkt des Kamerakoordinatensystems ∑
C ist als Oc (Vektor) bezeichnet. In diesem Fall sei eine dreidimensionale Ebene ΔP
0BP
1BP
2B (Bewegungsbeschränkungsebene), die durch drei Punkte, d. h. ein Bildmittenpixel (Formel (1)) gesehen von dem Basiskoordinatensystem ∑
B, einen Punkt einer leichten Verlagerung (Formel (2)), der durch eine angewiesene Drehungsrichtung bestimmt ist, und eine Mitte (Formel (3)) der Linse (siehe
4), konfiguriert ist, angenommen.
-
In diesem Fall wird der Roboter
1 eine Menge, die durch die folgende Formel (4) ausgedrückt ist, um die vorhergehenden drei Punkte (d. h. die Kamera
21) auf die Beschränkungsebene ΔP
0BP
1BP
2B zu beschränken, translatiert.
-
Ein Wert für s
t ist hier derart bestimmt, dass die Norm des Vektors T
B durch folgende Formel (5) ausgedrückt ist.
-
Wie in 5 gezeigt ist, gibt DIMG eine kalibrierte und bekannte „Linsen-zu-Abbildungselemente-,, Strecke [mm] der Kamera 21 (die als die Strecke von einer Linsenmitte zu der Ebene von Abbildungselementen in der Kamera 21 definiert ist) an, DDSP gibt eine zulässige Parallaxe [mm] an, die es ermöglicht, dass die Überwachungsregion nach der Bewegung der Kamera 21 in dem Bild verbleibt (wobei DDSP als die Strecke von dem Ende der Beobachtungsregion zu dem Ende des Bilds auf einer linearen Linie, die von der Mitte des Bilds in einer Richtung von -dI (Vektor) gezeichnet ist, definiert ist), und DNEAR gibt eine untere Grenze eines Fotografierbereichs [mm], der durch die Spezifikation der Linse definiert ist, an. Die Formel (5) drückt somit eine Bewegungsbedingung aus, die ermöglicht, dass die Beobachtungsregion in dem Bild unter der Bedingung bleibt, dass die Beobachtungsregion an der unteren Grenze des Fotografierbereichs DNEAR liegt. Wenn ein weiteres Bild 3 durch die Kamera 21 bei der Position nach der Bewegung aufgenommen wird, werden die Bilddaten zusammen mit der Abbildungsposition (der Destinationskoordinate) registriert (Schritt S14, Destinationskoordinaten-Einstelleinrichtung).
-
Bei den im Vorhergehenden beschriebenen Verarbeitungsschritten wurde die Kamera
21 auf der Bewegungsbeschränkungsebene parallel translatiert. Der Beobachtungspunkt in dem Bild, das nach der Bewegung aufgenommen wurde, liegt daher auf einer Linie (einer Kernlinie), die durch die folgende Formel (6) in dem Bildkoordinatensystem Σ
I ausgedrückt ist (Kernbeschränkung, siehe
6).
-
Diese Linie wird abgetastet, um bei der Position jedes der Pixel eine Ähnlichkeit zu berechnen. Durch diese Berechnung wird eine Bildposition, die einen Grauwert am nächsten zu demselben in einem Vorlagenbild 1 hat, unter Verwendung eines bestimmten Verfahrens, wie z. B. eines Verfahrens einer normalisierten Korrelation (d. h. dies entspricht einem Definieren einer Bildposition (eines dem Überwachungspunkt entsprechenden Punktes), die eine maximale Ähnlichkeit, die ein bestimmtes Niveau überschreitet, in der Menge von Bildcharakteristiken hat), gesucht. Dann wird Pc (Vektor) unter Verwendung eines Triangulationsverfahrens basierend auf der Bildposition, d. h. einem entsprechenden Punkt PI (Vektor), gesehen von einer Bildkoordinate ∑I' nach der Bewegung berechnet (Schritte S15 bis S18). Betrachtend die Ähnlichkeit eines Bilds kann bei dem Fall, bei dem das „bestimmte Niveau“ in dem Vorhergehenden Ausdruck „bestimmtes Niveau oder mehr“ eingestellt ist, der eingestellte Wert beispielsweise etwa 0,7 (Ähnlichkeit von 70 %) sein.
-
Hier ist der Ausgangspunkt der Basiskoordinate ∑
B als O
B (Vektor) bezeichnet, die Mitte des Bilds (die Linsen-zu-Abbildungselemente-Strecke der Kamera
21) gesehen von dem Kamerakoordinatensystem ∑
C vor der Bewegung ist, wie es durch die folgende Formel (7) ausgedrückt ist, bezeichnet, und der entsprechende Punkt gesehen von dem Kamerakoordinatensystem ∑
C' nach der Bewegung ist, wie durch die folgende Formel (8) ausgedrückt ist, bezeichnet.
-
Wie im Vorhergehenden erwähnt ist, ist PI (Vektor) in dem zweiten Ausdruck auf der rechten Seite der Formel (8) ein Positionsvektor, der in der Bildkoordinate ∑I' den entsprechenden Punkt, der aus dem Abtasten der Kernlinie resultiert, angibt.
-
Die Bewegungsmenge des Roboters
1 (Bewegungsstrecke der Kamera) gesehen von dem Kamerakoordinatensystem Σ
C vor der Bewegung wird aus der folgenden Formel (9) berechnet (Zwischenkamerabewegungsstrecken berechnende Einrichtung).
-
Der Beobachtungspunkt Pc (Vektor) wird dann unter Verwendung eines Triangulationsverfahrens (siehe
7) aus der folgenden Formel (10) berechnet.
-
Der Nenner der Formel (10) entspricht der „Zwischenkameraparallaxe (Bewegungsstrecke einer Beobachtungsregion)“ (Zwischenkameraparallaxen berechnende Einrichtung, Abbildungsabstand berechnende Einrichtung).
-
Ein Beobachtungspunkt Pc' (Vektor) gesehen von dem Kamerakoordinatensystem ∑
C' bei der Bewegungsdestination ist ferner durch die folgende Formel (11) ausgedrückt.
-
Bei einem Schritt S16 wird, wenn der entsprechende Punkt, dessen Grauwert nahe demselben in dem Vorlagenbild ist, nicht gefunden werden kann, ermöglicht, dass die Anzeige 23D eine Fehlernachricht darauf dementsprechend (Schritt S19) für den Abschluss des Bahnerzeugungsverfahrens (mit in diesem Fall einem „abnormalen Abschluss“) anzeigt. Bei einem Schritt S18 wird ferner eine Zielbahn (Bogenbahnzentrierung auf den Beobachtungspunkt Pc, mit der die Bahn der Kamera 21 konstant auf den Beobachtungspunkt gerichtet ist) unter Verwendung der Streckendaten des Beobachtungspunkts PC' (Vektor), die bei dem Schritt S17 für den Abschluss des Bahnerzeugungsverfahrens (mit in diesem Fall einem „normalen Abschluss“) berechnet werden, als ihr Radius erzeugt.
-
Nach einem Abschluss des Bahnerzeugungsverfahrens werden die im Vorhergehenden erwähnten Schritte S6 und S7 von 2A ausgeführt. Die Bewegungsbahn der Kamera 1 wird genauer gesagt von der aktuellen vorübergehenden Bahn, die einen Startpunkt in der Ursprungskoordinate hat, zu einer Zielbahn korrigiert (Bewegungsanweisungen ausgebende Einrichtung). Da die Bewegungsstrecke auf der vorübergehenden Bahn verglichen mit der Strecke zu der Position des Beobachtungspunkts sehr klein ist, kann ein Fehler zwischen einer idealen Bahn und der Zielbahn ignoriert werden.
-
Gemäß dem vorliegenden Ausführungsbeispiel, das soweit beschrieben ist, wird beim Anlernen des Roboters 1 eine Region, die eine Zahl N × M von Pixeln hat, als eine Beobachtungsregion um die Mitte eines Bildrahmens, der bei der Anfangsposition der Kamera 21 abgebildet wurde, eingestellt, und die Koordinate der Anfangsposition wird als eine Ursprungskoordinate eingestellt. Die Kamera 21 wird dann, wobei ihre Stellung bei der Anfangsposition beibehalten wird, um eine Menge, die TB (Vektor) entspricht, in einer Richtung, die durch den Benutzer eingegeben und angewiesen wird, leicht bewegt, sodass die Beobachtungsregion innerhalb eines Bereichs liegen kann, der in den Bildrahmen fällt. Die Positionskoordinate nach der Bewegung wird dann als eine Destinationskoordinate eingestellt.
-
Dann wird unter Verwendung der Ursprungskoordinate und der Destinationskoordinate eine Bewegungsstrecke Tc der Kamera 21 berechnet. Innerhalb des Bilds, das auf der Destinationskoordinate erfasst wird, wird dann eine Bildposition, deren Pixelintensitäten am ähnlichsten zu denselben der Beobachtungsregion sind, als ein dem Beobachtungspunkt entsprechender Punkt spezifiziert. Eine Bewegungsstrecke der Beobachtungsregion wird dann auf einer Entsprechungspositions- (Koordinaten-) Beziehung zwischen dem entsprechenden Punkt und dem Beobachtungspunkt als eine Zwischenkameraparallaxe, die durch |P2C(Vektor)-P1C (Vektor)| ausgedrückt ist, berechnet.
-
Eine Abbildungsstrecke von der Destinationskoordinate der Kamera 21 zu dem Beobachtungspunkt Pc wird dann unter Verwendung eines Triangulationsverfahrens basierend auf der Linsen-zu-Abbildungselemente-Strecke der Kamera 21, die im Voraus gemerkt wird, der Bewegungsstrecke der Kamera und der Zwischenkameraparallaxe berechnet. Eine Zielbogenbahn, mit der die Kamera 21 zu dem Beobachtungspunkt konstant gerichtet ist, wird dann basierend auf der eingegebenen Richtung einer Bewegung und der Abbildungsstrecke berechnet. Die Zielbogenbahn hat die Destinationskoordinate als ihren Startpunkt und die Abbildungsstrecke als ihren Radius. Anweisungen werden dann zu dem Roboter 1 ausgegeben, sodass die Kamera 21 um eine Bewegungsmenge, die durch den Benutzer zusammen mit der Zielbogenbahn eingegeben wird, bewegt werden kann.
-
Der Benutzer muss genauer gesagt lediglich eine Richtung einer Bewegung und eine Bewegungsmenge eingeben und anweisen, um dem Roboter 1 die Änderung des Beobachtungspunktes der Kamera 21 anzulernen bzw. beizubringen. Während es somit die Steuereinheit 11 und der Roboter 1 ermöglichen, dass sich die Kamera 21 gemäß den Anweisungen bewegt, kann die Abbildungsstrecke von dem Beobachtungspunkt der Kamera 21 zu dem Beobachtungspunkt automatisch berechnet werden. Die Zielbogenbahn für die Änderung des Beobachtungspunktes kann zu dem Zeitpunkt erzeugt werden, zu dem die Abbildungsstrecke berechnet wurde. Dies wird einen unmittelbaren Übergang zu der Bewegung der Kamera 21 ermöglichen, wobei die Abbildungsstrecke auf einem konstanten Wert gehalten wird.
-
Wenn die Kamera 21 leicht bewegt wird, um die Abbildungsstrecke zu berechnen, kann es in diesem Fall zwischen einer idealen Anfangsbahn und der Zielbogenbahn einen Versatz geben. Die Strecke der leichten Bewegung kann jedoch beim Ändern des Beobachtungspunkts der Kamera 21 ignoriert werden, da die Strecke einer Bewegungsmenge innerhalb eines Bereichs entspricht, der es ermöglicht, dass die Beobachtungsregion in den Bildrahmen fällt. Da ein anzulernender Endpunkt unvermeidbar leicht angepasst werden muss, kann ein Fehler dieses Niveaus im Verlauf eines Anlernens als gleich Nichts betrachtet werden. Der Benutzer muss daher eine Änderung des Beobachtungspunkts der Kamera 21 nicht lediglich dafür getrennt durchführen, um die Abbildungsstrecke zu berechnen. Die Arbeitslast des Benutzers kann somit gelindert werden.
-
Der Unterschied der Startposition einer Bewegung zwischen der Ursprungskoordinate und der Destinationskoordinate ist somit so klein, dass der Unterschied bezüglich des Anlernbetriebs ignoriert werden kann. Der Anlernbetrieb kann dementsprechend durch Erzeugen der Bogenbahn unter Verwendung der Abbildungsstrecke von der Destinationskoordinate als ein Bezug zu dem Beobachtungspunkt und Ermöglichen, dass sich die Kamera 21 direkt und gleichmäßig entlang der Bahn bewegt, gleichmäßig entwickelt werden.
-
Es ist ferner sichergestellt, dass die Größe der Beobachtungsregion durch den Benutzer geändert werden kann. Abhängig von den Bedingungen eines durch die Kamera 21 abzubildenden Objekts kann die Anfangsgröße der vorbestimmten Region zum geeigneten Extrahieren einer Menge von Bildcharakteristiken, die den Beobachtungspunkt aufweisen, ungeeignet sein. Aus diesem Grund wird sichergestellt, dass die Größe der vorbestimmten Region gemäß einem abzubildenden Objekt geeignet eingestellt wird.
-
Es ist offensichtlich, dass die „Steuereinheit“, die in den Ansprüchen zitiert ist, der Steuereinheit 11 und dem Computer 23 bei dem vorhergehenden Ausführungsbeispiel entspricht.
-
Die vorliegende Erfindung soll nicht auf das im Vorhergehenden beschriebene und in den Zeichnungen dargestellte Ausführungsbeispiel begrenzt sein, kann jedoch, wie im Folgenden dargelegt ist, umfassend modifiziert sein.
-
Die Anfangsgröße der Beobachtungsregion muss nicht auf N = (Breite eines Bildes) /4, M = (Höhe eines Bilds) /4, begrenzt sein, sondern kann wie geeignet geändert sein. Die Größe der Beobachtungsregion kann ferner im Voraus fest eingestellt sein.
-
Das Verfahren einer normalisierten Korrelation muss ferner nicht notwendigerweise verwendet sein, es können jedoch andere Verfahren beim Berechnen der Ähnlichkeit der Menge von Bildcharakteristiken zwischen dem Teilbild in der Beobachtungsregion der Ursprungskoordinate und dem Bild der Destinationskoordinate verwendet sein.
-
Dieselbe kann so konfiguriert sein, dass die Konsolensteuerung 13 mit der Steuereinheit 11 verbunden ist, um betätigende Signale zu der Steuereinheit 11 direkt zu senden, und dass die betätigenden Signale ferner über das Kabel 24 zu dem Computer 23 gesendet werden.
-
Das System kann ferner eine Konfiguration haben, die sich auf die Steuereinheit 11 konzentriert. Bei der Konfiguration können genauer gesagt Funktionen des Computers 23 in der Steuereinheit 11 integriert sein, und die Konsolensteuerung 13 und die Kamera 21 können für die Sendung von Bilddaten mit der Steuereinheit 11 verbunden sein.
-
Die Bilddaten der Kamera 21 können ferner zu der Steuereinheit 11 gesendet werden und können dann über das Kabel 24 von der Steuereinheit 11 zu dem Computer 23 gesendet werden.
-
Die eingebende Einrichtung muss nicht auf die Konsolensteuerung 13 begrenzt sein, sondern kann eine Joysticksteuerung oder ein Anlernpendant sein.
-
Die Steuervorrichtung und das Anlernverfahren gemäß der vorliegenden Erfindung können auf gelenkige Fünf-Achsen-Roboter und gelenkige Sieben-Achsen- oder Mehrachsen-Roboter, die nicht auf den bei dem Ausführungsbeispiel beschriebenen gelenkigen Sechs-Achsen-Roboter begrenzt sind, angewendet sein.