-
{Technisches Gebiet}
-
Die vorliegende Erfindung betrifft eine Robotersteuerungsvorrichtung zum Steuern eines Roboterarms durch Robotersehen [Visual Servoing].
-
{Stand der Technik}
-
Eine herkömmliche Technik zum Steuern eines Roboterarms ist Robotersehen [Visual Servoing], wobei die Position und die Ausrichtung eines sich bewegenden Werkstücks (Objekt) kontinuierlich von einem visuellen Sensor, wie etwa einer Kamera, gemessen wird und der Roboterarm veranlasst wird, dem Objekt auf Grundlage der Messergebnisse zu folgen (beispielsweise PTLs 1 und 2).
-
{Zitierliste}
-
{Patentliteratur}
-
- {PTL 1} Veröffentlichung des japanischen Patents Nr. 4265088
- {PTL 2} Japanische ungeprüfte Patentanmeldung, Veröffentlichungsnummer 2011-143494
-
{Zusammenfassung der Erfindung}
-
{Technisches Problem}
-
Die Robotersteuerungsvorrichtungen, die in den oben erwähnten PTLs 1 und 2 offenbart werden, haben jedoch insofern ein Problem, als dass es unmöglich ist, den Roboterarm zu veranlassen, einem Werkstück genau zu folgen, das sich zufällig bewegt, weil angenommen wird, dass die Bewegungsgeschwindigkeit des Werkstücks konstant ist. Darüber hinaus wird die Position des Werkstücks, falls das Werkstück nicht von der Kamera erfasst werden kann, aus einer Gleichung der Bewegung des Werkstücks ungeachtet dessen berechnet, ob ein Teil des Werkstücks sich im Sichtfeld der Kamera befindet oder nicht. Es besteht daher insofern ein Problem, als dass eine Abweichung zwischen der rechnerischen Werkstückposition und der tatsächlichen Werkstückposition auftritt, wodurch die daraus gefolgerte Genauigkeit verringert wird.
-
Die vorliegende Erfindung wurde im Hinblick auf die oben beschriebenen Umstände gemacht und eine Aufgabe von ihr ist es, eine Robotersteuerungsvorrichtung bereitzustellen, die dazu fähig ist, einen Roboterarm zu veranlassen einem Werkstück, das sich zufällig bewegt, genau zu folgen.
-
{Lösung des Problems}
-
Um die oben beschriebene Aufgabe zu erfüllen, bietet die vorliegende Erfindung die folgenden Lösungen. Gemäß einem ersten Aspekt stellt die vorliegende Erfindung eine Robotersteuerungsvorrichtung bereit, einschließlich: einer Merkmalspunkterfassungseinheit, die, von einem Bild eines Objekts, das von einem visuellen Sensor erworben wird, die Positionen einer Vielzahl von Merkmalspunkten auf dem Objekt in einem vorbestimmten Zyklus erfasst; einer Positions-/Ausrichtungsberechnungseinheit, die, in dem vorbestimmten Zyklus, jeweilige Gleichungen der Bewegung der Vielzahl von Merkmalspunkten auf Grundlage der erfassten Positionen der Vielzahl von Merkmalspunkten aktualisiert, und die Position oder Ausrichtung des Objekts auf Grundlage der Positionen der Vielzahl von Merkmalspunkten, die aus den aktualisierten Gleichungen der Bewegung berechnet werden, berechnet; und einer Roboterarm-Bewegungssteuerungseinheit, die die Bewegung eines Roboterarms derart steuert, dass er dem Objekt auf Grundlage der berechneten Position oder Ausrichtung des Objekts folgt.
-
Gemäß der Robotersteuerungsvorrichtung nach dem vorstehend beschriebenen ersten Aspekt erfasst die Merkmalspunkterfassungseinheit von einem Bild eines Objekts, das von dem visuellen Sensor erworben wird, die Positionen einer Vielzahl von Merkmalspunkten auf dem Objekt in einem vorbestimmten Zyklus. Als nächstes aktualisiert die Positions-/Ausrichtungsberechnungseinheit in dem vorbestimmten Zyklus die Gleichungen der Bewegung der Vielzahl von Merkmalspunkten auf Grundlage der Positionen der Vielzahl von Merkmalspunkten, die von der Merkmalspunkterfassungseinheit erfasst wurden. Des Weiteren berechnet die Positions-/Ausrichtungsberechnungseinheit die Positionen der Vielzahl von Merkmalspunkten aus den aktualisierten Gleichungen der Bewegung neu und berechnet die Position oder Ausrichtung des Objekts auf Grundlage der berechneten Positionen der Vielzahl von Merkmalspunkten. Die Roboterarm-Bewegungssteuerungseinheit steuert den Roboterarm dann auf Grundlage der Position oder Ausrichtung des Objekts, die von der Positions-/Ausrichtungsberechnungseinheit berechnet wurde, derart, dass er dem Objekt folgt.
-
Auf diese Weise wird die Entwicklung einer Gleichung der Bewegung eines Objekts prozessgekoppelt ermöglicht, weil die Gleichung der Bewegung jedes Merkmalspunkts in dem vorbestimmten Zyklus aktualisiert wird. Im Resultat kann der Roboterarm veranlasst werden, einem Objekt, das sich zufällig bewegt, mit hoher Genauigkeit zu folgen.
-
In der vorstehend beschriebenen Robotersteuerungsvorrichtung kann die Positions-/Ausrichtungsberechnungseinheit die Vielzahl von Merkmalspunkten auf dem Objekt auf Grundlage der Erfassungshäufigkeiten der Vielzahl von Merkmalspunkten gewichten.
-
Dadurch werden, selbst wenn ein Teil der Vielzahl von Merkmalspunkten von einem Hindernis oder dergleichen blockiert wird und somit die Position oder Ausrichtung des Objekts nicht direkt von einem visuellen Sensor erfasst werden kann, die Position jedes Merkmalspunkts, die aus der Gleichung der Bewegung berechnet wird, und die Position jedes Merkmalspunkts, der von dem visuellen Sensor erfasst werden kann, auf Grundlage der Erfassungshäufigkeiten gewichtet, um die Position des Objekts zu berechnen, wodurch ermöglicht wird, dass der Roboterarm veranlasst wird, dem Objekt genau zu folgen.
-
In der vorstehend beschriebenen Robotersteuerungsvorrichtung kann die Roboterarm-Bewegungssteuerungseinheit mit einer singulären Punktvermeidungseinheit bereitgestellt werden, die einen singulären Punkt des Roboterarms vermeidet. Mit dieser Konfiguration kann ein singulärer Punkt vermieden werden, wodurch es ermöglicht wird, ein operatives Problem zu vermeiden, wie etwa eine abnorm schnelle Drehung eines bestimmten Gelenks in dem Roboterarm.
-
{Vorteilhafte Wirkungen der Erfindung}
-
Gemäß der vorliegenden Erfindung wird eine vorteilhafte Wirkung dadurch gewährt, dass der Roboterarm veranlasst werden kann, einem Werkstück, das sich zufällig bewegt, genau zu folgen.
-
{Kurze Beschreibung der Zeichnungen}
-
1 ist eine Ansicht, die im Umriss die Konfiguration eines Robotersystems nach einer Ausführungsform der vorliegenden Erfindung zeigt.
-
2 ist ein Blockdiagramm des in 1 gezeigten Robotersystems.
-
3 ist ein Flussdiagramm, das die Verarbeitung, die in einer Robotersteuerungsvorrichtung, wie in 2 gezeigt, durchgeführt wird, zeigt.
-
4 ist ein Flussdiagramm, das die Verarbeitung, die in einer Positions-/Ausrichtungsberechnungseinheit, wie in 2 gezeigt, durchgeführt wird, zeigt.
-
5 ist ein Flussdiagramm, das die Verarbeitung, die in einer Roboterarm-Bewegungssteuerungseinheit, wie in 2 gezeigt, zeigt.
-
{Beschreibung der Ausführungsform}
-
Nachfolgend wird unter Bezugnahme auf die Zeichnungen ein Robotersystem nach einer Ausführungsform der vorliegenden Erfindung ausführlich beschrieben. Beachten Sie, dass in dieser Spezifikation ein hat, das über einem englischen Zeichensymbol angeordnet ist als „(englisches Zeichensymbol)hat” bezeichnet wird, ein bar, das über einem englischen Zeichensymbol angeordnet ist, als „(englisches Zeichensymbol)bar” bezeichnet wird und ein dot, das über einem englischen Zeichensymbol angeordnet ist, als „(englisches Zeichensymbol)dot” bezeichnet wird.
-
Wie in 1 gezeigt wird ein Robotersystem 1 dieser Ausführungsform bereitgestellt mit: einer Kamera 2; einem Gestell 3, das die Kamera 2 stützt; einem Roboterarm 4; und einer Robotersteuerungsvorrichtung 5 mit der die Kamera 2 und der Roboterarm 4 verbunden sind. Die Robotersteuerungsvorrichtung 5 ist dafür konfiguriert, die Steuerung durch Robotersehen derart durchzuführen, dass der Roboterarm 4 der Bewegung eines Werkstücks (Objekt) 7 auf Grundlage der visuellen Informationen, die von der Kamera 2 erhalten werden, zu folgen.
-
Das Werkstück 7 wird auf einer Beförderungsvorrichtung 6, wie etwa einem Bandförderer oder einem Drehtisch, platziert und wird gemäß der Bewegung der Beförderungsvorrichtung 6 bewegt. Beachten Sie, dass in dieser Ausführungsform, obwohl die Kamera 2 von dem Gestell 3 gestützt wird, ihre Position nicht darauf beschränkt ist und die Kamera 2 auf dem Roboterarm 4 befestigt sein kann.
-
Die Konfiguration der Robotersteuerungsvorrichtung 5, die in dem Robotersystem 1 bereitgestellt wird, wird nachfolgend unter Bezugnahme auf 2 ausführlich beschrieben. Beachten Sie, dass die Robotersteuerungsvorrichtung 5 mit einem Prozessor (nicht gezeigt) bereitgestellt wird und dieser Prozessor dafür konfiguriert ist, das Verarbeiten in jeweiligen funktionalen Blöcken, wie in 2 gezeigt, durchzuführen.
-
Wie in 2 gezeigt wird die Robotersteuerungsvorrichtung 5 mit, als funktionale Blöcke, einer Merkmalspunkterfassungseinheit 51, einer Positions-/Ausrichtungsberechnungseinheit 52 und einer Roboterarm-Bewegungssteuerungseinheit 53 bereitgestellt. Die Positions-/Ausrichtungsberechnungseinheit 52 wird mit, als funktionale Blöcke, einer Gleichung-der-Bewegung-Aktualisierungseinheit 521, einer Merkmalspunktposition-Berechnungseinheit 522, einer Gewichtberechnungseinheit 523 und einer Drehungs-/Positionsmatrix-Berechnungseinheit 524 bereitgestellt. Die Roboterarm-Bewegungssteuerungseinheit 53 wird mit, als funktionale Blöcke, einer Bewegungsbahnerzeugungseinheit 531, einer singulären Punktvermeidungseinheit 532 und einer Additionseinheit 533 bereitgestellt.
-
Die Merkmalspunkterfassungseinheit 51 ist mit der Kamera 2 verbunden und ist mit der Gleichung-der-Bewegung-Aktualisierungseinheit 521 und der Gewichtberechnungseinheit 523 verbunden, die in der Positions-/Ausrichtungsberechnungseinheit 52 bereitgestellt werden. Die Gleichung-der-Bewegung-Aktualisierungseinheit 521 ist mit der Merkmalspunktposition-Berechnungseinheit 522 verbunden. Die Merkmalspunktposition-Berechnungseinheit 522 ist mit der Gewichtberechnungseinheit 523 und der Drehungs-/Positionsmatrix-Berechnungseinheit 524 verbunden. Die Gewichtsberechnungseinheit 523 ist mit der Drehungs-/Positionsmatrix-Berechnungseinheit 524 verbunden.
-
Die Drehungs-/Positionsmatrix-Berechnungseinheit 524 ist mit der Bewegungsbahnerzeugungseinheit 531 verbunden, die in der Roboterarm-Bewegungssteuerungseinheit 53 bereitgestellt wird. Die Bewegungsbahnerzeugungseinheit 531 ist mit der singulären Punktvermeidungseinheit 532 verbunden. Die Bewegungsbahnerzeugungseinheit 531 und die singuläre Punktvermeidungseinheit 532 sind mit der Additionseinheit 533 verbunden. Die Additionseinheit 533 ist mit dem Roboterarm 4 verbunden.
-
Die Merkmalspunkterfassungseinheit 51 ist dafür konfiguriert, unter Verwendung einer voreingestellten Form in Hinblick auf ein Bild, das das Werkstück 7 enthält und von der Kamera 2 aufgenommen wurde, eine Musteranpassung durchzuführen und die Positionen yk(ti k) einer Vielzahl von Merkmalspunkten auf dem Werkstück 7 in dem Bild, das dieser Form entspricht, zu erfassen. Hier drückt die erfasste Position yk(ti k) konkret einen k-th Merkmalspunkt aus, wobei der Positionsvektor x-, y- und y-Richtungen zur Zeit ti k, zu der die Kamera das Werkstück erfasst, enthält.
-
Die Gleichung-der-Bewegung-Aktualisierungseinheit 521 ist dafür konfiguriert, die Gleichung der Bewegung jedes Merkmalspunkts durch Verwenden der Position yk(ti k) des Merkmalspunkts, der von der Merkmalspunkterfassungseinheit 51 erfasst wird, zu aktualisieren. Die Position jedes Merkmalspunkts, der von dem Bild, das von der Kamera 2 erworben wird, kann wie in Gleichung (1) durch Verwenden einer Gleichung der Bewegung ausgedrückt werden. yk(t k / i) = fk[yk(t k / i-1), t k / i] + v k / i (1)
-
Hier ist f
k[y
k(t
i-1 k), t
i k] die Gleichung der Bewegung jedes Merkmalspunkts und v
i k repräsentiert Sensorrauschen. Konkret wird der Positionsvektor, der zur Zeit t
i k erfasst wird, ausgedrückt auf Grundlage von: einer Gleichung der Bewegung, die durch Verwenden der Position y
k(t
i-1 k), die zur Zeit t
i-1 k erfasst wird, was ein Zyklus zuvor ist, aktualisiert wird; und dem Sensorrauschen. Beachten Sie, dass die Gleichung der Bewegung jedes Merkmalspunkts durch Gleichung (2) und Gleichung (3) zum Beispiel ausgedrückt werden kann.
yk(t) = [I3 0 0]xk(t) + v(t) (3)
-
Hier repräsentiert xk(t) den neundimensionalen Vektor, einschließlich der Position, der Geschwindigkeit und der Beschleunigung jedes Merkmalspunkts zur Zeit t, w(t) repräsentiert einen Beschleunigungsvektor, der ein Faktor der Geschwindigkeitsveränderung an dem Merkmalspunkt ist, und v(t) repräsentiert Rauschen, das zum Zeitpunkt der Erfassung unter Verwendung der Kamera erhalten wird.
-
Konkreter berechnet die Gleichung-der-Bewegung-Aktualisierungseinheit 521 ybark(t ± k) über die folgende Gleichung (4) und Gleichung (5), wodurch jede Gleichung der Bewegung aktualisiert wird. ŷk(t k / i) = fk[yk(t k / i-1), t k / i] (4) y k(t k / i) = ŷk(t k / i) + Fk(t k / i)[yk(t k / i) – ŷk(t k / i)] (5)
-
Hier ist yhat k(ti k) ein berechneter Wert, der durch Verwenden der Gleichung der Bewegung, die zur Zeit ti k durch Verwenden der Position ybar k(ti-1 k) zu der Zeit ti-1 k, was ein Zyklus zuvor ist, aktualisiert wurde, berechnet wird. Des Weiteren repräsentiert ybar k(ti k) in Gleichung (5) die Position jedes Merkmalspunkts, der unter Berücksichtigung sowohl des erfassten Werts yk(ti k), der von der Kamera 2 zu der Zeit ti k erfasst wird, als auch des berechneten Werts yhat k(ti k), der durch Verwenden der Gleichung (4) berechnet wird, berechnet wird. Beachten Sie, dass in Gleichung (5) Fk(ti k) eine Zunahme der Differenz zwischen yk(ti k) und yhat k(ti k) repräsentiert.
-
Die Merkmalspunktposition-Berechnungseinheit 522 ist dafür konfiguriert, die Position yhatk(tnow) jedes Merkmalspunkts zu der aktuellen Zeit tnow wie in Gleichung (6) durch Verwenden der Gleichung der Bewegung, die durch Verwenden der Position ybark(tik) zu der Zeit tik aktualisiert wurde, die wie vorstehend beschrieben berechnet wurde, zu berechnen. ŷk(tnow) = fk[y k(t k / i), tnow] (6)
-
Die Gewichtsberechnungseinheit 523 ist dafür konfiguriert, ein Gewicht für jeden Merkmalspunkt zu berechnen. Konkret berechnet die Gewichtsberechnungseinheit 523, als das Gewicht für jeden Merkmalspunkt, die Kovarianz Σhat k(tnow) der Position des Merkmalspunkts zu der aktuellen Zeit tnow, wie in Gleichung (7) gezeigt, so dass die Wichtigkeit eines Merkmalspunkts größer wird, wenn der Merkmalspunkt öfters (höhere Frequenz) von der Kamera 2 erfasst wird. Σ ^k(tnow) = gk[Σ k(t k / i), tnow] (7)
-
Hier ist gk das Resultat, das nach dem Berechnen der Kovarianz für eine Gleichung der Bewegung fk erhalten wird, wie in Gleichung (8) gezeigt. gk = Cov(fk) (8)
-
Des Weiteren ist Σbar k(ti k) die Kovarianz, die unter Berücksichtigung sowohl des erfassten Werts y(ti k), der von der Kamera 2 zu der Zeit ti k erfasst wird, als auch der Kovarianz des berechneten Werts yhat k(ti k), der über die Gleichung der Bewegung berechnet wird, berechnet wird. Beachten Sie, dass falls es einen Merkmalspunkt gibt, der nicht erfasst werden kann, die Position dieses Merkmalspunkts durch Verwenden von Informationen berechnet wird, die erhalten werden, wenn der Merkmalspunkt in dem vorherigen Zyklus erfasst wird.
-
Die Drehungs-/Positionsmatrix-Berechnungseinheit
524 ist dafür konfiguriert, die Kovarianz Σ
hat k(t
now), die durch die Gewichtberechnungseinheit
523 berechnet wird, und die Position Σ
hat k(t
now) des Merkmalspunkts, der von der Merkmalspunktposition-Berechnungseinheit
522 berechnet wird, zu verwenden, um über die Gleichung (9) eine Drehungsmatrix und eine Positionsmatrix des Werkstücks
7, in der jeder Merkmalspunkt gewichtet ist, zu berechnen.
-
Hier repräsentiert Rw die Drehungsmatrix des Werkstücks 7 in dem Roboter-Weltkoordinatensystem, Tw repräsentiert die Positionsmatrix des Werkstücks 7 in dem Roboter-Weltkoordinatensystem und sk repräsentiert die Position (Vektor einschließlich der x-, y- und z-Richtungen) eines Merkmalspunkts, gesehen von dem Objektkoordinatensystem, das für das Werkstück 7 fixiert ist. Falls es jedoch einen Merkmalspunkt gibt, der nicht erfasst wird, wird das Resultat, das bei Erfassen des Merkmalspunkt während des vorherigen Zyklus erhalten wurde, als die Position des Merkmalspunkts verwendet.
-
Die Bewegungsbahnerzeugungseinheit 531 ist dafür konfiguriert, eine Bewegungsbahn des Roboterarms 4 zu erzeugen. Konkret berechnet die Bewegungsbahnerzeugungseinheit 531 die Differenzen zwischen: der Position und der Ausrichtung (eine Drehungsmatrix Rr und eine Positionsmatrix Tr) des aktuellen TCP, das von der Roboterarm-Bewegungssteuerungseinheit 53 erzeugt wird, und der Position und Ausrichtung (die Drehungsmatrix Rw und die Positionsmatrix Tw) des Werkstücks 7, die von der Positions-/Ausrichtungsberechnungseinheit 52 berechnet wurden, und multipliziert diese Differenzen mit der Umkehrung der Funktionaldeterminante (die inverse Matrix der Funktionaldeterminante), wodurch die Differenzen für jeden Achsenwinkel berechnet werden, d. h. eine Befehlsgeschwindigkeit qdot* für den Roboterarm 4. q .* = IK(ΔR, dT) = J+(q)h(ΔR, ΔT) (10)
-
Hier ist J+ die Umkehrung der Funktionaldeterminante-Transformation zwischen Achsenpositionen und Senkrechtpositionen. h(ΔR, ΔT) ist eine Funktion, die angibt, dass die Differenzen ΔR und ΔT der Position und der Ausrichtung mit einer proportionalen Zunahme multipliziert werden und die proportionale Zunahme wird gemäß der Bewegungsfrequenz des zu verfolgenden Werkstücks 7 angepasst.
-
Die singuläre Punktvermeidungseinheit 532 ist dafür konfiguriert, eine Interpolationsgeschwindigkeit Δqdot für eine Vermeidungsbewegung über Gleichung (11) zu erzeugen, wenn der von der Roboterarm-Bewegungssteuerungseinheit 53 erzeugte aktuelle TCP nahe an einem singulären Punkt ist. Δq . = (I – J+(q)J(q))p(q) (11)
-
Hier ist p(q) eine Funktion zum Korrigieren der Geschwindigkeit und eine Korrekturgeschwindigkeit für jede Achse. Die Korrekturgeschwindigkeit p(q) für jede Achse kann aus der Gleichung (12) und der Gleichung (13) erhalten werden.
p(q) = λ0( ∂H(q) / ∂q)T (13)
-
H(q) ist ein Ausdruck, der die Robotermanipulierbarkeit (Manipulierbarkeit) angibt. Wie in Gleichung (13) gezeigt wird die Korrekturgeschwindigkeit p(q) für jede Achse aus partieller Differenzierung von H(q) berechnet.
-
In der vorstehend beschriebenen Gleichung (13) repräsentiert λo die proportionale Zunahme zum Vermeiden eines singulären Punkts. Beachten Sie, dass die proportionale Zunahme λo zu 0 wird, wenn die Position und Ausrichtung des TCP nicht nahe an einem singulären Punkt sind, und der Wert von λo sich erhöht, wenn die Position und die Ausrichtung des TCP nahe an einem singulären Punkt sind.
-
Die Additionseinheit 533 ist dafür konfiguriert, die Befehlsgeschwindigkeit qdot*, die von der Bewegungsbahnerzeugungseinheit 531 erzeugt wird, und die Interpolationsgeschwindigkeit Δqdot, die von der singulären Punktvermeidungseinheit berechnet wird, zu addieren, um einen Geschwindigkeitsbefehl qdot für jede Achse für den Roboterarm 4 zu berechnen. q . = q .* + Δq . (14)
-
Der Roboterarm 4 wird gemäß dem berechneten Geschwindigkeitsbefehl qdot für jede Achse gesteuert.
-
Der Betrieb der Robotersteuerungsvorrichtung 5, der die vorstehend beschriebene Konfiguration aufweist, wird nachfolgend unter Bezugnahme auf die 3 bis 5 beschrieben. 3 bis 5 zeigen das Verarbeiten, das von dem Prozessor (nicht gezeigt), der in der Robotersteuerungsvorrichtung 5 bereitgestellt wird, für jeden vorbestimmten Zyklus ausgeführt wird, d. h. für jeden Interpolationszyklus des Roboterarms 4.
-
Zunächst wird ein Bild, das von der Kamera 2 erworben wurde, in die Robotersteuerungsvorrichtung 5 eingegeben (Schritt S1 in 3). Dann erfasst die Merkmalspunkterfassungseinheit 51, aus der Bildeingabe in die Robotersteuerungsvorrichtung 5, die Positionen einer Vielzahl von Merkmalspunkten auf dem Werkstück 7 (Schritt S2 in 3). Als nächstes berechnet die Positions-/Ausrichtungsberechnungseinheit 52 die Position und die Ausrichtung des Werkstücks 7 auf Grundlage der erfassten Positionen der Vielzahl von Merkmalspunkten auf dem Werkstück 7 (Schritt S3 in 3). Danach wird in der Roboterarm-Bewegungssteuerungsvorrichtung 53 ein Geschwindigkeitsbefehl für jede Achse des Roboterarms 4 auf Grundlage der Position und der Ausrichtung des Werkstücks 7, die durch die Positions-/Ausrichtungsberechnungseinheit 52 berechnet werden (Schritt S4 in 3), erzeugt und an den Roboterarm 4 ausgegeben (Schritt S5 in 3).
-
Als nächstes wird unter Bezugnahme auf 4 das Verarbeiten zum Berechnen der Position und Ausrichtung des Werkstücks 7, das in Schritt S3 in 3 durchgeführt wird, beschrieben. Zunächst berechnet die Gleichung-der-Bewegung-Aktualisierungseinheit 521 die tatsächliche Position ybar k(ti k) jedes Merkmalspunkts zu der Zeit ti k, die erhalten wird auf Grundlage von: der erfassten Position yk(ti k) des Merkmalspunkts, die zu der Zeit ti k von der Merkmalspunkterfassungseinheit 51 erfasst wird; und der berechneten Position yhat k(ti k) des Merkmalspunkts zu der Zeit ti k, die aus der Gleichung der Bewegung, die zu der Zeit ti-1 k aktualisiert wird (siehe Gleichung (4) und Gleichung (5)), berechnet wird. Dann wird die berechnete tatsächliche Position ybar k(ti k) dafür verwendet, um die Gleichung der Bewegung zu aktualisieren (Schritt S21 in 4).
-
Dann berechnet die Merkmalspunktposition-Berechnungseinheit 522 die Position yhat k(tnow) des Merkmalspunkts zu der aktuellen Zeit tnow unter Verwendung der aktualisierten Gleichung der Bewegung, wie in Gleichung (6) gezeigt (Schritt S22 in 4). Auf diese Weise ist es möglich, da die Gleichung der Bewegung für jeden Interpolationszyklus des Roboterarms 4 aktualisiert wird, selbst wenn das Werkstück 7 sich zufällig bewegt, die aktuelle Position des Werkstücks 7 genau zu berechnen.
-
Als nächstes berechnet die Gewichtberechnungseinheit 523 die Kovarianz Σhat k(tnow) der Position yhat k(tnow) des Merkmalspunkts zu der aktuellen Zeit tnow über Gleichung (7) auf Grundlage der Kovarianz der erfassten Position yk(ti k) des Merkmalspunkts, der zu der Zeit ti k von der Merkmalspunkterfassungseinheit 51 erfasst wird, und der Kovarianz der berechneten Position yhat k(ti k) des Merkmalspunkts zu der Zeit ti k, die aus der Gleichung der Bewegung, die zur Zeit ti-1 k aktualisiert wird, berechnet wird.
-
Dann berechnet die Drehungs-/Positionsmatrix-Berechnungseinheit 524 eine Drehungsmatrix Rw und eine Positionsmatrix Tw des Werkstücks 7 über Gleichung (9) durch Verwendung der Kovarianz Σhat k(tnow) die durch die Gewichtberechnungseinheit 523 berechnet wird und die als ein Gewicht dient, und die Position yhat k(tnow) des Merkmalspunkts, die von der Merkmalspunktposition-Berechnungseinheit 522 berechnet wird (Schritt S24 in 4).
-
Auf diese Weise kann der Roboterarm 4, weil jeder Merkmalspunkt derart gewichtet ist, dass die Wichtigkeit eines Merkmalspunkts größer wird je öfters der Merkmalspunkt von der Kamera 2 erfasst wird, selbst wenn ein Teil des Werkstücks 7 von beispielsweise einem Hindernis oder dergleichen blockiert wird und ein Merkmalspunkt daher nicht erfasst werden kann, veranlasst werden, dem Werkstück 7 zu folgen.
-
Als nächstes wird das in Schritt S4 in 3 durchgeführte Verarbeiten der Steuerung der Roboterarmbewegung unter Bezugnahme auf 5 beschrieben. Zunächst berechnet die Bewegungsbahnerzeugungseinheit 531 die Position und Ausrichtung (die Drehungsmatrix Rr und die Positionsmatrix Tr) des TCP des Roboterarms 4 (Schritt S31 in 5). Dann werden die Differenzen ΔR und ΔT aus der Drehungsmatrix Rw und der Positionsmatrix Tw des Werkstücks 7, d. h. die Position und die Ausrichtung des Werkstücks 7, die von der Positions-/Ausrichtungsberechnungseinheit 52 berechnet werden, berechnet (Schritt S32 in 5). Aus den Differenzen ΔR und ΔT wird durch inverse Transformationsberechnung über Gleichung (10) die Befehlsgeschwindigkeit qdot* für jede Achse des Roboterarms 4 berechnet und die Bewegungsbahn wird erzeugt (Schritt S33 in 5).
-
Als nächstes prüft die singuläre Punktvermeidungseinheit 532, ob die Position und die Ausrichtung des TCP des Roboterarms 4, die durch die Bewegungsbahnerzeugungseinheit 531 berechnet werden, nahe an einem singulären Punkt liegen (Schritt S34 in 5). Nur falls die Position und die Ausrichtung des TCP nahe an einem singulären Punkt liegen, wird eine Vermeidungsbewegung erzeugt, und falls die Position und die Ausrichtung des TCP nicht nahe an einem singulären Punkt liegen, wird das nächste Verarbeiten ohne Erzeugen einer Vermeidungsbewegung durchgeführt (Schritt S35 in 5). Konkret wird in Schritt S36 eine Interpolationsgeschwindigkeit Δqdot der Vermeidungsbewegung über Gleichungen (11) bis (13) erzeugt.
-
Schließlich werden die Befehlsgeschwindigkeit qdot* for jeder Achse, die von der Bewegungsbahnerzeugungseinheit 531 erzeugt wird, und die Interpolationsgeschwindigkeit Δqdot, die von der singulären Punktvermeidungseinheit 532 erzeugt wird, addiert, um einen Geschwindigkeitsbefehl für jede Achse des TCP des Roboterarms 4 zu berechnen (Schritt S37 in 5). Dadurch kann ein singulärer Punkt vermieden werden.
-
Obwohl die Ausführungsform der vorliegenden Erfindung vorstehend ausführlich unter Bezugnahme auf die Zeichnungen beschrieben wurde, sind die spezifischen Konfigurationen nicht auf jene in der Ausführungsform beschränkt und Gestaltungsveränderungen usw., die nicht von dem Umfang der vorliegenden Erfindung abweichen, sind ebenfalls eingeschlossen.
-
Bezugszeichenliste
-
- 2
- Kamera (visueller Sensor)
- 4
- Roboterarm
- 5
- Robotersteuerungsvorrichtung
- 7
- Werkstück (Objekt)
- 51
- Merkmalspunkterfassungseinheit
- 52
- Positions-/Ausrichtungsberechnungseinheit
- 53
- Roboterarm-Bewegungssteuerungseinheit
- 521
- Gleichung-der-Bewegung-Aktualisierungseinheit
- 522
- Merkmalspunktposition-Berechnungseinheit
- 523
- Gewichtsberechnungseinheit
- 524
- Drehungs-/Positionsmatrix-Berechnungseinheit
- 531
- Bewegungsbahnerzeugungseinheit
- 532
- singuläre Punktvermeidungseinheit