-
ALLGEMEINER STAND DER TECHNIK
-
1. Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft ein Positioniersystem unter Verwendung eines Roboters und betrifft insbesondere eine Technik zum Verwenden eines Roboters als eine hochgenaue Positioniervorrichtung durch Nutzung einer optischen Rückmeldung unter Verwendung eines Visionssensors.
-
2. Beschreibung des Standes der Technik
-
Ein herkömmlicher Industrieroboter kann durch ein Einlern-Wiedergabe-Verfahren gesteuert werden, wodurch der Roboter eine eingelernte Bewegung präzise wiederholen kann. Wenn ein solcher Roboter verwendet wird, um ein Objekt zu greifen und es an einen vorbestimmten Platz zu fördern, kann daher der Roboter als eine Positioniervorrichtung betrachtet werden.
-
Als ein relevantes Dokument des Standes der Technik offenbart
JP 3702257 B eine Roboter-Handhabungsvorrichtung, die einen Roboter als eine Positioniervorrichtung verwendet, wobei selbst dann, wenn eine Position eines durch eine Roboterhand gegriffenen Objekts falsch ausgerichtet ist, das Objekt durch Messen und Korrigieren der Fehlausrichtung unter Verwendung eines Visionssensors präzise positioniert werden kann.
-
Des Weiteren offenbart
JP 2015-150636 A ein Robotersystem, das umfasst: einen durch ein Programm gesteuerten Roboter zum Ausführen eines vorbestimmten Arbeitsvorgangs in Bezug auf ein Objekt, das sich an einer ersten Objektposition auf einer Ebene befindet; einen ersten Roboterpositions-Speicherteil zum Speichern einer Position eines Vorderendes eines Arms, der eine vorbestimmte Positionsbeziehung relativ zu der ersten Objektposition aufweist; einen Sollzustands-Datenspeicherteil zum Speichern eines Merkmalsbetrags des Objekts auf einem Bild einer Kamera; einen Roboterbewegungs-Berechnungsteil zum Berechnen eines Bewegungsbetrags des Roboters aus einer beliebigen Ausgangsposition, sodass ein Merkmalsbetrag des an einer zweiten Objektposition befindlichen Objekts mit dem Merkmalsbetrag der Sollzustandsdaten übereinstimmt; und einen Korrekturdaten-Berechnungsteil zum Berechnen von Korrekturdaten des Programms basierend auf einer Differenz zwischen der ersten Roboterposition und einer zweiten Roboterposition, wenn das Vorderende des Arms basierend auf dem Bewegungsbetrag bewegt wird.
-
Im Allgemeinen ist ein Roboter eine aus Metall usw. bestehende Konstruktion, und daher wird eine Arm und/oder ein Untersetzungsgetriebe desselben aufgrund einer Änderung einer Umgebungstemperatur thermisch ausgedehnt oder zusammengezogen, wodurch dessen Abmessung verändert wird. Da das Untersetzungsgetriebe ein Zahnspiel aufweist, kann eine Stoppstellung des Roboters abhängig von einem Bewegungspfad in Richtung auf eine Sollposition einen Fehler aufweisen. Des Weiteren ist der Betrag des Zahnspiels aufgrund einer zeitlichen Änderung, wie Abnutzung, nicht konstant. Wenn außerdem der Roboter das Positionieren eines elastischen Teils ausführt, während der elastische Körper verformt wird, kann die Position des Objekts oder der elastische Körper aufgrund einer externen Kraft von dem elastischen Körper von einer beabsichtigten Position abweichen.
-
In vielen herkömmlichen Positioniervorrichtungen oder -Verfahren wird der Fehler aufgrund der thermischen Verformung, des Zahnspiels, der zeitlichen Änderung oder der externen Kraft, wie oben beschrieben, nicht berücksichtigt. Andererseits ist es schwierig, einen Roboter herzustellen, der keine derartigen Fehler aufweist, und es ist schwierig, solche Fehler durch Analysieren der Fehler vollständig zu korrigieren.
-
JP 3702257 B offenbart zum Beispiel eine Roboterhandhabungsvorrichtung, die einen Roboter als eine Positioniervorrichtung verwendet, wobei selbst dann, wenn eine Position eines durch eine Roboterhand gegriffenen Objekts falsch ausgerichtet ist, das Objekt durch Messen und Korrigieren der Fehlausrichtung unter Verwendung eines Visionssensors präzise positioniert werden kann.
-
Obwohl des Weiteren in
JP 2015-150636 A der Roboter als eine Positioniervorrichtung verwendet wird, ist es nicht beabsichtigt, einen Fehlerfaktor, wie etwa Wärmedehnung, zu eliminieren und eine präzise Positionierung auszuführen. Andererseits wird beabsichtigt, einen Arbeitsvorgang entlang eines komplizierten Bewegungspfads mühelos auszuführen, indem eine optische Rückmeldung verwendet wird, ohne dass die Bedienperson ein Roboter-Koordinatensystem berücksichtigt oder erkennt, während der Roboter nicht als die Positioniervorrichtung verwendet wird.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Es ist eine Aufgabe der vorliegenden Erfindung, ein Positioniersystem unter Verwendung eines Roboters bereitzustellen, das in der Lage ist, einen Fehlerfaktor des Roboters, wie eine Wärmeausdehnung, zu eliminieren oder mit dem ein Zahnspiel eliminiert werden kann, und eine Positionierung des Roboters mit einer Genauigkeit auszuführen, die höher als eine dem Roboter eigene Positionsgenauigkeit ist.
-
Ein Aspekt der vorliegenden stellt ein Positionssystem bereit, das umfasst: einen Roboter mit einem beweglichen Arm; einen optischen Merkmalsabschnitt, der an einem von einem Vorderende des Arms oder einer festen Position außerhalb des Roboters bereitgestellt ist; mehrere Visionssensoren, die an dem anderen von dem Vorderende des Arms oder der festen Position außerhalb des Roboters bereitgestellt sind und dazu eingerichtet sind, den optischen Merkmalsabschnitt zu erfassen; einen Merkmalsbetrags-Detektionsteil, der dazu eingerichtet ist, einen Merkmalsbetrag, der mindestens eines von einer Position, einer Stellung und einer Größe des optischen Merkmalsabschnitts umfasst, auf einem durch die mehreren Visionssensoren erfassten Bild zu detektieren; einen Solldaten-Speicherteil, der dazu eingerichtet ist, den durch den Merkmalsbetrags-Detektionsteil detektierten Merkmalsbetrag als einen ersten Merkmalsbetrag zu speichern, während das Vorderende des Arms an einer vorbestimmten Vorgabeposition positioniert ist; ein Roboterbewegungsbetrags-Berechnungsteil, der eingerichtet ist, um: den Merkmalsabschnitt unter Verwendung der Visionssensoren zu einem Zeitpunkt zu erfassen, der sich von dem, zu dem der erste Merkmalsbetrag detektiert wird, unterscheidet, während das Vorderende des Arms an der oder nahe bei der vorbestimmten Vorgabeposition positioniert ist, um einen durch den Merkmalsbetrags-Detektionsteil detektierten zweiten Merkmalsbetrag zu erhalten; und einen ersten Vorgabebewegungsbetrag des Roboters basierend auf einer Differenz zwischen dem zweiten Merkmalsbetrag und dem in dem Solldaten-Speicherteil gespeicherten ersten Merkmalsbetrag so zu berechnen, dass der zweite Merkmalsbetrag mit dem ersten Merkmalsbetrag in Bezug auf alle Visionssensoren übereinstimmt; einen Vorgabebewegungsbetrags-Anpassungsteil, der dazu eingerichtet ist, einen zweiten Vorgabebewegungsbetrag basierend auf dem ersten Vorgabebewegungsbetrag und einem aus mechanischen Eigenschaften des Roboter bestimmten Parameter zu berechnen; und einen Bewegungsanweisungsteil, der dazu eingerichtet ist, das Vorderende des Arms basierend auf dem zweiten Vorgabebewegungsbetrag anzutreiben, wobei Vorgabebewegungsbetrags-Anpassungsteil und der Bewegungsanweisungsteil dazu eingerichtet sind, die Berechnung des zweiten Vorgabebewegungsbetrags und das Antreiben des Vorderendes des Arms basierend auf dem zweiten Vorgabebewegungsbetrag zu wiederholen, bis der erste Vorgabebewegungsbetrag gleich groß oder kleiner als ein vorbestimmter Schwellenwert ist.
-
In einer bevorzugten Ausführungsform ist der Vorgabebewegungsbetrags-Anpassungsteil eingerichtet, um: den ersten Vorgabebewegungsbetrag als den zweiten Vorgabebewegungsbetrag einzusetzen, wenn der erste Vorgabebewegungsbetrag gleich groß oder höher als der aus den mechanischen Eigenschaften des Roboters bestimmte Parameter ist; und den zweiten Vorgabebewegungsbetrag als einen Wert einzusetzen, der durch Multiplizieren des ersten Vorgabebewegungsbetrags mit einem Koeffizienten erhalten wird, der niedriger als Eins ist, wenn der erste Vorgabebewegungsbetrag kleiner als der Parameter ist, der aus den mechanischen Eigenschaften des Roboters bestimmt wird.
-
In einer weiteren bevorzugten Ausführungsform ist der Vorgabebewegungsbetrag-Anpassungsteil eingerichtet, um:
einen durch die Bewegung des Roboters erzeugten Bewegungsbetrag eines jeden beweglichen Teils des Roboters basierend auf dem ersten Vorgabebewegungsbetrag zu berechnen; und den zweiten Vorgabebewegungsbetrag basierend auf dem Bewegungsbetrag jedes beweglichen Teils zu berechnen.
-
In einer weiteren bevorzugten Ausführungsform ist der Vorgabebewegungsbetrag-Anpassungsteil eingerichtet, um: eine Leistungsverschlechterung des Roboters aufgrund einer zeitlichen Änderung einer Arbeitssituation des Roboters zu schätzen; den aus den mechanischen Eigenschaften des Roboters bestimmten Parameter basierend auf der Schätzung anzupassen; und den zweiten Vorgabebewegungsbetrag basierend auf dem ersten Vorgabebewegungsbetrag und dem angepassten Parameter zu berechnen.
-
In dem Positioniersystem können die mehreren Visionssensoren einen Merkmalsabschnitt erfassen. Ansonsten können in dem Positioniersystem die mehreren Visionssensoren jeweils mehrere Merkmalsabschnitte erfassen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die obengenannten und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden durch die folgende Beschreibung von deren bevorzugten Ausführungsformen mit Bezug auf die beigefügten Zeichnungen deutlicher werden, wobei:
-
1 eine Ansicht ist, die eine schematische Ausgestaltung eines Positioniersystems gemäß einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
-
2 eine Ansicht ist, die beispielhaft eine Hand eines in dem Positioniersystem von 1 umfassten Roboters und ein durch die Hand gegriffenes Objekt zeigt;
-
3 ein Funktionsblockschaltbild des Positioniersystems von 1 ist;
-
4 ein Ablaufdiagramm ist, das ein Beispiel eines Ablaufs zeigt, wenn das Positioniersystem von 1 in Betrieb gesetzt wird;
-
5 ein Ablaufdiagramm ist, das ein Beispiel eines Vorgangs ist, wenn das Positioniersystem von 1 betrieben wird;
-
6 eine Ansicht ist, die beispielhaft ein Bild eines Merkmalsabschnitts zeigt, in dem die Merkmalsposition beim Speichern von Solldaten durch eine gestrichelte Linie angezeigt wird und derselbe Merkmalsabschnitt zum aktuellen Zeitpunkt durch eine durchgezogene Linie angezeigt wird;
-
7 eine Ansicht ist, die ein Beispiel zum Berechnen eines Vorgabebewegungsbetrags, wenn ein Fehlerbereich aufgrund eines Spiels vorhanden ist, erklärt; und
-
8 eine Ansicht ist, die eine schematische Ausgestaltung eines Positioniersystems gemäß einer zweiten Ausführungsform der vorliegenden Erfindung zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 zeigt eine schematische Ausgestaltung eines Positioniersystems (oder eines Robotersystems) 5 gemäß einer ersten Ausführungsform der vorliegenden Erfindung. Das Positioniersystem 5 umfasst einen Roboter 10 mit einem beweglichen Arm 6; einen an einem Vorderende (in der dargestellten Ausführungsform, einer Hand 11) des Arms 6 angeordneten optischen Merkmalsabschnitt; und mehrere (in der dargestellten Ausführungsform, zwei) Visionssensoren 12a und 12b, die an einem festen Platz außerhalb des Roboters 10 angeordnet sind und dazu eingerichtet sind, den Merkmalsabschnitt zu erfassen. Der Roboter 10 ist beispielsweise ein Mehrgelenkroboter mit sechs Achsen, und der Roboter 10 kann ein herkömmlicher Roboter sein.
-
Wie in 2 gezeigt ist die Hand 11 des Roboters 10 dazu eingerichtet, ein Objekt 13 zu greifen, auf dem Merkmalsabschnitte 13a und 13b ausgebildet sind. In diesem nicht eingeschränkten Beispiel ist der erste Visionssensor 12a dazu positioniert und eingerichtet, einen ersten Merkmalsabschnitt 13a zu erfassen, und der zweite Visionssensor 12b ist dazu positioniert und eingerichtet, einen zweiten Merkmalsabschnitt 13b zu erfassen. Ansonsten können Merkmalsabschnitte 13a und 13b direkt auf der Hand 11 ausgebildet werden. Die Form des Merkmalsabschnitts kann eine beliebige Form sein, solange ein durch Erfassen des Merkmalsabschnitts erhaltenes Bild angepasst wird, um verarbeitet zu werden. Bevorzugt ist der Merkmalsabschnitt ein Kreis, der in sich ein Fadenkreuz usw. umfasst, sodass die Position, die Stellung (oder der Drehwinkel) und die Größe (umgekehrt proportional zu dem Abstand zwischen dem Visionssensor und dem Merkmalsabschnitt) des Merkmalabschnitts durch die Bildverarbeitung detektiert werden können.
-
Der Roboter 10 ist mit einer Robotersteuerung 15 verbunden, die dazu eingerichtet ist, einen Roboter 10 zu steuern, und ist numerisch gesteuert, um sich an eine durch eine Robotersteuerung 15 bestimmte beliebige Position zu bewegen. Jeder der Visionssensoren 12a und 12b kann eine lichtempfangende Vorrichtung sein, die eine Funktion aufweist, ein Bild (des obengenannten Merkmalsabschnitts) zu erfassen, und durch die Visionssensoren 12a und 12b erfasste Bilder können an einen mit den Visionssensoren 12a und 12b verbundenen Bildprozessor 14 übertragen werden.
-
Die 3 ist ein Funktionsblockschaltbild des Positionssystems 5. Der Bildprozessor 14 weist einen Merkmalsbetrags-Detektionssteil 16 auf, der dazu eingerichtet ist, Merkmalsabschnitte 13a und 13b aus den jeweiligen durch die Visionssensoren 12a und 12b erfassten Bildern zu detektieren, und einen Merkmalsbetrag (oder einen Merkmalsparameter), der mindestens eines von einer Position, einer Stellung und einer Größe eines jeden der optischen Merkmalsabschnitte 13a und 13b umfasst, auf den jeweiligen Bildern zu detektieren. Des Weiteren kann der Bildprozessor 14 mit einer Robotersteuerung 15 über ein Kommunikationskabel oder durch Funk verbunden sein, um einen Befehl von der Robotersteuerung 15 zu empfangen und/oder ein Ergebnis der Bildverarbeitung zu übertragen. Obwohl der Bildprozessor 14 als eine von der Robotersteuerung 15 in den 1 und 3 getrennte Vorrichtung (z. B. ein Personal-Computer) beschrieben wird, kann der Bildprozessor 14 in der Robotersteuerung 15 als ein Prozessor usw. integriert sein.
-
In dieser Ausführungsform ist es, bevor ein Ablauf wie nachfolgend beschrieben ausgeführt wird, nicht nötig, die Visionssensoren 12a und 12b zu kalibrieren. Mit anderen Worten, es ist nicht nötig, vorab eine Positionsausrichtung zwischen einem Sensor-Koordinatensystem der Visionssensoren und einem Roboter-Koordinatensystem des Roboters 10 auszuführen. Selbstverständlich kann die Kalibrierung vorab ausgeführt werden, aber selbst in diesem Fall ist es ausreichend, dass nur eine Richtung und ein Maßstab des Roboter-Koordinatensystems relativ zu dem Sensor-Koordinatensystem in der Kalibrierung abgeklärt werden.
-
Wie in 3 gezeigt, weist die Robotersteuerung auf: einen Solldaten-Speicherteil 17, der dazu eingerichtet ist, den durch den Merkmalsbetrags-Detektionsteil 16 detektierten Merkmalsbetrag als einen ersten Merkmalsbetrag (oder Solldaten) zu speichern, während die Hand 11 an einer vorbestimmten Vorgabeposition positioniert ist; ein Roboterbewegungsbetrags-Berechnungsteil 18, der eingerichtet ist, um: die Merkmalsabschnitte 13a und 13b unter Verwendung der Visionssensoren 12a beziehungsweise 12b zu einem Zeitpunkt zu erfassen, der sich von dem, zu dem der erste Merkmalsbetrag detektiert wird, unterscheidet, während die Hand 11 an der oder nahe bei der vorbestimmten Vorgabeposition positioniert ist, um einen durch den Merkmalsbetrags-Detektionsteil 16 detektierten zweiten Merkmalsbetrag zu erhalten; und einen ersten Vorgabebewegungsbetrag des Roboters 10 basierend auf einer Differenz zwischen dem zweiten Merkmalsbetrag und dem in dem Solldaten-Speicherteil 17 gespeicherten ersten Merkmalsbetrag so zu berechnen, dass der zweite Merkmalsbetrag mit dem ersten Merkmalsbetrag in Bezug auf alle Visionssensoren übereinstimmt; einen Vorgabebewegungsbetrags-Anpassungsteil 19, der dazu eingerichtet ist, einen zweiten Vorgabebewegungsbetrag basierend auf dem ersten Vorgabebewegungsbetrag und einem aus mechanischen Eigenschaften des Roboters 10 bestimmten Parameter (wie nachfolgend erklärt) zu berechnen; und einen Bewegungsanweisungsteil 20, der dazu eingerichtet ist, die Hand 11 (oder den Roboter 10) basierend auf dem zweiten Vorgabebewegungsbetrag anzutreiben. Außerdem sind der Vorgabebewegungsbetrags-Anpassungsteil 19 und der Bewegungsanweisungsteil 20 dazu eingerichtet, die Berechnung des zweiten Vorgabebewegungsbetrags und das Antreiben der Hand 11 basierend auf dem zweiten Vorgabebewegungsbetrag zu wiederholen, bis der erste Vorgabebewegungsbetrag gleich groß oder kleiner als ein vorbestimmter Schwellenwert ist.
-
Nachfolgend wird ein Vorgang in einem Positioniersystem 5 mit Bezug auf die Ablaufdiagramme der 4 und 5 erklärt.
-
Die 4 ist ein Ablaufdiagramm, das den Vorgang zeigt, wenn das das Positioniersystem 5 umfassende Robotersystem in Betrieb gesetzt wird. Zuerst wird der Roboter 10 zu einer vorbestimmten Vorgabeposition (oder bestimmten Position 1) bewegt (Schritt S101). Dann werden die Visionssensoren 12a und 12b so positioniert, dass die auf der Hand 11 oder auf dem durch die Hand 11 gegriffenen Objekt angeordneten Merkmalsabschnitte 13a und 13b innerhalb von Sichtfeldern der Visionssensoren 12a beziehungsweise 12b positioniert sind (Schritt S102). Diesbezüglich ist es bevorzugt, dass jeder Visionssensor so positioniert und orientiert ist, dass eine optische Achse eines jeden Visionssensors im Allgemeinen senkrecht zu der Oberfläche des zu erfassenden Merkmalsabschnitts positioniert ist, wobei jedoch die vorliegende Erfindung als solches nicht beschränkt ist. Des Weiteren ist es bevorzugt, dass die Merkmalsabschnitte 13a und 13b am hauptsächlichen Zentrum der Sichtfelder der Visionssensoren 12a beziehungsweise 12b positioniert sind, wobei jedoch die vorliegende Erfindung als solches nicht beschränkt ist.
-
Als Nächstes werden die Merkmalsabschnitte 13a und 13b jeweils durch die Visionssensoren 12a und 12b erfasst, um Bilder der Merkmalsabschnitte zu erhalten, und die Bilder der Merkmalsabschnitte 13a und 13b werden als Modelldaten eingelernt (Schritt S103). Diesbezüglich hängt ein Informationstyp, der als Modelldaten gespeichert werden soll, von einem Algorithmus der Bildverarbeitung zum Detektieren der Merkmalsabschnitte 13a und 13b aus den Bildern ab. In dieser Ausführungsform kann ein beliebiger Algorithmus der Bildverarbeitung verwendet werden, beispielsweise kann ein herkömmliches Verfahren, wie ein Schablonenabgleich unter Verwendung von normierter Korrelation oder einen generalisierten Hough-Transformation unter Verwendung von Kanteninformation, verwendet werden. Wenn der Schablonenabgleich durch normierte Korrelation verwendet wird, entspricht die Schablone den Modelldaten.
-
Abschließend werden durch Verwenden der eingelernten Modelldaten die Merkmalsabschnitte 13a und 13b aus den Bildern detektiert, und ein erster Merkmalsbetrag, der mindestens eines von der Position, der Stellung und der Größe der detektierten jeweiligen Merkmalsabschnitte auf den Bildern umfasst, wird als Solldatenwert im Solldaten-Speicherteil 17 gespeichert (Schritt S104). Wenn beispielsweise der Schablonenabgleich als der Algorithmus der Bildverarbeitung verwendet wird, werden die Mittenposition, der Drehwinkel und das Vergrößerungs-/Verkleinerungsverhältnis mit dem höchsten Grad an Übereinstimmung als die Solldaten gespeichert. Als solches speichert der Sollspeicherteil 17 den ersten Merkmalsbetrag mit Bezug auf beide Merkmalsabschnitte 13a und 13b. Außerdem speichert die Robotersteuerung 15 die Position des Roboters 10 in der Steuerung, wenn das Speichern der Solldaten als Vorgabeposition 1 in einem angemessenen Speicher gespeichert wird.
-
Als Nächstes ist 5 ein Ablaufdiagramm, das den Vorgang zeigt, wenn das das Positioniersystem 5 umfassende Robotersystem betrieben wird. Zuerst wird in Schritt S201 der Roboter 10 an eine Position bewegt, die zu einem Zeitpunkt, ab dem die Zieldaten in Schritt S104 von 4 gespeichert werden (d. h., wenn der erste Merkmalsbetrag detektiert wird), dieselbe wie oder nahe der wie oben beschrieben Vorgabeposition 1 ist. Diesbezüglich bedeutet der Ausdruck „(die Position) nahe der Vorgabeposition” eine Position, die nicht präzise mit der Vorgabeposition 1 übereinstimmt, sondern an der Position sind die Merkmalsabschnitte 13a und 13b in den jeweiligen Sichtfeldern der Visionssensoren 12a und 12b positioniert, und die Stellung des Roboters 10 ist dieselbe wie die Stellung des Roboters 10, wenn die Solldaten gespeichert werden.
-
Selbst wenn der Roboter 10 präzise an oder nahe an die Vorgabeposition 1 in der Steuerung bewegt wird, kann es sein, dass der Roboter 10 aufgrund eines Fehlerfaktors in Bezug auf jeden Abschnitt des Roboters 10, wie eine Wärmeverformung aufgrund einer Temperaturänderung, einer Auswirkung eines Zahnspiels, einer zeitlichen Änderung aufgrund einer Abnutzung und einer Auswirkung einer externen Kraft (wenn ein elastisches Objekt positioniert wird, während das Objekt verformt wird, wird der Roboter einer externen Kraft ausgesetzt) usw., nicht genau an die Position (bestimmte Position 1) bewegt wird, die tatsächlich der Vorgabeposition 1 entspricht.
-
Als Nächstes werden die Merkmalsabschnitte 13a und 13b jeweils durch die Visionssensoren 12a und 12b erfasst, um Bilder der Merkmalsabschnitte zu erhalten, und die Merkmalsabschnitte 13a und 13b werden aus den Bildern detektiert (Schritt S202). Dasselbe Mittel oder Verfahren wie in Schritt S104 kann als der Algorithmus der Bildverarbeitung verwendet werden, um einen zweiten Merkmalsbetrag (oder den aktuellen Merkmalsbetrag) zu berechnen, der mindestens eines von der Position, der Stellung und der Größe jedes Merkmalsabschnitts auf dem Bild umfasst.
-
Als Nächstes wird in Schritt S203 ein erster Vorgabebewegungsbetrag des Roboters berechnet, aufgrund dessen der Roboter 10 an eine Position bewegt wird, an der der zweite (aktuelle) Merkmalsbetrag mit dem als Zieldatenwert gespeicherten ersten Merkmalsbetrag übereinstimmt. Ein konkretes Beispiel des Vorgangs in Schritt S203 wird nachfolgend beschrieben.
-
Als Nächstes wird beurteilt, ob die aktuelle Roboterposition die bestimmte Position 1 erreicht oder nicht (Schritt S204). Konkret wird der in Schritt S203 berechnete erste Vorgabebewegungsbetrag mit einem vorbestimmten Schwellenwert verglichen, und dann, wenn der erste Vorgabebewegungsbetrag gleich groß wie oder kleiner als der Schwellenwert ist, kann beurteilt werden, dass der Roboter 10 die bestimmte Position 1 erreicht hat. Wenn beispielsweise der Schwellenwert auf 0,5 m eingestellt ist, kann beurteilt werden, dass der Roboter 10 die bestimmte Position 1 erreicht hat, wenn der erste Vorgabebewegungsbetrag kleiner als 0,5 mm ist. Diesbezüglich ist es bevorzugt, dass der Schwellenwert so bestimmt wird, dass der Roboter an der Sollposition mit einer Genauigkeit positioniert werden kann, die höher als die Positionsgenauigkeit ist, mit der der Roboter selbst ausgestattet ist.
-
Wenn der Roboter in Schritt S205 die bestimmte Position 1 nicht erreicht, wird durch Anpassen des in Schritt S203 berechneten ersten Vorgabebewegungsbetrags ein zweiter Vorgabebewegungsbetrag berechnet, und dann wird der Roboter 10 basierend auf den zweiten Vorgabebewegungsbetrag bewegt (Schritt S206). Danach kehrt der Vorgang zu Schritt S202 zurück und derselbe Ablauf wird wiederholt. Ein konkretes Beispiel des Ablaufs in Schritt S206 wird nachfolgend erklärt.
-
Wenn andererseits beurteilt wird, dass der Roboter 10 die bestimmte Position 1 in Schritt S204 erreicht hat, kann davon ausgegangen werden, dass der Roboter 10 präzise positioniert ist und daher die Vorgangs- und Bewegungsreihe abgeschlossen ist.
-
Nachfolgend werden zwei konkrete Beispiele von Berechnungsverfahren in Schritt S203 erklärt, in denen der erste Vorgabebewegungsbetrag basierend auf dem aus dem Bild und dem als Solldatenwert im Solldatenspeicher 17 gespeicherten ersten Merkmalsbetrag erhaltenen aktuellen (zweiten) Merkmalsbetrag berechnet wird, damit die Position des Roboters 10 mit der bestimmten Position 1 übereinstimmt. Obwohl diese Verfahren den Visionssensor 12a betreffen, gilt dasselbe auch für den Visionssensor 12b, und daher wird eine Erklärung des Visionssensor 12b weggelassen.
-
Das erste Beispiel ist ein Verfahren zum Ausrichten des Sensor-Koordinatensystems auf das Roboter-Koordinatensystems (d. h. Kalibration). Als ein Beispiel eines Dokuments, das eine Einzelheit der Kalibration des Visionssensor beschreibt, kann „Roger Y. Tsai, „An efficient and accurate camera calibration technique for 3D machine vision", Proc. Computer Vision and Pattern Recognition '86, Seiten 368–374, 1986” verwendet werden.
-
6 veranschaulicht, dass in Schritt S203 das Bild des Merkmalsabschnitts 13a beim Speichern der Solldaten (Schritt S104) durch eine gestrichelte Linie 21 angezeigt wird und das Bild des Merkmalsabschnitt 13a zur aktuellen Zeit (Schritt S202) durch eine durchgezogene Linie 22 angezeigt wird. Wenn diesbezüglich die Position des Merkmalsabschnitts auf dem Sensor-Koordinatensystem als (u, v) dargestellt wird, entspricht ein Wert Δu einer Positionsdifferenz des Bildes in der Längsrichtung, und ein Wert Δv entspricht einer Positionsdifferenz des Bildes in der Querrichtung. Durch Kalibrieren des Sensors 12a unter Verwendung des in dem obengenannten Dokument beschriebenen Verfahrens kann die Position (u, v) auf dem Sensor-Koordinatensystem des Visionssensors 12a in die Position (x, y, z) auf dem Roboter-Koordinatensystem des Roboters 10 umgewandelt werden.
-
Im Einzelnen werden die aktuelle Position (u, v) des Merkmalsabschnitts 13a auf dem Bild und die als die Zieldatenwert gespeicherte Position (u0, v0) des Merkmalsabschnitts 13a auf dem Bild in die Position (x, v, z) beziehungsweise die Position (x0, y0, z0) auf dem Koordinatensystem des Roboters 10 umgewandelt. Wenn in diesem Fall ein zu berechnender Vorgabebewegungsbetrag des Roboters als (Δx, Δy, Δz) dargestellt wird, können Δx, Δy, Δz durch die folgenden Gleichungen (1), (2) beziehungsweise (3) definiert werden. Δx = x0 – x (1) Δy = y0 – y (2) Δz = z0 – z (3)
-
Mittels der Gleichungen (1) bis (3) kann der Vorgabebewegungsbetrag (Δx, Δy, Δz) des Roboters 10 berechnet werden, durch den die Position des Roboters 10 mit der bestimmten Position 1 übereinstimmt.
-
Das zweite Beispiel ist ein Verfahren unter Verwendung einer Jacobi-Matrix. In diesem Verfahren wird der Vorgabebewegungsbetrag des Roboters zum Angleichen der Roboterposition an die bestimmte Position 1 basierend auf einer Differenz zwischen dem zweiten Merkmalsbetrag des detektierten Merkmalsabschnitts 13a und dem als Zieldatenwert gespeicherten ersten Merkmalsbetrag berechnet. Wenn, wie in 6 veranschaulicht, die Position des Merkmalsabschnitts auf dem Visionssensor-Koordinatensystem als (u, v) dargestellt ist, entspricht der Wert Δu der Positionsdifferenz des Bildes in der Längsrichtung und der Wert Δv entspricht einer Positionsdifferenz des Bildes in der Querrichtung, wie oben beschrieben.
-
Im zweiten Beispiel wird ein Merkmalsbetrag einer sichtbaren Größe auf dem Bild als „s” dargestellt. Beispielsweise kann bei dem Schablonenabgleich die Größe der Schablone als 100% (= 1,0) bestimmt werden. Wenn in diesem Fall die sichtbare Größe des Objekts größer als die Schablone ist, dann ist „s” höher als 1,0, und wenn andererseits die sichtbare Größe des Objekts kleiner als die Schablone ist, dann ist „s” kleiner als 1.
-
Wenn, als Nächstes, der als der Solldatenwert gespeicherte erste Merkmalsbetrag als (u
0, v
0, s
0) dargestellt wird und der in Schritt S202 erhaltene zweite Merkmalsbetrag als (u
1, v
1, s
1) dargestellt wird, dann kann eine Differenz zwischen den Merkmalsbeträgen durch die folgenden Gleichungen (4) bis (6) definiert werden. Da diesbezüglich der Merkmalsbetrag „s” der sichtbaren Größe auf dem Bild umgekehrt proportional zu dem Abstand zwischen dem Visionssensor
12a und der Oberseite des Objekts
13 mit dem darauf befindlichen Merkmalsabschnitt
13a ist, wird ein Kehrwert von „s” verwendet, um einen zu dem Abstand proportionalen Wert zu erhalten.
Δu = u1 – u0 (4) Δv = v1 – v0 (5)
-
Wenn dann der zu berechnende Vorgabebewegungsbetrag des Roboters als (Δx, Δy, Δz) dargestellt wird, dann wird die Jacobi-Matrix durch die folgende Gleichung (7) definiert.
-
-
Als Nächstes wird ein Verfahren zum Berechnen der Jacobi-Matrix erklärt. Zuerst wird, wenn der Merkmalsabschnitt 13a am oder nahe am Zentrum des Bildes positioniert ist, die Position des Roboters an diesem Punkt als eine Ursprungsposition bestimmt. Dann wird der Merkmalsabschnitt 13a aus dem durch den Visionssensor erhaltenen Bild detektiert, während der Roboter 10 an der Ursprungsposition positioniert ist, und der erhaltene Merkmalsbetrag wird als (u0, v0, s0) dargestellt. Als Nächstes wird der Roboter 10 von der Ursprungsposition um eine Strecke „m” in der X-Richtung des wie in 1 veranschaulichten orthogonalen Koordinatensystems bewegt, der Merkmalsabschnitt 13a wird aus dem durch den Visionssensor 12a nach der Bewegung erhaltenen Bild detektiert, und der erhaltene Merkmalsbetrag wird als (ux, vx, sx) dargestellt. In ähnlicher Weise wird der Roboter 10 von der Ursprungsposition um eine Strecke „m” in der Y-Richtung des orthogonalen Koordinatensystems bewegt, der Merkmalsabschnitt 13a wird aus dem durch den Visionssensor 12a nach der Bewegung erhaltenen Bild detektiert, und der erhaltene Merkmalsbetrag wird als (uy, vy, sy) dargestellt. Des Weiteren wird der Roboter 10 von der Ursprungsposition um eine Strecke „m” in der Z-Richtung des orthogonalen Koordinatensystems bewegt, der Merkmalsabschnitt 13a wird nach der Bewegung aus dem durch den Visionssensor 12a erhaltenen Bild detektiert, und der erhaltene Merkmalsbetrag wird als (uz, vz, sz) dargestellt. Außerdem ist das Koordinatensystem zum Darstellen des Vorgabebewegungsbetrags nicht auf das wie in 1 gezeigte orthogonale Koordinatensystem beschränkt und es kann stattdessen ein anderes Koordinatensystem verwendet werden.
-
Basierend auf dem obengenannten Detektionsergbebnis des Merkmalsabschnitts 13a nach dem Bewegen des Roboters in der X-, Y- und Z-Richtung und dem Detektionsergebnis des Merkmalsabschnitts 13a an der Ursprungsposition können Δu, Δv und Δs durch die folgenden Gleichungen (8) bis (16) definiert werden.
-
-
-
Durch Einsetzen der Gleichungen (8) bis (16) in die Gleichung (7), werden die folgenden Gleichungen (17) und (18) zum Berechnen der Jacobi-Matrix J erhalten.
-
-
Nachdem die Jacobi-Matrix J berechnet ist, kann durch Einsetzen eines beliebigen Merkmalsbetrags (u, v, s) des Merkmalsabschnitts 13a in die Gleichung (7) der Vorgabebewegungsbetrag (Δx, Δy, Δz) des Roboters, durch den die Position des Roboters 10 mit der bestimmten Position 1 übereinstimmt, berechnet werden.
-
Da sich der Roboter 10 schrittweise der bestimmte Position 1 annähert ist es nicht notwendig, den Vorgabebewegungsbetrag präzise zu berechnen. Daher ist es vorteilhaft, das Verfahren unter Verwendung der Jacobi-Matrix auf diese Ausführungsform anzuwenden.
-
Nachfolgend wird ein Beispiel eines Berechnungsverfahrens in Schritt S205 von 5 erklärt, in dem der zweite Vorgabebewegungsbetrag durch Anpassen des in Schritt S203 erhaltenen ersten Vorgabebewegungsbetrags basierend auf einem aus mechanischen Eigenschaften des Roboters 10 bestimmten Parameter berechnet wird. In diesem Beispiel wird ein Zahnspiel als die mechanische Eigenschaft des Roboters 10 berücksichtigt.
-
Im Allgemeinen ist das Spiel in jedem beweglichen Teil des Roboters 10 vorhanden und kann abhängig von der auf den Roboter ausgeübten Schwerkraft schwanken. Daher ist es aufgrund des Zahnspiels schwierig, einen am Vorderende (Hand 11) des Roboters 10 aufgetretenen Fehler geometrisch zu berechnen. Angesichts des oben genannten Hintergrunds wird zuerst durch Berücksichtigen des Zustands jedes beweglichen Teils des Roboters 10 und der Stellung des Roboters 10 ein Fehlerbereich der Position des Vorderendes des Arms des Roboters 10 aufgrund des Spiels zusammengefasst berechnet. Der berechnete Fehlerbereich entspricht dem durch die mechanischen Eigenschaften des Roboters bestimmten Parameter. In diesem Beispiel wird der Parameter als ein erster Parameter bezeichnet.
-
Als Nächstes berechnet der Vorgabebewegungsbetrags-Anpassungsteil 19 basierend auf dem obengenannten ersten Parameter und dem in Schritt S203 berechneten ersten Vorgabebewegungsbetrag den zweiten Vorgabebewegungsbetrag (Schritt S205). Konkret wird, wenn der erste Vorgabebewegungsbetrag nicht innerhalb des Fehlerbereichs des Vorderendes des Arms liegt, der erste Vorgabebewegungsbetrag als der zweite Vorgabebewegungsbetrag bestimmt. Wenn andererseits der erste Vorgabebewegungsbetrag nicht innerhalb des Fehlerbereichs des Vorderendes des Arms liegt, wird ein durch Multiplizieren des ersten Vorgabebewegungsbetrags mit einem Koeffizienten, der kleiner als Eins ist, als der zweite Vorgabebewegungsbetrag bestimmt, sodass das Vorderende des Arms des Roboters 10 bewegt wird, während dessen Bewegungsbetrag begrenzt wird. Eine Einzelheit des Schritts S205 wird nachfolgend erklärt.
-
Die 7 erklärt ein Beispiel zum Berechnen des zweiten Vorgabebewegungsbetrags, wenn aufgrund des Zahnspiels ein bestimmter Fehler vorliegt. Wenn der Roboter 10 bewegt wird, greifen im Allgemeinen mehrere Zahnräder ineinander ein und werden um einen dem Vorgabebewegungsbetrag entsprechenden Winkel (Betrag) gedreht. In dem Beispiel von 7 greifen in einem beweglichen Teil des Roboters 10 die Zahnräder A und B ineinander ein, und das Zahnrad B wird entgegen dem Uhrzeigersinn gedreht (oder angetrieben), indem das Zahnrad im Uhrzeigersinn gedreht (oder angetrieben) wird.
-
Wenn der erste Vorgabebewegungsbetrag größer als der erste Parameter ist (wenn beispielsweise der erste Bewegungsbetrag das Zahnrad B von der aktuellen Position B1 zur Position B3 gedreht werden soll), kann das Zahnrad A um den Vorgabebewegungsbetrag gedreht werden, während es mit dem Zahnrad B in Eingriff ist. Daher kann der erste Vorgabebewegungsbetrag, ohne geändert zu werden, als der zweite Vorgabebewegungsbetrag bestimmt werden.
-
Wenn andererseits der erste Vorgabebewegungsbetrag kleiner als der erste Parameter ist (zum Beispiel, wenn der erste Vorgabebewegungsbetrag das Zahnrad B von der aktuellen Position B1 zur Position B2 relativ nahe zur Position B1 drehen soll) kann das Zahnrad B die Position B2 überlaufen, wenn das Zahnrad B um den Vorgabebewegungsbetrag gedreht wird, während es im vollen Eingriff mit dem Zahnrad A ist, wodurch der Roboter nicht präzise an der bestimmten Position 1 positioniert werden kann. Daher kann in einem solchen Fall durch Setzen des zweiten Vorgabebewegungsbetrags auf den Wert, der durch Multiplizieren des ersten Vorgabebewegungsbetrags mit dem Koeffizienten, der kleiner als Eins ist, erhaltenen wird, das Zahnrad B schrittweise um eine kleine Strecke bewegt werden, wodurch das Zahnrad B von der Position B1 zu B2 ohne Überlaufen von B2 gedreht werden kann.
-
Durch Bewegen des Vorderendes des Arms des Roboters 10 durch das obengenannte Verfahren kann sich die Roboterposition effizient der bestimmten Position 1 annähern.
-
Obwohl das Zahnspiel in dem Beispiel von 7 erklärt wird, ist die vorliegende Erfindung als solche nicht eingeschränkt. Beispielsweise kann das Positioniersystem der Ausführungsform in ähnlicher Weise auf ein System zum Korrigieren eines mechanischen Spiels, wie einen Totgang, des Roboters angewendet werden.
-
Als ein weiterer Vorgang kann in Schritt S205 der Vorgabebewegungsbetrags-Anpassungsteil 19 einen durch Bewegen des Roboters 10 erzeugten Bewegungsbetrag eines jeden beweglichen Teils des Roboters 10 basierend auf dem ersten Vorgabebewegungsbetrag berechnen und kann dann den zweiten Vorgabebewegungsbetrag basierend auf dem berechneten Bewegungsbetrag eines jeden beweglichen Teils berechnen. Konkret kann der Bewegungsbetrag (Drehung) eines jeden beweglichen Teils basierend auf der Differenz (oder Verschiebung) (Schritt S202) des Vorderendes des Arms des Roboters 10 berechnet werden, und der zweite Vorgabebewegungsbetrag für das Vorderende des Roboterarms kann durch inverses Umwandeln des Bewegungsbetrags nach Multiplizieren des Bewegungsbetrags mit einem notwendigen Koeffizienten berechnet werden.
-
Als noch ein weiterer Vorgang kann in Schritt S205 der Vorgabebewegungsbetrags-Anpassungsteil 19: eine Leistungsverschlechterung des Roboters 10 aufgrund einer zeitlichen Änderung von einer Arbeitssituation des Roboters schätzen; den aus den mechanischen Eigenschaften des Roboters 10 bestimmten Parameter basierend auf der Schätzung anpassen; und den zweiten Vorgabebewegungsbetrag basierend auf dem ersten Vorgabebewegungsbetrag und dem angepassten Parameter berechnen. Konkret kann ein Vergrößerungsbetrags des Zahnspiel aufgrund der zeitlichen Änderung aus den periodisch gespeicherten Daten usw. geschätzt werden, der erste Parameter kann um den geschätzten Vergrößerungsbetrag geändert werden, und der zweite Vorgabebewegungsbetrag kann basierend auf dem ersten Vorgabebewegungsbetrag und dem geänderten ersten Parameter berechnet werden.
-
In dieser Ausführungsform ist das Ziel des Positionierens abhängig davon, was als Merkmalsbetrag des Merkmalsabschnitts 13a verwendet wird, unterschiedlich. Wenn beispielsweise die Position auf dem Bild als der Merkmalsbetrag verwendet wird, kann die Position auf einer Ebene, auf der der Merkmalsabschnitt 13a angeordnet ist, bestimmt werden. Wenn die Stellung auf dem Bild als der Merkmalsbetrag verwendet wird, kann der Drehwinkel auf der Ebene bestimmt werden. Wenn des Weiteren die Größe auf dem Bild als der Merkmalsbetrag verwendet wird, kann die Höhe ab der Ebene in einer senkrechten Richtung derselben bestimmt werden.
-
Der Vorgang wie in Schritt S203 und S205 kann in Bezug auf den Visionssensor 12b, ähnlich wie beim Visionssensor 12a, ausgeführt werden. Dann werden die in dem Solldaten-Speicherteil 17 gespeicherten zwei Sätze von (ersten) Merkmalsbeträgen der Merkmalsabschnitte 13a und 13b jeweils mit den zwei Sätzen der aktuellen (zweiten) Merkmalsbeträge 13a und 13b verglichen, um Unterschiede zwischen ihnen zu erhalten, und der erste Vorgabebewegungsbetrag des Roboters 10 wird basierend auf den Unterschieden berechnet.
-
Der erste Vorgabebewegungsbetrag (Δx, Δy, Δz) des Roboters 10 wird durch die folgenden Gleichungen (19) bis (21) dargestellt, wobei der aus dem Merkmalsbetrag des Merkmalsabschnitts 13a berechnete erste Bewegungsbetrag als (Δxa, Δya, Δza) dargestellt wird und der aus dem Merkmalsbetrag des Merkmalsabschnitts 13b berechnete erste Bewegungsbetrag als (Δxb, Δyb, Δzb) dargestellt wird. Δx = Δxa (19) Δy = Δya (20) Δz = Δzb (21)
-
Die Gleichungen (19) bis (21) entsprechen einem Verfahren zum Berechnen des ersten Vorgabebewegungsbetrags, wenn die Visionssensoren 12a und 12b wie in 1 angeordnet sind. Mit anderen Worten, das Positionieren des Roboters 10 in der X- und Y-Richtung wird durch Verwenden des Visionssensors 12a und des Merkmalsabschnitts 13a ausgeführt, und die Positionierung des Roboters 10 in der Z-Richtung wird durch Verwenden des Visionssensors 12b und des Merkmalsabschnitts 13b ausgeführt.
-
In dem Beispiel von 1 ist die Detektionsrichtung des Visionssensors 12a rechtwinklig zur X-Y-Ebene und somit kann eine hochempfindliche Messung in der X- und Y-Richtung ausgeführt werden. Da des Weiteren die Detektionsrichtung des Visionssensors 12b rechtwinklig zur Y-Z-Ebene ist, kann eine hochempfindliche Messung in der Y- und Z-Richtung ausgeführt werden. Als solches kann durch Verwenden der mehreren Visionssensoren eine hochempfindliche Messung in allen X-, Y- und Z-Richtungen ausgeführt werden. Die vorliegende Erfindung ist jedoch nicht auf ein solches Beispiel beschränkt, und die Sensoren können sich an den anderen Position befinden und/oder können so ausgerichtet sein, dass sie die anderen Stellungen darstellen, sodass eine hochempfindliche Messung in allen Richtungen ausgeführt werden kann.
-
Die 8 zeigt eine schematische Konfiguration eines Positionssystems (oder eines Robotersystems) gemäß einer zweiten Ausführungsform der vorliegenden Erfindung. Obwohl die Grundkonfiguration der zweiten Ausführungsform dieselbe sein kann wie die erste Ausführungsform, unterscheidet sich die zweite Ausführungsform von der ersten Ausführungsform dadurch, dass die Visionssensoren 12a und 12b auf der Hand 11 des Roboters 10 angeordnet sind und die Merkmalsabschnitte 13a und 13b an festen Positionen außerhalb des Roboters 10 angeordnet sind.
-
Die zweite Ausführungsform unterscheidet sich von der ersten Ausführungsform dadurch, dass in Schritt S102 des Vorgangs zum Hochfahren des Robotersystems (4) die Merkmalsabschnitte 13a und 13b (nicht die Visionssensoren 12a und 12b) so positioniert werden, dass die Merkmalsabschnitte 13a und 13b durch die Visionssensoren 12a beziehungsweise 12b erfasst werden. Da der andere Vorgang der zweiten Ausführungsform derselbe wie bei der ersten Ausführungsform sein kann, wird auf eine ausführliche Erklärung desselben verzichtet.
-
In allen der obengenannten Ausführungsformen werden die mehreren Merkmalsabschnitte jeweils durch mehrere Visionssensoren erfasst. Ein Merkmal kann jedoch von unterschiedlichen Position oder Winkeln aus erfasst werden, indem die mehreren Visionssensoren verwendet werden. Konkret können zwei Visionssensoren als eine Stereokamera verwendet werden, und ein Merkmalsabschnitt kann durch die Stereokamera gemessen werden.
-
In der obengenannten Ausführungsform ist der optische Merkmalsabschnitt am Vorderende des Roboterarms angeordnet, und der Merkmalsabschnitt wird durch die an den festen Plätzen außerhalb des Roboters angeordneten Visionssensoren gemessen. Alternativ sind die Visionssensoren am Vorderende des Roboterarms positioniert, und der an dem festen Platz außerhalb des Roboters angeordnete optische Merkmalsabschnitt wird durch die Visionssensoren gemessen. Als Nächstes wird, während der Roboter an der bestimmten Position positioniert ist, die Position des auf jedem Bild eines jeden Visionssensors betrachteten Merkmalsabschnitts als der Solldatenwert gespeichert. Wenn die Position des auf dem aktuellen Bild des Visionssensors betrachteten Merkmalsabschnitts dieselbe wie die in den Solldaten gespeicherte Position ist, kann davon ausgegangen werden, dass der Roboter physisch an der bestimmten Position positioniert ist. Daher kann durch Steuern des Roboters derart, dass die Position des auf dem Bild des Visionssensors betrachtete Merkmalsposition dieselbe wie die als Solldatenwert gespeicherte Position ist, das Vorderende des Roboterarms an der bestimmten Position positioniert werden.
-
In vielen Fällen wird der Roboterarm über ein Untersetzungsgetriebe angetrieben, und das Untersetzungsgetriebe weist ein Zahnspiel auf. In diesem Fall wird selbst dann, wenn der Vorgabebewegungsbetrag präzise berechnet ist, sodass die Position des auf dem Bild des Visionssensors betrachteten Merkmalsabschnitts dieselbe wie die als Solldatenwert gespeicherte Position ist, das Vorderende des Roboterarms nicht immer um den Vorgabebewegungsbetrag physisch bewegt. Daher kann das Vorderende des Roboterarms durch Anpassen des Vorgabebewegungsbetrags basierend auf dem aus den mechanischen Eigenschaften des Roboters, wie der Breite (dem Bereich) des Zahnspiels, bestimmten Parameter präzise an der bestimmten Position positioniert werden, ohne das Vorderende des Roboterarms durch den unangepassten Vorgabebewegungsbetrag zu bewegen.
-
Des Weiteren kann durch Wiederholen der oben genannten Steuerung (d. h. Berechnen des Bewegungsbetrags des Vorderendes des Roboterarms derart, dass die Position des auf dem Bild des Visionssensors betrachteten Merkmalsabschnitts dieselbe wie die als Solldatenwert gespeicherte Position ist; Anpassen des berechneten Bewegungsbetrags durch den aus der mechanischen Eigenschaft des Roboters bestimmten Parameter; und tatsächliches Bewegen des Roboters basierend auf dem angepassten Bewegungsbetrag), bis der berechnete Vorgabebewegungsbetrag gleich groß wie oder kleiner als ein vorbestimmter Schwellenwert wird, das Vorderende des Roboterarms sich schrittweise der bestimmten Position annähern. Da sich der Roboter schrittweise der bestimmten Position annähern kann, ist es nicht notwendig, dass der berechnete Vorgabebewegungsbetrag ein präziser Wert ist. Dies bedeutet, dass selbst dann, wenn der Visionssensor nicht genau kalibriert ist, der Roboter an der bestimmten Position mit der Genauigkeit positioniert werden, die höher als die dem Roboter eigene Positioniergenauigkeit ist, und dass der Roboter als ein hochgenaues Positioniersystem verwendet werden kann, ohne von verschiedenen Fehlerfaktoren des Roboters abzuhängen.
-
Gemäß der vorliegenden Erfindung können durch Nutzen der optischen Rückmeldung und Anpassen des Bewegungsbetrags durch den aus den mechanischen Eigenschaften des Roboters bestimmten Parameter die Fehlerfaktoren des Roboters (wie Wärmeverformung aufgrund einer Temperaturänderung, eine Auswirkung eines Zahnspiels, falsche Positionsausrichtung aufgrund einer externen Kraft und eine zeitliche Änderung aufgrund von Abnutzung) reduziert oder eliminiert werden, ohne davon abzuhängen, ob die Kalibrierung ausgeführt wird oder nicht, während eine Bedienperson keine Nachbesserung berücksichtigen muss. Daher kann der Roboter als ein hochgenaues Positioniersystem mit der Genauigkeit, die höher als die dem Roboter eigene Positioniergenauigkeit ist, verwendet werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 3702257 B [0003, 0007]
- JP 2015-150636 A [0004, 0008]
-
Zitierte Nicht-Patentliteratur
-
- Roger Y. Tsai, „An efficient and accurate camera calibration technique for 3D machine vision”, Proc. Computer Vision and Pattern Recognition '86, Seiten 368–374, 1986 [0042]