DE102020119453A1 - Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung - Google Patents

Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung Download PDF

Info

Publication number
DE102020119453A1
DE102020119453A1 DE102020119453.6A DE102020119453A DE102020119453A1 DE 102020119453 A1 DE102020119453 A1 DE 102020119453A1 DE 102020119453 A DE102020119453 A DE 102020119453A DE 102020119453 A1 DE102020119453 A1 DE 102020119453A1
Authority
DE
Germany
Prior art keywords
verification
robot
group
camera
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102020119453.6A
Other languages
English (en)
Other versions
DE102020119453B4 (de
Inventor
Russell Islam
Xutao Ye
Rosen Diankov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Inc
Original Assignee
Mujin Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/864,071 external-priority patent/US10906184B2/en
Application filed by Mujin Inc filed Critical Mujin Inc
Publication of DE102020119453A1 publication Critical patent/DE102020119453A1/de
Application granted granted Critical
Publication of DE102020119453B4 publication Critical patent/DE102020119453B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39008Fixed camera detects reference pattern held by end effector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39016Simultaneous calibration of manipulator and camera
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39024Calibration of manipulator

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

Es wird ein Robotersteuersystem und ein Verfahren zur Kalibrierungsverifizierung präsentiert. Das Computersystem ist dazu konfiguriert, einen ersten Kalibrierungsvorgang auszuführen und einen Roboterarm derart zu steuern, dass er ein Verifizierungssymbol an einen Referenzort bewegt. Das Robotersteuersystem empfängt ferner von einer Kamera ein Referenzbild des Verifizierungssymbols und bestimmt eine Referenzbildkoordinate für das Verifizierungssymbol. Das Robotersteuersystem steuert ferner den Roboterarm derart, dass er das Verifizierungssymbol während einer Ruhezeit erneut an den Referenzort bewegt, empfängt ein zusätzliches Bild des Verifizierungssymbols und bestimmt eine Verifizierungsbildkoordinate. Das Robotersteuersystem bestimmt einen Abweichungsparameterwert basierend auf der Referenzbildkoordinate und der Verifizierungsbildkoordinate, und ob der Abweichungsparameterwert einen definierten Schwellenwert überschreitet, und führt einen zweiten Kalibriervorgang durch, wenn der Schwellenwert überschritten ist.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung ist eine Teilfortsetzung der US-Patentanmeldung 16/732,832 mit dem Titel „Method and Control System for Verifying and Updating Camera Calibration for Robot Control“, eingereicht am 2. Januar 2020, die eine Fortsetzung der US-Patentanmeldung 16/525,004 mit dem Titel „Method and Control System for Verifying and Updating Camera Calibration for Robot Control“, eingereicht am 29. Juli 2019 ist, die eine Fortsetzung der US-Patentanmeldung 16/369,630 mit dem Titel „Method and Control System for Verifying and Updating Camera Calibration for Robot Control“, eingereicht am 29. März 2019 ist, deren gesamter Inhalt hierin durch Bezugnahme aufgenommen wird. Diese Anmeldung beansprucht ferner die Priorität der am 18. Oktober 2019 eingereichten provisorischen US-Anmeldung Nr. 62/916,798 mit dem Titel „Method and Control System for Verifying Calibration for Robot Control“, deren gesamter Inhalt ebenfalls hierin durch Bezugnahme aufgenommen wurde.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren und ein Steuerungssystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung.
  • HINTERGRUND
  • Mit zunehmender Automatisierung 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 erfasst wird, basieren. Bei der letzteren Situation kann ein Kalibriervorgang 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. Der Kalibriervorgang kann Kalibrierinformationen erzeugen, die zur Steuerung des Roboters verwendet werden. Bei einigen Implementierungen kann der Kalibriervorgang einen Handbetrieb durch eine Person einbeziehen, die Bewegungen des Roboters oder die Kamera manuell steuern kann, um ein Bild des Roboters zu erfassen.
  • KURZDARSTELLUNG
  • Ein Aspekt der Ausführungsformen hierin betrifft die Ausführung einer Kalibrierungsverifizierung zur Robotersteuerung, wie z. B. die Verifizierung der Kamerakalibrierung oder einer anderen Systemkalibrierung. Die Kalibrierungsverifizierung 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 dazu konfiguriert sein, die Kamerakalibrierungsverifizierung auszuführen durch: a) Ausführen eines ersten Kalibriervorgangs (z. B. eine erste Kamerakalibrierung), um Kalibrierinformationen zu bestimmen (z. B. Kamerakalibrierinformationen), b) Ausgeben eines ersten Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle dazu konfiguriert ist, den ersten Bewegungsbefehl an den Roboter zu kommunizieren, um den Roboterarm zu veranlassen, das Verifizierungssymbol während oder nach dem ersten Kalibriervorgang an einen Ort innerhalb des Kamerasichtfeldes zu bewegen, wobei der Ort ein Referenzort von einem oder mehreren Referenzorten zur Verifizierung des ersten Kalibriervorgangs ist, c) Empfangen eines Bildes des Verifizierungssymbols über die Kommunikationsschnittstelle von der Kamera, die dazu 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 Kalibrierinformationen basiert, an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle dazu konfiguriert ist, den zweiten Bewegungsbefehl zum Roboter zu kommunizieren, um eine Bewegung des Roboterarms zum Ausführen eines Roboterbetriebs zu bewirken.
  • Bei einer Ausführungsform ist die Steuerschaltung dazu konfiguriert, die Verifizierung der Kalibrierung ferner auszuführen durch: f) Detektieren einer Ruhezeit während des Roboterbetriebs, g) Ausgeben eines dritten Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle dazu konfiguriert ist, den dritten Bewegungsbefehl an den Roboter zu kommunizieren, um den Roboterarm zu veranlassen, das Verifizierungssymbol während der Ruhezeit mindestens an den Referenzort zu bewegen, h) Empfangen, über die Kommunikationsschnittstelle, eines zusätzlichen Bildes des Verifizierungssymbols von der Kamera, die dazu 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 mit dem Referenzort verbunden sind, wobei der Abweichungsparameterwert eine Änderung seit dem ersten Kalibriervorgang in der Kamera, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, oder eine Änderung seit dem ersten Kalibriervorgang in einer Beziehung zwischen der Kamera und dem Roboter, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, angibt, k) Bestimmen, ob der Abweichungsparameterwert einen definierten Schwellenwert überschreitet, und 1) Ausführen, als Reaktion auf eine Bestimmung, dass der Abweichungsparameterwert den definierten Schwellenwert überschreitet, eines zweiten Kalibriervorgangs (z. B. eines zweiten Kamerakalibriervorgangs), um aktualisierte Kalibrierinformationen (z. B. aktualisierte Kamerakalibrierinformationen) zu bestimmen.
  • Figurenliste
  • 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 Erfindung zu erklären und einen Fachmann auf dem einschlägigen 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 Verifizierung von Kalibrierinformationen gemäß Ausführungsformen hierin ausgeführt wird.
    • 1C stellt ein Blockdiagramm eines Robotersteuersystems dar, das dazu konfiguriert ist, eine Kalibrierungsverifizierung 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 Kalibrierinformationen, die von einem Kalibriervorgang erlangt sind, gesteuert wird.
    • 3 zeigt ein System zum Ausführen eines Kalibriervorgangs gemäß einer Ausführungsform hierin.
    • Die 4A und 4B stellen ein Ablaufdiagramm bereit, das ein Verfahren zum Ausführen einer Verifizierung von Kalibrierinformationen 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 Verifizierung von Kalibrierinformationen gemäß einer Ausführungsform hierin auszuführen.
    • 5C zeigt ein Beispiel für ein Verifizierungssymbol gemäß einer Ausführungsform hierin.
    • Die 6A-6D 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 Verifizierung von Kalibrierinformationen gemäß einer Ausführungsform hierin.
    • 9 stellt ein Ablaufdiagramm bereit, das ein beispielhaftes Verfahren zum Ausführen einer Verifizierung von Kalibrierinformationen gemäß einer Ausführungsform hierin veranschaulicht.
    • Die 10A-10C veranschaulichen ein System, in dem eine Gruppe von Verifizierungssymbolen an einem Roboter angeordnet ist, wobei die Gruppe von Verifizierungssymbolen verwendet wird, um eine Verifizierung von Kalibrierinformationen gemäß einer Ausführungsform hierin auszuführen.
    • Die 11A-11B veranschaulichen ein System, in dem eine Gruppe von Verifizierungssymbolen an einem Roboter angeordnet ist, wobei die Gruppe von Verifizierungssymbolen verwendet wird, um eine Verifizierung von Kalibrierinformationen gemäß einer Ausführungsform hierin auszuführen.
    • 11C veranschaulicht eine Gruppe von Verifizierungssymbolen, die gemäß einer Ausführungsform davon unterschiedliche entsprechende Größen aufweisen.
    • Die 12A und 12B stellen ein Ablaufdiagramm bereit, das ein Verfahren zum Ausführen einer Verifizierung von Kalibrierinformationen gemäß einer Ausführungsform hierin veranschaulicht.
    • Die 13A und 13B veranschaulichen entsprechend ein Referenzbild und ein Verifizierungsbild, die mit einer ersten Pose eines Roboterarms verbunden sind.
    • Die 14A und 14B veranschaulichen entsprechend ein Referenzbild und ein Verifizierungsbild, die mit einer zweiten Pose eines Roboterarms verbunden sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 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 von Kalibrierinformationen, die verwendet werden, um einen Roboter zu steuern, wie beispielsweise einen Roboter, der in einem Warenlager, einem Produktionsbetrieb oder in einer anderen Umgebung verwendet wird. Die Kalibrierinformationen können insbesondere ausgeführt werden, um die Steuerung eines Roboterbetriebssystems zu erleichtern, und sie können durch das Ausführen eines Kalibriervorgangs bestimmt werden, der als Systemkalibrierung bezeichnet werden kann. Die Systemkalibrierung kann die Kalibrierung einer Kamera (die als Kamerakalibrierung oder Kamerakalibriervorgang bezeichnet werden kann), die Kalibrierung eines Roboters (die als Roboterkalibrierung bezeichnet werden kann), die Kalibrierung eines anderen Elements des Roboterbetriebssystems oder irgendeine Kombination davon umfassen. Die Systemkalibrierung kann z. B. von einem Robotersteuersystem (auch als Robotersteuerung bezeichnet) ausgeführt werden, um Kalibrierinformationen (z. B. Kamerakalibrierinformationen) zu erzeugen, die eine Fähigkeit des Robotersteuersystems erleichtern, den Roboter basierend auf von der Kamera erfassten (z. B. fotografierten) Bildern zu steuern. Der Roboter kann zum Beispiel verwendet werden, um ein Paket in einem Warenlager aufzunehmen, wobei das Platzieren eines Roboterarms oder einer anderen Komponente des Roboters auf durch die Kamera erfassten Bildern des Pakets basieren kann. In diesem Fall, wenn die Kalibrierinformationen Kamerakalibrierinformationen umfassen, 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. Wenn die Systemkalibrierung eine Kamerakalibrierung umfasst, kann die Kamerakalibrierung 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 Skalarwert, 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 am 7. März 2019 eingereichten US-Anmeldung Nr. 16/295,940 (Aktenzeichen MJ0021US1) mit dem Titel „METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION FOR ROBOT CONTROL“ näher erläutert, deren gesamter Inhalt hierin durch Bezugnahme aufgenommen wird.
  • Wie vorstehend erwähnt, bezieht sich ein Aspekt der vorliegenden Offenbarung auf das Verifizieren, ob eine zu einem früheren Zeitpunkt durchgeführte Kamerakalibrierung oder ein anderer Kalibrierungsvorgang zu einem späteren Zeitpunkt immer noch korrekt ist. Die zu dem 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 beispielsweise 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, die/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 oder die anderen Kalibrierinformationen veraltet sind, und die Verwendung dieser Kamerakalibrierinformationen oder anderer Kalibrierinformationen zur Positionierung eines Roboterarms oder einer anderen Komponente des Roboters zu einem späteren Zeitpunkt kann 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 auf die Möglichkeit einzugehen, dass Änderungen bei einer oder mehreren Eigenschaften der Kamera auftreten können, kann ein Robotersteuersystem eine Verifizierung automatisch ausführen, die detektiert, wenn Kamerakalibrierinformationen von einer Kamerakalibrierung nicht mehr ausreichend genau sind (oder allgemeiner, wenn Kalibrierinformationen von einem Kalibriervorgang nicht mehr ausreichend genau sind). Das Detektieren eines solchen Zustands kann einen Hinweis auf eine Änderung bei einer Eigenschaft der Kamera oder eines anderen Elements eines Roboterbetriebssystems bereitstellen. Wenn die Verifizierung detektiert, dass die Kalibrierinformationen nicht mehr ausreichend genau sind, kann das Robotersteuersystem einen Kalibriervorgang ausführen, um aktualisierte Kalibrierinformationen zu bestimmen, die eine aktuellere Eigenschaft oder Eigenschaften der Kamera oder eines anderen Elements des Roboterbetriebssystems widerspiegeln können. Die aktualisierten Kalibrierinformationen können zum Steuern der Platzierung des Roboterarms oder eines anderen Aspekts des Roboterbetriebs verwendet werden. Dementsprechend wird eine automatische Überprüfung der Kalibrierinformationen und/oder eine Aktualisierung der Kalibrierinformationen ausgeführt, um sicherzustellen, dass der Roboter basierend auf korrekten Informationen über eine oder mehrere Eigenschaften arbeitet, die mit der Kamera oder einem anderen Element des Roboterbetriebssystems verbunden sind.
  • Ein Aspekt der Ausführungsformen hierin betrifft das Verifizieren von Kalibrierinformationen für eine Kamera durch Vergleichen eines von der Kamera erfassten Referenzbilds mit einem von der Kamera erfassten Verifizierungsbild. In einigen Fällen kann das Referenzbild ein Bild eines Objekts sein, das erfasst wurde, als sich das Objekt zu einem früheren Zeitpunkt an einem bestimmten Ort befand, und das Verifizierungsbild kann ein Bild des Objekts sein, das zu einem späteren Zeitpunkt am 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 Verifizierung der Kalibrierinformationen 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 Erscheinungsbilds des Verifizierungssymbols in dem Referenzbild mit einem Erscheinungsbild des Verifizierungssymbols in dem Verifizierungsbild vergleichen. Beispielsweise nachdem das Robotersteuersystem einen Kalibriervorgang ausgeführt hat, der zu einem bestimmten Zeitpunkt Kalibrierinformationen erzeugt, kann das Robotersteuersystem den Roboterarm (z. B. über einen Bewegungsbefehl) derart steuern, dass er das Verifizierungssymbol an eine Reihe von vordefinierten Orten innerhalb des Sichtfelds der Kamera (auch als Kamerasichtfeld der Kamera bezeichnet) bewegt, 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 aufnehmen. In einigen Fällen können die Referenzbilder unmittelbar nach dem Kalibriervorgang erfasst werden. Die Bewegung des Roboterarms, oder insbesondere ein Bewegungsbefehl, der zur Bewegung des Roboterarms verwendet wird, kann auf den Kalibrierinformationen von dem gerade ausgeführten Kalibriervorgang basieren oder unabhängig von den Kalibrierinformationen 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 eine Zeitperiode sein, in welcher 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 Ruhezeiten kann das Robotersteuersystem den Roboterarm oder andere Komponenten des Roboters (z. B. über einen Bewegungsbefehl) derart steuern, dass er sich an die Referenzorte 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 an die Referenzorte 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 Abweichungsparameterwert bezeichnet) einen definierten Schwellenwert für den Abweichungsparameter (der auch als definierter Abweichungsschwellenwert bezeichnet werden kann) überschreitet, kann das Robotersteuersystem einen zusätzlichen Kalibriervorgang (z. B. eine zusätzliche Kamerakalibrierung) ausführen, um aktualisierte Kalibrierinformationen (z. B. aktualisierte Kamerakalibrierinformationen) für die Kamera zu bestimmen. Wenn ein Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, kann diese Bedingung anzeigen, dass die Verwendung zuvor erzeugter Kalibrierinformationen zu einer unerwünschten Fehlermenge im Roboterbetrieb führen kann. Daher kann in einigen Fällen der Roboterbetrieb pausiert oder gestoppt werden, während der zusätzliche Kalibriervorgang ausgeführt wird (die Pause kann als eine weitere Ruhezeit betrachtet werden). Nachdem der zusätzliche Kalibriervorgang 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 des zusätzlichen Kalibriervorgangs durch Vergleichen des neuen Satzes von Referenzbildern mit dem neuen Satz von Verifizierungsbildern ausführen.
  • Wie vorstehend erwähnt, kann das Robotersteuersystem einen zusätzlichen Kalibriervorgang 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 einen zusätzlichen Kalibriervorgang 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 Verifizierung der Kalibrierinformationen ausführen, indem es bestimmt, wie stark 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 zu einem späteren Zeitpunkt das Verifizierungssymbol 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 Verifizierungsbilds 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 sein als der erste Wert, sodass ein zusätzlicher Kalibriervorgang 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 zuvor erzeugten Kamerakalibrierinformationen oder irgendwelchen anderen Kalibrierinformationen verursachen kann.
  • Bei einer Ausführungsform kann die Verifizierung der Kalibrierinformationen auf nur einem einzigen Referenzort beruhen. Alternativ kann die Verifizierung der Kalibrierinformationen 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 derart positioniert, dass das Verifizierungssymbol tangential zur Oberflä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 Oberflä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 haben und unterschiedlich groß sein, so dass jede imaginäre Kugel eine sphärische Oberfläche hat, die jeweils einen anderen Abstand zur Kamera hat. 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. Während einige der folgenden Beispiele das Ausführen einer automatischen Kamerakalibrierung und das Verifizieren der von der automatischen Kamerakalibrierung bestimmten Kamerakalibrierinformationen erörtern, können diese Beispiele allgemeiner auf jede Art von automatischem Kalibriervorgang und auf das Verifizieren von jeder Art von Kalibrierinformationen, die von dem automatischen Kalibriervorgang bestimmt wurden, zutreffen. 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 dazu 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 dazu 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 speziell 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 derart steuert, dass er einen Roboterbetrieb basierend auf den aktuellsten Kamerakalibrierinformationen auszuführt. 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 bei einer Ausführungsform derart konfiguriert sein, dass es basierend auf den Bildern und den Kamerakalibrierinformationen Bewegungsbefehle erzeugt und die Bewegungsbefehle an den Roboter 150 kommuniziert, um die Bewegung seines Roboterarms zu steuern. In einigen Fällen ist das Robotersteuersystem 110 dazu konfiguriert, die Kamerakalibrierungsverifizierung während einer Ruhezeit des Roboterbetriebs auszuführen. In einigen Fällen ist das Robotersteuersystem 110 dazu konfiguriert, die Verifizierung während der Ausführung eines Roboterbetriebs mit dem Roboter 150 auszuführen.
  • Bei einer Ausführungsform kann das Robotersteuersystem 110 dazu konfiguriert sein, über eine verdrahtete oder drahtlose Kommunikation mit dem Roboter 150 und der Kamera 170 zu kommunizieren. Das Robotersteuersystem 110 kann zum Beispiel dazu 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 dazu 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 dazu 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 fest zugeordnetes Steuersystem sein (das auch als dedizierter Controller bezeichnet wird), welches nur den Roboter 150 steuert. In anderen Fällen kann das Robotersteuersystem 110 dazu 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 dazu 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 dazu 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 dazu konfiguriert sein, die Kamera 170 zu steuern, um solche Bilder zu erfassen. Das Robotersteuersystem 110 kann beispielsweise dazu 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 Auslösebedingung automatisch erfassen, ohne einen Kamerabefehl vom Robotersteuersystem 110 zu benötigen. Bei einer derartigen Ausführungsform kann die Kamera 170 auch dazu 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 dazu 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 dazu 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 dazu 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 dazu 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 dazu konfiguriert sein, ein Bild oder andere Daten von der Kamera 170 zu empfangen, und die Steuerschaltung 111 kann dazu 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 dazu 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 dazu 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 dazu 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 dazu 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 dazu konfiguriert sein, die Bewegung des Roboters 250 zum Erfassen der Objekte zu planen. Das Robotersteuersystem 110 kann in einigen Fällen dazu 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 dazu 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 dazu 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 dazu 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 Roboterbetriebssystem 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 dazu konfiguriert sind, den Roboterarm durch Drehen der Glieder 354A bis 354E zu bewegen. Einer der Motoren kann zum Beispiel dazu 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 dazu 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 erfassen 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 befinden kann und für die Kamera 370 sichtbar sein kann, 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 Kalibrierungsverifizierung 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 ein zusätzlicher Kalibriervorgang 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. Während einige der nachstehenden Ausführungsformen das Verifizieren von Kamerakalibrierinformationen beschreiben, die von der Kamerakalibrierung bestimmt wurden, kann das Verfahren 400 zu einem allgemeineren Verifizieren von Kalibrierinformationen verwendet werden, die aus irgendeinem Kalibriervorgang ermittelt wurden, der für ein Roboterbetriebssystem ausgeführt wurde. 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, das jeweils das Robotersteuersystem 110 in Kommunikation mit der Kamera 570 und einen Roboter 550 umfasst. 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 Roboterarm (der in den 5A und 5B mit 553 bezeichnet ist) umfassen, der relativ zu der Basis 552 beweglich ist. Der Roboterarm umfasst ein oder mehrere Glieder, wie beispielsweise die Glieder 554A bis Glied 554E. Die Glieder 554A-554E können auch Beispiele für Armteile des Roboterarms 553 sein, die beweglich aneinander befestigt sind. 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 dazu 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 dazu 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 werden, wie in und dargestellt, und das Robotersteuerungssystem 110 kann den Roboter 550 so steuern, dass das fünfte Glied 554E die erste Roboterhand 555 freigibt und das fünfte Glied 554E an der zweiten Roboterhand 557 befestigt. 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 an der ersten Roboterhand 555 und der dritten Roboterhand 559 angeordnet ist, während 5B das Verifizierungssymbol 530, das an dem Glied 554E angeordnet ist, 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 auch 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 er 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 am 7. März 2019 eingereichten US-Anmeldung Nr. 16/295,940 (Aktenzeichen MJ0021US1) mit dem Titel „METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION FOR ROBOT CONTROL“ näher erörtert, deren gesamter Inhalt hierin durch Bezugnahme erfasst wird.
  • Unter erneuter Bezugnahme auf 4A kann das Verfahren 400 ferner den Schritt 403 umfassen, in dem die Steuerschaltung 111 den Roboterarm derart steuert, dass er 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, indem ein erster Bewegungsbefehl an die Kommunikationsschnittstelle 113 des Robotersteuersystems 110 ausgegeben wird. Die Kommunikationsschnittstelle 113 kann dazu konfiguriert sein, den Bewegungsbefehl an den Roboter zu kommunizieren, um den Roboterarm dazu 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 Durchführung 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 erörtert 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 er das Verifizierungssymbol 530 an einen oder mehrere Referenzorte innerhalb des Kamerasichtfelds 510 bewegt. 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 Durchführung 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 Oberflä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 dazu 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 den 6A, 6B, 6C und 6D veranschaulicht, 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 Kugeloberfläche 621 einer ersten imaginären Kugel 620 angeordnet sein, wo sich die erste Kugeloberfläche 621 innerhalb des Kamerasichtfelds 510 befindet. Die Referenzorte 610C, 610D und 610E können auf einer zweiten Kugeloberfläche 631 einer zweiten imaginären Kugel 630 angeordnet sein, wo sich die zweite Kugeloberfläche 631 innerhalb des Kamerasichtfelds 510 befindet. Die Referenzorte 610F, 610G, 610H und 6101 können auf einer dritten Kugeloberfläche 641 einer dritten imaginären Kugel 640 angeordnet sein, wo sich die dritte Kugeloberfläche 641 innerhalb des Kamerasichtfelds 510 befindet. Wie in den 6A und 6B veranschaulicht, sind die erste, zweite und dritte Kugeloberfläche 621, 631 und 641 in Bezug auf die Kamera 570 konkav. Obwohl die Beispiele in den 6A und 6B drei Kugeloberflächen zeigen, die auf drei Kugeln basieren, kann eine Anzahl verschiedener Kugeloberflä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 den 6A bis 6D veranschaulicht, kann das Robotersteuersystem 110, wenn das Verifizierungssymbol 530 an einen Referenzort bewegt wird, den Roboterarm 553 des Roboters 550 (z. B. über einen Bewegungsbefehl) derart steuern, dass das Verifizierungssymbol 530 tangential zur Kugeloberfläche positioniert wird, auf welcher der Referenzort angeordnet ist. Die 6A und 6B veranschaulichen beispielsweise das Verifizierungssymbol 530, welches die zweite Kugeloberfläche 631 an dem Referenzort 610D tangiert, während die 6C und 6D das Verifizierungssymbol 530 veranschaulichen, welches die zweite Kugeloberfläche 631 an dem Referenzort 610C tangiert. Insbesondere kann das Verifizierungssymbol 530 auf einer ebenen Fläche angeordnet sein (z. B. auf einem Aufkleber) und die ebene Fläche des Verifizierungssymbols 530 kann an dem Referenzort 610D in den 6A und 6B die zweite Kugeloberfläche 631 tangieren und an dem Referenzort 610C in den 6C und 6D die zweite Kugeloberfläche 631 tangieren. Bei einer Ausführungsform kann sich der Roboterarm 553 in den 6A und 6B in einer ersten Pose und in den 6C und 6D in einer zweiten Pose befinden. Eine Pose des Roboterarms 553 kann sich z. B. auf eine Form oder allgemeiner auf eine Geometrie beziehen, die durch Glieder oder andere Armteile des Roboterarms 553 gebildet wird. Die Pose eines Roboterarms 553 kann sich beispielsweise auf eine bestimmte Permutation von Winkeln oder Abständen beziehen, um die sich Glieder des Roboterarms 553 relativ zu vorhergehenden Gliedern des Roboterarms 553 gedreht oder translatiert (z. B. ausgefahren oder eingefahren) haben. Als Beispiel kann die in 6A dargestellte erste Pose einer ersten Permutation von Winkeln entsprechen, die zwischen aufeinanderfolgenden Gliedern der Reihe von Gliedern des Roboterarms 553 gebildet ist, während die in 6C dargestellte zweite Pose einer zweiten Permutation von Winkeln zwischen aufeinanderfolgenden Gliedern der Reihe von Gliedern des Roboterarms 553 entsprechen kann. In einem solchen Beispiel kann der Referenzort 610D für das Verifizierungssymbol 630 mit der ersten Pose für den Roboterarm 553, wie sie in 6A veranschaulicht ist, verbunden sein, während der Referenzort 610C für das Verifizierungssymbol 630 mit der zweiten Pose für den Roboterarm 553, wie sie in 6C dargestellt ist, verbunden sein kann.
  • Bei einer Ausführungsform ist die Steuerschaltung 111 dazu konfiguriert, den Roboterarm derart zu steuern, dass er das Verifizierungssymbol (z. B. 530) derart bewegt, dass es direkt der Kamera zugewandt ist, wenn das Verifizierungssymbol an einen Referenzort bewegt wird. Beispielsweise kann, wie in 6A veranschaulicht, das Robotersteuersystem 110 den Roboterarm 553 des Roboters 550 derart steuern, dass er das Verifizierungssymbol 530 derart zu bewegt, 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 eine Kugeloberfläche im Sichtfeld der Kamera 510 tangiert. 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 dazu 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 Referenzbilds das Verifizierungssymbol 530 oder das Kalibriermuster 527 ist, durch Bestimmen, ob der Teil des Referenzbilds 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 ( u s y m b o l o u t e r , v s y m b o l o u t e r )
    Figure DE102020119453A1_0001
    und ein Zentrum der zweiten Form 537 bei einer Koordinate ( u s y m b o l i n n e r , v s y m b o l i n n e r )
    Figure DE102020119453A1_0002
    befindet, können die Koordinate ( u s y m b o l o u t e r , v s y m b o l o u t e r )
    Figure DE102020119453A1_0003
    und die Koordinate ( u s y m b o l i n n e r , v s y m b o l i n n e r )
    Figure DE102020119453A1_0004
    im Wesentlichen gleich sein.
  • Unter erneuter 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 Referenzbilds 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 dazu 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 dazu 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 dazu 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 ( u r e f _ N o u t e r , v r e f _ N o u t e r )
    Figure DE102020119453A1_0005
    eines Zentrums der ersten Form 735 (d. h. eine Mittenkoordinate der ersten Form 735), die im Referenzbild 710 gezeigt ist, und eine zweite Koordinate ( u r e f _ N i n n e r , v r e f _ N i n n e r )
    Figure DE102020119453A1_0006
    eines Zentrums der zweiten Form 737 (d. h. eine Mittenkoordinate der zweiten Form 737), die im Referenzbild 710 gezeigt ist, bestimmen. Um die Referenzbildkoordinate (uref_N, vref_N) 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 ( u r e f _ N o u t e r , v r e f _ N o u t e r )
    Figure DE102020119453A1_0007
    und der zweiten Koordinate (uref ( u r e f _ N i n n e r , v r e f _ N i n n e r )
    Figure DE102020119453A1_0008
    im Referenzbild 710 wie folgt berechnen: ( u r e f _ N , v r e f _ N ) = ( u r e f _ N o u t e r + u r e f _ N i n n e r 2 , v r e f _ N o u t e r + v r e f _ N i n n e r 2 )
    Figure DE102020119453A1_0009
  • 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 eine 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 6101, 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 diesem Ort 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 derart, dass er einen Roboterbetrieb ausführt, 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 eine Zeitperiode sein, während der 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 553 erreichbar sein und die Steuerschaltung 111 ist dazu 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 nächstliegenden Objekt auf dem Förderband 573 einen definierten Abstandsschwellenwert überschreitet. In einigen Fällen kann die Steuerschaltung 111 ein Signal empfangen, das angibt, 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 hat, kann er eine Ruhezeit aufweisen, 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 553 derart steuert, dass er das Verifizierungssymbol 530 während der Ruhezeit mindestens zu dem in Schritt 403 verwendeten Referenzort bewegt (der zur Erfassung des Referenzbilds 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 dazu konfiguriert sein, die dritte Bewegung dann an den Roboter zu kommunizieren, um den Roboterarm 553 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 beispielsweise in den 6A und 6B veranschaulicht, kann das Robotersteuersystem 110 während einer Ruhezeit den Roboterarm 553 des Roboters 550 derart steuern, dass er das Verifizierungssymbol 530 an einen der Referenzorte 610A bis 6101 bewegt und ein Bild des Verifizierungssymbols 530 an dem Ort als ein Verifizierungsbild erfasst. Wenn die Ruhezeit noch nicht abgelaufen ist, oder insbesondere, wenn eine ausreichende Menge Zeit in der Ruhezeit verbleibt, kann das Robotersteuersystem 110 den Roboterarm 553 des Roboters 550 derart steuern, dass er das Verifizierungssymbol 530 an einen anderen der Referenzorte 610A bis 6101 bewegt und ein Bild des Verifizierungssymbols 530 an diesem anderen Ort als ein weiteres Verifizierungsbild erfasst. Wenn die Ruhezeit endet, kann das Robotersteuersystem 110 das Erfassen von Verifizierungsbildern beenden. Daher kann das Robotersteuersystem 110 während jeder Ruhezeit den Roboterarm 553 des Roboters 550 derart steuern, dass er das Verifizierungssymbol 530 an einen oder mehrere der Referenzorte 610A bis 6101 bewegt und an jedem des einen oder der mehreren Referenzorte 610A bis 6101 ein Verifizierungsbild erfasst.
  • 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) an mehrere Referenzorte (z. B. 610A bis 6101) 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 Referenzorte 610A bis 6101 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 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 dazu konfiguriert sein, eine Mittenkoordinate ( u v e r i f y _ N o u t e r , v v e r i f y _ N o u t e r )
    Figure DE102020119453A1_0010
    der ersten Form 785, die im Verifizierungsabschnitt 780 des Verifizierungsbilds 760 gezeigt wird, und eine Mittenkoordinate ( u v e r i f y _ N i n n e r , v v e r i f y _ N i n n e r )
    Figure DE102020119453A1_0011
    der zweiten Form 787, die im Verifizierungsabschnitt 780 des Verifizierungsbilds 760 gezeigt wird, zu bestimmen. Das Robotersteuersystem 110 kann ferner die Verifizierungsbildkoordinate (uverify_N, vverify_N) 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: ( u v e r i f y _ N , v v e r i f y _ N ) = ( u v e r i f y _ N o u t e r + u v e r i f y _ N i n n e r 2 , v v e r i f y _ N o u t e r + v v e r i f y _ N i n n e r 2 )
    Figure DE102020119453A1_0012
  • 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 verbunden 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 (uref_N, vref_N) und die Verifizierungsbildkoordinate am Referenzort N als (uverify_N, vverify_N) ausgedrückt wird, kann eine Abweichung (z. B. Abstand) am Referenzort N beispielsweise als ( u r e f _ N u v e r i f y _ N ) 2 + ( v r e f _ N v v e r i f y _ N ) 2 .
    Figure DE102020119453A1_0013
    ausgedrückt werden.
  • Wie vorstehend beschrieben, kann bei einem Aspekt, bei dem der eine oder die mehreren Referenzorte mehrere Referenzorte sind, die Steuerschaltung 111 dazu 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 dazu konfiguriert sein, die Kamera derart zu steuern, dass sie alle der mehreren Verifizierungsbilder in einer Ruhezeit erfasst, und/oder sie kann dazu 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. A b w e i c h u n g s p a r a m e t e r w e r t = N = 1 M ( u r e f _ N u v e r i f y _ N ) 2 + ( v r e f _ N v v e r i f y _ N ) 2 . M
    Figure DE102020119453A1_0014
  • 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 erneuter 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 Fehlermenge 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 angibt, 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, dazu 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 Fehlermenge fortgesetzt werden kann.
  • Bei einer Ausführungsform kann die Steuerschaltung 111 dazu 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 dazu 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. Während die nachfolgenden Beispiele das Verifizieren der Kamerakalibrierung beschreiben, können sie allgemeiner auf das Verifizieren jeder Art von Kalibriervorgang Anwendung finden, die für ein Roboterbetriebssystem ausgeführt wird. 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-6101) 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 bei Schritt 917 eine zweite Kamerakalibrierung ausführen. 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.
  • Wie vorstehend angegeben, beinhaltet ein Aspekt der vorliegenden Offenbarung das Empfangen eines Referenzbilds (z. B. Referenzbild 710 von 7A) und eines Verifizierungsbilds (z. B. Verifizierungsbild 760 von 7B), die beide ein gemeinsames Verifizierungssymbol (z. B. das Verifizierungssymbol 530 der 6A bis 6D) erfassen oder anderweitig darstellen, das an einem physischen Ort an einem Roboterarm wie dem Roboterarm 553 des Roboters 550 der 6A bis 6D angeordnet ist. Bei einer Ausführungsform kann das Referenzbild (z. B. 710) zu einem ersten Zeitpunkt, wie z. B. einem früheren Zeitpunkt, erzeugt werden, während das Verifizierungsbild (z. B. 760) z. B. ein neues Bild sein kann, das zu einem zweiten Zeitpunkt, wie z. B. einem späteren Zeitpunkt, erzeugt wird. In einigen Fällen kann das Referenzbild basierend auf einem oder mehreren Befehlen (auch als ein oder mehrere Befehle bezeichnet) erzeugt werden, die von einem Computersystem, wie z. B. dem Robotersteuersystem 110 von 1C, erzeugt werden. In einigen Fällen können der eine oder die mehreren Befehle einen Bewegungsbefehl und/oder einen Kamerabefehl umfassen. Der Bewegungsbefehl kann dazu dienen, den Roboterarm dazu zu veranlassen, dass er das Verifizierungssymbol zu einem Referenzort bewegt. Der Bewegungsbefehl kann beispielsweise bewirken, dass der Roboterarm eine bestimmte Pose annimmt, was darin resultiert, dass das Verifizierungssymbol an einen Referenzort bewegt wird, der mit der bestimmten Pose des Roboterarms verbunden ist. Der Kamerabefehl kann dazu dienen, eine Kamera, wie z. B. die Kamera 570 der 6A bis 6D, zu veranlassen, das Referenzbild zu erzeugen, während sich der Roboterarm in der bestimmten Pose befindet, und/oder während sich das Verifizierungssymbol an dem mit der bestimmten Pose verbundenen Referenzort befindet. Das Referenzbild kann daher dem Referenzort entsprechen. In ähnlicher Weise kann das Verifizierungsbild basierend auf einem oder mehreren Befehlen erzeugt werden, wie z. B. einem Bewegungsbefehl und/oder Kamerabefehl, die bzw. der gleich oder ähnlich dem vorstehend in Bezug auf das Referenzbild beschriebenen Bewegungsbefehl und/oder Kamerabefehl sein können bzw. kann. Der eine oder die mehreren Befehle für das Verifizierungsbild können von dem gleichen Computersystem, das die Erzeugung des Referenzbilds bewirkt hat, wie z. B. das Robotersteuersystem 110, oder von einem anderen Computersystem erzeugt werden. In diesem Beispiel können der eine oder die mehreren Befehle zur Erzeugung des Verifizierungsbilds bewirken, dass das Verifizierungssymbol wieder an den Referenzort bewegt wird. Der eine oder die mehreren Befehle können beispielsweise bewirken, dass der Roboterarm wieder die bestimmte Pose einnimmt, die mit dem Referenzort verbunden ist.
  • Im vorstehenden Beispiel kann das Computersystem, welches das Verifizierungsbild empfängt, dieses mit dem Referenzbild vergleichen, um zu bestimmen, ob die Kalibrierinformationen immer noch ausreichend genau sind. Die Kalibrierinformationen können durch einen Kalibriervorgang bestimmt werden, der für ein Roboterbetriebssystem ausgeführt wird. Der Kalibriervorgang, der auch als eine Systemkalibrierung bezeichnet werden kann, kann eine Kamerakalibrierung, eine Roboterkalibrierung oder jede andere Kalibrierung zur Steuerung einer oder mehrerer Komponenten des Roboterbetriebssystems umfassen. Bei einer Ausführungsform können die Kalibrierinformationen Kamerakalibrierinformationen, Roboterkalibrierinformationen oder andere Kalibrierinformationen umfassen. Der vorstehend beschriebene Vergleich kann z. B. das Bestimmen eines Abweichungsparameterwerts beinhalten, der auf einem Unterschied zwischen dem Ort, an dem das Verifizierungssymbol in dem Referenzbild erscheint, und dem Ort, an dem das Verifizierungssymbol in dem Verifizierungsbild erscheint, basiert. Wenn der Abweichungsparameterwert zu groß ist, wie z. B., wenn er einen definierten Abweichungsschwellenwert (z. B. einen vordefinierten Abweichungsschwellenwert) überschreitet, dann kann das Computersystem bestimmen, dass die Kalibrierinformationen nicht mehr ausreichend genau sind. In einer solchen Situation können die Kalibrierinformationen als reflektierend oder eine Fehlkalibrierung oder Fehlausrichtung umfassend bezeichnet werden. Wenn die Kamerakalibrierinformationen die Fehlkalibrierung oder Fehlausrichtung umfassen, beschreiben sie möglicherweise nicht mehr ausreichend genau eine inhärente Eigenschaft der Kamera (z. B. eine Projektionseigenschaft oder eine Linsenverzerrungseigenschaft) und/oder beschreiben nicht mehr ausreichend genau eine Beziehung zwischen der Kamera und ihrer äußeren Umgebung (z. B. eine räumliche Beziehung zwischen der Kamera und einer Basis des Roboters). Wenn die Roboterkalibrierinformationen eine Fehlkalibrierung oder Fehlausrichtung umfassen, sind sie möglicherweise für die genaue Bewegung eines Roboterarms oder einer anderen Komponente des Roboters zu einem gewünschten Ort und/oder einer Ausrichtung nicht mehr zuverlässig.
  • Bei einer Ausführungsform kann das vorstehend beschriebene Verfahren des Vergleichens des Referenzbilds und des Verifizierungsbilds mehrere Verifizierungssymbole beinhalten. Die 10A bis 10C stellen beispielsweise eine Gruppe von mehreren Verifizierungssymbolen 530A bis 530C dar. Insbesondere kann die Gruppe von Verifizierungssymbolen 530A bis 530C Teil eines Roboterbetriebssystems 500A sein, das eine Ausführungsform des Roboterbetriebssystems 500 sein kann. Das Roboterbetriebssystem 500A kann einen Roboter 550A (der eine Ausführungsform des Roboters 550 sein kann), eine Kamera 570 mit einem Kamerasichtfeld 510 und ein Computersystem, wie z. B. die Robotersteuerung 110, umfassen. Wie der Roboter 550 weist auch der Roboter 550A einen Roboterarm 553 auf, der mehrere Armteile umfasst, die beweglich aneinander befestigt sind. Die mehreren Armteile können z. B. die Glieder 554A bis 554E und einen Roboterendeffektor, wie z. B. eine Roboterhand 555, die an dem Glied 554E befestigt ist, umfassen. In einigen Fällen, wie es in den 10A bis 10C dargestellt ist, können die mehreren Armteile von einer Basis 552 des Roboters 550A bis zu dem Roboterendeffektor (z. B. Roboterhand 555) verbunden oder anderweitig in Reihe angeordnet sein. In solchen Fällen kann die Reihe von Armteilen eine kinematische Kette bilden, in der die Bewegung eines bestimmten Armteils in der Reihe eine Bewegung einiger oder aller Armteile nach diesem bestimmten Armteil bewirken kann. Die Armteile nach dem bestimmten Armteil können sich auf Armteile beziehen, die dem bestimmten Armteil in der Reihe von Armteilen folgen. Die Glieder 554B bis 554E und die Roboterhand 555 können sich beispielsweise nach dem Glied 554A befinden. Das Glied 554A kann sich mit anderen Worten vor den Gliedern 554B bis 554E und vor der Roboterhand 555 befinden. In diesem Beispiel kann jeder Armteil in der Reihe der Armteile oder in einer Untergruppe davon drehbar, ausfahrbar, einfahrbar oder relativ zu einem entsprechenden Armteil, der dem Armteil in der Reihe der Armteile unmittelbar vorausgeht, anderweitig beweglich sein. Das Glied 554C kann beispielsweise relativ zu dem Glied 554B drehbar sein, wobei das Glied 554B ein Armteil sein kann, der dem Glied 554C in der in 10A dargestellten Reihe von Armteilen unmittelbar vorausgeht. In dem Beispiel der 10A bis 10C können die Glieder 554A bis 554E und die Roboterhand 555 über die Gelenke 556A bis 556D beweglich aneinander befestigt sein.
  • Wie vorstehend beschrieben, kann ein Roboterarm (z. B. 553) in verschiedene Posen bewegt werden, wobei sich eine Pose auf eine Form oder allgemeiner auf eine Geometrie beziehen kann, die durch Armteile (z. B. Glieder) des Roboterarms gebildet wird. Die 10A bis 10C stellen beispielsweise drei verschiedene Posen für den Roboterarm 553 dar. Bei einer Ausführungsform kann der Roboter 550A in den 10A bis 10C einen oder mehrere Aktoren (z. B. Motoren) umfassen, die dazu konfiguriert sind, die Glieder 554A bis 554E und die Roboterhand 555 relativ zueinander zu drehen, zu translatieren (z. B. aus- oder einzufahren) oder anderweitig zu bewegen. Bei einer solchen Ausführungsform kann jede der Posen in den 10A bis 10C mit einer bestimmten Permutation einer Bewegungsausgabe durch einen oder mehrere Aktoren verbunden sein. Die Permutation kann z. B. Winkelwerte beschreiben, um die verschiedene Armteile des Roboterarms 553 relativ zu den entsprechenden Armteilen unmittelbar vor den verschiedenen Armteilen gedreht wurden, und/oder Entfernungen, um welche die verschiedenen Armteile relativ zu den entsprechenden Armteilen unmittelbar vor den verschiedenen Armteilen translatiert wurden. Als Beispiel können die Posen in den 10A bis 10C mit verschiedenen Permutationen von fünf Winkelwerten verbunden sein, die jeweils eine Drehrichtung und einen Drehbetrag des Gliedes 554B relativ zu dem Glied 554A, eine Drehrichtung und einen Drehbetrag des Gliedes 554C relativ zu dem Glied 554B, eine Drehrichtung und einen Drehbetrag des Gliedes 554D relativ zu dem Glied 554C, eine Drehrichtung und einen Drehbetrag des Gliedes 554E relativ zu dem Glied 554D und eine Richtung und eine Drehung der Roboterhand 555 relativ zu dem Glied 554E beschreiben.
  • Wie vorstehend angegeben, stellen die 10A bis 10C eine Gruppe von mehreren Verifizierungssymbolen 530A bis 530C dar, die an einem oder mehreren Armteilen des Roboterarms 553 angeordnet sind. Insbesondere kann das Verifizierungssymbol 530A an dem Glied 554B angeordnet sein, während das Verifizierungssymbol 530B an dem Glied 554C und das Verifizierungssymbol 530C an der Roboterhand 555 angeordnet sein kann. In einigen Fällen kann ein Roboter (z. B. Roboter 550) irgendeine Anzahl an Verifizierungssymbolen aufweisen und diese können an dem Roboter in irgendeiner Weise angeordnet sein. Die Verifizierungssymbole 530A bis 530C können beispielsweise zufällig an entsprechenden Orten an dem Roboter 550A angeordnet sein. In einigen Fällen kann die Anzahl und relative Platzierung der Verifizierungssymbole (z. B. 530A bis 530C) einer oder mehreren definierten Einschränkungen unterliegen. Ihre relative Platzierung kann beispielsweise einer definierten Einschränkung unterliegen, die erfordert, dass benachbarte Verifizierungssymbole (z. B. 530B und 530C) durch einen definierten Mindestabstand (auch als Symbolabstand bezeichnet), wie z. B. einen definierten Mindestabstand von 5 cm, voneinander getrennt sind. Eine solche Einschränkung kann eine Wahrscheinlichkeit reduzieren, dass ein Computersystem (z. B. die Robotersteuerung 110) ein bestimmtes Verifizierungssymbol (z. B. 530B) mit einem benachbarten Verifizierungssymbol (z. B. 530C) verwechselt.
  • Die 11A bis 11C stellen ein weiteres Beispiel dar, das eine Gruppe von mehreren Verifizierungssymbolen 1130A bis 1130C beinhaltet. Insbesondere können die Verifizierungssymbole 1130A bis 1130C Teil eines Roboterbetriebssystems 1100 sein, das einen Roboter 1150, eine Kamera 1170 mit einem Kamerasichtfeld 1110 und ein Computersystem, wie z. B. die Robotersteuerung 110, umfasst. Das Roboterbetriebssystem 1100 und die Kamera 1170 können z. B. jeweils entsprechend eine Ausführungsform des Roboterbetriebssystems 500 und der Kamera 570 sein. Der Roboter 1150 kann einen Roboterarm 1153 aufweisen, der mehrere Armteile umfasst, wie z. B. die Glieder 1154A bis 1154E und eine Roboterhand 1155 (oder einen anderen Roboterendeffektor). Die mehreren Armteile können beweglich z. B. über die Gelenke 1156A bis 1156D aneinander befestigt sein. 11A veranschaulicht den Roboterarm 1153 in einer ersten Pose befindlich, während 11B den Roboterarm 1153 in einer zweiten Pose befindlich zeigt. Wie in den 10A bis 10C können die mehreren Armteile von einer Basis 1152 des Roboters 1150 zu der Roboterhand 1155 verbunden oder anderweitig in Reihe angeordnet sein. Die Reihe von Armteilen kann eine kinematische Kette bilden, in der sich die Bewegung eines Armteils in der Reihe auf nachgeschaltete Armteile in der Kette ausbreiten kann. Wie in 11A dargestellt, kann das Verifizierungssymbol 1130A an dem Glied 1154C angeordnet sein, während das Verifizierungssymbol 1130B an dem Glied 1154D und das Verifizierungssymbol 1130C an der Roboterhand 1155 angeordnet sein kann.
  • Bei einer Ausführungsform können ein oder mehrere Verifizierungssymbole aus der Gruppe von Verifizierungssymbolen (z. B. 530A bis 530C oder 1130A bis 1130C) eine Kreisform aufweisen. Jedes der Verifizierungssymbole 530A bis 530C der 10A bis 10C oder 1130A bis 1130C der 11A bis 11C kann beispielsweise ein Ringmuster oder insbesondere ein kreisförmiger Ring sein, wie es vorstehend in Bezug auf 5C beschrieben wurde. In dem Beispiel von 5C kann ein Ringmuster konzentrische kreisförmige Regionen (z. B. 531 und 533) oder konzentrische Kreise (z. B. 535 und 537) aufweisen. Die konzentrischen kreisförmigen Regionen oder konzentrischen Kreise können z. B. eine innere kreisförmige Region und eine äußere kreisförmige Region oder einen inneren Kreis und einen äußeren Kreis umfassen. In dem in 11C dargestellten Beispiel kann das Verifizierungssymbol 1130A beispielsweise als ein kreisförmiger Ring mit einem Innenkreis mit Radius r1,1130A und einem Außenkreis mit Radius r2,1130A geformt sein. In diesem Beispiel kann das Verifizierungssymbol 1130B ein weiterer kreisförmiger Ring mit einem Innenkreis mit Radius r1,1130B und einem Außenkreis mit Radius r2,1130B sein. Das Verifizierungssymbol 1130C kann auch als ein Kreis mit einem Innenkreis mit Radius r1,1130C und einem Außenkreis mit Radius r2,1130C geformt sein.
  • Bei einer Ausführungsform kann die Gruppe von Verifizierungssymbolen (z. B. 530A bis 530C oder 1130A bis 1130C) als entsprechende kreisförmige Ringe mit unterschiedlichen entsprechenden Größen geformt sein. Wie in 11C dargestellt, können die Verifizierungssymbole 1130A bis 1130C beispielsweise unterschiedliche Radien für ihre entsprechenden äußeren kreisförmigen Regionen oder äußeren Kreise aufweisen. Das heißt, sie können r2,1130A, r2,1130B und r2,1130C aufweisen, die sich alle voneinander unterscheiden. Bei einer Ausführungsform können die kreisförmigen Ringe für die Verifizierungssymbole 1130A bis 1130C unterschiedliche Verhältnisse zwischen den entsprechenden Radien ihrer inneren kreisförmigen Regionen oder inneren Kreise und den entsprechenden Radien ihrer äußeren kreisförmigen Regionen oder äußeren Kreise aufweisen. Das heißt, das Verhältnis r2,1130A/r1,1130A, das Verhältnis r2,1130B/r1,1130B und das Verhältnis r2,1130C/r1,1130C können sich alle voneinander unterscheiden. Wie nachstehend ausführlicher beschrieben, kann ein Computersystem (z. B. das Robotersteuersystem 110) derart konfiguriert sein, dass es das Verifizierungssymbol 1130A/1130B/1130C basierend auf der Größe eines entsprechenden kreisförmigen Rings, der das Verifizierungssymbol 1130A/1130B/1130C bildet, und/oder basierend auf einem entsprechenden Verhältnis zwischen einem Radius eines Innenkreises des kreisförmigen Rings und einem Radius eines Außenkreises des kreisförmigen Rings identifiziert.
  • Bei einer Ausführungsform können einige oder alle der Verifizierungssymbole (z. B. 530A bis 530C der 10A bis 10C oder 1130A bis 1130C der 11A bis 11B) an einem Roboterarm (z. B. 533 oder 1130) dauerhaft angebracht oder anderweitig daran angeordnet sein. Eine solche Ausführungsform kann ein Kalibriermuster (z. B. 520 der 5A und 5B) beinhalten, das zur Ausführung einer Kamerakalibrierung verwendet wird und eine Größe aufweist, die groß genug ist, um ein Muster aufzunehmen, das ausreichend komplex ist, und/oder groß genug ist, um eine ausreichende Anzahl an Musterelementen aufzunehmen, um ein ausreichend genaues Ergebnis für eine Kamerakalibrierung zu liefern. Eine solch große Größe für das Kalibriermuster (z. B. 520) kann es jedoch zu groß machen, um ein dauerhafter oder anderweitig beständiger Teil des Roboterarms zu sein, da die große Größe des Kalibriermusters (z. B. 520) bewirken kann, dass es einen normalen Roboterbetrieb stört. In solch einem Beispiel kann sich das Kalibriermuster 520 z. B. von dem Roboterarm (z. B. 553) lösen, bevor ein normaler Roboterbetrieb wieder aufgenommen wird. Bei dieser Ausführungsform können einige oder alle Verifizierungssymbole (z. B. 530A bis 530C oder 1130A bis 1130C) weniger komplex und/oder kleiner als das Kalibriermuster (z. B. 520) sein. Die kleinere Größe der Verifizierungssymbole kann ermöglichen, dass sie während eines normalen Roboterbetriebs an dem Roboterarm verbleiben (z. B. 553 oder 1153), während sie keine oder nur eine minimale Beeinflussung des normalen Roboterbetriebs darstellen. Daher können in einem solchen Beispiel einige oder alle Verifizierungssymbole (z. B. 530A bis 530C oder 1130A bis 1130C) in einigen Fällen dauerhaft oder anderweitig andauernd an einem Roboterarm (z. B. 533 oder 1133) angeordnet sein. Eine solche Anordnung bietet den Vorteil, dass eine Robotersteuerung oder ein anderes Computersystem in der Lage ist, eine Kalibrierungsverifizierung häufiger und/oder schneller auszuführen und zu beurteilen, ob eine aktualisierte Kamerakalibrierung bestimmt werden muss.
  • Die 12A und 12B veranschaulichen ein Verfahren 1200 zur Verwendung mehrerer Verifizierungssymbole zum Verifizieren von Kalibrierinformationen, wie z. B. Kamerakalibrierinformationen. Bei einer Ausführungsform kann das Verfahren 1200 durch ein Computersystem, wie z. B. das Robotersteuersystem 110 der 10A bis 10C oder der 11A bis 11B, oder insbesondere durch eine Steuerschaltung des Computersystems, wie z. B. die Steuerschaltung 111 des Robotersteuersystems 110 in den 1C, ausgeführt werden. Wie in 1C dargestellt, kann das Computersystem eine Kommunikationsschnittstelle 113 umfassen, die dazu konfiguriert ist, mit einer Kamera mit einem Kamerasichtfeld, wie z. B. der Kamera 570 von 10A oder der Kamera 1170 von 11A, die entsprechend das Kamerasichtfeld 510 oder 1110 aufweist, zu kommunizieren. Die Kommunikationsschnittstelle 113 kann ferner dazu konfiguriert sein, mit einem Roboter zu kommunizieren, wie z. B. dem Roboter 550A der 10A bis 10C oder dem Roboter 1150 der 11A bis 11C. Wie vorstehend angegeben, kann der Roboter 550A/1150 einen Roboterarm 553/1153 umfassen, der mehrere beweglich aneinander befestigte Armteile aufweist, und er kann eine Gruppe von Verifizierungssymbolen umfassen, die an den entsprechenden Armteilen der mehreren Armteile angeordnet sind. In dem Beispiel der 10A bis 10C kann die Gruppe von Verifizierungssymbolen die Verifizierungssymbole 530A bis 530C umfassen, die entsprechend an dem Glied 554B, dem Glied 554C und der Roboterhand 555 angeordnet sind. In dem Beispiel von 11A bis 1 1C kann die Gruppe von Verifizierungssymbolen die Verifizierungssymbole 1130A bis 1130C umfassen, die entsprechend an dem Glied 1154C, dem Glied 1154D und der Roboterhand 1155 angeordnet sein können.
  • Bei einer Ausführungsform kann das Verfahren 1200 einen Schritt 1201 umfassen, in dem die Steuerschaltung 111 des Robotersteuersystems oder eines anderen Computersystems einen Bewegungsbefehl zum Steuern der Bewegung des Roboterarms (z. B. des Roboterarms 533/1153) ausgibt, um einen Roboterbetrieb auszuführen. Der Bewegungsbefehl kann z. B. auf Kalibrierinformationen basieren. Die Kalibrierinformationen, wie z. B. Kamerakalibrierinformationen, können von einem ersten Kalibriervorgang, wie z. B. einer ersten Kamerakalibrierung, bestimmt werden. In einigen Fällen kann Schritt 1201 gleich oder ähnlich wie Schritt 409 des Verfahrens 400 sein, bei dem die Steuerschaltung 111 die Bewegung des Roboterarms zum Ausführen eines Roboterbetriebs steuert. Der Roboterbetrieb kann beispielsweise das Aufnehmen von Kisten oder anderen Gegenständen in einem Warenlager beinhalten. In diesem Beispiel kann die Steuerschaltung 111 dazu konfiguriert sein, basierend auf einem von der Kamera (z. B. Kamera 570 der 10A bis 10C oder Kamera 1170 der 11A bis 11B) erzeugten Bildes der Kisten und basierend auf den Kalibrierinformationen eine räumliche Beziehung zwischen der Kamera und den Kisten und/oder eine räumliche Beziehung zwischen dem Roboter (z. B. Roboter 550A 1150) und den Kisten zu bestimmen. Bei einer Ausführungsform kann das Verfahren 1200 einen Schritt umfassen, in dem die Steuerschaltung 111 den ersten Kalibriervorgang ausführt, um die Kalibrierinformationen zu bestimmen. Ein solcher Schritt zum Ausführen des ersten Kalibriervorgangs kann ähnlich wie Schritt 401 von Verfahren 400 von 4A sein und kann vor Schritt 1201 ausgeführt werden. Als Beispiel kann der erste Kalibriervorgang eine Kamerakalibrierung sein, die das Bestimmen einer Abschätzung für einen Kamerakalibrierparameter basierend auf von der Kamera erzeugten Kalibrierbildern beinhaltet.
  • Bei einer Ausführungsform kann das Verfahren 1200 einen Schritt 1203 umfassen, in dem die Steuerschaltung 111 oder eine andere Komponente des Computersystems eine Gruppe von Referenzbildkoordinaten bestimmt. Die Gruppe von Referenzbildkoordinatenkann z. B. entsprechende Koordinaten sein, an denen die Gruppe von Verifizierungssymbolen (z. B. 530A bis 530C/1130A bis 1130C) in einem Referenzbild erscheint, wobei das Referenzbild ein Bild zum Darstellen der Gruppe von Verifizierungssymbolen (z. B. 530A bis 530C/1130A bis 1130C) sein kann. Bei einer Ausführungsform kann die Gruppe von Referenzbildkoordinaten zum Verifizieren der Kalibrierinformationen verwendet werden.
  • Zum Beispiel stellt 13A ein Referenzbild 1120 dar, das die Gruppe von Verifizierungssymbolen 1130A bis 1130C von 11A darstellt. Im Beispiel von 13A kann die Gruppe von Referenzbildkoordinaten eine erste Referenzbildkoordinate, eine zweite Referenzbildkoordinate und eine dritte Referenzbildkoordinate umfassen. In einem solchen Beispiel kann die erste Referenzbildkoordinate identifizieren, wo das Verifizierungssymbol 1130A in dem Referenzbild 1120 erscheint, während die zweite Referenzbildkoordinate identifizieren kann, wo das Verifizierungssymbol 1130B in dem Referenzbild 1120 erscheint, und die dritte Referenzbildkoordinate angeben kann, wo das Verifizierungssymbol 1130C in dem Referenzbild 1120 erscheint. In einem spezifischeren Beispiel kann jede der ersten Referenzbildkoordinate, der zweiten Referenzbildkoordinate und der dritten Referenzbildkoordinate eine Pixelkoordinate [u v]T sein. Insbesondere stellt 13A die drei Referenzbildkoordinaten für die Verifizierungssymbole 1130A, 1130B und 1130C entsprechend dar als [uref_1 vref_1]T 1130A, [uref_1 vref_1]T 1130B, [uref_1 vref_1]T 1130C. In diesem Beispiel kann sich die Bezeichnung ref_N (z.B. ref 1) auf Koordinaten beziehen, die mit einem Referenzbild verbunden sind, das erzeugt wird, wenn sich der Roboterarm 1153 in einer N-ten Pose befindet, wie z. B. einer ersten Pose (wenn N=1). Wie nachstehend ausführlicher beschrieben, kann das Referenzbild 1120 von 13A einer ersten Pose entsprechen oder allgemeiner mit einer ersten Pose verbunden sein, welche die in 11A veranschaulichte beispielhafte Pose des Roboterarms 1153 sein kann. Verschiedene Posen können die Verifizierungssymbole 1130A bis 1130C an verschiedenen Gruppen von entsprechenden Orten im Kamerasichtfeld 1110 platzieren. Die Pose in 11A kann zum Beispiel die Verifizierungssymbole 1130A bis 1130C entsprechend an den 3D-Orten [xref_1 yref_1 zref_1]T 1130A, [xref_1 yref_1 zref_1]T 1130B, [xref_1 yref_1 zref_1]T 1130C platzieren. In einem solchen Fall können diese 3D-Orte [xref_1 yref_1 zref_1]T 1130A, [xref_1 yref_1 zref_1]T 1130B, [xref_1 yref_1 zref_1]T 1130C auf die Pixelkoordinaten [uref_1 vref_1]T 1130A, [uref_1 vref_1]T 1130B, [uref_1 vref_1]T 1130C in dem Referenzbild 1120 projiziert oder anderweitig diesen zugeordnet werden. Bei einer Ausführungsform kann jede der Pixelkoordinaten [uref_1 vref_1]T 1130A, [uref_1 vref_1]T 1130B, [uref_1 vref_1]T 1130C ein Zentrum identifizieren, in dem sein entsprechendes Verifizierungssymbol 1130A/1130B/1130C in dem Referenzbild 1120 erscheint.
  • Bei einer Ausführungsform kann der Schritt 1203 beinhalten, dass die Steuerschaltung 111 das Referenzbild (z. B. 1120) von der Kommunikationsschnittstelle 113 und/oder dem nicht flüchtigen computerlesbaren Medium 115 des Robotersteuersystems 110 oder eines anderen Computersystems empfängt. Das Referenzbild 1120 von 13A kann beispielsweise von der Kamera 1170 erzeugt werden, wenn sich der Roboterarm 1153 in der Pose von 11A befindet. Das Computersystem 110 kann das Referenzbild 1120 von der Kamera 1170 über die Kommunikationsschnittstelle 113 empfangen und das Referenzbild 1120 in dem nicht flüchtigen computerlesbaren Medium 115 speichern. In Schritt 1203 kann die Steuerschaltung 111 in einem Beispiel das Referenzbild 1120 von dem nicht flüchtigen computerlesbaren Medium 115 abrufen oder anderweitig empfangen. Das nicht flüchtige computerlesbare Medium 115 kann auch ein Verifizierungsbild speichern (was nachstehend beschrieben wird), und die Steuerschaltung 111 kann das Verifizierungsbild von dem nicht flüchtigen computerlesbaren Medium 115 empfangen.
  • Bei einer Ausführungsform kann die Steuerschaltung 111 dazu konfiguriert sein, mindestens ein Verifizierungssymbol (z. B. 1130A) aus der Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) in dem Referenzbild (z. B. 1120) basierend auf einem definierten Modell zu identifizieren, das eine Geometrie des Roboterarms (z. B. 1153) beschreibt. Das definierte Modell kann z. B. beschreiben, welche Glieder, Roboterendeffektor oder andere Armteile den Roboterarm bilden, ihre entsprechenden Größen (z. B. Längen) und wie sie verbunden sind, und/oder beschreiben, welche Armteile mindestens ein Verifizierungssymbol (z. B. 1130A) daran aufweisen. Bei einer solchen Ausführungsform kann die Steuerschaltung dazu konfiguriert sein, basierend auf dem Modell eine Region innerhalb des Referenzbilds (z. B. 1120) zu bestimmen, in der das mindestens eine Verifizierungssymbol erwartet wird, und nach dem mindestens einen Verifizierungssymbol (z. B. 1130A) innerhalb der Region des Referenzbilds zu suchen. Bei einer Ausführungsform kann das Modell eine Position eines Verifizierungssymbols (z. B. 1130A) an dem Roboterarm (z. B. 1153) speichern oder allgemeiner beschreiben. Die Position des Verifizierungssymbols (auch als Symbolposition bezeichnet) kann ein ungefährer Ort des Verifizierungssymbols an dem Roboterarm (z. B. 1153) sein.
  • Wenn das Referenzbild (z. B. 1120) beispielsweise zusammen mit einem oder mehreren Parameterwerten eines Bewegungsbefehls gespeichert wird, der verwendet wird, um die mit dem Referenzbild verbundene Pose oder insbesondere die Pose des Roboterarms, die im Referenzbild erscheint, zu erzeugen, können der eine oder die mehreren Parameterwerte und das Modell verwendet werden, um eine Pose für den Roboterarm (z. B. 1153) abzuschätzen, wenn der Roboterarm gemäß dem Bewegungsbefehl bewegt wird. Wie nachstehend ausführlicher beschrieben, können der eine oder die mehreren Parameterwerte bei einer Ausführungsform zu einem oder mehreren Aktorparametern gehören, die zum Steuern eines oder mehrerer Aktoren (z. B. eines oder mehrerer Motoren) verwendet werden, die zur Bewegung des Roboterarms (z. B. 1153) verwendet werden. Die geschätzte Pose kann verwendet werden, um den Ort eines Verifizierungssymbols (z. B. 1130A) an dem Roboterarm (z. B. 1153) abzuschätzen, und der geschätzte Ort kann verwendet werden, um abzuschätzen, wo das Verifizierungssymbol wahrscheinlich in dem Referenzbild (z. B. 1120) erscheint.
  • In den vorstehenden Beispielen kann die Steuerschaltung 111 dazu konfiguriert sein, sich auf eine Region bzw. Regionen eines Referenzbilds (z. B. 1120) zu konzentrieren, in der erwartet wird, dass ein Verifizierungssymbol oder Verifizierungssymbole erscheinen. Eine solche Technik kann es ermöglichen, dass die Steuerschaltung 111 es vermeidet, das gesamte Referenzbild (z. B. 1120) nach Verifizierungssymbolen (z. B. 1130A bis 1130C) zu durchsuchen, und daher die Verifizierungssymbole (z. B. 1130A bis 1130C) in dem Referenzbild (z. B. 1120) schneller identifiziert. Das Modell in den vorstehenden Beispielen kann auch zum Suchen nach den Verifizierungssymbolen in einem Verifizierungsbild (das nachstehend beschrieben wird) verwendet werden.
  • Wie vorstehend angegeben, kann die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) bei einer Ausführungsform als entsprechende kreisförmige Ringe geformt sein. Bei einer solchen Ausführungsform kann die Steuerschaltung 111 dazu konfiguriert sein, ein Verifizierungssymbol (z. B. 1130A) in dem Referenzbild (z. B. 1120) zu erkennen oder anderweitig zu identifizieren, indem sie einen kreisförmigen Ring identifiziert, der das Verifizierungssymbol bildet. Wenn die Gruppe von Verifizierungssymbolen als entsprechende kreisförmige Ringe mit unterschiedlichen Größen geformt ist, wie vorstehend in Bezug auf 11C veranschaulicht, kann die Steuerschaltung 111 dazu konfiguriert sein, ein Verifizierungssymbol (z. B. 1130A) basierend auf einer Größe (z. B. einem Radius r2,1130A) eines entsprechenden kreisförmigen Rings, der das Verifizierungssymbol bildet, zu identifizieren. Wenn in einigen Fällen ein Verifizierungssymbol (z. B. 1130A) als ein kreisförmiger Ring mit mindestens einer ersten kreisförmigen Region oder einem ersten Kreis und einer zweiten kreisförmigen Region oder einem zweiten Kreis geformt ist, kann die Steuerschaltung 111 dazu konfiguriert sein, das Verifizierungssymbol basierend auf einem Verhältnis zwischen einem Radius der ersten kreisförmigen Region oder des ersten Kreises und einem Radius der zweiten kreisförmigen Region oder des zweiten Kreises zu identifizieren. Die Steuerschaltung 111 kann beispielsweise dazu konfiguriert sein, das Verifizierungssymbol 1130A basierend auf dem Identifizieren eines kreisförmigen Rings und dem Bestätigen, dass der Ring das Verhältnis r2,1130A/r1,1130A aufweist, zu identifizieren.
  • Wie vorstehend weiter ausgeführt, kann das Referenzbild (z. B. 1120 von 13A) von Schritt 1203 von der Kamera (z. B. 1170 von 11A) erzeugt werden, wenn sich der Roboterarm (z. B. 1153) in einer ersten Pose befindet, wie z. B. die in 11A dargestellte Pose. Das Referenzbild kann von der Kamera während einer ersten Zeitperiode oder allgemeiner zu einem ersten Zeitpunkt erzeugt werden. Die erste Zeitperiode kann sich auf eine Zeitperiode (z. B. eine Periode von Millisekunden, Sekunden oder Minuten) beziehen, die für die Erzeugung des Referenzbilds verwendet wird oder anderweitig damit verbunden ist. Die erste Zeitperiode kann beispielsweise die Zeit für einen Kamerabetrieb zum Erfassen des Referenzbilds umfassen und in einigen Fällen ferner auch eine Zeit für eine Roboterbewegung, um das Verifizierungssymbol im Kamerasichtfeld zu positionieren. In einigen Fällen kann sich die erste Zeitperiode, in der das Referenzbild erzeugt wird, z. B. Stunden, Tage oder Wochen vor Schritt 1201 und/oder Schritt 1203 befinden. Bei einer Ausführungsform kann das Computersystem oder insbesondere die Steuerschaltung 111, welche die Schritte 1201 und 1203 ausführt, an der Erzeugung des Referenzbilds (z. B. 1120) nicht beteiligt sein. Bei einer Ausführungsform kann das Computersystem oder insbesondere die Steuerschaltung 111, welche die Schritte 1201 und 1203 ausführt, an der Erzeugung des Referenzbilds (z. B. 1120) beteiligt sein. Das Computersystem kann beispielsweise in einem Schritt, der dem Schritt 1201 und/oder 1203 vorausgeht, während der ersten Zeitperiode einen Bewegungsbefehl ausgeben, um zu bewirken, dass sich der Roboterarm (z. B. 1153) in die erste Pose bewegt. In einem solchen Fall kann dieser vorhergehende Schritt Teil des Verfahrens 1200 sein. Die erste Pose kann bewirken, dass die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) zu einer ersten Gruppe von entsprechenden Orten bewegt wird, die mit der ersten Pose verbunden sind, wie z. B. die vorstehend erörterten Orte [xref_1 yref_1 zref_1]T 1130A, [xref_1 yref_1 zref_1]T 1130B, [xref_1 yref_1 zref_1]T 1130C. In einigen Fällen kann ein solcher Schritt ähnlich oder gleich dem Schritt 403 in 4A sein. In dem vorstehenden Beispiel kann das Computersystem, oder insbesondere die Steuerschaltung 111, in diesem Schritt ferner einen Kamerabefehl ausgeben, der die Kamera (z. B. 1170) dazu veranlasst, das Referenzbild (z. B. 1120) zu erzeugen, während sich der Roboterarm (z. B. 1153) in der ersten Pose befindet. Bei einer Ausführungsform kann das Computersystem das Referenzbild (z. B. 1120) von der Kamera empfangen und das Referenzbild in dem nicht flüchtigen computerlesbaren Medium 115 von 1C oder in einem anderen nicht flüchtigen computerlesbaren Medium speichern. In einigen Fällen kann das Computersystem ferner Informationen speichern, die es dem Roboterarm (z. B. 1153) ermöglichen, zu der ersten Pose zurückzukehren und/oder die Verifizierungssymbole (z. B. 1130A bis 1130C) zu der ersten Gruppe von entsprechenden Orten zurückzubringen. Das Computersystem kann beispielsweise die erste Gruppe der entsprechenden Orte speichern oder insbesondere deren 3D-Koordinaten speichern, und/oder es kann Parameterwerte des Bewegungsbefehls speichern, um den Roboterarm (z. B. 1153) dazu zu veranlassen, sich in die erste Pose zu bewegen. Bei einer Ausführungsform können die Koordinaten und/oder der Bewegungsbefehl in dem nicht flüchtigen computerlesbaren Medium 115 in einer Weise gespeichert sein, welche die gespeicherten Informationen mit dem vorstehend beschriebenen Referenzbild (z. B. 1120) verbinden.
  • Bei einer Ausführungsform kann der vorstehend erörterte Bewegungsbefehl zum Bewegen des Roboterarms in die erste Pose einen oder mehrere Parameterwerte umfassen, die eine Bewegung für den Roboterarm (z. B. 1153) beschreiben. Wie vorstehend angegeben, können in einigen Fällen der eine oder die mehreren Parameterwerte zu einem oder mehreren Aktorparametern gehören, die einen oder mehrere Aktoren steuern, die eine Bewegung für den Roboterarm (z. B. 1153) erzeugen. In solchen Fällen können der eine oder die mehreren Parameterwerte als ein oder mehrere Aktorparameterwerte (auch als Robotergelenkwerte bezeichnet) bezeichnet werden. Der eine oder die mehreren Aktorparameterwerte können z. B. entsprechende Drehbeträge der Armteile des Roboterarms relativ zueinander, die entsprechenden Orte und/oder Ausrichtungen der Armteile relativ zueinander und/oder die entsprechenden Orte der Gelenke (z. B. 1156A bis 1156D), welche die Armteile verbinden, beschreiben. Der eine oder die mehreren Aktorparameterwerte des Bewegungsbefehls können beispielsweise entsprechende Winkelwerte beschreiben, um welche die Motoren in dem Roboter 1150 verschiedene Armteile (z. B. die Glieder 1154A bis 1154E und die Roboterhand 1155) relativ zu ihren unmittelbar vorhergehenden Armteilen drehen sollen.
  • Bei einer Ausführungsform kann der vorstehend erörterte Bewegungsbefehl einen beliebigen oder beliebige Parameterwert(e) (z. B. einen zufälligen oder zufällige Parameterwert(e)) aufweisen und die erste durch den Bewegungsbefehl verursachte Pose kann irgendeine Pose sein. Bei einer Ausführungsform kann der vorstehend erörterte Bewegungsbefehl ein Bewegungsbefehl sein, der bewirkt, dass einige oder alle Verifizierungssymbole (z. B. 1130A bis 1130C) ein gewünschtes Aussehen in dem Referenzbild (z. B. 1120) aufweisen. Zum Beispiel können wie vorstehend erörtert einige oder alle der Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) eine Kreisform aufweisen, wie z. B. eine Ringform, die durch konzentrische kreisförmige Regionen oder konzentrische Kreise gebildet ist. Wenn sich in einem solchen Beispiel mindestens eines der Verifizierungssymbole (z. B. 1130A) in bestimmten Ausrichtungen relativ zur Kamera (z. B. 1170) befindet, kann das mindestens eine Verifizierungssymbol (z. B. 1130A) in den resultierenden Referenzbildern eher elliptisch als vollständig kreisförmig erscheinen. Das elliptische Erscheinungsbild kann zu einer ungenauen Kalibrierungsverifizierung führen. Wenn beispielsweise die Referenzbildkoordinate für das Verifizierungssymbol 1130A ein Ort ist, an dem das Zentrum des Symbols im Referenzbild erscheint, kann diese Referenzbildkoordinate schwieriger genau zu bestimmen sein, wenn das Verifizierungssymbol 1130A in dem Referenzbild elliptisch erscheint. Wenn das Identifizieren des Verifizierungssymbols 1130A in dem Referenzbild (z. B. das Unterscheiden des Verifizierungssymbols 1130A von anderen Merkmalen in dem Referenzbild) auf dem Identifizieren eines Ringmusters in dem Referenzbild und auf dem Verifizieren beruht, dass das Ringmuster ein bestimmtes Verhältnis zwischen konzentrischen Kreisen aufweist, die mit dem Symbol verbunden sind (z. B. dem Verhältnis r2,1130A/r1,1130A, das mit dem Verifizierungssymbol 1130A verbunden ist), kann diese Identifizierung schwieriger auszuführen sein, wenn das Ringmuster in dem Referenzbild elliptisch erscheint. Wenn daher die Steuerschaltung 111 an dem Ausgeben des mit der Erzeugung des Referenzbilds verbundenen Bewegungsbefehls beteiligt ist, kann die Steuerschaltung 111 versuchen, einen Bewegungsbefehl zu erzeugen, der bewirkt, dass die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) derart positioniert wird, dass sie in dem Referenzbild vollständig oder im Wesentlichen kreisförmig erscheinen.
  • Die Steuerschaltung 111 kann beispielsweise einen Bewegungsbefehl erzeugen, der den Roboterarm (z. B. 1153) veranlasst, sich in eine Pose zu bewegen, in der die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) direkt der Kamera (z. B. 1170) zugewandt ist. Die Pose kann z. B. bewirken, dass mindestens ein Verifizierungssymbol der Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) eine Oberfläche einer imaginären Kugel tangiert, die in Bezug auf die Kamera (z. B. 1170) konkav ist. In 11A kann die dargestellte Pose für den Roboterarm 1153 bewirken, dass das Verifizierungssymbol 1130A und das Verifizierungssymbol 1130B entsprechende Ausrichtungen aufweisen, bei denen sie eine Oberfläche einer imaginären Kugel 1121 tangieren, die in Bezug auf die Kamera 170 konkav ist, und sie kann bewirken, dass das Verifizierungssymbol 1130C eine Ausrichtung aufweist, bei der es eine Oberfläche einer imaginären Kugel 1123 tangiert, die in Bezug auf die Kamera 1170 ebenfalls konkav ist. In einer solchen Pose, welche die erste vorstehend erörterte Pose sein kann, kann die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) als entsprechende Kreisformen in dem Referenzbild (z. B. 1120) erscheinen. Insbesondere kann die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) in einem solchen Beispiel derart positioniert sein, dass sie ohne Exzentrizität in dem Referenzbild erscheinen oder mit entsprechenden Exzentrizitätsbeträgen erscheinen, die unter einem definierten Exzentrizitätsschwellenwert liegen. In dem vorstehenden Beispiel können die imaginären Kreise 1121 und 1123 an der Kamera (z. B. 1170) zentriert sein. Bei einer Ausführungsform kann die Steuerschaltung 111 dazu konfiguriert sein, zufällige Bewegungsbefehle zu erzeugen und die zufälligen Bewegungsbefehle zu durchsuchen, um einen zu finden, der die vorstehend erörterten Ausrichtungen für die Gruppe von Verifizierungssymbolen erzeugen kann. Der gefundene Bewegungsbefehl kann von der Steuerschaltung 111 ausgegeben werden, um das Referenzbild (z. B. 1120) zu erzeugen.
  • Unter Bezugnahme auf die 12A bis 12B umfasst das Verfahren 1200 bei einer Ausführungsform einen Schritt 1205, in dem die Steuerschaltung 111 einen Bewegungsbefehl ausgibt, um den Roboterarm zu steuern, sodass er sich in die erste Pose bewegt, wie z. B. die in den 10A oder 11A dargestellte erste Pose, wobei die erste Pose eine Pose ist, bei der das Referenzbild (z. B. 1120) während der ersten Zeitperiode erzeugt wird, wie es vorstehend erörtert ist. In einigen Fällen kann der Bewegungsbefehl über die Kommunikationsschnittstelle 113 an den Roboter (z. B. 550A/1150) ausgegeben werden. Bei einer Ausführungsform kann der Bewegungsbefehl in Schritt 1205 als ein zusätzlicher Bewegungsbefehl bezeichnet werden, da er zusätzlich zu dem Bewegungsbefehl von Schritt 1201 vorhanden ist. Der zusätzliche Bewegungsbefehl kann während einer zweiten Zeitperiode oder allgemeiner während eines zweiten Zeitpunkts, der auf die erste Zeitperiode folgt, ausgegeben werden. Die zweite Zeitperiode kann sich auf eine Zeitperiode (z. B. eine Periode von Millisekunden, Sekunden oder Minuten) beziehen, die für die Erzeugung des Verifizierungsbilds verwendet wird oder anderweitig damit verbunden ist. Die zweite Zeitperiode kann beispielsweise eine Zeit für eine Roboterbewegung zum Positionieren des Verifizierungssymbols im Kamerasichtfeld und/oder eine Zeit für einen Kamerabetrieb zum Erfassen des Verifizierungsbilds umfassen. In einigen Fällen kann die zweite Zeitperiode (oder allgemeiner der zweite Zeitpunkt) auf die erste Zeitperiode (oder allgemeiner auf den ersten Zeitpunkt) um Stunden, Tage oder Wochen folgen. Wie nachstehend ausführlicher beschrieben, kann der zusätzliche Bewegungsbefehl verwendet werden, um ein Verifizierungsbild während der zweiten Zeitperiode zu erzeugen. Bei einer Ausführungsform kann der zusätzliche Bewegungsbefehl den Roboterarm (z. B. 1153) veranlassen, sich in eine Pose (z. B. die erste Pose von 11A) zu bewegen, in der die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) der Kamera (z. B. 1170) direkt zugewandt ist. Die Gruppe von Verifizierungssymbolen kann beispielsweise entsprechende Ausrichtungen aufweisen, in denen sie eine oder mehrere imaginäre Kugeln tangieren, die in Bezug auf die Kamera konkav sind. In einer solchen Pose kann die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) als entsprechende Kreisformen in dem Verifizierungsbild (z. B. 1160 von 13B) erscheinen.
  • Wenn bei einer Ausführungsform das Verfahren 1200 wie vorstehend beschrieben einen Schritt des Ausgebens eines Bewegungsbefehls zum Erzeugen des Referenzbilds während der ersten Zeitperiode umfasst, kann der Bewegungsbefehl zum Erzeugen des Referenzbilds während der ersten Zeitperiode ein erster zusätzlicher Bewegungsbefehl sein, während der Bewegungsbefehl in Schritt 1205 zum Erzeugen des Verifizierungsbilds während der zweiten Zeitperiode ein zweiter zusätzlicher Bewegungsbefehl sein kann. In einigen Fällen kann der erste zusätzliche Bewegungsbefehl ein früherer Bewegungsbefehl sein, während der zweite zusätzliche Bewegungsbefehl ein späterer Bewegungsbefehl sein kann. In einigen Fällen kann der erste zusätzliche Bewegungsbefehl einen oder mehrere Aktorparameterwerte (oder Robotergelenkwerte) zum Steuern des Roboterarms aufweisen, sodass er sich in die erste Pose bewegt, und der zweite zusätzliche Bewegungsbefehl kann ebenfalls den einen oder die mehreren Aktorparameterwerte aufweisen. Insbesondere können der erste zusätzliche Bewegungsbefehl und der zweite zusätzliche Bewegungsbefehl die gleichen Aktorparameterwerte aufweisen. Wenn beispielsweise ein Roboter (z. B. 1150) mehrere Motoren umfasst, die verschiedene Armteile (z. B. die Glieder 1154A bis 1154E und die Roboterhand 1155) relativ zueinander drehen, können der eine oder die mehreren Aktorparameterwerte mehrere entsprechende Winkelwerte umfassen, die steuern, wie viel Drehung von den mehreren Motoren auszugeben ist. In diesem Beispiel können der erste zusätzliche Bewegungsbefehl und der zweite zusätzliche Bewegungsbefehl beide die gleichen mehreren entsprechenden Winkelwerte umfassen, die steuern, wie viel Drehung von den mehreren Motoren ausgegeben wird.
  • Bei einer Ausführungsform kann der erste zusätzliche Bewegungsbefehl und/oder der zweite zusätzliche Bewegungsbefehl während einer entsprechenden Ruhezeit ausgegeben werden, wie beispielsweise die Ruhezeit, die vorstehend in Bezug auf Schritt 411 für 4A erörtert wurde. Wenn in einigen Situationen die Kalibrierinformationen durch Ausführung eines Kalibriervorgangs bestimmt werden, kann der erste zusätzliche Bewegungsbefehl unmittelbar, nachdem der Kalibriervorgang ausgeführt wurde, oder während einer frühesten Ruhezeit, die auf den Kalibriervorgang folgt, ausgegeben werden. In einigen Situationen kann der zweite zusätzliche Bewegungsbefehl als Reaktion auf eine definierte Auslösebedingung ausgegeben werden, wie z. B. eine definierte Zeitperiode, die seit der Ausführung des Kalibriervorgangs verstrichen ist, ein Kollisionsereignis betreffend den Roboter oder ein anderes Ereignis (z. B. eine Naturkatastrophe wie ein Erdbeben), das zu einer möglichen Verschiebung oder Fehlausrichtung zwischen Kamera und Roboter oder Teilen davon oder zu einer anderen Auslösebedingung führen kann. Wenn das Erzeugen des Verifizierungsbilds beinhaltet, dass die Steuerschaltung 111 einen Kamerabefehl ausgibt, kann der Kamerabefehl in einigen Beispielen auch als Reaktion auf die definierte Auslösebedingung ausgegeben werden.
  • Bei einer Ausführungsform kann die erste Pose des Schritts 1205 für den Roboterarm (z. B. 1153) mit einer bestimmten Gruppe von entsprechenden Referenzorten für die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) verbunden sein, die an dem Roboterarm angeordnet sind, wie es vorstehend erörtert wurde. Die Gruppe entsprechender Referenzorte kann z.B. die 3D-Orte [xref_1 yref_1 zref_1]T 1130A, [xref_1 yref_1 zref_1]T 1130B, [xref_1 yref_1 zref_1] T 1130C sein. Wenn das Referenzbild (z. B. 1120) erzeugt wird, kann sich die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) bei der Gruppe von entsprechenden Referenzorten befinden, die mit der ersten Pose verbunden sind. Wenn in Schritt 1205 der zusätzliche Bewegungsbefehl bewirkt, dass der Roboterarm in die erste Pose zurückkehrt, kann die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) zurückkehren zu der Gruppe von Referenzorten (z. B. [xref_1 yref_1 zref_1]T 1130A, [xref_1 yref_1 zref_1]T 1130B, [xref_1 yref_1 zref_1]T 1130C). In einem solchen Beispiel kann die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) beim Erzeugen des Referenzbilds (z. B. 1120) bei der Gruppe der entsprechenden Referenzorte angeordnet werden und beim Erzeugen des Verifizierungsbilds (z. B. 1160) wieder bei der Gruppe der entsprechenden Referenzorte angeordnet werden.
  • Unter erneuter Bezugnahme auf die 12A bis 12B kann das Verfahren 1200 bei einer Ausführungsform einen Schritt 1207 umfassen, in dem die Steuerschaltung 111 ein Verifizierungsbild, wie z. B. das Verifizierungsbild 1160 in 13B empfängt. Wie vorstehend angegeben, kann das Referenzbild (z. B. 1160) ein Bild zum Darstellen der Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) sein. In diesem Beispiel kann das Verifizierungsbild (z. B. 1160) ein zusätzliches Bild sein, um auch die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) darzustellen, und es kann erzeugt werden, wenn der Roboterarm (z. B. 1153) infolge des zusätzlichen Bewegungsbefehls von Schritt 1205 in die erste Pose bewegt wurde, wie z. B. in die in 11A dargestellte erste Pose.
  • Bei einer Ausführungsform kann das Verfahren 1200 einen Schritt 1209 umfassen, in dem die Steuerschaltung 111 eine Gruppe von Verifizierungsbildkoordinaten bestimmt. Bei dieser Ausführungsform kann die Gruppe von Verifizierungsbildkoordinaten entsprechende Koordinaten sein, an denen die Gruppe von Verifizierungssymbolen (z. B. 1130A bis 1130C) in dem Verifizierungsbild (z. B. 1160 von 13B) erscheint. Bei einer Ausführungsform kann die Gruppe von Verifizierungsbildkoordinaten zum Verifizieren der Kalibrierinformationen, wie z. B. von Kamerakalibrierinformationen, verwendet werden. Ähnlich der vorstehenden Erörterung bezüglich der Referenzbildkoordinaten in Schritt 1203 kann die Gruppe von Verifizierungsbildkoordinaten in einem Beispiel eine erste Verifizierungsbildkoordinate, eine zweite Verifizierungsbildkoordinate und eine dritte Verifizierungsbildkoordinate umfassen. In einem spezifischeren Beispiel kann jede von der ersten Verifizierungsbildkoordinate, der zweiten Verifizierungsbildkoordinate und der dritten Verifizierungsbildkoordinate eine Pixelkoordinate sein, die z. B. ein Zentrum ihres entsprechenden Verifizierungssymbols identifiziert. 13B stellt beispielsweise drei Verifizierungsbildkoordinaten oder insbesondere Pixelkoordinaten [uverify_1 vverify_1] T 1130A, [uverify_1 vverify_1]T 1130B, [uverify_1 vverify_1]T 1130C dar, an denen die entsprechenden Zentren der Verifizierungssymbole 1130A bis 1130C in dem Verifizierungsbild 1160 erscheinen. Ähnlich der Erörterung bezüglich der Referenzbildkoordinaten kann sich die Bezeichnung verify N (z. B. verify_1) auf Koordinaten beziehen, die mit einem Verifizierungsbild verbunden sind, das erzeugt wird, wenn sich der Roboterarm in einer N-ten Pose, wie z. B. der ersten Pose (N=1), befindet.
  • Bei einer Ausführungsform kann die Steuerschaltung 111 die Schritte 1203 bis 1209 für mehrere Referenzbilder und mehrere Verifizierungsbilder (z. B. fünf Referenzbilder und fünf Verifizierungsbilder) mehrere Male ausführen. Die mehreren Referenzbilder und mehreren Verifizierungsbilder können mehreren entsprechenden Posen entsprechen. Zum Beispiel stellen die 10A bis 10C eine Serie von drei Posen für den Roboterarm 553 dar. In diesem Beispiel kann die Steuerschaltung 111 der Robotersteuerung 110 oder jedes andere Computersystem ein erstes Referenzbild und ein erstes Verifizierungsbild, die beide wie in 10A veranschaulicht mit der ersten Pose verbunden sind, ein zweites Referenzbild und ein zweites Verifizierungsbild, die beide wie in 10B veranschaulicht mit einer zweiten Pose verbunden sind, und ein drittes Referenzbild und ein drittes Verifizierungsbild, die wie in 10C veranschaulicht mit einer dritten Pose verbunden sind, empfangen. In einem anderen Beispiel kann das Referenzbild 1120 von 13A ein erstes Referenzbild und das Verifizierungsbild 1160 von 13B ein erstes Verifizierungsbild sein, die beide mit der in 11A für den Roboterarm 1153 dargestellten ersten Pose verbunden sein können. In diesem Beispiel kann die Steuerschaltung 111 außerdem ein zweites Referenzbild 1122 von 14A und ein zweites Verifizierungsbild 1162 von 14B empfangen, die beide mit einer in 11B dargestellten zweiten Pose verbunden sein können. In diesem Beispiel können die Koordinaten des Referenzbilds [uref_1 vref_1]T 1130A, [uref_1 vref_1]T 1130B, [uref_1 vref_1]T 1130C von 13A eine erste Gruppe von Referenzbildkoordinaten sein, während die Verifizierungsbildkoordinaten [uverify_1 vverify_1]T 1130A, uverify_1 vverify_1] T 1130B, [uverify_1 vverify_1]T 1130C von 13B eine erste Gruppe von Verifizierungsbildkoordinaten sein können. Die Steuerschaltung 111 in diesem Beispiel kann ferner dazu konfiguriert sein, eine zweite Gruppe von Referenzbildkoordinaten [uref_2 vref_2]T 1130A, [uref_2 vref_2]T 1130B, [uref_2 vref_2]T 1130C für das zweite Referenzbild 1122 von 14A zu bestimmen und eine zweite Gruppe von Verifizierungsbildkoordinaten [uverify_2 vverify_2] T 1130A, uverify_2 vvenfy_2] T 1130B, [uverify_2 vverify_2]T 1130C für das zweite Verifizierungsbild 1162 von 14B zu bestimmen. In den vorstehenden Beispielen kann die Steuerschaltung 111 in einigen Fällen dazu konfiguriert sein, verschiedene entsprechende Bewegungsbefehle auszugeben, um den Roboterarm (z. B. 1153) zu veranlassen, sich zu den mehreren entsprechenden Posen zu bewegen, wobei die mehreren Referenzbilder und/oder die mehreren Verifizierungsbilder mit den mehreren entsprechenden Posen verbunden sind.
  • Unter wiederholter Bezugnahme auf die 12A bis 12B kann das Verfahren 1200 bei einer Ausführungsform einen Schritt 1211 umfassen, in dem die Steuerschaltung 111 eine Gruppe von entsprechenden Abweichungsparameterwerten bestimmt, die auf entsprechenden Abweichungsbeträgen zwischen der Gruppe von Referenzbildkoordinaten (z. B. [uref_1 vref_1]T 1130A, [uref_1 vref_1]T 1130B, [uref_1 Vref_1]T 1130C von 13A) und der Gruppe von Verifizierungsbildkoordinaten (z. B. [Uverify 1 vverify_1]T 1130A, [Uverify 1 vverify_1]T 1130B, [Uverify 1 vverify_1]T 1130C von 13B) basieren. Die Gruppe von entsprechenden Abweichungsparameterwerten im Kontext der 13A und 13B kann einen ersten Abweichungsparameterwert, einen zweiten Abweichungsparameterwert und einen dritten Abweichungsparameterwert umfassen. Der erste Abweichungsparameterwert kann auf einem Abweichungsbetrag zwischen einer ersten Referenzbildkoordinate [uref_1 vref_1]T 1130A für das Verifizierungssymbol 1130A in dem Referenzbild 1120 und eine erste Verifizierungsbildkoordinate [uverify_1 vverify_1]T 1130A für das Verifizierungssymbol 1130A in dem Verifizierungsbild 1160 basieren. Der erste Abweichungsparameterwert kann beispielsweise gleich dem Abstand zwischen der ersten Referenzbildkoordinate und der ersten Verifizierungsbildkoordinate sein oder allgemeiner darauf basieren, wie es vorstehend in Bezug auf Schritt 457 von 4B erörtert wurde. In ähnlicher Weise kann der zweite Abweichungsparameterwert auf einem Abweichungsbetrag zwischen einer zweiten Referenzbildkoordinate [uref_1 vref_1]T 1130B für das Verifizierungssymbol 1130B in dem Referenzbild 1120 und einer zweiten Verifizierungsbildkoordinate [uverify_1 vverify_1]T 1130B für das Verifizierungssymbol 1130B in dem Verifizierungsbild 1160 basieren (z. B. gleich sein). Ferner kann der dritte Abweichungsparameterwert auf einem Abweichungsbetrag zwischen einer dritten Referenzbildkoordinate [uref_1 vref_1]T 1130C für das Verifizierungssymbol 1130C in dem Referenzbild 1120 und einer dritten Verifizierungsbildkoordinate [uverify_1 vverify_1]T 1130C für das Verifizierungssymbol 1130C in dem Verifizierungsbild 1160 basieren. Im vorstehenden Beispiel ist die Gruppe von entsprechenden Abweichungsparameterwerten mit der Gruppe von Verifizierungssymbolen 1130A bis 1130C verbunden. Das heißt, der erste Abweichungsparameterwert ist mit dem Verifizierungssymbol 1130A verbunden, während der zweite Abweichungsparameterwert mit dem Verifizierungssymbol 1130B und der dritte Abweichungsparameterwert mit dem Verifizierungssymbol 1130C verbunden ist.
  • Bei einer Ausführungsform können einige oder alle der Gruppe von entsprechenden Abweichungsparameterwerten auf einem einzigen Paar eines Referenzbilds und eines Verifizierungsbilds basieren, die beide mit einer gemeinsamen Pose für den Roboterarm verbunden sein können. Der erste vorstehend beschriebene Abweichungsparameterwert kann beispielsweise mit dem Verifizierungssymbol 1130A verbunden sein und auf einem einzigen Paar des Referenzbilds 1120 und des Verifizierungsbilds 1160 basieren, die beide mit einer gemeinsamen Pose verbunden sind, wie z. B. der Pose in 11A.
  • Bei einer Ausführungsform können einige oder alle der Gruppe von entsprechenden Abweichungsparameterwerten auf mehreren Paaren von entsprechenden Referenzbildern und entsprechenden Verifizierungsbildern basieren, wobei jedes Paar mit einer entsprechenden Pose von mehreren Posen für den Roboterarm verbunden ist. Als Beispiel kann der vorstehend erörterte erste Abweichungsparameterwert, der mit dem Verifizierungssymbol 1130A verbunden ist, auf einem ersten Paar des Referenzbilds 1120 und des Verifizierungsbilds 1160 (der 13A und 13B) und einem zweiten Paar des Referenzbilds 1122 und des Verifizierungsbilds 1162 (der 14A und 14B) basieren. Das erste Paar kann mit der ersten Pose von 11A verbunden sein, während das zweite Paar mit der zweiten Pose von 11B verbunden sein kann. Insbesondere kann der erste Abweichungsparameterwert in diesem Beispiel auf einem Abweichungsbetrag (z. B. dem Abstand) zwischen [uref_1 vref_1]T 1130A und [Uverify 1 vverify_1]T 1130A basieren (die mit der ersten Pose verbunden sind), und auf einem Abweichungsbetrag zwischen [uref_2 vref_2]T 1130A und [uverify_2 vverify_2]T 1130A basieren (die mit der zweiten Pose verbunden sind). In einem Beispiel kann der erste Abweichungsparameterwert gleich einem Mittelwert der zwei Abweichungsbeträge sein oder darauf basieren. Allgemeiner ausgedrückt kann die Gruppe von entsprechenden Abweichungsparameterwerten in diesem Beispiel auf den entsprechenden Abweichungsbeträgen zwischen der ersten Gruppe von Referenzbildkoordinaten und der ersten Gruppe von Verifizierungsbildkoordinaten (die mit der ersten Pose verbunden sind) und ferner auf den entsprechenden Abweichungsbeträgen zwischen der zweiten Gruppe von Referenzbildkoordinaten und der zweiten Gruppe von Verifizierungsbildkoordinaten (die mit der zweiten Pose verbunden sind) basieren.
  • In einigen Fällen kann eine Referenzbildkoordinate in einem ersten Referenzbild und eine Referenzbildkoordinate in einem zweiten Referenzbild Teil eines Satzes von Referenzbildkoordinaten sein, die angeben, wo ein gemeinsames Verifizierungssymbol (z. B. 1130A) in einem Satz von Referenzbildern erscheint, wie z. B. den zwei vorstehend erörterten Referenzbildern 1120, 1122. Der Satz von Referenzbildern und der Satz von Referenzbildkoordinaten in diesem Beispiel kann einem Satz von entsprechenden Posen für den Roboterarm (z. B. 1153) entsprechen, wie z. B. entsprechend den zwei Posen in den FIG. IIA und IIB. Ähnlich können eine Verifizierungsbildkoordinate in einem ersten Verifizierungsbild und eine Verifizierungsbildkoordinate in einem zweiten Verifizierungsbild Teil eines Satzes von Verifizierungsbildkoordinaten sein, die angeben, wo das Verifizierungssymbol in einem Satz von Verifizierungsbildern erscheint, wie z. B. den vorstehend erörterten Verifizierungsbildern 1160, 1162. Der Satz von Verifizierungsbildern und der Satz von Verifizierungsbildkoordinaten kann auch dem Satz von Posen entsprechen. In solchen Fällen kann ein mit dem Verifizierungssymbol verbundener Abweichungsparameterwert auf den entsprechenden Abweichungsbeträgen zwischen dem Satz von Referenzbildkoordinaten und dem Satz von Verifizierungsbildkoordinaten basieren.
  • Unter erneuter Bezugnahme auf die 12A bis 12B kann das Verfahren 1200 bei einer Ausführungsform einen Schritt 1213 umfassen, in dem die Steuerschaltung 111 bestimmt, ob mindestens ein Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten einen definierten Abweichungsschwellenwert überschreitet. In einigen Fällen kann Schritt 1213 ähnlich dem Schritt 459 von 4B sein. Bei einer Ausführungsform kann Schritt 1213 das Bestimmen beinhalten, ob jeder Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten einen entsprechenden Abweichungsschwellenwert überschritten hat. Die Steuerschaltung 111 kann beispielsweise bestimmen, ob ein mit dem Verifizierungssymbol 1130A verbundener Abweichungsparameterwert einen definierten Abweichungsschwellwert überschritten hat, ob der mit dem Verifizierungssymbol 1130B verbundene Abweichungsparameterwert einen definierten Abweichungsschwellwert überschritten hat, und/oder ob der mit dem Verifizierungssymbol 1130C verbundene Abweichungsparameterwert den definierten Abweichungsschwellwert überschritten hat. In einigen Fällen können die entsprechenden Abweichungsschwellenwerte den gleichen Wert aufweisen und daher einen gemeinsamen Abweichungsschwellenwert für die Verifizierungssymbole bilden, oder sie können unterschiedliche Werte aufweisen.
  • Bei einer Ausführungsform kann das Verfahren einen Schritt 1215 umfassen, in dem die Steuerschaltung 111 als Reaktion auf ein Bestimmen, dass mindestens ein Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet, mindestens eines der Folgenden ausführen kann: (a) Ausgeben einer Benachrichtigung, dass mindestens einer von der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet, oder (b) Ausführen eines Kalibriervorgangs zur Bestimmung aktualisierter Kalibrierinformationen (z. B. aktualisierte Kamerakalibrierinformationen). Schritt 1215 kann z. B. das Ausgeben der Benachrichtigung an eine Benutzerschnittstellenvorrichtung, wie z. B. eine elektronische Anzeige in Kommunikation mit der Robotersteuerung 110, beinhalten. Die elektronische Anzeige kann z. B. den mindestens einen Wert des Abweichungsparameters oder eine Anzeige, dass der mindestens eine Wert des Abweichungsparameters den definierten Abweichungsschwellenwert überschreitet, anzeigen. Bei einer Ausführungsform kann die Ausführung des Kalibriervorgangs in Schritt 1215 ähnlich oder gleich dem Schritt 461 in 4B sein. Wenn bei einer Ausführungsform die Kalibrierinformationen von Schritt 1201 durch Ausführen eines ersten Kalibriervorgangs bestimmt werden, dann kann der Kalibriervorgang von Schritt 1215 ein zweiter Kalibriervorgang sein, der auf den ersten Kalibriervorgang folgt.
  • Bei einer Ausführungsform kann der mindestens eine Abweichungsparameterwert, der die definierte Abweichungsschwelle überschreitet, auf eine Änderung der Kamera (z.B. 1170 der 11A bis11B) und/oder auf eine Änderung der Umgebung der Kamera oder des Roboterbetriebssystems (z. B. 1100) hinweisen. In einigen Fällen kann die Änderung an der Kamera eine interne Änderung sein, wenn z. B. ein Objektiv oder ein Bildsensor der Kamera aufgrund einer Temperaturänderung oder einer physischen Beschädigung seine Form oder Größe verändert hat. In einigen Fällen kann die Änderung an der Kamera auch eine Änderung am Ort umfassen, an dem die Kamera (z. B. 170) angebracht ist, wie z. B. aufgrund von Vibrationen in einer Struktur (z. B. der Decke), an der die Kamera angebracht ist. In einigen Fällen kann eine Änderung in der Umgebung der Kamera oder am Roboterbetriebssystem eine Änderung im Ort oder der Ausrichtung einer Basis (z. B. 1152) eines Roboters (z. B. 1150) umfassen, wie z. B. aufgrund einer Vibration in einer Struktur (z. B. dem Boden), an welcher der Roboter angebracht ist. In einigen Fällen kann die Änderung in der Umgebung der Kamera oder am Roboterbetriebssystem eine Änderung in einer Beziehung zwischen Armteilen des Roboterarms (z. B. zwischen den Gliedern 1154A bis 1154E des Roboterarms 1153) oder in den Armteilen selbst sein. Beispielsweise kann einer der Armteile (z. B. das Glied 1154D oder die Roboterhand 1155) durch ein Ereignis, das von dem Computersystem 110 nicht geplant war, verbogen oder anderweitig deformiert oder beschädigt werden. Das ungeplante Ereignis kann ein Kollisionsereignis oder ein anderes unerwartetes Ereignis sein, das zu einer möglichen Veränderung am Roboter (z. B. 1150) oder einem anderen Element des Roboterbetriebssystems führen kann. Die vorstehend beschriebene Kalibrierungsverifizierung kann eine schnelle und effiziente Technik zum Detektieren der Änderung einer Kamera (z.B. 1170) und/oder einer Änderung einer Umgebung der Kamera oder des Roboterbetriebssystems 1100 bereitstellen. Eine Änderung in der Kamera (z. B. 1170) und/oder dem Roboter (z. B. 1150) kann durch Vergleichen einer oder mehrerer Referenzbildkoordinaten mit einer oder mehreren entsprechenden Verifizierungsbildkoordinaten detektiert werden, um einen Unterschied dazwischen zu bestimmen. In vielen Fällen kann ein solcher Vergleich durchgeführt werden, ohne die Computerressourcen des Computersystems 110 übermäßig zu beanspruchen. Beispielsweise kann der Vergleich mit Berechnungen erfolgen, die nur eine begrenzte Menge an Prozessorausführungszeit und/oder eine begrenzte Speicherkapazität beanspruchen. Auf diese Weise kann der Vergleich die genaue Überwachung der Genauigkeit von Kalibrierinformationen auf rechnerisch effiziente Weise erleichtern.
  • Bei einer Ausführungsform kann der mindestens eine Abweichungsparameterwert, der den definierten Abweichungsschwellenwert überschreitet, anzeigen, dass es einen Kalibrierfehler gibt, wie z. B. einen Kamerakalibrierfehler, bei dem die Kamerakalibrierinformationen von der ersten Kamerakalibrierung nicht mehr ausreichend genau sind. Bei einer Ausführungsform kann das Verfahren 1200 beinhalten, dass die Steuerschaltung 111 eine Art von Kalibrierfehler (auch als eine Art von Ausrichtungsfehler bezeichnet) bestimmt, der bewirkt, dass der mindestens eine Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet. Die Art des Kalibrierfehlers kann z. B. angeben, ob ein Genauigkeitsverlust bei den Kalibrierinformationen (z. B. Kamerakalibrierinformationen) durch eine Änderung am Roboter verursacht ist oder auf andere Weise dafür repräsentativ ist, oder ob der Genauigkeitsverlust durch eine Änderung an der Kamera verursacht ist oder auf andere Weise dafür repräsentativ ist. Die Änderung an der Kamera (z. B. 1170) kann beispielsweise die interne Änderung der Kamera und/oder die Änderung am Ort, an dem die Kamera angebracht ist, umfassen, wie es vorstehend beschrieben ist. Die Änderung am Roboter kann wie vorstehend erörtert die Änderung eines Orts oder Ausrichtung einer Basis (z. B. 1152) des Roboters (z. B. 1150), eine Änderung der Beziehung zwischen den Armteilen des Roboterarms (z. B. 1153) und/oder eine Änderung an den Armteilen selbst umfassen.
  • Bei einer Ausführungsform kann das Bestimmen der Art des Kalibrierfehlers auf einem Vergleich zwischen der Gruppe von entsprechenden Abweichungsparameterwerten und insbesondere darauf basieren, ob die Gruppe von entsprechenden Abweichungsparameterwerten einen definierten Abweichungsschwellenwert in einer im Wesentlichen gleichförmigen Weise überschreitet. Wenn die Gruppe von Abweichungsparameterwerten, die mit den verschiedenen Verifizierungssymbolen (z. B. 1130A bis 1130C) verbunden sind, komplett den definierten Abweichungsschwellenwert überschreitet und dies auf eine im Wesentlichen gleichförmige Weise tut, kann die Steuerschaltung 111 bestimmen, dass der Genauigkeitsverlust durch die Kamera (z. B. 1170) oder insbesondere durch eine Änderung an der Kamera verursacht ist. Der Grund ist, dass das Erscheinen jedes der Verifizierungssymbole (z. B. 1130A bis 1130C) in einem Referenz- oder Verifizierungsbild von einer inneren Eigenschaft und/oder von der Positionierung der Kamera (z. B. 1170) abhängig ist. Insbesondere können die Koordinaten des Referenzbilds und die Koordinaten des Verifizierungsbilds für die Verifizierungssymbole (z. B. 1130A bis 1130C) in dem Referenz- oder Verifizierungsbild alle von der inneren Eigenschaft oder von der Positionierung der Kamera abhängig sein. Daher kann sich eine Änderung an der inneren Eigenschaft oder der Positionierung der Kamera (z. B. 1170) oft auf entsprechende Abweichungsparameterwerte für alle Verifizierungssymbole (z. B. 1130A bis 1130C) auswirken und kann insbesondere alle Abweichungsparameterwerte im Wesentlichen gleichförmig erhöhen. Im Vergleich dazu ist es unwahrscheinlich, dass bei einem Schaden, einer Fehlfunktion oder einer anderen Veränderung an einem Teil des Roboters (z. B. 1150), wie z. B. einem Armteil, alle anderen Teile des Roboters sich in genau der gleichen Weise verändern würden (z. B. beschädigt wären oder alle eine Fehlfunktion aufweisen würden). Wenn es daher eine Veränderung in einem Teil des Roboters gäbe, die mindestens einen Abweichungsparameter über den definierten Abweichungsschwellenwert hinaus erhöhen würde, können andere Abweichungsparameterwerte der Gruppe von Abweichungsparametern immer noch unter dem definierten Abweichungsschwellenwert verbleiben oder die Gruppe von Abweichungsparametern kann komplett den definierten Abweichungsschwellenwert überschreiten, tut dies aber auf uneinheitliche Weise. Wenn daher bei einer Ausführungsform mindestens einer von der Gruppe von entsprechenden Abweichungsparameterwerten, die mit den unterschiedlichen Verifizierungssymbolen verbunden sind (z. B. 1130A bis 1130C), den definierten Abweichungsschwellenwert überschreitet, aber die Gruppe von entsprechenden Abweichungsparameterwerten nicht komplett den definierten Abweichungsschwellenwert auf eine im Wesentlichen gleichförmige Weise überschreitet, kann die Steuerschaltung 111 bestimmen, dass der Genauigkeitsverlust durch den Roboter (z. B. 1150) oder insbesondere durch eine Änderung am Roboter verursacht ist.
  • Bei einer Ausführungsform kann die Steuerschaltung 111 einen definierten Gleichförmigkeitsschwellenwert verwenden, um zu bewerten, ob die Gruppe von Abweichungsparameterwerten komplett den definierten Abweichungsschwellenwert im Wesentlichen gleichförmig überschreitet. Die Steuerschaltung 111 kann beispielsweise bestimmen, ob mindestens einer der Abweichungsparameterwerte den definierten Abweichungsschwellenwert überschreitet, und sie kann ferner bestimmen, ob Unterschiede zwischen den Abweichungsparameterwerten (oder zwischen den entsprechenden Beträgen, um die sie den definierten Abweichungsschwellenwert überschreiten) innerhalb des definierten Gleichförmigkeitsschwellenwerts liegen. Der Gleichförmigkeitsschwellenwert kann auf dynamische Weise definiert werden (z. B. basierend auf einem aktuellen Betriebszustand des Roboterbetriebssystems) oder er kann vordefiniert sein. Als Beispiel für die Verwendung des definierten Gleichförmigkeitsschwellenwerts, wenn die Steuerschaltung 111 bestimmt, dass die entsprechenden Abweichungsparameterwerte für die Verifizierungssymbole 1130A bis 1130C alle den definierten Abweichungsschwellenwert überschreiten, dass sich aber ein mit dem Verifizierungssymbol 1130C verbundener Abweichungsparameterwert von einem mit dem Verifizierungssymbol 1130A verbundenen Abweichungsparameterwert um mehr als den definierten Gleichförmigkeitsschwellenwert unterscheidet, und/oder von einem mit dem Verifizierungssymbol 1130B verbundenen Abweichungsparameterwert um mehr als den definierten Gleichförmigkeitsschwellenwert unterscheidet, dann kann die Steuerschaltung 111 bestimmen, dass der Genauigkeitsverlust durch eine Änderung des Roboters 1150 verursacht ist, wie z. B. durch eine Änderung von mindestens der Roboterhand 1155 oder einem anderen Armteil, an dem das Verifizierungssymbol 1130C angeordnet ist. In dem vorstehenden Beispiel vergleicht die Steuerschaltung 111 die Werte der Abweichungsparameter direkt. In anderen Beispielen kann die Steuerschaltung 111 entsprechende Beträge, um welche die Abweichungsparameterwerte den definierten Abweichungsschwellenwert überschreiten, und ob sich diese entsprechenden Beträge um mehr als den definierten Gleichförmigkeitsschwellenwert unterscheiden, vergleichen. Wenn in einem anderen Beispiel die Steuerschaltung 111 bestimmt, dass ein erster Abweichungsparameterwert der Gruppe von Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet, aber einer oder mehrere der Gruppe von Abweichungsparameterwerten den definierten Abweichungsschwellenwert nicht überschreiten, kann die Steuerschaltung 111 auch bestimmen, dass der Kalibrierfehler (auch als eine Fehlausrichtung bezeichnet) durch eine Änderung am Roboter (z. B. 1150) verursacht ist, wie z. B. an einem Armteil, an dem das mit dem ersten Abweichungsparameterwert verbundene Verifizierungssymbol angeordnet ist. Wenn die Steuerschaltung 111 in einem weiteren Beispiel bestimmt, dass die Gruppe von Abweichungsparameterwerten komplett den definierten Abweichungsschwellenwert überschreitet, und dass sie sich nicht um mehr als den definierten Gleichförmigkeitsschwellenwert voneinander unterscheiden, dann kann die Steuerschaltung 111 bestimmen, dass der Kalibrierfehler durch eine Änderung an der Kamera (z. B. 1170) verursacht ist.
  • In einigen Fällen kann die Steuerschaltung 111 der Robotersteuerung 110 oder eines anderen Computersystems mit einem Förderband, wie z. B. mit dem Förderband 1173 der 11A und 11B, in Kommunikation stehen. In solchen Fällen kann die Steuerschaltung 111 als Reaktion auf eine Bestimmung, dass der mindestens eine Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, dazu konfiguriert sein, zu bewirken, dass das Förderband 1173 stoppt. Das Stoppen des Förderbands 1173 kann verhindern, dass der Roboterarm 1153 basierend auf ungenauen Kalibrierinformationen eine unerwünschte Interaktion mit einem Objekt auf dem Förderband 1173 hat.
  • Bei einer Ausführungsform kann die Steuerschaltung 111 dazu konfiguriert sein, zu bestimmen, dass, wenn die Kalibrierinformationen für einen bestimmten Armteil (z. B. Glied 1154C, an dem das Verifizierungssymbol 1130A angeordnet ist, oder Glied 1154D, an dem das Verifizierungssymbol 1130B angeordnet ist, oder die Roboterhand 1155, an der das Verifizierungssymbol 1130C angeordnet ist) ausreichend genau sind, die Kalibrierinformationen auch für einen oder mehrere Armteile, die sich vor diesem bestimmten Armteil befinden, ausreichend genau sind. Wie vorstehend angegeben, können die mehreren Armteile als eine Reihe von Armteilen von einer Basis des Roboters zu einem Roboterendeffektor angeordnet sein. Ein Armteil kann sich vor einem anderen Armteil befinden, wenn der erstgenannte Armteil dem letztgenannten Armteil in der Reihe der Armteile vorausgeht. Das Glied 1154D in den 11A bis11B kann sich beispielsweise vor dem Glied 1154E und der Roboterhand 1155 befinden. Wenn die Steuerschaltung 111 in einem Beispiel bestimmt, dass die Kalibrierinformationen (z. B. Kamerakalibrierinformationen) für z. B. die Roboterhand 1155 ausreichend genau sind, kann sie bestimmen, dass die Kalibrierung für vorgeschaltete Armteile, wie z. B. Glied 1154E, 1154D, 1154C, 1154B und 1154A, ausreichend genau ist. In diesem Beispiel kann die Steuerschaltung 111 bestimmen, dass die Kalibrierinformationen für einen Armteil ausreichend genau sind, wenn ein Abweichungsparameterwert, der mit einem an dem Armteil angeordneten Verifizierungssymbol verbunden ist, unter dem definierten Abweichungsschwellenwert liegt. Wenn die Steuerschaltung 111 bei einer Ausführungsform bestimmt, dass es einen Kalibrierfehler für einen bestimmten Armteil gibt, sodass die Kalibrierinformationen für diesen Armteil nicht ausreichend genau sind, kann die Steuerschaltung 111 bei einer Ausführungsform bestimmen, dass es einen Kalibrierfehler für einige oder alle nachgeschalteten Armteile gibt. Wenn die Steuerschaltung 111 beispielsweise bestimmt, dass die Kalibrierinformationen für einen bestimmten Roboterteil, wie z. B. das Glied 1154D, nicht ausreichend genau sind, kann die Steuerschaltung 111 bestimmen, dass die Kalibrierinformationen für nachgeschaltete Armteile, wie z. B. das Glied 1154E und die Roboterhand 1155, nicht ausreichend genau sind.
  • Bei einer Ausführungsform können ein oder mehrere Schritte des Verfahrens 1200, wie z. B. die Schritte 1203 bis 1215, als Reaktion auf einen Benutzerbefehl von der Robotersteuerung 110 oder einem anderen Computersystem ausgeführt werden. Ein Benutzer (z. B. ein Systembediener) kann beispielsweise manuell einen Kalibrierungsverifizierungsvorgang auslösen, der die Schritte 1203 bis 1215 umfasst. Bei einer Ausführungsform können die Schritte 1203 bis 1215 während einer Ruhezeit ausgeführt werden. Die Ruhezeit kann z. B. eine Zeitperiode sein, in der ein Roboterbetrieb, wie das Aufnehmen von Objekten von einem Förderband oder einer Palette, nicht ausgeführt wird. Bei einer Ausführungsform können ein oder mehrere Schritte des Verfahrens 1200, wie z. B. die Schritte 1203 bis 1215, als Reaktion auf eine definierte Auslösebedingung von der Robotersteuerung 110 oder einem anderen Computersystem ausgeführt werden. Wie vorstehend beschrieben, kann die Auslösebedingung z. B. ein ungeplantes Ereignis wie eine Kollision mit dem Roboter (z. B. 1150), ein Erdbeben oder eine andere Naturkatastrophe umfassen, die zu einer Veränderung am Roboter (z. B. 1150) und/oder an der Kamera (z. B. 1170) führen kann. In einigen Fällen kann die Auslösebedingung eine bestimmte Zeitperiode umfassen, die nach einem früheren Kalibriervorgang verstreicht, wie z. B. ein Kalibriervorgang zum Bestimmen der Kalibrierinformationen von Schritt 1201. In einem solchen Beispiel kann der frühere Kalibriervorgang ein erster Kalibriervorgang sein, während der Kalibriervorgang von Schritt 1215 ein zweiter Kalibriervorgang sein kann.
  • Zusätzliche Erörterung verschiedener Ausführungsformen
  • Ausführungsform A1 betrifft ein Robotersteuersystem, das eine Kommunikationsschnittstelle umfasst, die dazu 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 dazu konfiguriert ist, eine erste Kamerakalibrierung (oder allgemeiner einen Kalibriervorgang) auszuführen, um Kamerakalibrierinformationen zu bestimmen, die mit der Kamera verbunden sind (oder allgemeiner Kalibrierinformationen, die mit dem Robotersteuersystem verbunden sind). Die Steuerschaltung ist ferner dazu 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 dazu 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 dazu 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, i) zu bestimmen, ob der Abweichungsparameterwert einen definierten Schwellenwert überschreitet, und j) als Reaktion auf eine Bestimmung, dass der Abweichungsparameterwert den definierten Schwellenwert überschreitet, eine zweite Kamerakalibrierung auszuführen, um aktualisierte Kamerakalibrierinformationen zu bestimmen (oder allgemeiner, um einen zweiten Kalibrierungsvorgang auszuführen, um aktualisierte Kalibrierinformationen zu bestimmen).
  • Die Ausführungsform A2 umfasst das Robotersteuersystem von Ausführungsform A1, wobei die Steuerschaltung dazu konfiguriert ist, als Reaktion auf eine Bestimmung, dass der Abweichungsparameterwert den definierten Schwellenwert nicht überschreitet, den Roboter zu steuern, um den Roboterbetrieb nach der Ruhezeit fortzusetzen, ohne eine zusätzliche Kamerakalibrierung auszuführen, indem sie über die Kommunikationsschnittstelle einen vierten Bewegungsbefehl an den Roboter ausgibt.
  • Die Ausführungsform A3 umfasst das Robotersteuersystem von Ausführungsform A1 oder A2, 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 dazu 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.
  • Die Ausführungsform A4 umfasst das Robotersteuersystem von Ausführungsform A3, 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 dazu konfiguriert ist, die Kamera zu steuern, alle der mehreren Verifizierungsbilder in der Ruhezeit zu erfassen.
  • Ausführungsform A5 umfasst das Robotersteuersystem von Ausführungsform A3, 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 dazu 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 A6 umfasst das Robotersteuersystem von einer der Ausführungsformen A1 bis A5, 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 A7 umfasst das Robotersteuersystem von Ausführungsform A6, wobei die Steuerschaltung dazu konfiguriert ist, das Verifizierungssymbol im Referenzbild oder im Verifizierungsbild basierend auf dem definierten Verhältnis zu identifizieren.
  • Die Ausführungsform A8 umfasst das Robotersteuersystem der Ausführungsform A7, wobei der Roboterarm ein darauf angeordnetes Kalibriermuster aufweist, wobei das Referenzbild das Verifizierungssymbol und das Kalibriermuster umfasst, wobei die Steuerschaltung dazu konfiguriert ist, zu bestimmen, ob ein Teil des Referenzbilds das Verifizierungssymbol oder das Kalibriermuster ist, durch Bestimmen, ob der Teil des Referenzbilds 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.
  • Die Ausführungsform A9 umfasst das Robotersteuersystem von einer der Ausführungsformen A1 bis A8, 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.
  • Die Ausführungsform A10 umfasst das Robotersteuersystem der Ausführungsform A9, wobei die Steuerschaltung dazu 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. Bei 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 A11 umfasst das Robotersteuersystem von einer der Ausführungsformen A1 bis A10, wobei die Steuerschaltung dazu 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.
  • Die Ausführungsform A12 umfasst das Robotersteuersystem von einer der Ausführungsformen A1 bis A11, wobei die Steuerschaltung ferner dazu 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.
  • Die Ausführungsform A13 umfasst das Robotersteuersystem der Ausführungsform A12, wobei die Steuerschaltung dazu 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.
  • Die Ausführungsform A14 umfasst das Robotersteuersystem von einer der Ausführungsformen A1 bis A13, wobei der eine oder die mehreren Referenzorte, an welche die Steuerschaltung konfiguriert ist, zu veranlassen, dass das Verifizierungssymbol mittels des Roboterarms bewegt wird, mehrere Referenzorte umfassen, die auf einer Oberfläche einer Kugel angeordnet sind, die in Bezug auf die Kamera konkav ist.
  • Die Ausführungsform A15 umfasst das Robotersteuersystem von Ausführungsform A14, wobei die Steuerschaltung ferner dazu 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.
  • Die Ausführungsform A16 umfasst das Robotersteuersystem von einer der Ausführungsformen A1 bis A15, wobei die Steuerschaltung dazu 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.
  • Die Ausführungsform A17 umfasst das Robotersteuersystem von einer der Ausführungsformen A1 bis A16, wobei die Steuerschaltung dazu konfiguriert ist, die Ruhezeit des Roboterbetriebs zu detektieren, indem sie eine Zeitperiode detektiert, während der der Roboter während des Roboterbetriebs frei von der Ausführung einer Roboteraufgabe ist.
  • Die Ausführungsform A18 umfasst das Robotersteuersystem von Ausführungsform A17, wobei die Steuerschaltung dazu konfiguriert ist, den Roboterarm zu steuern, mit Objekten auf einem Förderband zu interagieren, das von dem Roboterarm erreicht werden kann, wobei die Steuerschaltung dazu 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.
  • Die Ausführungsform B1 betrifft ein Computersystem, das eine Kommunikationsschnittstelle und eine Steuerschaltung umfasst. Die Kommunikationsschnittstelle ist konfiguriert zum Kommunizieren mit: (i) einer Kamera mit einem Kamerasichtfeld und (ii) einem Roboter mit einem Roboterarm mit mehreren Armteilen, die beweglich aneinander befestigt sind, und mit einer Gruppe von Verifizierungssymbolen, die an entsprechenden Armteilen der mehreren Armteile angeordnet sind. Die Steuerschaltung ist dazu konfiguriert, wenn sich der Roboterarm im Kamerasichtfeld befindet, ein Verfahren auszuführen, das umfasst: Ausgeben eines Bewegungsbefehls zum Steuern der Bewegung des Roboterarms, um einen Roboterbetrieb auszuführen, wobei der Bewegungsbefehl auf Kalibrierinformationen basiert; Bestimmen einer Gruppe von Referenzbildkoordinaten, wobei die Gruppe von Referenzbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in einem Referenzbild erscheint, wobei das Referenzbild ein Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist und von der Kamera während einer ersten Zeitperiode erzeugt wird, wenn sich der Roboterarm in einer ersten Pose befindet; Ausgeben eines zusätzlichen Bewegungsbefehls während einer zweiten Zeitperiode nach der ersten Zeitperiode, um den Roboterarm derart zu steuern, dass er sich in die erste Pose bewegt; Empfangen eines Verifizierungsbilds, das ein zusätzliches Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist und von der Kamera erzeugt wird, wenn der Roboterarm als Ergebnis des zusätzlichen Bewegungsbefehls in die erste Pose bewegt wurde; Bestimmen einer Gruppe von Verifizierungsbildkoordinaten, wobei die Gruppe von Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in dem Verifizierungsbild erscheint; Bestimmen einer Gruppe von entsprechenden Abweichungsparameterwerten, die auf entsprechenden Abweichungsbeträgen zwischen der Gruppe von Referenzbildkoordinaten und der Gruppe von Verifizierungsbildkoordinaten basieren, wobei die Gruppe von entsprechenden Abweichungsparameterwerten mit der Gruppe von Verifizierungssymbolen verbunden ist; Bestimmen, ob mindestens ein Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten einen definierten Abweichungsschwellenwert überschreitet; und Ausführen von mindestens einem der Folgenden als Reaktion auf eine Bestimmung, dass mindestens ein Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet: Ausgeben einer Benachrichtigung, dass mindestens einer von der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet, oder Ausführen eines Kalibriervorgangs zur Bestimmung aktualisierter Kalibrierinformationen. Die Steuerschaltung kann das Verfahren z. B. durch Ausführen von Befehlen auf einem nicht flüchtigen computerlesbaren Medium ausführen.
  • Die Ausführungsform B2 umfasst das Computersystem der Ausführungsform B1, wobei die erste Pose mit einer ersten zusätzlichen Bewegungsbefehlsausgabe während der ersten Zeitperiode verbunden ist, wobei der erste zusätzliche Bewegungsbefehl einen oder mehrere Betätigungsparameterwerte zur Steuerung des Roboterarms, sodass er sich in die erste Pose bewegt, aufweist, wobei das Referenzbild von der Kamera erzeugt wird, wenn sich der Roboterarm als Ergebnis des ersten zusätzlichen Bewegungsbefehls in der ersten Pose befindet. Ferner ist in dieser Ausführungsform der zusätzliche Bewegungsbefehl, der während der zweiten Zeitperiode ausgegeben wird, ein zweiter zusätzlicher Bewegungsbefehl und umfasst zudem den einen oder die mehreren Betätigungsparameterwerte.
  • Die Ausführungsform B3 umfasst das Computersystem von Ausführungsform B2, wobei jedes Verifizierungssymbol der Gruppe von Verifizierungssymbolen eine Kreisform aufweist, und wobei der eine oder die mehreren Betätigungsparameterwerte des ersten zusätzlichen Bewegungsbefehls und des zweiten zusätzlichen Bewegungsbefehls bewirken, dass die Gruppe von Verifizierungssymbolen derart positioniert wird, dass die Gruppe von Verifizierungssymbolen in dem Referenzbild und in dem Verifizierungsbild ohne Exzentrizität oder mit entsprechenden Beträgen an Exzentrizität erscheint, die kleiner als ein definierter Exzentrizitätsschwellenwert sind.
  • Die Ausführungsform B4 umfasst das Computersystem von einer der Ausführungsformen B1 bis B3, wobei die Steuerschaltung dazu konfiguriert ist, einen oder mehrere Betätigungsparameterwerte für den zusätzlichen Bewegungsbefehl zu bestimmen, die bewirken, dass jedes Verifizierungssymbol der Gruppe von Verifizierungssymbolen derart bewegt wird, dass es direkt der Kamera zugewandt ist.
  • Die Ausführungsform B5 umfasst das Computersystem der Ausführungsform B4, wobei der eine oder die mehreren Betätigungsparameterwerte bewirken, dass die Gruppe von Verifizierungssymbolen eine oder mehrere imaginäre Kugeln tangiert, die in Bezug auf die Kamera konkav sind.
  • Die Ausführungsform B6 umfasst das Computersystem von einer der Ausführungsformen B 1 bis B5, wobei, wenn mindestens ein Verifizierungssymbol der Gruppe von Verifizierungssymbolen als ein kreisförmiger Ring geformt ist, die Steuerschaltung dazu konfiguriert ist, das mindestens eine Verifizierungssymbol in dem Referenzbild und in dem Verifizierungsbild durch Identifizieren des kreisförmigen Rings zu identifizieren.
  • Die Ausführungsform B7 umfasst das Computersystem der Ausführungsform B6, wobei, wenn die Gruppe von Verifizierungssymbolen als entsprechende kreisförmige Ringe mit unterschiedlichen entsprechenden Größen geformt ist, die Steuerschaltung dazu konfiguriert ist, das mindestens eine Verifizierungssymbol basierend auf einer Größe eines entsprechenden kreisförmigen Rings, der das mindestens eine Verifizierungssymbol bildet, zu identifizieren.
  • Die Ausführungsform B8 umfasst das Computersystem von einer der Ausführungsformen B1 bis B7, wobei die Steuerschaltung dazu konfiguriert ist, mindestens ein Verifizierungssymbol der Gruppe von Verifizierungssymbolen in dem Referenzbild basierend auf einem definierten Modell, das eine Geometrie des Roboterarms beschreibt, zu identifizieren.
  • Die Ausführungsform B9 umfasst das Computersystem der Ausführungsform B8, wobei die Steuerschaltung dazu konfiguriert ist, basierend auf dem Modell eine Region innerhalb des Referenzbilds zu bestimmen, in der das mindestens eine Verifizierungssymbol erwartet wird, und nach dem mindestens einen Verifizierungssymbol innerhalb der Region des Referenzbilds zu suchen.
  • Die Ausführungsform B10 umfasst das Computersystem von einer der Ausführungsformen B1 bis B9, wobei die Steuerschaltung dazu konfiguriert ist, basierend auf einem Vergleich zwischen der Gruppe von entsprechenden Abweichungsparameterwerten eine Art eines Kalibrierfehlers zu bestimmen, der bewirkt, dass der mindestens eine Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, wobei die Art des Kalibrierfehlers angibt, ob ein Genauigkeitsverlust bei den Kalibrierinformationen repräsentativ für eine Änderung im Roboter ist, oder ob der Genauigkeitsverlust repräsentativ für eine Änderung in der Kamera ist.
  • Die Ausführungsform B 11 umfasst das Computersystem von Ausführungsform B10, wobei die Steuerschaltung dazu konfiguriert ist, zu bestimmen, ob die Gruppe von entsprechenden Abweichungsparameterwerten komplett den definierten Abweichungsschwellenwert überschreitet, und ob sich die Gruppe von entsprechenden Abweichungsparametern voneinander um mehr als einen definierten Gleichförmigkeitsschwellenwert unterscheiden. Die Steuerschaltung in dieser Ausführungsform ist ferner dazu konfiguriert, als Reaktion auf das Bestimmen, dass die Gruppe von entsprechenden Abweichungsparameterwerten komplett den definierten Abweichungsschwellenwert überschreitet und dass sie sich nicht um mehr als den definierten Gleichförmigkeitsschwellenwert voneinander unterscheiden, zu bestimmen, dass die Art des Kalibrierfehlers ein Kalibrierfehler ist, der für eine Änderung der Kamera repräsentativ ist.
  • Die Ausführungsform B12 umfasst das Computersystem der Ausführungsform B11, wobei die Steuerschaltung ferner dazu konfiguriert ist, als Reaktion auf eine Bestimmung, dass einer oder mehrere der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert nicht überschreiten, oder dass sich die Gruppe von entsprechenden Abweichungsparameterwerten voneinander um mehr als den definierten Gleichförmigkeitsschwellenwert unterscheiden, zu bestimmen, dass die Art des Kalibrierfehlers ein Kalibrierfehler ist, der für eine Änderung am Roboter repräsentativ ist.
  • Ausführungsform B13 umfasst das Computersystem von einer der Ausführungsformen B1 bis B12. Bei dieser Ausführungsform sind die Kalibrierinformationen mit einem ersten Kalibriervorgang verbunden und der Kalibriervorgang zum Erzeugen der aktualisierten Kalibrierinformationen ist ein zweiter Kalibriervorgang, der auf den ersten Kalibriervorgang folgt, wobei die Steuerschaltung dazu konfiguriert ist, den zusätzlichen Bewegungsbefehl auszugeben und als Reaktion auf eine definierte Auslösebedingung einen Kamerabefehl zum Empfangen des Verifizierungsbilds auszugeben. Die definierte Auslösebedingung umfasst mindestens eines von: einer definierten Zeitperiode, die seit dem ersten Kalibriervorgang verstrichen ist, oder einem Ereignis, das nicht von dem Computersystem geplant wurde und in einer Änderung am Roboter oder an der Kamera resultiert.
  • Ausführungsform B14 umfasst das Computersystem von einer der Ausführungsformen B1 bis B13, wobei, wenn die mehreren Roboterarmteile als eine Reihe von Armteilen von einer Basis des Roboters zu einem Roboterendeffektor angeordnet sind, die Steuerschaltung konfiguriert ist zum: Bestimmen, ob ein Abweichungsparameterwert für ein erstes Verifizierungssymbol der Gruppe von Verifizierungssymbolen den definierten Abweichungsschwellenwert überschreitet; Identifizieren, aus den mehreren Armteilen, eines ersten Armteils, an dem das erste Verifizierungssymbol angeordnet ist; und als Reaktion auf eine Bestimmung, dass der Abweichungsparameterwert für das erste Verifizierungssymbol den definierten Abweichungsschwellenwert nicht überschreitet, Bestimmen, dass die Kalibrierinformationen für den ersten Armteil und für mindestens einen zusätzlichen Armteil, der dem ersten Armteil in der Reihe von Armteilen vorausgeht, genau sind.
  • Die Ausführungsform B15 umfasst das Computersystem von einer der Ausführungsformen B1 bis B14, wobei, wenn das Computersystem mit einem für den Roboterbetrieb verwendeten Förderband in Kommunikation steht, die Steuerschaltung als Reaktion auf eine Bestimmung, dass der mindestens eine Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, dazu konfiguriert ist, zu bewirken, dass das Förderband gestoppt wird.
  • Die Ausführungsform B16 umfasst das Computersystem von einer der Ausführungsformen B1 bis B15, wobei das Referenzbild ein erstes Referenzbild ist, das mit der ersten Pose des Roboterarms verbunden ist, wobei das Verifizierungsbild ein erstes Verifizierungsbild ist, das mit der ersten Pose verbunden ist, wobei die Gruppe von Referenzbildkoordinaten eine erste Gruppe von Referenzbildkoordinaten ist, die mit der ersten Pose verbunden ist, und die Gruppe von Verifizierungsbildkoordinaten eine erste Gruppe von Verifizierungsbildkoordinaten ist, die mit der ersten Pose verbunden ist. Bei dieser Ausführungsform ist die Steuerschaltung konfiguriert zum: Bestimmen einer zweiten Gruppe von Referenzbildkoordinaten, wobei die zweite Gruppe von Referenzbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in einem zweiten Referenzbild erscheint, wobei das zweite Referenzbild von der Kamera erzeugt wird, wenn sich der Roboterarm in einer zweiten Pose befindet; Ausgeben, nachdem das zweite Referenzbild erzeugt ist, eines weiteren Bewegungsbefehls zum Steuern des Roboterarms, um den Roboterarm in die zweite Pose zu bewegen; Empfangen eines zweiten Verifizierungsbilds, das ebenfalls die Gruppe von Verifizierungssymbolen darstellt und von der Kamera erzeugt wird, wenn der Roboterarm als Ergebnis des weiteren Bewegungsbefehls in die zweite Pose bewegt wurde; und Bestimmen einer zweiten Gruppe von Verifizierungsbildkoordinaten, wobei die zweite Gruppe von Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in dem zweiten Verifizierungsbild erscheint. Bei dieser Ausführungsform basiert die Gruppe von entsprechenden Abweichungsparameterwerten ferner auf den entsprechenden Abweichungsbeträgen zwischen der zweiten Gruppe von Referenzbildkoordinaten und der zweiten Gruppe von Verifizierungsbildkoordinaten.
  • Obwohl vorstehend verschiedene Ausführungsformen beschrieben wurden, versteht es sich, dass sie nur als Veranschaulichungen und Beispiele für die vorliegende Erfindung und nicht als Beschränkung dargestellt sind. Es wird für einen Fachmann selbstverständlich sein, dass verschiedene Veränderungen an Form und Detail vorgenommen werden können, ohne von dem Geist und Umfang der Erfindung abzuweichen. Daher sollten die Breite und der Umfang der vorliegenden Erfindung durch keinerlei der vorstehend erörterten beispielhaften Ausführungsformen eingeschränkt werden, sondern sollten lediglich in Übereinstimmung mit den angefügten Ansprüchen und ihren Äquivalenten definiert werden. Es sollte auch verstanden werden, dass jedes Merkmal von jeder hierin erörterten Ausführungsform und von jeder hierin angeführten Referenz in Kombination mit den Merkmalen jeder anderen Ausführungsform verwendet werden kann. Alle hierin erörterten Patente und Veröffentlichungen werden hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/732832 [0001]
    • US 16/525004 [0001]
    • US 16/369630 [0001]
    • US 62/916798 [0001]
    • US 16/295940 [0008, 0041]

Claims (16)

  1. Computersystem, umfassend: eine Kommunikationsschnittstelle, die konfiguriert ist zum Kommunizieren mit: (i) einer Kamera mit einem Kamerasichtfeld und (ii) einem Roboter mit einem Roboterarm mit mehreren Armteilen, die beweglich aneinander befestigt sind, und mit einer Gruppe von Verifizierungssymbolen, die an entsprechenden Armteilen der mehreren Armteile angeordnet sind; und eine Steuerschaltung, die konfiguriert ist, wenn sich der Roboterarm in dem Kamerasichtfeld befindet, zum: Ausgeben eines Bewegungsbefehls zum Steuern der Bewegung des Roboterarms, um einen Roboterbetrieb auszuführen, wobei der Bewegungsbefehl auf Kalibrierinformationen basiert; Bestimmen einer Gruppe von Referenzbildkoordinaten, wobei die Gruppe von Referenzbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in einem Referenzbild erscheint, wobei das Referenzbild ein Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist und von der Kamera während einer ersten Zeitperiode erzeugt wird, wenn sich der Roboterarm in einer ersten Pose befindet; Ausgeben, während einer zweiten Zeitperiode nach der ersten Zeitperiode, eines zusätzlichen Bewegungsbefehls zum Steuern des Roboterarms, sodass er sich in die erste Pose bewegt; Empfangen eines Verifizierungsbilds, das ein zusätzliches Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist, und das von der Kamera erzeugt wird, wenn der Roboterarm infolge des zusätzlichen Bewegungsbefehls in die erste Pose bewegt wurde; Bestimmen einer Gruppe von Verifizierungsbildkoordinaten, wobei die Gruppe von Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in dem Verifizierungsbild erscheint; Bestimmen einer Gruppe von entsprechenden Abweichungsparameterwerten, die auf entsprechenden Abweichungsbeträgen zwischen der Gruppe von Referenzbildkoordinaten und der Gruppe von Verifizierungsbildkoordinaten basieren, wobei die Gruppe von entsprechenden Abweichungsparameterwerten mit der Gruppe von Verifizierungssymbolen verbunden ist, Bestimmen, ob mindestens ein Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten einen definierten Abweichungsschwellenwert überschreitet, und Ausführen von mindestens einem der Folgenden als Reaktion auf eine Bestimmung, dass mindestens ein Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet: Ausgeben einer Benachrichtigung, dass mindestens einer der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet, oder Ausführen eines Kalibriervorgangs zum Bestimmen aktualisierter Kalibrierinformationen.
  2. Computersystem nach Anspruch 1, wobei die erste Pose mit einer ersten zusätzlichen Bewegungsbefehlsausgabe während der ersten Zeitperiode verbunden ist, wobei der erste zusätzliche Bewegungsbefehl einen oder mehrere Betätigungsparameterwerte zur Steuerung des Roboterarms aufweist, sodass er sich in die erste Pose bewegt, wobei das Referenzbild von der Kamera erzeugt wird, wenn sich der Roboterarm als Ergebnis des ersten zusätzlichen Bewegungsbefehls in der ersten Pose befindet, und wobei der zusätzliche Bewegungsbefehl, der während der zweiten Zeitperiode ausgegeben wird, ein zweiter zusätzlicher Bewegungsbefehl ist und auch den einen oder die mehreren Betätigungsparameterwerte umfasst.
  3. Computersystem nach Anspruch 2, wobei jedes Verifizierungssymbol der Gruppe von Verifizierungssymbolen eine Kreisform aufweist, und wobei der eine oder die mehreren Betätigungsparameterwerte des ersten zusätzlichen Bewegungsbefehls und des zweiten zusätzlichen Bewegungsbefehls bewirken, dass die Gruppe von Verifizierungssymbolen derart positioniert wird, dass die Gruppe von Verifizierungssymbolen in dem Referenzbild und in dem Verifizierungsbild ohne Exzentrizität oder mit entsprechenden Beträgen an Exzentrizität erscheint, die kleiner als ein definierter Exzentrizitätsschwellenwert sind.
  4. Computersystem nach Anspruch 1, wobei die Steuerschaltung dazu konfiguriert ist, einen oder mehrere Betätigungsparameterwerte für den zusätzlichen Bewegungsbefehl zu bestimmen, der/die bewirkt/bewirken, dass jedes Verifizierungssymbol der Gruppe von Verifizierungssymbolen derart bewegt wird, dass es direkt der Kamera zugewandt ist; oder wobei die Steuerschaltung dazu konfiguriert ist, einen oder mehrere Betätigungsparameterwerte für den zusätzlichen Bewegungsbefehl zu bestimmen, der/die bewirkt/bewirken, dass jedes Verifizierungssymbol der Gruppe von Verifizierungssymbolen derart bewegt wird, dass es direkt der Kamera zugewandt ist, und wobei der eine oder die mehreren Betätigungsparameterwerte bewirkt/bewirken, dass die Gruppe von Verifizierungssymbolen eine oder mehrere imaginäre Kugeln tangiert, die in Bezug auf die Kamera konkav sind.
  5. Computersystem nach Anspruch 1, wobei, wenn mindestens ein Verifizierungssymbol der Gruppe von Verifizierungssymbolen als ein kreisförmiger Ring geformt ist, die Steuerschaltung dazu konfiguriert ist, das mindestens eine Verifizierungssymbol in dem Referenzbild und in dem Verifizierungsbild durch Identifizieren des kreisförmigen Rings zu identifizieren, oder wobei, wenn mindestens ein Verifikationssymbol der Gruppe von Verifikationssymbolen als ein kreisförmiger Ring geformt ist, die Steuerschaltung dazu konfiguriert ist, das mindestens eine Verifikationssymbol in dem Referenzbild und in dem Verifikationsbild durch Identifizieren des kreisförmigen Rings zu identifizieren, und wobei, wenn die Gruppe von Verifizierungssymbolen als entsprechende kreisförmige Ringe mit unterschiedlichen entsprechenden Größen geformt ist, die Steuerschaltung dazu konfiguriert ist, das mindestens eine Verifizierungssymbol basierend auf einer Größe eines entsprechenden kreisförmigen Rings, der das mindestens eine Verifizierungssymbol bildet, zu identifizieren.
  6. Computersystem nach Anspruch 1, wobei die Steuerschaltung dazu konfiguriert ist, mindestens ein Verifizierungssymbol der Gruppe von Verifizierungssymbolen in dem Referenzbild basierend auf einem definierten Modell, das eine Geometrie des Roboterarms beschreibt, zu identifizieren, oder wobei die Steuerschaltung dazu konfiguriert ist, das mindestens eine Verifizierungssymbol der Gruppe von Verifizierungssymbolen in dem Referenzbild basierend auf einem definierten Modell, das eine Geometrie des Roboterarms beschreibt, zu identifizieren, und wobei die Steuerschaltung dazu konfiguriert ist, basierend auf dem Modell, eine Region innerhalb des Referenzbilds, in der das Erscheinen des mindestens einen Verifizierungssymbols erwartet wird, zu bestimmen und nach dem mindestens einen Verifizierungssymbol innerhalb der Region des Referenzbilds zu suchen.
  7. Computersystem nach Anspruch 1, wobei die Steuerschaltung dazu konfiguriert ist, basierend auf einem Vergleich zwischen der Gruppe von entsprechenden Abweichungsparameterwerten eine Art eines Kalibrierfehlers zu bestimmen, der bewirkt, dass der mindestens eine Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, wobei die Art des Kalibrierfehlers angibt, ob ein Genauigkeitsverlust bei den Kalibrierinformationen repräsentativ für eine Änderung im Roboter ist, oder ob der Genauigkeitsverlust repräsentativ für eine Änderung in der Kamera ist.
  8. Computersystem nach Anspruch 7, wobei die Steuerschaltung dazu konfiguriert ist, zu bestimmen, ob die Gruppe von entsprechenden Abweichungsparameterwerten komplett den definierten Abweichungsschwellenwert überschreitet, und ob sich die Gruppe von entsprechenden Abweichungsparametern voneinander um mehr als einen definierten Gleichförmigkeitsschwellenwert unterscheidet, und als Reaktion auf das Bestimmen, dass die Gruppe von entsprechenden Abweichungsparameterwerten komplett den definierten Abweichungsschwellenwert überschreitet und sich nicht um mehr als den definierten Gleichförmigkeitsschwellenwert voneinander unterscheidet, zu bestimmen, dass die Art des Kalibrierfehlers ein Kalibrierfehler ist, der für eine Änderung der Kamera repräsentativ ist.
  9. Computersystem nach Anspruch 8, wobei die Steuerschaltung ferner dazu konfiguriert ist, als Reaktion auf eine Bestimmung, dass einer oder mehrere der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert nicht überschreiten, oder dass sich die Gruppe von entsprechenden Abweichungsparameterwerten voneinander um mehr als den definierten Gleichförmigkeitsschwellenwert unterscheidet, zu bestimmen, dass die Art des Kalibrierfehlers ein Kalibrierfehler ist, der für eine Änderung des Roboters repräsentativ ist.
  10. Computersystem nach Anspruch 1, wobei die Kalibrierinformationen mit einem ersten Kalibriervorgang verbunden sind und der Kalibriervorgang zum Erzeugen der aktualisierten Kalibrierinformationen ein zweiter Kalibriervorgang ist, der auf den ersten Kalibriervorgang folgt, wobei die Steuerschaltung dazu konfiguriert ist, den zusätzlichen Bewegungsbefehl auszugeben und einen Kamerabefehl zum Empfangen des Verifizierungsbilds als Reaktion auf eine definierte Auslösebedingung auszugeben, wobei die definierte Auslösebedingung mindestens eines umfasst von: einer definierten Zeitperiode, die seit dem ersten Kalibriervorgang verstrichen ist, oder einem Ereignis, das von dem Computersystem nicht geplant war und das in einer Änderung am Roboter oder der Kamera resultiert.
  11. Computersystem nach Anspruch 1, wobei, wenn die mehreren Roboterarmteile als eine Reihe von Armteilen von einer Basis des Roboters zu einem Roboterendeffektor angeordnet sind, die Steuerschaltung konfiguriert ist zum: Bestimmen, ob ein Abweichungsparameterwert für ein erstes Verifizierungssymbol der Gruppe von Verifizierungssymbolen den definierten Abweichungsschwellenwert überschreitet; Identifizieren, aus den mehreren Armteilen, eines ersten Armteils, auf dem das erste Verifizierungssymbol angeordnet ist; und als Reaktion auf eine Bestimmung, dass der Wert des Abweichungsparameters für das erste Verifizierungssymbol den definierten Abweichungsschwellenwert nicht überschreitet, Bestimmen, dass die Kalibrierinformationen für den ersten Armteil und für mindestens einen zusätzlichen Armteil, der dem ersten Armteil in der Reihe der Armteile vorausgeht, genau sind.
  12. Computersystem nach Anspruch 1, wobei, wenn das Computersystem mit einem für den Roboterbetrieb verwendeten Förderband in Kommunikation steht, die Steuerschaltung als Reaktion auf eine Bestimmung, dass der mindestens eine Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, dazu konfiguriert ist, zu bewirken, dass das Förderband gestoppt wird.
  13. Computersystem nach Anspruch 1, wobei das Referenzbild ein erstes Referenzbild ist, das mit der ersten Pose des Roboterarms verbunden ist, wobei das Verifizierungsbild ein erstes Verifizierungsbild ist, das mit der ersten Pose verbunden ist, wobei die Gruppe von Referenzbildkoordinaten eine erste Gruppe von Referenzbildkoordinaten ist, die mit der ersten Pose verbunden ist, und die Gruppe von Verifizierungsbildkoordinaten eine erste Gruppe von Verifizierungsbildkoordinaten ist, die mit der ersten Pose verbunden ist, wobei die Steuerschaltung konfiguriert ist zum: Bestimmen einer zweiten Gruppe von Referenzbildkoordinaten, wobei die zweite Gruppe von Referenzbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in einem zweiten Referenzbild erscheint, wobei das zweite Referenzbild von der Kamera erzeugt wird, wenn sich der Roboterarm in einer zweiten Pose befindet; Ausgeben, nach dem Erzeugen des zweiten Referenzbilds, eines weiteren Bewegungsbefehls zum Steuern des Roboterarms, um den Roboterarm in die zweite Pose zu bewegen; Empfangen eines zweiten Verifizierungsbilds, das ebenfalls die Gruppe von Verifizierungssymbolen darstellt und von der Kamera erzeugt wird, wenn der Roboterarm aufgrund des weiteren Bewegungsbefehls in die zweite Pose bewegt wurde; Bestimmen einer zweiten Gruppe von Verifizierungsbildkoordinaten, wobei die zweite Gruppe von Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in dem zweiten Verifizierungsbild erscheint, wobei die Gruppe von entsprechenden Abweichungsparameterwerten ferner auf entsprechenden Abweichungsbeträgen zwischen der zweiten Gruppe von Referenzbildkoordinaten und der zweiten Gruppe von Verifizierungsbildkoordinaten basiert.
  14. Nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Befehlen, die bei Ausführung durch eine Steuerschaltung eines Computersystems die Steuerschaltung veranlassen zum Ausgeben eines Bewegungsbefehls, der auf Kalibrierinformationen basiert, wobei das Computersystem konfiguriert ist zum Kommunizieren mit: (i) einer Kamera mit einem Kamerasichtfeld und (ii) einem Roboter mit einem Roboterarm, der mehrere Armteile umfasst, die beweglich aneinander befestigt sind, und der eine Gruppe von Verifizierungssymbolen umfasst, die an entsprechenden Armteilen der mehreren Armteile angeordnet sind, und wobei der Bewegungsbefehl zum Steuern der Bewegung des Roboterarms dient, um einen Roboterbetrieb auszuführen; Bestimmen einer Gruppe von Referenzbildkoordinaten, wobei die Gruppe von Referenzbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in einem Referenzbild erscheint, wobei das Referenzbild ein Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist und von der Kamera während einer ersten Zeitperiode erzeugt wird, wenn sich der Roboterarm in einer ersten Pose befindet; Ausgeben, während einer zweiten Zeitperiode nach der ersten Zeitperiode, eines zusätzlichen Bewegungsbefehls zum Steuern des Roboterarms, sodass er sich in die erste Pose bewegt; Empfangen eines Verifizierungsbilds, das ein zusätzliches Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist, und das von der Kamera erzeugt wird, wenn der Roboterarm infolge des zusätzlichen Bewegungsbefehls in die erste Pose bewegt wurde; Bestimmen einer Gruppe von Verifizierungsbildkoordinaten, wobei die Gruppe von Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in dem Verifizierungsbild erscheint; Bestimmen einer Gruppe von entsprechenden Abweichungsparameterwerten, die auf entsprechenden Abweichungsbeträgen zwischen der Gruppe von Referenzbildkoordinaten und der Gruppe von Verifizierungsbildkoordinaten basieren, wobei die Gruppe von entsprechenden Abweichungsparameterwerten mit der Gruppe von Verifizierungssymbolen verbunden ist, Bestimmen, ob mindestens ein Abweichungsparameterwert der Gruppe von entsprechenden Abweichungsparameterwerten einen definierten Abweichungsschwellenwert überschreitet, und Ausführen von mindestens einem der Folgenden als Reaktion auf eine Bestimmung, dass mindestens einer der Abweichungsparameterwerte der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet: Ausgeben einer Benachrichtigung, dass mindestens einer der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet, oder Ausführen eines Kalibriervorgangs zum Bestimmen aktualisierter Kalibrierinformationen.
  15. Nicht flüchtiges computerlesbares Medium nach Anspruch 14, wobei die erste Pose mit einer ersten zusätzlichen Bewegungsbefehlsausgabe während der ersten Zeitperiode verbunden ist und der erste zusätzliche Bewegungsbefehl einen oder mehrere Betätigungsparameterwerte zum Steuern des Roboterarms aufweist, sodass er sich in die erste Pose bewegt, wobei der zusätzliche Bewegungsbefehl, der während der zweiten Zeitperiode ausgegeben wird, ein zweiter zusätzlicher Bewegungsbefehl ist und auch den einen oder die mehreren Betätigungsparameterwerte umfasst; oder wobei die Befehle bei Ausführung durch die Steuerschaltung die Steuerschaltung ferner dazu veranlassen, basierend auf einem Vergleich zwischen der Gruppe von entsprechenden Abweichungsparameterwerten eine Art von Kalibrierfehler zu bestimmen, der bewirkt, dass der mindestens eine Abweichungsparameterwert den definierten Abweichungsschwellenwert überschreitet, wobei die Art des Kalibrierfehlers angibt, ob ein Genauigkeitsverlust bei den Kalibrierinformationen für eine Änderung im Roboter repräsentativ ist, oder ob der Genauigkeitsverlust für eine Änderung in der Kamera repräsentativ ist.
  16. Verfahren, das durch ein Computersystem ausgeführt wird, umfassend: Ausgeben, durch das Computersystem, eines Bewegungsbefehls, der auf Kalibrierinformationen basiert, wobei das Computersystem konfiguriert ist zum Kommunizieren mit: (i) einer Kamera mit einem Kamerasichtfeld und (ii) einem Roboter mit einem Roboterarm mit mehreren Armteilen, die beweglich aneinander befestigt sind, und mit einer Gruppe von Verifizierungssymbolen, die an entsprechenden Armteilen der mehreren Armteile angeordnet sind, und wobei der Bewegungsbefehl zum Steuern der Bewegung des Roboterarms dient, um einen Roboterbetrieb auszuführen; Bestimmen, durch das Computersystem, einer Gruppe von Referenzbildkoordinaten, wobei die Gruppe von Referenzbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in einem Referenzbild erscheint, wobei das Referenzbild ein Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist und von der Kamera während einer ersten Zeitperiode erzeugt wird, wenn sich der Roboterarm in einer ersten Pose befindet; Ausgeben, durch das Computersystem, während einer zweiten Zeitperiode nach der ersten Zeitperiode, eines zusätzlichen Bewegungsbefehls zum Steuern des Roboterarms, sodass er sich in die erste Pose bewegt; Empfangen eines Verifizierungsbilds durch das Computersystem, wobei das Verifizierungsbild ein zusätzliches Bild zum Darstellen der Gruppe von Verifizierungssymbolen ist und von der Kamera erzeugt wird, wenn der Roboterarm als Ergebnis des zusätzlichen Bewegungsbefehls in die erste Pose bewegt wurde; Bestimmen einer Gruppe von Verifizierungsbildkoordinaten durch das Computersystem, wobei die Gruppe von Verifizierungsbildkoordinaten entsprechende Koordinaten sind, an denen die Gruppe von Verifizierungssymbolen in dem Verifizierungsbild erscheint; Bestimmen, durch das Computersystem, einer Gruppe von entsprechenden Abweichungsparameterwerten, die auf entsprechenden Abweichungsbeträgen zwischen der Gruppe von Referenzbildkoordinaten und der Gruppe von Verifizierungsbildkoordinaten basieren, wobei die Gruppe von entsprechenden Abweichungsparameterwerten mit der Gruppe von Verifizierungssymbolen verbunden ist, Bestimmen, durch das Computersystem, dass mindestens ein Abweichungsparameter von der Gruppe von entsprechenden Abweichungsparameterwerten einen definierten Abweichungsschwellenwert überschreitet, und Ausführen von mindestens einem der Folgenden, durch das Computersystem als Reaktion auf eine Bestimmung, dass mindestens einer der Abweichungsparameterwerte der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet: Ausgeben einer Benachrichtigung, dass mindestens einer der Gruppe von entsprechenden Abweichungsparameterwerten den definierten Abweichungsschwellenwert überschreitet, oder Ausführen eines Kalibriervorgangs zum Bestimmen aktualisierter Kalibrierinformationen.
DE102020119453.6A 2019-10-18 2020-07-23 Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung Active DE102020119453B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962916798P 2019-10-18 2019-10-18
US62/916,798 2019-10-18
US16/864,071 US10906184B2 (en) 2019-03-29 2020-04-30 Method and control system for verifying and updating camera calibration for robot control
US16/864,071 2020-04-30

Publications (2)

Publication Number Publication Date
DE102020119453A1 true DE102020119453A1 (de) 2021-04-22
DE102020119453B4 DE102020119453B4 (de) 2022-06-09

Family

ID=73836090

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102020119453.6A Active DE102020119453B4 (de) 2019-10-18 2020-07-23 Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung
DE102020127343.6A Pending DE102020127343A1 (de) 2019-10-18 2020-10-16 Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE102020127343.6A Pending DE102020127343A1 (de) 2019-10-18 2020-10-16 Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung

Country Status (3)

Country Link
JP (2) JP6803633B1 (de)
CN (1) CN112677146A (de)
DE (2) DE102020119453B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117177845A (zh) * 2021-04-20 2023-12-05 发那科株式会社 机器人
WO2023047591A1 (ja) * 2021-09-27 2023-03-30 ファナック株式会社 機構誤差パラメータを較正する較正装置および機構誤差パラメータの較正の必要性を判定する判定装置
JP7326401B2 (ja) * 2021-10-28 2023-08-15 株式会社安川電機 異常推定システム、異常推定方法、及びプログラム
CN114378825B (zh) * 2022-01-21 2023-05-12 四川长虹智能制造技术有限公司 一种多相机视觉定位方法、系统及电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07120211B2 (ja) * 1986-12-26 1995-12-20 トヨタ自動車株式会社 知能ロボツトにおける座標合わせ方法
JPH02183102A (ja) * 1989-01-10 1990-07-17 Fanuc Ltd 視覚センサにおけるキャリブレーション自動調整方式
JP2806604B2 (ja) * 1990-06-29 1998-09-30 ファナック株式会社 カメラの位置ずれ検出方法
JPH0511822A (ja) * 1991-07-03 1993-01-22 Fanuc Ltd ロボツトの協調作業方式
JPH05301195A (ja) * 1992-04-23 1993-11-16 Fanuc Ltd 視覚センサにおけるカメラ位置ずれ検出方法
JP2003117861A (ja) 2001-10-15 2003-04-23 Denso Corp ロボットの位置補正システム
JP5949242B2 (ja) * 2012-07-11 2016-07-06 セイコーエプソン株式会社 ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム
DE102014209371B4 (de) 2013-05-17 2018-11-15 pmdtechnologies ag System zur Steuerung einer Arbeitsmaschine mit einem Ausleger
DE102014215321A1 (de) 2014-08-04 2016-02-04 Bayerische Motoren Werke Aktiengesellschaft Robotersystem und Verfahren zum Kalibrieren von Achsen eines Roboters
JP2016078195A (ja) * 2014-10-21 2016-05-16 セイコーエプソン株式会社 ロボットシステム、ロボット、制御装置及びロボットの制御方法
US9916506B1 (en) * 2015-07-25 2018-03-13 X Development Llc Invisible fiducial markers on a robot to visualize the robot in augmented reality
DE102015221337A1 (de) * 2015-10-30 2017-05-04 Keba Ag Verfahren und Steuerungssystem zum Steuern der Bewegungen von Gelenkarmen eines Industrieroboters sowie dabei eingesetztes Bewegungsvorgabemittel
JP2018001333A (ja) * 2016-06-30 2018-01-11 セイコーエプソン株式会社 校正ボード、ロボット、及び検出方法
DE102016225613A1 (de) 2016-12-20 2018-06-21 Kuka Roboter Gmbh Verfahren zum Kalibrieren eines Manipulators eines diagnostischen und/oder therapeutischen Manipulatorsystems
JP6707485B2 (ja) * 2017-03-22 2020-06-10 株式会社東芝 物体ハンドリング装置およびその較正方法
DE102017209178B4 (de) 2017-05-31 2021-09-02 Carl Zeiss Industrielle Messtechnik Gmbh Verfahren zur Ermittlung der Raumlage eines bewegten Koordinatensystems, eines Messpunkts seines Sensors oder eines Arbeitspunktes eines Werkzeugs bei einem Roboter
JP7109161B2 (ja) * 2017-06-13 2022-07-29 川崎重工業株式会社 多関節ロボットの機構モデルパラメータ推定方法
US10369698B1 (en) 2019-03-07 2019-08-06 Mujin, Inc. Method and system for performing automatic camera calibration for robot control

Also Published As

Publication number Publication date
DE102020127343A1 (de) 2021-04-22
DE102020119453B4 (de) 2022-06-09
JP6803633B1 (ja) 2020-12-23
JP2021066008A (ja) 2021-04-30
JP2021066011A (ja) 2021-04-30
CN112677146A (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
DE102020106973B4 (de) Verfahren und Steuerungssystem zum Verifizieren und Aktualisieren einer Kamerakalibrierung zur Robotersteuerung
DE102020119453A1 (de) Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung
DE102020105655B4 (de) Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung zur Robotersteuerung
DE102020109056A1 (de) Verfahren und steuerungssystem zum aktualisieren einer kamerakalibrierung zur robotersteuerung
DE102016212695B4 (de) Industrieroboter
EP3618980B1 (de) Verfahren und systeme zur verbesserten qualitätsprüfung von produkten unter verwendung eines roboters
DE60309467T2 (de) Sichtungs-System
DE102018129143B4 (de) Variabler messobjektabhängiger Kameraaufbau und Kalibrierung davon
DE102015015194A1 (de) Bildverarbeitungsvorrichtung und -verfahren und Programm
DE102019003334A1 (de) Robotersystem und Steuerverfahren für ein Robotersystem zum Entnehmen von Werkstücken aus loser Schüttung
DE102020120526A1 (de) Verfahren und computersystem zur objektidentifizierung
DE102016008606A1 (de) Werkstückpositionierungsvorrichtung zum Positionieren eines Werkstücks
DE112019000097B4 (de) Steuervorrichtung, Arbeitsroboter, Programm und Steuerverfahren
DE102012102915A1 (de) Verfahren und Vorrichtung zur optischen Bestimmung einer Position und/oder Orientierung eines Objekts im Raum
DE102008042261B4 (de) Verfahren zur flexiblen Handhabung von Objekten mit einem Handhabungsgerät und eine Anordnung für ein Handhabungsgerät
DE102021201369A1 (de) Verfahren und System zur Bestimmung einer Okklusion bzw. Verdeckung innerhalb eines Kamerasichtfelds
DE102015111080A1 (de) Robotervorrichtung mit maschinellem Sehen
DE102008042260B4 (de) Verfahren zur flexiblen Handhabung von Objekten mit einem Handhabungsgerät und eine Anordnung für ein Handhabungsgerät
DE102020127340A1 (de) Verfahren und system zum bestimmen von posen für eine kamerakalibrierung
DE102019201526A1 (de) Verfahren und System zum Erfassen und Messen der Position eines Bauteils gegenüber einer Referenzposition sowie der Verschiebung und der Verdrehung eines sich relativ zu einem Bezugssystem bewegenden Bauteils
DE102016120809B4 (de) Verfahren zum robotergestützten Einpassen eines männlichen Bauteils in ein weibliches Bauteil
DE112018007729B4 (de) Maschinelle Lernvorrichtung und mit dieser ausgestattetes Robotersystem
EP4326500A1 (de) Ansteuerung eines industrieroboters für eine greifaufgabe
DE10159574A1 (de) Vorrichtung und Verfahren zur Korrektur der Bewegung von Greif- und Bearbeitungswerkzeugen
DE102021102493A1 (de) Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final