-
Die vorliegende Erfindung betrifft ein Verfahren und ein Steuerungssystem zum Verifizieren und Aktualisieren einer Kamerakalibrierung zur Robotersteuerung.
-
Während Automatisierung üblicher wird, werden Roboter in mehr Umgebungen, wie beispielsweise in Lagerhaltungs- und Fertigungsumgebungen, verwendet. Roboter können zum Beispiel verwendet werden, um in einem Warenlager Elemente auf eine Palette zu laden oder davon zu entladen oder Gegenstände von einem Förderband in einem Werk aufzunehmen. Die Bewegung des Roboters kann fest vorgegeben sein oder kann auf einer Eingabe wie einem Bild, das durch eine Kamera in dem Warenlager oder dem Werk aufgenommen wird, basieren. Bei der letzteren Situation kann eine Kalibrierung ausgeführt werden, um eine Eigenschaft der Kamera zu bestimmen und eine Beziehung zwischen der Kamera und einer Umgebung zu bestimmen, in der sich der Roboter befindet. Die Kalibrierung kann als Kamerakalibrierung bezeichnet werden und kann Kamerakalibrierinformationen erzeugen, die verwendet werden, um den Roboter basierend auf durch die Kamera erfasste Bilder zu steuern. Bei einigen Implementierungen kann die Kamerakalibrierung einen Handbetrieb durch eine Person einbeziehen, die Bewegungen des Roboters oder die Kamera manuell steuern kann, um ein Bild des Roboters zu erfassen. Die
DE 10 2017 217 142 A1 offenbart Maschinenvisionssysteme und bezieht sich auf die Kalibrierung von Maschinenvisionssystemen durch eine gleichzeitige Verfeinerung der kinematischen Kette der Roboter-/Bewegungsbühnen- und der Hand-Augen-Kalibrierungsparameter. Die
DE 11 2011 101 730 B4 bezieht sich auf die Kalibrierung eines Bildverarbeitungssystems und insbesondere auf ein System und ein Verfahren zur Kalibrierung zwischen einem Bildverarbeitungssystem und einem Roboter. Die
EP 2 921 267 B2 offenbart ein Robotersystem, ein Kalibrierungsverfahren in einem Robotersystem und ein Verfahren zur Positionskorrektur in einem Robotersystem. Aus der
US 10 052 766 B2 sind verschiedene Technologien bekannt, die sich auf die automatische In-Situ-Kalibrierung und Registrierung eines Tiefensensors und eines Roboterarms beziehen, wobei der Tiefensensor und der Roboterarm in einem gemeinsamen Arbeitsbereich arbeiten. Die
US 2015 / 0 025 683 A1 betrifft ein Robotersystem, bei dem ein visueller Sensor, wie z. B. eine Kamera, eine Position eines Werkstücks misst, um eine Betriebsposition eines Roboterkörpers zu korrigieren, und ein Kalibrierungsverfahren des Robotersystems zum Kalibrieren des Robotersystems.
-
Aufgabe der vorliegenden Erfindung ist es, ein Robotersteuersystem, ein Verfahren zum Ausführen einer Kamerakalibrierungsverifizierung zur Robotersteuerung und ein nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Befehlen bereitzustellen, welche Kalibrierverifizierungsinformationen erzeugen, die eine Fähigkeit des Robotersteuersystems erleichtern, einen Roboter basierend auf durch eine Kamera erfasste Bilder zu steuern.
-
Gelöst werden diese Aufgaben durch ein Robotersteuersystem mit den Merkmalen des Anspruchs 1, ein Verfahren zum Ausführen eines Robotersteuersystems mit den Merkmalen des Anspruchs 14 und ein nicht flüchtiges computerlesbares Medium mit den Merkmalen des Anspruchs 15. Vorteilhafte Ausgestaltungen der Erfindung sind in den jeweiligen Unteransprüchen angegeben.
-
Ein Aspekt der Ausführungsformen hierin betrifft das Ausführen einer Kamerakalibrierungsverifizierung zur Robotersteuerung. Die Kamerakalibrierungsverifizierung kann durch ein Robotersteuersystem ausgeführt werden, das eine Kommunikationsschnittstelle und eine Steuerschaltung umfasst. Die Kommunikationsschnittstelle kann zum Kommunizieren mit einem Roboter mit einer Basis und einem Roboterarm mit einem darauf angeordneten Verifizierungssymbol und zum Kommunizieren mit einer Kamera mit einem Kamerasichtfeld konfiguriert sein. Die Steuerschaltung des Robotersteuersystems kann konfiguriert sein, die Kamerakalibrierungsverifizierung auszuführen durch: a) Ausführen einer ersten Kamerakalibrierung, um Kamerakalibrierinformationen zu bestimmen, b) Ausgeben eines ersten Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den ersten Bewegungsbefehl an den Roboter zu kommunizieren, um den Roboterarm zu veranlassen, das Verifizierungssymbol während oder nach der ersten Kamerakalibrierung an einen Ort innerhalb des Kamerasichtfeldes zu bewegen, wobei der Ort ein Referenzort von einem oder mehreren Referenzorten zur Verifizierung der ersten Kamerakalibrierung ist, c) Empfangen eines Bildes des Verifizierungssymbols über die Kommunikationsschnittstelle von der Kamera, die konfiguriert ist, das Bild des Verifizierungssymbols an dem Referenzort zu erfassen, wobei das Bild ein Referenzbild für die Verifizierung ist, d) Bestimmen einer Referenzbildkoordinate für das Verifizierungssymbol, wobei die Referenzbildkoordinate eine Koordinate ist, an der das Verifizierungssymbol in dem Referenzbild erscheint, und e) Ausgeben eines zweiten Bewegungsbefehls, der auf den Kamerakalibrierinformationen basiert, an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den zweiten Bewegungsbefehl an den Roboter zu kommunizieren, um eine Bewegung des Roboterarms zum Ausführen eines Roboterbetriebs zu bewirken.
-
Bei einer Ausführungsform ist die Steuerschaltung konfiguriert, die Verifizierung der Kamerakalibrierung ferner auszuführen durch: f) Erkennen einer Ruhezeit während des Roboterbetriebs, g) Ausgeben eines dritten Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den dritten Bewegungsbefehl zum Roboter zu kommunizieren, um den Roboterarm zu veranlassen, das Verifizierungssymbol während der Ruhezeit mindestens an den Referenzort zu bewegen, h) Empfangen eines zusätzlichen Bildes des Verifizierungssymbols von der Kamera über die Kommunikationsschnittstelle, die konfiguriert ist, das zusätzliche Bild des Verifizierungssymbols während der Ruhezeit mindestens am Referenzort zu erfassen, wobei das zusätzliche Bild ein Verifizierungsbild für die Verifizierung ist, i) Bestimmen einer Verifizierungsbildkoordinate, die für die Verifizierung verwendet wird, wobei die Verifizierungsbildkoordinate eine Koordinate ist, an der das Verifizierungssymbol im Verifizierungsbild erscheint, j) Bestimmen eines Abweichungsparameterwerts basierend auf einem Abweichungsbetrag zwischen der Referenzbildkoordinate und der Verifizierungsbildkoordinate, wobei die Referenzbildkoordinate und die Verifizierungsbildkoordinate beide dem Referenzort zugeordnet sind, wobei der Abweichungsparameterwert auf eine Änderung seit der ersten Kamerakalibrierung in der Kamera hinweist, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, oder eine Änderung seit der ersten Kamerakalibrierung in einer Beziehung zwischen der Kamera und dem Roboter, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, k) Bestimmen, ob der Wert des Abweichungsparameters einen definierten Schwellenwert überschreitet, und 1) Ausführen einer zweiten Kamerakalibrierung als Reaktion auf eine Bestimmung, dass der Wert des Abweichungsparameters den definierten Schwellenwert überschreitet, um aktualisierte Kamerakalibrierinformationen zu bestimmen.
-
Die vorstehenden und andere Merkmale, Aufgaben und Vorteile der Erfindung werden aus der folgenden Beschreibung von Ausführungsformen, wie sie in den begleitenden Zeichnungen veranschaulicht sind, offensichtlich. Die begleitenden Zeichnungen, die hierin eingeschlossen sind und einen Teil der Beschreibung bilden, dienen ferner dazu, die Prinzipien der der Erfindung zu erklären und einen Fachmann auf dem Gebiet in die Lage zu versetzen, die Erfindung herzustellen und zu verwenden. Die Zeichnungen sind nicht maßstäblich.
- Die 1A und 1B stellen Blockdiagramme von Systemen dar, bei denen eine Kamerakalibrierungsverifizierung gemäß Ausführungsformen hierin ausgeführt wird.
- 1C stellt ein Blockdiagramm eines Robotersteuersystems dar, das konfiguriert ist, eine Kamerakalibrierungsverifizierung gemäß einer Ausführungsform hierin auszuführen.
- 1D stellt ein Blockdiagramm einer Kamera dar, für die eine Kamerakalibrierung gemäß einer Ausführungsform hierin ausgeführt wird.
- 2 stellt ein System dar, das einen Roboter veranschaulicht, der gemäß einer Ausführungsform hierin basierend auf Kamerakalibrierinformationen, die von der Kamerakalibrierung erlangt sind, gesteuert wird.
- 3 zeigt ein System zur Ausführung einer Kamerakalibrierung, gemäß einer Ausführungsform hierin.
- Die 4A und 4B stellen ein Ablaufdiagramm bereit, das ein Verfahren zum Ausführen einer Kamerakalibrierungsverifizierung gemäß einer Ausführungsform hierin veranschaulicht.
- Die 5A und 5B veranschaulichen ein System, in dem ein Verifizierungssymbol an einem Roboter angeordnet ist, wobei das Verifizierungssymbol verwendet wird, um eine Kamerakalibrierungsverifizierung gemäß einer Ausführungsform hierin auszuführen.
- 5C zeigt ein Beispiel für ein Verifizierungssymbol gemäß einer Ausführungsform hierin.
- Die 6A-6B zeigen Beispiele gemäß einer Ausführungsform hierin von Referenzorten, an denen entsprechende Bilder eines Verifizierungssymbols erfasst werden.
- 7A zeigt ein Beispiel des Bestimmens einer Referenzbildkoordinate gemäß einer Ausführungsform hierin.
- 7B zeigt ein Beispiel des Bestimmens einer Verifizierungsbildkoordinate gemäß einer Ausführungsform hierin.
- 8 veranschaulicht eine beispielhafte Zeitachse für eine Kamerakalibrierungsverifizierung, gemäß einer Ausführungsform hierin.
- 9 stellt ein Ablaufdiagramm bereit, das ein Verfahren zum Ausführen einer Kamerakalibrierungsverifizierung gemäß einer Ausführungsform hierin veranschaulicht.
-
Die folgende ausführliche Beschreibung ist ihrer Natur nach lediglich beispielhaft und beabsichtigt nicht, die Erfindung oder die Anmeldung und Verwendungen davon zu begrenzen. Weiterhin besteht keine Absicht, an eine ausdrückliche oder implizite Theorie gebunden zu sein, die in dem vorstehenden technischen Gebiet, dem allgemeinen Stand der Technik, der Kurzdarstellung oder in der folgenden detaillierten Beschreibung dargestellt ist.
-
Hierin beschriebene Ausführungsformen betreffen das Verifizieren und/oder Aktualisieren einer Kamerakalibrierung, die verwendet wird, um einen Roboter zu steuern, wie beispielsweise einen Roboter, der in einem Warenlager, einem Produktionsbetrieb oder in einer anderen Umgebung verwendet wird. Die Kalibrierung kann als Kamerakalibrierung bezeichnet werden und kann durch z.B. ein Robotersteuersystem (auch als Robotersteuerung bezeichnet) ausgeführt werden, um Kalibrierinformationen zu erzeugen, die eine Fähigkeit des Robotersteuersystems erleichtern, den Roboter basierend auf durch die Kamera erfasste (z. B. fotografierte) Bilder zu steuern. Der Roboter kann zum Beispiel verwendet werden, um ein Paket in einem Warenlager aufzunehmen, wobei das Platzieren eines Roboterarm oder einer anderen Komponente des Roboters auf durch die Kamera erfassten Bildern des Pakets basieren kann. In diesem Fall können die Kamerakalibrierinformationen zusammen mit den Bildern des Pakets verwendet werden, um beispielsweise einen Ort und eine Ausrichtung des Pakets relativ zu dem Roboterarm des Roboters zu bestimmen. Die Kamerakalibrierung kann das Bestimmen entsprechender Abschätzungen von intrinsischen Kameraparametern der Kamera (die auch als interne Parameter bezeichnet sein können) und das Bestimmen einer Abschätzung einer Beziehung zwischen der Kamera und ihrer äußeren Umgebung einbeziehen. Ein intrinsischer Parameter der Kamera kann einen oder mehrere Parameterwerte, wie beispielsweise eine Matrix, einen Vektor oder einen skalaren Wert, aufweisen. Weitere Beispiele für einen intrinsischen Parameter sind eine Projektionsmatrix und ein Verzerrungsparameter. In einem Fall kann die Kamerakalibrierung das Bestimmen der Kameraposition in Bezug auf eine feste Position in einer externen Umgebung umfassen, was als Transformationsfunktion ausgedrückt werden kann, welche die Beziehung zwischen der Kamera und der festen Position in der externen Umgebung darstellt. In einigen Fällen kann die Kamerakalibrierung mithilfe eines Kalibriermusters ausgeführt werden, das Musterelemente, die an definierten Orten auf dem Kalibriermuster angeordnet sein können, aufweisen kann. Die Kamera kann ein Bild der Musterelemente des Kalibriermusters (auch als Kalibrierbild bezeichnet) erfassen und die Kamerakalibrierung kann basierend auf dem Vergleichen eines Bildes der Musterelemente mit den definierten Orten der Musterelemente ausgeführt werden. Die Kamerakalibrierung wird in der
US 10 369 698 B1 näher erläutert.
-
Wie vorstehend erwähnt, bezieht sich ein Aspekt der vorliegenden Offenbarung auf die Verifizierung, ob eine zu einem früheren Zeitpunkt ausgeführte Kamerakalibrierung auch zu einem späteren Zeitpunkt noch korrekt ist. Die zu einem früheren Zeitpunkt ausgeführte Kamerakalibrierung kann Kamerakalibrierinformationen erzeugen, die eine Eigenschaft der Kamera zu diesem Zeitpunkt widerspiegeln, wie beispielsweise einen intrinsischen Parameter der Kamera oder eine Beziehung zwischen der Kamera und ihrer äußeren Umgebung zu diesem Zeitpunkt. In einigen Fällen kann eine frühere Kamerakalibrierung mit der Zeit an Genauigkeit verlieren, da sich die Eigenschaft der Kamera im Laufe der Zeit ändern kann. In einem ersten Beispiel kann sich ein intrinsischer Parameter der Kamera im Laufe der Zeit ändern. Eine solche Veränderung kann z. B. durch eine Temperaturänderung verursacht werden, welche eine Form eines Gehäuses und/oder einer Linse der Kamera verändert. In einem zweiten Beispiel kann sich eine Beziehung zwischen der Kamera und ihrer äußeren Umgebung im Laufe der Zeit ändern. Die Kamera kann sich beispielsweise in ihrer Position oder Ausrichtung relativ zu z. B. einer Basis des Roboters oder einem Ort in einem Warenlager verschieben. Eine solche Veränderung kann z. B. durch eine Temperaturänderung, die eine Komponente, die zur Befestigung der Kamera verwendet wird, ausdehnt oder zusammenzieht, durch eine Person oder einen anderen Gegenstand, der gegen die Kamera stößt, durch eine Vibration in der äußeren Umgebung der Kamera (z. B. einem Warenlager), durch eine Kraft durch das Eigengewicht der Kamera (d. h. durch Schwerkraft) oder durch einen anderen Faktor verursacht werden. Diese Änderungen können dazu führen, dass die Kamerakalibrierinformationen veraltet sind, und die Verwendung dieser Kamerakalibrierinformationen zur Positionierung eines Roboterarms oder einer anderen Komponente des Roboters kann zu einem späteren Zeitpunkt zu Fehlern führen. Wenn sich eine mit der Kamera verbundene Eigenschaft im Laufe der Zeit geändert hat, aber die Kamerakalibrierinformationen nicht aktualisiert werden, um eine solche Änderung widerzuspiegeln, kann mit anderen Worten der Roboter basierend auf veralteten oder anderweitig falschen Kamerakalibrierinformationen arbeiten und dadurch unerwünschte Fehler im Roboterbetrieb verursachen. Um der Möglichkeit entgegenzuwirken, dass Änderungen bezüglich einer oder mehrerer Eigenschaften der Kamera auftreten können, kann ein Robotersteuersystem automatisch eine Verifizierung durchführen, die detektiert, wenn die Kamerakalibrierinformationen von einer Kamerakalibrierung nicht mehr ausreichend korrekt sind. Das Detektieren eines solchen Zustands kann einen Hinweis auf eine Veränderung bezüglich einer Eigenschaft der Kamera geben. Wenn bei der Verifizierung festgestellt wird, dass die Kamerakalibrierinformationen nicht mehr ausreichend korrekt sind, kann das Robotersteuersystem die Kamerakalibrierung erneut ausführen, um aktualisierte Kamerakalibrierinformationen zu bestimmen, die eine aktuellere Eigenschaft oder Eigenschaften der Kamera widerspiegeln können. Die aktualisierten Kamerakalibrierinformationen können zum Steuern der Platzierung des Roboterarms oder eines anderen Aspekts des Roboterbetriebs verwendet werden. Dementsprechend wird eine automatische Kamerakalibrierungsverifizierung und/oder eine Aktualisierung der Kamerakalibrierung ausgeführt, um sicherzustellen, dass der Roboter basierend auf korrekten Informationen über eine oder mehrere mit der Kamera verbundene Eigenschaften arbeitet.
-
Ein Aspekt der Ausführungsformen hierin betrifft die Verifizierung einer Kamerakalibrierung für eine Kamera durch Vergleichen eines von der Kamera erfassten Referenzbildes mit einem von der Kamera erfassten Verifizierungsbild. In einigen Fällen kann das Referenzbild ein Bild eines Objekts sein, das erfasst wurde, als das Objekt zu einem früheren Zeitpunkt an einem bestimmten Ort ist, und das Verifizierungsbild kann ein Bild des Objekts sein, das zu einem späteren Zeitpunkt an dem gleichen Ort erfasst wurde. Bei der Verifizierung kann bestimmt werden, ob es eine zu große Abweichung zwischen dem Referenzbild und dem Verifizierungsbild gibt, wie beispielsweise ob die Abweichung einen bestimmten Schwellenwert überschreitet. In einigen Implementierungen kann das Objekt ein Verifizierungssymbol sein. Spezifischer kann ein Roboterarm oder eine andere Komponente des Roboters ein Verifizierungssymbol aufweisen, das zur Kamerakalibrierungsverifizierung verwendet wird. Sowohl das Referenzbild als auch das Verifizierungsbild können das Verifizierungssymbol erfassen oder anderweitig umfassen, und das Robotersteuersystem kann die zwei Bilder durch Vergleichen eines Erscheinungsbildes des Verifizierungssymbols in dem Referenzbild mit einem Erscheinungsbild des Verifizierungssymbols in dem Verifizierungsbild vergleichen. Nachdem das Robotersteuersystem beispielsweise eine Kamerakalibrierung ausgeführt hat, die zu einem bestimmten Zeitpunkt Kamerakalibrierinformationen erzeugt, kann das Robotersteuersystem den Roboterarm (z. B. über einen Bewegungsbefehl) derart steuern, dass das Verifizierungssymbol an eine Reihe von vordefinierten Orten innerhalb des Sichtfelds der Kamera (auch als Kamerasichtfeld der Kamera bezeichnet) bewegt wird, wobei diese Orte als eine Reihe von Referenzorten für die Verifizierung verwendet werden können. Die Kamera kann entsprechende Referenzbilder des Verifizierungssymbols an der Reihe von Referenzorten erfassen. In einigen Fällen können die Referenzbilder unmittelbar nach der Kamerakalibrierung erfasst werden. Die Bewegung des Roboterarms, oder insbesondere ein Bewegungsbefehl, der zur Bewegung des Roboterarms verwendet wird, kann auf den Kamerakalibrierinformationen von der gerade ausgeführten Kamerakalibrierung basieren oder unabhängig von den Kamerakalibrierinformationen sein. In einigen Fällen können die Referenzbilder erfasst werden, bevor der Roboter den Roboterbetrieb beginnt. Nachdem die Referenzbilder erfasst wurden, kann der Roboter als bereit angesehen werden, einen Roboterbetrieb zur Ausführung einer Aufgabe zu beginnen, und das Robotersteuersystem kann z. B. die Positionierung des Roboterarms basierend auf anschließend von der Kamera erfassten Bildern steuern.
-
Wie vorstehend erwähnt, können die Referenzbilder mit anschließend erfassten Verifizierungsbildern verglichen werden. Bei einer Ausführungsform können die Verifizierungsbilder während einer oder mehrerer Ruhezeiten erfasst werden, die von dem Robotersteuersystem detektiert werden. Insbesondere kann der Roboter zu Beginn des Roboterbetriebs mit der Ausführung von Roboteraufgaben beginnen (z. B. durch Interaktion mit Paketen oder anderen Objekten). Während der Roboter den Roboterbetrieb ausführt, kann das Robotersteuersystem eine oder mehrere Ruhezeiten für den Roboter erkennen. In einigen Fällen kann die Ruhezeit ein Zeitraum sein, in dem der Roboter während des Roboterbetriebs frei von der Ausführung einer Roboteraufgabe ist. In einigen Fällen kann das Robotersteuersystem den Roboterbetrieb basierend auf dem Detektieren oder anderweitigen Antizipieren von Objekten, mit denen der Roboter interagieren muss, planen und eine Ruhezeit basierend auf dem Detektieren oder anderweitigen Antizipieren der Abwesenheit von Objekten, mit denen der Roboter interagieren muss, detektieren.
-
Während der bzw. den Ruhezeit(en) kann das Robotersteuersystem den Roboterarm oder andere Komponenten des Roboters (z. B. über einen Bewegungsbefehl) derart steuern, dass er sich zu den Referenzorten bewegt und (z. B. über einen Kamerabefehl) an jedem der Referenzorte ein entsprechendes Verifizierungsbild erfasst. Wenn der Roboter ein Verifizierungssymbol aufweist, kann das Robotersteuersystem den Roboterarm spezifischer steuern, um das Verifizierungssymbol zu den Referenzorten zu bewegen und die Verifizierungsbilder zu erfassen. Anschließend kann das Robotersteuersystem feststellen, wie stark die entsprechenden Verifizierungsbilder von entsprechenden Referenzbildern an entsprechenden Referenzpunkten abweichen. In einigen Fällen kann die Abweichung zwischen den Verifizierungsbildern und entsprechenden Referenzbildern als Abweichungsparameter ausgedrückt werden. Wenn ein Wert des Abweichungsparameters (auch als ein Abweichungsparameterwert bezeichnet) einen definierten Schwellenwert für den Abweichungsparameter (der auch als definierter Abweichungsschwellenwert bezeichnet werden kann) überschreitet, kann das Robotersteuersystem eine zusätzliche Kamerakalibrierung durchführen, um aktualisierte Kamerakalibrierinformationen für die Kamera zu bestimmen. Wenn ein Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, kann diese Bedingung anzeigen, dass die Verwendung alter Kamerakalibrierinformationen zu einer unerwünschten Fehlermenge im Roboterbetrieb führen kann. Daher kann in einigen Fällen der Roboterbetrieb pausiert oder gestoppt werden, während die zusätzliche Kalibrierung ausgeführt wird (die Pause kann als eine weitere Ruhezeit angesehen werden). Nachdem die zusätzliche Kalibrierung abgeschlossen ist, kann ein neuer Satz von Referenzbildern erfasst werden, und der Roboterbetrieb kann mit den aktualisierten Kamerakalibrierinformationen fortgesetzt werden. Während einer oder mehrerer anschließender Ruhezeiten kann ein neuer Satz von Verifizierungsbildern erfasst werden und das Robotersteuersystem kann die Verifizierung der zusätzlichen Kamerakalibrierung durch Vergleichen des neuen Satzes von Referenzbildern mit dem neuen Satz von Verifizierungsbildern ausführen.
-
Wie vorstehend erwähnt, kann das Robotersteuersystem eine zusätzliche Kamerakalibrierung ausführen, wenn ein Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet. Wenn der Abweichungsparameterwert den Abweichungsschwellenwert nicht überschreitet, kann der Roboterbetrieb nach einer Ruhezeit fortgesetzt werden, ohne dass das Robotersteuersystem eine zusätzliche Kalibrierung ausführt. In diesem Szenario kann die Kamera an den entsprechenden Referenzstandorten während einer oder mehrerer späterer Ruhezeiten einen neuen Satz von Verifizierungsbildern erfassen. Wenn der neue Satz von Verifizierungsbildern erfasst ist, kann das Robotersteuersystem erneut eine Kamerakalibrierungsverifizierung ausführen, indem es bestimmt, wie sehr der neue Satz von Verifizierungsbildern von den entsprechenden Referenzbildern an den entsprechenden Referenzorten abweicht.
-
Wie vorstehend erwähnt, kann der Roboterarm ein Verifizierungssymbol, wie beispielsweise ein Ringmuster, aufweisen und das Verifizierungssymbol kann von den Referenzbildern und den Verifizierungsbildern erfasst oder anderweitig darin enthalten sein. Bei einer Ausführungsform kann das Robotersteuersystem eine Abweichung zwischen den Referenzbildern und den entsprechenden Verifizierungsbildern basierend auf entsprechenden Orten, an denen das Verifizierungssymbol in den Referenzbildern erscheint, und basierend auf entsprechenden Orten, an denen das Verifizierungssymbol in den Verifizierungsbildern erscheint, bestimmen. Das Robotersteuersystem kann beispielsweise eine Referenzbildkoordinate für jeden Referenzort bestimmen. Die Referenzbildkoordinate für einen bestimmten Ort kann eine Koordinate sein, an der das Verifizierungssymbol in einem Referenzbild erscheint, das erfasst wurde, als das Verifizierungssymbol an diesem Referenzort platziert wurde. Insbesondere kann die Referenzbildkoordinate mit einem bestimmten Referenzort verbunden sein und sich auf eine Bildkoordinate beziehen, an der ein Verifizierungssymbol in einem Referenzbild erscheint, wobei das Referenzbild von einer Kamera erfasst wurde, als das Verifizierungssymbol an diesem Referenzort platziert wurde. In dem vorstehenden Beispiel kann sich die Bildkoordinate auf eine Koordinate in einem Bild, wie beispielsweise eine Pixelkoordinate, beziehen. Wenn das Robotersteuersystem anschließend das Verifizierungssymbol wieder an einem bestimmten Referenzort platziert und ein entsprechendes Verifizierungsbild erhält, kann das Robotersteuersystem eine Verifizierungsbildkoordinate bestimmen. Die Verifizierungsbildkoordinate kann auch mit dem Referenzort verbunden sein und sich auf eine Bildkoordinate (z. B. eine Pixelkoordinate) beziehen, an der das Verifizierungssymbol im Verifizierungsbild erscheint, wobei das Verifizierungsbild von der Kamera erfasst wurde, als das Verifizierungssymbol am Referenzort platziert wurde. Das Robotersteuersystem kann die mit einem bestimmten Referenzort verbundene Referenzbildkoordinate mit einer mit dem gleichen Referenzort verbundenen Verifizierungsbildkoordinate vergleichen. Dieser Vergleich kann für jeden Referenzort ausgeführt werden, an dem ein Verifizierungsbild und ein Referenzbild erfasst wurden.
-
In einem Fall kann eine Referenzbildkoordinate, an der ein Verifizierungssymbol in einem Referenzbild erscheint, eine Koordinate eines Zentrums des Verifizierungssymbols in dem Referenzbild sein (was auch als Zentrumskoordinate des Verifizierungssymbols in dem Referenzbild bezeichnet wird). In ähnlicher Weise kann eine Verifizierungsbildkoordinate, an der das Verifizierungssymbol in einem Verifizierungsbild erscheint, eine Koordinate eines Zentrums des Verifizierungssymbols in dem Verifizierungsbild sein (was auch als Zentrumskoordinate des Verifizierungssymbols in dem Verifizierungsbild bezeichnet wird). Für jeden Referenzort, an dem sich der Roboterarm und/oder das Verifizierungssymbol bei der Erfassung eines entsprechenden Verifizierungsbildes befand, kann das Robotersteuersystem eine Abweichung zwischen der mit dem Referenzort verbundenen Referenzbildkoordinate und der mit dem gleichen Referenzort verbundenen Verifizierungsbildkoordinate bestimmen. Wenn der Roboterarm und/oder das Verifizierungssymbol an mehreren Referenzorten platziert wurde, kann das Robotersteuersystem für die mehreren Referenzorte entsprechende Abweichungsbeträge zwischen entsprechenden Referenzbildkoordinaten und entsprechenden Verifizierungsbildkoordinaten bestimmen. Das Robotersteuersystem kann ferner einen Wert eines Abweichungsparameters bestimmen, der auf den entsprechenden Abweichungsbeträgen zwischen den Referenzbildkoordinaten und den entsprechenden Verifizierungsbildkoordinaten für entsprechende Referenzorte basiert.
-
In einem Fall kann das Verifizierungssymbol mehrere Formen umfassen, die konzentrisch zueinander sind, sodass sich die entsprechenden Mitten der mehreren Formen im Verifizierungssymbol am gleichen oder im Wesentlichen dem gleichen Ort befinden. Das Verifizierungssymbol kann zum Beispiel ein Ringmuster sein, das zwei oder mehr konzentrische Kreise umfasst. Wenn in einigen Fällen die Referenzbildkoordinate eines Verifizierungssymbols eine Mittenkoordinate des Verifizierungssymbols in einem Referenzbild ist, kann das Robotersteuersystem eine Mittenkoordinate des Verifizierungssymbols basierend auf entsprechenden Mittenkoordinaten der mehreren Formen in dem Referenzbild bestimmen, wobei die Mittenkoordinate einer bestimmten Form eine Koordinate eines Zentrums dieser Form ist. Wenn das Verifizierungssymbol ein Ringmuster ist, kann die Mittenkoordinate des Ringmusters in einem Referenzbild als Mittelwert einer Mittenkoordinate eines ersten Kreises, der das Ringmuster bildet, und einer Mittenkoordinate eines zweiten Kreises, der das Ringmuster in dem Referenzbild bildet, bestimmt werden. In ähnlicher Weise kann eine Mittenkoordinate eines Verifizierungssymbols in einem Verifizierungsbild basierend auf den entsprechenden Mittenkoordinaten der mehreren Formen, die das Verifizierungssymbol im Verifizierungsbild bilden, bestimmt werden. In einigen Fällen kann die Verwendung mehrerer Formen zum Bilden des Verifizierungssymbols eine Genauigkeit der Verifizierung verbessern. Beispielsweise kann die Verwendung der entsprechenden Mittenkoordinaten der mehreren Formen in einem Bild zum Bestimmen einer Mittenkoordinate des Verifizierungssymbols eine Robustheit der Verifizierung gegenüber Bildrauschen verbessern. Wenn ein Bild des Verifizierungssymbols Bildrauschen umfasst, kann das Bildrauschen insbesondere eine Genauigkeit verringern, mit der das Robotersteuersystem eine Mittenkoordinate einer bestimmten Form des Verifizierungssymbols detektiert. Wenn die Mittenkoordinate dieser Form jedoch mit einer Mittenkoordinate einer anderen Form gemittelt wird, um eine Mittenkoordinate des Verifizierungssymbols zu bestimmen, kann die gemittelte Mittenkoordinate eine Auswirkung des Bildrauschens reduzieren. Dadurch kann eine Genauigkeit bei der Bestimmung der Mittenkoordinate des Verifizierungssymbols verbessert werden.
-
In einem Fall kann das Verifizierungssymbol mehrere Regionen mit unterschiedlichen entsprechenden Farben aufweisen, wobei entsprechende Bereiche der mehreren Regionen ein bestimmtes und definiertes Verhältnis aufweisen können. Beispielsweise kann das Verifizierungssymbol eine erste Region mit einer ersten Farbe (z. B. schwarz) und eine zweite Region mit einer zweiten Farbe (z. B. weiß) aufweisen, wobei ein Verhältnis eines Bereichs der ersten Region zu einem Bereich der zweiten Region definiert oder anderweitig bekannt ist. Das eindeutige Verhältnis kann die Identifizierung des Verifizierungssymbols in einem Bild erleichtern, insbesondere wenn das Bild andere Merkmale, wie beispielsweise Punkte eines Kalibriermusters, erfasst oder anderweitig umfasst. Der Roboterarm, der das Verifizierungssymbol bewegt, kann beispielsweise auch das Kalibriermuster auf dem Roboterarm angeordnet aufweisen. Das Robotersteuersystem kann das Verhältnis verwenden, um das Verifizierungssymbol von den Punkten des Kalibriermusters zu unterscheiden. Da das Verhältnis der Bereiche der verschiedenen Regionen des Verifizierungssymbols als ein eindeutiges Verhältnis definiert ist, kann das Robotersteuersystem das Verifizierungssymbol in einem Bild basierend auf dem definierten Verhältnis identifizieren. Bei der Identifizierung des in einem Bild erscheinenden Verifizierungssymbols kann das Robotersteuersystem das Verifizierungssymbol von dem Kalibriermuster oder einem anderen Merkmal basierend auf dem definierten Verhältnis unterscheiden. In einigen Fällen kann das Verifizierungssymbol im Bild als ein Teil des Bildes identifiziert werden, der die mehreren Regionen mit unterschiedlichen entsprechenden Farben aufweist und das definierte Verhältnis zwischen entsprechenden Bereichen der mehreren Regionen aufweist. Wenn das Robotersteuersystem oder ein anderes System oder eine Vorrichtung bestimmt, dass ein bestimmter Teil des Bildes nicht mehrere Regionen mit jeweils unterschiedlichen Farben aufweist, oder dass entsprechende Bereiche der mehreren Regionen ein anderes als das definierte Verhältnis aufweisen, kann das Robotersteuersystem bestimmen, dass der Teil des Bildes nicht das Verifizierungssymbol ist.
-
In einem Fall kann das Robotersteuersystem die Verifizierung basierend auf einer den Roboter umgebenden Temperatur ausführen. Das Robotersteuersystem kann beispielsweise den definierten Abweichungsschwellwert basierend auf der Temperatur anpassen (d. h., einen neuen Wert für den Abweichungsschwellwert definieren). Eine Temperatur kann beispielsweise verschiedene Teile in der Kamera und/oder im Roboter beeinflussen, da einige Materialien empfindlich sein und/oder sich basierend auf einer Temperatur ausdehnen/zusammenziehen können. Eine Temperaturänderung kann bewirken, dass sich ein oder mehrere intrinsische Parameter der Kamera ändern und/oder dass sich die Beziehung zwischen der Kamera und ihrer äußeren Umgebung ändert. Bei einer Ausführungsform kann der Abweichungsschwellenwert derart eingestellt werden, dass er einen ersten Wert aufweist, wenn die Temperatur außerhalb eines definierten Bereichs liegt, während der Abweichungsschwellenwert derart eingestellt werden kann, dass er einen zweiten Wert aufweist, der niedriger ist als der erste Wert, wenn die Temperatur innerhalb des definierten Bereichs liegt. Wenn die Temperatur z. B. innerhalb eines definierten normalen Betriebstemperaturbereichs liegt (z. B. innerhalb von 10 Grad der Raumtemperatur), dann kann der Abweichungsschwellenwert der erste Wert sein. Wenn die Temperatur außerhalb des normalen Betriebstemperaturbereichs liegt, dann kann der Abweichungsschwellenwert den zweiten Wert niedriger aufweisen als der erste Wert. Der zweite Wert kann niedriger als der erste Wert sein, sodass eine zusätzliche Kamerakalibrierung leichter ausgelöst werden kann, wenn die Temperatur außerhalb des normalen Betriebsbereichs liegt, da die Temperatur außerhalb des normalen Betriebstemperaturbereichs mit größerer Wahrscheinlichkeit Änderungen an der Kamera oder ihrer Beziehung zur äußeren Umgebung und daher wahrscheinlicher Fehler beim Roboterbetrieb mit alten Kamerakalibrierinformationen verursachen kann.
-
Bei einer Ausführungsform kann die Kamerakalibrierungsverifizierung auf nur einem einzigen Referenzort beruhen. Alternativ kann die Kamerakalibrierungsverifizierung auf mehreren Referenzorten beruhen. Bei den Referenzstandorten kann es sich um beliebige Orte im Sichtfeld einer Kamera oder um spezifische definierte Orte handeln. Die Referenzorte können beispielsweise als Orte auf einer Fläche von mindestens einer imaginären Kugel definiert werden, die in Bezug auf die Kamera konkav ist. An jedem Referenzort in diesem Szenario kann der Roboterarm derart gesteuert werden, dass er das Verifizierungssymbol positioniert, sodass das Verifizierungssymbol tangential zur Fläche der mindestens einen imaginären Kugel positioniert wird, während es der Kamera zugewandt ist. Durch diese Positionierung kann das Verifizierungssymbol vielleicht besser fotografiert oder anderweitig frontal von der Kamera erfasst werden (wobei das Verifizierungssymbol direkt der Kamera zugewandt ist), sodass ein Bild des Verifizierungssymbols eher einer Draufsicht als einer perspektivischen Ansicht des Verifizierungssymbols ähnelt. Wenn das Verifizierungssymbol beispielsweise ein Ringmuster ist, kann die Positionierung des Ringmusters tangential zur Fläche der imaginären Kugel ermöglichen, dass das resultierende Bild des Ringmusters immer noch kreisförmig anstatt elliptisch erscheint. Das resultierende Bild kann weniger oder keine perspektivische Verzerrung aufweisen (relativ zu einem Szenario, in dem das Ringmuster im Bild elliptisch erscheint). Die fehlende perspektivische Verzerrung kann eine genaue Bestimmung einer Mittenkoordinate des Ringmusters erleichtern. In einigen Fällen können die Referenzorte auf mehrere imaginäre Kugeln aufgeteilt sein, die alle in Bezug auf die Kamera konkav sind. Die mehreren imaginären Kugeln können ein gemeinsames Zentrum aufweisen und unterschiedlich groß sein, sodass jede imaginäre Kugel eine sphärische Fläche aufweist, die einen anderen entsprechenden Abstand von der Kamera aufweist. In einigen Fällen kann die Kamera ein gemeinsames Zentrum für alle imaginären Kugeln sein.
-
1A zeigt ein Blockdiagramm eines Roboterbetriebssystems 100 (auch als System 100 bezeichnet) zur Ausführung einer automatischen Kamerakalibrierung und einer automatischen Kamerakalibrierungsverifizierung. Das Roboterbetriebssystem 100 umfasst einen Roboter 150, ein Robotersteuersystem 110 (das auch als Robotersteuerung bezeichnet wird) und eine Kamera 170. Bei einer Ausführungsform kann sich das System 100 in einem Warenlager, einem Produktionsbetrieb oder in anderen Räumlichkeiten befinden. Das Robotersteuersystem 110 kann konfiguriert sein, eine Kamerakalibrierung auszuführen, die nachstehend ausführlicher beschrieben wird, um Kalibrierinformationen zu bestimmen, die später verwendet werden, um den Roboter 150 derart zu steuern, dass er einen Roboterbetrieb, wie z. B. das Aufnehmen von Paketen im Warenlager, ausführt. Das Robotersteuersystem 110 kann darüber hinaus derart konfiguriert sein, dass es eine Kamerakalibrierungsverifizierung durchführt, die ebenfalls weiter unten näher erörtert wird, um zu verifizieren, ob die Kamerakalibrierinformationen noch ausreichend genau sind. In einigen Fällen ist das Robotersteuersystem 110 konfiguriert, die Kamerakalibrierung auszuführen und den Roboter 150 zu steuern, um einen Roboterbetrieb basierend auf den Kamerakalibrierinformationen auszuführen. In einigen Fällen kann das Robotersteuersystem 110 eine einzelne Vorrichtung bilden (z. B. eine einzelne Konsole oder ein einzelner Computer), die mit dem Roboter 150 und der Kamera 170 kommuniziert. In einigen Fällen kann das Robotersteuersystem 110 mehrere Vorrichtungen umfassen.
-
In einigen Fällen kann das Robotersteuersystem 110 zum Ausführen der Kamerakalibrierung und/oder Überprüfung der Kamerakalibrierung vorgesehen sein und kann die aktuellsten Kamerakalibrierinformationen an ein anderes Steuersystem kommunizieren (das auch als eine andere Steuerung bezeichnet wird, die nicht gezeigt ist), das dann den Roboter 150 steuert, um einen Roboterbetrieb basierend auf den aktuellsten Kamerakalibrierinformationen auszuführen. Der Roboter 150 kann basierend auf Bildern, die durch die Kamera 170 erfasst werden, und auf den Kamerakalibrierinformationen positioniert werden. Insbesondere kann das Robotersteuersystem 110 in einer Ausführungsform derart konfiguriert sein, dass es basierend auf den Bildern und den Kamerakalibrierinformationen Bewegungsbefehle erzeugt und die Bewegungsbefehle an den Roboter 150 zu kommunizieren, um die Bewegung seines Roboterarms zu steuern. In einigen Fällen ist das Robotersteuersystem 110 konfiguriert, die Kamerakalibrierungsverifizierung während einer Ruhezeit des Roboterbetriebs auszuführen. In einigen Fällen ist das Robotersteuersystem 110 konfiguriert, die Verifizierung während der Ausführung eines Roboterbetriebs mit dem Roboter 150 auszuführen.
-
Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, über eine verdrahtete oder drahtlose Kommunikation mit dem Roboter 150 und der Kamera 170 zu kommunizieren. Das Robotersteuersystem 110 kann zum Beispiel konfiguriert sein, mit dem Roboter 150 und/oder der Kamera 170 über eine RS-232-Schnittstelle, eine universelle serielle Bus- (USB) -Schnittstelle, eine Ethernetschnittstelle, eine BluetoothⓇ-Schnittstelle, eine IEEE 802.11-Schnittstelle oder jede Kombination davon zu kommunizieren. Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, mit dem Roboter 150 und/oder der Kamera 170 über einen lokalen Computerbus, wie beispielsweise einen Peripheral Component Interconnect- (PCI) -Bus zu kommunizieren.
-
Bei einer Ausführungsform kann das Robotersteuersystem 110 separat von dem Roboter 150 sein und mit dem Roboter über die vorstehend beschriebene drahtlose oder verdrahtete Verbindung kommunizieren. Das Robotersteuersystem 110 kann zum Beispiel ein Einzelcomputer sein, der konfiguriert ist, mit dem Roboter 150 und der Kamera 170 über eine verdrahtete Verbindung oder eine drahtlose Verbindung zu kommunizieren. Bei einer Ausführungsform kann das Robotersteuersystem 110 ein wesentlicher Bestandteil des Roboters 150 sein und mit anderen Komponenten des Roboters 150 über den vorstehend erörterten lokalen Computer-Bus kommunizieren. In einigen Fällen kann das Robotersteuersystem 110 ein zugeordnetes Steuersystem sein (das auch als zugeordnete Steuerung bezeichnet wird), welches nur den Roboter 150 steuert. In anderen Fällen kann das Robotersteuersystem 110 konfiguriert sein, mehrere Roboter einschließlich des Roboters 150 zu steuern. Bei einer Ausführungsform befinden sich das Robotersteuersystem 110, der Roboter 150 und die Kamera 170 in den gleichen Räumlichkeiten (z. B. einem Warenlager). Bei einer Ausführungsform kann sich das Robotersteuersystem 110 entfernt von dem Roboter 150 und der Kamera 170 befinden und es kann konfiguriert sein, mit dem Roboter 150 und der Kamera 170 über eine Netzwerkverbindung (z. B. eine lokale Netzwerk- (LAN) -Verbindung) zu kommunizieren.
-
Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, Bilder eines Kalibriermusters 160 und/oder eines am Roboter 150 angeordneten Verifizierungssymbols 165 (z. B. an einem Roboterarm des Roboters) von der Kamera 170 abzurufen oder anderweitig zu empfangen. In einigen Fällen kann das Robotersteuersystem 110 konfiguriert sein, die Kamera 170 zu steuern, um solche Bilder zu erfassen. Das Robotersteuersystem 110 kann beispielsweise konfiguriert sein, einen Kamerabefehl zu erzeugen, der bewirkt, dass die Kamera 170 ein Bild in einem Sichtfeld der Kamera 170 (das auch als Kamerasichtfeld bezeichnet wird) erfasst und den Kamerabefehl über die verdrahtete oder drahtlose Verbindung an die Kamera 170 kommuniziert. Der gleiche Befehl kann bewirken, dass die Kamera 170 das Bild auch an das Robotersteuersystem 110 oder genereller an eine Speichervorrichtung kommuniziert, die durch das Robotersteuersystem 110 zugänglich ist. Das Robotersteuersystem 110 kann alternativ einen weiteren Kamerabefehl erzeugen, der bewirkt, dass die Kamera 170 nach dem Empfangen des Kamerabefehls ein Bild bzw. Bilder, die es erfasst hat, an das Robotersteuersystem 110 kommuniziert. Bei einer Ausführungsform kann die Kamera 170 ein Bild in ihrem Kamerasichtfeld entweder periodisch oder als Reaktion auf eine definierte Triggerbedingung automatisch erfassen, ohne einen Kamerabefehl vom Robotersteuersystem 110 zu benötigen. Bei einer derartigen Ausführungsform kann die Kamera 170 auch konfiguriert sein, das Bild an das Robotersteuersystem 110 oder genereller an eine Speichervorrichtung, die durch das Robotersteuersystem 110 zugänglich ist, automatisch, ohne einen Kamerabefehl von dem Robotersteuersystem 110, zu kommunizieren.
-
Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, eine Bewegung des Roboters 150 über Bewegungsbefehle zu steuern, die durch das Robotersteuersystem 110 erzeugt und über die verdrahtete oder drahtlose Verbindung an den Roboter 150 kommuniziert werden. Der Roboter 150 kann derart konfiguriert sein, dass eines oder beide von dem Kalibriermuster 160 und dem Verifizierungssymbol 165 auf dem Roboter 150 vorhanden sind. 1B zeigt zum Beispiel ein Roboterbetriebssystem 100A, bei dem das Verifizierungssymbol 165 ohne das Vorhandensein des Kalibriermusters 160 von 1A an dem Roboter 150 angeordnet ist. In einem Fall kann das Verifizierungssymbol 165 ein Teil des Roboters 150 sein und dauerhaft an dem Roboter 150 angeordnet sein. Das Verifizierungssymbol 165 kann beispielsweise dauerhaft auf den Roboter 150 lackiert oder Teil eines Aufklebers oder einer Tafel sein, die dauerhaft am Roboter 150 angebracht ist. In einem anderen Fall kann das Verifizierungssymbol 165 eine separate Komponente sein, die an dem Roboter 150 angebracht und davon entfernt werden kann. Das Verifizierungssymbol 165 kann dauerhaft auf dem Roboter 150 angeordnet sein oder kann eine separate Komponente sein, die daran angebracht ist und von dem Roboter 150 entfernt werden kann.
-
Bei einer Ausführungsform können die einzigen Bilder, die in dem System 100 verwendet werden, um den Roboter 150 zu steuern, diejenigen sein, die durch die Kamera 170 erfasst werden. Bei einer weiteren Ausführungsform kann das System 100 mehrere Kameras umfassen und der Roboter 150 kann durch Bilder von den mehreren Kameras gesteuert werden.
-
1B veranschaulicht ferner eine Ausführungsform, bei der das Robotersteuersystem 110 mit einer Benutzerschnittstellenvorrichtung 180 kommuniziert. Die Benutzerschnittstellenvorrichtung 180 kann derart konfiguriert sein, dass sie eine Schnittstelle zu einem Bediener des Roboters 150 bildet, wie beispielsweise einem Mitarbeiter in einem Warenlager, in dem sich der Roboter 150 befindet. Die Benutzerschnittstellenvorrichtung 180 kann z. B. ein Tablet- oder Desktop-Computer umfassen, der eine Benutzerschnittstelle bereitstellt, die Informationen in Zusammenhang mit dem Roboterbetrieb 150 anzeigt. Wie vorstehend erwähnt, kann das Robotersteuersystem 110 derart konfiguriert sein, dass es detektiert, wenn ein Abweichungsparameterwert einen definierten Abweichungsschwellenwert überschreitet. Bei einer Ausführungsform kann die Benutzerschnittstellenvorrichtung 180 einen Alarm oder eine andere Warnung ausgeben, um den Bediener über den Wert des den definierten Abweichungsschwellenwert überschreitenden Abweichungsparameters zu informieren.
-
1C stellt ein Blockdiagramm des Robotersteuersystems 110 dar. Wie in dem Blockdiagramm veranschaulicht, umfasst das Robotersteuersystem 110 eine Steuerschaltung 111, eine Kommunikationsschnittstelle 113 und ein nicht flüchtiges computerlesbares Medium 115 (z. B. Speicher). Bei einer Ausführungsform kann die Steuerschaltung 111 einen oder mehrere Prozessoren, eine programmierbare Logikschaltung (PLC) oder eine programmierbare logische Anordnung (PLA), ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder irgendeine andere Steuerschaltung umfassen.
-
Bei einer Ausführungsform kann die Kommunikationsschnittstelle 113 eine oder mehrere Komponenten umfassen, die konfiguriert sind, mit der Kamera 170 von 1A oder 1B und dem Roboter 150 von 1A oder 1B zu kommunizieren. Die Kommunikationsschnittstelle 113 kann zum Beispiel eine Kommunikationsschaltung umfassen, die konfiguriert ist, Kommunikation über ein verdrahtetes oder drahtloses Protokoll auszuführen. Die Kommunikationsschaltung kann als Beispiel einen RS-232-Port-Controller, einen USB-Controller, einen Ethernet-Controller, einen BluetoothⓇ-Controller, einen PCI-Bus-Controller, jede andere Kommunikationsschaltung oder eine Kombination davon umfassen. Bei einer Ausführungsform kann die Steuerschaltung 111 derart konfiguriert sein, dass sie einen Bewegungsbefehl (z. B. einen Motorbewegungsbefehl) erzeugt und den Bewegungsbefehl an die Kommunikationsschnittstelle 113 ausgibt. Bei dieser Ausführungsform kann die Kommunikationsschnittstelle 113 derart konfiguriert sein, dass sie den Bewegungsbefehl an den Roboter 150 kommuniziert, um die Bewegung eines Roboterarms oder einer anderen Komponente des Roboters 150 zu steuern. Bei einer Ausführungsform kann die Steuerschaltung 111 konfiguriert sein, einen Kamerabefehl zu erzeugen und den Kamerabefehl (z. B. Bilderfassungsbefehl) an die Kommunikationsschnittstelle 113 auszugeben. Bei dieser Ausführungsform kann die Kommunikationsschnittstelle 113 derart konfiguriert sein, dass sie den Kamerabefehl an die Kamera 170 kommuniziert, um die Kamera 170 derart zu steuern, dass sie ein Objekt im Sichtfeld der Kamera fotografiert oder anderweitig ein Bild davon erfasst. Bei einer Ausführungsform kann die Kommunikationsschnittstelle 113 konfiguriert sein, ein Bild oder andere Daten von der Kamera 170 zu empfangen, und die Steuerschaltung 111 kann konfiguriert sein, das Bild von der Kommunikationsschnittstelle 113 zu empfangen.
-
Bei einer Ausführungsform kann das nicht flüchtige computerlesbare Medium 115 einen Computerspeicher umfassen. Der Computerspeicher kann z.B. dynamischen Random Access Memory (DRAM), integrierten Festkörperspeicher und/oder ein Festplattenlaufwerk (HDD) umfassen. In einigen Fällen kann die Kamerakalibrierung durch computerausführbare Befehle (z. B. Computercode), die auf dem nicht flüchtigen computerlesbaren Medium 115 gespeichert sind, implementiert sein. In solchen Fällen kann die Steuerschaltung 111 einen oder mehrere Prozessoren umfassen, die zum Ausführen der computerausführbaren Befehle konfiguriert sind, um eine Kamerakalibrierungsverifizierung auszuführen (z. B. die in den 4A, 4B und 9 veranschaulichten Schritte).
-
1D zeigt ein Blockdiagramm der Kamera 170, die eine oder mehrere Linsen 171, einen Bildsensor 173 und eine Kommunikationsschnittstelle 175 umfasst. Die Kommunikationsschnittstelle 175 kann konfiguriert sein, mit dem Robotersteuersystem 110 von 1A, 1B oder 1C zu kommunizieren, und sie kann der Kommunikationsschnittstelle 113 von 1C des Robotersteuersystems 110 ähnlich sein. Bei einer Ausführungsform können die eine oder die mehreren Linsen 171 Licht fokussieren, das von außerhalb der Kamera 170 auf den Bildsensor 173 fällt. Bei einer Ausführungsform kann der Bildsensor 173 ein Pixelarray umfassen, das konfiguriert ist, ein Bild über entsprechende Pixelintensitätswerte darzustellen. Der Bildsensor 173 kann einen ladungsträgergekoppelten Vorrichtungs- (CCD) - Sensor, einen komplementären Metalloxidhalbleiter- (CMOS) -Sensor, einen Quantenbildsensor (QIS) oder irgendeinen anderen Bildsensor umfassen.
-
Die Kamerakalibrierung kann wie vorstehend angegeben ausgeführt werden, um die Steuerung eines Roboters basierend auf durch eine Kamera erfasste Bilder zu erleichtern. Zum Beispiel stellt 2 ein Roboterbetriebssystem 200 dar (das auch als System 200 bezeichnet wird), in dem die Bilder verwendet werden, um einen Roboter 250 zu steuern, einen Roboterbetrieb, wie ein Aufnehmen eines Objekts 292 in einem Warenlager, auszuführen. Das System 200 kann insbesondere eine Ausführungsform des Systems 100 von 1A sein und umfasst eine Kamera 270, den Roboter 250 und das Robotersteuersystem 110. Die Kamera 270 kann eine Ausführungsform der Kamera 170 von 1A, 1B oder 1D sein und der Roboter 250 kann eine Ausführungsform des Roboters 150 von 1A oder 1B sein. Die Kamera 270 kann konfiguriert sein, ein Bild des Objekts 292 (z. B. ein Paket zum Versand), das auf einem Förderband 293 in dem Warenlager angeordnet ist, zu erfassen, und das Robotersteuersystem 110 kann konfiguriert sein, den Roboter 250 zu steuern, um das Objekt 292 aufzunehmen. Wenn sich ein oder mehrere Objekte auf dem Förderband 293 befinden, kann das Robotersteuersystem 110 konfiguriert sein, die Bewegung des Roboters 250 zur Aufnahme der Objekte zu planen. Das Robotersteuersystem 110 kann in einigen Fällen konfiguriert sein, eine Ruhezeit für den Roboterbetrieb zu detektieren, indem es detektiert, wenn sich keine Objekte auf dem Förderband 293 befinden, oder wenn sich keine Objekte auf dem Förderband 293 befinden, die sich in Reichweite des Roboters 250 befinden.
-
Bei der Ausführungsform von 2 kann der Roboter 250 eine Basis 252 und einen Roboterarm aufweisen, der relativ zur Basis 252 beweglich ist. Insbesondere kann der Roboterarm mehrere Glieder 254A bis 254E und eine an dem Glied 254E befestigte Roboterhand 255 umfassen. Die mehreren der Glieder 254A bis 254E können relativ zueinander drehbar sein und/oder können prismatische Glieder sein, die in Bezug zueinander linear beweglich sind. Da 2 den Roboter 250 einbezieht, der zum Aufnehmen von Objekten verwendet wird, kann die Roboterhand 255 die Greifer 255A und 255B umfassen, die zum Greifen des Objekts 292 verwendet werden. Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, einen Bewegungsbefehl zu kommunizieren, um eines oder mehrere der Glieder 254A bis 254E zu drehen. Der Bewegungsbefehl kann ein Low-Level-Befehl, wie Motorbewegungsbefehle, oder ein High-Level-Befehl sein. Wenn der Bewegungsbefehl von dem Robotersteuersystem 110 ein High-Level-Befehl ist, kann der Roboter 150 konfiguriert sein, den High-Level-Befehl in einen Low-Level-Befehl umzuwandeln.
-
Bei einer Ausführungsform beschreiben die von der Kamerakalibrierung bestimmten Kamerakalibrierinformationen eine Beziehung zwischen der Kamera 270 und dem Roboter 250 oder insbesondere eine Beziehung zwischen der Kamera 270 und einem Weltpunkt 294, der relativ zur Basis 252 des Roboters 250 stationär ist. Der Weltpunkt 294 kann eine Welt oder eine andere Umgebung darstellen, in der sich der Roboter 250 befindet, und kann jeder imaginäre Punkt sein, der relativ zur Basis 252 stationär ist. Die Kamerakalibrierinformationen können mit anderen Worten Informationen umfassen, die eine Beziehung zwischen der Kamera 270 und dem Weltpunkt 294 beschreiben. Bei einer Ausführungsform kann diese Beziehung einen Ort der Kamera 270 relativ zu dem Weltpunkt 294 sowie eine Ausrichtung der Kamera 270 relativ zu einer Referenzausrichtung für den Roboter 250 bezeichnen. Die vorstehende Beziehung zwischen der Kamera 270 und dem Weltpunkt 294 kann als Kamera-zu-Welt-Beziehung bezeichnet werden und kann zur Darstellung einer Beziehung zwischen der Kamera 270 und dem Roboter 250 verwendet werden. In einigen Fällen kann die Kamera-zu-Welt-Beziehung verwendet werden, eine Beziehung zwischen der Kamera 270 und dem Objekt 292 (auch als Kamera-zu-Objekt-Beziehung bezeichnet) und eine Beziehung zwischen dem Objekt 292 und dem Weltpunkt 294 (auch als Objekt-zu-Welt-Beziehung bezeichnet) zu bestimmen. Die Kamera-zu-Objekt-Beziehung und die Objekt-zu-Welt-Beziehung können verwendet werden, um den Roboter 250 zu steuern und das Objekt 292 aufzunehmen.
-
Bei einer Ausführungsform können die Kamerakalibrierinformationen einen intrinsischen Parameter der Kamera 270 beschreiben, wobei der intrinsische Parameter jeder Parameter sein kann, dessen Wert von einem Ort und einer Ausrichtung der Kamera 270 unabhängig ist. Die intrinsischen Kameraparameter können eine Eigenschaft der Kamera 270, wie beispielsweise ihre Brennweite, eine Größe ihres Bildsensors oder einen Linsenverzerrungseffekt, der durch die Kamera 270 eingeführt wird, charakterisieren.
-
Ein Beispiel, das eine detaillierte Struktur eines Beispiels eines Roboters 350 zeigt, ist in 3 dargestellt, die ein Roboterbetriebssystem 300 darstellt, welches das Robotersteuersystem 110 in Kommunikation mit einer Kamera 370 und dem Roboter 350 umfasst. Die Kamera 370 kann entsprechend eine Ausführungsform der Kamera 170/270 von 1A, 1B, 1D oder 2 sein und der Roboter 350 kann entsprechend eine Ausführungsform des Roboters 150/250 von 1A, 1B oder 2 sein. Die Kamera 370 kann in der Lage sein, Bilder innerhalb eines Sichtfeldes 330 zu erfassen. Der Roboter 350 kann eine Basis 352 und einen relativ zur Basis 352 beweglichen Roboterarm umfassen. Der Roboterarm umfasst ein oder mehrere Glieder, wie beispielsweise die Glieder 354A bis 354E, und eine Roboterhand 355. Bei einer Ausführungsform können die Glieder 354A-354E drehbar aneinander angebracht sein. Das Glied 354A kann zum Beispiel an der Roboterbasis 352 mittels einer Verbindung 356A drehbar angebracht sein. Die verbleibenden Glieder 354B bis 354E können mittels der Verbindungen 356B bis 356E drehbar aneinander angebracht sein. Bei einer Ausführungsform kann die Basis 352 verwendet werden, um den Roboter 350 an z. B. einem Einbaurahmen oder einer Einbaufläche (z. B. dem Boden eines Warenlagers) anzubringen. Bei einer Ausführungsform kann der Roboter 350 mehrere Motoren umfassen, die konfiguriert sind, den Roboterarm durch Drehen der Glieder 354A bis 354E zu bewegen. Einer der Motoren kann zum Beispiel konfiguriert sein, das erste Glied 354A in Bezug zu der Verbindung 356A und der Basis 302 zu drehen, wie es mit dem punktierten Pfeil in 3 gezeigt ist. Ähnlich können andere Motoren der mehreren Motoren konfiguriert sein, die Glieder 354B bis 354E zu drehen. Die mehreren Motoren können durch das Robotersteuersystem 110 gesteuert werden. 3 zeigt ferner die Roboterhand 355, die fest an dem fünften Glied 354E angeordnet ist. Die Roboterhand 355 kann ein Kalibriermuster 320 aufweisen, sodass das Robotersteuersystem 110 Bilder des Kalibriermusters 320 über die Kamera 370 aufnehmen und eine Kamerakalibrierung basierend auf den erfassten Bildern des Kalibriermusters 320 ausführen kann. Das Robotersteuersystem 110 kann beispielsweise den Roboterarm derart bewegen, dass sich das Kalibriermuster 320 innerhalb des Kamerasichtfeldes 330 befindet und für die Kamera 370 sichtbar ist, wenn die Kamera 370 zur Erfassung der Bilder des Kalibriermusters 320 (auch als Kalibrierbilder bezeichnet) verwendet wird. Nachdem die Kamerakalibrierung erfolgt ist, kann die Roboterhand 355 entfernt und durch eine andere Roboterhand ersetzt werden, wie beispielsweise eine Roboterhand, auf der ein Verifizierungssymbol angebracht ist, wie es nachfolgend näher beschrieben wird.
-
Wie vorstehend erwähnt, kann die Kamerakalibrierungsverifizierung gemäß einer Ausführungsform den Vergleich einer Referenzbildkoordinate, an der ein Verifizierungssymbol in einem Referenzbild erscheint, mit einer Verifizierungsbildkoordinate, an der das Verifizierungssymbol in einem Verifizierungsbild erscheint, einbeziehen. Der Vergleich kann eine Abweichung zwischen der Verifizierungsbildkoordinate und der Referenzbildkoordinate bestimmen und die Abweichung kann dazu verwendet werden, zu bestimmen, ob eine zusätzliche Kamerakalibrierung ausgeführt werden soll. Das Verifizierungsbild kann während einer Ruhezeit eines Roboterbetriebs erfasst werden. Die 4A und 4B stellen Ablaufdiagramme dar, die ein Verfahren 400 zur Kamerakalibrierungsverifizierung gemäß einer Ausführungsform veranschaulichen. Bei einer Ausführungsform kann das Verfahren 400 durch die Steuerschaltung 111 des Robotersteuersystems 110 ausgeführt werden. Wie vorstehend erwähnt, kann das Robotersteuersystem 110 die Kommunikationsschnittstelle 113 von 1C umfassen, die zur Kommunikation mit dem Roboter 150 von 1A oder 1B und mit der Kamera 170 von 1A, 1B oder 1D konfiguriert ist. Bei einer Ausführungsform kann der Roboter eine Basis (z. B. die Basis 252 von 2 oder die Basis 352 von 3) und einen Roboterarm (z. B. den Roboterarm von 2 oder 3) mit einem daran angeordneten Verifizierungssymbol aufweisen, wobei der Roboterarm relativ zur Basis beweglich ist.
-
Eine beispielhafte Umgebung, in der das Verfahren 400 ausgeführt wird, ist in 5A und 5B dargestellt, die ein Roboterbetriebssystem 500/500A darstellen, die jeweils das Robotersteuersystem 110 in Kommunikation mit der Kamera 570 und einen Roboter 550 umfassen. Die Kamera 570 kann eine Ausführungsform der Kamera 170/270/370 von 1, 2 beziehungsweise 3 sein und der Roboter 550 kann eine Ausführungsform des Roboters 150/250/350 von 1A, 1B, 2 beziehungsweise 3 sein. Der Roboter 550 kann eine Basis 552 und einen relativ zur Basis 552 beweglichen Roboterarm umfassen. Der Roboterarm umfasst ein oder mehrere Glieder, wie beispielsweise die Glieder 554A bis Glied 554E. Bei einer Ausführungsform können die Glieder 554A-554E drehbar aneinander angebracht sein. Zum Beispiel kann das Glied 554A an der Roboterbasis 552 drehbar befestigt sein. Die verbleibenden Glieder 554B bis 554E können mittels mehrerer Verbindungen drehbar aneinander angebracht sein. Bei einer Ausführungsform kann die Basis 552 verwendet werden, um den Roboter 552 an z. B. einem Einbaurahmen oder einer Einbaufläche (z. B. dem Boden eines Warenlagers) anzubringen. Der Roboter 550 kann in ähnlicher Weise wie der Roboter 350 von 3 arbeiten. Der Roboter 550 kann beispielsweise mehrere Motoren umfassen, die konfiguriert sind, den Roboterarm durch Drehen der Glieder 554A-554E relativ zueinander zu bewegen. Der Roboterarm kann außerdem eine Roboterhand umfassen, die an dem Glied 554E befestigt ist. 5A zeigt zum Beispiel eine erste Roboterhand 555, eine zweite Roboterhand 557 und eine dritte Roboterhand 559, die jeweils an das fünfte Glied 554E angebracht und davon abgenommen werden können. Die Roboterhand 555/557/559 kann z. B. einen Greifer oder eine Saugvorrichtung umfassen, die konfiguriert ist, Objekte (z. B. 582A, 582B, 582C) von einem Förderband 573 aufzunehmen. Wenn die Roboterhand 555/557/559 an dem fünften Glied 554E befestigt ist, kann die Befestigung auf gemischte Weise vorhanden sein. Das Anbringen und Lösen kann manuell oder automatisch erfolgen. In einem Beispiel kann das fünfte Glied 554E an der ersten Roboterhand 555 befestigt sein, wie es in 5A und 5B dargestellt ist, und das Robotersteuersystem 110 kann den Roboter 550 derart steuern, dass das fünfte Glied 554E die erste Roboterhand 555 freigibt und das fünfte Glied 554E an der zweiten Roboterhand 557 befestigt wird. Bei einer anderen Ausführungsform kann das fünfte Glied 554E dauerhaft an einer Roboterhand (z. B. Roboterhand 559) befestigt sein.
-
Bei einer Ausführungsform kann der Roboter 550 ein daran angeordnetes Verifizierungssymbol 530 aufweisen. In einigen Fällen kann das Verifizierungssymbol 530 dauerhaft am Roboter 550 angeordnet sein. In einigen Fällen kann das Verifizierungssymbol 530 an einem Roboterarm des Roboters 550, wie beispielsweise an einem der Glieder 554A-554E, oder an einer Roboterhand angeordnet sein. Beispielsweise zeigt 5A das Verifizierungssymbol 530, das auf der ersten Roboterhand 555 und der dritten Roboterhand 559 angeordnet ist, während 5B das Verifizierungssymbol 530 angeordnet an dem Glied 554E darstellt. Das Verifizierungssymbol 530 kann direkt auf den Roboter 550 lackiert oder an dem Roboter 550 z. B. durch einen Aufkleber oder eine flache Tafel angebracht sein. In dem in 5A dargestellten Beispiel kann die zweite Roboterhand 557 oder die dritte Roboterhand 559 zur Ausführung der Kamerakalibrierung verwendet werden, da sie jeweils ein entsprechendes Kalibriermuster 520/527 aufweist, während die erste Roboterhand 555 oder die dritte Roboterhand 559 zur Kamerakalibrierungsverifizierung verwendet werden kann, da sie jeweils ein entsprechendes Verifizierungssymbol 530 aufweist.
-
Unter erneuter Bezugnahme auf 4A kann bei einer Ausführungsform das Verfahren 400 mit Schritt 401 beginnen, in dem die Steuerschaltung 111 eine erste Kamerakalibrierung ausführt, um mit der Kamera verbundene Kamerakalibrierinformationen zu bestimmen (z. B. Kamera 170/270/370/570 von 1, 2, 3 beziehungsweise 5). Insbesondere können die Kamerakalibrierinformationen Kamerakalibrierwerte für die Kamera umfassen. Bei dieser Ausführungsform kann die Steuerschaltung 111 die erste Kamerakalibrierung basierend auf Bildern eines Kalibriermusters (auch Kalibrierbilder genannt) ausführen.
-
Um beispielsweise die erste Kamerakalibrierung auszuführen, kann der Roboter
550 von
5A an der zweiten Roboterhand
557 mit dem Kalibriermuster
520 oder der dritten Roboterhand
559 mit dem Kalibriermuster
527 angebracht werden.
3 zeigt eine ähnliche Umgebung, in der die erste Kamerakalibrierung ausgeführt werden kann. Während dieses Schritts kann die erste Roboterhand
555 von dem fünften Glied
554E, bei dem das Kalibriermuster
320 zur Ausführung der Kamerakalibrierung verwendet wird, abgelöst sein. Die erste Kamerakalibrierung kann vor dem Beginn eines Roboterbetriebs ausgeführt werden. Der Roboterbetrieb kann beispielsweise mit einer Roboteraufgabe wie der ersten Roboterhand
555, die mit einem ersten Objekt
582A auf einem Förderband interagiert, beginnen. Während der ersten Kamerakalibrierung kann der Roboter
550 mit der zweiten Roboterhand
557 ausgestattet sein. Das Robotersteuersystem
110 kann den Roboterarm des Roboters
550 über Bewegungsbefehle derart steuern, dass das Kalibriermuster
520 an verschiedene Orte innerhalb eines Kamerasichtfeldes
510 der Kamera
570 bewegt und entsprechende Bilder des Kalibriermusters
520 an diesen Orten erfasst werden. Das Robotersteuersystem
110 kann die erste Kamerakalibrierung ausführen, um die Kamerakalibrierinformationen für die Kamera
570 basierend auf den erfassten Bildern des Kalibriermusters
520 zu bestimmen. Die Kalibrierinformationen können als Beispiel Informationen umfassen, die eine Beziehung zwischen der Kamera
570 und dem Roboter
550 beschreiben. In einem Beispiel können die Kamerakalibrierinformationen die intrinsischen Parameter der Kamera
570 beschreiben. Die Kamerakalibrierung wird in der
US 10 369 698 B1 näher erläutert.
-
Unter erneuter Bezugnahme auf 4A kann das Verfahren 400 ferner den Schritt 403 umfassen, in dem die Steuerschaltung 111 den Roboterarm derart steuert, dass das Verifizierungssymbol (z. B. 530 von 5) während oder nach der ersten Kamerakalibrierung an einen Ort innerhalb eines Kamerasichtfelds (z. B. 510) der Kamera (z. B. 570) bewegt wird, indem ein erster Bewegungsbefehl an die Kommunikationsschnittstelle 113 des Robotersteuersystems 110 ausgegeben wird. Die Kommunikationsschnittstelle 113 kann konfiguriert sein, den Bewegungsbefehl an den Roboter zu kommunizieren, um den Roboterarm zu veranlassen, das Verifizierungssymbol (z. B. 530) während oder nach der ersten Kamerakalibrierung an den Ort innerhalb des Kamerasichtfelds (z. B. 510) zu bewegen. Der Bewegungsbefehl kann auch bewirken, dass der Roboterarm das Verifizierungssymbol derart ausrichtet, dass es der Kamera zugewandt ist (z. B. 570), oder genereller, dass es für die Kamera sichtbar ist. Der Ort kann als Referenzort eines oder mehrerer Referenzorte zur Verifizierung der ersten Kamerakalibrierung verwendet werden. Wenn der Verifizierungsprozess beispielsweise Bilder des Verifizierungssymbols im Laufe der Zeit erfasst, kann die Steuerschaltung 111 den Roboterarm derart steuern, dass das Verifizierungssymbol (z. B. 530) beständig an dem gleichen oder an mehreren Orten positioniert wird, sodass der eine oder die mehreren Orte als ein oder mehrere Referenzorte verwendet werden können. Darüber hinaus kann der Verifizierungsprozess, wie nachstehend in Bezug auf die Schritte 405 bis 459 beschrieben, spätere Bilder des Verifizierungssymbols mit einem Satz früherer Bilder des Verifizierungssymbols (z. B. 530) vergleichen, z. B. mit Bildern, die unmittelbar nach der ersten Kamerakalibrierung erlangt wurden. Die späteren Bilder können als Verifizierungsbilder verwendet werden, während die Bilder, mit denen die späteren Bilder verglichen werden, als Referenzbilder verwendet werden können.
-
In Schritt 405 kann die Steuerschaltung 111 über die Kommunikationsschnittstelle 113 von der Kamera (z. B. 170/270/370/570) ein Bild des Verifizierungssymbols (z. B. 530) empfangen (z. B. abrufen), wobei das Bild ein Referenzbild für die Verifizierung ist. Das Bild kann von der Kamera erfasst worden sein, während sich das Verifizierungssymbol am Referenzort befindet oder befand. Bei einer Ausführungsform kann die Kommunikationsschnittstelle 113 zunächst das Referenzbild von der Kamera empfangen, und die Steuerschaltung 111 kann dann das Referenzbild von der Kommunikationsschnittstelle 113 empfangen. Bei einer Ausführungsform wird Schritt 405 ausgeführt, ohne dass die Steuerschaltung 111 einen Kamerabefehl für die Kamera erzeugt. Bei einer Ausführungsform kann der Schritt 405 beinhalten, dass die Steuerschaltung 111 einen Kamerabefehl erzeugt und den Kamerabefehl über die Kommunikationsschnittstelle 113 an die Kamera kommuniziert. Der Kamerabefehl kann die Kamera derart steuern, dass sie ein Bild des Verifizierungssymbols am Referenzort erfasst.
-
Die 5A bis 6B veranschaulichen Aspekte der Schritte 403 und 405. Bei der Ausführungsform von 5A kann die zweite Roboterhand 557 durch die dritte Roboterhand 559, an der das Verifizierungssymbol 530 angeordnet ist, ersetzt werden, nachdem die erste Kamerakalibrierung z. B. mit der zweiten Roboterhand 557 ausgeführt wurde. In diesem Fall steuert das Robotersteuersystem 110 den Roboterarm des Roboters 550 (z. B. mittels einem oder mehrerer Bewegungsbefehle), um das Verifizierungssymbol 530 an einen oder mehrere Referenzorte innerhalb des Kamerasichtfelds 510 der Kamera 570 zu bewegen. Der eine oder die mehreren Referenzorte können jeden beliebigen Ort innerhalb des Sichtfelds der Kamera 510 umfassen oder können eine Reihe von einem oder mehreren spezifischen Orten sein, wie beispielsweise Orte, die auf der Fläche einer imaginären Kugel angeordnet sind, wie es nachstehend näher beschrieben wird. In einem anderen Fall kann bei der Ausführungsform von 5B das Robotersteuersystem 110 während oder nach der ersten Kamerakalibrierung den Roboterarm derart steuern, dass das Verifizierungssymbol 530 an einen oder mehrere Referenzorte innerhalb des Kamerasichtfelds 510 bewegt wird. In diesem Fall kann der eine oder die mehreren Referenzorte jeden Ort umfassen, an dem das Verifizierungssymbol 530 (zusammen mit dem Kalibriermuster 520) während der ersten Kamerakalibrierung fotografiert wurde, oder es kann eine Reihe von einem oder mehreren spezifischen Orten sein, an die das Verifizierungssymbol 530 nach der ersten Kamerakalibrierung bewegt wird. Das Robotersteuersystem 110 kann die Bewegung des Roboterarms des Roboters 550 in diesem Schritt mit der Führung der Kamera 570 basierend auf den aus der ersten Kamerakalibrierung erlangten Kamerakalibrierinformationen steuern oder kann dies ohne eine solche Führung tun. Bei einer Ausführungsform können die Referenzorte definierte Orte sein, die in einer lokalen oder entfernten Speichervorrichtung gespeichert sind und abgerufen werden können. Sie können in Form von Koordinaten (z. B. kartesischen Koordinaten) oder als Motorbefehle zum Drehen der Glieder 554A bis 554E oder auf andere Weise gespeichert sein.
-
Bei einer Ausführungsform können der eine oder die mehreren Referenzorte, an die der Roboterarm das Verifizierungssymbol (z. B. 530) bewegt, mehrere Referenzorte umfassen, wobei jeder der mehreren Referenzorte ein Ort ist, der auf einer Fläche einer imaginären Kugel angeordnet ist, die in Bezug auf die Kamera konkav ist. Bei einer solchen Ausführungsform kann die Steuerschaltung 111 ferner konfiguriert sein, den Roboterarm so zu steuern, dass er das Verifizierungssymbol derart bewegt, dass es an jedem Referenzort der mehreren Referenzorte die Oberfläche der imaginären Kugel tangiert. Beispielsweise kann, wie in 6A und 6B dargestellt, das Robotersteuersystem 110 den Roboterarm des Roboters 550 derart steuern, dass er das Verifizierungssymbol 530 an die Referenzorte 610A bis 6101 bewegt, und die Kamera 570 derart steuern, dass sie an jedem der Referenzorte 610A bis 6101 ein entsprechendes Referenzbild erfasst. Die Referenzorte 610A bis 6101 in 6A und 6B können auf mehrere imaginäre Kugeln innerhalb des Kamerasichtfelds 510 aufgeteilt sein. Die Referenzorte 610A und 610B können auf einer ersten Kugelfläche 621 einer ersten imaginären Kugel 620 angeordnet sein, wo sich die erste Kugelfläche 621 innerhalb des Kamerasichtfelds 510 befindet. Die Referenzorte 610C, 610D und 610E können auf einer zweiten Kugelfläche 631 einer zweiten imaginären Kugel 630 angeordnet sein, wo sich die zweite Kugelfläche 631 innerhalb des Kamerasichtfelds 510 befindet. Die Referenzorte 610F, 610G, 610H und 6101 können auf einer dritten Kugelfläche 641 einer dritten imaginären Kugel 640 angeordnet sein, wo sich die dritte Kugelfläche 641 innerhalb des Kamerasichtfelds 510 befindet. Wie in den 6A und 6B veranschaulicht, sind die erste, zweite und dritte Kugelfläche 621, 631 und 641 in Bezug auf die Kamera 570 konkav. Obwohl die Beispiele in den 6A und 6B drei Kugelflächen zeigen, die auf drei Kugeln basieren, kann eine Anzahl verschiedener Kugelflächen, auf denen Referenzorte angeordnet sein können, größer als drei oder kleiner als drei sein. Bei einer Ausführungsform kann die Kamera 570 ein Zentrum jeder der imaginären Kugeln 620, 630, 640 sein.
-
Bei einer Ausführungsform, wie in 6A und 6B veranschaulicht, kann das Robotersteuersystem 110, wenn das Verifizierungssymbol 530 an einen Referenzort bewegt wird, den Roboterarm des Roboters 550 (z. B. über einen Bewegungsbefehl) derart steuern, dass das Verifizierungssymbol 530 tangential zur Kugelfläche positioniert wird, auf welcher der Referenzort angeordnet ist. 6B veranschaulicht beispielsweise, dass das Verifizierungssymbol 530 die zweite Kugelfläche 631 am Referenzort 610D tangiert. Insbesondere kann das Verifizierungssymbol 530 auf einer flachen Ebene (z. B. auf einem Aufkleber) angeordnet sein und die flache Ebene des Verifizierungssymbols 530 kann tangential zur zweiten Kugelfläche 631 am Referenzort 610D sein.
-
Bei einer Ausführungsform ist die Steuerschaltung 111 konfiguriert, den Roboterarm zu steuern, das Verifizierungssymbol (z. B. 530) derart zu bewegen, dass es direkt der Kamera zugewandt ist, wenn das Verifizierungssymbol an einen Referenzort bewegt wird. Beispielsweise kann, wie in 6A dargestellt, das Robotersteuersystem 110 den Roboterarm des Roboters 550 steuern, das Verifizierungssymbol 530 derart zu bewegen, dass es direkt der Kamera 570 zugewandt ist, wenn das Verifizierungssymbol 530 zum Referenzort 610D bewegt wird. In diesem Beispiel kann das Robotersteuersystem 110 die Roboterhand 555 drehen, sodass das Verifizierungssymbol 530 direkt der Kamera 570 zugewandt ist. In einigen Fällen kann das Verifizierungssymbol direkt der Kamera 570 zugewandt sein, indem es tangential zu einer sphärischen Fläche im Sichtfeld der Kamera 510 ist. Wenn das Verifizierungssymbol 530 direkt der Kamera 570 zugewandt ist, kann die Kamera 570 in der Lage sein, das Verifizierungssymbol 530 frontal zu fotografieren, sodass in einem resultierenden Bild des Verifizierungssymbols 530 kein oder ein reduzierter perspektivischer Effekt auftritt.
-
Bei einer Ausführungsform umfasst das Verifizierungssymbol (z. B. 530) einen ersten Bereich mit einer ersten Farbe und einen zweiten Bereich mit einer zweiten Farbe, wobei ein Verhältnis eines Bereichs der ersten Region zu einem Bereich der zweiten Region definiert und in einem nicht flüchtigen, computerlesbaren Medium (z. B. Speichervorrichtung) des Robotersteuersystems 110 gespeichert ist. Bei einer solchen Ausführungsform kann die Steuerschaltung 111 konfiguriert sein, das Verifizierungssymbol in einem Referenzbild oder einem Verifizierungsbild basierend auf dem definierten Verhältnis zu identifizieren. Zum Beispiel kann, wie in 5C veranschaulicht, das Verifizierungssymbol 530 eine erste Region 531 umfassen, die ringförmig ist und eine erste Farbe aufweist (z. B. eine schwarze Region), und eine zweite Region 533 (z. B. eine weiße Region), die von der ersten Region 531 umschlossen ist und eine zweite Farbe aufweist. Das Verhältnis eines Bereichs der ersten Region 531 in Schwarz zu einem Bereich der zweiten Region 533 in Weiß im Verifizierungssymbol 530 kann ein eindeutiger definierter Wert sein. Durch Analyse der Farben innerhalb eines erfassten Bildes kann das Robotersteuersystem 110 in der Lage sein, einen Teil des Bildes zu identifizieren, der dem Verifizierungssymbol 530 entspricht, durch Bestimmen, ob dieser Teil eine ringförmige Region aufweist, die eine kreisförmige Region umschließt, und ob ein Verhältnis zwischen einem Bereich des ringförmigen Bereichs und einem Bereich des kreisförmigen Bereichs dem definierten Verhältnis entspricht. Dies kann es dem Robotersteuersystem 110 ermöglichen, das Verifizierungssymbol 530 von anderen in einem Bild erfassten Merkmalen zu unterscheiden. Zum Beispiel kann der Roboter 550 wie in 5A veranschaulicht derart eingestellt sein, dass er die dritte Roboterhand 559 verwendet, die eine Kombination von einem Kalibriermuster 527 und einem Verifizierungssymbol 530 aufweist. In diesem Beispiel kann ein Referenzbild sowohl das Verifizierungssymbol 530 als auch das Kalibriermuster 527 zeigen. In diesem Beispiel kann das Kalibriermuster 527 kein Ringmuster oder Ringmuster mit einem anderen als dem vorstehend beschriebenen definierten Verhältnis aufweisen. Die Steuerschaltung 111 kann bestimmen, ob ein Teil des Referenzbildes das Verifizierungssymbol 530 oder das Kalibriermuster 527 ist, durch Bestimmen, ob der Teil des Referenzbildes eine erste Bildregion mit der ersten Farbe und eine zweite Bildregion mit der zweiten Farbe aufweist, und ob ein Verhältnis zwischen einem Bereich der ersten Bildregion und einem Bereich der zweiten Bildregion gleich dem definierten Verhältnis ist.
-
In einigen Fällen kann das Robotersteuersystem 110 bestimmen, ob ein bestimmter Teil eines erfassten Bildes einen ersten Bereich mit einer ersten Farbe und einen zweiten Bereich mit einer zweiten Farbe aufweist und ob ein Verhältnis zwischen einem Bereich der ersten Region und einem Bereich der zweiten Region innerhalb eines definierten Bereichs liegt. Bei einem Beispiel kann das Robotersteuersystem 110, wenn das definierte Verhältnis 1,5 beträgt, bestimmen, dass die bestimmte Region dem Verifizierungssymbol 530 entspricht, wenn das Verhältnis in der bestimmten Region in einen Bereich zwischen 1,4 und 1,6 fällt. Die beiden Farben der ersten und zweiten Region sind nicht auf die Farben Schwarz und Weiß beschränkt und können beliebige zwei verschiedene Farben sein, die vom Robotersteuersystem 110 unterschieden werden können.
-
Bei einem Aspekt kann das Verifizierungssymbol (z. B.
530) eine erste Form und eine zweite Form umfassen, die konzentrisch zueinander sind, wobei sich die entsprechenden Mitten der ersten Form und der zweiten Form im Wesentlichen am gleichen Ort befinden. Das Verifizierungssymbol kann zum Beispiel die Form eines kreisförmigen Rings aufweisen, der einen ersten und einen zweiten Kreis umfasst, die konzentrisch zueinander sind. Insbesondere kann das Verifizierungssymbol
530 wie in
5C veranschaulicht eine erste Form
535 (z. B. äußerer Kreis) und eine zweite Form
537 (z. B. innerer Kreis) umfassen. Die erste Form
535 und die zweite Form
537 können konzentrisch zueinander sein, sodass ein Zentrum der ersten Form
535 und ein Zentrum der zweiten Form
537 sich im Wesentlichen am gleichen Ort befinden. Wenn sich beispielsweise ein Zentrum der ersten Form
535 bei einer Koordinate
und ein Zentrum der zweiten Form
537 bei einer Koordinate
befindet, können die Koordinate
und die Koordinate
im Wesentlichen gleich sein.
-
Unter Bezugnahme auf 4A kann das Verfahren 400 ferner den Schritt 407 umfassen, in dem die Steuerschaltung 111 eine Referenzbildkoordinate für das Verifizierungssymbol bestimmt, wobei die Referenzbildkoordinate eine Koordinate ist, an der das Verifizierungssymbol (z. B. 530) im Referenzbild erscheint. Zum Beispiel kann wie in 6A veranschaulicht ein Bild des Verifizierungssymbols 530 am Referenzort 610D erfasst und als Referenzbild verwendet werden. Das Verifizierungssymbol 530 kann innerhalb des Referenzbildes an einer bestimmten Koordinate erscheinen, die als Referenzbildkoordinate bezeichnet werden kann.
-
Bei einer Ausführungsform kann wie vorstehend beschrieben das Verifizierungssymbol (z. B. 530) eine erste Form und eine zweite Form umfassen, die konzentrisch zueinander sind, wobei sich entsprechende Mitten der ersten Form und der zweiten Form im Wesentlichen am gleichen Ort befinden. Bei einer solchen Ausführung kann die Steuerschaltung 111 in Schritt 407 konfiguriert sein, die Referenzbildkoordinate für ein solches Verifizierungssymbol zu bestimmen durch: Bestimmen einer ersten Koordinate eines Zentrums der ersten Form im Referenzbild, Bestimmen einer zweiten Koordinate eines Zentrums der zweiten Form im Referenzbild und Bestimmen der Referenzbildkoordinate als ein Mittelwert der ersten Koordinate und der zweiten Koordinate im Referenzbild.
-
Beispielsweise zeigt
7A ein Referenzbild
710, das an einem Referenzort N (wobei N eine ganze Zahl ist) der Referenzorte erfasst wurde. Das Referenzbild
710 umfasst einen Verifizierungsabschnitt
730, der ein Bildabschnitt im Referenzbild
710 ist, der das Verifizierungssymbol
530 von
5A,
5B oder
5C zeigt. Das Robotersteuersystem
110 von
1A oder
1B kann konfiguriert sein, aus dem Verifizierungsabschnitt
730 eine erste Form
735 (z. B. Außenkreis) zu identifizieren, die gleich der ersten Form
535 des Verifizierungssymbols
530 von
5C ist oder im Wesentlichen gleich ist. Das Robotersteuersystem
110 kann konfiguriert sein, aus dem Verifizierungsabschnitt
730 eine zweite Form
737 (z. B. Innenkreis) zu identifizieren, die gleich der zweiten Form
537 des Verifizierungssymbols
530 in
5C oder im Wesentlichen gleich ist. Anschließend kann das Robotersteuersystem
110 für den Referenzort N eine erste Koordinate
eines Zentrums der ersten Form
735 (d. h. eine Mittenkoordinate der ersten Form
735), die im Referenzbild
710 gezeigt ist, und eine zweite Koordinate
eines Zentrums der zweiten Form
737 (d. h. eine Mittenkoordinate der zweiten Form
737), die im Referenzbild
710 gezeigt ist, bestimmen. Um die Referenzbildkoordinate
für das Referenzbild
710 als Ganzes zu bestimmen, wobei das Referenzbild
710 dem Verifizierungssymbol
530 an dem Referenzort N entspricht, kann das Robotersteuersystem
110 einen Mittelwert der ersten Koordinate
und der zweiten Koordinate
im Referenzbild
710 wie folgt berechnen:
-
Bei einer Ausführungsform kann die Referenzbildkoordinate für das Verifizierungssymbol dessen Mittenkoordinate sein, und das Bestimmen der Mittenkoordinate des Verifizierungssymbols 530 basierend auf den entsprechenden Mittenkoordinaten der ersten Form 735 und der zweiten Form 735 kann die Robustheit des Verifizierungsprozesses gegenüber Bildrauschen verbessern. Bildrauschen kann z. B. zu Fehlern bei der Bestimmung einer Mittenkoordinate für die erste Form 735 führen, aber nicht bei der Bestimmung der Mittenkoordinate für die zweite Form 737. In einigen Fällen kann die zweite Form 737 in Wirklichkeit den gleichen Mittenort wie die erste Form 735 aufweisen, aber Bildrauschen kann bewirken, dass die Mittenkoordinate der zweiten Form 737 in einem Bild anders erscheint als die Mittenkoordinate der ersten Form 735. In diesem Szenario kann das einfache Verwenden der Mittenkoordinate der zweiten Form 737 als die Mittenkoordinate des Verifizierungssymbols 530 zu einer unerwünschten Fehlermenge führen. Die Fehlermenge kann reduziert werden, indem ein Mittelwert der Mittenkoordinate für die erste Form 735 und die Mittenkoordinate für die zweite Form 737 als die Mittenkoordinate des Verifizierungssymbols 530 verwendet wird.
-
Bei einer Ausführungsform können der eine oder die mehreren vorstehend erörterten Referenzorte mehrere Referenzorte sein, die jeweils mehreren Referenzbildkoordinaten entsprechen. Bei dieser Ausführungsform kann die Referenzbildkoordinate eine von mehreren Referenzbildkoordinaten sein. Zum Beispiel kann es, wie in 6A und 6B veranschaulicht, mehrere Referenzorte geben, wie beispielsweise die Referenzorte 610A bis 610I, an die das Verifizierungssymbol 530 bewegt oder anderweitig platziert wird. Für jeden der Referenzorte 610A bis 6101 des Verifizierungssymbols 530 kann das Robotersteuersystem 110 ein entsprechendes Referenzbild abrufen oder anderweitig empfangen, das von der Kamera 570 des Verifizierungssymbols 530 an dieser Position erfasst wurde, und kann eine entsprechende Referenzbildkoordinate bestimmen, die angibt, wo das Verifizierungssymbol 530 in dem entsprechenden Referenzbild erscheint.
-
Unter erneuter Bezugnahme auf 4A kann das Verfahren 400 ferner den Schritt 409 umfassen, in dem die Steuerschaltung 111 basierend auf den Kamerakalibrierinformationen die Bewegung des Roboterarms steuert, um einen Roboterbetrieb auszuführen. Bei einer Ausführungsform kann dieser Schritt einbeziehen, dass die Steuerschaltung 111 einen zweiten Bewegungsbefehl erzeugt, der auf den Kamerakalibrierinformationen basiert, und den zweiten Bewegungsbefehl an die Kommunikationsschnittstelle 113 ausgibt. Die Kommunikationsschnittstelle 113 kann wiederum den zweiten Bewegungsbefehl an den Roboter kommunizieren, um die Bewegung des Roboterarms zu steuern. Wie in 5A dargestellt, steuert das Robotersteuersystem 110 nach der ersten Kamerakalibrierung beispielsweise den Roboter 550, um einen Roboterbetrieb auszuführen, der Roboteraufgaben wie das Aufnehmen von Objekten 582A, 582B und 582C einbezieht. Die Bewegung des Roboters 550 kann auf den von der ersten Kamerakalibrierung erlangten Kamerakalibrierinformationen und auf den von der Kamera 570 erfassten Bildern der Objekte 582A, 582B, 582C basieren.
-
In Schritt 411 detektiert die Steuerschaltung 111 eine Ruhezeit während des Roboterbetriebs. Bei einem Aspekt kann die Ruhezeit des Roboters ein Zeitraum sein, während dem der Roboter während des Roboterbetriebs frei von der Ausführung einer Roboteraufgabe ist. Wenn der Roboterbetrieb auf dem Aufnehmen von Objekten von dem Förderband 573 basiert, kann in einigen Fällen die Ruhezeit auf einer Abwesenheit von Objekten auf dem Förderband 573 basieren. Insbesondere kann das Förderband 573 von dem Roboterarm erreichbar sein und die Steuerschaltung 111 ist konfiguriert, die Ruhezeit zu detektieren, indem sie bestimmt, dass sich keine Objekte auf dem Förderband 573 befinden oder dass ein Abstand zwischen dem Roboter 550 und einem nahesten Objekt auf dem Förderband 573 einen definierten Abstandsschwellenwert überschreitet. In einigen Fällen kann die Steuerschaltung 111 ein Signal empfangen, das anzeigt, dass eine Ruhezeit bevorsteht, wobei das Signal von einer anderen Vorrichtung oder einer anderen Komponente empfangen werden kann, die den Roboterbetrieb überwacht. Wie in 5A veranschaulicht, kann das Robotersteuersystem 110 beispielsweise eine Ruhezeit zwischen einer Roboteraufgabe, bei der das zweite Objekt 582B aufgenommen wird, und einer Roboteraufgabe, bei der das dritte Objekt 582C aufgenommen wird, während des Roboterbetriebs detektieren, da ein großer Abstand zwischen dem zweiten Objekt 582B und dem dritten Objekt 582C existiert. Während dieser Ruhezeit, nachdem der Roboter 550 das zweite Objekt 582B aufgenommen umfasst, kann er eine Ruhezeit haben, in der er frei von der Ausführung einer Roboteraufgabe ist, da das Objekt 582C für den Roboter 550 noch nicht erreichbar ist. In einem Beispiel kann das Robotersteuersystem 110 die Ruhezeit erkennen, wenn kein Objekt auf dem Förderband 573 für den Roboter 550 erreichbar ist, und/oder wenn das Robotersteuersystem 110 bestimmt, dass ein Abstand zwischen dem Roboter 550 und dem nächstliegenden Objekt (z. B. dem dritten Objekt 582C) vorgeschaltet auf dem Förderband 573 einen bestimmten Schwellenwert überschreitet.
-
Unter erneuter Bezugnahme auf 4A und 4B kann das Verfahren 400 ferner einen Schritt 451 umfassen, bei dem die Steuerschaltung 111 den Roboterarm derart steuert, dass er das Verifizierungssymbol 530 während der Ruhezeit mindestens zu dem in Schritt 403 verwendeten Referenzort bewegt (der zur Erfassung des Referenzbildes verwendet wurde). Bei einer Ausführungsform kann Schritt 451 einbeziehen, dass die Steuerschaltung 111 einen dritten Bewegungsbefehl erzeugt und den dritten Bewegungsbefehl an die Kommunikationsschnittstelle 113 ausgibt. Die Kommunikationsschnittstelle 113 kann konfiguriert sein, die dritte Bewegung dann an den Roboter zu kommunizieren, um den Roboterarm dazu zu veranlassen, sich basierend auf dem Bewegungsbefehl zu bewegen. In einigen Fällen kann der dritte Bewegungsbefehl einen Satz gespeicherter Motorbefehle umfassen, die dem Referenzort entsprechen. In einigen Fällen kann der dritte Bewegungsbefehl basierend auf den Kamerakalibrierinformationen von Schritt 401 erzeugt werden. In anderen Fällen beruht der dritte Bewegungsbefehl in Schritt 451 nicht auf den Kamerakalibrierinformationen von Schritt 401.
-
In Schritt 453 ruft die Steuerschaltung 111 ein zusätzliches Bild des Verifizierungssymbols (z. B. 530) von der Kamera (z. B. 570) während der Ruhezeit ab oder empfängt es anderweitig, wobei das zusätzliche Bild ein Verifizierungsbild für die Verifizierung ist und ein Bild des Verifizierungssymbols mindestens an dem Referenzort während der Ruhezeit ist. Das heißt, das Verifizierungsbild für den Referenzort wird erfasst, während sich das Verifizierungssymbol (z. B. 530) am Referenzort befindet oder befunden hat. Bei einer Ausführungsform bezieht Schritt 453 ein, dass die Steuerschaltung 111 einen Kamerabefehl erzeugt, der die Kamera (z. B. 570) steuert, um das Verifizierungsbild zu erfassen. Die Steuerschaltung 111 kann den Kamerabefehl an die Kommunikationsschnittstelle 113 ausgeben, die den Kamerabefehl an die Kamera (z. B. 570) kommunizieren kann. Bei einer Ausführungsform kann Schritt 451 einbeziehen, den Roboterarm derart zu steuern, dass er das Verifizierungssymbol an mehrere Referenzorte bewegt, und mehrere entsprechende von der Kamera erfasste Verifizierungsbilder zu empfangen. Wie in den 6A und 6B veranschaulicht, kann das Robotersteuersystem 110 während einer Ruhezeit den Roboterarm des Roboters 550 steuern, um das Verifizierungssymbol 530 an einen der Referenzorte 610A bis 6101 zu bewegen und ein Bild des Verifizierungssymbols 530 an dem Ort als ein Verifizierungsbild zu erfassen. Wenn die Ruhezeit noch nicht abgelaufen ist, oder insbesondere, wenn ein ausreichender Zeitraum in der Ruhezeit verbleibt, kann das Robotersteuersystem 110 den Roboterarm des Roboters 550 derart steuern, dass das Verifizierungssymbol 530 an einen anderen der Referenzorte 610A bis 6101 bewegt wird und ein Bild des Verifizierungssymbols 530 an diesem anderen Ort als ein weiteres Verifizierungsbild erfasst wird. Wenn die Ruhezeit endet, kann das Robotersteuersystem 110 das Erfassen von Verifizierungsbildern beenden. Daher kann das Robotersteuersystem 110 während jeder Ruhezeit den Roboterarm des Roboters 550 steuern, das Verifizierungssymbol 530 an einen oder mehrere der Referenzorte 610A bis 6101 zu bewegen und an jedem der Referenzorte 610A bis 6101 ein Verifizierungsbild zu erfassen.
-
Unter erneuter Bezugnahme auf 4B kann das Verfahren 400 ferner den Schritt 455 umfassen, in dem die Steuerschaltung 111 eine für die Verifizierung verwendete Verifizierungsbildkoordinate bestimmt, wobei die Verifizierungsbildkoordinate eine Koordinate ist, an der das Verifizierungssymbol im Verifizierungsbild erscheint. Wenn das Verifizierungssymbol (z. B. 530) zu mehreren Referenzorten (z. B. 610A bis 610I) bewegt wird, kann die Kamera (z. B. 570) mehrere Verifizierungsbilder aufnehmen, die jeweils den mehreren Referenzorten entsprechen, und die Steuerschaltung 111 kann mehrere Verifizierungsbildkoordinaten bestimmen, die jeweils den mehreren Verifizierungsbildern entsprechen und jeweils den mehreren Referenzorten entsprechen. Die mehreren Verifizierungsbilder können von der Kamera (z. B. 570) in einer einzigen Ruhezeit (z. B. wenn die einzige Ruhezeit ausreichend lang ist, um dem Roboterarm die Bewegung des Verifizierungssymbols (z. B. 530) an alle der Referenzorte 610A bis 610I zu ermöglichen) oder in mehreren verschiedenen Ruhezeiten (z. B. wenn jede der Ruhezeiten nicht lang genug ist, damit der Roboterarm das Verifizierungssymbol 530 an alle der Referenzorte 610A bis 6101 bewegen kann) erfasst werden.
-
Bei einer Ausführungsform kann die Verifizierungsbildkoordinate auf ähnliche Weise wie bei der Referenzbildkoordinate bestimmt werden. Die Verifizierungsbildkoordinate kann beispielsweise eine Mittenkoordinate des Verifizierungssymbols (z. B.
530) sein und als ein Mittelwert einer Mittenkoordinate einer ersten Form des Verifizierungssymbols (z. B.
530) und einer Mittenkoordinate einer zweiten Form des Verifizierungssymbols im Verifizierungsbild (z. B.
760) bestimmt werden. Beispielsweise zeigt
7B ein Verifizierungsbild
760, das am Referenzort N der Referenzorte erfasst wurde. Das Verifizierungsbild
760 zeigt einen Verifizierungsabschnitt
780, der ein Bildabschnitt in dem Verifizierungsbild
760 ist, der das Verifizierungssymbol
530 zeigt. Das Robotersteuersystem
110 kann von dem Verifizierungsabschnitt
780 eine erste Form
785 identifizieren, die gleich der ersten Form
585 des Verifizierungssymbols
530 von
5C oder im Wesentlichen gleich ist. Das Robotersteuersystem
110 kann ferner von dem Verifizierungsabschnitt
780 eine zweite Form
787 identifizieren, die gleich oder im Wesentlichen gleich der zweiten Form
587 des Verifizierungssymbols
530 ist. Das Robotersteuersystem
110 kann ferner konfiguriert sein, eine Mittenkoordinate
der ersten Form
785, die im Verifizierungsabschnitt
780 des Verifizierungsbildes
760 gezeigt wird, und eine Mittenkoordinate
der zweiten Form
787, die im Verifizierungsabschnitt
780 des Verifizierungsbildes
760 gezeigt wird, zu bestimmen. Das Robotersteuersystem
110 kann ferner die Verifizierungsbildkoordinate
für das Verifizierungsbild
760 als einen Mittelwert der Mittenkoordinate der ersten Form
785 und der Mittenkoordinate der zweiten Form
787 im Verifizierungsbild
760 wie folgt bestimmen:
-
Unter erneuter Bezugnahme auf
4B kann das Verfahren
400 ferner den Schritt
457 umfassen, in dem die Steuerschaltung
111 einen Abweichungsparameterwert basierend auf einem Abweichungsbetrag zwischen der Referenzbildkoordinate von Schritt
403 und der Verifizierungsbildkoordinate von Schritt
455 bestimmt, wobei die Referenzbildkoordinate und die Verifizierungsbildkoordinate beide mit dem Referenzort N verknüpft sind. In einem Beispiel kann die Abweichung zwischen der Referenzbildkoordinate und der Verifizierungsbildkoordinate ein Abstand zwischen der Referenzbildkoordinate und der Verifizierungsbildkoordinate sein. Da die Referenzbildkoordinate am Referenzort N als
und die Verifizierungsbildkoordinate am Referenzort N als (u
verify_N, v
verify_N) ausgedrückt wird, kann eine Abweichung (z. B. Abstand) am Referenzort N beispielsweise als
ausgedrückt werden.
-
Wie vorstehend beschrieben, kann bei einem Aspekt, bei dem der eine oder die mehreren Referenzorte mehrere Referenzorte sind, die Steuerschaltung 111 konfiguriert sein, die mehreren Verifizierungsbildkoordinaten zu bestimmen, die jeweils den mehreren Referenzorten entsprechen, an denen die vorstehend beschriebene Verifizierungsbildkoordinate eine der mehreren Verifizierungsbildkoordinaten ist. Bei einem solchen Aspekt basiert der Abweichungsparameterwert auf entsprechenden Abweichungsbeträgen zwischen den mehreren Referenzbildkoordinaten und den mehreren Verifizierungsbildkoordinaten für die mehreren Referenzorte, wobei sich jeder Abweichungsbetrag der entsprechenden Abweichungsbeträge befindet zwischen: (a) einer Referenzbildkoordinate, die einem entsprechenden Referenzort der mehreren Referenzorte entspricht und (b) einer Verifizierungsbildkoordinate, die dem gleichen Referenzort entspricht. Die mehreren Verifizierungsbildkoordinaten können entsprechende Koordinaten sein, an denen das Verifizierungssymbol in mehreren Verifizierungsbildern erscheint, wobei das vorstehend erörterte Verifizierungsbild eines der mehreren Verifizierungsbilder ist. Die Steuerschaltung 111 kann konfiguriert sein, die Kamera derart zu steuern, dass sie alle der mehreren Verifizierungsbilder in einer Ruhezeit erfasst, und/oder sie kann konfiguriert sein, die Kamera derart zu steuern, dass sie die mehreren Verifizierungsbilder in verschiedenen Ruhezeiten erfasst.
-
Wenn es beispielsweise mehrere Referenzorte gibt, wie in den
6A und
6B gezeigt, kann das Robotersteuersystem
110 mehrere entsprechende Referenzbildkoordinaten bestimmen, die den mehreren Referenzorten entsprechen und mehrere entsprechende Verifizierungsbildkoordinaten bestimmen, die den mehreren Referenzorten entsprechen und entsprechende Abweichungsbeträge zwischen den mehreren Referenzbildkoordinaten und den mehreren Verifizierungsbildkoordinaten bestimmen. Der Abweichungsparameterwert kann auf den entsprechenden Abweichungsbeträgen zwischen den mehreren Referenzbildkoordinaten und den mehreren Verifizierungsbildkoordinaten basieren. Der Abweichungsparameter kann zum Beispiel wie folgt ein Mittelwert der entsprechenden Abweichungsbeträge sein.
-
In dem vorstehenden Ausdruck kann sich N auf den N-ten Referenzort beziehen, während sich M auf eine Gesamtanzahl an Referenzorten beziehen kann.
-
Unter Bezugnahme auf 4B kann das Verfahren 400 ferner den Schritt 459 umfassen, in dem die Steuerschaltung 111 bestimmt, ob der Abweichungsparameterwert einen definierten Schwellenwert (der auch als definierter Abweichungsschwellenwert bezeichnet werden kann) überschreitet. Die Steuerschaltung 111 kann ferner in Schritt 461 als Reaktion auf eine Bestimmung, dass der Abweichungsparameterwert den definierten Schwellenwert überschreitet, eine zweite Kamerakalibrierung ausführen, um aktualisierte Kamerakalibrierinformationen für die Kamera zu bestimmen. Der Abweichungsparameterwert, der den definierten Schwellenwert überschreitet, kann beispielsweise anzeigen, dass die Kamerakalibrierinformationen der Kamera veraltet sind und/oder wahrscheinlich eine unerwünschte Anzahl an Fehlern bei einem Roboterbetrieb verursachen. Wenn der Abweichungsparameterwert den definierten Schwellenwert überschreitet, kann daher eine zweite Kamerakalibrierung für die Kamera erfolgen, um die Kamerakalibrierinformationen für die Kamera zu aktualisieren (z. B. 570). Die zweite Kamerakalibrierung verwendet möglicherweise die gleichen Techniken wie die erste Kamerakalibrierung, kann aber auf Bildern basieren, die erst kürzlich von der Kamera erfasst wurden. In einem Beispiel kann der Roboterbetrieb gestoppt oder pausiert werden, wenn Schritt 459 anzeigt, dass der Abweichungsparameterwert den definierten Schwellenwert überschreitet, und dann mit der Ausführung der zweiten Kamerakalibrierung fortgesetzt werden, was mit der Erfassung von Bildern für die zweite Kamerakalibrierung beginnen kann. Nachdem die zweite Kamerakalibrierung abgeschlossen ist und die Kamerakalibrierinformationen für die Kamera aktualisiert wurden, kann das Robotersteuersystem 110 den Roboterbetrieb unter Verwendung der aktualisierten Kamerakalibrierinformationen wieder aufnehmen.
-
Bei einer Ausführungsform kann die Steuerschaltung 111 als Reaktion auf die Bestimmung, dass der Abweichungsparameterwert den definierten Schwellenwert nicht überschreitet, konfiguriert sein, den Roboter derart zu steuern, dass er den Roboterbetrieb nach der Ruhezeit fortsetzt, ohne eine zusätzliche Kamerakalibrierung auszuführen (z. B. durch Ausgabe eines vierten Bewegungsbefehls an den Roboter über die Kommunikationsschnittstelle). Ein solcher Zustand kann anzeigen, dass die Kamerakalibrierinformationen von Schritt 401 immer noch ausreichend genau sind, und dass der Roboterbetrieb ohne eine unerwünschte Anzahl an Fehlern fortgesetzt werden kann.
-
Bei einer Ausführungsform kann die Steuerschaltung 111 konfiguriert sein, die Temperatur einer Umgebung, in der sich der Roboter befindet, zu bestimmen und mindestens eines von dem definierten Abweichungsschwellenwert (auch als Neudefinieren des Abweichungsschwellenwerts bezeichnet) oder den Kamerakalibrierinformationen für die Kamera basierend auf der gemessenen Temperatur anzupassen. Zum Beispiel kann die Steuerschaltung 111 die Temperatur der Umgebung bestimmen, indem sie die Temperatur misst oder Temperaturdaten von einer anderen Vorrichtung oder Komponente empfängt. Bei einer solchen Ausführungsform kann die Steuerschaltung 111 konfiguriert sein, den definierten Schwellenwert basierend auf der gemessenen Temperatur anzupassen, durch: Einstellen des definierten Schwellenwerts, sodass er einen ersten Wert aufweist, wenn die gemessene Temperatur außerhalb eines definierten Bereichs liegt; und Einstellen des Schwellenwerts, sodass er einen zweiten Wert aufweist, der niedriger als der erste Wert ist, wenn die gemessene Temperatur innerhalb des definierten Bereichs liegt. Beispielsweise kann eine übermäßig hohe oder übermäßig niedrige Temperatur Veränderungen in der Kamera verursachen. Insbesondere kann eine Temperaturänderung die intrinsischen Parameter der Kamera beeinflussen. Die Komponenten in der Kamera können sich beispielsweise ausdehnen, wenn die Temperatur steigt, und sich zusammenziehen, wenn die Temperatur sinkt, was sich auf die intrinsischen Parameter der Kamera auswirken kann. Daher kann es vorteilhaft sein, den definierten Abweichungsschwellenwert basierend auf der Temperatur oder dem Ausmaß der Temperaturänderung anzupassen. Wenn sich die Temperatur beispielsweise in einem Bereich einer normalen Betriebstemperatur befindet (z. B. ein definierter Bereich um die Raumtemperatur herum), dann kann der definierte Abweichungsschwellenwert niedriger sein, da die Temperatur die Kamera nicht nachteilig beeinflusst. Wenn sich andererseits die Temperatur außerhalb des Bereichs einer normalen Betriebstemperatur befindet, kann der Abweichungsschwellenwert höher sein, da eine kalte oder heiße Temperatur die Kamera nachteilig beeinflusst. In einem alternativen Beispiel kann der Abweichungsschwellenwert mit einem niedrigeren Wert definiert werden, wenn sich die Temperatur außerhalb einer normalen Betriebstemperatur befindet, um häufiger eine zusätzliche Kamerakalibrierung auszulösen. In diesem Beispiel kann der Abweichungsschwellenwert auf einen höheren Wert festgelegt werden, wenn sich die Temperatur innerhalb der normalen Betriebstemperatur befindet, um weniger häufig eine zusätzliche Kamerakalibrierung auszulösen.
-
8 zeigt eine beispielhafte Zeitachse 800, in der die Kamerakalibrierung und die Kamerakalibrierungsverifizierung ausgeführt werden. Bevor ein Roboterbetrieb beginnt, führt das Robotersteuersystem 110 von 1A oder 1B die erste Kamerakalibrierung aus, um die Kamerakalibrierinformationen für die Kamera (z. B. Kamera 570 von 5A oder 5B) während eines Kalibrierzeitraums 811 zu bestimmen. Nachdem die erste Kamerakalibrierung abgeschlossen ist, erfasst das Robotersteuersystem 110 Referenzbilder des Verifizierungssymbols (z. B. Verifizierungssymbol 530) an verschiedenen Referenzorten und bestimmt während eines Referenzerfassungszeitraums 813 Referenzbildkoordinaten, an denen das Verifizierungssymbol in entsprechenden Referenzbildern (z. B. Referenzbild 710 von 7A) erscheint. Der Roboterbetrieb kann nach dem Ende des Referenzerfassungszeitraums 813 nach der Bestimmung der Referenzbildkoordinaten beginnen.
-
Nach dem Beginn des Roboterbetriebs, während eines Aufgabenzeitraums 815, steuert das Robotersteuersystem 110 den Roboter (z. B. Roboter 550 von 5A oder 5B) derart, dass er eine oder mehrere Roboteraufgaben ausführt und daher, bei einer Ausführungsform, möglicherweise nicht in der Lage ist, Verifizierungsbilder zu sammeln (z. B. Verifizierungsbild 760 von 7B). Das Robotersteuersystem 110 detektiert eine Ruhezeit 817, während der der Roboter nach dem Aufgabenzeitraum 815 frei von der Ausführung einer Roboteraufgabe ist. Daher erfasst das Robotersteuersystem 110 während der Ruhezeit 817 entsprechend ein oder mehrere Verifizierungsbilder des Verifizierungssymbols an einer ersten Reihe von einem oder mehreren Orten (z. B. 610A-610B) der Referenzorte. Nach dem Ende der Ruhezeit 817, während eines Aufgabenzeitraums 819, nimmt das Robotersteuersystem 110 die Steuerung des Roboters wieder auf, um eine oder mehrere Roboteraufgaben auszuführen, und sammelt daher möglicherweise keine Verifizierungsbilder. Das Robotersteuersystem 110 detektiert eine Ruhezeit 821, während der der Roboter nach dem Aufgabenzeitraum 817 frei von der Ausführung einer Roboteraufgabe ist. Während der Ruhezeit 821 erfasst das Robotersteuersystem 110 entsprechend ein oder mehrere Verifizierungsbilder des Verifizierungssymbols an einer zweiten Reihe von einem oder mehreren Orten (z. B. 610C-610E) der Referenzorte. Nach der Ruhezeit 821, während einer Roboteraufgabenperiode 823, nimmt das Robotersteuersystem 110 die Steuerung des Roboters wieder auf, um eine oder mehrere Roboteraufgaben auszuführen, und sammelt daher möglicherweise keine Verifizierungsbilder. Das Robotersteuersystem 110 detektiert eine Ruhezeit 825, während der der Roboter nach dem Aufgabenzeitraum 823 frei von der Ausführung einer Roboteraufgabe ist. Während der Ruhezeit 825 erfasst das Robotersteuersystem 110 entsprechend ein oder mehrere Verifizierungsbilder des Verifizierungssymbols an einer dritten Reihe von einem oder mehreren Orten (z. B. 610F-610I) der Referenzorte.
-
Die Verifizierungsbilder (z. B. 760), die während der Ruhezeiten 817, 821 und 825 erfasst werden, können an entsprechend unterschiedlichen Orten der Referenzorte erfasst werden. Die erste, zweite und dritte Reihe von einem oder mehreren Orten können sich beispielsweise voneinander unterscheiden und können sich an den Orten nicht überlappen. Ferner kann das Robotersteuersystem 110 während der Ruhezeit 825 bestimmen, dass die Verifizierungsbilderfassung abgeschlossen ist, was anzeigen kann, dass eine ausreichende Anzahl an Verifizierungsbildern zur Kamerakalibrierungsverifizierung erfasst wurde. Bei einer Ausführungsform kann das Robotersteuersystem 110 bestimmen, dass die Verifizierungsbilderfassung abgeschlossen ist, wenn an allen Referenzorten (z. B. 610A-610I) Verifizierungsbilder erfasst wurden. Bei einer Ausführungsform kann das Robotersteuersystem 110 bestimmen, dass die Verifizierungsbilderfassung abgeschlossen ist, wenn eine Anzahl der Verifizierungsbilder eine definierte Sollanzahl erreicht.
-
Nach der Bestimmung, dass die Verifizierungsbilderfassung abgeschlossen ist, bestimmt das Robotersteuersystem 110 die Verifizierungsbildkoordinaten, an denen das Verifizierungssymbol in den entsprechenden Verifizierungsbildern erscheint. Anschließend bestimmt das Robotersteuersystem 110 einen Abweichungsparameterwert, der auf den entsprechenden Abweichungsbeträgen der Verifizierungsbildkoordinaten von den Referenzbildkoordinaten basiert. Wenn der Abweichungsparameter einen definierten Schwellenwert überschreitet, führt das Robotersteuersystem 110 eine weitere Kamerakalibrierung aus. In diesem Beispiel überschreitet der Abweichungsparameter jedoch den definierten Schwellenwert nicht, sodass das Robotersteuersystem 110 während einer Aufgabendauer 827 nach der Ruhezeit 825 fortfährt, eine Roboteraufgabe auszuführen, ohne eine zusätzliche Kamerakalibrierung auszuführen.
-
9 zeigt ein beispielhaftes Ablaufdiagramm 900, das einen Verifizierungsprozess in Bezug auf die Zeitachse in 8 zeigt. In Schritt 901 führt das Robotersteuersystem 110 von 1A, 1B oder 1C die erste Kamerakalibrierung der Kamera aus (z. B. Kamera 570 von 5A oder 5B), um die Kamerakalibrierinformationen der Kamera zu bestimmen. In Schritt 903 steuert das Robotersteuersystem 110 den Roboter (z. B. Roboter 550 von 5A oder 5B), um das Verifizierungssymbol (z. B. Verifizierungssymbol 530 von 5A oder 5B) an Referenzorte zu bewegen, und erfasst mittels der Kamera entsprechende Instanzen der Referenzbilder (z. B. Referenzbild 710 von 7A) des Verifizierungssymbols an entsprechenden Referenzorten. In Schritt 905 beginnt das Robotersteuersystem 110 einen Roboterbetrieb des Roboters basierend auf den Kamerakalibrierinformationen, die von der ersten Kamerakalibrierung erlangt wurden.
-
In Schritt 907 detektiert das Robotersteuersystem 110 eine Ruhezeit während des Roboterbetriebs. In Schritt 909 steuert das Robotersteuersystem 110 den Roboter (z. B. Roboter 550 von 5A oder 5B), sodass er das Verifizierungssymbol (z. B. das Verifizierungssymbol 530 von 5A oder 5B) während der Ruhezeit an einen oder mehrere Orte der Referenzorte bewegt und mittels der Kamera ein oder mehrere Verifizierungsbilder (z. B. das Verifizierungsbild 760 von 7B) entsprechend an dem einen oder den mehreren Orten der Referenzorte erfasst. In einigen Fällen kann das Robotersteuersystem 110 den Roboter derart steuern, dass er das Verifizierungssymbol an so viele Referenzorte bewegt, wie es die Dauer der Ruhezeit zulässt. In Schritt 911 bestimmt das Robotersteuersystem 110, ob eine Gesamtzahl der erfassten Verifizierungsbilder eine definierte Sollanzahl erreicht hat. Wenn die Gesamtanzahl der erfassten Verifizierungsbilder die Sollanzahl nicht erreicht hat, versucht das Robotersteuersystem 110, eine weitere nachfolgende Ruhezeit während des Roboterbetriebs zu detektieren, indem es zu Schritt 907 zurückkehrt, um weitere Verifizierungsbilder zu erfassen.
-
Wenn die Gesamtanzahl der erfassten Verifizierungsbilder die Sollanzahl erreicht hat, führt das Robotersteuersystem 110 in Schritt 913 eine Kamerakalibrierungsverifizierung basierend auf den Referenzbildern (z. B. 710) und den Verifizierungsbildern (z. B. 760) aus. Die Kamerakalibrierungsverifizierung erzeugt einen Abweichungsparameter. In Schritt 915 bestimmt das Robotersteuersystem 110, ob der Abweichungsparameter einen definierten Schwellenwert überschreitet. Wenn der Abweichungsparameter den Schwellenwert nicht überschreitet, kann das Robotersteuersystem 110 die Gesamtanzahl der erfassten Verifizierungsbilder in Schritt 919 auf Null zurücksetzen und den Roboterbetrieb nach der Ruhezeit fortsetzen, während es versucht, eine weitere Ruhezeit zu detektieren, um einen neuen Satz von Verifizierungsbildern zu erfassen, indem es zu Schritt 907 zurückkehrt.
-
Wenn der Abweichungsparameter den Schwellenwert überschreitet, kann das Robotersteuersystem 110 den Roboterbetrieb stoppen und eine zweite Kamerakalibrierung ausführen (Schritt 917). Nach der zweiten Kamerakalibrierung bei 917 kann das Robotersteuersystem 110 die Gesamtanzahl der erfassten Verifizierungsbilder bei 921 auf Null zurücksetzen. Nach Schritt 921 kann das Ablaufdiagramm zu Schritt 903 zurückkehren, wo das Robotersteuersystem 110 den Roboter (z. B. 550) derart steuert, dass er das Verifizierungssymbol (z. B. 530) an die Referenzorte bewegt und mittels der Kamera (z. B. 570) einen neuen Satz von Referenzbildern (z. B. 710) des Verifizierungssymbols an den entsprechenden Referenzorten erfasst, sodass der neue Satz von Referenzbildern später zur Verifizierung verwendet werden kann.
-
Ausführungsform 1 betrifft ein Robotersteuersystem, das eine Kommunikationsschnittstelle umfasst, die konfiguriert ist, mit einem Roboter mit einer Basis und einem Roboterarm mit einem darauf angeordneten Verifizierungssymbol und mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren. Das Robotersteuersystem umfasst ferner eine Steuerschaltung, die konfiguriert ist, eine erste Kamerakalibrierung auszuführen, um die mit der Kamera verbundenen Kamerakalibrierinformationen zu bestimmen. Die Steuerschaltung ist ferner konfiguriert: a) den Roboterarm derart zu steuern, dass er das Verifizierungssymbol während oder nach der ersten Kamerakalibrierung an einen Ort innerhalb des Kamerasichtfeldes bewegt, indem ein erster Bewegungsbefehl an den Roboter über die Kommunikationsschnittstelle ausgegeben wird, wobei der Ort ein Referenzort von einem oder mehreren Referenzorten zur Verifizierung der ersten Kamerakalibrierung ist, b) ein Bild des Verifizierungssymbols von der Kamera über die Kommunikationsschnittstelle zu empfangen, wobei die Kamera konfiguriert ist, das Bild des Verifizierungssymbols an dem Referenzort zu erfassen, wobei das Bild ein Referenzbild für die Verifizierung ist, c) eine Referenzbildkoordinate für die Verifizierung zu bestimmen, wobei die Referenzbildkoordinate eine Koordinate ist, an der das Verifizierungssymbol in dem Referenzbild erscheint; d) basierend auf den Kamerakalibrierinformationen die Bewegung des Roboterarms zur Ausführung eines Roboterbetriebs zu steuern, indem ein zweiter Bewegungsbefehl, der auf den Kamerakalibrierinformationen basiert, über die Kommunikationsschnittstelle an den Roboter ausgegeben wird; e) eine Ruhezeit während des Roboterbetriebs zu detektieren; f) den Roboterarm zu steuern, um das Verifizierungssymbol während der Ruhezeit mindestens an den Referenzort zu bewegen, indem ein dritter Bewegungsbefehl über die Kommunikationsschnittstelle an den Roboter ausgegeben wird; g) ein zusätzliches Bild des Verifizierungssymbols von der Kamera über die Kommunikationsschnittstelle während der Ruhezeit zu empfangen, wobei die Kamera konfiguriert ist, das zusätzliche Bild des Verifizierungssymbols mindestens am Referenzort zu erfassen, wobei das zusätzliche Bild ein Verifizierungsbild für die Verifizierung ist; h) eine Verifizierungsbildkoordinate, die für die Verifizierung verwendet wird, zu bestimmen, wobei die Verifizierungsbildkoordinate eine Koordinate ist, an der das Verifizierungssymbol in dem Verifizierungsbild erscheint; i) einen Abweichungsparameterwert basierend auf einem Abweichungsbetrag zwischen der Referenzbildkoordinate und der Verifizierungsbildkoordinate zu bestimmen, wobei die Referenzbildkoordinate und die Verifizierungsbildkoordinate beide mit dem Referenzort verbunden sind, wobei der Abweichungsparameterwert eine Änderung in der Kamera seit der ersten Kamerakalibrierung oder eine Änderung in einer Beziehung zwischen der Kamera und dem Roboter seit der ersten Kamerakalibrierung anzeigt, j) zu bestimmen, ob der Abweichungsparameterwert einen definierten Schwellenwert überschreitet, und k) als Reaktion auf eine Bestimmung, dass der Abweichungsparameterwert den definierten Schwellenwert überschreitet, eine zweite Kamerakalibrierung auszuführen, um aktualisierte Kamerakalibrierinformationen zu bestimmen.
-
Die Ausführungsform 2 umfasst das Robotersteuersystem von Ausführungsform 1, wobei die Steuerschaltung konfiguriert ist, als Reaktion auf eine Bestimmung, dass der Abweichungsparameterwert den definierten Schwellenwert nicht überschreitet, den Roboter zu steuern, den Roboterbetrieb nach der Ruhezeit fortzusetzen, ohne eine zusätzliche Kamerakalibrierung auszuführen, indem er über die Kommunikationsschnittstelle einen vierten Bewegungsbefehl an den Roboter ausgibt.
-
Die Ausführungsform 3 umfasst das Robotersteuersystem von Ausführungsform 1 oder 2, wobei der eine oder die mehreren Referenzorte mehrere Referenzorte sind, die jeweils mehreren Referenzbildkoordinaten entsprechen, wobei die Referenzbildkoordinate eine der mehreren Referenzbildkoordinaten ist. Bei dieser Ausführungsform ist die Steuerschaltung ferner konfiguriert, mehrere Verifizierungsbildkoordinaten zu bestimmen, die jeweils den mehreren Referenzorten entsprechen, wobei die Verifizierungsbildkoordinate eine der mehreren Verifizierungsbildkoordinaten ist, und wobei der Abweichungsparameterwert auf entsprechenden Abweichungsbeträgen zwischen den mehreren Referenzbildkoordinaten und den mehreren Verifizierungsbildkoordinaten für die mehreren Referenzorte basiert, wobei sich jeder Abweichungsbetrag der entsprechenden Abweichungsbeträge befindet zwischen: (a) einer Referenzbildkoordinate, die einem entsprechenden Referenzort der mehreren Referenzorte entspricht, und (b) einer Verifizierungsbildkoordinate, die dem gleichen Referenzort entspricht.
-
Ausführungsform 4 umfasst das Robotersteuersystem von Ausführungsform 3, wobei die mehreren Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen das Verifizierungssymbol in mehreren Verifizierungsbildern erscheint, wobei das Verifizierungsbild eines der mehreren Verifizierungsbilder ist, und wobei die Steuerschaltung konfiguriert ist, die Kamera zu steuern, alle der mehreren Verifizierungsbilder in der Ruhezeit zu erfassen.
-
Ausführungsform 5 umfasst das Robotersteuersystem von Ausführungsform 3, wobei die mehreren Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen das Verifizierungssymbol in mehreren Verifizierungsbildern erscheint, wobei das Verifizierungsbild eines der mehreren Verifizierungsbilder ist, und wobei die Steuerschaltung konfiguriert ist, die Kamera derart zu steuern, dass sie die mehreren Verifizierungsbilder in verschiedenen Ruhezeiten erfasst, wobei die Ruhezeit eine der verschiedenen Ruhezeiten ist.
-
Ausführungsform 6 umfasst das Robotersteuersystem von einer der Ausführungsformen 1 bis 5, wobei das Verifizierungssymbol eine erste Region mit einer ersten Farbe und eine zweite Region mit einer zweiten Farbe umfasst, wobei ein Verhältnis eines Bereichs der ersten Region zu einem Bereich der zweiten Region definiert und in einer Speichervorrichtung des Robotersteuersystems als ein definiertes Verhältnis gespeichert ist.
-
Ausführungsform 7 umfasst das Robotersteuersystem von Ausführungsform 6, wobei die Steuerschaltung konfiguriert ist, das Verifizierungssymbol im Referenzbild oder im Verifizierungsbild basierend auf dem definierten Verhältnis zu identifizieren.
-
Ausführungsform 8 umfasst das Robotersteuersystem der Ausführungsform 7, wobei der Roboterarm ein darauf angeordnetes Kalibriermuster aufweist, wobei das Referenzbild das Verifizierungssymbol und das Kalibriermuster umfasst, wobei die Steuerschaltung konfiguriert ist, zu bestimmen, ob ein Teil des Referenzbildes das Verifizierungssymbol oder das Kalibriermuster ist, durch Bestimmen, ob der Teil des Referenzbildes eine erste Bildregion mit der ersten Farbe und eine zweite Bildregion mit der zweiten Farbe aufweist, und ob ein Verhältnis zwischen einem Bereich der ersten Bildregion und einem Bereich der zweiten Bildregion gleich dem definierten Verhältnis ist.
-
Ausführungsform 9 umfasst das Robotersteuersystem von einer der Ausführungsformen 1 bis 8, wobei das Verifizierungssymbol eine erste Form und eine zweite Form umfasst, die konzentrisch zueinander sind, wobei sich die entsprechenden Mitten der ersten Form und der zweiten Form im Wesentlichen am gleichen Ort befinden.
-
Ausführungsform 10 umfasst das Robotersteuersystem der Ausführungsform 9, wobei die Steuerschaltung konfiguriert ist, die Referenzbildkoordinate zu bestimmen durch: a) Bestimmen einer ersten Koordinate eines Zentrums der ersten Form im Referenzbild; b) Bestimmen einer zweiten Koordinate eines Zentrums der zweiten Form im Referenzbild; und c) Bestimmen der Referenzbildkoordinate als ein Mittelwert der ersten Koordinate und der zweiten Koordinate im Referenzbild. In dieser Ausführungsform ist die Steuerschaltung derart konfiguriert, dass sie die Verifizierungsbildkoordinate bestimmt durch: d) Bestimmen einer ersten Koordinate eines Zentrums der ersten Form im Verifizierungsbild; e) Bestimmen einer zweiten Koordinate eines Zentrums der zweiten Form im Verifizierungsbild; und f) Bestimmen der Verifizierungsbildkoordinate als ein Mittelwert der ersten Koordinate und der zweiten Koordinate im Verifizierungsbild.
-
Die Ausführungsform 11 umfasst das Robotersteuersystem von einer der Ausführungsformen 1 bis 10, wobei die Steuerschaltung konfiguriert ist, das Verifizierungssymbol im Referenzbild oder im Verifizierungsbild durch Identifizieren eines kreisförmigen Rings zu identifizieren, wobei das Verifizierungssymbol als der kreisförmige Ring geformt ist.
-
Ausführungsform 12 umfasst das Robotersteuersystem von einer der Ausführungsformen 1 bis 11, wobei die Steuerschaltung ferner konfiguriert ist, eine Temperatur einer Umgebung zu bestimmen, in der sich der Roboter befindet, und mindestens eines von dem definierten Schwellenwert oder den Kamerakalibrierinformationen basierend auf der gemessenen Temperatur anzupassen.
-
Ausführungsform 13 umfasst das Robotersteuersystem der Ausführungsform 12, wobei die Steuerschaltung konfiguriert ist, den definierten Schwellenwert basierend auf der Temperatur anzupassen durch: Einstellen des definierten Schwellenwerts, sodass er einen ersten Wert aufweist, wenn die Temperatur außerhalb eines definierten Bereichs liegt; und Einstellen des Schwellenwerts, sodass er einen zweiten Wert aufweist, der niedriger als der erste Wert ist, wenn die Temperatur innerhalb des definierten Bereichs liegt.
-
Ausführungsform 14 umfasst das Robotersteuersystem von einer der Ausführungsformen 1 bis 13, wobei der eine oder die mehreren Referenzorte, an die die Steuerschaltung konfiguriert ist, zu veranlassen, dass das Verifizierungssymbol mittels des Roboterarms bewegt wird, mehrere Referenzorte umfassen, die auf einer Fläche einer Kugel angeordnet sind, die in Bezug auf die Kamera konkav ist.
-
Ausführungsform 15 umfasst das Robotersteuersystem von Ausführungsform 14, wobei die Steuerschaltung ferner konfiguriert ist, den Roboterarm zu steuern, sodass das Verifizierungssymbol derart bewegt wird, dass es an jedem Referenzort der mehreren Referenzorte die Oberfläche der Kugel tangiert.
-
Ausführungsform 16 umfasst das Robotersteuersystem von einer der Ausführungsformen 1 bis 15, wobei die Steuerschaltung konfiguriert ist, den Roboterarm derart zu steuern, dass er das Verifizierungssymbol bewegt, sodass es direkt der Kamera zugewandt ist, wenn das Verifizierungssymbol zum Referenzort bewegt wird.
-
Ausführungsform 17 umfasst das Robotersteuersystem von einer der Ausführungsformen 1 bis 16, wobei die Steuerschaltung konfiguriert ist, die Ruhezeit des Roboterbetriebs zu detektieren, indem sie einen Zeitraum detektiert, während dem der Roboter während des Roboterbetriebs frei von der Ausführung einer Roboteraufgabe ist.
-
Ausführungsform 18 umfasst das Robotersteuersystem von Ausführungsform 17, wobei die Steuerschaltung konfiguriert ist, den Roboterarm zu steuern, mit Objekten auf einem Förderband zu interagieren, das von dem Roboterarm erreicht werden kann, wobei die Steuerschaltung konfiguriert ist, die Ruhezeit zu detektieren, indem sie detektiert, dass sich auf dem Förderband kein Objekt befindet, oder indem sie detektiert, dass ein Abstand zwischen dem Roboter und einem nächstliegenden Objekt auf dem Förderband einen definierten Abstandsschwellenwert überschreitet.