VERWEIS AUF VERWANDTE ANMELDUNGENREFERENCE TO RELATED APPLICATIONS
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.The present application is a continuation of the United States patent application 16 / 732,832 with the title "Method and Control System for Verifying and Updating Camera Calibration for Robot Control," filed January 2, 2020 , which is a continuation of the US patent application 16 / 525.004 with the title "Method and Control System for Verifying and Updating Camera Calibration for Robot Control," filed July 29, 2019 which is a continuation of the US patent application 16 / 369,630 with the title "Method and Control System for Verifying and Updating Camera Calibration for Robot Control," filed March 29, 2019 the entire contents of which are incorporated herein by reference. This application also claims priority to U.S. Provisional Application No. 62 / 916,798 entitled "Method and Control System for Verifying Calibration for Robot Control," the entire contents of which are also incorporated herein by reference.
GEBIET DER ERFINDUNGFIELD OF THE INVENTION
Die vorliegende Erfindung betrifft ein Verfahren und ein Steuerungssystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung.The present invention relates to a method and a control system for verifying and updating calibration information for robot control.
HINTERGRUNDBACKGROUND
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.As automation increases, robots are used in more environments, such as warehouse and manufacturing environments. For example, robots can be used to load and unload items on a pallet in a warehouse, or to pick up items from a conveyor belt in a factory. The movement of the robot can be fixed or can be based on an input such as an image that is captured by a camera in the warehouse or the factory. In the latter situation, a calibration process can be performed to determine a property of the camera and to determine a relationship between the camera and an environment in which the robot is located. The calibration process can generate calibration information that is used to control the robot. In some implementations, the calibration process can involve manual operation by a person who can manually control movements of the robot or the camera to capture an image of the robot.
KURZDARSTELLUNGSHORT REPRESENTATION
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.One aspect of the embodiments herein relates to performing a calibration verification for robot control, e.g. B. the verification of the camera calibration or another system calibration. The calibration verification can be carried out by a robotic control system comprising a communication interface and a control circuit. The communication interface can be configured to communicate with a robot having a base and a robot arm with a verification symbol arranged thereon and to communicate with a camera with a camera field of view. The control circuitry of the robot control system can be configured to perform the camera calibration verification by: a) performing a first calibration process (e.g., a first camera calibration) to determine calibration information (e.g., camera calibration information), b) issuing a first movement command to the Communication interface, wherein the communication interface is configured to communicate the first movement command to the robot to cause the robot arm to move the verification symbol to a location within the camera's field of view during or after the first calibration process, the location being a reference location of one or more Reference locations for verifying the first calibration process are, c) receiving an image of the verification symbol via the communication interface from the camera, which is configured to capture the image of the verification symbol at the reference location, the image being a reference image d is for the verification, d) determining a reference image coordinate for the verification symbol, the reference image coordinate being a coordinate at which the verification symbol appears in the reference image, and e) outputting a second movement command based on the calibration information to the communication interface, wherein the communication interface is configured to communicate the second movement command to the robot in order to cause a movement of the robot arm to carry out a robot operation.
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.In one embodiment, the control circuit is configured to further carry out the verification of the calibration by: f) detecting a rest time during robot operation, g) outputting a third movement command to the communication interface, wherein the communication interface is configured to communicate the third movement command to the robot in order to cause the robot arm to move the verification symbol to at least the reference location during the rest time, h) receiving, via the communication interface, an additional one Image of the verification symbol from the camera which is configured to capture the additional image of the verification symbol during the rest time at least at the reference location, the additional image being a verification image for the verification, i) determining a verification image coordinate which is used for the verification, wherein the verification image coordinate is a coordinate at which the verification symbol appears in the verification image, j) determining a deviation parameter value based on an amount of deviation between the reference image coordinate and the verification image coo rdinate, wherein the reference image coordinate and the verification image coordinate are both connected to the reference location, the deviation parameter value being a change since the first calibration process in the camera with which the communication interface is configured to communicate, or a change since the first calibration process in a relationship between the camera and indicates to the robot with which the communication interface is configured to communicate, k) determining whether the deviation parameter value exceeds a defined threshold value, and 1) executing, in response to a determination that the deviation parameter value exceeds the defined threshold value, a second calibration process ( z. A second camera calibration event) to determine updated calibration information (e.g. updated camera calibration information).
FigurenlisteFigure list
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.
The foregoing and other features, objects, and advantages of the invention will become apparent from the following description of embodiments as illustrated in the accompanying drawings. The accompanying drawings, which are incorporated herein and form a part of the specification, also serve to explain the principles of the invention and to enable any person skilled in the relevant art to make and use the invention. The drawings are not to scale. - The 1A and 1B FIG. 10 depicts block diagrams of systems in which verification of calibration information is performed in accordance with embodiments herein.
- 1C FIG. 10 illustrates a block diagram of a robotic control system configured to perform calibration verification according to an embodiment herein.
- 1D FIG. 10 illustrates a block diagram of a camera for which camera calibration is performed in accordance with an embodiment herein.
- 2 FIG. 10 depicts a system illustrating a robot controlled based on calibration information obtained from a calibration process, according to an embodiment herein.
- 3 Figure 12 shows a system for performing a calibration process according to an embodiment herein.
- The 4A and 4B provide a flow chart illustrating a method for performing verification of calibration information according to an embodiment herein.
- The 5A and 5B illustrate a system in which a verification icon is placed on a robot, the verification icon being used to perform verification of calibration information in accordance with an embodiment herein.
- 5C Figure 12 shows an example of a verification icon according to an embodiment herein.
- The 6A-6D show examples according to an embodiment herein of reference locations at which corresponding images of a verification symbol are captured.
- 7A Figure 12 shows an example of determining a reference image coordinate according to an embodiment herein.
- 7B Figure 10 shows an example of determining a verification image coordinate according to an embodiment herein.
- 8th FIG. 11 illustrates an exemplary timeline for verification of calibration information according to an embodiment herein.
- 9 provides a flow diagram illustrating an example method for performing verification of calibration information according to an embodiment herein.
- The 10A-10C illustrate a system in which a group of verification symbols is disposed on a robot, the group of verification symbols being used to perform verification of calibration information according to an embodiment herein.
- The 11A-11B illustrate a system in which a group of verification symbols is disposed on a robot, the group of verification symbols being used to perform verification of calibration information according to an embodiment herein.
- 11C Figure 3 illustrates a group of verification symbols having different corresponding sizes according to one embodiment thereof.
- The 12A and 12B provide a flow chart illustrating a method for performing verification of calibration information according to an embodiment herein.
- The 13A and 13B Figures 10, respectively, illustrate a reference image and a verification image associated with a first pose of a robotic arm.
- The 14A and 14B Figures 10, respectively, illustrate a reference image and a verification image associated with a second pose of a robotic arm.
AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION
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.The following detailed description is merely exemplary in nature and is not intended to limit the invention or the application and uses thereof. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, prior art, brief description or the following detailed description.
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.Embodiments described herein relate to verifying and / or updating calibration information used to control a robot, such as a robot used in a warehouse, manufacturing facility, or other environment. In particular, the calibration information can be carried out to facilitate the control of a robot operating system, and it can be determined by carrying out a calibration process which can be referred to as system calibration. System calibration can include calibration of a camera (which may be referred to as a camera calibration or camera calibration process), calibration of a robot (which may be referred to as robot calibration), calibration of another element of the robot operating system, or any combination thereof. The system calibration can e.g. B. executed by a robot control system (also referred to as a robot controller) to generate calibration information (e.g. camera calibration information) that facilitate an ability of the robot control system to target the robot based on images captured (e.g. photographed) by the camera Taxes. For example, the robot can be used to pick up a package in a warehouse, where the placement of a robot arm or other component of the robot can be based on images of the package captured by the camera. In this case, if the calibration information includes camera calibration information, the camera calibration information can be used together with the images of the package, for example to determine a location and an orientation of the package relative to the robot arm of the robot. If the system calibration includes camera calibration, the camera calibration may involve determining appropriate estimates of intrinsic camera parameters of the camera (which may also be referred to as internal parameters) and determining an estimate of a relationship between the camera and its external environment. An intrinsic parameter of the camera can have one or more parameter values, such as a matrix, a vector or a scalar value. Further examples of an intrinsic parameter are a projection matrix and a distortion parameter. In one case, camera calibration may include determining the camera position with respect to a fixed position in an external environment, which can be expressed as a transformation function representing the relationship between the camera and the fixed position in the external environment. In some cases, the camera calibration can be carried out with the aid of a calibration pattern, which can have pattern elements that can be arranged at defined locations on the calibration pattern. The camera can capture an image of the pattern elements of the calibration pattern (also referred to as a calibration image) and the camera calibration can be carried out based on the comparison of an image of the pattern elements with the defined locations of the pattern elements. Camera calibration is described in U.S. Application No. 16 / 295,940 (File Number MJ0021US1) entitled "METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION FOR ROBOT CONTROL," the entire contents of which are incorporated herein by reference.
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.As mentioned above, one aspect of the present disclosure relates to verifying whether an earlier camera calibration or other calibration process is still correct at a later time. The camera calibration performed at the earlier point in time can generate camera calibration information reflecting a property of the camera at that point in time, such as an intrinsic parameter of the camera or a relationship between the camera and its external environment at that point in time. In some cases, a previous camera calibration may lose accuracy over time as the characteristics of the camera can change over time. In a first example, an intrinsic parameter of the camera can change over time. Such a change can e.g. B. caused by a temperature change, which changes a shape of a housing and / or a lens of the camera. In a second example, a relationship between the camera and its external environment can change over time. The camera can, for example, shift in its position or orientation relative to, for example, a base of the robot or a location in a warehouse. Such a change can e.g. B. from a change in temperature that expands or contracts a component used to mount the camera, from a person or other object striking the camera, from vibration in the external environment of the camera (e.g. B. a warehouse), by a force caused by the weight of the camera (ie by gravity) or by some other factor. These changes could render the camera calibration information or other calibration information out of date, and later using this camera calibration information or other calibration information to position a robotic arm or other component of the robot could result in errors. In other words, if a property associated with the camera has changed over time, but the camera calibration information is not updated to reflect such a change, the robot may operate based on outdated or otherwise incorrect camera calibration information, causing undesirable errors in the robot's operation. To address the possibility that changes in one or more properties of the camera may occur, a robot control system can automatically perform a verification that detects when camera calibration information from a camera calibration is no longer sufficiently accurate (or more generally when calibration information from a calibration process is no longer accurate are sufficiently accurate). Detecting such a condition can provide an indication of a change in a property of the camera or other element of a robot operating system. If the verification detects that the calibration information is no longer sufficiently accurate, the robot control system can perform a calibration process to determine updated calibration information that may reflect a more recent property or properties of the camera or other element of the robot operating system. The updated calibration information can be used to control the placement of the robot arm or any other aspect of robot operation. Accordingly, an automatic check of the calibration information and / or an update of the calibration information is carried out to ensure that the robot is operating based on correct information about one or more properties associated with the camera or another element of the robot operating system.
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.One aspect of the embodiments herein relates to verifying calibration information for a camera by comparing a reference image captured by the camera with a verification image captured by the camera. In some cases, the reference image can be an image of an object captured when the object was previously in a particular location, and the verification image can be an image of the object captured in the same location at a later time . During the verification, it can be determined whether there is too great a deviation between the reference image and the verification image, such as, for example, whether the deviation exceeds a certain threshold value. In some implementations, the object can be a verification icon. More specifically, a robot arm or other component of the robot may have a verification icon that is used to verify the calibration information. Both the reference image and the verification image can capture or otherwise include the verification symbol, and the robotic control system can compare the two images by comparing an appearance of the verification symbol in the reference image with an appearance of the verification symbol in the verification image. For example, after the robot control system has performed a calibration process that generates calibration information at a certain point in time, the robot control system can control the robot arm (e.g. via a movement command) in such a way that it places the verification symbol in a number of predefined locations within the field of view of the camera ( also known as the camera's field of view), which locations can be used as a set of reference locations for verification. The camera can take corresponding reference images of the verification symbol at the series of reference locations. In some cases, the reference images can be captured immediately after the calibration process. The movement of the robot arm, or in particular a movement command that is used to move the robot arm, can be based on the calibration information be based on the calibration process being carried out or be independent of the calibration information. In some cases, the reference images can be captured before the robot starts robot operation. After the reference images have been captured, the robot can be considered ready to start robot operation to perform a task, and the robot control system can e.g. B. control the positioning of the robot arm based on images subsequently captured by the camera.
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.As mentioned above, the reference images can be compared with subsequently acquired verification images. In one embodiment, the verification images may be captured during one or more rest periods that are detected by the robotic control system. In particular, at the beginning of robot operation, the robot can begin performing robot tasks (e.g. by interacting with packages or other objects). While the robot is performing the robot operation, the robot control system can detect one or more rest periods for the robot. In some cases, the rest time may be a period of time in which the robot is free from performing a robot task during robot operation. In some cases, the robot control system may schedule robot operation based on detecting or otherwise anticipating objects with which the robot must interact and detect a rest time based on detecting or otherwise anticipating the absence of objects with which the robot must interact.
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.During the rest period (s), the robot control system can control the robot arm or other components of the robot (e.g. via a movement command) in such a way that it moves to the reference locations and (e.g. via a camera command) at each of the reference locations corresponding verification image captured. When the robot has a verification icon, the robot control system can more specifically control the robot arm to move the verification icon to the reference locations and capture the verification images. The robot control system can then determine how much the corresponding verification images deviate from corresponding reference images at corresponding reference points. In some cases, the deviation between the verification images and corresponding reference images can be expressed as a deviation parameter. If a value of the deviation parameter (also referred to as a deviation parameter value) exceeds a defined threshold value for the deviation parameter (which can also be referred to as a defined deviation threshold value), the robot control system can perform an additional calibration process (e.g. an additional camera calibration) in order to obtain updated calibration information ( e.g. updated camera calibration information) for the camera. When a deviation parameter value exceeds the defined deviation threshold, this condition can indicate that the use of previously generated calibration information can lead to an undesirable amount of error in robot operation. Therefore, in some cases, robot operation can be paused or stopped while the additional calibration process is in progress (the pause can be viewed as another rest period). After the additional calibration process is complete, a new set of reference images can be captured and robot operation can continue with the updated camera calibration information. During one or more subsequent rest periods, a new set of verification images can be acquired and the robot control system can carry out the verification of the additional calibration process by comparing the new set of reference images with the new set of verification images.
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.As mentioned above, the robot control system can carry out an additional calibration process if a deviation parameter value exceeds the defined deviation threshold value. If the deviation parameter value does not exceed the deviation threshold value, the robot operation can be continued after a rest period without the robot control system performing an additional calibration process. In this scenario, the camera can capture a new set of verification images at the appropriate reference locations during one or more subsequent rest periods. When the new set of verification images is acquired, the robot control system can again carry out a verification of the calibration information by determining how much the new set of verification images deviates from the corresponding reference images at the corresponding reference locations.
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.As mentioned above, the robot arm can have a verification symbol, such as a ring pattern, and the verification symbol can be captured from or otherwise contained in the reference images and the verification images. In one embodiment, the robot control system may determine a deviation between the reference images and the corresponding verification images based on respective locations where the verification symbol appears in the reference images and based on corresponding locations where the verification symbol appears in the verification images. The robot control system can, for example, determine a reference image coordinate for each reference location. The reference image coordinate for a particular location can be a coordinate where the Verification Icon appears in a reference image captured when the Verification Icon was placed at that reference location. In particular, the reference image coordinate can be linked to a specific reference location and relate to an image coordinate at which a verification symbol appears in a reference image, the reference image being captured by a camera when the verification symbol was placed at this reference location. In the above example, the image coordinate can refer to a coordinate in an image, such as a pixel coordinate. If the robot control system then places the verification symbol at a specific reference location at a later point in time and receives a corresponding verification image, the robot control system can determine a verification image coordinate. The verification image coordinate can also be associated with the reference location and refer to an image coordinate (e.g. a pixel coordinate) at which the verification symbol appears in the verification image, the verification image being captured by the camera when the verification symbol was placed at the reference location. The robot control system can compare the reference image coordinate associated with a certain reference location with a verification image coordinate associated with the same reference location. This comparison can be carried out for each reference location at which a verification image and a reference image were captured.
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 one case, a reference image coordinate at which a verification symbol appears in a reference image may be a coordinate of a center of the verification symbol in the reference image (which is also referred to as a center coordinate of the verification symbol in the reference image). Similarly, a verification image coordinate at which the verification symbol appears in a verification image may be a coordinate of a center of the verification symbol in the verification image (which is also referred to as a center coordinate of the verification symbol in the verification image). For each reference location at which the robot arm and / or the verification symbol was when a corresponding verification image was captured, the robot control system can determine a deviation between the reference image coordinate associated with the reference location and the verification image coordinate associated with the same reference location. If the robot arm and / or the verification symbol have been placed at a plurality of reference locations, the robot control system can determine corresponding deviation amounts between corresponding reference image coordinates and corresponding verification image coordinates for the plurality of reference locations. The robot control system may further determine a value of a deviation parameter based on the respective deviation amounts between the reference image coordinates and the respective verification image coordinates for respective reference locations.
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 one case, the verification symbol may include multiple shapes that are concentric with one another such that the respective centers of the multiple shapes are in the same or substantially the same location in the verification symbol. For example, the verification symbol can be a ring pattern that includes two or more concentric circles. In some cases, when the reference image coordinate of a verification symbol is a center coordinate of the verification symbol in a reference image, the robot control system can determine a center coordinate of the verification symbol based on corresponding center coordinates of the plurality of shapes in the reference image, the center coordinate of a certain shape being a coordinate of a center of that shape. When the verification symbol is a ring pattern, the center coordinate of the ring pattern in a reference image can be determined as an average of a center coordinate of a first circle forming the ring pattern and a center coordinate of a second circle forming the ring pattern in the reference image. Similarly, a center coordinate of a verification symbol in a verification image can be determined based on the corresponding center coordinates of the plurality of shapes that make up the verification symbol in the verification image. In some cases, using multiple shapes to form the verification symbol can improve verification accuracy. For example, using the corresponding center coordinates of the plurality of shapes in an image to determine a center coordinate of the verification symbol can improve robustness of the verification against image noise. In particular, when an image of the verification symbol includes image noise, the image noise can reduce an accuracy with which the robot control system detects a center coordinate of a certain shape of the verification symbol. However, when the center coordinate of this shape is averaged with a center coordinate of another shape to determine a center coordinate of the verification symbol, the averaged center coordinate can reduce an effect of the image noise. As a result, accuracy in determining the center coordinate of the verification symbol can be improved.
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 one case, the verification symbol can have a plurality of regions with different corresponding colors, wherein corresponding areas of the plurality of regions can have a certain and defined relationship. For example, the verification symbol may have a first region with a first color (e.g. black) and a second region with a second color (e.g. white), with a The ratio of an area of the first region to an area of the second region is defined or otherwise known. The unique relationship can facilitate the identification of the verification symbol in an image, in particular if the image captures or otherwise includes other features, such as points of a calibration pattern. The robot arm that moves the verification symbol can, for example, also have the calibration pattern arranged on the robot arm. The robot control system can use the ratio to distinguish the verification symbol from the points of the calibration pattern. Since the ratio of the areas of the various regions of the verification symbol is defined as a unique ratio, the robot control system can identify the verification symbol in an image based on the defined ratio. In identifying the verification symbol appearing in an image, the robot control system can distinguish the verification symbol from the calibration pattern or other feature based on the defined relationship. In some cases, the verification symbol in the image can be identified as a part of the image having the plurality of regions with different corresponding colors and having the defined relationship between corresponding areas of the plurality of regions. If the robotic control system or another system or device determines that a certain part of the image does not have multiple regions each having different colors, or that corresponding areas of the multiple regions have a different ratio than the defined ratio, the robotic control system can determine that the part of the image is not the verification icon.
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.In one case, the robot control system can perform the verification based on a temperature surrounding the robot. For example, the robot control system may adjust the defined deviation threshold based on temperature (i.e., define a new value for the deviation threshold). For example, a temperature can affect different parts in the camera and / or in the robot, as some materials are sensitive and / or can expand / contract based on temperature. A change in temperature can cause one or more intrinsic parameters of the camera to change and / or to change the relationship between the camera and its external environment. In one embodiment, the deviation threshold can be set to have a first value when the temperature is outside a defined range, while the deviation threshold can be set to have a second value that is lower than the first value when the temperature is within the defined range. If the temperature is e.g. B. is within a defined normal operating temperature range (e.g. within 10 degrees of room temperature), then the deviation threshold can be the first value. If the temperature is outside the normal operating temperature range, then the deviation threshold can have the second value lower than the first value. The second value can be lower than the first value so that an additional calibration process can be more easily triggered if the temperature is outside the normal operating range, since the temperature outside the normal operating temperature range is more likely to change the camera or its relationship to the external environment and therefore more likely to cause errors in robot operation with previously generated camera calibration information or any other calibration information.
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.In one embodiment, the verification of the calibration information can be based on only a single reference location. Alternatively, the verification of the calibration information can be based on multiple reference locations. The reference locations can be any locations in the field of view of a camera or specific, defined locations. The reference locations can be defined, for example, as locations on a surface of at least one imaginary sphere that is concave with respect to the camera. At each reference location in this scenario, the robotic arm can be controlled to position the verification symbol such that the verification symbol is positioned tangential to the surface of the at least one imaginary sphere while facing the camera. This positioning may allow the verification icon to be better photographed or otherwise viewed head-on by the camera (with the verification icon facing directly towards the camera) so that an image of the verification icon will resemble a top view rather than a perspective view of the verification icon. For example, if the verification symbol is a ring pattern, positioning the ring pattern tangent to the surface of the imaginary sphere may allow the resulting image of the ring pattern to still appear circular rather than elliptical. The resulting image may have less or no perspective distortion (relative to a scenario where the ring pattern in the image appears elliptical). The lack of perspective distortion can facilitate an accurate determination of a central coordinate of the ring pattern. In some cases, the reference locations can be divided into several imaginary spheres, all of which are concave with respect to the camera. The plurality of imaginary spheres can have a common center and can be of different sizes, so that each imaginary sphere has a spherical surface, each of which is at a different distance from the camera. In some cases the camera can be a common center for all imaginary spheres.
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. 1A Figure 3 shows a block diagram of a robot operating system 100 (also as a system 100 for performing automatic camera calibration and automatic camera calibration verification. While some of the following examples discuss performing an automatic camera calibration and verifying the camera calibration information determined by the automatic camera calibration, these examples apply more generally to any type of automatic calibration process and to verifying any type of calibration information determined by the automatic calibration process, hold true. The robot operating system 100 includes a robot 150 , a robot control system 110 (also known as a robot controller) and a camera 170 . In one embodiment, the system can 100 are in a warehouse, production facility or other premises. The robot control system 110 may be configured to perform camera calibration, described in more detail below, to determine calibration information that will later be used to identify the robot 150 in such a way that it can operate a robot, e.g. B. the picking up of packages in the warehouse. The robot control system 110 can also be configured to perform a camera calibration verification, also discussed in more detail below, to verify that the camera calibration information is still sufficiently accurate. In some cases the robot control system is 110 configured to perform camera calibration and the robot 150 to perform a robot operation based on the camera calibration information. In some cases the robot control system can 110 form a single device (e.g. a single console or a single computer) that works with the robot 150 and the camera 170 communicates. In some cases the robot control system can 110 comprise multiple devices.
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.In some cases the robot control system can 110 specifically designed to perform camera calibration and / or review camera calibration, and can communicate the latest camera calibration information to another control system (also referred to as another controller, not shown) which then controls the robot 150 controls to perform a robot operation based on the latest camera calibration information. The robot 150 can be based on images taken by the camera 170 and positioned on the camera calibration information. In particular, the robot control system 110 in one embodiment, be configured to generate movement commands based on the images and the camera calibration information, and the movement commands to the robot 150 communicates to control the movement of his robotic arm. In some cases the robot control system is 110 configured to perform the camera calibration verification during a rest period of the robot operation. In some cases the robot control system is 110 configured to perform verification while performing a robot operation with the robot 150 to execute.
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.In one embodiment, the robotic control system can 110 configured to have wired or wireless communication with the robot 150 and the camera 170 to communicate. The robot control system 110 can for example be configured to work with the robot 150 and / or the camera 170 Communicate via an RS-232 interface, a universal serial bus (USB) interface, an Ethernet interface, a Bluetooth® interface, an IEEE 802.11 interface or any combination thereof. In one embodiment, the robotic control system can 110 to be configured with the robot 150 and / or the camera 170 communicate over a local computer bus such as a Peripheral Component Interconnect (PCI) bus.
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.In one embodiment, the robotic control system can 110 separate from the robot 150 and communicate with the robot via the wireless or wired connection described above. The robot control system 110 can for example be a single computer configured to work with the robot 150 and the camera 170 communicate over a wired connection or a wireless connection. In one embodiment, the robotic control system can 110 an integral part of the robot 150 his and with other components of the robot 150 communicate over the local computer bus discussed above. In some cases the robot control system can 110 be a dedicated control system (also known as a dedicated controller) that only controls the robot 150 controls. In other cases, the robot control system 110 configured to have multiple robots including the robot 150 to control. In one embodiment, the robotic control system is located 110 , the robot 150 and the camera 170 in the same premises (e.g. a warehouse). In one embodiment, the robotic control system can 110 away from the robot 150 and the camera 170 located and it can be configured to work with the robot 150 and the camera 170 Communicate over a network connection (e.g. a local area network (LAN) connection).
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.In one embodiment, the robotic control system can 110 be configured to take images of a calibration pattern 160 and / or one on the robot 150 arranged verification symbol 165 (e.g. on a Robot arm) from the camera 170 retrieve or otherwise receive. In some cases the robot control system can 110 be configured to use the camera 170 to control to capture such images. The robot control system 110 For example, it can be configured to generate a camera command that causes the camera 170 an image in a field of view of the camera 170 (also known as the camera's field of view) and the camera command over the wired or wireless connection to the camera 170 communicates. The same command can cause the camera 170 the image also to the robot control system 110 or more generally communicated to a storage device maintained by the robot control system 110 is accessible. The robot control system 110 can alternatively generate another camera command that causes the camera 170 after receiving the camera command, an image or images that it has captured to the robot control system 110 communicates. In one embodiment, the camera 170 Capture an image in your camera's field of view either periodically or automatically in response to a defined trigger condition, without a camera command from the robot control system 110 to need. In such an embodiment, the camera 170 also be configured to send the image to the robot control system 110 or more generally to a storage device maintained by the robot control system 110 is accessible, automatically, without a camera command from the robot control system 110 , to communicate.
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.In one embodiment, the robotic control system can 110 be configured to move the robot 150 to be controlled via movement commands issued by the robot control system 110 generated and via the wired or wireless connection to the robot 150 communicated. The robot 150 can be configured to use either or both of the calibration pattern 160 and the verification symbol 165 on the robot 150 available. 1B shows, for example, a robot operating system 100A with the verification symbol 165 without the presence of the calibration pattern 160 of 1A on the robot 150 is arranged. In one case, the verification icon 165 part of the robot 150 and permanently on the robot 150 be arranged. The verification symbol 165 can for example permanently on the robot 150 painted or part of a sticker or board that is permanent on the robot 150 is appropriate. In another case, the verification icon 165 be a separate component attached to the robot 150 can be attached and removed from it. The verification symbol 165 can be permanent on the robot 150 or may be a separate component attached thereto and from the robot 150 can be removed.
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.In one embodiment, the only images that are in the system 100 used to be the robot 150 to control, be the ones through the camera 170 are recorded. In another embodiment, the system 100 include multiple cameras and the robot 150 can be controlled by images from the multiple cameras.
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. 1B further illustrates an embodiment in which the robotic control system 110 with a user interface device 180 communicates. The user interface device 180 can be configured to interface with an operator of the robot 150 forms, such as an employee in a warehouse in which the robot is 150 is located. The user interface device 180 can e.g. B. comprise a tablet or desktop computer that provides a user interface, the information related to the robot operation 150 indicates. As mentioned above, the robot control system can 110 be configured such that it detects when a deviation parameter value exceeds a defined deviation threshold value. In one embodiment, the user interface device 180 issue an alarm or other warning to inform the operator of the value of the deviation parameter exceeding the defined deviation threshold.
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. 1C Figure 10 shows a block diagram of the robot control system 110 As illustrated in the block diagram, the robot control system comprises 110 a control circuit 111 , a communication interface 113 and a non-transitory computer readable medium 115 (e.g. memory). In one embodiment, the control circuit 111 one or more processors, a programmable logic circuit (PLC) or a programmable logic arrangement (PLA), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any other control circuit.
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.In one embodiment, the communication interface can 113 comprise one or more components that are configured to work with the camera 170 of 1A or 1B and the robot 150 of 1A or 1B to communicate. The communication interface 113 For example, may include communication circuitry configured to perform communication over a wired or wireless protocol. The communication circuit may, for example, be an RS-232 port controller, a USB controller, an Ethernet controller, a Bluetooth® controller, a PCI bus controller, any other communication circuitry or a combination thereof. In one embodiment, the control circuit 111 be configured such that it generates a movement command (e.g. a motor movement command) and the movement command to the communication interface 113 issues. In this embodiment, the communication interface 113 be configured to send the move command to the robot 150 communicates to the movement of a robotic arm or other component of the robot 150 to control. In one embodiment, the control circuit 111 be configured to generate a camera command and the camera command (e.g. image capture command) to the communication interface 113 to spend. In this embodiment, the communication interface 113 be configured to send the camera command to the camera 170 communicates to the camera 170 in such a way that it photographs an object in the camera's field of view or otherwise captures an image of it. In one embodiment, the communication interface can 113 be configured to take a picture or other data from the camera 170 to receive, and the control circuit 111 can be configured to take the image from the communication interface 113 to recieve.
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).In one embodiment, the non-transitory computer readable medium can 115 comprise a computer memory. The computer memory can e.g. B. Dynamic Random Access Memory (DRAM), integrated solid-state memory and / or a hard disk drive (HDD). In some cases, camera calibration can be performed by computer-executable instructions (e.g., computer code) residing on the non-transitory computer-readable medium 115 are stored, be implemented. In such cases, the control circuit 111 comprise one or more processors configured to execute the computer-executable instructions to perform camera calibration verification (e.g., those described in FIGS 4A , 4B and 9 illustrated steps).
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. 1D Figure 3 shows a block diagram of the camera 170 who have one or more lenses 171 , an image sensor 173 and a communication interface 175 includes. The communication interface 175 can be configured to do so with the robot control system 110 of 1A , 1B or 1C to communicate, and they can be the communication interface 113 of 1C of the robot control system 110 be similar to. In one embodiment, the one or more lenses 171 Focus light coming from outside the camera 170 on the image sensor 173 falls. In one embodiment, the image sensor 173 comprise an array of pixels configured to represent an image via corresponding pixel intensity values. The image sensor 173 may include a charge coupled device (CCD) sensor, a complementary metal oxide semiconductor (CMOS) sensor, a quantum image sensor (QIS), or any other image sensor.
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.The camera calibration can be performed as stated above to facilitate control of a robot based on images captured by a camera. For example poses 2 a robot operating system 200 dar (also as a system 200 is referred to) in which the images are used to represent a robot 250 to control a robot operation, such as picking up an object 292 in a warehouse. The system 200 can in particular an embodiment of the system 100 of 1A and includes a camera 270 , the robot 250 and the robot control system 110 . The camera 270 can be an embodiment of the camera 170 of 1A , 1B or 1D his and the robot 250 can be an embodiment of the robot 150 of 1A or 1B be. The camera 270 can be configured to take an image of the object 292 (e.g. a package for shipping) that is on a conveyor belt 293 located in the warehouse, and the robot control system 110 can be configured to use the robot 250 to control to the object 292 to record. When there is one or more objects on the conveyor belt 293 the robot control system 110 be configured to control the movement of the robot 250 to plan for capturing the objects. The robot control system 110 can in some cases be configured to detect a dormant time for robot operation by detecting when there are no objects on the conveyor belt 293 or when there are no objects on the conveyor belt 293 that are within reach of the robot 250 are located.
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.In the embodiment of 2 can the robot 250 One Base 252 and having a robotic arm relative to the base 252 is movable. In particular, the robot arm can have several links 254A to 254E and one on the limb 254E attached robotic hand 255 include. The multiple of the limbs 254A to 254E may be rotatable relative to one another and / or may be prismatic members that are linearly movable with respect to one another. There 2 the robot 250 that is used to pick up objects, the robotic hand can 255 the grippers 255A and 255B include those for gripping the object 292 be used. In one embodiment, the robotic control system can 110 configured to communicate a movement command to one or more of the limbs 254A to 254E to turn. The move command can be a low level command, such as motor move commands, or a high level command. When the movement command from the robot control system 110 is a high-level command, the robot can 150 be configured to convert the high-level command into a low-level command.
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.In one embodiment, the camera calibration information determined by the camera calibration describes a relationship between the camera 270 and the robot 250 or in particular a relationship between the camera 270 and a world point 294 that is relative to the base 252 of the robot 250 is stationary. The world point 294 can represent a world or other environment in which the robot is 250 and can be any imaginary point relative to the base 252 is stationary. In other words, the camera calibration information may include information relating to a relationship between the camera 270 and the world point 294 describe. In one embodiment, this relationship can include a location of the camera 270 relative to the world point 294 as well as an orientation of the camera 270 relative to a reference orientation for the robot 250 describe. The above relationship between the camera 270 and the world point 294 can be referred to as a camera-to-world relationship and can be used to represent a relationship between the camera 270 and the robot 250 be used. In some cases, the camera-to-world relationship can be used to establish a relationship between the camera 270 and the object 292 (also known as a camera-to-object relationship) and a relationship between the object 292 and the world point 294 (also known as the object-to-world relationship). The camera-to-object relationship and the object-to-world relationship can be used to control the robot 250 to control and the object 292 to record.
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.In one embodiment, the camera calibration information can be an intrinsic parameter of the camera 270 describe, where the intrinsic parameter can be any parameter, its value from a location and an orientation of the camera 270 is independent. The intrinsic camera parameters can be a property of the camera 270 such as their focal length, a size of their image sensor or a lens distortion effect caused by the camera 270 is introduced, characterize.
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.An example showing a detailed structure of an example of a robot 350 shows is in 3 illustrated having a robot operating system 300 represents which the robot operating system 110 in communication with a camera 370 and the robot 350 includes. The camera 370 can accordingly be an embodiment of the camera 170/270 of 1A , 1B , 1D or 2 his and the robot 350 can accordingly be an embodiment of the robot 150/250 of 1A , 1B or 2 be. The camera 370 may be able to take pictures within a field of view 330 capture. The robot 350 can be a base 352 and one relative to the base 352 include movable robotic arm. The robotic arm includes one or more links, such as the links 354A to 354E , and a robotic hand 355 . In one embodiment, the members 354A-354E be rotatably attached to each other. The Member 354A can for example at the robot base 352 by means of a connection 356A be rotatably mounted. The remaining links 354B to 354E can by means of the connections 356B to 356E be rotatably attached to each other. In one embodiment, the base 352 used to be the robot 350 at z. B. to attach a mounting frame or a mounting surface (z. B. the floor of a warehouse). In one embodiment, the robot can 350 comprise multiple motors configured to drive the robotic arm by rotating the links 354A to 354E to move. For example, one of the motors can be configured to be the first link 354A in relation to the compound 356A and the base 302 to rotate as indicated by the dotted arrow in 3 is shown. Similarly, other motors of the plurality of motors can be configured to use the links 354B to 354E to turn. The multiple motors can be controlled by the robot control system 110 being controlled. 3 also shows the robot hand 355 that is firmly attached to the fifth link 354E is arranged. The robot hand 355 can be a calibration pattern 320 have so that the robot control system 110 Images of the calibration pattern 320 about the camera 370 capture and a camera calibration based on the captured images of the calibration pattern 320 can perform. The robot control system 110 can for example move the robot arm in such a way that the calibration pattern 320 within the camera's field of view 330 and for the camera 370 can be visible when the camera 370 for capturing the images of the calibration pattern 320 (also known as calibration images) is used. After the camera calibration is done, the robot hand can 355 removed and replaced with a different robotic hand, such as a robotic hand with a verification symbol attached, as described in more detail below.
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.As mentioned above, according to one embodiment, calibration verification may involve comparing a reference image coordinate at which a verification symbol appears in a reference image with a verification image coordinate at which the verification symbol appears in a verification image. The comparison can determine a deviation between the verification image coordinate and the reference image coordinate, and the deviation can be used to determine whether an additional calibration process should be carried out. The verification image can be used during a rest period Robot operation can be recorded. The 4A and 4B represent flow charts showing a procedure 400 for camera calibration verification according to one embodiment. While some of the embodiments below describe verifying camera calibration information determined from the camera calibration, the method may 400 can be used to more generally verify calibration information obtained from any calibration operation performed for a robot operating system. In one embodiment, the method can 400 by the control circuit 111 of the robot control system 110 are executed. As mentioned above, the robot control system can 110 the communication interface 113 of 1C include those needed to communicate with the robot 150 of 1A or 1B and with the camera 170 of 1A , 1B or 1D is configured. In one embodiment, the robot can have a base (e.g., the base 252 of 2 or the base 352 of 3 ) and a robot arm (e.g. the robot arm from 2 or 3 ) with a verification symbol arranged thereon, wherein the robot arm is movable relative to the base.
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.An exemplary environment in which the procedure 400 is running is in 5A and 5B illustrated having a robot operating system 500 / 500A represent each of the robot control systems 110 in communication with the camera 570 and a robot 550 includes. The camera 570 can be an embodiment of the camera 170/270/370 of 1 , 2 respectively 3 and the robot 550 can be an embodiment of the robot 150/250/350 of 1A , 1B , 2 be 3 respectively. The robot 550 can be a base 552 and a robotic arm (which is in the 5A and 5B With 553 which is relative to the base 552 is movable. The robotic arm includes one or more links, such as the links 554A up to limb 554E . The limbs 554A-554E can also be examples of arm parts of the robot arm 553 be that are movably attached to each other. In one embodiment, the members 554A-554E be rotatably attached to each other. For example, the limb 554A at the robot base 552 be rotatably attached. The remaining links 554B to 554E can be rotatably attached to one another by means of several connections. In one embodiment, the base 552 used to be the robot 552 at z. B. to attach a mounting frame or a mounting surface (z. B. the floor of a warehouse). The robot 550 can be done in a similar way to the robot 350 of 3 work. The robot 550 for example, may include multiple motors configured to drive the robotic arm by rotating the limbs 554A-554E move relative to each other. The robotic arm can also include a robotic hand attached to the limb 554E is attached. 5A shows, for example, a first robot hand 555 , a second robotic hand 557 and a third robotic hand 559 each attached to the fifth link 554E attached and detached from it. The robot hand 555/557/559 can e.g. B. comprise a gripper or a suction device that is configured to pick up objects (e.g. 582A , 582B , 582C ) from a conveyor belt 573 to record. When the robot hand 555/557/559 on the fifth link 554E is attached, the attachment may be in mixed ways. Attachment and detachment can be done manually or automatically. In one example, the fifth link 554E on the first robot hand 555 attached as in and and the robot control system 110 can the robot 550 so control that the fifth link 554E the first robotic hand 555 releases and the fifth link 554E on the second robot hand 557 attached. In another embodiment, the fifth link 554E permanently on a robot hand (e.g. robot hand 559 ) be attached.
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.In one embodiment, the robot can 550 a verification symbol arranged on it 530 exhibit. In some cases the verification icon 530 permanently on the robot 550 be arranged. In some cases the verification icon 530 on a robot arm of the robot 550 such as on one of the links 554A-554E , or be arranged on a robot hand. For example shows 5A the verification icon 530 that on the first robot hand 555 and the third robotic hand 559 is arranged while 5B the verification icon 530 that on the limb 554E is arranged represents. The verification symbol 530 can directly on the robot 550 painted or on the robot 550 z. B. be attached by a sticker or a flat board. In the in 5A The example shown can be the second robot hand 557 or the third robot hand 559 can be used to perform the camera calibration, as they each have a corresponding calibration pattern 520/527 has while the first robot hand 555 or the third robot hand 559 can be used for camera calibration verification as each has a corresponding verification icon 530 having.
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.Referring again to FIG 4A in one embodiment, the method 400 with step 401 begin in which the control circuit 111 performs an initial camera calibration to determine camera calibration information associated with the camera (e.g., camera 170/270/370/570 of 1 , 2 , 3 or 5). In particular, the camera calibration information can also include camera calibration values for the camera. In this embodiment, the control circuit 111 carry out the first camera calibration based on images of a calibration pattern (also called calibration images).
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.For example, to perform the first camera calibration, the robot can 550 of 5A on the second robot hand 557 with the calibration pattern 520 or the third robot hand 559 with the calibration pattern 527 be attached. 3 shows a similar environment in which the first camera calibration can be performed. During this step, the first robot hand can 555 from the fifth link 554E , in which the calibration pattern 320 used to perform camera calibration. The first camera calibration can be performed before starting any robot operation. The robot operation can, for example, with a robot task such as the first robot hand 555 that with a first object 582A interacting on a conveyor belt, begin. During the first camera calibration, the robot can 550 with the second robot hand 557 be equipped. The robot control system 110 can use the robot arm of the robot 550 control via movement commands in such a way that it uses the calibration pattern 520 to different locations within a camera field of view 510 the camera 570 moved and corresponding images of the calibration pattern 520 be recorded in these locations. The robot control system 110 can perform the first camera calibration to get the camera calibration information for the camera 570 based on the captured images of the calibration pattern 520 to determine. The calibration information may include, for example, information relating to a relationship between the camera 570 and the robot 550 describe. In one example, the camera calibration information can be the intrinsic parameters of the camera 570 describe. Camera calibration is described in U.S. Application No. 16 / 295,940 (File Number MJ0021US1) entitled "METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION FOR ROBOT CONTROL," the entire contents of which are incorporated herein by reference.
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.Referring again to FIG 4A can do the procedure 400 also the step 403 include in which the control circuit 111 controls the robot arm in such a way that it displays the verification symbol (e.g. 530 of 5 ) during or after the first camera calibration to a location within a camera's field of view (e.g. 510 ) the camera (e.g. 570 ) moved by sending a first movement command to the communication interface 113 of the robot control system 110 is issued. The communication interface 113 can be configured to communicate the move command to the robot to cause the robot arm to display the verification icon (e.g. 530 ) during or after the first camera calibration to the location within the camera's field of view (e.g. 510 ) to move. The move command can also cause the robot arm to orient the verification icon so that it faces the camera (e.g. 570 ), or more generally that it is visible to the camera. The location can be used as a reference location for one or more reference locations for verifying the first camera calibration. For example, if the verification process captures images of the verification icon over time, the control circuit may 111 control the robot arm in such a way that the verification symbol (e.g. 530 ) is consistently positioned at the same or multiple locations so that the one or more locations can be used as one or more reference locations. In addition, the verification process can be as follows in relation to the steps 405 to 459 later images of the verification symbol with a set of earlier images of the verification symbol (e.g. 530 ) compare, e.g. B. with images that were obtained immediately after performing the first camera calibration. The later images can be used as verification images, while the images with which the later images are compared can be used as reference images.
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.In step 405 can control circuit 111 via the communication interface 113 from the camera (e.g. 170/270/370/570 ) an image of the verification symbol (e.g. 530 ) receive (e.g. retrieve), the image being a reference image for verification. The image may have been captured by the camera while the verification symbol was or was at the reference location. In one embodiment, the communication interface can 113 first receive the reference image from the camera, and the control circuit 111 can then take the reference image from the communication interface 113 receive. In one embodiment, step 405 executed without the control circuit 111 generates a camera command for the camera. In one embodiment, the step 405 that involve the control circuit 111 a camera command is generated and the camera command is generated via the communication interface 113 communicates to the camera. The camera command can control the camera to capture an image of the verification symbol at the reference location.
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.The 5A to 6B illustrate aspects of the steps 403 and 405 . In the embodiment of 5A can the second robot hand 557 by the third robot hand 559 at which the verification symbol 530 is arranged to be replaced after the first camera calibration z. B. with the second robot hand 557 was executed. In this case, the robot control system controls 110 the robot arm of the robot 550 (e.g. by means of one or more movement commands) to the verification symbol 530 to one or more reference locations within the camera's field of view 510 the camera 570 to move. The one or more reference locations can be any location within the field of view of the camera 510 or may be a series of one or more specific locations, such as locations located on the face of an imaginary sphere, as discussed in more detail below. In another case, in the embodiment of 5B the robot control system 110 during or after the first camera calibration, control the robot arm in such a way that it displays the verification symbol 530 to one or more reference locations within the camera's field of view 510 emotional. In this case, the one or more reference locations can include any location where the verification symbol 530 (together with the calibration sample 520 ) was photographed during the initial camera calibration, or it can be a series of one or more specific locations that the verification icon 530 is moved after performing the first camera calibration. The robot control system 110 can move the robot arm of the robot 550 in this step with the guidance of the camera 570 based on the camera calibration information obtained from the first camera calibration, or can do so without such guidance. In one embodiment, the reference locations can be defined locations that are stored in a local or remote storage device and can be accessed. They can be in the form of coordinates (e.g. Cartesian coordinates) or as motor commands to rotate the limbs 554A to 554E or stored in some other way.
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.In one embodiment, the one or more reference locations to which the robotic arm places the verification icon (e.g. 530 ) includes multiple reference locations, each of the multiple reference locations being a location located on a surface of an imaginary sphere that is concave with respect to the camera. In such an embodiment, the control circuit 111 further configured to control the robot arm to move the verification symbol such that it is tangent to the surface of the imaginary sphere at each reference location of the plurality of reference locations. For example, as shown in the 6A , 6B , 6C and 6D illustrates the robot control system 110 the robot arm of the robot 550 control so that it has the verification symbol 530 to the reference locations 610A to 6101 moves, and the camera 570 control so that they are at each of the reference locations 610A to 6101 captured a corresponding reference image. The reference locations 610A to 6101 in 6A and 6B can point to several imaginary spheres within the camera's field of view 510 be divided. The reference locations 610A and 610B can on a first spherical surface 621 a first imaginary sphere 620 be arranged where the first spherical surface 621 within the camera's field of view 510 is located. The reference locations 610C , 610D and 610E can on a second spherical surface 631 a second imaginary sphere 630 be arranged where the second spherical surface 631 within the camera's field of view 510 is located. The reference locations 610F , 610G , 610H and 6101 can on a third spherical surface 641 a third imaginary sphere 640 be arranged where the third spherical surface is 641 within the camera's field of view 510 is located. As in the 6A and 6B illustrated are the first, second and third spherical surfaces 621 , 631 and 641 in terms of the camera 570 concave. Although the examples in the 6A and 6B show three spherical surfaces based on three spheres, a number of different spherical surfaces on which reference locations can be arranged can be larger than three or smaller than three. In one embodiment, the camera 570 a center of each of the imaginary spheres 620 , 630 , 640 be.
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.In one embodiment, as shown in 6A to 6D illustrated, the robot control system can 110 when the verification icon 530 is moved to a reference location, the robot arm 553 of the robot 550 Control (e.g. via a movement command) in such a way that the verification symbol 530 is positioned tangentially to the spherical surface on which the reference location is arranged. The 6A and 6B illustrate, for example, the verification icon 530 the second sphere surface 631 at the reference location 610D affected, while the 6C and 6D the verification icon 530 illustrate which is the second spherical surface 631 at the reference location 610C affects. In particular, the verification symbol 530 be placed on a flat surface (e.g. on a sticker) and the flat surface of the verification symbol 530 can at the reference location 610D in the 6A and 6B the second spherical surface 631 tangent and at the reference location 610C in the 6C and 6D the second spherical surface 631 affect. In one embodiment, the robotic arm can 553 in the 6A and 6B in a first pose and in the 6C and 6D are in a second pose. A pose of the robotic arm 553 can z. B. refer to a shape or more generally to a geometry that is created by limbs or other arm parts of the robot arm 553 is formed. The pose of a robotic arm 553 can refer, for example, to a certain permutation of angles or distances around which limbs of the robotic arm move 553 relative to previous limbs of the robot arm 553 rotated or translated (e.g. extended or retracted). As an example, the in 6A The first pose shown correspond to a first permutation of angles that exist between successive members of the series of members of the robot arm 553 is formed, while the in 6C illustrated second pose of a second permutation of angles between successive links of the series of links of the robot arm 553 can correspond. In such an example, the reference location can be 610D for the verification icon 630 with the first pose for the robotic arm 553 as in 6A is illustrated, be connected while the reference location 610C for the verification icon 630 with the second pose for the robotic arm 553 as in 6C is shown, can be connected.
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.In one embodiment, the control circuit is 111 configured to control the robot arm in such a way that it displays the verification symbol (e.g. 530 ) is moved in such a way that it is directly facing the camera when the verification symbol is moved to a reference location. For example, as in 6A illustrates the robot control system 110 the robotic arm 553 of the robot 550 control so that it has the verification symbol 530 so too moved that it is directly facing the camera 570 is facing when the verification icon 530 to the reference location 610D is moved. In this example, the robot control system 110 the robot hand 555 Rotate so that the verification icon 530 directly from the camera 570 is facing. In some cases the verification icon can be directly on the camera 570 face by placing a spherical surface in the camera's field of view 510 affects. When the verification icon 530 directly from the camera 570 facing can the camera 570 be able to see the verification icon 530 photograph frontally so that in a resulting image of the verification symbol 530 no or a reduced perspective effect occurs.
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 one embodiment, the verification icon (e.g. 530 ) a first area having a first color and a second area having a second color, defining a ratio of an area of the first region to an area of the second region, and in a non-transitory, computer-readable medium (e.g., storage device) of the robot control system 110 is stored. In such an embodiment, the control circuit 111 be configured to identify the verification symbol in a reference image or a verification image based on the defined relationship. For example, as in 5C illustrates the verification icon 530 a first region 531 that is ring-shaped and has a first color (e.g., a black region) and a second region 533 (for example, a white region) by the first region 531 is enclosed and has a second color. The ratio of an area of the first region 531 in black to an area of the second region 533 in white in the verification symbol 530 can be a clearly defined value. By analyzing the colors within a captured image, the robot control system can 110 be able to identify part of the image that corresponds to the verification symbol 530 corresponds by determining whether this part has an annular region enclosing a circular region and whether a ratio between an area of the annular area and an area of the circular area corresponds to the defined ratio. It can do this to the robot control system 110 enable the verification icon 530 to distinguish from other features captured in an image. For example, the robot can 550 as in 5A illustrated to be set so that he is the third robot hand 559 uses a combination of a calibration pattern 527 and a verification symbol 530 having. In this example, a reference image can have both the verification symbol 530 as well as the calibration pattern 527 demonstrate. In this example the calibration pattern 527 do not have a ring pattern or a ring pattern with any other than the defined ratio described above. The control circuit 111 can determine whether part of the reference image has the verification symbol 530 or the calibration pattern 527 is by determining whether the part of the reference image has a first image region having the first color and a second image region having the second color, and whether a ratio between an area of the first image region and an area of the second image region is equal to the defined ratio.
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.In some cases the robot control system can 110 determine whether a certain part of a captured image has a first area with a first color and a second area with a second color and whether a ratio between an area of the first region and an area of the second region is within a defined range. In one example, the robotic control system 110 If the defined ratio is 1.5, determine that the particular region corresponds to the verification symbol 530 if the ratio falls in the range between 1.4 and 1.6 in the particular region. The two colors of the first and second regions are not limited to black and white and can be any two different colors used by the robot control system 110 can be distinguished.
Bei einem Aspekt kann das Verifizierungssymbol (z. B. 530) eine erste Form und eine zweite Form umfassen, die konzentrisch zueinander sind, wobei sich die entsprechenden Mitten der ersten Form und der zweiten Form im Wesentlichen am gleichen Ort befinden. Das Verifizierungssymbol kann zum Beispiel die Form eines kreisförmigen Rings aufweisen, der einen ersten und einen zweiten Kreis umfasst, die konzentrisch zueinander sind. Insbesondere kann das Verifizierungssymbol 530 wie in 5C veranschaulicht eine erste Form 535 (z. B. äußerer Kreis) und eine zweite Form 537 (z. B. innerer Kreis) umfassen. Die erste Form 535 und die zweite Form 537 können konzentrisch zueinander sein, sodass ein Zentrum der ersten Form 535 und ein Zentrum der zweiten Form 537 sich im Wesentlichen am gleichen Ort befinden. Wenn sich beispielsweise ein Zentrum der ersten Form 535 bei einer Koordinate
und ein Zentrum der zweiten Form 537 bei einer Koordinate
befindet, können die Koordinate
und die Koordinate
im Wesentlichen gleich sein.In one aspect, the verification symbol (e.g. 530 ) comprise a first shape and a second shape that are concentric with each other, with the respective centers of the first shape and the second shape being at substantially the same location. For example, the verification symbol may be in the form of a circular ring comprising first and second circles that are concentric with one another. In particular, the verification symbol 530 as in 5C illustrates a first form 535 (e.g. outer circle) and a second shape 537 (e.g. inner circle). The first form 535 and the second form 537 can be concentric to each other so that a center of the first form 535 and a center of the second shape 537 are essentially in the same place. For example, if there is a center of the first shape 535 at a coordinate and a center of the second shape 537 at a coordinate can be the coordinate and the coordinate essentially be the same.
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.Referring again to FIG 4A can do the procedure 400 also the step 407 include in which the control circuit 111 determines a reference image coordinate for the verification symbol, the reference image coordinate being a coordinate at which the verification symbol (e.g. 530 ) appears in the reference image. For example, as in 6A illustrates an image of the verification icon 530 at the reference location 610D captured and used as a reference image. The verification symbol 530 may appear within the reference image at a particular coordinate that can be referred to as the reference image coordinate.
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.In one embodiment, the verification symbol (e.g. 530 ) comprise a first shape and a second shape that are concentric with each other with respective centers of the first shape and the second shape being at substantially the same location. In such an embodiment, the control circuit 111 in step 407 be configured to determine the reference image coordinate for such a verification symbol by: determining a first coordinate of a center of the first shape in the reference image, determining a second coordinate of a center of the second shape in the reference image and determining the reference image coordinate as an average of the first coordinate and the second Coordinate in the reference image.
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
eines Zentrums der ersten Form 735 (d. h. eine Mittenkoordinate der ersten Form 735), die im Referenzbild 710 gezeigt ist, und eine zweite Koordinate
eines Zentrums der zweiten Form 737 (d. h. eine Mittenkoordinate der zweiten Form 737), die im Referenzbild 710 gezeigt ist, bestimmen. Um die Referenzbildkoordinate
für das Referenzbild 710 als Ganzes zu bestimmen, wobei das Referenzbild 710 dem Verifizierungssymbol 530 an dem Referenzort N entspricht, kann das Robotersteuersystem 110 einen Mittelwert der ersten Koordinate
und der zweiten Koordinate
im Referenzbild 710 wie folgt berechnen:
For example shows 7A a reference image 710 recorded at a reference location N (where N is an integer) of the reference locations. The reference image 710 includes a verification section 730 , which is an image section in the reference image 710 is that of the verification icon 530 of 5A , 5B or 5C shows. The robot control system 110 of 1A or 1B can be configured from the verification section 730 a first form 735 Identify (e.g. outer circle) that is equal to the first shape 535 of the verification symbol 530 of 5C is or is substantially the same. The robot control system 110 can be configured from the verification section 730 a second form 737 Identify (e.g. inner circle) that is equal to the second shape 537 of the verification symbol 530 in 5C or is essentially the same. Then the robot control system can 110 a first coordinate for the reference location N. a center of the first form 735 (ie a center coordinate of the first shape 735 ) in the reference image 710 and a second coordinate a center of the second shape 737 (ie a center coordinate of the second shape 737 ) in the reference image 710 is shown. To the reference image coordinate for the reference image 710 as a whole to be determined, the reference image 710 the verification symbol 530 at the reference location N, the robot control system 110 an average of the first coordinate and the second coordinate in the reference image 710 calculate as follows:
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.In one embodiment, the reference image coordinate for the verification symbol can be its center coordinate, and the determination of the center coordinate of the verification symbol 530 based on the corresponding center coordinates of the first shape 735 and the second form 735 can improve a robustness of the verification process against image noise. Image noise can e.g. B. to errors in determining a center coordinate for the first shape 735 lead, but not when determining the center coordinate for the second shape 737 . In some cases it can be the second form 737 in reality the same center as the first form 735 have, but image noise can cause the center coordinate of the second shape 737 appears different in an image than the center coordinate of the first shape 735 . In this Scenario can be to simply use the center coordinate of the second shape 737 as the center coordinate of the verification symbol 530 lead to an undesirable amount of errors. The amount of error can be reduced by taking an average of the center coordinate for the first shape 735 and the center coordinate for the second shape 737 as the center coordinate of the verification symbol 530 is used.
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.In one embodiment, the one or more reference locations discussed above may be multiple reference locations each corresponding to multiple reference image coordinates. In this embodiment, the reference image coordinate can be one of a plurality of reference image coordinates. For example, as in 6A and 6B illustrated, give several reference locations, such as the reference locations 610A to 6101 to which the verification symbol 530 moved or otherwise placed. For each of the reference locations 610A to 6101 of the verification symbol 530 can the robot control system 110 retrieve or otherwise receive a corresponding reference image from the camera 570 of the verification symbol 530 was captured at this location and can determine a corresponding reference image coordinate that indicates where the verification symbol 530 appears in the corresponding reference image.
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.Referring again to FIG 4A can do the procedure 400 also the step 409 include in which the control circuit 111 controls the movement of the robot arm based on the camera calibration information to perform a robot operation. In one embodiment, this step may involve the control circuit 111 generates a second movement command based on the camera calibration information and the second movement command to the communication interface 113 issues. The communication interface 113 can in turn communicate the second movement command to the robot in order to control the movement of the robot arm. As in 5A shown controls the robot control system 110 after the first camera calibration, for example, the robot 550 such that it performs a robot operation that performs robot tasks such as picking up objects 582A , 582B and 582C involves. The movement of the robot 550 can access the camera calibration information obtained from the initial camera calibration and that from the camera 570 captured images of the objects 582A , 582B , 582C based.
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.In step 411 the control circuit detects 111 a rest period during robot operation. In one aspect, the robot idle time may be a period of time during which the robot is free from performing a robot task during robot operation. When the robot operates on picking up objects from the conveyor belt 573 In some cases, the idle time may be based on an absence of objects on the conveyor belt 573 based. In particular, the conveyor belt 573 from the robotic arm 553 be accessible and the control circuit 111 is configured to detect the idle time by determining that there are no objects on the conveyor belt 573 or that there is a gap between the robot 550 and a closest object on the conveyor belt 573 exceeds a defined distance threshold. In some cases the control circuit can 111 receive a signal indicating that a rest period is imminent, which signal may be received by another device or component that is monitoring robot operation. As in 5A illustrated, the robot control system can 110 for example, a rest period between a robot task in which the second object 582B is recorded, and a robot task in which the third object 582C is recorded, detect during the robot operation, as a large distance between the second object 582B and the third object 582C exists. During this rest period after the robot 550 the second object 582B has recorded, he can have a rest period in which he is free from performing a robot task because the object 582C for the robot 550 is not yet available. In one example, the robot control system can 110 Detect the idle time when there is no object on the conveyor belt 573 for the robot 550 is reachable, and / or when the robot control system 110 that determines a distance between the robot 550 and the closest object (e.g. the third object 582C ) upstream on the conveyor belt 573 exceeds a certain threshold.
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.Referring again to FIG 4A and 4B can do the procedure 400 also a step 451 include where the control circuit 111 the robotic arm 553 so controls that it controls the verification symbol 530 during the rest period at least to that in step 403 used reference location (which was used to acquire the reference image). In one embodiment, step 451 involve that control circuit 111 a third movement command is generated and the third movement command is sent to the communication interface 113 issues. The communication interface 113 can be configured to then communicate the third movement to the robot to the robot arm 553 cause to move based on the move command. In some cases, the third move command may include a set of stored motor commands that correspond to the reference location. In some cases, the third move command may be based on the camera calibration information from step 401 be generated. In other cases, the third movement command is based in step 451 not on the camera calibration information from step 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.In step 453 calls the control circuit 111 an additional image of the verification symbol (e.g. 530 ) from the camera (e.g. 570 ) during the idle time or otherwise receives it, wherein the additional image is a verification image for the verification and an image of the verification symbol is at least at the reference location during the idle time. That is, the verification image for the reference location is captured while the verification symbol (e.g. 530 ) is or has found at the reference location. In one embodiment, step relates 453 one that the control circuit 111 generates a camera command that the camera (e.g. 570 ) controls to capture the verification image. The control circuit 111 can send the camera command to the communication interface 113 output that sends the camera command to the camera (e.g. 570 ) can communicate. In one embodiment, step 451 involve controlling the robotic arm to move the verification icon to multiple reference locations and receiving multiple corresponding verification images captured by the camera. As for example in the 6A and 6B illustrated, the robot control system can 110 the robot arm during a rest period 553 of the robot 550 control so that it has the verification symbol 530 to one of the reference locations 610A to 6101 moved and an image of the verification icon 530 captured at the location as a verification image. If the rest period has not yet expired, or in particular if a sufficient amount of time remains in the rest period, the robot control system can 110 the robotic arm 553 of the robot 550 control so that it has the verification symbol 530 to another of the reference locations 610A to 6101 moved and an image of the verification icon 530 captured at this other location as another verification image. When the rest period ends, the robot control system can 110 stop capturing verification images. Therefore, the robot control system can 110 the robot arm during each rest period 553 of the robot 550 control so that it has the verification symbol 530 to one or more of the reference locations 610A to 6101 moved and at each of the one or more reference locations 610A to 6101 captures a verification image.
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 610I) bewegt wird, kann die Kamera (z. B. 570) mehrere Verifizierungsbilder aufnehmen, die jeweils den mehreren Referenzorten entsprechen, und die Steuerschaltung 111 kann mehrere Verifizierungsbildkoordinaten bestimmen, die jeweils den mehreren Verifizierungsbildern entsprechen und jeweils den mehreren Referenzorten entsprechen. Die mehreren Verifizierungsbilder können von der Kamera (z. B. 570) in einer einzigen Ruhezeit (z. B. wenn die einzige Ruhezeit ausreichend lang ist, um dem Roboterarm die Bewegung des Verifizierungssymbols (z. B. 530) an alle Referenzorte 610A bis 610I zu ermöglichen) oder in mehreren verschiedenen Ruhezeiten (z. B. wenn jede der Ruhezeiten nicht lang genug ist, damit der Roboterarm das Verifizierungssymbol 530 an alle Referenzorte 610A bis 610I bewegen kann) erfasst werden.Referring again to FIG 4B can do the procedure 400 also the step 455 include in which the control circuit 111 determines a verification image coordinate used for the verification, the verification image coordinate being a coordinate at which the verification symbol appears in the verification image. If the verification symbol (e.g. 530 ) to several reference locations (e.g. 610A to 610I ) is moved, the camera (e.g. 570 ) take a plurality of verification images each corresponding to the plurality of reference locations and the control circuit 111 can determine a plurality of verification image coordinates each corresponding to the plurality of verification images and each corresponding to the plurality of reference locations. The multiple verification images can be captured by the camera (e.g. 570 ) in a single rest period (e.g. if the single rest period is long enough to allow the robot arm to move the verification symbol (e.g. 530 ) to all reference locations 610A to 610I to allow) or in several different rest periods (e.g. if each of the rest periods is not long enough for the robot arm to display the verification symbol 530 to all reference locations 610A to 610I can move).
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
der ersten Form 785, die im Verifizierungsabschnitt 780 des Verifizierungsbilds 760 gezeigt wird, und eine Mittenkoordinate
der zweiten Form 787, die im Verifizierungsabschnitt 780 des Verifizierungsbilds 760 gezeigt wird, zu bestimmen. Das Robotersteuersystem 110 kann ferner die Verifizierungsbildkoordinate
für das Verifizierungsbild 760 als einen Mittelwert der Mittenkoordinate der ersten Form 785 und der Mittenkoordinate der zweiten Form 787 im Verifizierungsbild 760 wie folgt bestimmen:
In one embodiment, the verification image coordinate can be determined in a manner similar to the reference image coordinate. The verification image coordinate can, for example, be a center coordinate of the verification symbol (e.g. 530 ) and as an average of a center coordinate of a first form of the verification symbol (e.g. 530 ) and a center coordinate of a second form of the verification symbol in the verification image (e.g. 760 ) can be determined. For example shows 7B a verification picture 760 that was recorded at the reference location N of the reference locations. The verification picture 760 shows a verification section 780 that is an image portion in the verification image 760 is that of the verification icon 530 shows. The robot control system 110 can from the verification section 780 a first form 785 identify the same as the first shape 585 of the verification symbol 530 of 5C or is essentially the same. The robot control system 110 can also from the verification section 780 a second form 787 identify the same or substantially the same as the second shape 587 of the verification symbol 530 is. The robot control system 110 can also be configured to have a center coordinate the first form 785 that is in the verification section 780 of the verification image 760 is shown, and a center coordinate the second form 787 that is in the verification section 780 of the verification image 760 is shown to determine. The robot control system 110 can also be the verification image coordinate for the verification picture 760 as an average of the center coordinate of the first shape 785 and the center coordinate of the second shape 787 in the verification image 760 determine as follows:
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
und die Verifizierungsbildkoordinate am Referenzort N als
vverify_N) ausgedrückt wird, kann eine Abweichung (z. B. Abstand) am Referenzort N beispielsweise als
ausgedrückt werden.Referring again to FIG 4B can do the procedure 400 also the step 457 include in which the control circuit 111 a deviation parameter value based on an amount of deviation between the reference image coordinate of step 403 and the verification image coordinate of step 455 is determined, the reference image coordinate and the verification image coordinate both being connected to the reference location N. In one example, the deviation between the reference image coordinate and the verification image coordinate may be a distance between the reference image coordinate and the verification image coordinate. Since the reference image coordinate at the reference location N as and the verification image coordinate at the reference location N as v verify_N ) is expressed, a deviation (e.g. distance) at the reference location N can be, for example, as be expressed.
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.As described above, in one aspect where the one or more reference locations are multiple reference locations, the control circuit 111 be configured to determine the plurality of verification image coordinates each corresponding to the plurality of reference locations at which the verification image coordinate described above is one of the plurality of verification image coordinates. In such an aspect, the deviation parameter value is based on corresponding deviation amounts between the plurality of reference image coordinates and the plurality of verification image coordinates for the plurality of reference locations, wherein each deviation amount of the respective deviation amounts is between: (a) a reference image coordinate corresponding to a corresponding reference location of the plurality of reference locations and (b ) a verification image coordinate that corresponds to the same reference location. The plurality of verification image coordinates may be corresponding coordinates at which the verification symbol appears in a plurality of verification images, with the verification image discussed above being one of the plurality of verification images. The control circuit 111 can be configured to control the camera to capture all of the plurality of verification images in a rest period, and / or it can be configured to control the camera to capture the plurality of verification images in different rest periods.
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.
For example, if there are multiple reference locations, as in the 6A and 6B shown, the robot control system can 110 determine a plurality of corresponding reference image coordinates that correspond to the plurality of reference locations and determine a plurality of corresponding verification image coordinates that correspond to the plurality of reference locations, and determine respective deviation amounts between the plurality of reference image coordinates and the plurality of verification image coordinates. The deviation parameter value may be based on the respective deviation amounts between the plurality of reference image coordinates and the plurality of verification image coordinates. The deviation parameter can, for example, be an average value of the corresponding deviation amounts as follows.
In dem vorstehenden Ausdruck kann sich N auf den N-ten Referenzort beziehen, während sich M auf eine Gesamtanzahl an Referenzorten beziehen kann.In the above expression, N may refer to the Nth reference location, while M may refer to a total number of reference locations.
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.Referring again to FIG 4B can do the procedure 400 also the step 459 include in which the control circuit 111 determines whether the deviation parameter value exceeds a defined threshold (which can also be referred to as a defined deviation threshold). The control circuit 111 can also be done in step 461 in response to a determination that the deviation parameter value exceeds the defined threshold, perform a second camera calibration to determine updated camera calibration information for the camera. For example, the deviation parameter value that exceeds the defined threshold may indicate that the camera's camera calibration information is out of date and / or likely to cause an undesirable amount of error in robot operation. Therefore, if the deviation parameter value exceeds the defined threshold, a second camera calibration can be performed for the camera to update the camera calibration information for the camera (e.g. 570 ). The second camera calibration may use the same techniques as the first camera calibration, but may be based on images recently captured by the camera. In one example, robot operation can be stopped or paused when step 459 indicates that the deviation parameter value exceeds the defined threshold and then continues to perform the second camera calibration, which can begin capturing images for the second camera calibration. After the second camera calibration is complete and the camera calibration information for the camera is updated, the robot control system can 110 resume robot operation using the updated camera calibration information.
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.In one embodiment, the control circuit 111 in response to determining that the deviation parameter value does not exceed the defined threshold value, be configured to control the robot to continue robot operation after the rest period without performing additional camera calibration (e.g. by issuing a fourth movement command to the robot via the communication interface). Such a condition may indicate that the camera calibration information is from step 401 are still sufficiently accurate and that robot operation can continue without an undesirable amount of error.
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.In one embodiment, the control circuit 111 be configured to determine the temperature of an environment in which the robot is located and to adjust at least one of the defined deviation threshold (also referred to as redefining the deviation threshold) or the camera calibration information for the camera based on the measured temperature. For example, the control circuit 111 determine the temperature of the environment by measuring the temperature or receiving temperature data from another device or component. In such an embodiment, the control circuit 111 be configured to adjust the defined threshold based on the measured temperature by: adjusting the defined threshold to have a first value when the measured temperature is outside a defined range and adjusting the threshold to have a second value, which is lower than the first value if the measured temperature is within the defined range. For example, an excessively high or excessively low temperature can cause changes in the camera. In particular, a change in temperature can influence the intrinsic parameters of the camera. For example, the components in the camera can expand when the temperature increases and contract when the temperature decreases, which can affect the intrinsic parameters of the camera. It can therefore be advantageous to adapt the defined deviation threshold value based on the temperature or the extent of the temperature change. For example, if the temperature is in a range of normal operating temperature (e.g. a defined range around room temperature), then the defined deviation threshold value can be lower, since the temperature does not adversely affect the camera. On the other hand, if the temperature is outside the range of a normal operating temperature, the deviation threshold may be higher because a cold or hot temperature will adversely affect the camera. In an alternative example, the deviation threshold can be defined with a lower value if the temperature is outside of a normal operating temperature in order to trigger additional camera calibration more frequently. In this example, the deviation threshold can be set to a higher value when the temperature is within normal operating temperature in order to trigger additional camera calibration less frequently.
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. 8th shows an exemplary timeline 800 where camera calibration and camera calibration verification are performed. While the following examples describe verifying camera calibration, they can be applied more generally to verifying any type of calibration process performed on a robot operating system. Before a robot operation begins, the robot control system performs 110 of 1A or 1B the first camera calibration to display the camera calibration information for the camera (e.g. camera 570 of 5A or 5B) during a calibration period 811 to determine. After the first camera calibration is complete, the robot control system captures 110 Reference images of the verification symbol (e.g. verification symbol 530 ) at different reference locations and determined during a reference recording period 813 Reference image coordinates at which the verification symbol in corresponding reference images (e.g. reference image 710 of 7A) appears. The robot can operate after the end of the reference detection period 813 begin after determining the reference image coordinates.
Nach dem Beginn des Roboterbetriebs, während eines Aufgabenzeitraums 815, steuert das Robotersteuersystem 110 den Roboter (z. B. Roboter 550 von 5A oder 5B) derart, dass er eine oder mehrere Roboteraufgaben ausführt und daher, bei einer Ausführungsform, möglicherweise nicht in der Lage ist, Verifizierungsbilder zu sammeln (z. B. Verifizierungsbild 760 von 7B). Das Robotersteuersystem 110 detektiert eine Ruhezeit 817, während der der Roboter nach dem Aufgabenzeitraum 815 frei von der Ausführung einer Roboteraufgabe ist. Daher erfasst das Robotersteuersystem 110 während der Ruhezeit 817 entsprechend ein oder mehrere Verifizierungsbilder des Verifizierungssymbols an einer ersten Reihe von einem oder mehreren Orten (z. B. 610A-610B) der Referenzorte. Nach dem Ende der Ruhezeit 817, während eines Aufgabenzeitraums 819, nimmt das Robotersteuersystem 110 die Steuerung des Roboters wieder auf, um eine oder mehrere Roboteraufgaben auszuführen, und sammelt daher möglicherweise keine Verifizierungsbilder. Das Robotersteuersystem 110 detektiert eine Ruhezeit 821, während der der Roboter nach dem Aufgabenzeitraum 817 frei von der Ausführung einer Roboteraufgabe ist. Während der Ruhezeit 821 erfasst das Robotersteuersystem 110 entsprechend ein oder mehrere Verifizierungsbilder des Verifizierungssymbols an einer zweiten Reihe von einem oder mehreren Orten (z. B. 610C-610E) der Referenzorte. Nach der Ruhezeit 821, während einer Roboteraufgabenperiode 823, nimmt das Robotersteuersystem 110 die Steuerung des Roboters wieder auf, um eine oder mehrere Roboteraufgaben auszuführen, und sammelt daher möglicherweise keine Verifizierungsbilder. Das Robotersteuersystem 110 detektiert eine Ruhezeit 825, während der der Roboter nach dem Aufgabenzeitraum 823 frei von der Ausführung einer Roboteraufgabe ist. Während der Ruhezeit 825 erfasst das Robotersteuersystem 110 entsprechend ein oder mehrere Verifizierungsbilder des Verifizierungssymbols an einer dritten Reihe von einem oder mehreren Orten (z. B. 610F-610I) der Referenzorte.After the robot starts operating, during a task period 815 , controls the robot control system 110 the robot (e.g. robot 550 of 5A or 5B) such that it is performing one or more robotic tasks and therefore, in one embodiment, may not be able to collect verification images (e.g., verification image 760 of 7B) . The robot control system 110 detected a rest period 817 during which the robot after the task period 815 is free from performing a robot task. Therefore, the robot control system detects 110 during the rest period 817 correspondingly one or more verification images of the verification symbol in a first row of one or more locations (e.g. 610A-610B ) of the reference locations. After the end of the rest period 817 , during a task period 819 , adopts the robot control system 110 regains control of the robot to perform one or more robot tasks and therefore may not collect verification images. The robot control system 110 detects a rest period 821 during which the robot after the task period 817 is free from performing a robot task. During the rest period 821 captures the robot control system 110 corresponding one or more verification images of the verification symbol in a second row of one or more locations (e.g. 610C-610E ) of the reference locations. After the rest period 821 , during a robot task period 823 , adopts the robot control system 110 regains control of the robot to perform one or more robot tasks and therefore may not collect verification images. The robot control system 110 detects a rest period 825 during which the robot after the task period 823 is free from performing a robot task. During the rest period 825 captures the robot control system 110 corresponding one or more verification images of the verification symbol in a third row of one or more locations (e.g. 610F-610I ) of the reference locations.
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.The verification images (e.g. 760 ) during rest periods 817 , 821 and 825 can be recorded at different locations of the reference locations. For example, the first, second and third rows of one or more locations can differ from one another and cannot overlap at the locations. Furthermore, the robot control system 110 during the rest period 825 determine that the verification image acquisition is complete, which may indicate that a sufficient number of verification images have been acquired for camera calibration verification. In one embodiment, the robotic control system can 110 determine that verification image capture is complete when all reference locations (e.g. 610A-610I ) Verification images were captured. In one embodiment, the robotic control system can 110 determine that the verification image acquisition is complete when a number of the verification images reaches a defined target number.
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.After determining that the verification image acquisition is complete, the robot control system determines 110 the verification image coordinates at which the verification symbol appears in the corresponding verification images. The robot control system then determines 110 a deviation parameter value based on the respective deviation amounts of the verification image coordinates from the reference image coordinates. If the deviation parameter exceeds a defined threshold value, the robot control system leads 110 another camera calibration. In this example, however, the deviation parameter does not exceed the defined threshold value, so the robot control system 110 during a task duration 827 after the rest period 825 continues to perform a robot task without performing additional camera calibration.
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. 9 shows an exemplary flow chart 900 which has a verification process related to the timeline in 8th shows. In step 901 runs the robot control system 110 of 1A , 1B or 1C the first camera calibration of the camera (e.g. camera 570 of 5A or 5B) to determine the camera's camera calibration information. In step 903 controls the robot control system 110 the robot (e.g. robot 550 of 5A or 5B) to select the verification icon (e.g. verification icon 530 of 5A or 5B) to move to reference locations, and uses the camera to capture corresponding instances of the reference images (e.g. reference image 710 of 7A) the verification symbol at appropriate reference locations. In step 905 the robot control system begins 110 a robot operation of the robot based on the camera calibration information obtained from the first camera calibration.
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.In step 907 detects the robot control system 110 a rest period during robot operation. In step 909 controls the robot control system 110 the robot (e.g. robot 550 of 5A or 5B) so that he has the verification icon (e.g. the verification icon 530 of 5A or 5B) moved to one or more locations of the reference locations during the rest period and one or more verification images (e.g. the verification image 760 of 7B) recorded accordingly at the one or more locations of the reference locations. In some cases the robot control system can 110 control the robot in such a way that it moves the verification symbol to as many reference locations as the duration of the rest period allows. In step 911 determines the robot control system 110 whether a total number of the recorded verification images has reached a defined target number. If the total number of verification images captured has not reached the target number, the robot control system tries 110 to detect another subsequent idle time during robot operation by going to step 907 returns to capture more verification images.
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.When the total number of verification images captured has reached the target number, the robot control system leads 110 in step 913 a camera calibration verification based on the reference images (e.g. 710 ) and the verification images (e.g. 760 ) out. The camera calibration verification generates a deviation parameter. In step 915 determines the robot control system 110 whether the deviation parameter exceeds a defined threshold value. If the deviation parameter does not exceed the threshold, the robot control system can 110 the total number of verification images captured in step 919 Reset to zero and continue robot operation after the sleep time while it tries to detect another sleep time to capture a new set of verification images by going to step 907 returns.
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.If the deviation parameter exceeds the threshold, the robot control system can 110 stop the robot operation and at step 917 perform a second camera calibration. After the second camera calibration at 917 can the robot control system 110 the total number of verification images captured 921 reset to zero. After step 921 can step the flowchart too 903 return to where the robot control system 110 the robot (e.g. 550 ) controls in such a way that it displays the verification symbol (e.g. 530 ) moved to the reference locations and using the camera (e.g. 570 ) a new set of reference images (e.g. 710 ) of the verification symbol is recorded at the corresponding reference locations so that the new set of reference images can later be used for verification.
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.As indicated above, one aspect of the present disclosure includes receiving a reference image (e.g., reference image 710 of 7A) and a verification image (e.g., verification image 760 of 7B) that both have a common verification symbol (e.g. the verification symbol 530 the 6A to 6D ) capture or otherwise represent that in a physical location on a robotic arm such as the robotic arm 553 of the robot 550 the 6A to 6D is arranged. In one embodiment, the reference image (e.g. 710 ) at a first point in time, such as E.g. an earlier point in time, while the verification image (e.g. 760 ) z. B. can be a new image that at a second point in time, such as. B. at a later point in time. In some cases, the reference image can be generated based on one or more commands (also referred to as one or more commands) provided by a computer system, such as a computer system. B. the robot control system 110 of 1C , be generated. In some cases, the one or more commands may include a motion command and / or a camera command. The move command can serve to cause the robot arm to move the verification symbol to a reference location. For example, the move command can cause the robot arm to assume a particular pose, which results in the verification symbol being moved to a reference location associated with the particular pose of the robot arm. The camera command can be used to set a camera such as B. the camera 570 the 6A to 6D to cause the reference image to be generated while the robot arm is in the particular pose and / or while the verification symbol is at the reference location associated with the particular pose. The reference image can therefore correspond to the reference location. Similarly, the verification image can be generated based on one or more commands, e.g. B. a movement command and / or camera command, which can be the same or similar to the movement command and / or camera command described above with respect to the reference image. The one or more commands for the verification image can be issued by the same computer system that caused the generation of the reference image, e.g. B. the robot control system 110 , or generated by another computer system. In this example, the one or more commands for generating the verification image can cause the verification symbol to be moved back to the reference location. The one or more commands can, for example, cause the robot arm to assume the specific pose that is associated with the reference location again.
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.In the above example, the computer system receiving the verification image can compare it to the reference image to determine whether the calibration information is still sufficiently accurate. The calibration information can be determined through a calibration process performed for a robot operating system. The calibration process, which can also be referred to as a system calibration, can include a camera calibration, a robot calibration or any other calibration for controlling one or more components of the robot operating system. In one embodiment, the calibration information can include camera calibration information, robot calibration information, or other calibration information. The comparison described above can e.g. Include determining a deviation parameter value based on a difference between the location where the verification symbol appears in the reference image and the location where the verification symbol appears in the verification image. If the deviation parameter value is too large, e.g. For example, if it exceeds a defined deviation threshold (e.g., a predefined deviation threshold), then the computer system can determine that the calibration information is no longer sufficiently accurate are. In such a situation, the calibration information may be referred to as reflective or including mis-calibration or misalignment. If the camera calibration information includes the mis-calibration or misalignment, it may no longer accurately describe an inherent property of the camera (e.g. a projection property or a lens distortion property) and / or no longer adequately describe a relationship between the camera and its external environment ( e.g. a spatial relationship between the camera and a base of the robot). If the robot calibration information includes mis-calibration or misalignment, it may no longer be reliable for accurately moving a robot arm or other component of the robot to a desired location and / or orientation.
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.In one embodiment, the above-described method of comparing the reference image and the verification image may include multiple verification symbols. The 10A to 10C for example represent a group of several verification symbols 530A to 530C In particular, the group of verification symbols 530A to 530C Part of a robot operating system 500A be that one embodiment of the robot operating system 500 can be. The robot operating system 500A can be a robot 550A (the one embodiment of the robot 550 can be), a camera 570 with a camera field of view 510 and a computer system such as B. the robot controller 110 , include. Like the robot 550 also instructs the robot 550A a robotic arm 553 comprising a plurality of arm parts which are movably attached to one another. The multiple arm parts can, for. B. the limbs 554A to 554E and a robot end effector such as B. a robot hand 555 that attached to the limb 554E is attached, include. In some cases, as in the 10A to 10C as shown, the multiple arm portions can be formed from a base 552 of the robot 550A up to the robot end effector (e.g. robot hand 555 ) connected or otherwise arranged in series. In such cases, the series of arm parts can form a kinematic chain in which the movement of a particular arm part in the series can cause movement of some or all of the arm parts after that particular arm part. The arm parts after the particular arm part may refer to arm parts that follow the particular arm part in the series of arm parts. The limbs 554B to 554E and the robotic hand 555 can for example look after the limb 554A are located. The Member 554A in other words, can stand in front of the limbs 554B to 554E and in front of the robot hand 555 are located. In this example, each arm portion in the row of arm portions or in a subset thereof may be rotatable, extendable, retractable or otherwise movable relative to a corresponding arm portion immediately preceding the arm portion in the row of arm portions. The Member 554C can for example be relative to the limb 554B be rotatable, the limb 554B can be an arm part that the limb 554C in the in 10A immediately precedes the series of arm parts shown. In the example of the 10A to 10C can the limbs 554A to 554E and the robotic hand 555 about the joints 556A to 556D be movably attached to each other.
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.As described above, a robotic arm (e.g. 553 ) are moved into different poses, wherein a pose can refer to a shape or more generally to a geometry that is formed by arm parts (e.g. limbs) of the robot arm. The 10A to 10C for example, pose three different poses for the robotic arm 553 In one embodiment, the robot 550A in the 10A to 10C one or more actuators (e.g., motors) configured to operate the members 554A to 554E and the robotic hand 555 to rotate relative to each other, to translate (e.g. extend or retract) or to move in some other way. In such an embodiment, any of the poses in the 10A to 10C be connected to a certain permutation of a movement output by one or more actuators. The permutation can e.g. B. Describe angle values around the different arm parts of the robot arm 553 have been rotated relative to the corresponding arm parts immediately in front of the various arm parts, and / or distances by which the various arm parts have been translated relative to the corresponding arm parts immediately in front of the various arm parts. As an example, the poses in the 10A to 10C be associated with different permutations of five angle values, each having a direction of rotation and an amount of rotation of the link 554B relative to the limb 554A , a rotating direction and a rotating amount of the link 554C relative to the limb 554B , a rotating direction and a rotating amount of the link 554D relative to the limb 554C , a rotating direction and a rotating amount of the link 554E relative to the limb 554D and a direction and a rotation of the robot hand 555 relative to the limb 554E describe.
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.As indicated above, the 10A to 10C a group of multiple verification symbols 530A to 530C represents that on one or more arm parts of the robot arm 553 are arranged. In particular, the verification symbol 530A on the limb 554B be placed while the verification icon 530B on the limb 554C and the verification icon 530C on the robot hand 555 can be arranged. In some cases a robot (e.g. robot 550 ) have any number of verification symbols and these can be arranged on the robot in any way. The verification symbols 530A to 530C can, for example, happen at appropriate locations on the robot 550A be arranged. In some cases the number and relative placement of the verification symbols (e.g. 530A to 530C ) are subject to one or more defined restrictions. For example, their relative placement may be subject to a defined constraint that requires neighboring verification symbols (e.g. 530B and 530C ) by a defined minimum distance (also known as symbol distance), such as B. a defined minimum distance of 5 cm, are separated from each other. Such a restriction can reduce a likelihood that a computer system (e.g. the robot controller 110 ) a specific verification symbol (e.g. 530B ) with an adjacent verification symbol (e.g. 530C ) mistaken.
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.The 11A to 11C represent another example that is a group of multiple verification symbols 1130A to 1130C includes. In particular, the verification symbols 1130A to 1130C Part of a robot operating system 1100 be that a robot 1150 , a camera 1170 with a camera field of view 1110 and a computer system such as B. the robot controller 110 , includes. The robot operating system 1100 and the camera 1170 can e.g. B. each corresponding to an embodiment of the robot operating system 500 and the camera 570 be. The robot 1150 can use a robotic arm 1153 have comprising several arm parts, such as. B. the limbs 1154A to 1154E and a robotic hand 1155 (or another robot end effector). The multiple arm parts can be movable e.g. B. over the joints 1156A to 1156D be attached to each other. 11A illustrates the robotic arm 1153 in a first pose while 11B the robotic arm 1153 in a second pose. As in the 10A to 10C can use the multiple arm parts from one base 1152 of the robot 1150 to the robot hand 1155 connected or otherwise arranged in series. The series of arm parts can form a kinematic chain in which the movement of an arm part in the series can be propagated to downstream arm parts in the chain. As in 11A can be the verification symbol 1130A on the limb 1154C be placed while the verification icon 1130B on the limb 1154D and the verification icon 1130C on the robot hand 1155 can be arranged.
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.In one embodiment, one or more verification symbols from the group of verification symbols (e.g. 530A to 530C or 1130A to 1130C ) have a circular shape. Each of the verification symbols 530A to 530C the 10A to 10C or 1130A to 1130C of the 11A to 11C can for example be a ring pattern or in particular a circular ring, as described above in relation to FIG 5C has been described. In the example of 5C a ring pattern can have concentric circular regions (e.g. 531 and 533 ) or concentric circles (e.g. 535 and 537 ) exhibit. The concentric circular regions or concentric circles may e.g. Comprise an inner circular region and an outer circular region or an inner circle and an outer circle. In the in 11C example shown can be the verification symbol 1130A be shaped, for example, as a circular ring with an inner circle with radius r 1.1130A and an outer circle with radius r 2.1130A . In this example, the verification icon 1130B be another circular ring with an inner circle of radius r 1.1130B and an outer circle of radius r 2.1130B . The verification symbol 1130C can also be shaped as a circle with an inner circle with radius r 1.1130C and an outer circle with radius r 2.1130C.
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.In one embodiment, the set of verification symbols (e.g. 530A to 530C or 1130A to 1130C ) be shaped as corresponding circular rings with different corresponding sizes. As in 11C can be the verification symbols 1130A to 1130C for example, have different radii for their respective outer circular regions or outer circles. That is, they can have r 2.1130A , r 2.1130B, and r 2.1130C , all of which are different from each other. In one embodiment, the circular rings for the verification symbols 1130A to 1130C have different ratios between the corresponding radii of their inner circular regions or inner circles and the corresponding radii of their outer circular regions or outer circles. That is, the ratio r 2.1130A / r 1.1130A , the ratio r 2.1130B / r 1.1130B, and the ratio r 2.1130C / r 1.1130C may all be different from each other. As described in more detail below, a computer system (e.g., the robot control system 110 ) be configured to use the verification icon 1130A / 1130B / 1130C based on the size of a corresponding circular ring that represents the verification symbol 1130A / 1130B / 1130C and / or identified based on a corresponding ratio between a radius of an inner circle of the circular ring and a radius of an outer circle of the circular ring.
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.In one embodiment, some or all of the verification symbols (e.g. 530A to 530C the 10A to 10C or 1130A to 1130C of the 11A to 11B) on a robot arm (e.g. 533 or 1130 ) be permanently attached or otherwise arranged on it. Such an embodiment can be a calibration pattern (e.g. 520 the 5A and 5B) include that to perform a camera calibration is used and is of a size large enough to accommodate a pattern that is sufficiently complex and / or large enough to accommodate a sufficient number of pattern elements to provide a sufficiently accurate result for camera calibration. Such a large size for the calibration pattern (e.g. 520 ) however, can make it too large to be a permanent or otherwise permanent part of the robotic arm because the large size of the calibration pattern (e.g. 520 ) can cause it to interfere with normal robot operation. In such an example, the calibration pattern 520 z. B. from the robot arm (e.g. 553 ) before normal robot operation resumes. In this embodiment, some or all of the verification symbols (e.g. 530A to 530C or 1130A to 1130C ) less complex and / or smaller than the calibration pattern (e.g. 520 ) be. The smaller size of the verification icons can allow them to remain on the robot arm during normal robot operation (e.g. 553 or 1153 ), while they have little or no impact on normal robot operation. Therefore, in such an example, some or all of the verification symbols (e.g. 530A to 530C or 1130A to 1130C ) in some cases permanently or otherwise permanently on a robot arm (e.g. 533 or 1133 ) be arranged. Such an arrangement offers the advantage that a robot controller or another computer system is able to carry out a calibration verification more frequently and / or more quickly and to assess whether an updated camera calibration needs to be determined.
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 11C 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.The 12A and 12B illustrate a procedure 1200 to use multiple verification symbols to verify calibration information such as B. Camera calibration information. In one embodiment, the method can 1200 by a computer system such as B. the robot control system 110 the 10A to 10C or the 11A to 11B , or in particular by a control circuit of the computer system, such as. B. the control circuit 111 of the robot control system 110 in the 1C to be executed. As in 1C illustrated, the computer system may have a communication interface 113 that is configured to work with a camera with a camera field of view, such as. B. the camera 570 of 10A or the camera 1170 of 11A corresponding to the camera's field of view 510 or 1110 has to communicate. The communication interface 113 can also be configured to communicate with a robot, such as a robot. B. the robot 550A the 10A to 10C or the robot 1150 the 11A to 11C . As stated above, the robot can 550A / 1150 a robotic arm 553/1153 comprising a plurality of arm parts movably attached to one another, and it may comprise a group of verification symbols arranged on the corresponding arm parts of the plurality of arm parts. In the example of the 10A to 10C the group of verification symbols can be the verification symbols 530A to 530C include that corresponding to the limb 554B , the limb 554C and the robotic hand 555 are arranged. In the example of 11A to 11C the group of verification symbols can be the verification symbols 1130A to 1130C include that corresponding to the limb 1154C , the limb 1154D and the robotic hand 1155 can be arranged.
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.In one embodiment, the method can 1200 one step 1201 include in which the control circuit 111 of the robot control system or other computer system, a movement command to control the movement of the robot arm (e.g. the robot arm 533/1153 ) to perform a robot operation. The movement command can e.g. B. based on calibration information. The calibration information, such as B. camera calibration information, can from a first calibration process, such. B. a first camera calibration can be determined. In some cases it can step 1201 same or similar to step 409 of the procedure 400 be where the control circuit 111 controls the movement of the robot arm to perform a robot operation. Robot operation may include picking up boxes or other items in a warehouse, for example. In this example the control circuit 111 be configured based on one of the camera (e.g. camera 570 the 10A to 10C or camera 1170 the 11A to 11B) generated image of the boxes and, based on the calibration information, a spatial relationship between the camera and the boxes and / or a spatial relationship between the robot (e.g. robot 550A 1150 ) and determine the boxes. In one embodiment, the method can 1200 comprise a step in which the control circuit 111 performs the first calibration process to determine the calibration information. Such a step for performing the first calibration process can be similar to step 401 of procedures 400 of 4A be and can step ahead 1201 are executed. As an example, the first calibration process can be a camera calibration, which includes determining an estimate for a camera calibration parameter based on calibration images generated by the camera.
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.In one embodiment, the method can 1200 one step 1203 include in which the control circuit 111 or another component of the computer system determines a set of reference image coordinates. The group of reference image coordinates can e.g. B. be corresponding coordinates at which the group of verification symbols (e.g. 530A to 530C / 1130A to 1130C ) appears in a reference image, the reference image being an image representing the group of verification symbols (e.g. 530A to 530C / 1130A to 1130C ) can be. In one embodiment, the set of reference image coordinates can be used to verify the calibration information.
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.For example poses 13A a reference image 1120 represents the group of verification symbols 1130A to 1130C of 11A represents. In the example of 13A the group of reference image coordinates can comprise a first reference image coordinate, a second reference image coordinate and a third reference image coordinate. In such an example, the first reference image coordinate can identify where the verification symbol 1130A in the reference image 1120 appears while the second reference image coordinate can identify where the verification icon 1130B in the reference image 1120 appears, and the third reference image coordinate can indicate where the verification symbol 1130C in the reference image 1120 appears. In a more specific example, each of the first reference image coordinate, the second reference image coordinate, and the third reference image coordinate can be a pixel coordinate [uv] T. In particular, represents 13A the three reference image coordinates for the verification symbols 1130A , 1130B and 1130C correspondingly represented as [u ref_1 V ref_1 ] T , 1130A , [ uref_1 V ref_1 ] T , 1130B, [u ref_1 v ref_1 ] T 1130C . In this example, the term ref_N (e.g. ref 1) can refer to coordinates associated with a reference image that is generated when the robot arm is moving 1153 is in an Nth pose, such as B. a first pose (if N = 1). As described in more detail below, the reference image 1120 of 13A correspond to a first pose or, more generally, be associated with a first pose that corresponds to the in 11A Illustrated exemplary pose of the robotic arm 1153 can be. Different poses can use the verification symbols 1130A to 1130C at different groups of corresponding locations in the camera's field of view 1110 place. The pose in 11A can for example the verification symbols 1130A to 1130C Place accordingly at the 3D locations [x ref_1 y ref_1 z ref_1 ] T 1130A , [x ref_1 y ref_1 z ref_1 ] T 1130B , [x ref_1 y ref_1 z ref_1 ] T 1130C . In such a case, these 3D locations [x ref_1 y ref_1 z ref_1 ] T 1130A , [x ref_1 y ref_1 z ref_1 ] T 1130B , [x ref_1 y ref_1 z ref_1 ] T 1130C can be linked to the pixel coordinates [ uref_1 v ref_1 ] T 1130A , [u ref_1 v ref_1 ] T 1130B , [u ref_1 v ref_1 ] T 1130C in the reference image 1120 projected or otherwise assigned to these. In one embodiment, each of the pixel coordinates [u ref_1 v ref_1 ] T 1130A , [u ref_1 v ref_1 ] T 1130B , [u ref_1 v ref_1 ] T 1130C can identify a center in which its corresponding verification symbol 1130A / 1130B / 1130C in the reference image 1120 appears.
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.In one embodiment, the step 1203 that involve the control circuit 111 the reference image (e.g. 1120 ) from the communication interface 113 and / or the non-transitory computer readable medium 115 of the robot control system 110 or another computer system. The reference image 1120 of 13A can for example from the camera 1170 generated when the robot arm moves 1153 in the pose of 11A is located. The computer system 110 can use the reference image 1120 from the camera 1170 via the communication interface 113 received and the reference image 1120 in the non-transitory computer readable medium 115 to save. In step 1203 can control circuit 111 in one example the reference image 1120 from the non-transitory computer readable medium 115 retrieve or otherwise receive. The non-transitory computer-readable medium 115 can also store a verification image (which will be described below), and the control circuit 111 can transfer the verification image from the non-transitory computer readable medium 115 receive.
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.In one embodiment, the control circuit 111 be configured to display at least one verification symbol (e.g. 1130A ) from the group of verification symbols (e.g. 1130A to 1130C ) in the reference image (e.g. 1120 ) based on a defined model that shows a geometry of the robot arm (e.g. 1153 ) describes. The defined model can e.g. For example, describe which limbs, robot end effector or other arm parts make up the robot arm, their corresponding sizes (e.g. lengths) and how they are connected, and / or describe which arm parts have at least one verification symbol (e.g. 1130A ) exhibit on it. In such an embodiment, the control circuit can be configured to determine a region within the reference image (e.g. 1120 ) to determine in which the at least one verification symbol is expected, and after the at least one verification symbol (e.g. 1130A ) within the region of the reference image. In one embodiment, the model may include a location of a verification symbol (e.g. 1130A ) on the robot arm (e.g. 1153 ) save or describe more generally. The position of the verification symbol (also known as the symbol position) may be an approximate location of the verification symbol on the robot arm (e.g. 1153 ) be.
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.If the reference image (e.g. 1120 ) is stored, for example, together with one or more parameter values of a movement command that is used to generate the pose associated with the reference image or in particular the pose of the robot arm that appears in the reference image, the one or more parameter values and the model can be used to create a pose for the robot arm (e.g. 1153 ) estimate when the robot arm is moved according to the move command. As described in more detail below, the one or more parameter values in a Embodiment belong to one or more actuator parameters that are used to control one or more actuators (e.g. one or more motors) that are used to move the robot arm (e.g. 1153 ) be used. The estimated pose can be used to indicate the location of a verification symbol (e.g. 1130A ) on the robot arm (e.g. 1153 ), and the estimated location can be used to estimate where the verification symbol is likely to be in the reference image (e.g. 1120 ) appears.
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.In the above examples, the control circuit 111 be configured to refer to a region or regions of a reference image (e.g. 1120 ) where a verification icon or icons is expected to appear. Such a technique can enable the control circuit 111 it avoids the entire reference image (e.g. 1120 ) according to verification symbols (e.g. 1130A to 1130C ) and therefore the verification symbols (e.g. 1130A to 1130C ) in the reference image (e.g. 1120 ) identified more quickly. The model in the previous examples can also be used to search for the verification symbols in a verification image (described below).
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.As indicated above, the set of verification symbols (e.g. 1130A to 1130C ) be shaped in one embodiment as corresponding circular rings. In such an embodiment, the control circuit 111 be configured to display a verification icon (e.g. 1130A ) in the reference image (e.g. 1120 ) or otherwise identify it by identifying a circular ring that forms the verification symbol. When the set of verification symbols is shaped as corresponding circular rings of different sizes, as above in relation to FIG 11C illustrated, the control circuit 111 be configured to use a verification symbol (e.g. 1130A ) based on a size ( e.g., a radius r 2.1130A) of a corresponding circular ring that forms the verification symbol. If in some cases a verification symbol (e.g. 1130A ) is shaped as a circular ring with at least a first circular region or a first circle and a second circular region or a second circle, the control circuit 111 be configured to identify the verification icon based on a ratio between a radius of the first circular region or the first circle and a radius of the second circular region or the second circle. The control circuit 111 can for example be configured to use the verification icon 1130A based on identifying a circular ring and confirming that the ring has the ratio r 2.1130A / r1.1130A .
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.As further explained above, the reference image (e.g. 1120 of 13A) by step 1203 from the camera (e.g. 1170 of 11A) generated when the robot arm (e.g. 1153 ) is in a first pose, such as B. the in 11A illustrated pose. The reference image can be generated by the camera during a first time period or, more generally, at a first point in time. The first period of time may refer to a period of time (e.g., a period of milliseconds, seconds, or minutes) that is used or otherwise associated with the generation of the reference image. The first time period can include, for example, the time for a camera to operate to capture the reference image and, in some cases, also a time for a robot movement to position the verification symbol in the camera's field of view. In some cases, the first period of time that the reference image is generated, e.g. B. hours, days or weeks before step 1201 and / or step 1203 are located. In one embodiment, the computer system or, in particular, the control circuit 111 showing the steps 1201 and 1203 performs, on the generation of the reference image (e.g. 1120 ) not be involved. In one embodiment, the computer system or, in particular, the control circuit 111 showing the steps 1201 and 1203 performs, on the generation of the reference image (e.g. 1120 ) be involved. The computer system can, for example, in a step that corresponds to the step 1201 and or 1203 precedes, issue a movement command during the first time period to cause the robot arm (e.g. 1153 ) moved into the first pose. In such a case, this previous step may be part of the procedure 1200 be. The first pose can cause the set of verification symbols (e.g. 1130A to 1130C ) is moved to a first group of corresponding locations associated with the first pose, e.g. The locations discussed above [x ref_1 y ref_1 z ref_1 ] T 1130A , [x ref_1 y ref_1 z ref_1 ] T 1130B , [x ref_1 y ref_1 z ref_1 ] T 1130C . In some cases, such a step may be similar or identical to the step 403 in 4A be. In the above example, the computer system, or in particular the control circuit 111 , in this step also issue a camera command that activates the camera (e.g. 1170 ) causes the reference image (e.g. 1120 ) while the robot arm (e.g. 1153 ) is in the first pose. In one embodiment, the computer system can use the reference image (e.g. 1120 ) received by the camera and the reference image in the non-transitory computer readable medium 115 of 1C or store in some other non-transitory computer readable medium. In some cases, the computer system can also store information that it sends to the robotic arm (e.g. 1153 ) allow to return to the first pose and / or the verification symbols (e.g. 1130A to 1130C ) to the first group of appropriate places. The computer system can, for example, store the first group of the corresponding locations or, in particular, store their 3D coordinates, and / or it can store parameter values of the movement command in order to move the robot arm (e.g. 1153 ) to move into the first pose. In one embodiment, the coordinates and / or the movement command can be in the non-transitory computer readable medium 115 be stored in a way that matches the stored information with the reference image described above (e.g. 1120 ) connect.
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.In one embodiment, the move command discussed above to move the robot arm into the first pose may include one or more parameter values indicative of movement for the robot arm (e.g. 1153 ) describe. As indicated above, in some cases, the one or more parameter values may belong to one or more actuator parameters that control one or more actuators that cause movement for the robot arm (e.g. 1153 ) produce. In such cases, the one or more parameter values can be referred to as one or more actuator parameter values (also referred to as robot joint values). The one or more actuator parameter values can e.g. B. corresponding amounts of rotation of the arm parts of the robot arm relative to one another, the corresponding locations and / or orientations of the arm parts relative to one another and / or the corresponding locations of the joints (e.g. 1156A to 1156D ), which connect the arm parts. The one or more actuator parameter values of the movement command can, for example, describe corresponding angle values around which the motors in the robot 1150 different arm parts (e.g. the limbs 1154A to 1154E and the robotic hand 1155 ) should rotate relative to their immediately preceding arm parts.
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.In one embodiment, the move command discussed above can have any or any parameter value (e.g., a random or random parameter value (s)) and the first pose caused by the move command can be any pose. In one embodiment, the move command discussed above may be a move command that causes some or all of the verification symbols (e.g. 1130A to 1130C ) a desired appearance in the reference image (e.g. 1120 ) exhibit. For example, as discussed above, some or all of the set of verification symbols (e.g. 1130A to 1130C ) have a circular shape, such as. B. a ring shape formed by concentric circular regions or concentric circles. In such an example, if at least one of the verification symbols (e.g. 1130A ) in certain orientations relative to the camera (e.g. 1170 ) is located, the at least one verification symbol (e.g. 1130A ) appear elliptical rather than completely circular in the resulting reference images. The elliptical appearance can result in inaccurate calibration verification. For example, if the reference image coordinate for the verification icon 1130A is a place where the center of the symbol appears in the reference image, that reference image coordinate may be more difficult to determine precisely when the verification symbol 1130A appears elliptical in the reference image. When identifying the verification symbol 1130A in the reference image (e.g. distinguishing the verification symbol 1130A of other features in the reference image) is based on identifying a ring pattern in the reference image and verifying that the ring pattern has a certain ratio between concentric circles associated with the symbol ( e.g. the ratio r 2,1130A / r1,1130A , the one with the verification symbol 1130A this identification may be more difficult to perform if the ring pattern appears elliptical in the reference image. Therefore, when the control circuit 111 is involved in the outputting of the movement command associated with the generation of the reference image, the control circuit can 111 try to generate a movement command that causes the group of verification symbols (e.g. 1130A to 1130C ) are positioned in such a way that they appear completely or substantially circular in the reference image.
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.The control circuit 111 can, for example, generate a movement command that the robot arm (e.g. 1153 ) causes them to move into a pose in which the group of verification symbols (e.g. 1130A to 1130C ) directly to the camera (e.g. 1170 ) is facing. The pose can e.g. B. cause at least one verification symbol of the group of verification symbols (e.g. 1130A to 1130C ) is tangent to a surface of an imaginary sphere that is in relation to the camera (e.g. 1170 ) is concave. In 11A can do the pose shown for the robotic arm 1153 cause the verification icon 1130A and the verification icon 1130B have corresponding orientations in which they are a surface of an imaginary sphere 1121 affect that in relation to the camera 170 is concave and it can cause the verification symbol 1130C has an orientation in which there is a surface of an imaginary sphere 1123 that affects that in relation to the camera 1170 is also concave. In such a pose, which may be the first pose discussed above, the set of verification symbols (e.g. 1130A to 1130C ) as corresponding circular shapes in the reference image (e.g. 1120 ) appear. In particular, the group of verification symbols (e.g. 1130A to 1130C ) in such an example must be positioned so that they appear without eccentricity in the reference image or appear with corresponding amounts of eccentricity which are below a defined eccentricity threshold value. In the example above, the imaginary circles 1121 and 1123 on the camera (e.g. 1170 ) be centered. In one embodiment, the control circuit 111 be configured to generate random move commands and search through the random move commands to find one that can generate the alignments discussed above for the set of verification symbols. The movement command found can be obtained from the control circuit 111 output to display the reference image (e.g. 1120 ) to create.
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.With reference to the 12A to 12B includes the procedure 1200 in one embodiment, a step 1205 in which the control circuit 111 issues a move command to control the robot arm so that it moves into the first pose, such as: B. those in the 10A or 11A shown first pose, wherein the first pose is a pose in which the reference image (e.g. 1120 ) is generated during the first period of time, as discussed above. In some cases the movement command can be sent via the communication interface 113 to the robot (e.g. 550A / 1150 ) are output. In one embodiment, the movement command can be in step 1205 can be referred to as an additional movement command, since it is in addition to the movement command of step 1201 is available. The additional movement command can be issued during a second time period or, more generally, during a second point in time following the first time period. The second period of time may refer to a period of time (e.g., a period of milliseconds, seconds, or minutes) used or otherwise associated with the generation of the verification image. The second time period can include, for example, a time for a robot movement to position the verification symbol in the camera field of view and / or a time for a camera operation to capture the verification image. In some cases, the second time period (or more generally the second point in time) can follow the first time period (or more generally the first point in time) by hours, days, or weeks. As described in more detail below, the additional move command can be used to generate a verification image during the second time period. In one embodiment, the additional movement command can move the robot arm (e.g. 1153 ) induce oneself into a pose (e.g. the first pose of 11A) in which the group of verification symbols (e.g. 1130A to 1130C ) the camera (e.g. 1170 ) is facing directly. The group of verification symbols can, for example, have corresponding orientations in which they are tangent to one or more imaginary spheres which are concave with respect to the camera. In such a pose, the group of verification symbols (e.g. 1130A to 1130C ) as corresponding circular shapes in the verification image (e.g. 1160 of 13B) appear.
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.If, in one embodiment, the method 1200 as described above comprises a step of issuing a movement command for generating the reference image during the first time period, the movement command for generating the reference image during the first time period can be a first additional movement command, during the movement command in step 1205 for generating the verification image during the second time period can be a second additional movement command. In some cases, the first additional move command can be an earlier move command while the second additional move command can be a later move command. In some cases, the first additional move command can include one or more actuator parameter values (or robot joint values) for controlling the robot arm to move into the first pose, and the second additional move command can also include the one or more actuator parameter values. In particular, the first additional movement command and the second additional movement command can have the same actuator parameter values. For example, if a robot (e.g. 1150 ) includes several motors that support different arm parts (e.g. the limbs 1154A to 1154E and the robotic hand 1155 ) rotate relative to one another, the one or more actuator parameter values can include several corresponding angle values that control how much rotation is to be output by the several motors. In this example, the first additional move command and the second additional move command may both include the same multiple corresponding angle values that control how much rotation is output from the multiple motors.
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.In one embodiment, the first additional movement command and / or the second additional movement command can be issued during a corresponding rest time, such as the rest time described above in relation to step 411 For 4A was discussed. In some situations, when the calibration information is determined by performing a calibration process, the first additional movement command may be issued immediately after the calibration process is performed or during an earliest rest period following the calibration process. In some situations, the second additional movement command can be issued in response to a defined trigger condition, such as e.g. B. a defined period of time that has elapsed since the calibration process was carried out, a collision event involving the robot or another event (e.g. a natural disaster such as an earthquake) that is due to a possible shift or misalignment between the camera and robot or parts thereof, or another trigger condition. If the generation of the verification image includes that the control circuit 111 outputs a camera command, in some examples the camera command can also be output as a reaction to the defined trigger condition.
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_1Zref_1]T 1130A, [xref_1 yref_1zref_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.In one embodiment, the first pose of the step 1205 for the robot arm (e.g. 1153 ) with a specific group of corresponding reference locations for the group of verification symbols (e.g. 1130A to 1130C ) attached to the robotic arm as discussed above. The group of corresponding reference locations can e.g. B. the 3D locations [x ref_1 y ref_1 z ref_1 ] T 1130A , [x ref_1 y ref_1 z ref_1 ] T 1130B , [x ref_1 y ref_1 z ref_1 ] T 1130C . If the reference image (e.g. 1120 ) is generated, the group of verification symbols (e.g. 1130A to 1130C ) are at the group of corresponding reference locations associated with the first pose. If in step 1205 the additional movement command causes the robot arm to return to the first pose, the group of verification symbols (e.g. 1130A to 1130C ) return to the group of reference locations (e.g. [x ref_1 y ref_1 Z ref_1 ] T 1130A , [x ref_1 y ref_1 z ref_1 ] T 1130B , [x ref_1 y ref_1 z ref_1 ] T 1130C ). In such an example, the set of verification symbols (e.g. 1130A to 1130C ) when generating the reference image (e.g. 1120 ) are arranged in the group of the corresponding reference locations and when generating the verification image (e.g. 1160 ) can be arranged again in the group of the corresponding reference locations.
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.Referring again to the 12A to 12B can do the procedure 1200 in one embodiment, a step 1207 include in which the control circuit 111 a verification image, such as B. the verification image 1160 in 13B receives. As indicated above, the reference image (e.g. 1160 ) an image to represent the group of verification symbols (e.g. 1130A to 1130C ) be. In this example, the verification image (e.g. 1160 ) be an additional image to include the group of verification symbols (e.g. 1130A to 1130C ) and it can be generated when the robot arm (e.g. 1153 ) as a result of the additional movement command from step 1205 moved into the first pose, such as B. in the in 11A shown first 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_11] 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.In one embodiment, the method can 1200 one step 1209 include in which the control circuit 111 determines a set of verification image coordinates. In this embodiment, the set of verification image coordinates may be corresponding coordinates at which the set of verification symbols (e.g. 1130A to 1130C ) in the verification image (e.g. 1160 of 13B) appears. In one embodiment, the set of verification image coordinates can be used to verify the calibration information, such as B. camera calibration information can be used. Similar to the discussion above regarding the reference image coordinates in step 1203 For example, the set of verification image coordinates may include a first verification image coordinate, a second verification image coordinate, and a third verification image coordinate. In a more specific example, each of the first verification image coordinate, the second verification image coordinate, and the third verification image coordinate may be a pixel coordinate, e.g. B. a center of their corresponding verification symbol is identified. 13B represents, for example, three verification image coordinates or in particular pixel coordinates [u Verify_1 v verify_1 ,] T 1130A , [u verify_1 v verify_11] T 1130B , [u verify_1 v verify_1 ] T 1130C , at which the corresponding centers of the verification symbols 1130A to 1130C in the verification image 1160 appear. Similar to the discussion of reference image coordinates, the term verify N (e.g., verify_1) may refer to coordinates associated with a verification image generated when the robot arm is in an Nth pose, such as, for example. B. the first pose (N = 1).
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_11]T 1130A, uverify_1 vverify_1] T 1130B, [uverify_1 vverify_11]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_12] T 1130A, uverify_2 vverify_2] T 1130B, [uverify_2 vverify_12]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.In one embodiment, the control circuit 111 the steps 1203 to 1209 for multiple reference images and multiple verification images (e.g., five reference images and five verification images) multiple times. The multiple reference images and multiple verification images may correspond to multiple corresponding poses. For example, the 10A to 10C a series of three poses for the robotic arm 553 In this example, the control circuit 111 the robot controller 110 or any other computer system a first reference image and a first verification image, both as in FIG 10A illustrated associated with the first pose are a second reference image and a second verification image, both as in FIG 10B illustrated are associated with a second pose, and a third reference image and a third verification image as shown in FIG 10C illustrated associated with a third pose. In another example, the reference image 1120 of 13A a first reference image and the verification image 1160 of 13B be a first verification image, both with the in 11A for the robot arm 1153 illustrated first pose can be connected. In this example the control circuit 111 also a second reference image 1122 of 14A and a second verification image 1162 of 14B received, both with an in 11B shown second pose can be connected. In this example, the coordinates of the reference image [uref_1 v ref_1 ] T 1130A , [ uref_1 v ref_1 ] T 1130B , [u ref_1 v ref_1 ] T 1130C from 13A be a first group of reference image coordinates , while the verification image coordinates [u verify_1 v verify_11 ] T 1130A , u verify_1 v verify_1 ] T 1130B , [u verify_1 v verify_11 ] T 1130C of 13B may be a first set of verification image coordinates. The control circuit 111 In this example, a second group of reference image coordinates [u ref_2 v ref_2 ] T 1130A , [u ref_2 v ref_2 ] T 1130B , [u ref_ 2 v ref_2 ] T 1130C for the second reference image can also be configured 1122 of 14A to determine and a second group of verification image coordinates [u verify_2 v verify_12 ] T 1130A , u verify_2 v verify_2 ] T 1130B , [u verify_2 v verify_12 ] T 1130C for the second verification image 1162 of 14B to determine. In the above examples, the control circuit 111 in some cases be configured to issue various appropriate movement commands to move the robot arm (e.g. 1153 ) to move to the plurality of corresponding poses, wherein the plurality of reference images and / or the plurality of verification images are associated with the plurality of corresponding poses.
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_11]T 1130A, [uverify_1 vverify_11]T 1130B, [uverify_1 vverify_11]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_11]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_11]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.Referring again to the 12A to 12B can do the procedure 1200 in one embodiment, a step 1211 include in which the control circuit 111 determines a group of corresponding deviation parameter values based on corresponding deviation amounts between the group of reference image coordinates (e.g. [u ref_1 v ref_1 ] T 1130A , [Uref _1 v ref_1 ] T 1130B , [u ref_1 v ref_1 ] T 1130C from 13A) and the group of verification image coordinates (e.g. [u verify_1 v verify_11 ] T 1130A , [u verify_1 v verify_11 ] T 1130B , [u verify_1 v verify_11 ] T 1130C of 13B) based. The set of corresponding deviation parameter values in the context of the 13A and 13B may include a first variance parameter value, a second variance parameter value, and a third variance parameter value. The first deviation parameter value can be based on a deviation amount between a first reference image coordinate [uref_1 v ref_1 ] T 1130A for the verification symbol 1130A in the reference image 1120 and a first verification image coordinate [u Verify_1 v verify_11 ] T 1130A for the verification symbol 1130A in the verification image 1160 based. The first deviation parameter value can, for example, be equal to the distance between the first reference image coordinate and the first verification image coordinate or, more generally, be based on it, as described above in relation to step 457 of 4B was discussed. Similarly, the second deviation parameter value can be based on a deviation amount between a second reference image coordinate [uref_1 v ref_1 ] T 1130B for the verification symbol 1130B in the reference image 1120 and a second verification image coordinate [u verify_1 v verify_11 ] T 1130B for the verification symbol 1130B in the verification image 1160 based (e.g. be the same). Furthermore, the third deviation parameter value can be based on a deviation amount between a third reference image coordinate [uref_1 v ref_1 ] T 1130C for the verification symbol 1130C in the reference image 1120 and a third verification image coordinate [u verify_1 v verify_1 ] T 1130C for the verification symbol 1130C in the verification image 1160 based. In the example above, the group of corresponding deviation parameter values is with the group of verification symbols 1130A to 1130C connected. That is, the first deviation parameter value is with the verification symbol 1130A connected, while the second deviation parameter value is connected to the verification symbol 1130B and the third deviation parameter value with the verification symbol 1130C connected is.
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.In one embodiment, some or all of the set of corresponding deviation parameter values may be based on a single pair of a reference image and a verification image, both of which may be associated with a common pose for the robotic arm. The first deviation parameter value described above can be, for example, with the verification symbol 1130A be connected and on a single pair of the reference image 1120 and the verification image 1160 based both of which are associated with a common pose, such as B. the 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_11]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_12]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 one embodiment, some or all of the set of respective deviation parameter values may be based on multiple pairs of respective reference images and respective verification images, each pair associated with a corresponding one of multiple poses for the robotic arm. As an example, the first deviation parameter value discussed above, associated with the verification symbol 1130A is connected, on a first pair of the reference image 1120 and the verification image 1160 (the 13A and 13B) and a second pair of the reference image 1122 and the verification image 1162 (the 14A and 14B) based. The first pair can match the first pose of 11A be connected while the second pair with the second pose of 11B can be connected. In particular, the first deviation parameter value in this example may be based on a deviation amount (e.g., the distance) between [u ref_1 v ref_1 ] T 1130A and [u verify_1 v verify_11 ] T 1130A (which are associated with the first pose), and on a deviation amount between [u ref_2 v ref_2 ] T 1130A and [u verify_2 v verify_12 ] T 1130A (which are associated with the second pose). In one example, the first deviation parameter value can be equal to or based on a mean value of the two deviation amounts. In more general terms, the group of corresponding deviation parameter values in this example can refer to the corresponding deviation amounts between the first group of reference image coordinates and the first group of verification image coordinates (associated with the first pose) and further on the corresponding deviation amounts between the second group of reference image coordinates and the second group of verification image coordinates (associated with the second pose) based.
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 11A und 11B. Ä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.In some cases, a reference image coordinate in a first reference image and a reference image coordinate in a second reference image may be part of a set of reference image coordinates indicating where a common verification symbol (e.g. 1130A ) appears in a set of reference images, such as The two reference images discussed above 1120 , 1122 . The set of reference images and the set of reference image coordinates in this example may correspond to a set of corresponding poses for the robot arm (e.g. 1153 ) correspond, such as B. corresponding to the two poses in the 11A and 11B . Similarly, a verification image coordinate in a first verification image and a verification image coordinate in a second verification image may be part of a set of verification image coordinates indicating where the verification symbol appears in a set of verification images, e.g. The verification images discussed above 1160 , 1162 . The set of verification images and the set of verification image coordinates can also correspond to the set of poses. In such cases, a deviation parameter value associated with the verification symbol may be based on the corresponding deviation amounts between the set of reference image coordinates and the set of verification image coordinates.
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.Referring again to the 12A to 12B can do the procedure 1200 in one embodiment, a step 1213 include in which the control circuit 111 determines whether at least one deviation parameter value of the group of corresponding deviation parameter values exceeds a defined deviation threshold value. In some cases it can step 1213 similar to the step 459 of 4B be. In one embodiment, step 1213 include determining whether each deviation parameter value of the group of corresponding deviation parameter values has exceeded a corresponding deviation threshold. The control circuit 111 can for example determine whether a with the verification symbol 1130A associated deviation parameter value has exceeded a defined deviation threshold value, whether the one with the verification symbol 1130B associated deviation parameter value has exceeded a defined deviation threshold value, and / or whether the one with the verification symbol 1130C associated deviation parameter value has exceeded the defined deviation threshold value. In some cases, the corresponding deviation thresholds can have the same value and therefore form a common deviation threshold for the verification symbols, or they can have different values.
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.In one embodiment, the method can include a step 1215 include in which the control circuit 111 in response to determining that at least one deviation parameter value of the group of corresponding deviation parameter values exceeds the defined deviation threshold value, can perform at least one of the following: (a) issue a notification that at least one of the group of corresponding deviation parameter values exceeds the defined deviation threshold value, or ( b) Performing a calibration process to determine updated calibration information (e.g., updated camera calibration information). step 1215 can e.g. B. issuing the notification to a user interface device, such as e.g. B. an electronic display in communication with the robot controller 110 , include. The electronic display can e.g. B. the at least one value of the deviation parameter or an indication that the at least one value of the deviation parameter exceeds the defined deviation threshold value. In one embodiment, the calibration process can be carried out in step 1215 similar or equal to the step 461 in 4B be. If, in one embodiment, the calibration information from step 1201 can be determined by performing a first calibration process, then the calibration process from step 1215 be a second calibration process following the first calibration process.
Bei einer Ausführungsform kann der mindestens eine Abweichungsparameterwert, der die definierte Abweichungsschwelle überschreitet, auf eine Änderung der Kamera (z.B. 1170 der 11A bis 11B) 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.In one embodiment, the at least one deviation parameter value that exceeds the defined deviation threshold can be based on a change in the camera (e.g. 1170 the 11A to 11B) and / or a change in the environment of the camera or the robot operating system (e.g. 1100 ) Clues. In some cases the change to the camera may be an internal change, e.g. B. a lens or an image sensor of the camera has changed its shape or size due to a change in temperature or physical damage. In some cases, the change to the camera may also include a change to the location where the camera (e.g. 170 ) is appropriate, such as Due to vibrations in a structure (e.g. the ceiling) on which the camera is attached. In some cases, a change in the environment of the camera or the robot operating system can result in a change in the location or orientation of a base (e.g. 1152 ) of a robot (e.g. 1150 ) include, such as B. due to a vibration in a structure (e.g. the floor) on which the robot is attached. In some cases, the change in the environment of the camera or the robot operating system may be a change in a relationship between arm parts of the robot arm (e.g., between the limbs 1154A to 1154E of the robot arm 1153 ) or in the arm parts themselves. For example, one of the arm parts (e.g. the limb 1154D or the robot hand 1155 ) by an event generated by the computer system 110 was not planned, bent or otherwise deformed or damaged. The unplanned event can be a collision event or some other unexpected event that leads to a possible change to the robot (e.g. 1150 ) or another element of the robot operating system. The calibration verification described above can be a quick and efficient technique for detecting the change of a camera (e.g. 1170 ) and / or a change in an environment of the camera or the robot operating system 1100 provide. A change in the camera (e.g. 1170 ) and / or the robot (e.g. 1150 ) can be detected by comparing one or more reference image coordinates with one or more corresponding verification image coordinates to determine a difference therebetween. In many cases, such a comparison can be made without using the computer resources of the computer system 110 overuse. For example, the comparison can be made with calculations that only require a limited amount of processor execution time and / or limited storage capacity. In this way, the comparison can facilitate precise monitoring of the accuracy of calibration information in a computationally efficient manner.
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.In one embodiment, the at least one deviation parameter value that exceeds the defined deviation threshold value may indicate that there is a calibration error, such as e.g. B. a camera calibration error in which the camera calibration information from the first camera calibration is no longer sufficiently accurate. In one embodiment, the method can 1200 that involve the control circuit 111 determines a type of calibration error (also referred to as a type of alignment error) that causes the at least one deviation parameter value to exceed the defined deviation threshold value. The type of calibration error can e.g. For example, indicate whether a loss of accuracy in the calibration information (e.g. camera calibration information) is caused by a change in the robot or is otherwise representative of it, or whether the loss of accuracy is caused by a change in the camera or is otherwise representative thereof is. The change to the camera (e.g. 1170 ) may include, for example, changing the camera internally and / or changing the location where the camera is attached, as described above. The change to the robot can include changing a location or orientation of a base (e.g. 1152 ) of the robot (e.g. 1150 ), a change in the relationship between the arm parts of the robot arm (e.g. 1153 ) and / or a change to the arm parts themselves.
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.In one embodiment, the determination of the type of calibration error can be based on a comparison between the group of corresponding deviation parameter values and in particular on whether the group of corresponding deviation parameter values exceeds a defined deviation threshold value in a substantially uniform manner. When the group of deviation parameter values associated with the various verification symbols (e.g. 1130A to 1130C ) completely exceeds the defined deviation threshold and does so in a substantially uniform manner, the control circuit can 111 determine that the loss of accuracy caused by the camera (e.g. 1170 ) or is caused in particular by a change to the camera. The reason is that the appearance of each of the verification symbols (e.g. 1130A to 1130C ) in a reference or verification image of an internal property and / or of the positioning of the camera (e.g. 1170 ) is dependent. In particular, the coordinates of the reference image and the coordinates of the verification image for the verification symbols (e.g. 1130A to 1130C ) in the reference or verification image all be dependent on the internal property or on the positioning of the camera. Therefore, a change in the internal properties or the positioning of the camera (e.g. 1170 ) often to corresponding deviation parameter values for all verification symbols (e.g. 1130A to 1130C ) and in particular can increase all deviation parameter values substantially uniformly. In comparison, if there is damage, malfunction or any other change to any part of the robot (e.g. 1150 ), such as An arm part, all other parts of the robot would change in exactly the same way (e.g. damaged or all malfunctioning). Therefore, if there were a change in a part of the robot that would increase at least one deviation parameter above the defined deviation threshold value, other deviation parameter values of the group of deviation parameters can still remain below the defined deviation threshold value or the group of deviation parameters can completely exceed the defined deviation threshold value, but does so in an inconsistent manner. Thus, in one embodiment, if at least one of the group of corresponding deviation parameter values associated with the different verification symbols (e.g. 1130A to 1130C ), exceeds the defined deviation threshold, but the group of corresponding deviation parameter values does not completely exceed the defined deviation threshold value in a substantially uniform manner, the control circuit can 111 determine that the loss of accuracy caused by the robot (e.g. 1150 ) or is caused in particular by a change to the robot.
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 one embodiment, the control circuit 111 use a defined uniformity threshold to assess whether the set of deviation parameter values completely exceeds the defined deviation threshold substantially uniformly. The control circuit 111 For example, it can determine whether at least one of the deviation parameter values exceeds the defined deviation threshold value, and it can further determine whether differences between the deviation parameter values (or between the corresponding amounts by which they exceed the defined deviation threshold value) lie within the defined uniformity threshold value. The uniformity threshold can be defined in a dynamic manner (e.g. based on a current operating state of the robot operating system) or it can be predefined. As an example of the use of the defined uniformity threshold when the control circuit 111 determines the appropriate deviation parameter values for the verification symbols 1130A to 1130C all exceed the defined deviation threshold, but that one with the verification symbol 1130C associated deviation parameter value from one with the verification symbol 1130A associated deviation parameter value differs by more than the defined uniformity threshold value, and / or from one with the verification symbol 1130B associated deviation parameter value differs by more than the defined uniformity threshold value, then the control circuit can 111 determine that the loss of accuracy due to a change in the robot 1150 is caused, such as B. by changing at least the robot hand 1155 or another part of the arm with the verification symbol 1130C is arranged. In the above example, the control circuit compares 111 the values of the deviation parameters directly. In other examples, the control circuit 111 compare corresponding amounts by which the deviation parameter values exceed the defined deviation threshold value and whether these corresponding amounts differ by more than the defined uniformity threshold value. If in another example the control circuit 111 determines that a first deviation parameter value of the group of deviation parameter values exceeds the defined deviation threshold value, but one or more of the group of deviation parameter values does not exceed the defined deviation threshold value, the control circuit can 111 also determine that the calibration error (also known as misalignment) is due to a change to the robot (e.g. 1150 ) is caused, such as B. on an arm part on which the verification symbol associated with the first deviation parameter value is arranged. When the control circuit 111 in a further example determines that the group of deviation parameter values completely exceeds the defined deviation threshold value and that they do not differ from one another by more than the defined uniformity threshold value, then the control circuit can 111 determine that the calibration error was caused by a change to the camera (e.g. 1170 ) is caused.
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.In some cases the control circuit can 111 the robot controller 110 or another computer system with a conveyor belt, e.g. B. with the conveyor belt 1173 the 11A and 11B to be in communication. In such cases, the control circuit 111 in response to a determination that the at least one deviation parameter value exceeds the defined deviation threshold, be configured to cause the conveyor belt 1173 stops. Stopping the conveyor belt 1173 can prevent the robot arm 1153 unwanted interaction with an object on the conveyor belt based on inaccurate calibration information 1173 Has.
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 bis 11B 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.In one embodiment, the control circuit 111 be configured to determine that when the calibration information for a particular arm part (e.g., limb 1154C where the verification symbol 1130A is arranged, or limb 1154D where the verification symbol 1130B is arranged, or the robot hand 1155 at which the verification symbol 1130C is arranged) are sufficiently accurate, the calibration information is also sufficiently accurate for one or more arm parts that are located in front of this particular arm part. As stated above, the plurality of arm parts may be arranged as a series of arm parts from a base of the robot to a robot end effector. An arm part can be located in front of another arm part if the first-mentioned arm part precedes the last-mentioned arm part in the row of arm parts. The Member 1154D in the 11A to 11B can for example be in front of the limb 1154E and the robotic hand 1155 are located. When the control circuit 111 in one example, determines that the calibration information (e.g., camera calibration information) for e.g. B. the robot hand 1155 are sufficiently accurate, it can determine that the calibration for upstream arm parts, such as B. limb 1154E , 1154D , 1154C , 1154B and 1154A , is sufficiently accurate. In this example the control circuit 111 determine that the calibration information for an arm part is sufficiently accurate if a deviation parameter value associated with a verification symbol arranged on the arm part is below the defined deviation threshold value. When the control circuit 111 In one embodiment, if it determines that there is a calibration error for a particular arm part such that the calibration information for that arm part is not sufficiently accurate, the control circuit may 111 in one embodiment, determine that there is a calibration error for some or all of the downstream arm parts. When the control circuit 111 for example, determines that the calibration information for a particular robot part, such as. B. the limb 1154D , are not sufficiently accurate, the control circuit 111 determine that the calibration information for downstream arm parts, such as B. the limb 1154E and the robotic hand 1155 , are not sufficiently accurate.
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.In one embodiment, one or more steps of the method 1200 such as B. the steps 1203 to 1215 , in response to a user command from the robot controller 110 or another computer system. For example, a user (e.g., a system operator) can manually initiate a calibration verification process that includes the steps 1203 to 1215 includes. In one embodiment, the steps 1203 to 1215 run during a rest period. The rest period can e.g. B. be a period of time in which a robot operation, such as picking up objects from a conveyor belt or a pallet, is not performed. In one embodiment, one or more steps of the method 1200 such as B. the steps 1203 to 1215 , as a reaction to a defined trigger condition from the robot controller 110 or another computer system. As described above, the trigger condition can e.g. B. an unplanned event such as a collision with the robot (e.g. 1150 ), an earthquake or other natural disaster that leads to a change in the robot (e.g. 1150 ) and / or on the camera (e.g. 1170 ) can lead. In some cases, the trigger condition may include a certain period of time that elapses after a previous calibration process, such as B. a calibration process to determine the calibration information from step 1201 . In such an example, the earlier calibration process can be a first calibration process, during the calibration process of step 1215 can be a second calibration process.
Zusätzliche Erörterung verschiedener AusführungsformenAdditional discussion of various embodiments
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).Embodiment A1 relates to a robot control system comprising a communication interface configured to communicate with a robot having a base and a robot arm with a verification symbol placed thereon and with a camera with a camera field of view. The robotic control system further includes a control circuit configured to perform a first camera calibration (or more generally a calibration process) to determine camera calibration information associated with the camera (or more generally calibration information associated with the robotic control system). The control circuit is further configured to: a) control the robot arm in such a way that it moves the verification symbol to a location within the camera field of view during or after the first camera calibration by issuing a first movement command to the robot via the communication interface, the location being a The reference location of one or more reference locations for verification of the first camera calibration is, b) to receive an image of the verification symbol from the camera via the communication interface, wherein the camera is configured to capture the image of the verification symbol at the reference location, the image being a reference image for the verification, c) determining a reference image coordinate for the verification, the reference image coordinate being a coordinate at which the verification symbol appears in the reference image; d) based on the camera calibration information, controlling the movement of the robot arm to perform a robot operation by outputting a second movement command based on the camera calibration information to the robot via the communication interface; e) detect a rest period during robot operation; f) controlling the robot arm in order to move the verification symbol to at least the reference location during the rest period by issuing a third movement command to the robot via the communication interface; g) to receive an additional image of the verification symbol from the camera via the communication interface during the idle time, the camera being configured to capture the additional image of the verification symbol at least at the reference location, the additional image being a verification image for the verification; h) determine a verification image coordinate used for verification, the verification image coordinate being a coordinate at which the verification symbol appears in the verification image; i) determine a deviation parameter value based on an amount of deviation between the reference image coordinate and the verification image coordinate, the reference image coordinate and the verification image coordinate both being associated with the reference location, the deviation parameter value being a change in the camera since the first camera calibration or a change in a relationship between the Camera and robot has indicated i) closed since the first camera calibration determine whether the deviation parameter value exceeds a defined threshold, and j) in response to a determination that the deviation parameter value exceeds the defined threshold, to perform a second camera calibration to determine updated camera calibration information (or more generally to perform a second calibration process to update calibration information to be determined).
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.Embodiment A2 comprises the robot control system of Embodiment A1, wherein the control circuit is configured to, in response to a determination that the deviation parameter value does not exceed the defined threshold value, control the robot to continue the robot operation after the rest period without performing additional camera calibration by issuing a fourth movement command to the robot via the communication interface.
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.Embodiment A3 comprises the robot control system of embodiment A1 or A2, wherein the one or more reference locations are multiple reference locations each corresponding to multiple reference image coordinates, the reference image coordinate being one of the multiple reference image coordinates. In this embodiment, the control circuit is further configured to determine a plurality of verification image coordinates each corresponding to the plurality of reference locations, wherein the verification image coordinate is one of the plurality of verification image coordinates, and wherein the deviation parameter value is based on corresponding deviation amounts between the plurality of reference image coordinates and the plurality of verification image coordinates for the plurality of reference locations wherein each deviation amount of the corresponding deviation amounts is between: (a) a reference image coordinate corresponding to a corresponding reference location of the plurality of reference locations, and (b) a verification image coordinate corresponding to the same reference location.
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.Embodiment A4 includes the robot control system of Embodiment A3, wherein the plurality of verification image coordinates are corresponding coordinates at which the verification symbol appears in a plurality of verification images, the verification image being one of the plurality of verification images, and wherein the control circuit is configured to control the camera, all of them to capture the multiple verification images during the rest period.
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.Embodiment A5 comprises the robot control system of embodiment A3, wherein the plurality of verification image coordinates are corresponding coordinates at which the verification symbol appears in a plurality of verification images, the verification image being one of the plurality of verification images, and wherein the control circuit is configured to control the camera such that it captures the multiple verification images in different rest periods, the rest period being one of the various rest periods.
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.Embodiment A6 comprises the robot control system of one of the embodiments A1 to A5, wherein the verification symbol comprises a first region with a first color and a second region with a second color, a ratio of an area of the first region to an area of the second region being defined and in a storage device of the robot control system is stored as a defined relationship.
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.Embodiment A7 includes the robot control system of embodiment A6, wherein the control circuit is configured to identify the verification symbol in the reference image or in the verification image based on the defined relationship.
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.The embodiment A8 comprises the robot control system of the embodiment A7, wherein the robot arm has a calibration pattern arranged thereon, the reference image comprising the verification symbol and the calibration pattern, the control circuit being configured to determine whether a part of the reference image is the verification symbol or the calibration pattern by determining whether the part of the reference image has a first image region having the first color and a second image region having the second color, and whether a ratio between an area of the first image region and an area of the second image region is equal to the defined ratio.
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.The embodiment A9 includes the robot control system of any one of the embodiments A1 to A8, wherein the verification symbol includes a first shape and a second shape that are concentric with each other, with the respective centers of the first shape and the second shape being substantially at the same location.
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.The embodiment A10 includes the robot control system of the embodiment A9, wherein the control circuit is configured to determine the reference image coordinate by: a) determining a first coordinate of a center of the first shape in the reference image; b) determining a second coordinate of a center of the second shape in the reference image; and c) determining the reference image coordinate as a mean value of the first coordinate and the second coordinate in the reference image. In this embodiment, the control circuit is configured to determine the verification image coordinate by: d) determining a first coordinate of a center of the first shape in the verification image; e) determining a second coordinate of a center of the second shape in the verification image; and f) determining the verification image coordinate as an average of the first coordinate and the second coordinate in the verification image.
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.The embodiment A11 includes the robot control system of any one of the embodiments A1 to A10, wherein the control circuit is configured to identify the verification symbol in the reference image or the verification image by identifying a circular ring, the verification symbol being shaped as the circular ring.
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.The embodiment A12 includes the robot control system of any one of the embodiments A1 to A11, wherein the control circuit is further configured to determine a temperature of an environment in which the robot is located; and adjust at least one of the defined threshold or the camera calibration information based on the measured temperature.
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.The embodiment A13 includes the robot control system of the embodiment A12, wherein the control circuit is configured to adjust the defined threshold based on the temperature by: setting the defined threshold to have a first value when the temperature is outside a defined range; and setting the threshold value to have a second value that is lower than the first value when the temperature is within the defined range.
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.The embodiment A14 comprises the robot control system of one of the embodiments A1 to A13, wherein the one or more reference locations to which the control circuit is configured to cause the verification symbol to be moved by means of the robot arm comprise a plurality of reference locations which are located on a surface of a Sphere are arranged, which is concave with respect to the camera.
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.The embodiment A15 includes the robot control system of embodiment A14, wherein the control circuit is further configured to control the robot arm so that the verification symbol is moved such that it is tangent to the surface of the sphere at each reference location of the plurality of reference locations.
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.The embodiment A16 comprises the robot control system of any one of the embodiments A1 to A15, wherein the control circuit is configured to control the robot arm to move the verification symbol so that it directly faces the camera when the verification symbol is moved to the reference location.
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.The embodiment A17 includes the robot control system of any one of the embodiments A1 to A16, wherein the control circuit is configured to detect the idle time of the robot operation by detecting a time period during which the robot is free from performing a robot task during the robot operation.
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.The embodiment A18 comprises the robot control system of embodiment A17, wherein the control circuit is configured to control the robot arm to interact with objects on a conveyor belt that can be reached by the robot arm, the control circuit being configured to detect the idle time, by detecting that there is no object on the conveyor belt, or by detecting that a distance between the robot and a closest object on the conveyor belt exceeds a defined distance threshold.
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.Embodiment B1 relates to a computer system comprising a communication interface and a control circuit. The communication interface is configured to communicate with: (i) a camera with a camera field of view and (ii) a robot with a robotic arm with a plurality of arm parts movably attached to one another and with a group of verification symbols arranged on corresponding arm parts of the plurality of arm parts are. The control circuit is configured to, when the robot arm is in the camera's field of view, perform a method comprising: issuing a movement command for controlling movement of the robot arm to perform a robot operation, the movement command based on calibration information; Determine a group of Reference image coordinates, the group of reference image coordinates being corresponding coordinates at which the group of verification symbols appear in a reference image, the reference image being an image for representing the group of verification symbols and being generated by the camera during a first period of time when the robot arm is in a first pose is located; Issuing an additional move command during a second period of time after the first period of time to control the robot arm to move into the first pose; Receiving a verification image which is an additional image for representing the group of verification symbols and is generated by the camera when the robot arm has been moved into the first pose as a result of the additional movement command; Determining a group of verification image coordinates, the group of verification image coordinates being corresponding coordinates at which the group of verification symbols appear in the verification image; Determining a group of corresponding deviation parameter values based on corresponding deviation amounts between the group of reference image coordinates and the group of verification image coordinates, the group of corresponding deviation parameter values being associated with the group of verification symbols; Determining whether at least one deviation parameter value of the group of corresponding deviation parameter values exceeds a defined deviation threshold value; and executing at least one of the following in response to a determination that at least one deviation parameter value of the group of corresponding deviation parameter values exceeds the defined deviation threshold value: issuing a notification that at least one of the group of corresponding deviation parameter values exceeds the defined deviation threshold value, or executing a calibration process for Determination of updated calibration information. The control circuit can use the method e.g. B. by executing commands on a non-transitory computer readable medium.
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.Embodiment B2 comprises the computer system of embodiment B1, wherein the first pose is associated with a first additional movement command output during the first time period, the first additional movement command having one or more actuation parameter values for controlling the robot arm so that it moves into the first pose , wherein the reference image is generated by the camera when the robot arm is in the first pose as a result of the first additional movement command. Furthermore, in this embodiment, the additional movement command issued during the second time period is a second additional movement command and also includes the one or more actuation parameter values.
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.The embodiment B3 comprises the computer system of embodiment B2, wherein each verification symbol of the group of verification symbols has a circular shape, and wherein the one or more actuation parameter values of the first additional movement command and the second additional movement command cause the group of verification symbols to be positioned such that the group of verification symbols appears in the reference image and in the verification image without eccentricity or with corresponding amounts of eccentricity which are smaller than a defined eccentricity threshold value.
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.The embodiment B4 comprises the computer system of one of the embodiments B1 to B3, wherein the control circuit is configured to determine one or more actuation parameter values for the additional movement command that cause each verification symbol of the group of verification symbols to be moved such that it is directly the Facing the camera.
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.Embodiment B5 includes the computer system of embodiment B4, wherein the one or more actuation parameter values cause the set of verification symbols to tangent to one or more imaginary spheres that are concave with respect to the camera.
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.The embodiment B6 comprises the computer system of one of the embodiments B 1 to B5, wherein if at least one verification symbol of the group of verification symbols is shaped as a circular ring, the control circuit is configured to carry out the at least one verification symbol in the reference image and in the verification image Identify the circular ring to identify.
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.The embodiment B7 comprises the computer system of the embodiment B6, wherein when the group of verification symbols is shaped as corresponding circular rings with different corresponding sizes, the control circuit is configured to determine the at least one verification symbol based on a size of a corresponding circular ring which has the at least forms a verification symbol to identify.
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.The embodiment B8 comprises the computer system of one of the embodiments B1 to B7, wherein the control circuit is configured to identify at least one verification symbol of the group of verification symbols in the reference image based on a defined model that describes a geometry of the robot arm.
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.Embodiment B9 comprises the computer system of embodiment B8, wherein the control circuit is configured to determine, based on the model, a region within the reference image in which the at least one verification symbol is expected, and according to the at least one verification symbol within the region of the reference image search.
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.The embodiment B10 comprises the computer system of one of the embodiments B1 to B9, the control circuit being configured to determine, based on a comparison between the group of corresponding deviation parameter values, a type of calibration error that causes the at least one deviation parameter value to exceed the defined deviation threshold value , the type of calibration error indicating whether a loss of accuracy in the calibration information is representative of a change in the robot or whether the loss of accuracy is representative of a change in the camera.
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.Embodiment B 11 comprises the computer system of embodiment B10, wherein the control circuit is configured to determine whether the group of corresponding deviation parameter values completely exceeds the defined deviation threshold value, and whether the group of corresponding deviation parameters differ from one another by more than a defined uniformity threshold value. The control circuit in this embodiment is further configured to, in response to determining that the group of corresponding deviation parameter values completely exceeds the defined deviation threshold value and that they do not differ from one another by more than the defined uniformity threshold value, determine that the type of calibration error a Is a calibration error that is representative of a change in the camera.
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.The embodiment B12 comprises the computer system of embodiment B11, wherein the control circuit is further configured, in response to a determination that one or more of the group of corresponding deviation parameter values do not exceed the defined deviation threshold value, or that the group of corresponding deviation parameter values differ from one another by more than the defined uniformity threshold to determine that the type of calibration error is a calibration error representative of a change in the robot.
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.Embodiment B13 comprises the computer system of one of the embodiments B1 to B12. In this embodiment, the calibration information is connected to a first calibration process and the calibration process for generating the updated calibration information is a second calibration process that follows the first calibration process, wherein the control circuit is configured to output the additional movement command and in response to a defined triggering condition Issue camera command to receive the verification image. The defined trigger condition comprises at least one of: a defined time period that has elapsed since the first calibration process, or an event that was not planned by the computer system and results in a change to the robot or the camera.
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.Embodiment B14 includes the computer system of any one of Embodiments B1 to B13, wherein when the plurality of robot arm parts are arranged as a series of arm parts from a base of the robot to a robot end-effector, the control circuit is configured to: determine whether a deviation parameter value for a first verification symbol the set of verification symbols exceeds the defined deviation threshold; Identifying, from the plurality of arm parts, a first arm part on which the first verification symbol is arranged; and in response to a determination that the deviation parameter value for the first verification symbol does not exceed the defined deviation threshold, determining that the calibration information is accurate for the first arm portion and for at least one additional arm portion that precedes the first arm portion in the series of arm portions.
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.The embodiment B15 comprises the computer system of one of the embodiments B1 to B14, wherein when the computer system is in communication with a conveyor belt used for robot operation, the control circuit is configured to do so in response to a determination that the at least one deviation parameter value exceeds the defined deviation threshold value is to cause the conveyor belt to stop.
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.The embodiment B16 comprises the computer system of one of the embodiments B1 to B15, wherein the reference image is a first reference image associated with the first pose of the robot arm, the verification image being a first verification image associated with the first pose, the The group of reference image coordinates is a first group of reference image coordinates associated with the first pose, and the group of verification image coordinates is a first group of verification image coordinates associated with the first pose. In this embodiment, the control circuit is configured to: determine a second group of reference image coordinates, the second group of reference image coordinates being corresponding coordinates at which the group of verification symbols appear in a second reference image, the second reference image being generated by the camera when there is the robot arm is in a second pose; After the second reference image has been generated, outputting a further movement command for controlling the robot arm in order to move the robot arm into the second pose; Receiving a second verification image which also represents the group of verification symbols and is generated by the camera when the robot arm has been moved into the second pose as a result of the further movement command; and determining a second group of verification image coordinates, the second group of verification image coordinates being corresponding coordinates at which the group of verification symbols appear in the second verification image. In this embodiment, the group of corresponding deviation parameter values is further based on the corresponding deviation amounts between the second group of reference image coordinates and the second group of verification image coordinates.
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.While various embodiments have been described above, it should be understood that they are presented as illustrations and examples of the present invention, and not as limitations. It will be understood by those skilled in the art that various changes in form and detail can be made without departing from the spirit and scope of the invention. Therefore, the breadth and scope of the present invention should not be limited by any of the exemplary embodiments discussed above, but should be defined only in accordance with the appended claims and their equivalents. It should also be understood that any feature of any embodiment discussed herein and any reference cited herein can be used in combination with the features of any other embodiment. All patents and publications discussed herein are incorporated herein by reference in their entirety.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION
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.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent literature cited
-
US 16/732832 [0001]US 16/732832 [0001]
-
US 16/525004 [0001]US 16/525004 [0001]
-
US 16/369630 [0001]US 16/369630 [0001]
-
US 62/916798 [0001]US 62/916798 [0001]
-
US 16/295940 [0008, 0041]US 16/295940 [0008, 0041]
Zitierte Nicht-PatentliteraturNon-patent literature cited
-
„Method and Control System for Verifying and Updating Camera Calibration for Robot Control“, eingereicht am 2. Januar 2020 [0001]"Method and Control System for Verifying and Updating Camera Calibration for Robot Control", filed January 2, 2020 [0001]
-
„Method and Control System for Verifying and Updating Camera Calibration for Robot Control“, eingereicht am 29. Juli 2019 [0001]"Method and Control System for Verifying and Updating Camera Calibration for Robot Control", filed on July 29, 2019 [0001]
-
„Method and Control System for Verifying and Updating Camera Calibration for Robot Control“, eingereicht am 29. März 2019 [0001]"Method and Control System for Verifying and Updating Camera Calibration for Robot Control", filed on March 29, 2019 [0001]