-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine Technik zum Messen einer Position und Orientierung eines Objekts, dessen dreidimensionale Form gegeben ist.
-
Beschreibung des Standes der Technik
-
In den letzten Jahren, einher mit einer Entwicklung der Robotertechnologie, bearbeiten Roboter allmählich komplizierte Aufgaben anstelle von Menschen. Ein typisches Beispiel von komplizierten Aufgaben umfasst einen Zusammenbau von Industrieprodukten. Um einen Roboter zu steuern, um autonom eine Montageaufgabe auszuführen, muss der Roboter eine Komponente mit einem Greiforgan, wie etwa einer Hand, greifen. Um eine Komponente durch eine Roboterhand zu greifen, müssen die relative Position und Orientierung zwischen der zu greifenden Komponente und dem Roboter gemessen werden und basierend auf den Messergebnissen muss ein Bewegungsplan erzeugt werden, um Stellglieder tatsächlich zu steuern.
-
In weiteren Gebieten außer bei Robotern müssen Positionen und Orientierungen mit Bezug auf Umgebungen und Objekte gemessen werden. Bei einer MR („Mixed Reality”) zum Beispiel müssen eine Position und Orientierung gemessen werden, um ein virtuelles Objekt, das durch einen Computer erzeugt wird, auf einem realen Bild zusammenzusetzen. Die Positions-/Orientierungsmessung eines Roboters wird unter Verwendung einer Kamera oder eines Bereichssensors, der an dem Roboter angebracht ist, ausgeführt, und typischerweise wird ein Verfahren verwendet, das ein zweidimensionales Bild oder ein Bereichsbild verwendet. Auf dem Gebiet der MR wurde eine Technik zum Ausführen einer Positions-/Orientierungsmessung eines HMD (”Head Mounted Display”) unter Verwendung eines Bildes, das durch eine Kamera aufgenommen wird, die an der HMD angebracht ist, erforscht.
-
Patentliteratur 1 (
Japanische Patentanmeldung Nr. 2010-137680 ) offenbart ein Verfahren des präzisen und schnellen Messens einer Position und einer Orientierung eines Objekts, das sich mit hoher Geschwindigkeit bewegt. Bei diesem Verfahren wird ein Betrachtungsbild, das durch Erfassen eines Bildes eines Objekts, auf das ein Rasterlicht bzw. Lichtraster bzw. Lichtmuster projiziert wird, unter Verwendung einer normalen Kamera erhalten wird, in eine Region, die für eine Kantenextrahierung verwendet wird, und eine, die für eine Bereichsbilderzeugung verwendet wird, aufgeteilt, und eine Kantenextrahierung und eine Bereichsbilderzeugung werden unter Verwendung dieser Regionen ausgeführt. Auf diese Weise wird durch eine komplementäre Verwendung einer Positions-/Orientierungsmessung basierend auf zweidimensionalen Kanten und der basierend auf einem Bereichsbild eine Präzisionsverbesserung und eine Beschleunigung der Positions-/Orientierungsmessung erreicht.
-
Mit dem in der Patentliteratur 1 offenbarten Verfahren können zwar Kanten eines Bildes präzise erfasst werden, da manche der Regionen, die mit dem Lichtmuster projiziert bzw. bestrahlt werden, basierend auf einem Kantenmodell, das durch Projizieren bzw. Bestrahlen eines dreidimensionalen Modells erhalten wird, entfernt werden, aber eine Qualität eines Bereichsbilds, das von dem Lichtmuster erzeugt wird, tendiert dazu, grob zu sein. Dieses Phänomen ist besonders auffällig, wenn ein Zielobjekt derart platziert ist, dass es sich in eine Tiefenrichtung eines Betrachtungsbildes über einen breiten Bereich erstreckt, womit oft eine Verschlechterung einer Präzision der Positions-/Orientierungsmessung verursacht wird.
-
KURZFASSUNG DER ERFINDUNG
-
Die vorliegende Erfindung wurde unter Berücksichtigung der vorstehend erwähnten Probleme vorgenommen und stellt eine Technik zum Berechnen einer Position und einer Orientierung eines Objekts, insbesondere eines Objekts, das derart platziert ist, dass es eine Ausdehnung in eine Bildtiefenrichtung aufweist, mit hoher Genauigkeit bereit.
-
Gemäß einem Aspekt der vorliegenden Erfindung ist eine Bereichsmessvorrichtung bereitgestellt, mit: einer Bilderfassungseinrichtung zum Erfassen eines Bildes eines Zielobjekts, das mit einem Lichtmuster projiziert bzw. bestrahlt wird; einer Spezifizierungseinrichtung zum Spezifizieren einer Region, die mit dem Lichtmuster projiziert wird, in einem Bild, das durch die Bilderfassungseinrichtung erfasst wird; einer Sucheinrichtung zum Suchen nach geometrischen Merkmalen des Zielobjekts von einer Region außer der Region, die mit dem Lichtmuster projiziert wird, in dem erfassten Bild, basierend auf der spezifizierten Region; und einer Herleitungseinrichtung zum Herleiten einer Position und einer Orientierung des Zielobjekts basierend auf den geometrischen Merkmalen des Zielobjekts, die durch die Sucheinrichtung gesucht werden, und geometrischen Merkmalen eines Modells des Zielobjekts.
-
Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein Bereichsmessverfahren bereitgestellt, mit: einem Spezifizierungsschritt des Spezifizierens einer Region, die mit einem Lichtmuster projiziert wird, in einem Bild, das durch eine Bilderfassungseinrichtung erfasst wird, die dazu konfiguriert ist, ein Bild eines Zielobjekts, das mit Lichtmuster projiziert wird, zu erfassen; einem Suchschritt des Suchens nach geometrischen Merkmalen des Zielobjekts von einer Region außer der Region, die mit Lichtmuster projiziert wird, in dem erfassten Bild basierend auf der spezifizierten Region; und einem Herleitungsschritt des Herleitens einer Position und einer Orientierung des Zielobjekts basierend auf den geometrischen Merkmalen des Zielobjekts, die in dem Suchschritt gesucht werden, und geometrischen Merkmalen eines Modells des Zielobjekts.
-
Weitere Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung von beispielhaften Ausführungsbeispielen mit Bezug auf die anhängigen Zeichnungen ersichtlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine Ansicht, die ein Anordnungsbeispiel eines Systems zeigt;
-
2 ist ein Blockdiagramm, das ein funktionales Anordnungsbeispiel einer Bildverarbeitungsvorrichtung 104 zeigt;
-
3A bis 3F sind Ansichten zum Erklären eines dreidimensionalen geometrischen Modells;
-
4 ist ein Ablaufdiagramm einer Verarbeitung, die durch die Bildverarbeitungsvorrichtung 104 auszuführen ist;
-
5 ist ein Ablaufdiagramm, das Details einer Verarbeitung in Schritt S403 zeigt;
-
6 ist eine Ansicht, die ein Beispiel eines erfassten Bildes zeigt;
-
7 ist eine Ansicht, die ein Beispiel eines Binärbildes zeigt;
-
8 ist eine Ansicht, die ein Beispiel einer Lichtmustermaske zeigt;
-
9 ist ein Ablaufdiagramm, das Details einer Verarbeitung in Schritt S404 zeigt;
-
10A und 10B sind Ansichten zum Erklären einer Verknüpfungsverarbeitung;
-
11 ist eine Ansicht zum Erklären der Beziehung zwischen einem projizierten Bild eines Liniensegments und einer erfassten Kante; und
-
12 ist eine Ansicht, die ein Anordnungsbeispiel eines Robotersystems zeigt.
-
BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
-
Ausführungsbeispiele der vorliegenden Erfindung werden nachstehend mit Bezug auf die anhängigen Zeichnungen beschrieben. Es sei angemerkt, dass die nachstehend beschriebenen Ausführungsbeispiele Beispiele sind, wenn die vorliegende Erfindung zweckmäßig genutzt wird und praktische Ausführungsbeispiele von Anordnungen sind, die in dem Umfang der Ansprüche beschrieben sind.
-
[Erstes Ausführungsbeispiel]
-
Die Anordnung eines Systems gemäß diesem Ausführungsbeispiel wird zuerst mit Bezug auf 1 beschrieben. Ein Objekt 101 ist ein Zielobjekt als ein Objekt, dessen Position und Orientierung (Position/Orientierung) zu messen sind. In diesem Ausführungsbeispiel wird der Einfachheit halber angenommen, dass nur ein Objekt 101 als ein Positions-/Orientierungsmessziel an einer bestimmten Position platziert ist, wie in 1 gezeigt ist. Eine Positions-/Orientierungsmessverarbeitung hängt jedoch nicht stark von Formen, der Anzahl und Anordnungsformen der Objekte ab. Zum Beispiel ist die vorliegende Erfindung auf einen Fall anwendbar, in dem die Position und Orientierung eines bestimmten Objekts in einem Zustand zu messen sind, in dem eine Vielzahl von Objekten mit unterschiedlichen Formen vermischt und in Stapeln geschichtet sind.
-
Ein Projektor 102 bestrahlt das Objekt mit einem vorgeschriebenen Lichtmuster. In diesem Ausführungsbeispiel wird Schlitzlicht bzw. eine schlitzförmige Lichtquelle als das bzw. die verwendet, mit der das Objekt 101 zu bestrahlen ist. Details des Projektors 102 werden nachstehend beschrieben.
-
Eine Bilderfassungseinrichtung 103 ist erforderlich, um ein Standbild oder ein Bewegtbild im realen Raum zu erfassen, und wird verwendet, um ein Bild des Objekts 101, das mit Schlitzlicht durch den Projektor 102 bestrahlt wird, zu erfassen. Dann gibt die Bilderfassungseinrichtung 103 ein erfasstes bzw. aufgenommenes Bild (erfasstes Bild oder Betrachtungsbild) an eine Bildverarbeitungsvorrichtung 104 aus. Details der Bilderfassungseinrichtung 103 werden nachstehend beschrieben.
-
Die Bildverarbeitungsvorrichtung 104 führt eine Operationssteuerung des Projektors 102 und der Bilderfassungseinrichtung 103 aus und berechnet eine Position und Orientierung des Objekts 101 unter Verwendung des erfassten Bildes, das von der Bilderfassungseinrichtung 103 erhalten wird.
-
Ein funktionales Anordnungsbeispiel der Bildverarbeitungsvorrichtung 104 wird nachstehend mit Bezug auf das in 2 gezeigte Blockdiagramm beschrieben.
-
Eine Positions-/Orientierungsberechnungseinheit 201 berechnet eine Position und Orientierung des Objekts 101 unter Verwendung von Verarbeitungsergebnissen einer Kantenentsprechungserfassungseinheit 205 und einer Bereichsbilderzeugungseinheit 206 basierend auf dem Bild, das durch die Bilderfassungseinrichtung 103 erfasst wird. Dann gibt die Positions-/Orientierungsberechnungseinheit 201 die berechnete Position und Orientierung des Objekts 101 an ein geeignetes Ausgabeziel aus.
-
Dreidimensionale Modellinformationen 202 werden durch Umwandeln eines CAD-Modells oder eines dreidimensionalen CAD-Modells, das durch eine dreidimensionale CAD-Software verarbeitet werden kann, in eine Vielzahl von Polygonelementen, die auf dem Gebiet der Computergraphiken verwendet werden, erhalten. In diesem Ausführungsbeispiel wird ein dreidimensionales geometrisches Modell verwendet, das die Form des Objekts 101 simuliert und durch Polygonelemente konfiguriert ist. Das dreidimensionale geometrische Modell, das durch Polygonelemente konfiguriert ist, wird nachstehend mit Bezug auf 3A bis 3F beschrieben.
-
Das dreidimensionale geometrische Modell, das durch Polygonelemente konfiguriert ist, umfasst Elemente wie etwa Punkte, Linien und Ebenen, wie in 3A bis 3F gezeigt ist. 3A bis 3C zeigen ein identisches dreidimensionales geometrisches Modell.
-
Modellinformationen des dreidimensionalen geometrischen Modells, das durch Polygonelemente konfiguriert ist, verwalten in Verknüpfung mit Eckpunkten des dreidimensionalen geometrischen Modells, das in 3A veranschaulicht ist, Indizes der entsprechenden Eckpunkte und deren dreidimensionalen Koordinatenwerte, wie in 3D gezeigt ist.
-
Ebenso verwalten diese Modellinformationen in Verknüpfung mit entsprechenden Seiten des dreidimensionalen geometrischen Modells, das in 3B veranschaulicht ist, Indizes der entsprechenden Seiten und diese von Eckpunkten an zwei Enden von jeder Seite, wie in 3E gezeigt ist.
-
Des Weiteren verwalten diese Modellinformationen in Verknüpfung mit entsprechenden Ebenen (Polygonen) des dreidimensionalen geometrischen Modells, das in 3C veranschaulicht ist, Indizes der entsprechenden Polygone, diese von entsprechenden Seiten von jedem Polygon und Normalenvektoren der Polygone, wie in 3F gezeigt ist.
-
Solche dreidimensionalen Modellinformationen 202 werden in einem geeigneten Speicher in der Bildverarbeitungsvorrichtung 104 oder einem externen Speicher, auf den die Bildverarbeitungsvorrichtung 104 zugreifen kann, gespeichert.
-
Anfängliche ungefähre Positions-/Orientierungsinformationen 203 sind als Initialwerte von iterativen Berechnungen gegeben, die erforderlich sind, um die Position und Orientierung des Objekts 101 zu berechnen. Als diese anfänglichen ungefähren Positions-/Orientierungsinformationen 203 werden im Voraus geeignete Werte engestellt und in einem geeigneten Speicher in der Bildverarbeitungsvorrichtung 104 oder einem externen Speicher, auf den die Bildverarbeitungsvorrichtung 104 zugreifen kann, gespeichert. Diese anfänglichen ungefähren Positions-/Orientierungsinformationen 203 können durch den Benutzer unter Verwendung einer (nicht gezeigten) Bedieneinheit eingestellt werden.
-
Es sei angenommen, dass die Position und Orientierung die in einem Koordinatensystem (Kamerakoordinatensystem) mit Bezug auf die der Bilderfassungseinrichtung 103 sind, solange es nicht anders spezifiziert ist. Ebenso wird angenommen, dass ein ”Koordinatensystem des Objekts” in der folgenden Beschreibung ein Koordinatensystem angibt, das für jedes Objekt lokal eingestellt ist.
-
Die Kantenentsprechungserfassungseinheit 205 erfasst entsprechende Kanten zwischen dem dreidimensionalen geometrischen Modell, das auf ein Bild projiziert wird, das durch die Bilderfassungseinrichtung 103 erfasst wird, und dem Bild des Objekts 101, das in dem erfassten Bild enthalten ist.
-
Die Bereichsbilderzeugungseinheit 206 erzeugt aus dem Bild, das durch die Bilderfassungseinrichtung 103 erfasst wird, ein Bereichsbild, das Entfernungen von der Bilderfassungseinrichtung 103 zu entsprechenden Positionen auf dem Objekt 101 für entsprechende Pixel darstellt. In diesem Ausführungsbeispiel werden Entfernungen unter Verwendung von Mehrfachschlitzlicht als Lichtmuster in Verknüpfung mit einer Erzeugung des Bereichsbildes durch Triangulation berechnet. Das Lichtmuster ist jedoch nicht darauf beschränkt und andere Muster können verwendet werden, solange eine Vielzahl von Bilderfassungsoperationen nicht erforderlich ist. Zum Beispiel kann ein zufälliges Punktmuster oder ein lokales Ebenenmuster verwendet werden. Alternativ kann ein Punktlicht bzw. punktuelles Licht bzw. ein Lichtpunkt verwendet werden. Bezüglich einer Region, auf die keine Beleuchtung für eine Bereichsmessung projiziert wird, wird kein spezielles Licht projiziert, wenn eine ausreichende Helligkeit durch Umgebungslicht erhalten werden kann. Ansonsten wird ein Beleuchtungsmuster geändert, um zum Beispiel gleichförmig weißes Licht zu projizieren. Ebenso kann bei einem Musterprojektionsverfahren eine projizierte Region umgekehrt werden, um ein Muster als Schatten auszudrücken.
-
Der Projektor
102 ist ein Flüssigkristallprojektor und ist eine Projektionseinrichtung, die Schlitzlicht als ein vorgeschriebenes Lichtmuster projiziert. Intrinsische Parameter (Fokuslänge, Hauptpunktposition und Linsenverzerrungsparameter) des Projektors werden im Voraus zum Beispiel durch ein Verfahren, das in der folgenden Literatur offenbart ist, kalibriert.
Z. Zhang, "A flexible new technique for camera calibration", IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 22, Nr. 11, Seiten 1330–1334, 2000.
-
Es sei angemerkt, dass eine andere Einrichtung als der Projektor 102 verwendet werden kann, solange diese Schlitzlicht projizieren kann. Zum Beispiel kann ein Projektor unter Verwendung einer DMD (”Digital Mirror Device”) oder LCOS verwendet werden.
-
Die intrinsischen Parameter (Fokuslänge, Hauptpunktposition und Linsenverzerrungsparameter) der Bilderfassungseinrichtung
103 werden im Voraus durch zum Beispiel das vorstehend erwähnte Verfahren nach Zhang kalibriert. Weiterhin werden die relative Position und Orientierung zwischen der Bilderfassungseinrichtung
103 und dem Projektor
102 im Voraus durch zum Beispiel das vorstehend erwähnte Verfahren nach Zhang oder ein Verfahren, das in der folgenden Literatur offenbart ist, kalibriert, womit eine Triangulation unter Verwendung von Lichtmuster ermöglicht wird.
Seiji Iguchi und Koseku Sato, "Three-dimensional Image Measurement" (SHOKODO, 1990)
-
Eine Verarbeitung, die durch die Bildverarbeitungsvorrichtung 104 ausgeführt wird, um die Position und Orientierung des Objekts 101 zu berechnen, wird nachstehend mit Bezug auf 4 beschrieben, die das Ablaufdiagramm dieser Verarbeitung zeigt.
-
In Schritt S401 liest die Positions-/Orientierungsberechnungseinheit 201 die dreidimensionalen Modellinformationen 202 aus einem internen oder externen Speicher der Bildverarbeitungsvorrichtung 104 aus. Es sei angemerkt, dass die Positions-/Orientierungsberechnungseinheit 201 die dreidimensionalen Modellinformationen 202, die durch den Benutzer durch Bedienen einer (nicht gezeigten) Bedieneinheit eingegeben werden, beschaffen kann. Alternativ kann eine Vielzahl von Elementen von dreidimensionalen Modellinformationen 202 von einer Vielzahl von dreidimensionalen geometrischen Modellen in dem Speicher gespeichert werden, kann ein Objekt, das in einem Bild, das durch die Bilderfassungseinrichtung 103 erfasst wird, enthalten ist, erkannt werden und können die dreidimensionalen Modellinformationen 202 entsprechend dem erkannten Objekt ausgelesen werden.
-
Als Nächstes liest in Schritt S402 die Positions-/Orientierungsberechnungseinheit 201 die anfänglichen ungefähren Positions-/Orientierungsinformationen 203 aus dem internen oder externen Speicher der Bildverarbeitungsvorrichtung 104 aus. Es sei angemerkt, dass die Positions-/Orientierungsberechnungseinheit 201 die anfänglichen ungefähren Positions-/Orientierungsinformationen 203, die durch den Benutzer durch Betätigen einer (nicht gezeigten) Bedieneinheit eingegeben werden, beschaffen kann. Alternativ können die anfänglichen ungefähren Positions-/Orientierungsinformationen 203 durch einen optischen Sensor bestimmt und beschafft werden, der die Position und Orientierung misst, durch Erfassen von Markierungen, die auf dem Objekt angeordnet sind, unter Verwendung einer Kamera, die auf eine Szene fixiert ist. Zusätzlich können beliebige Sensoren verwendet werden, solange diese eine Position und Orientierung von sechs Freiheitsgraden messen. Ebenso, wenn eine ungefähren Position und Orientierung, an der das Objekt platziert ist, im Voraus bekannt sind, können diese Werte als die anfänglichen ungefähren Positions-/Orientierungsinformationen 203 verwendet werden.
-
Als Nächstes erzeugen in Schritt S403 die Kantenentsprechungserfassungseinheit 205 und die Bereichsbilderzeugungseinheit 203 entsprechend eine Lichtmustermaske und ein Bereichsbild basierend auf dem Bild, das durch die Bilderfassungseinrichtung 103 erfasst wird. Details dieser Verarbeitung in Schritt S403 werden nachstehend mit Bezug auf das in 5 gezeigte Ablaufdiagramm beschrieben.
-
Als Nächstes festigen in Schritt S404 die Positions-/Orientierungsberechnungseinheit 202, die Kantenentsprechungserfassungseinheit 205 oder eine (nicht gezeigte) Steuerungseinheit die Position und Orientierung des dreidimensionalen geometrischen Modells des Objekts 101 basierend auf den entsprechenden Elementen von Informationen, die in Schritten S401 bis S403 erhalten werden. Somit wird die Position und Orientierung als die des Objekts 101 berechnet.
-
Details der Verarbeitung in Schritt S403 werden nachstehend mit Bezug auf 5 beschrieben, welche das Ablaufdiagramm von dieser Verarbeitung zeigt.
-
In Schritt S501 steuert die (nicht gezeigte) Steuerungseinheit den Projektor 102, um das Objekt 101 mit Schlitzlicht als das vorbestimmte Lichtmuster zu bestrahlen.
-
In Schritt S502 steuert die (nicht gezeigte) Steuerungseinheit die Bilderfassungseinrichtung 103, um ein Bild des Objekts 101, das mit dem vorgeschriebenen Lichtmuster bestrahlt wird, zu erfassen. 6 zeigt ein Beispiel eines durch die Bilderfassungseinrichtung 103 erfassten Bildes. Die folgende Beschreibung wird der Einfachheit halber unter der Annahme vorgenommen, dass das durch die Bilderfassungseinrichtung 103 erfasste Bild das ist, das in 6 veranschaulicht wird.
-
In Schritt S503 steuert die (nicht gezeigte) Steuerungseinheit den Projektor 102, um eine Bestrahlung mit dem Schlitzlichts als das vorgeschriebene Lichtmuster zu beenden.
-
In Schritt S504 erfasst die Kantenentsprechungserfassungseinheit 205 Regionen mit dem Lichtmuster in dem erfassten Bild als mit Lichtmuster projizierte Regionen und erzeugt ein Binärbild, das die gleiche vertikale und horizontale Größe wie die des erfassten Bildes aufweist und drückt die mit Lichtmuster projizierten Regionen und eine nicht mit Lichtmuster projizierte Region unter Verwendung von verschiedenen Pixelwerten aus. Das Binärbild wird wie folgt erzeugt.
-
Das heißt es wird auf einen Luminanzwert an jeder Pixelposition in dem erfassten Bild Bezug genommen und wenn ein Luminanzwert an der bezeichneten Pixelposition (x, y) nicht weniger als ein Schwellenwert ist, wird beurteilt, dass die Pixelposition zu einer mit Lichtmuster projizierten Region gehört, und ein Pixelwert an der Pixelposition (x, y) in dem Binärbild wird auf ”1” gesetzt. Andererseits, wenn der Luminanzwert an der Pixelposition (x, y) in dem erfassten Bild niedriger als der Schwellenwert ist, wird beurteilt, dass die Pixelposition nicht zu der mit Lichtmuster projizierten Region gehört, und ein Pixelwert der Pixelposition (x, y) in dem Binärbild wird auf ”0” eingestellt. Es sei angemerkt, dass die Bedeutungen von ”1” und ”0” umgekehrt werden könnten, und dass die vorliegende Erfindung nicht auf diese Werte beschränkt ist. Das heißt, es muss nur durch einen Pixelwert unterschieden werden, ob ein Pixel an jeder Pixelposition in dem Binärbild an einer Pixelposition liegt, die zu der mit Lichtmuster projizierten Region gehört oder nicht.
-
Ob ein Pixel an einer Pixelposition in dem erfassten Bild zu der mit Lichtmuster projizierten Region gehört, kann durch verschiedene andere Verfahren zusätzlich zum Vergleich zwischen dem Luminanzwert und einem Schwellenwert, wie vorstehend beschrieben, beurteilt werden. Zum Beispiel kann solch eine Beurteilung durch ein Verfahren des Vornehmens von solch einer Unterscheidung basierend auf Komponenteninformationen einer Farbe des Schlitzlichts und der einer Farbe von jedem Pixel in dem erfassten Bild oder ein Verfahren des Vornehmens solch einer Unterscheidung basierend auf der Weise, wie sich Farbinformationen ändern, durchgeführt werden.
-
7 zeigt ein Beispiel eines Binärbildes, das von dem in 6 gezeigten erfassten Bild erzeugt wird. Regionen mit den mit Lichtmuster projizierten Regionen in dem in 6 gezeigten erfassten Bild sind in 7 durch schwarze Linien angegeben und diese schwarzen Linien werden durch Pixel mit einem Pixelwert ”1” gebildet (eine andere Region als die schwarze Linie wird durch Pixel mit einem Pixelwert ”0” gebildet).
-
Als Nächstes erzeugt in Schritt S505 die Bereichsbilderzeugungseinheit
206 ein Bereichsbild unter Verwendung des in Schritt S504 erzeugten Binärbildes. Eine Entfernung als ein Pixelwert von jedem Pixel des Bereichsbilds kann gemäß einem in der folgenden Literatur beschriebenen Verfahren berechnet werden.
R. Hartley und A. Zisserman "Multiple view geometry in computer vision Second Edition" (Cambridge University Press, 2003).
-
In diesem Ausführungsbeispiel werden Entfernungen basierend auf Pixelpositionen in dem Lichtmuster, das durch den Projektor 102 projiziert wird, berechnet, entsprechend Positionen auf dem erfassten Bild, den intrinsischen Parametern des Projektors 102 und der Bilderfassungseinrichtung 103 und der relativen Position und Orientierung zwischen dem Projektor 102 und der Bilderfassungseinrichtung 103. Dann werden visuelle Linienvektoren entsprechend den entsprechenden Pixelpositionen des erfassten Bildes mit den Entfernungen von diesen Pixelpositionen multipliziert, womit Positionen (dreidimensionale Positionen in dem Kamerakoordinatensystem) als Zeigerziele der visuellen Linienvektoren, die durch die entsprechenden Pixelpositionen des erfassten Bildes verlaufen, als Punktgruppendaten berechnet werden.
-
In Schritt S506 erzeugt die Kantenentsprechungserfassungseinheit 205 ein Bild, das durch Ändern des Binärbildes, das heißt durch Vergrößern von Regionen mit einem Pixelwert ”1” in den Binärbildern erhalten wird, als eine Lichtmustermaske (mit der gleichen vertikalen und horizontalen Größe wie die des Binärbildes).
-
Anfangs wird eine Lichtmustermaske als eine Kopie des Binärbildes erzeugt. Dann wird auf eine Pixelposition in der Lichtmustermaske Bezug genommen und wenn ein Pixelwert eines Pixels an der bezeichneten Pixelposition (x, y) gleich ”1” ist, werden Pixelwerte von benachbarten Pixeln (zum Beispiel Pixel, deren Nachbar ein betroffenes Pixel ist) des betreffenden Pixels auf ”1” aktualisiert.
-
8 zeigt ein Beispiel der Lichtmustermaske, die aus dem in 7 gezeigten Binärbild erzeugt wird. Die mit Lichtmuster projizierten Regionen (durch Pixel eines Pixelwerts ”1” gebildet) in dem in 7 gezeigten Binärbild werden in 8 zu dickeren schwarzen Linien vergrößert und die vergrößerten schwarzen Linien werden durch Pixel mit einem Pixelwert ”1” gebildet (eine andere Region als die vergrößerten schwarzen Linien werden durch Pixel mit einem Pixelwert ”0” gebildet).
-
Diese Lichtmustermaske wird verwendet, um später Abweichungen (Fehler) von Kanten zwischen dem dreidimensionalen geometrischen Modell auf dem erfassten Bild und dem Objekt 101 in der Positions-/Orientierungsberechnungsverarbeitung zu berechnen. Der Grund, warum die mit Lichtmuster projizierten Regionen vergrößert werden, ist ein Risiko von Entsprechungsfehlern von Kanten des dreidimensionalen geometrischen Modells wie denen, die durch Lichtmusterprojektion gebildet werden, zu reduzieren. Diese Verknüpfung wird später detailliert beschrieben.
-
Als Nächstes werden Details der Verarbeitung in Schritt S404 nachstehend mit Bezug auf 9 beschrieben, die das Ablaufdiagramm dieser Verarbeitung zeigt. In diesem Ausführungsbeispiel wird bei den iterativen Berechnungen, die erforderlich sind, um die Position und Orientierung des Objekts 101 zu festigen, ein Gauss-Newton-Verfahren verwendet. Somit werden ungefähre Werte der Position und Orientierung (in der folgenden Beschreibung durch ”s” ausgedrückt) des Objekts 101 iterativ durch die iterativen Berechnungen korrigiert, wodurch die Position und Orientierung berechnet werden.
-
In den Berechnungen der Position und Orientierung in diesem Ausführungsbeispiel werden eine geschätzte Position und Orientierung wie folgt optimiert. Das heißt, die geschätzte Position und Orientierung werden durch Minimieren einer Gesamtsumme von Entfernungen zwischen den Kanten des Objekts 101 auf dem erfassten Bild und Liniensegmenten des dreidimensionalen geometrischen Modells, das auf dieses Bild projiziert wird, basierend auf der geschätzten Position und Orientierung und Entfernungen zwischen den entsprechenden Positionen, die durch die Punktgruppendaten angegeben werden, und dem dreidimensionalen geometrischen Modell bei der geschätzten Position und Orientierung optimiert. Genauer werden vorzeichenbehaftete Entfernungen zwischen Punkten und Linien auf einem zweidimensionalen Bild und vorzeichenbehaftete Entfernungen zwischen Punkten und einer Ebene in einem dreidimensionalen Raum als lineare Funktionen von minimalen Änderungen in einer Position und Orientierung des Objekts 101 durch lineare Taylor-Entwicklung ausgedrückt. Dann werden durch Schreiben und Lösen von linearen simultanen Gleichungen, die mit minimalen Änderungen in einer Position und Orientierung verknüpft sind, so dass die vorzeichenbehafteten Entfernungen gleich Null werden, die minimalen Änderungen in Position und Orientierung des Objekts 101 berechnet, um die Position und Orientierung wiederholt zu korrigieren.
-
In Schritt S901 stellt die Positions-/Orientierungsberechnungseinheit 201 die vorstehenden anfänglichen ungefähren Positions-/Orientierungsinformationen 203 so ein, dass sie die Initialwerte (Initialposition und -Orientierung s) der folgenden iterativen Berechnungen sind.
-
In Schritt S902 projiziert die Kantenentsprechungserfassungseinheit 205 ein dreidimensionales geometrisches Modell (in der Praxis nur Seiten) mit einer Position und Orientierung, die durch die momentanen Werte s angegeben sind, auf das erfasste Bild. Weiterhin wandelt die Positions-/Orientierungsberechnungseinheit 201 in Verknüpfung mit entsprechenden Ebenen, die das dreidimensionale geometrische Modell bilden, Koordinatenwerte der entsprechenden Eckpunkte der Ebenen in die des Kamerakoordinatensystems um.
-
Dann verknüpft die Kantenentsprechungserfassungseinheit 205 Kanten zwischen dem Objekt 101 in dem erfassten Bild und dem dreidimensionalen geometrischen Modell, das auf das erfasste Bild projiziert wird. Diese Verknüpfungsverarbeitung wird nachstehend mit Bezug auf 10A und 10B beschrieben. In 10A wird eine Region in dem erfassten Bild entsprechend einer Region, in der ein Pixelwert gleich ”1” in der Lichtmustermaske ist, als eine Lichtmustermaske 1004 ausgedrückt.
-
Ein Liniensegment, das durch Projizieren eines Liniensegments des dreidimensionalen geometrischen Modells mit der Position und Orientierung, die durch die momentanen Werte s angegeben sind, erhalten wird, wird als ein Liniensegment 1001 gezeigt. Ein projiziertes Bild des Liniensegments ist ebenso ein Liniensegment auf dem Bild. Als Nächstes werden Steuerungs- bzw. Kontrollpunkte 1002 auf dem projizierten Liniensegment 1001 gesetzt, um gleiche Intervalle auf dem Bild zu haben, und eine Suchlinie 1003 wird in eine Richtung senkrecht zu dem projizierten Liniensegment 1001 für jeden Steuerungspunkt 1002 gesetzt. Dann wird für jeden Steuerungspunkt 1002 eine eindimensionale Kante auf einer Linie erfasst, die innerhalb einer vorgeschriebenen Entfernung von diesem Steuerungspunkt auf der Suchlinie 1003, die für diesen Steuerungspunkt eingestellt ist, liegt, und nicht die Lichtmustermaske 1004 umfasst. Dann wird ein Punkt, der dem Steuerungspunkt 1002 der erfassten Kanten am nächsten liegt, als ein Entsprechungspunkt 1005 gespeichert. In der Praxis kann, obwohl die Lichtmustermaske 1004 Kanten umfasst, die durch das Lichtmuster gebildet werden, da ein Entsprechungspunkt auf diese Weise gesucht wird, vermieden werden, dass eine Kante, die durch das Lichtmuster gebildet wird, fälschlicherweise verknüpft wird.
-
10B zeigt einen Graph, in dem ein Ursprung ein Steuerungspunkt ist, die Abszisse Suchlinien darstellt und die Ordinate Absolutwerte eines Luminanzgradienten darstellt. In dem vorhergehenden Bild wird eine Kante als ein Extremwert eines Absolutwerts eines Luminanzgradienten eines Pixelwerts erfasst. Auf diese Weise wird ein Punkt, an dem der Extremwert des Absolutwerts des Luminanzgradienten größer ist als ein vorbestimmter Wert und der am nächsten zu dem Steuerungspunkt liegt, als ein Entsprechungspunkt 1006 erfasst (der Entsprechungspunkt 1005 in 10A).
-
Es sei angemerkt, dass nach einer Erfassung einer Kante, die sich nicht aus dem Lichtmuster ergibt, eine Kante in einer anderen Region als der Lichtmustermaske 1004 in diesem Ausführungsbeispiel erfasst wird. Jedoch kann die Verarbeitungsreihenfolge zu dieser Zeit die folgende Reihenfolge sein, um den gleichen Effekt zu erhalten. Das heißt, nachdem eine Kante erfasst wird, wird unterschieden, ob die erfasste Kante innerhalb einer Maskenregion liegt oder nicht. Wenn die erfasste Kante innerhalb der Maskenregion liegt, wird diese Kante angewendet; wenn sie außerhalb der Region liegt, wird die nächste Kante erfasst.
-
In Schritt S903 berechnet die Positions-/Orientierungsberechnungseinheit 201 eine Koeffizientenmatrix, die erforderlich ist, um die Position und Orientierung (die erforderlich ist, um lineare simultane Gleichungen zu lösen) und Fehlervektoren zu berechnen. Um ein Liniensegment als eine Seite des dreidimensionalen geometrischen Modells mit einer Kante zu verknüpfen und die Position und Orientierung des Objekts 101 zu berechnen, muss die Koeffizientenmatrix berechnet werden, die erforderlich ist, um die Position und Orientierung und Fehlervektoren zu berechnen.
-
Es sei angemerkt, dass Elemente der Koeffizientenmatrix lineare partiell differentielle Koeffizienten für minimale Änderungen in ungefähren Werten der Position und Orientierung sind. Bezüglich Kanten werden partiell differentielle Koeffizienten von Bildkoordinaten berechnet und bezüglich einer Punktgruppe werden partiell differentielle Koeffizienten von dreidimensionalen Koordinaten berechnet. Jeder Fehlervektor ist eine Entfernung zwischen dem projizierten Liniensegment und einer erfassten Kante auf dem Bild in Verknüpfung mit dieser Kante und ist eine Entfernung zwischen einer Ebene und einem Punkt eines Modells im dreidimensionalen Raum in Verknüpfung mit den Punktgruppendaten.
-
11 ist eine Ansicht zum Erklären eines projizierten Bildes eines Liniensegments und einer erfassten Kante. In 11 werden horizontale und vertikale Richtungen eines Bildes entsprechend als u- und v-Achsen ausgedrückt. Koordinaten eines bestimmten Steuerungspunktes (ein Punkt, der jedes projizierte Liniensegment auf dem Bild gleichmäßig teilt) auf dem Bild werden durch (u0, v0) ausgedrückt und eine Neigung des Liniensegments, zu dem der Steuerungspunkt auf dem Bild gehört, wird als eine Neigung θ mit Bezug auf die u-Achse ausgedrückt. Die Neigung θ wird als eine Neigung einer Linie berechnet, die Koordinaten von zwei Enden auf dem Bild koppelt, durch Projizieren von dreidimensionalen Koordinaten der zwei Enden des Liniensegments. Ein Normalenvektor zu dem Liniensegment auf dem Bild wird durch (sinθ, –cosθ) ausgedrückt. Ebenso werden Koordinaten eines Entsprechungspunktes des Steuerungspunktes auf dem Bild durch (u', v') ausgedrückt. Ein Punkt (u, v) auf einer Linie (einer gestrichelten Linie in 11), der durch die Koordinaten (u', v') des Entsprechungspunktes führt und eine Neigung θ aufweist, kann ausgedrückt werden durch: usinθ – vcosθ = d (1) d = u'sinθ – v'cosθ
-
Die Position des Steuerungspunktes auf dem Bild ändert sich in Abhängigkeit von der Position und Orientierung des Objekts
101. Freiheitsgrade der Position und Orientierung des Objekts
101 sind sechs Freiheitsgrade. Das heißt, s ist ein sechsdimensionaler Vektor, der drei Elemente umfasst, die die Position des Objekts
101 darstellen, und drei Elemente, die die Orientierung darstellen. Die drei Elemente, die die Orientierung darstellen, werden durch zum Beispiel Euler-Winkel oder einen dreidimensionalen Vektor ausgedrückt, in dem eine Richtung einen Rotationswinkel darstellt, der durch einen Ursprung läuft, und Normen Rotationswinkel darstellen. Die Koordinaten (u, v) des Punktes, die sich in Abhängigkeit von der Position und Orientierung auf dem Bild ändern, können in der Umgebung von Koordinaten (u0, v0) durch eine lineare Taylor-Entwicklung genähert werden, wie etwa:
wobei Δs
i (i = 1, 2, ..., 6) eine minimale Änderung von jeder Komponente von s ist.
-
Es kann angenommen werden, dass eine Position eines Steuerungspunktes, der durch die korrekten Werte s auf dem Bild erhalten wird, auf der Linie liegt, die durch Gleichung (1) gegeben ist. Ein Einsetzen von u und v, die durch Gleichungen (2) genähert werden, in Gleichung (1) ergibt:
-
Dreidimensionale Koordinaten auf dem Kamerakoordinatensystem können in dreidimensionale Koordinaten (x, y, z) auf dem Koordinatensystem des Objekts
101 unter Verwendung der Position und Orientierung s des Objekts
101 umgewandelt werden. Es sei angenommen, dass ein bestimmter Punkt in einen Punkt (x0, y0, z0) auf dem Koordinatensystem des Objekts
101 umgewandelt wird, basierend auf der ungefähren Position und Orientierung. Die Koordinaten (x, y, z) ändern sich in Abhängigkeit von der Position und Orientierung des Objekts
101 und können in der Umgebung des Punktes (X0, y0, z0) durch eine lineare Taylor-Erweiterung wie folgt genähert werden:
-
Es sei angenommen, dass eine Gleichung einer Ebene des dreidimensionalen Modells, das mit einer Position verknüpft ist, die durch bestimmte Daten in den Punktgruppendaten auf dem Koordinatensystem des Objekts
101 in Schritt S902 verknüpft ist, gegeben ist durch ax + by + cz = e(a2 + b2 + c2 = 1, a, b, c und e sind Konstanten). Es wird ebenso angenommen, dass die Koordinaten (x, y, z), die unter Verwendung der korrekten Werte s umgewandelt werden, die Gleichung ax + by + cz = e(a2 + b2 + c2 = 1) der zweidimensionalen Ebene erfüllen. Wenn Gleichungen (4) in die Gleichung der Ebene eingesetzt werden, wird erhalten:
-
In diesem Ausführungsbeispiel wird, wie vorstehend beschrieben, ein Fehlerwert in dem dreidimensionalen Raum durch eine Entfernung zwischen einer Ebene des dreidimensionalen geometrischen Modells und einem entsprechenden Messpunkt (Gleichung (5)) ausgedrückt. Jedoch ist das Definitionsverfahren des Fehlerwertes nicht darauf beschränkt und irgendwelche anderen Verfahren können verwendet werden, solange diese Entfernungen (Abweichungsbeträge) zwischen dem dreidimensionalen geometrischen Modell und Punktgruppendaten definieren können. Wenn zum Beispiel die Punktgruppendaten Linieninformationen und Ebeneninformationen umfassen, wenn ein Fehlerwert unter Verwendung einer Zwischenkantenentfernung oder Zwischenebenenentfernung definiert ist, können die Position und Orientierung ähnlich berechnet werden.
-
Gleichung (3) kann für alle verknüpften Kanten wahr sein. Ebenso, da Gleichung (5) für alle verknüpften Punktgruppendaten wahr ist, sind lineare simultane Gleichungen, die mit Δs
i verknüpft sind, zutreffend, gegeben durch:
-
Es sei angemerkt, dass Gleichungen (6) ausgedrückt werden als: JΔs = E (7)
-
Partielle differentielle Koeffizienten, die erforderlich sind, um eine Koeffizientenmatrix 3 von linearen simultanen Gleichungen (6) zu berechnen, werden gemäß zum Beispiel einem in der folgenden Literatur offenbarten Verfahren berechnet:
V. Lepetit und P. Fua, "Keypoint recognition using randomized trees", IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 28, Nr. 9, 2006.
-
In Schritt S904 berechnet die Positions-/Orientierungsberechnungseinheit 201 partielle differentielle Koeffizienten, die erforderlich sind, um die Koeffizientenmatrix J der linearen simultanen Gleichungen zu berechnen. Basierend auf Gleichung (7) berechnet die Positions-/Orientierungsberechnungseinheit 201 einen Positions-/Orientierungskorrekturwert Δs unter Verwendung einer verallgemeinerten inversen Matrix (JT·J)–1·JT der Matrix J. Da Kanten und Punktgruppendaten aufgrund von Erfassungsfehlern jedoch viele Ausreißer umfassen, wird ein robustes Schätzverfahren, das nachstehend beschrieben wird, verwendet. Im Allgemeinen wird an einer Kante (Punktgruppendaten) als ein Ausreißer ein Fehler d – r (e – q) groß. Folglich weist solch eine Kante einen großen Grad einer Mitwirkung auf simultane Gleichungen von Gleichungen (6) und (7) auf und die Präzision von Δs verringert sich entsprechend.
-
Folglich wird Daten mit einem großen Fehler d – r (e – q) eine kleine Gewichtung gegeben und wird Daten mit einem kleinen Fehler d – r (e – q) eine große Gewichtung gegeben. Die Gewichtung wird unter Verwendung einer Tukey-Funktion vorgenommen, die gegeben ist durch:
wobei c
1 und c
2 Konstanten sind. Es sei angemerkt, dass die Funktion, die verwendet wird, um eine Gewichtung vorzunehmen, nicht die Tukey-Funktion sein muss, und irgendwelche anderen Funktionen, wie etwa eine Huber-Funktion, verwendet werden können, solange diese eine kleine Gewichtung an Informationen mit einem großen Fehler und eine große Gewichtung an Informationen mit einem kleinen Fehler geben. Sei w
i eine Gewichtung entsprechend jeder Messinformation (Kante oder Punktgruppendaten). Es sei angemerkt, dass eine Gewichtungsmatrix W definiert ist durch:
-
Die Gewichtungsmatrix W ist eine quadratische Matrix, bei der alle Einträge außer diagonalen Komponenten, die Gewichtungen wi umfassen, gleich ”0” sind. Unter Verwendung dieser Gewichtungsmatrix W wird Gleichung (7) umgeformt, wie: WJΔs = WE (10)
-
Der Korrekturwert Δs wird durch Lösen von Gleichung (10) berechnet, wie etwa: Δs = (JT·WJ)–1·JT·WE (11)
-
In Schritt S905 korrigiert (aktualisiert) die Positions-/Orientierungsberechnungseinheit 201 die ungefähren Positions-/Orientierungswerte s durch Berechnen, unter Verwendung des Positions-/Orientierungskorrekturwerts Δs, der in Schritt S904 berechnet wird: s ← s + Δs
-
In Schritt S906 nimmt die Positions-/Orientierungsberechnungseinheit 201 eine Konvergenzbestimmung von s vor. Wenn s konvergiert ist, endet die Verarbeitung; ansonsten kehrt der Prozess zurück zu Schritt S902, um iterative Berechnungen fortzusetzen. Bei der Konvergenzbestimmung wird eine Konvergenz bestimmt, wenn der Korrekturwert Δs in der Nähe von Null ist oder wenn quadratische Summen von Fehlervektoren vor und nach einer Korrektur fast gleich sind. Auf diese Weise können die Position und Orientierung durch iteratives Vornehmen von Berechnungen bis zu einer Konvergenz berechnet werden.
-
Wie vorstehend beschrieben kann gemäß diesem Ausführungsbeispiel erreicht werden, dass die Positions-/Orientierungsmessung eine höhere Stabilität mit Bezug auf eine Oberflächenform und eine geometrische Form eines Objekts aufweist, und speziell für ein Objekt, das derart angeordnet ist, dass es eine Ausdehnung in eine Bildtiefenrichtung aufweist, eine hohe Präzision aufweist.
-
Es sei angemerkt, dass dieses Ausführungsbeispiel das Berechnungsverfahren unter Verwendung des Gauss-Newton-Verfahrens als ein Beispiel einer Modellanpassung erklärt hat. Das Modellanpassungsverfahren ist nicht darauf beschränkt. Zum Beispiel können Berechnungen unter Verwendung eines Levenberg-Marquardt-Verfahrens vorgenommen werden, das robustere Berechnungen erreichen kann, oder unter Verwendung eines Verfahrens eines steilsten Abstiegs als ein einfaches Verfahren. Ebenso können andere nichtlineare Optimierungsberechnungsverfahren, wie etwa ein konjugiertes Gradientenverfahren und ICCG-Verfahren verwendet werden.
-
Weiterhin werden in diesem Ausführungsbeispiel die Position und Orientierung des Objekts 101 in Schritt S404 durch eine Modellanpassung mit iterativen Berechnungen unter Verwendung des Bereichsbilds und einer Lichtmustermaske, die in Schritt S403 erhalten wird, berechnet. Es kann jedoch ein Verfahren des direkten Berechnens der Position und Orientierung unter Verwendung einer Musterabgleichung anstelle einer Modellanpassung in Schritt S404 verwendet werden.
-
Zum Beispiel wird eine geodätische Sphäre mit gleichen Entfernungen von der Mitte eines CAD-Modells zu Eckpunkten als CAD-Daten eines Objekts eingestellt. Dann werden Kantenbilder, wenn von entsprechenden Eckpunkten der geodätischen Sphäre zu der Mitte des CAD-Modells aus betrachtet, im Voraus vorbereitet und eine Musterabgleichung zwischen diesen vom Betrachtungspunkt abhängigen Kantenmodellen und einem erfassten Bild, das bereits der Lichtmustermaskenverarbeitung unterzogen wurde, wird ausgeführt. Auf diese Weise können eine ungefähre Position und Orientierung des Objekts berechnet werden, während der Einfluss von Lichtmusterrauschen unterdrückt wird. Weiterhin ist die Verwendungsanwendung des Bereichsbilds und der Lichtmustermaske, die in Schritt S403 erhalten werden, nicht auf eine Verwendung bei einer Modellanpassung oder einer Musterabgleichung beschränkt. Zum Beispiel sind das Bereichsbild und die Lichtmustermaske bei einer allgemeinen Kollationsverarbeitung breit einsetzbar, die den Einfluss von Lichtmusterrauschen unter Verwendung der Lichtmustermaske eliminiert.
-
Es sei angemerkt, dass in diesem Ausführungsbeispiel die Bildverarbeitungsvorrichtung 104 ein erfasstes Bild direkt von der Bilderfassungseinrichtung 103 beschafft. Die vorliegende Erfindung ist jedoch nicht darauf beschränkt. Zum Beispiel kann die Bildverarbeitungsvorrichtung 104 ein erfasstes Bild von einem Speicher beschaffen, das Bilder speichert, die von der Bilderfassungseinrichtung 103 erfasst werden. In diesem Fall muss die Bilderfassungsvorrichtung 103 nicht immer mit der Bildverarbeitungsvorrichtung 104 verbunden sein.
-
Das heißt, die Bildverarbeitungsvorrichtung 104 gemäß dem ersten Ausführungsbeispiel und den folgenden Ausführungsbeispielen ist lediglich ein Beispiel der folgenden Anordnung und verschiedene Modifikationen der Anordnung sind anwendbar, solange diese Funktionen aufweisen, die äquivalent zu der folgenden Anordnung sind.
-
Das heißt, ein Bild, das ein Zielobjekt umfasst, auf das ein Lichtmuster projiziert wird, wird beschafft. Dann werden Modellinformationen, die eine Form des Zielobjekts simulieren, auf dem Bild überlagert, Punkte des Zielobjekts, die denen der überlagerten Modellinformationen entsprechen, werden aus einer anderen Region als einer vergrößerten Region, die durch Vergrößern einer Region mit dem Lichtmuster in dem Bild erhalten wird, spezifiziert. Dann werden basierend auf den spezifizierten Punkten positionelle Abweichungen zwischen den Modellinformationen, die auf dem Bild überlagert sind, und dem Zielobjekt berechnet. Dann werden die Position und Orientierung der Modellinformationen als diese des Zielobjekts berechnet, um die positionellen Abweichungen zu minimieren.
-
Bei der vorstehenden Suche wird eine Region mit Lichtmuster in dem erfassten Bild als eine Lichtmusterregion definiert und eine Region ohne irgendwelches Lichtmuster in dem erfassten Bild wird als eine Nichtlichtmusterregion definiert. Ein Maskenbild mit verschiedenen Pixelwerten in einer Region in dem Maskenbild entsprechend der Lichtmusterregion und der in dem Maskenbild entsprechend der Nichtlichtmusterregion wird erzeugt und eine Region in dem erfassten Bild entsprechend einer Region, die durch Vergrößern der Region in dem Maskenbild entsprechend der Lichtmusterregion erhalten wird, wird als eine vergrößerte Region definiert. Dann werden die Suchergebnisse in einer anderen Region als der vergrößerten Region als ”Entsprechungspunkte des Zielobjekts” definiert. Alternativ werden Ergebnisse, die durch Ausschließen von Positionen in der vergrößerten Region von den Suchergebnissen erhalten werden, als ”Entsprechungspunkte des Zielobjekts” definiert.
-
Bei den vorstehenden Berechnungen wird ein Bereichsbild, das Entfernungen von der Bilderfassungseinrichtung zu entsprechenden Positionen auf dem Zielobjekt als Pixelwerte umfasst, von dem Maskenbild erzeugt. Dann werden die iterativen Berechnungen vorgenommen, um positionelle Abweichungen zwischen entsprechenden Positionen auf dem Zielobjekt, die durch das Bereichsbild ausgedrückt werden, und denen entsprechend diesen Positionen auf den Modellinformationen und die Entfernungen zu minimieren.
-
[Zweites Ausführungsbeispiel]
-
Das erste Ausführungsbeispiel hat das Verfahren des Erfassens von mit Lichtmuster projizierten Regionen von einem erfassten Bild und des Erzeugens einer Musterbildmaske basierend auf den erfassten Regionen in Schritt S506 beschrieben. Dieses Verfahren ist breit anwendbar, auch wenn eine Form des Lichtmusters nicht bekannt ist. Als ein weiteres Verfahren, wenn die Form des Lichtmusters gegeben ist, werden projizierte Regionen des Lichtmusters in dem erfassten Bild von dieser Lichtmusterform, einer ungefähren Position und Orientierung eines Objekts und einer geometrischen Form des Objekts berechnet, womit eine Lichtmustermaske erzeugt wird.
-
Basierend auf Lichtquelleninformationen wird in einem Zustand, in dem ein Projektor Lichtmuster projiziert, und Modellinformationen eines Objekts, das an einer ungefähren Position und Orientierung ausgerichtet ist, ein spezifisches Pixel, auf das ein Kameraschlitzlicht, das ein Bild erfasst, projiziert wird, berechnet. Genauer werden solche Pixel durch das Prinzip eines Lichtstrahlverfolgungsverfahrens berechnet, das verfolgt und berechnet, welche Positionen auf einem Bildsensor der Kamera Strahlen, die von einer Schlitzlichtquelle abgestrahlt werden, über eine Kollision auf einer Objektoberfläche erreichen. Somit können Informationen, die zu einer Bitmap (7) äquivalent sind, die in Schritt S504 erzeugt wird, und die mit Lichtmuster projizierte Regionen angeben, erhalten werden. Die nachfolgenden Prozesse sind die gleichen wie die des Verfahrens, das in dem ersten Ausführungsbeispiel beschrieben wird, womit die Position und Orientierung des Objekts gemessen werden.
-
[Drittes Ausführungsbeispiel]
-
Das in dem ersten und zweiten Ausführungsbeispiel beschriebene Verfahren ist das Verfahren des Erfassens von Kanten, während Lichtmuster vermieden wird. Das vorstehend erwähnte Fehlerberechnungsverfahren (nachstehend als ein Entfernungsprioritätsfehlerberechnungsverfahren bezeichnet) legt eine Priorität auf eine Lichtmustererfassung und besitzt eine hohe Erfassungspräzision von Fehlern in der Tiefenrichtung. Im Gegensatz dazu legt das in Patentliteratur 1 offenbarte Verfahren (nachstehend als Kantenprioritätsfehlerberechnungsverfahren bezeichnet) eine Priorität auf eine Kantenerfassung und ist durch eine hohe Erfassungspräzision von Fehlern in einer Richtung einer Ebene eines erfassten Bildes gekennzeichnet.
-
Basierend auf diesen Charakteristika ist ein Mechanismus zum Unterscheiden eingerichtet, basierend auf einer Objektform nach Fehlerberechnungen, ob das Entfernungsprioritätsfehlerberechnungsverfahren oder das Kantenprioritätsfehlerberechnungsverfahren angewendet wird, womit Messungen mit höherer Genauigkeit ermöglicht werden. Praktische Beispiele dieses Unterscheidungskriteriums werden nachstehend beschrieben.
-
Ein erstes Verfahren basiert auf einer Objektform. Zuerst werden Abtastpunkte in einem Raum eines dreidimensionalen geometrischen Modells eines Objekts gleichmäßig eingestellt. Eine Hauptkomponentenanalyse wird auf einen Satz von drei Abtastpunkten angewendet, um Beitragsverhältnisse von ersten, zweiten und dritten Hauptkomponenten zu berechnen (ein Verhältnis von jeder Hauptkomponente zu einer Summe von drei Hauptkomponenten). Des Weiteren werden Beziehungen und Merkmale dieser Beitragsverhältnisse wie folgt klassifiziert.
- 1) Erstes Hauptkomponentenbeitragsverhältnis >> zweites Hauptkomponentenbeitragsverhältnis
→ Volumen des Objekts ist linear verteilt
- 2) Erstes Hauptkomponentenbeitragsverhältnis ≈ zweites Hauptkomponentenbeitragsverhältnis und zweites Hauptkomponentenbeitragsverhältnis >> drittes Hauptkomponentenbeitragsverhältnis
→ Volumen des Objekts ist zweidimensional verteilt
- 3) Erstes Hauptkomponentenbeitragsverhältnis ≈ zweites Hauptkomponentenbeitragsverhältnis ≈ drittes Hauptkomponentenbeitragsverhältnis
→ Volumen des Objekts ist im dreidimensionalen Raum gleichmäßig verteilt
-
Es sei angemerkt, dass a >> b angibt, dass a deutlich größer ist als b (ein Verhältnis von a zu b ist größer als ein Schwellenwert).
-
Wenn die Beziehung des Hauptkomponentenbeitragsverhältnisses gleich 1) oder 2), wie vorstehend erwähnt, ist und ein Objekt auf einem Messtisch mit flacher Oberfläche platziert ist, ist das Objekt derart platziert, dass es sich entlang der Oberfläche erstreckt, und eine Verteilung einer Beobachtungsbildtiefenrichtung tendiert dazu, klein zu sein. Andererseits, wenn die Beziehung der Hauptkomponentenbeitragsverhältnisse gleich 3) ist, tendiert eine Verteilung der Beobachtungsbildtiefenrichtung des Objekts dazu, groß zu sein.
-
Basierend auf der vorstehenden Beschreibung, wenn das Hauptkomponentenbeitragsverhältnis die Beziehung 3) erfüllt, und eine Volumenverteilung eines Messzielobjekts weit in der Beobachtungsbildtiefenrichtung verteilt ist, wird das Entfernungsprioritätsfehlerberechnungsverfahren angewendet; ansonsten wird das Berechnungsverfahren umgeschaltet, um das Kantenprioritätsfehlerberechnungsverfahren anzuwenden. Es sei angemerkt, dass das Umschaltkriterium des Fehlerberechnungsverfahrens lediglich ein Beispiel ist, und stattdessen ein Kriterium verwendet werden kann, das eine Wichtigkeit auf eine Ausdehnung in der Bildtiefenrichtung des Objekts legt. Das heißt, von den folgenden zwei Prozessen, wird ein Prozess, der gemäß einer Form von Modellinformationen bestimmt wird, ausgeführt.
-
(Prozess 1) Eine Verarbeitung zum Überlagern von Modellinformationen, die eine Form eines Zielobjekts simulieren, auf ein Bild und Suchen nach Punkten des Zielobjekts entsprechend denen der überlagerten Modellinformationen von einer anderen Region als einer vergrößerten Region, die durch Vergrößern einer Region mit Lichtmuster in dem Bild erhalten wird.
-
(Prozess 2) Eine Verarbeitung zum Überlagern eines Kantenmodells von Modellinformationen auf ein Bild, Entfernen einer Region mit Lichtmuster in dem Bild basierend auf dem auf dem Bild überlagerten Kantenmodell und dann Suchen nach Punkten eines Zielobjekts entsprechend denen der Modellinformationen, die auf dem Bild überlagert sind, von einer anderen Region als einer Region mit Lichtmuster in dem Bild.
-
Als ein zweites Verfahren kann ein Berechnungsverfahren basierend auf einer Zweideutigkeit einer Position und Orientierung eines Objekts an einer ungefähren Position und Orientierung in einer Tiefenrichtung verwendet werden. Gemäß der folgenden Literatur, angenommen, dass eine Zweideutigkeit eines Pixels eines Beobachtungsbildes gleich ”1” für alle Pixel ist, wird eine Kovarianzmatrix von Zweideutigkeiten mit Bezug auf eine Richtung an einer bestimmten ungefähren Position und Ausrichtung durch J
TJ ausgedrückt.
W. Hoff und T. Vincent, "IEEE Trans. Visualization and Computer Graphics, Vol. 6, Nr. 4, 2000."
-
Wenn u ein Hauptrichtungseinheitsvektor ist, der durch Anwenden einer Eigenwertauflösung auf diese Kovarianzmatrix berechnet wird, kann die Zweideutigkeit der Position und Orientierung des Objekts an der ungefähren Position und Orientierung in der Tiefenrichtung als ein inneres Produkt von u und eines Tiefenrichtungseinheitsvektors ausgedrückt werden. Dieser Wert kann einen Wert im Bereich von 0 bis 1 annehmen und stellt dar, dass eine Position und Orientierung in der Tiefenrichtung zweideutig ist, wenn dieser Wert näher bei 1 ist. Das Berechnungsverfahren dieses Wertes wurde in dem ersten Ausführungsbeispiel beschrieben. Wenn die berechnete Zweideutigkeit nicht weniger als ein vorbestimmter Referenzwert ist, wird das Entfernungsprioritätsfehlerberechnungsverfahren eingesetzt; ansonsten wird das Berechnungsverfahren umgeschaltet, um das Kantenprioritätsfehlerberechnungsverfahren einzusetzen.
-
Unter Verwendung des vorstehend dargestellten Umschaltkriteriums wird das Fehlerberechnungsverfahren eingesetzt, das die entsprechenden Charakteristika berücksichtigt, womit eine Positions-/Orientierungsmessung mit höherer Präzision ermöglicht wird.
-
[Viertes Ausführungsbeispiel]
-
Die Bildverarbeitungsvorrichtung des ersten bis dritten Ausführungsbeispiels kann als eine Vorrichtung zum Messen einer Position und Orientierung eines Objekts in einem System (Robotersystem) verwendet werden, das ein Objekt unter Verwendung eines industriellen Roboterarms greift, bewegt und freigibt. Dieses Anwendungsbeispiel wird nachstehend mit Bezug auf 12 beschrieben.
-
Ein Sensor 1202 wird durch Integrieren einer Bilderfassungseinrichtung 103 und eines Projektors 102 erhalten (diese können unabhängig angeordnet sein). Der Sensor 1202 projiziert Lichtmuster auf ein Objekt 1205 als ein Positions-/Orientierungsmessziel und erfasst ein Bild des Objekts 1205, das mit dem Lichtmuster projiziert wird. Dieser Sensor 1202 ist an einem Roboterarm 1203 angebracht und kann ein Bild des Objekts 1205, das durch den Roboterarm 1203 zu greifen ist, erfassen.
-
Der Roboterarm 1203 besitzt eine bewegliche Achse inklusive einer Rotationsachse und/oder Translationsachse und wird durch eine Robotersteuerung 1204 gesteuert.
-
Ein Computer 1201 dient als eine Bildverarbeitungsvorrichtung 104 und steuert die Robotersteuerung 1204. Die Robotersteuerung 1204 wandelt eine Steuerungsanweisung (inklusiver einer Position und Orientierung des Objekts 1205) für den Roboterarm 1203, die von dem Computer 1201 empfangen wird, in eine praktische Steuerungsanweisung um, womit der Roboterarm 1203 betätigt wird.
-
Die Bildverarbeitungsvorrichtung 104 in diesem Ausführungsbeispiel umfasst zusätzlich zu der vorstehend erwähnten Sequenz die folgende Prozesssequenz. Zuerst speichert der Computer 1201 eine relative Beziehung zwischen einem Kamerakoordinatensystem und einem Roboterkoordinatensystem mit Bezug auf den Roboterarm 1203. Der Computer 1201 misst eine Position und Orientierung des Objekts 1205 und wandelt die Messergebnisse von dem Kamerakoordinatensystem in das Roboterkoordinatensystem um. Als Nächstes steuert der Computer 1201 die Robotersteuerung 1204, um den Roboterarm 1203 zu einer Position und Orientierung zu bewegen, an der der Roboterarm 1203 das Objekt 1205 greifen kann, basierend auf der umgewandelten Position und Orientierung des Objekts in dem Roboterkoordinatensystem.
-
Somit kann das Robotersystem dieses Ausführungsbeispiels den Roboterarm steuern, um ein Objekt zu greifen, durch Messen einer Position und Orientierung des Objekts, auch wenn die Position des Objekts unstabil ist.
-
Es sei angemerkt, dass die Bildverarbeitungsvorrichtung 104 auf beliebige Systeme anwendbar ist, solange erforderlich ist, dass diese eine Position und Orientierung eines Objekts als ein Positions-/Orientierungsmessziel messen. Mit anderen Worten ist ein Verwendungszweck der Position und Orientierung, die durch die Bildverarbeitungsvorrichtung 104 berechnet werden, nicht auf einen speziellen Verwendungszweck beschränkt.
-
[Fünftes Ausführungsbeispiel]
-
Entsprechende Einheiten (Positions-/Orientierungsberechnungseinheit 201, Kantenentsprechungserfassungseinheit 205 und Bereichsbilderzeugungseinheit 206), die in der in 1 gezeigten Bildverarbeitungsvorrichtung 104 enthalten sind, können durch Hardware implementiert werden, aber diese können durch Software (Computerprogramme) implementiert werden. In dem letztgenannten Fall werden in einem Speicher, auf den ein Computer zugreifen kann, die dreidimensionalen Modellinformationen 202 und anfängliche ungefähre Positions-/Orientierungsinformationen 203 als Daten gespeichert und werden die Positions-/Orientierungsberechnungseinheit 201, die Kantenentsprechungserfassungseinheit 205 und die Bereichsbilderzeugungseinheit 203 als Computerprogramme gespeichert. Dann, wenn eine CPU von diesem Computer diese Computerprogramme und Daten ausliest und eine Verarbeitung ausführt, kann dieser Computer als die Bildverarbeitungsvorrichtung 104 dienen.
-
<Effekte der Ausführungsbeispiele>
-
Gemäß dem ersten Ausführungsbeispiel können Positions-/Orientierungsmessungen erreicht werden, die eine höhere Stabilität mit Bezug auf eine Oberflächenform und eine geometrische Form eines Objekts aufweisen und die eine hohe Genauigkeit speziell für ein Objekt, das derart angeordnet ist, dass es eine Ausdehnung in eine Bildtiefenrichtung aufweist, erlangen.
-
Gemäß dem zweiten Ausführungsbeispiel kann, auch wenn Lichtmuster in einem erfassten Bild nicht durch Bildverarbeitung erfasst werden kann, eine Korrekturverknüpfungsverarbeitung erreicht werden.
-
Gemäß dem dritten Ausführungsbeispiel kann durch Auswählen des Fehlerberechnungsverfahrens basierend auf einer Objektform oder einem Zustand einer Objektanordnung eine Messpräzision verbessert werden.
-
Gemäß dem vierten Ausführungsbeispiel kann ein Objekt, das auf einem instabilen Abschnitt angeordnet ist, gegriffen werden.
-
<Definition>
-
Lichtmuster in der vorstehenden Beschreibung muss nur eine projizierte Regionsgrenze in einem erfassten Bild darstellen. Aus diesem Grund können verschiedene Projektionseinrichtungen als eine Einrichtung zum Projizieren von Lichtmuster eingesetzt werden. Das heißt, eine in einem System enthaltene Einrichtung kann aktiv Lichtmuster projizieren oder Lichtmuster kann passiv von einer externen Einrichtung, die nicht durch das System gesteuert werden kann, projiziert werden. Ebenso ist eine projizierte Form von Lichtmuster nicht besonders beschränkt, solange dessen projizierte Regionsgrenze spezifiziert werden kann. Das Lichtmuster kann eine Schlitzform, ein Zufallspunktmuster oder ein lokales ebenes Muster aufweisen. Alternativ kann Punktlicht bzw. ein Lichtpunkt projiziert werden.
-
Das Spezifizierungsverfahren von jeder projizierten Region von Lichtmuster in einem erfassten Bild ist nicht besonders beschränkt. Das heißt, wie in dem ersten Ausführungsbeispiel beschrieben ist, kann die projizierte Region basierend auf einem Luminanzwert unter Verwendung eines Schwellenwerts oder andere Farbinformationen als ein Schwellenwert spezifiziert werden. Ebenso, wie in dem zweiten Ausführungsbeispiel beschrieben ist, wenn die projizierte Form des Lichtmusters gegeben ist, kann die projizierte Region basierend auf dieser Form, einer ungefähren Position und Orientierung eines Objekts und einer geometrischen Form des Objekts berechnet und spezifiziert werden.
-
Des Weiteren ist das Positions-/Orientierungsberechnungsverfahren in der vorstehenden Beschreibung nicht besonders beschränkt, solange ein Verfahren ausgeführt wird, das ein Bild mit Lichtmuster verwendet. Zum Beispiel kann eine Modellanpassung, die dreidimensionale Positions-/Orientierungsparameter eines Objekts, das in einem erfassten Bild enthalten ist, basierend auf einem dreidimensionalen Objektmodell, das im Voraus gespeichert ist, bestimmt, verwendet werden. Alternativ kann eine Vorlagenanpassung, die eine Position einer vorbestimmten Vorlage, die in einem erfassten Bild enthalten ist, basierend auf einer Vorlage, die im Voraus gespeichert ist, bestimmt, verwendet werden.
-
Weitere Ausführungsbeispiele
-
Aspekte der vorliegenden Erfindung können ebenso durch einen Computer eines Systems oder einer Vorrichtung (oder Einrichtungen, wie etwa eine CPU oder MPU), die ein Programm, das auf einer Speichereinrichtung gespeichert ist, ausliest und ausführt, um die Funktionen des vorstehend beschriebenen Ausführungsbeispiels/der vorstehend beschriebenen Ausführungsbeispiele durchzuführen, und durch ein Verfahren, dessen Schritte durch einen Computer eines Systems oder einer Vorrichtung durch zum Beispiel Auslesen und Ausführen eines Programms, das auf einer Speichereinrichtung gespeichert ist, um die Funktionen des vorstehend beschriebenen Ausführungsbeispiels/der vorstehend beschriebenen Ausführungsbeispiele durchzuführen, realisiert werden. Zu diesem Zweck wird das Programm dem Computer zum Beispiel über ein Netzwerk oder von einem Aufzeichnungsmedium von verschiedenen Arten, die als eine Speichereinrichtung dienen (zum Beispiel ein computerlesbares Medium), bereitgestellt.
-
Während die vorliegende Erfindung mit Bezug auf beispielhafte Ausführungsbeispiele beschrieben wurde, ist zu verstehen, dass die Erfindung nicht auf die offenbarten beispielhaften Ausführungsbeispiele beschränkt ist. Dem Umfang der folgenden Ansprüche ist die breiteste Interpretation zuzugestehen, so dass alle solche Modifikationen und äquivalenten Strukturen und Funktionen mit umfasst sind.
-
Eine mit Lichtmuster projizierte Region in einem Bild, das durch eine Bilderfassungseinheit 103 erfasst wird, die ein Bild eines Zielobjekts 101, das mit Lichtmuster projiziert wird, erfasst, wird spezifiziert. In einer anderen Region als der mit dem Lichtmuster projizierten Region in dem erfassten Bild werden basierend auf der spezifizierten Region geometrische Merkmale des Zielobjekts 101 gesucht. Eine Position und Orientierung des Zielobjekts werden basierend auf den gesuchten geometrischen Merkmalen des Zielobjekts und geometrischen Merkmalen eines Modells des Zielobjekts hergeleitet.
-
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
-
-
Zitierte Nicht-Patentliteratur
-
- Z. Zhang, ”A flexible new technique for camera calibration”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 22, Nr. 11, Seiten 1330–1334, 2000 [0039]
- Seiji Iguchi und Koseku Sato, ”Three-dimensional Image Measurement” (SHOKODO, 1990) [0041]
- R. Hartley und A. Zisserman ”Multiple view geometry in computer vision Second Edition” (Cambridge University Press, 2003) [0055]
- V. Lepetit und P. Fua, ”Keypoint recognition using randomized trees”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 28, Nr. 9, 2006 [0079]
- W. Hoff und T. Vincent, ”IEEE Trans. Visualization and Computer Graphics, Vol. 6, Nr. 4, 2000.” [0105]