DE102020105655A1 - Verfahren und system zum durchführen einer automatischen kamerakalibrierung zur roboterseuerung - Google Patents

Verfahren und system zum durchführen einer automatischen kamerakalibrierung zur roboterseuerung Download PDF

Info

Publication number
DE102020105655A1
DE102020105655A1 DE102020105655.9A DE102020105655A DE102020105655A1 DE 102020105655 A1 DE102020105655 A1 DE 102020105655A1 DE 102020105655 A DE102020105655 A DE 102020105655A DE 102020105655 A1 DE102020105655 A1 DE 102020105655A1
Authority
DE
Germany
Prior art keywords
camera
calibration
robot
locations
imaginary cube
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102020105655.9A
Other languages
English (en)
Other versions
DE102020105655B4 (de
Inventor
Russell Islam
Xutao Ye
Rosen Diankov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Inc
Original Assignee
Mujin Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mujin Inc filed Critical Mujin Inc
Publication of DE102020105655A1 publication Critical patent/DE102020105655A1/de
Application granted granted Critical
Publication of DE102020105655B4 publication Critical patent/DE102020105655B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • G06T5/80
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37015Adaptive online camera, vision calibration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39008Fixed camera detects reference pattern held by end effector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39016Simultaneous calibration of manipulator and camera
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45083Manipulators, robot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix

Abstract

Es wird ein Robotersteuersystem und ein Verfahren zur automatischen Kamerakalibrierung präsentiert. Das Robotersteuersystem umfasst eine Steuerschaltung, die konfiguriert ist, alle Eckorte eines imaginären Würfels zu bestimmen, der in ein Kamerasichtfeld passt, und mehrere Orte zu bestimmen, die an oder überall in dem imaginären Würfel verteilt sind. Die Steuerschaltung ist ferner konfiguriert, einen Roboterarm so zu steuern, dass er ein Kalibriermuster zu den mehreren Orten bewegt, und mehrere Kalibrierbilder zu empfangen, die den mehreren Orten entsprechen, und entsprechende Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern zu bestimmen und eine Abschätzung einer Transformationsfunktion zu bestimmen, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt. Die Steuerschaltung ist ferner konfiguriert, eine Platzierung des Roboterarms basierend auf der Abschätzung der Transformationsfunktion zu steuern.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Durchführen einer automatischen Kamerakalibrierung zur Robotersteuerung.
  • ALLGEMEINER STAND DER TECHNIK
  • Während Automatisierung üblicher wird, werden Roboter in mehr Umgebungen, wie beispielsweise in Lagerhaltungs- und Fertigungsumgebungen, verwendet. Roboter können zum Beispiel verwendet werden, um in einem Warenlager Elemente auf eine Palette zu laden oder davon zu entladen oder Gegenstände von einem Förderband in einem Werk aufzunehmen. Die Bewegung des Roboters kann fest vorgegeben sein oder kann auf einer Eingabe wie einem Bild, das durch eine Kamera in dem Warenlager oder dem Werk aufgenommen wird, basieren. Bei der letzteren Situation kann eine Kalibrierung ausgeführt werden, um eine Eigenschaft der Kamera zu bestimmen und eine Beziehung zwischen der Kamera und einer Umgebung zu bestimmen, in der sich der Roboter befindet. Die Kalibrierung kann als Kamerakalibrierung bezeichnet werden und kann Kalibrierinformationen erzeugen, die verwendet werden, um den Roboter basierend auf durch die Kamera erfasste Bilder zu steuern. Bei einigen Implementierungen kann die Kamerakalibrierung einen Handbetrieb durch eine Person einbeziehen, die Bewegungen des Roboters oder die Kamera manuell steuern kann, um ein Bild des Roboters zu erfassen.
  • KURZDARSTELLUNG
  • Ein Aspekt der Ausführungsformen hierin betrifft das Ausführen einer automatischen Kamerakalibrierung zur Robotersteuerung. Die automatische Kamerakalibrierung kann durch ein Robotersteuersystem ausgeführt werden, das eine Kommunikationsschnittstelle und eine Steuerschaltung umfasst. Die Kommunikationsschnittstelle kann konfiguriert sein, mit einem Roboter und mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren, wobei der Roboter eine Basis und einen Roboterarm mit einem darauf angeordneten Kalibriermuster aufweisen kann. Die Steuerschaltung des Robotersteuersystems kann konfiguriert sein, eine Kamerakalibrierung auszuführen durch: a) Bestimmen aller Eckorte eines imaginären Würfels, der in das Kamerasichtfeld passt, b) Bestimmen mehrerer Orte, die an oder überall in dem imaginären Würfel verteilt sind, c) Steuern des Roboterarms durch Ausgeben von Bewegungsbefehlen an den Roboter über die Kommunikationsschnittstelle, um das Kalibriermuster zu den mehreren Orten zu bewegen, die an oder überall in dem imaginären Würfel verteilt sind, d) Empfangen mehrerer Kalibrierbilder von der Kamera über die Kommunikationsschnittstelle, wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und entsprechende Bilder des Kalibriermusters an den mehreren Orten sind, e) Bestimmen entsprechender Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern und f) Bestimmen, basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter: einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist. Die Steuerschaltung kann ferner konfiguriert sein, nachdem die Kamerakalibrierung ausgeführt wurde, ein anschließendes Bild von der Kamera über die Kommunikationsschnittstelle zu empfangen und eine Platzierung des Roboterarms durch Ausgeben eines anschließenden Bewegungsbefehls, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, über die Kommunikationsschnittstelle an den Roboter zu steuern. Bei einer Ausführungsform kann das Robotersteuersystem ein nicht flüchtiges computerlesbares Medium aufweisen, auf dem Befehle gespeichert sind, die bei Ausführung durch die Steuerschaltung bewirken, dass die Steuerschaltung die vorstehenden Schritte ausführt.
  • Ein Aspekt der Ausführungsformen betrifft zudem das Ausführen einer automatischen Kamerakalibrierung zur Robotersteuerung. Die automatische Kamerakalibrierung kann durch ein Robotersteuersystem ausgeführt werden, das eine Kommunikationsschnittstelle und eine Steuerschaltung umfasst. Die Kommunikationsschnittstelle kann zum Kommunizieren konfiguriert sein mit: einem Roboter mit einer Basis und einem Roboterarm mit einem darauf angeordneten Kalibriermuster und einer Kamera mit einem Kamerasichtfeld. Das Kalibriermuster kann mehrere Musterelemente mit entsprechenden definierten Musterelementorten in einem Musterkoordinatensystem umfassen, wobei das Musterkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung des Kalibriermusters definiert ist. Die Steuerschaltung kann konfiguriert sein, eine Kamerakalibrierung auszuführen durch: a) Steuern des Roboterarms durch Ausgeben eines Bewegungsbefehls über die Kommunikationsschnittstelle an den Roboter, um das Kalibriermuster zu mindestens einem Ort innerhalb des Kamerasichtfelds zu bewegen, b) Empfangen eines Kalibrierbildes von der Kamera über die Kommunikationsschnittstelle, wobei das Kalibrierbild durch die Kamera erfasst wird und ein Bild des Kalibriermusters an dem mindestens einen Ort ist, c) Bestimmen mehrerer Bildmusterelementorte, die entsprechende Orte anzeigen, an denen die mehreren Musterelemente im Kalibrierbild erscheinen, d) Bestimmen einer ersten Abschätzung eines ersten intrinsischen Kameraparameters basierend auf den mehreren Bildmusterelementorten und basierend auf den definierten Musterelementorten, e) Bestimmen einer ersten Abschätzung eines zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des ersten intrinsischen Kameraparameters und basierend auf den mehreren Bildmusterelementorten, nachdem die erste Abschätzung des ersten intrinsischen Kameraparameters bestimmt wurde, f) Bestimmen einer zweiten Abschätzung des ersten intrinsischen Kameraparameters und einer zweiten Abschätzung des zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des zweiten intrinsischen Kameraparameters und basierend auf den mehreren Musterbildelementorten und den definierten Musterelementorten und g) Bestimmen, basierend auf der zweiten Abschätzung des ersten intrinsischen Kameraparameters und der zweiten Abschätzung des zweiten intrinsischen Kameraparameters, einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist. Die Steuerschaltung kann ferner konfiguriert sein, nachdem die Kamerakalibrierung ausgeführt ist, ein anschließendes Bild von der Kamera zu empfangen und eine Platzierung des Roboterarms durch Ausgeben eines anschließenden Bewegungsbefehls an den Roboter, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, zu steuern.
  • Figurenliste
  • Die vorstehenden und andere Merkmale, Aufgaben und Vorteile der Erfindung werden aus der folgenden Beschreibung von Ausführungsformen, wie sie in den begleitenden Zeichnungen veranschaulicht sind, offensichtlich. Die begleitenden Zeichnungen, die hierin eingeschlossen sind und einen Teil der Beschreibung bilden, dienen ferner dazu, die Prinzipien der Ausführungsformen zu erklären und einen Fachmann auf dem Gebiet in die Lage zu versetzen, die Ausführungsformen herzustellen und zu verwenden. Die Zeichnungen sind nicht maßstäblich.
    • Die 1A und 1B stellen Blockdiagramme von Systemen dar, bei denen eine Kamerakalibrierung gemäß Ausführungsformen hierin ausgeführt wird.
    • 1C stellt ein Blockdiagramm eines Robotersteuersystems dar, das konfiguriert ist, eine Kamerakalibrierung gemäß einer Ausführungsform hierin auszuführen.
    • 2A stellt ein System dar, das einen Roboter veranschaulicht, der gemäß einer Ausführungsform hierin basierend auf Kalibrierinformationen, die von der Kamerakalibrierung erlangt sind, gesteuert wird.
    • 2B stellt ein Beispiel von Kalibrierinformationen dar, die durch eine intrinsische Kalibrierphase und eine Hand-Auge-Kalibrierphase der Kamerakalibrierung gemäß einer Ausführungsform hierin erlangt sind.
    • 3A stellt ein Modell einer Kamera dar, das in eine Kamerakalibrierung gemäß einer Ausführungsform hierin einbezogen ist.
    • Die 3B und 3C stellen Koordinatensysteme dar, die in das Ausführen einer Kamerakalibrierung gemäß einer Ausführungsform hierin einbezogen sind.
    • 4 stellt ein Ablaufdiagramm bereit, das ein Verfahren zum Bestimmen von Orten, an denen ein Kalibriermuster innerhalb eines Sichtfelds einer Kamera (das auch als ein Kamerasichtfeld bezeichnet wird) anzuordnen ist, und zum Erfassen entsprechender Bilder des Kalibriermusters an den bestimmten Orten gemäß einer Ausführungsform hierin veranschaulicht.
    • Die 5A und 5B veranschaulichen ein beispielhaftes System, bei dem ein Roboterarm gemäß einer Ausführungsform hierin ein Kalibriermuster an verschiedenen Orten innerhalb eines Sichtfelds einer Kamera anordnet.
    • Die 5C bis 5F veranschaulichen imaginäre Würfel, die gemäß Ausführungsformen hierin verschiedene Orte umschließen, an denen ein Kalibriermuster angeordnet wird.
    • Die 6A bis 6D veranschaulichen gemäß einer Ausführungsform hierin beispielhafte Kalibrierbilder, die Bilder eines Kalibriermusters sind, das durch eine Kamera erfasst wird.
    • 7 veranschaulicht gemäß einer Ausführungsform hierin imaginäre Würfel, die in ein Sichtfeld einer Kamera passen.
    • 8A stellt ein beispielhaftes Kalibriermuster gemäß einer Ausführungsform hierin dar.
    • 8B stellt gemäß einer Ausführungsform hierin ein beispielhaftes Bild eines Kalibriermusters dar, bei dem das Bild einen Linsenverzerrungseffekt aufweist.
    • Die 9A und 9B stellen ein Ablaufdiagramm bereit, das ein Verfahren zum Ausführen einer Kamerakalibrierung gemäß einer Ausführungsform hierin veranschaulicht.
    • Die 10A und 10B veranschaulichen einen Aspekt des Bestimmens eines Krümmungsbetrags in einem Bild eines Kalibriermusters gemäß einer Ausführungsform hierin.
    • Die 11A und 11B stellen Diagramme bereit, die Beispiele einer intrinsischen Kalibrierphase der Kamerakalibrierung gemäß Ausführungsformen hierin veranschaulichen.
    • 12 stellt ein Diagramm bereit, das ein Beispiel einer Hand-Auge-Kalibrierphase der Kamerakalibrierung gemäß einer Ausführungsform hierin veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende ausführliche Beschreibung ist ihrer Natur nach lediglich beispielhaft und beabsichtigt nicht, die Erfindung oder die Anmeldung und Verwendungen davon zu begrenzen. Weiterhin besteht keine Absicht, an eine ausdrückliche oder implizite Theorie gebunden zu sein, die in dem vorstehenden technischen Gebiet, dem allgemeinen Stand der Technik, der Kurzdarstellung oder in der folgenden detaillierten Beschreibung dargestellt ist.
  • Hierin beschriebene Ausführungsformen betreffen das Ausführen einer Kalibrierung einer Kamera, die verwendet wird, um einen Roboter zu steuern, wie beispielsweise einen Roboter, der in einem Warenlager, einem Produktionsbetrieb oder in einer anderen Umgebung verwendet wird. Die Kalibrierung kann als Kamerakalibrierung bezeichnet werden und kann durch, z. B. ein Robotersteuersystem (auch als Robotersteuerung bezeichnet) ausgeführt werden, um Kalibrierinformationen zu erzeugen, die eine Fähigkeit des Robotersteuersystems erleichtern, den Roboter basierend auf durch die Kamera erfasste Bilder zu steuern. Der Roboter kann zum Beispiel verwendet werden, um ein Paket in einem Warenlager aufzunehmen, wobei das Platzieren eines Arms oder einer anderen Komponente des Roboters auf durch die Kamera erfassten Bildern des Pakets basieren kann. In diesem Fall können die Kalibrierinformationen zusammen mit den Bildern des Paketes verwendet werden, um beispielsweise einen Ort und eine Ausrichtung des Pakets relativ zu dem Arm des Roboters zu bestimmen. Wie nachfolgend ausführlicher beschrieben, kann die Kamerakalibrierung das Bestimmen entsprechender Abschätzungen von intrinsischen Kameraparametern einer Kamera und das Bestimmen einer Abschätzung einer Beziehung zwischen der Kamera und ihrer äußeren Umgebung einbeziehen. Ein intrinsischer Kameraparameter kann sich auf einen intrinsischen Parameter einer Kamera beziehen und kann auch als ein interner Parameter einer Kamera bezeichnet werden und er kann einen Wert, d. h. beispielsweise eine Matrix, einen Vektor oder einen Skalarwert, aufweisen. Wie nachfolgend ausführlicher erörtert, umfassen Beispiele eines intrinsischen Kameraparameters eine Projektionsmatrix und einen Verzerrungsparameter, wobei eine Abschätzung des intrinsischen Kameraparameters auch als Schätzwert bezeichnet werden kann. Die Beziehung zwischen der Kamera und ihrer äußeren Umgebung kann in einigen Fällen als eine Transformationsfunktion ausgedrückt werden und eine Abschätzung dieser Transformationsfunktion kann auch als Schätzfunktion bezeichnet werden. In einigen Fällen kann die Transformationsfunktion eine durch eine Matrix dargestellte lineare Transformation sein. In einigen Fällen kann die Kamerakalibrierung mithilfe eines Kalibriermusters ausgeführt werden, das an definierten Orten angeordnete Musterelemente aufweisen kann. Die Kamera kann ein Bild der Musterelemente des Kalibriermusters erfassen und die Kamerakalibrierung kann basierend auf dem Vergleichen eines Bildes der Musterelemente mit den definierten Orten der Musterelemente ausgeführt werden.
  • Ein Aspekt der Ausführungsformen hierin betrifft das Verbessern einer Genauigkeit der Kamerakalibrierung durch Bestimmen einer Abschätzung eines ersten intrinsischen Kameraparameters (z. B. Projektionsmatrix) in einer separaten Stufe als der zur Bestimmung einer Abschätzung eines zweiten intrinsischen Kameraparameters (z. B. Verzerrungsparameter) verwendeten. Der erste intrinsische Kameraparameter kann insbesondere in einer ersten Stufe abgeschätzt werden und die resultierende Abschätzung kann als eine Eingabe in eine zweite Stufe verwendet werden, bei der eine Abschätzung des zweiten intrinsischen Kameraparameters bestimmt wird. Mit dieser Herangehensweise kann die Abschätzung des ersten intrinsischen Kameraparameters während der zweiten Stufe als bekannt betrachtet werden, sodass die zweite Stufe hinsichtlich des Bestimmens der Abschätzung des zweiten intrinsischen Kameraparameters spezialisiert werden kann. Da die Abschätzung des ersten intrinsischen Kameraparameters als bekannt betrachtet wird, muss die zweite Stufe ferner keine entsprechenden Abschätzungen für alle intrinsischen Kameraparameter einer Kamera bestimmen, kann sich aber darauf konzentrieren, nur die Abschätzung des zweiten intrinsischen Kameraparameters zu bestimmen. Infolgedessen kann die zweite Stufe eine korrektere Abschätzung des zweiten intrinsischen Kameraparameters ergeben, der relativ zu einer Implementierung, bei der entsprechende Abschätzungen für alle intrinsischen Kameraparameter gleichzeitig in einer einzigen Stufe abgeschätzt und dann als eine Ausgabe einer intrinsischen Kalibrierung verwendet werden, gegenüber Kalibrierfehlern robuster ist.
  • Eine einzige Stufe kann durch zum Beispiel Erzeugen und Lösen eines Satzes von Gleichungssystemen, welche die intrinsischen Kameraparameter einbeziehen und die eine Beziehung zwischen einem Bild der Musterelemente und definierten Orten der Musterelemente des Kalibriermusters beschreiben, beispielsweise gleichzeitig entsprechende Abschätzungen für alle intrinsischen Kameraparameter einer Kamera bestimmen. In einigen Fällen kann das Gleichungssystem eine Beziehung zwischen Orten in den erfassten Bildern (die auch als Kalibrierbilder bezeichnet werden können), an denen die Musterelemente erscheinen, und den definierten Orten der Musterelemente beschreiben. Die erfassten Kalibrierbilder von der Kamera können jedoch Bildrauschen umfassen, was eine Genauigkeit des Gleichungssystems reduzieren kann. Die entsprechenden Abschätzungen der intrinsischen Kameraparameter, die aus dem Gleichungssystem abgeleitet sind, können infolgedessen auch Genauigkeit einbüßen. Ferner kann eine entsprechende Abschätzung für jeden intrinsischen Kameraparameter des Gleichungssystems etwas an Genauigkeit opfern, um zu ermöglichen, dass das Gleichungssystem erfüllt wird. Diese einzelne Stufe kann dementsprechend Kalibrierfehler bei ihren Abschätzungen der intrinsischen Kameraparameter hervorrufen, die wiederum eine Fähigkeit beeinflussen können, den Arm des Roboters basierend auf durch die Kamera erfassten Bildern genau zu positionieren.
  • Bei einer Ausführungsform kann der Kalibrierfehler unter Verwendung von Mehrfachstufen zum Bestimmen entsprechender Abschätzungen für alle intrinsischen Kameraparameter der Kamera reduziert werden. Wie vorstehend angegeben, kann eine erste Stufe verwendet werden, um eine erste Abschätzung eines ersten intrinsischen Kameraparameters zu bestimmen, und eine zweite Stufe kann verwendet werden, um eine erste Abschätzung eines zweiten intrinsischen Kameraparameters zu bestimmen. In einigen Fällen kann die erste Stufe auch eine andere Abschätzung für den zweiten intrinsischen Kameraparameter erzeugen, aber die zweite Stufe kann diese Abschätzung von der ersten Stufe ignorieren und stattdessen ihre eigene Abschätzung für den zweiten intrinsischen Kameraparameter erzeugen. In einigen Fällen kann die zweite Stufe, anstatt eine Allzweckstufe zu sein, die entsprechende Abschätzungen für alle intrinsischen Kameraparameter bestimmt, eine Spezialstufe sein, die dem Bestimmen einer Abschätzung für nur den zweiten intrinsischen Kameraparameter zugeordnet ist. Die zweite Stufe kann infolgedessen eine korrektere Abschätzung für den zweiten intrinsischen Kameraparameter erzeugen.
  • Bei einer Ausführungsform können die Mehrfachstufen in einer pipelineartigen Weise verwendet werden, bei der wie vorstehend erwähnt ein Ergebnis der ersten Stufe als eine Eingabe in die zweite Stufe verwendet wird. Die zweite Stufe kann insbesondere basierend auf einer Abschätzung des ersten intrinsischen Kameraparameters der ersten Stufe eine Abschätzung für den zweiten intrinsischen Kameraparameter erzeugen. In einigen Fällen kann die Abschätzung des zweiten intrinsischen Kameraparameters der zweiten Stufe wiederum verwendet werden, die Abschätzung des ersten intrinsischen Kameraparameters zu verfeinern, was als eine dritte Stufe behandelt werden kann. In einigen Fällen kann die dritte Stufe auch die Abschätzung des zweiten intrinsischen Kameraparameters verfeinern. Die Abschätzung des zweiten intrinsischen Kameraparameters der zweiten Stufe kann beispielsweise durch die dritte Stufe als eine fundierte anfängliche Schätzung bezüglich des zweiten intrinsischen Kameraparameters verwendet werden. Diese anfängliche Schätzung kann ein hohes Niveau an Genauigkeit aufweisen und kann daher die dritte Stufe unterstützen, die Abschätzungen des ersten intrinsischen Kameraparameters und des zweiten intrinsischen Kameraparameters weiter zu verbessern.
  • Bei einer Ausführungsform können die entsprechenden Abschätzungen der intrinsischen Kameraparameter in einer vierten Stufe weiter verfeinert werden, die eine Genauigkeit der Abschätzungen dadurch bewertet, dass sie diese zum Bestimmen simulierter Orte von entsprechenden Musterelementen verwendet. In einigen Fällen kann die vierte Stufe der dritten Stufe folgen. In anderen Fällen kann die vierte Stufe unmittelbar nach der zweiten Stufe ausgeführt werden und die vorstehend beschriebene dritte Stufe übersprungen werden. Wie nachfolgend ausführlicher beschrieben, kann ein simulierter Ort für ein Musterelement ein vorhergesagter Ort in einem Kalibrierbild sein, an dem basierend auf den Abschätzungen der intrinsischen Kameraparameter vorhergesagt wird, dass das Musterelement erscheint. Die vierte Stufe kann die simulierten Orte der entsprechenden Musterelemente mit tatsächlichen Orten, an denen die Musterelemente in den erfassten Kalibrierbildern erscheinen, vergleichen. Diese Stufe kann die Abschätzungen der intrinsischen Kameraparameter anpassen, um eine Differenz zwischen den simulierten Orten und den tatsächlichen Orten, an denen die Musterelemente erscheinen, zu reduzieren.
  • Bei einer Ausführungsform kann die Bestimmung von simulierten Orten als Teil einer intrinsischen Kalibrierphase der Kamerakalibrierung erfolgen. Wie nachfolgend ausführlicher beschrieben, kann die Kamerakalibrierung ferner eine Hand-Auge-Kalibrierphase umfassen. Bei einer Ausführungsform kann die Hand-Auge-Kalibrierphase auch eine Stufe umfassen, in der Abschätzungen von verschiedenen Funktionen basierend auf simulierten Orten von entsprechenden Musterelementen angepasst werden.
  • Ein Aspekt der Ausführungsformen hierin betrifft eine Planung verschiedener Stellungen für das Kalibriermuster, wobei das Kalibriermuster durch die Kamera in diesen Stellungen fotografiert wird. Ein Robotersteuersystem kann die Stellungen bestimmen und den Roboterarm steuern, das Kalibriermuster in diese Stellungen zu bewegen. Jede Stellung kann sich auf einen Ort und/oder eine Ausrichtung des Kalibriermusters relativ zur Kamera beziehen. Bei einer Ausführungsform kann die Stellungsplanung das Bestimmen mehrerer Orte innerhalb des Sichtfelds der Kamera einbeziehen, zu denen das Kalibriermuster durch den Roboter bewegt wird.
  • In einigen Fällen können die mehreren Orte auf oder in einem imaginären Würfel verteilt sein, der in das Sichtfeld der Kamera (das auch als ein Kamerasichtfeld bezeichnet wird) passt (z. B. vollständig passt). Der Gebrauch des imaginären Würfels kann der Kamera ermöglichen, das Kalibriermuster an einer Reihe von verschiedenen Orten zu erfassen, was bewirken kann, dass die Kamerakalibrierung eine größere Reihe von Situationen berücksichtigt und daher die Kamerakalibrierung robuster gemacht wird. Die verschiedenen Orte können zum Beispiel Eckorte des imaginären Würfels sowie eine Mitte des imaginären Würfels umfassen. Die Eckorte können sich näher an einer Peripherie des Sichtfelds der Kamera befinden. Die Mitte kann sich direkt vor der Kamera und insbesondere entlang einer Mittelachse des Sichtfelds der Kamera befinden. In einigen Fällen kann die Kamera einen bedeutsamen Betrag an Linsenverzerrung verursachen, wenn sie Objekte fotografiert, die sich nahe an einer Peripherie des Sichtfelds der Kamera befinden, und sie kann eine geringe oder keine Linsenverzerrung verursachen, wenn sie Objekte fotografiert, die der Mittelachse des Sichtfelds der Kamera nahe sind. Die Verwendung des imaginären Würfels zum Platzieren des Kalibriermusters kann bewirken, dass das Kalibriermuster nahe der Peripherie des Sichtfelds der Kamera und nahe an der Mittelachse des Sichtfelds der Kamera fotografiert wird. Die Kamera kann infolgedessen eine vielfältige Reihe von Kalibrierbildern erfassen, die unterschiedliche Grade an Linsenverzerrung aufweisen können. Die vielfältige Reihe von Kalibrierbildern kann daher der Kamerakalibrierung eine bessere Abschätzung einer Eigenschaft der Linsenverzerrung der Kamera ermöglichen.
  • Bei einer Ausführungsform kann die Ausrichtung des Kalibriermusters auch über eine Reihe von für die Kamerakalibrierung verwendeten Kalibrierbildern hinweg variiert werden. Das Robotersteuersystem kann zum Beispiel für jeden Ort der mehreren Orte einen Winkel bestimmen, in dem der Roboterarm das Kalibriermuster relativ zur Kamera neigt. Bei einer Ausführungsform können die mehreren Orte, zu denen der Roboterarm das Kalibriermuster bewegt, an oder überall in dem imaginären Würfel einheitlich verteilt sein oder sie können in dem imaginären Würfel zufällig verteilt sein. Bei einer Ausführungsform muss der imaginäre Würfel vielleicht ein Würfel sein, für den alle Eckorte durch das Kalibriermuster mittels des Roboterarms erreicht werden können. Ferner müssen die Eckorte vielleicht derart gelegen sein, dass der Roboterarm das Kalibriermuster neigen kann, sodass es sich für einige oder alle Eckorte relativ zur Kamera innerhalb eines definierten Winkelbereichs befindet. Wenn ein bestimmter imaginärer Würfel die vorstehenden Bedingungen nicht erfüllt, kann das Robotersteuersystem in einigen Fällen versuchen, die vorstehenden Bedingungen mit einem kleineren imaginären Würfel zu erfüllen.
  • 1A veranschaulicht ein Blockdiagramm eines Roboterbetriebssystems 100 zum Ausführen einer automatischen Kamerakalibrierung. 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 Roboterbetriebssystem 100 in einem Warenlager, einem Produktionsbetrieb oder in anderen Räumlichkeiten befinden. Das Robotersteuersystem 110 kann konfiguriert sein, eine Kamerakalibrierung auszuführen, die nachstehend ausführlicher erörtert wird, um Kalibrierinformationen zu bestimmen, die später verwendet werden, um den Roboter 150 zu steuern. In einigen Fällen ist das Robotersteuersystem 110 konfiguriert, sowohl die Kamerakalibrierung auszuführen als auch den Roboter 150 basierend auf den Kalibrierinformationen zu steuern. In einigen Fällen kann das Robotersteuersystem 110 zum Ausführen der Kamerakalibrierung vorgesehen sein und kann die Kalibrierinformationen an ein anderes Robotersteuersystem kommunizieren (das auch als andere Robotersteuerung bezeichnet wird), welches dann den Roboter 150 basierend auf den Kalibrierinformationen steuert. Der Roboter 150 kann basierend auf Bildern, die durch die Kamera 170 erfasst werden, und auf den Kalibrierinformationen positioniert werden.
  • Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, über eine verdrahtete oder drahtlose Kommunikation mit dem Roboter 150 und der Kamera 170 zu kommunizieren. Das Robotersteuersystem 110 kann zum Beispiel konfiguriert sein, mit dem Roboter 150 und/oder der Kamera 170 über eine RS-232-Schnittstelle, eine universelle serielle Bus- (USB) -Schnittstelle, eine Ethernetschnittstelle, eine Bluetooth®-Schnittstelle, eine IEEE 802.11-Schnittstelle oder jede Kombination davon zu kommunizieren. Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, mit dem Roboter 150 und/oder der Kamera 170 über einen lokalen Computerbus, wie beispielsweise einen Peripheral Component Interconnect- (PCI) -Bus zu kommunizieren
  • Bei einer Ausführungsform kann das Robotersteuersystem 110 separat von dem Roboter 150 sein und mit dem Roboter 150 über die vorstehend beschriebene drahtlose oder verdrahtete Verbindung kommunizieren. Das Robotersteuersystem 110 kann zum Beispiel ein Einzelcomputer sein, der konfiguriert ist, mit dem Roboter 150 und der Kamera 170 über eine verdrahtete Verbindung oder eine drahtlose Verbindung zu kommunizieren. Bei einer Ausführungsform kann das Robotersteuersystem 110 ein wesentlicher Bestandteil des Roboters 150 sein und mit anderen Komponenten des Roboters 150 über den vorstehend beschriebenen lokalen Computer-Bus kommunizieren. In einigen Fällen kann das Robotersteuersystem 110 ein zugeordnetes Steuersystem sein (das auch als zugeordnete Steuerung bezeichnet wird), welches nur den Roboter 150 steuert. In anderen Fällen kann das Robotersteuersystem 110 konfiguriert sein, mehrere Roboter einschließlich des Roboters 150 zu steuern. Bei einer Ausführungsform befinden sich das Robotersteuersystem 110, der Roboter 150 und die Kamera 170 in den gleichen Räumlichkeiten (z. B. einem Warenlager). Bei einer Ausführungsform kann sich das Robotersteuersystem 110 entfernt von dem Roboter 150 und der Kamera 170 befinden und es kann konfiguriert sein, mit dem Roboter 150 und der Kamera 170 über eine Netzwerkverbindung (z. B. eine lokale Netzwerk- (LAN) -Verbindung) zu kommunizieren.
  • Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, Bilder eines an dem Roboter 150 angeordneten Kalibriermusters 160 (die auch als Kalibrierbilder bezeichnet werden) abzurufen oder anderweitig zu empfangen. In einigen Fällen kann das Robotersteuersystem 110 konfiguriert sein, die Kamera 170 zu steuern, um solche Bilder zu erfassen. Das Robotersteuersystem 110 kann beispielsweise konfiguriert sein, einen Kamerabefehl zu erzeugen, der bewirkt, dass die Kamera 170 ein Bild einer Szene 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 (als Bilddaten) auch an das Robotersteuersystem 110 zurück 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, zu dem Robotersteuersystem 110 kommuniziert. Bei einer Ausführungsform kann die Kamera 170 automatisch ein Bild einer Szene in ihrem Kamerasichtfeld entweder periodisch oder als Reaktion auf eine definierte Triggerbedingung erfassen, ohne einen Kamerabefehl von dem Robotersteuersystem 110 zu benötigen. Bei einer derartigen Ausführungsform kann die Kamera 170 auch konfiguriert sein, das Bild zu dem Robotersteuersystem 110 oder genereller zu einer Speichervorrichtung, die durch das Robotersteuersystem 110 zugänglich ist, automatisch, ohne einen Kamerabefehl von dem Robotersteuersystem 110, zu kommunizieren.
  • Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, eine Bewegung des Roboters 150 über Bewegungsbefehle zu steuern, die durch das Robotersteuersystem 110 erzeugt und über die verdrahtete oder drahtlose Verbindung zu dem Roboter 150 kommuniziert werden. Die Bewegungsbefehle können bewirken, dass der Roboter ein am Roboter angeordnetes Kalibriermuster 160 bewegt. Das Kalibriermuster 160 kann dauerhaft auf dem Roboter 150 angeordnet sein oder kann eine separate Komponente sein, die daran angebracht ist und von dem Roboter 150 entfernt werden kann.
  • Bei einer Ausführungsform sind die einzigen Bilder, die dazu verwendet werden, den Roboter 150 zu steuern, diejenigen, die durch die Kamera 170 erfasst werden. Bei einer weiteren Ausführungsform kann der Roboter 150 durch Bilder der mehreren Kameras gesteuert werden. 1B veranschaulicht ein Roboterbetriebssystem 100A, das eine Ausführungsform des Roboterbetriebssystems 100 ist. Das System 100A umfasst mehrere Kameras, wie beispielsweise die Kamera 170 und die Kamera 180. Das Robotersteuersystem 110 kann konfiguriert sein, Bilder sowohl von der Kamera 170 als auch von der Kamera 180 zu empfangen und eine Bewegung des Roboters 150 basierend auf den Bildern der zwei Kameras 170, 180 zu steuern. In einigen Fällen kann das Vorhandensein der zwei Kameras 170, 180 räumliches Sehen an das Robotersteuersystem 110 bereitstellen. Das Robotersteuersystem 110 kann konfiguriert sein, eine Kamerakalibrierung sowohl für die Kamera 170 als auch für die Kamera 180 auszuführen, wie es nachfolgend ausführlicher erörtert wird. Bei einer Ausführungsform kann das Robotersteuersystem 110 beide Kameras 170, 180 steuern, um entsprechende Bilder des Kalibriermusters 160 zu erfassen und eine Kamerakalibrierung auszuführen. Bei einer Ausführungsform kann das Roboterbetriebssystem 100A genau zwei Kameras oder mehr als zwei Kameras aufweisen.
  • 1C stellt ein Blockdiagramm des Robotersteuersystems 110 dar. Wie in dem Blockdiagramm veranschaulicht, kann das Robotersteuersystem 110 eine Steuerschaltung 111, eine Kommunikationsschnittstelle 113 und ein nicht flüchtiges computerlesbares Medium 115 (z. B. Speicher) umfassen. Bei einer Ausführungsform kann die Steuerschaltung 111 einen oder mehrere Prozessoren, eine programmierbare Logikschaltung (PLC) oder eine programmierbare logische Anordnung (PLA), ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) oder irgendeine andere Steuerschaltung umfassen.
  • Bei einer Ausführungsform kann die Kommunikationsschnittstelle 113 eine oder mehrere Komponenten umfassen, die konfiguriert sind, mit der Kamera 170 und dem Roboter 150 zu kommunizieren. Die Kommunikationsschnittstelle 113 kann zum Beispiel eine Kommunikationsschaltung umfassen, die konfiguriert ist, Kommunikation über ein verdrahtetes oder drahtloses Protokoll auszuführen. Die Kommunikationsschaltung kann als Beispiel einen RS-232-Port-Controller, einen USB-Controller, einen Ethernet-Controller, einen Bluetooth®-Controller, einen PCI-Bus-Controller, jede andere Kommunikationsschaltung oder eine Kombination davon umfassen.
  • Bei einer Ausführungsform kann 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 die Kamerakalibrierung auszuführen (z. B. die in den 4 und 9A und 9B veranschaulichten Schritte).
  • Die Kamerakalibrierung kann wie vorstehend angegeben ausgeführt werden, um die Steuerung eines Roboters basierend auf durch eine Kamera erfasste Bilder zu erleichtern. 2A stellt zum Beispiel ein Roboterbetriebssystem 200 dar, in dem die Bilder verwendet werden, um einen Roboter 250 so zu steuern, dass er einen Gegenstand 292 in einem Warenlager aufzunimmt. Das Roboterbetriebssystem 200 kann insbesondere eine Ausführungsform des Systems 100 von 1A sein und umfasst eine Kamera 270, den Roboter 250 und das Robotersteuersystem 110 von 1A. Die Kamera 270 kann eine Ausführungsform der Kamera 170 von 1A sein, und der Roboter 250 kann eine Ausführungsform des Roboters 150 von 1A sein. Die Kamera 270 kann konfiguriert sein, ein Bild des Objekts 292 (z. B. ein Paket zum Versand), das auf einem Förderband 293 in dem Warenlager angeordnet ist, zu erfassen, und das Robotersteuersystem 110 kann konfiguriert sein, den Roboter 250 zu steuern, um das Objekt 292 aufzunehmen.
  • Bei der Ausführungsform von 2A kann der Roboter 250 eine Basis 252 und einen Roboterarm aufweisen, der relativ zur Basis 252 beweglich ist. Der Roboterarm kann insbesondere mehrere der Verbindungen 254A bis 254C umfassen, die relativ zueinander drehbar sind, und einen Greifer 255, der an der Verbindung 254C angebracht ist, wobei der Greifer verwendet werden kann, Objekte aufzunehmen. Bei einer Ausführungsform kann das Robotersteuersystem 110 konfiguriert sein, einen Bewegungsbefehl zu kommunizieren, um eine oder mehrere der Verbindungen 254A bis 254C zu drehen. Der Bewegungsbefehl kann ein Low-Level-Befehl, wie Motorbewegungsbefehle, oder ein High-Level-Befehl sein. Wenn der Bewegungsbefehl von dem Robotersteuersystem 110 ein High-Level-Befehl ist, kann der Roboter 150 konfiguriert sein, den High-Level-Befehl in einen Low-Level-Befehl umzuwandeln.
  • Bei einer Ausführungsform ist es eine der Aufgaben der Kamerakalibrierung eine Beziehung zwischen der Kamera 270 und dem Roboter 250 oder insbesondere eine Beziehung zwischen der Kamera 270 und einem Referenzpunkt 294, der relativ zur Basis 252 des Roboters 250 stationär ist, zu bestimmen. Die Kalibrierinformationen können mit anderen Worten Informationen umfassen, die eine Beziehung zwischen der Kamera 270 und dem Referenzpunkt 294 beschreiben. Bei einer Ausführungsform kann diese Beziehung einen Ort der Kamera 270 relativ zum Referenzpunkt 294 sowie eine Ausrichtung der Kamera 270 relativ zu einer Referenzausrichtung für den Roboter 250 bezeichnen. Bei einer Ausführungsform kann die Referenzausrichtung verwendet werden, um ein Weltkoordinatensystem zu definieren, wie es nachfolgend ausführlicher beschrieben wird, und die vorstehende Beziehung kann als eine Kamera-zu-Welt-Beziehung bezeichnet werden. In einigen Fällen kann die Kamera-zu-Welt-Beziehung verwendet werden, eine Beziehung zwischen der Kamera 270 und dem Objekt 292 (auch als Kamera-zu-Objekt-Beziehung bezeichnet) und eine Beziehung zwischen dem Objekt 292 und dem Referenzpunkt 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 so zu steuern, dass er das Objekt 292 aufzunimmt. Das Robotersteuersystem 110 kann zum Beispiel konfiguriert sein, einen Ort und eine Ausrichtung des Greifers 255 oder des Gelenks 254C (z. B. eine Beziehung des Gelenks zu dem Objekt) relativ zu dem Objekt 292 basierend auf der Kamera-zu-Objekt-Beziehung, der Objekt-zu-Welt-Beziehung, der Kamera-zu-Welt-Beziehung oder einer Kombination davon zu bestimmen.
  • Bei einer Ausführungsform umfasst die Kamerakalibrierung eine intrinsische Kalibrierphase und eine Hand-Auge-Kalibrierphase. 2B stellt ein Beispiel von Informationen dar, die von der intrinsischen Kalibrierphase und der Hand-Auge-Kalibrierphase bestimmt werden, und veranschaulicht ferner ein Kalibriermuster 260, das verwendet wird, um die Kamerakalibrierung auszuführen. Bei einer Ausführungsform kann das Kalibriermuster 260 direkt und feststehend an dem Gelenk 254C angebracht sein, sodass das Kalibriermuster 260 relativ zu dem Gelenk 254C stationär verbleibt. Die intrinsische Kalibrierphase kann das automatische Bestimmen entsprechender Abschätzungen für intrinsische Kameraparameter der Kamera 270 einbeziehen. Bei einer Ausführungsform kann ein intrinsischer Kameraparameter der Kamera 270 jeder Parameter sein, dessen Wert von einem Ort und einer Ausrichtung der Kamera 270 unabhängig ist. Wie nachfolgend ausführlicher erörtert, können die intrinsischen Kameraparameter eine Eigenschaft der Kamera 270, wie beispielsweise ihre Brennweite, eine Größe ihres Bildsensors oder einen durch die Kamera 270 eingeführten Linsenverzerrungseffekt kennzeichnen. Bei einer Ausführungsform kann die Hand-Auge-Kalibrierphase das automatische Bestimmen der Kamera-zu-Welt-Beziehung und einer Beziehung zwischen dem Kalibriermuster 260 und dem Gelenk 254C (die auch als Muster-zu-Gelenk-Beziehung bezeichnet wird) oder insbesondere eine Beziehung zwischen dem Kalibriermuster 260 und einem Referenzpunkt 296 an dem Gelenk 254C einbeziehen. Bei einer Ausführungsform können die Kamera-zu-Welt-Beziehung und die Muster-zu-Gelenk-Beziehung basierend auf einer Beziehung zwischen der Kamera 270 und dem Muster 260 (die auch als Kamera-zu-Muster-Beziehung bezeichnet wird) und auf einer Beziehung zwischen dem Gelenk 254C und dem Referenzpunkt 294 (die auch als Gelenk-zu-Welt-Beziehung bezeichnet wird) bestimmt werden. In einigen Fällen kann die Kamera-zu-Muster-Beziehung basierend auf Resultaten der intrinsischen Kalibrierung bestimmt werden, während die Gelenk-zu-Welt-Beziehung basierend auf Bewegungsbefehlen bestimmt werden kann, die das Robotersteuersystem 110 zum Roboter 250 kommuniziert hat. Bei einer Ausführungsform kann die Kamerakalibrierung eine Stereokalibrierungsphase für Systeme umfassen, die mehrere Kameras umfassen. Die Stereokalibrierungsphase kann das Bestimmen einer Beziehung zwischen den mehreren Kameras einbeziehen, wie beispielsweise einen Ort und eine Ausrichtung einer Kamera relativ zu einem Ort und einer Ausrichtung einer anderen Kamera.
  • Bei einer Ausführungsform können die intrinsischen Kameraparameter einer Kamera beschreiben, wie ein zur Kamera externes Objekt als ein Bild auf ihren Bildsensor projiziert wird und wie eine Linse ein Erscheinungsbild des Objekts in dem Bild verzerrt. 3A stellt zum Beispiel ein Blockdiagramm einer Kamera 370 dar, die eine Ausführungsform der Kamera 170 der 1A und der Kamera 270 von 2A ist, die eine oder mehrere Linsen 371, einen Bildsensor 373 und eine Kommunikationsschnittstelle 375 umfasst. Die Kommunikationsschnittstelle 375 kann konfiguriert sein, mit dem Robotersteuersystem 110 von 1A zu kommunizieren, und sie kann der Kommunikationsschnittstelle 113 von 1A des Robotersteuersystems 110 ähnlich sein. Bei einer Ausführungsform können die eine oder die mehreren Linsen 371 Licht fokussieren, das von der Außenseite der Kamera 370 auf den Bildsensor 373 fällt. Bei einer Ausführungsform kann der Bildsensor 373 ein Pixelarray umfassen, das konfiguriert ist, ein Bild über entsprechende Pixelintensitätswerte darzustellen. Der Bildsensor 373 kann einen ladungsträgergekoppelten Vorrichtungs- (CCD) -Sensor, einen komplementären Metalloxidhalbleiter- (CMOS) -Sensor, einen Quantenbildsensor (QIS) oder irgendeinen anderen Bildsensor umfassen.
  • Wie vorstehend angegeben, können die intrinsischen Kameraparameter beschreiben, wie ein Objekt in einem Sichtfeld der Kamera 370 (auch als deren Kamerasichtfeld bezeichnet) als ein Bild auf einen Bildsensor projiziert wird, oder insbesondere wie verschiedene Orte, an denen das Objekt angeordnet ist, auf ein Pixelarray des Bildsensors projiziert werden. 3B veranschaulicht zum Beispiel einen Ort [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0001
    außerhalb einer Kamera 370A, wobei das hochgestellte Zeichen von T ein Transponieren bezeichnet und das tiefgestellte Zeichen von Camera (Kamera) die X-, Y- und Z-Koordinaten bezeichnet, wie sie in einem Kamerakoordinatensystem ausgedrückt werden. Die Kamera 370A kann insbesondere eine Ausführungsform der Kamera 370 sein und eine oder mehrere Linsen 371A und einen Bildsensor 373A umfassen. Ein Ort und eine Ausrichtung der Kamera 370A können verwendet werden, um ein Kamerakoordinatensystem zu definieren. 3B stellt das Kamerakoordinatensystem dar, das durch die orthogonalen Koordinatenachsen X c a m e r a , Y c a m e r a , Z c a m e r a
    Figure DE102020105655A1_0002
    zu definieren ist. Die Koordinatenachsen können mit einer Ausrichtung von verschiedenen Komponenten der Kamera 370A ausgerichtet sein. Die Koordinatenachse Z c a m e r a
    Figure DE102020105655A1_0003
    kann zum Beispiel gleich einer Mittelachse eines Kamerasichtfelds der Kamera 370A sein, die gleich einer optischen Achse der einen oder mehreren Linsen 371A sein kann. In einigen Fällen können die Koordinatenachsen X c a m e r a   a n d   Y c a m e r a
    Figure DE102020105655A1_0004
    zu den Kanten des Bildsensors 373A parallel sein. Ferner kann ein Ursprung des Kamerakoordinatensystems gleich einem Ort einer Linse der einen oder mehreren Linsen 371A, einem Ort einer Öffnung der Kamera 370A oder einem anderen Ort (z. B. einem Ort an, vor oder hinter dem Bildsensor 373A) sein.
  • Bei einer Ausführungsform kann das Licht von dem Ort [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0005
    auf eine Koordinate [ X f Y f f ] C a m e r a T
    Figure DE102020105655A1_0006
    in der Kamera projiziert werden, wobei f eine Brennweite der einen oder mehreren Linsen 371A ist. Diese Koordinate im Kamerakoordinatensystem kann auch einer Pixelkoordinate [ u   v ] S e n s o r T
    Figure DE102020105655A1_0007
    auf einem Bildsensorkoordinatensystem entsprechen. 3B stellt das Bildsensorkoordinatensystem dar, das durch die Koordinatenachsen U s e n s o r , V S e n s o r
    Figure DE102020105655A1_0008
    zu definieren ist, die mit entsprechenden Kanten des Bildsensors 373A ausgerichtet sein können. Das Bildsensorkoordinatensystem kann einen Ursprung aufweisen, der sich an einer Ecke des Bildsensors 373A befindet.
    Bei einer Ausführungsform kann ein intrinsischer Kameraparameter einen Wert aufweisen, der ein Skalarwert, ein Vektor oder eine Matrix ist. Bei einer Ausführungsform ist einer der intrinsischen Kameraparameter eine Projektionsmatrix K, die eine geometrische Beziehung zwischen dem Ort [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0009
    und dem Ort [ u   v ] S e n s o r T
    Figure DE102020105655A1_0010
    modelliert. Die Abschätzung dieses intrinsischen Kameraparameters kann eine abgeschätzte Matrix sein, die entsprechende Schätzwerte von Komponenten der Matrix umfassen kann. In einigen Fällen kann die Projektionsmatrix K eine verzerrungsfreie Beziehung zwischen [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0011
    und [ u   v ] S e n s o r T
    Figure DE102020105655A1_0012
    modellieren, während ein anderer intrinsischer Kameraparameter oder Satz von intrinsischen Kameraparametern für einen Linsenverzerrungseffekt verantwortlich sein kann, wie es nachfolgend ausführlicher beschrieben wird. Bei einer Ausführungsform ist K = [ f x 0 C x 0 f y C y 0 0 1 ]
    Figure DE102020105655A1_0013
    und [ u   v   1 ] S e n s o r T = K [ X /Z  Y /Z  1 ] C a m e r a T .
    Figure DE102020105655A1_0014
    Bei diesem Beispiel kann fx ein erster Skalenfaktor basierend auf der Brennweite f und einer Pixelgröße des Bildsensors 373A entlang der Achse U s e n s o r
    Figure DE102020105655A1_0015
    sein. Ähnlich kann fy ein zweiter Skalenfaktor basierend auf einer Brennweite f der Kamera 370A und einer Pixelgröße des Bildsensors 373A entlang der Achse V s e n s o r
    Figure DE102020105655A1_0016
    sein. Sowohl fx als auch fy können eine Einheit von Pixeln pro Millimeter aufweisen. Der Wert Cx kann ein erster Teil eines Hauptpunktversatzes sein und kann auf einem Abstand entlang der Achse U s e n s o r
    Figure DE102020105655A1_0017
    zwischen einem Ursprung des Bildsensorkoordinatensystems und einem Ursprung des Kamerakoordinatensystems basieren. Der Wert Cy kann ein zweiter Teil eines Hauptpunktversatzes sein und kann auf einem Abstand entlang der Achse V s e n s o r
    Figure DE102020105655A1_0018
    zwischen dem Ursprung des Bildsensorkoordinatensystems und dem Ursprung des Kamerakoordinatensystems basieren. Wie vorstehend angegeben ist die Projektionsmatrix K ein intrinsischer Kameraparameter und jedes von fx, fy, Cx und Cy ist eine Komponente der Matrix, wobei jede der Komponenten einen Skalarwert aufweist. Bei einer Ausführungsform kann jedes von fx, fy, Cx, Cy und die Brennweite f auch als ein intrinsischer Kameraparameter betrachtet werden, wobei ein Wert von jedem dieser intrinsischen Kameraparameter ein Skalarwert ist.
  • Bei einer Ausführungsform umfassen die intrinsischen Kameraparameter einen oder mehrere Verzerrungsparameter, die einen Linsenverzerrungseffekt kennzeichnen können, der durch die eine oder die mehreren Linsen 371A verursacht ist. Bei einer Ausführungsform kann der intrinsische Kameraparameter ein Parameter in einer Verzerrungsfunktion sein. Die Linsenverzerrung der einen oder der mehreren Linsen 371A kann zum Beispiel als ein Effekt modelliert werden, der einen Ort [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0019
    so erscheinen lässt, wie wenn er sich bei [ X ^   Y ^   Z ] C a m e r a T
    Figure DE102020105655A1_0020
    befände, wobei eine erste Funktion dx (die als eine erste Verzerrungsfunktion bezeichnet werden kann) X ^
    Figure DE102020105655A1_0021
    auf die Werte von X, Y, and Z beziehen kann und eine zweite Funktion dy (die auch als eine zweite Funktion bezeichnet wird) Y ^
    Figure DE102020105655A1_0022
    auf die Werte von X, Y, and Z beziehen kann. In einem Modell d x = X ^ X Z ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 1 X Z Y Z + p 2 ( r 2 + 2 ( X Z ) 2 )
    Figure DE102020105655A1_0023
    zum Beispiel, wobei r 2 = ( X Z ) 2 + ( y Z ) 2 .
    Figure DE102020105655A1_0024
    Bei diesem Beispiel kann jedes k1, k2, k3, p1, p2 ein Verzerrungsparameter sein, der einen Skalarwert aufweist, und eine Abschätzung eines bestimmten Verzerrungsparameters kann ein abgeschätzter Skalarwert sein. Ferner kann eine Abschätzung für einen Satz von Verzerrungsparametern (z. B. k1, k2, k3, p1, p2) bestimmt werden, wobei die Abschätzung des Satzes von Verzerrungsparametern sich auf einen Satz von entsprechenden abgeschätzten Skalarwerten für den Satz von Verzerrungsparametern bezieht.
  • Die Kamerakalibrierung kann, wie vorstehend angegeben, eine Hand-Auge-Kalibrierphase einbeziehen, die eine Beziehung zwischen der Kamera und der Umgebung der Kamera oder eine Beziehung zwischen einem Kalibriermuster und der Umgebung des Musters bestimmt. Die Hand-Auge-Kalibrierung wird nachfolgend ausführlicher beschrieben. Bei einer Ausführungsform können die externen Parameter die Kamera-zu-Welt-Beziehung und die Muster-zu-Gelenk-Beziehung beschreiben, wie es in 2B veranschaulicht ist. Bei einer Ausführungsform kann die Kamera-zu-Welt-Beziehung mittels einer Transformationsfunktion beschrieben werden, die eine Beziehung zwischen dem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt. Das Weltkoordinatensystem ist in 3C veranschaulicht und ist durch die Koordinatenachsen X W o r l d , Y W o r l d , Z W o r l d
    Figure DE102020105655A1_0025
    definiert. Ein Ursprung des Weltkoordinatensystems ist ein Referenzpunkt 394, der jeder Punkt sein kann, der relativ zu einer Basis 352 eines Roboters 350 stationär ist. Bei einer Ausführungsform können die Achsen X W o r l d , Y W o r l d , Z W o r l d
    Figure DE102020105655A1_0026
    eine willkürliche Ausrichtung aufweisen. Bei einer Ausführungsform können die Achsen X W o r l d , Y W o r l d , Z W o r l d
    Figure DE102020105655A1_0027
    relativ zu einer Struktur des Roboters 350 oder zu einer Umgebung (z. B. einem Warenlager) definiert sein, in der sich der Roboter 350 befindet. Die Achse Z W o r l d
    Figure DE102020105655A1_0028
    muss beispielsweise vielleicht orthogonal zu einem Boden des Warenlagers sein. Bei einer Ausführungsform kann die vorstehende Transformationsfunktion eine Matrix T W o r l d C a m e r a
    Figure DE102020105655A1_0029
    sein, die eine lineare Transformation von dem Kamerakoordinatensystem zu dem Weltkoordinatensystem definiert. Die vorstehende Nomenklatur von T a b
    Figure DE102020105655A1_0030
    bezeichnet eine Transformationsmatrix für eine b-zu-a-Transformation, die eine Zuordnung von einer Koordinate in einem Koordinatensystem „b“ zu einer Koordinate in einem Koordinatensystem „a“ definiert. Bei einem Beispiel hat T a b
    Figure DE102020105655A1_0031
    die Form T a b = [ R b a t b a 0 1 ]
    Figure DE102020105655A1_0032
  • In dem vorstehenden Beispiel ist Rba eine relative Rotationsmatrix zwischen den Koordinatensystemen b und dem Koordinatensystem a und tba ist ein relativer Translationsvektor zwischen dem Koordinatensystem b zu dem Koordinatensystem a.
  • Bei einer Ausführungsform kann die Muster-zu-Gelenk-Beziehung über eine Transformationsfunktion beschrieben werden, die eine Beziehung zwischen einem Musterkoordinatensystem und einem Gelenkkoordinatensystem beschreibt, wovon ein Beispiel in 3C dargestellt ist. Bei einer Ausführungsform kann ein Kalibriermuster 360 verwendet sein, um die Kamerakalibrierung auszuführen, und es kann an einem Gelenk 354 des Roboters 350 angebracht sein, wobei das Gelenk 354 mindestens einen Teil eines Roboterarms des Roboters 350 bilden kann. Das Musterkoordinatensystem kann ein Koordinatensystem sein, das in Bezug auf das Kalibriermuster 360 definiert ist. Das Musterkoordinatensystem kann zum Beispiel durch die Koordinatenachse X P a t t e r n , Y P a t t e r n , Z P a t t e r n
    Figure DE102020105655A1_0033
    definiert sein und kann einen Ursprung aufweisen, der sich an einer Mitte des Kalibriermusters 360 befindet. Bei einer Ausführungsform kann das Kalibriermuster 360 aus einer flachen rechteckigen Tafel oder einem flachen rechteckigen Blatt (z. B. Aufkleber) gebildet sein und X P a t t e r n , Y P a t t e r n
    Figure DE102020105655A1_0034
    kann parallel zu entsprechenden Kanten der flachen Tafel oder des flachen Blatts sein, während Z P a t t e r n
    Figure DE102020105655A1_0035
    orthogonal zu der flachen Tafel oder dem flachen Blatt ist. 3C veranschaulicht auch das Gelenkkoordinatensystem, das durch die Koordinatenachsen X l i n k , Y l i n k , Z l i n k
    Figure DE102020105655A1_0036
    definiert sein kann. Bei einer Ausführungsform ist ein Ursprung des Gelenkkoordinatensystems ein Punkt 396 auf dem Gelenk 354. Das Gelenk 354 kann an dem Kalibriermuster 360 feststehend angebracht sein, sodass das Kalibriermuster 360 relativ zu dem Gelenk 354 stationär ist. Bei einer Ausführungsform kann eine Ausrichtung der Koordinatenachse X l i n k , Y l i n k , Z l i n k
    Figure DE102020105655A1_0037
    die gleiche sein wie eine Ausrichtung des Gelenks 354. Bei einer Ausführungsform kann die Transformationsfunktion für die Muster-zu-Gelenk-Beziehung eine Matrix T L i n k P a t t e r n
    Figure DE102020105655A1_0038
    sein, die eine lineare Transformation zwischen dem Musterkoordinatensystem und dem Gelenkkoordinatensystem definiert. Bei einer Ausführungsform kann T L i n k P a t t e r n
    Figure DE102020105655A1_0039
    vor dem Ausführen der Hand-Auge-Kalibrierphase unbekannt sein und die Hand-Auge-Kalibrierphase kann das Bestimmen einer Abschätzung von T L i n k P a t t e r n
    Figure DE102020105655A1_0040
    zusammen mit einer Abschätzung einer Kamera-zu-Welt-Beziehung ( z .B . T W o r l d C a m e r a )
    Figure DE102020105655A1_0041
    einbeziehen.
  • Wie nachfolgend ausführlicher beschrieben, können einige Ausführungsformen der Hand-Auge-Kalibrierphase die Kamera-zu-Welt-Beziehung und die Muster-zu-Gelenk-Beziehung basierend auf einer Kamera-zu-Muster-Beziehung und einer Gelenk-zu-Welt-Beziehung bestimmen. Bei einer Ausführungsform kann die Kamera-zu-Muster-Beziehung durch eine Matrix T C a m e r a P a t t e r n
    Figure DE102020105655A1_0042
    definiert sein, die eine lineare Transformation zwischen dem Kamerakoordinatensystem und dem Musterkoordinatensystem definiert. Bei einer Ausführungsform kann die Gelenk-zu-Welt-Beziehung durch eine Matrix T W o r l d L i n k
    Figure DE102020105655A1_0043
    definiert sein, die eine lineare Transformation zwischen dem Gelenkkoordinatensystem und dem Weltkoordinatensystem definiert.
  • Bei einer Ausführungsform, bei der ein Roboter basierend auf Bildern von zwei oder mehr Kameras gesteuert wird, kann die Kamerakalibrierung eine Stereokalibrierungsphase einbeziehen, die eine Transformationsfunktion abschätzt oder anderweitig bestimmt, welche eine Beziehung zwischen einem Kamerakoordinatensystem einer ersten Kamera (z. B. Kamera 1 in 1B) und einem Kamerakoordinatensystem einer zweiten Kamera (z. B. Kamera 2 in 1B) beschreibt. Bei einer Ausführungsform kann solch eine Transformationsfunktion eine Matrix T C a m e r a 1 C a m e r a 2
    Figure DE102020105655A1_0044
    sein, die eine lineare Transformation zwischen den zwei Kamerakoordinatensystemen definiert.
  • Die Kamerakalibrierung kann wie vorstehend angegeben, das Bestimmen von Orten und/oder Ausrichtungen einbeziehen, an denen ein Kalibriermuster durch eine Kamera fotografiert wird, wobei die resultierenden Bilder verwendet werden, die intrinsische Kalibrierung, Hand-Auge-Kalibrierung und/oder Stereokalibrierung auszuführen. Das Kalibriermuster kann zum Beispiel zu mehreren Orten bewegt werden, die an oder überall in einem imaginären Würfel verteilt sind, der in ein Kamerasichtfeld der Kamera passt. 4 stellt ein Ablaufdiagramm dar, das ein Verfahren 400 zum Erlangen von Bildern eines Kalibriermusters (die auch als Kalibrierbilder bezeichnet werden) zum Ausführen einer Kamerakalibrierung veranschaulicht. Bei einer Ausführungsform wird das Verfahren 400 durch die Steuerschaltung 111 von 1A des Robotersteuersystems 110 von 1A ausgeführt. Das Robotersteuersystem 110 kann wie vorstehend angegeben eine Kommunikationsschnittstelle umfassen, die konfiguriert ist, mit einem Roboterarm und mit einer Kamera zu kommunizieren.
  • Eine beispielhafte Umgebung, in der das Verfahren 400 ausgeführt wird, ist in 5A dargestellt, die ein Roboterbetriebssystem 500 darstellt, welches das Robotersteuersystem 110 von 1A in Kommunikation mit der Kamera 470 und einen Roboter 450 umfasst. Die Kamera 470 kann eine Ausführungsform der Kamera 170/270/370 von 1A/2A/ 3A sein und der Roboter kann eine Ausführungsform des Roboters 150/250/350 von 1A/2A/3A sein. Der Roboter 450 kann eine Basis 452 und einen relativ zur Basis 452 beweglichen Roboterarm umfassen. Der Roboterarm umfasst ein oder mehrere Gelenke, wie beispielsweise die Gelenke 454A bis Gelenk 454E. Bei einer Ausführungsform können die Gelenke 454A-454E drehbar aneinander angebracht sein. Das Gelenk 454A kann zum Beispiel an der Roboterbasis 452 mittels einer Verbindung 456A drehbar angebracht sein. Die verbleibenden Gelenke 454B bis 454E können mittels der Verbindungen 456B bis 456E drehbar aneinander angebracht sein. Bei einer Ausführungsform können die Gelenke (z. B. 454B bis 454E) über eine oder mehrere prismatische Verbindungen ausschließlich oder in Kombination mit anderen Arten von Verbindungen (z. B. einer oder mehreren zylindrischen Verbindungen) verbunden sein. Bei einer derartigen Ausführungsform, welche die eine oder die mehreren prismatischen Verbindungen einbezieht, können die Gelenke als linear aneinander angebracht bezeichnet werden. Bei einer Ausführungsform kann die Basis 452 verwendet werden, um den Roboter 452 an z. B. einem Einbaurahmen oder einer Einbaufläche (z. B. dem Boden eines Warenlagers) anzubringen. Bei einer Ausführungsform kann der Roboter 450 mehrere Motoren umfassen, die konfiguriert sind, den Roboterarm durch Drehen der Gelenke 454A bis 454E zu bewegen. Einer der Motoren kann zum Beispiel konfiguriert sein, das erste Gelenk 454A in Bezug zu der Verbindung 456A und der Basis 402 zu drehen, wie es mit dem punktierten Pfeil in 5A gezeigt ist. Ähnlich können andere Motoren der mehreren Motoren konfiguriert sein, die Gelenke 454B bis 454E zu drehen. Die mehreren Motoren können durch das Robotersteuersystem 110 gesteuert werden. 5A stellt ferner ein Kalibriermuster 460 dar, das in einer fixierten Weise an dem fünften Gelenk 454E angeordnet ist, sodass Drehbewegungen der Gelenke 454A bis 454E oder eine andere Bewegung des Roboters 450 weder einen Ort noch eine Ausrichtung des Kalibriermusters 460 relativ zu dem Gelenk 454E ändert. Bei einer Ausführungsform kann das Kalibriermuster 460 auf das Gelenk 454E lackiert sein. Bei einer Ausführungsform kann das Kalibriermuster 460 Teil einer Kalibriertafel sein, die an dem Gelenk 454E angebracht ist.
  • Unter erneuter Bezugnahme auf 4 kann das Verfahren 400 bei einer Ausführungsform mit Schritt 401 beginnen, bei dem die Steuerschaltung 111 alle Eckorte eines imaginären Würfels bestimmen kann, der in ein Kamerasichtfeld passt (z. B. vollständig passt), wobei das Kamerasichtfeld sich auf ein Sichtfeld einer Kamera beziehen kann. 5B stellt ein beispielhaftes Kamerasichtfeld 510 dar, das ein Sichtfeld der Kamera 470 sein kann, und ferner einen imaginären Würfel 550, der in das Kamerasichtfeld 510 passt. Bei einer Ausführungsform kann das Kamerasichtfeld 510 eine imaginäre Pyramide bilden, die sich nach außen von der Kamera 470 ausbreitet. In einigen Fällen kann eine Breite des Kamerasichtfelds 510 von einer Brennweite von einer oder mehreren Linsen der Kamera 470 abhängen. 5C stellt ein Beispiel der Eckorte des imaginären Würfels 550 dar. Der imaginäre Würfel 550 weist insbesondere acht Eckorte 551A bis 551H auf, die den acht Ecken des imaginären Würfels 550 entsprechen. Bei einer Ausführungsform kann das Bestimmen eines Eckorts des imaginären Würfels das Bestimmen einer Koordinate ( z .B [ X   Y   Z ] W o r l d T )
    Figure DE102020105655A1_0045
    des Eckorts einbeziehen.
  • Bei einer Ausführungsform kann der imaginäre Würfel 550 einen Raum definieren, an oder in dem das Kalibriermuster 460 durch einen Roboterarm des Roboters 450 bewegt wird. Die Kamera 470 kann mehrere Bilder des Kalibriermusters 460 erfassen (die auch als Kalibrierbilder bezeichnet werden), die unterschiedlichen Orten an oder in dem imaginären Würfel 550 entsprechen. Obwohl das Kalibriermuster 460 in dem Raum bewegt werden kann, der durch eine unterschiedliche Form, wie beispielsweise eine Sphäre, definiert ist, kann der Raum, der durch den imaginären Würfel 550 definiert wird, Orte umfassen, die sich näher an einer Peripherie des Kamerasichtfelds 510 der Kamera 470 befinden. Die acht Eckorte des imaginären Würfels 550 können sich beispielsweise nahe einer Peripherie des Kamerasichtfelds 510 befinden. Wenn die Kamera 470 eine Linsenverzerrung oder andere Formen der Kameraverzerrung aufweist, kann eine Auswirkung der Linsenverzerrung auf ein Kalibrierbild ausgeprägter sein, wenn das Kalibriermuster 460 sich nahe der Peripherie des Kamerasichtfelds 510 befindet, relativ dazu, wenn sich das Kalibriermuster 460 z. B. um eine Mitte des Kamerasichtfelds 510 herum befindet. Der imaginäre Würfel 550 kann daher die Erfassung von Kalibrierbildern erleichtern, in denen ein Effekt der Verzerrung ausgeprägter ist, was ermöglichen kann, dass die Kamerakalibrierung eine korrektere Abschätzung für einen Verzerrungsparameter der Kamera 470 erzeugt.
  • Unter erneuter Bezugnahme auf 4 kann das Verfahren 400 ferner einen Schritt 403 umfassen, bei dem die Steuerschaltung 111 mehrere Orte bestimmen kann, die an oder überall in dem imaginären Würfel verteilt sind, wobei das Kalibriermuster mindestens teilweise an jedem Ort der mehreren Orte für die Kamera sichtbar ist.
  • Bei einer Ausführungsform sind die mehreren Orte an oder überall in dem imaginären Würfel einheitlich verteilt (was auch als gleichmäßig verteilt bezeichnet wird). Bei einer Ausführungsform können die mehreren Orte genau n3 Orte sein, die einheitlich an oder in dem imaginären Würfel verteilt sind, wobei n eine positive ganze Zahl ist, die gleich oder größer als 2 oder gleich oder größer als 3 ist. 5C veranschaulicht zum Beispiel eine Ausführungsform von genau 27 Orten, die einheitlich an oder überall in dem imaginären Würfel 550 verteilt sind. Bei einer Ausführungsform weisen die mehreren einheitlich verteilten Orte wie entlang einer Kante des imaginären Würfels gemessen zwischen unmittelbar angrenzenden Orten der mehreren Orte einen einheitlichen Abstand auf. Der Eckort 551A kann zum Beispiel ein zu den Orten 5511 bis 551N unmittelbar angrenzender Ort sein. Der Eckort 551A und die unmittelbar angrenzenden Orte 5511 bis 551N können wie entlang einer Kante des imaginären Würfels 550 gemessen einen einheitlichen Abstand aufweisen. Der Eckort 551A kann insbesondere entlang einer Kante 553A, 553B oder 553C gemessen den gleichen Abstand zu jedem von den unmittelbar angrenzenden Orten 551 bis 551N aufweisen. Dieser Abstand kann z. B. die Hälfte einer Länge jeder Seite des imaginären Würfels 550 sein. Bei einer weiteren Ausführungsform kann der imaginäre Würfel 550 in n3 kleinere, nicht überlappende Würfel (z. B. 27 kleinere Würfel) aufgeteilt sein, sodass die kleineren Würfel den imaginären Würfel 550 einheitlich aufteilen. Bei einer derartigen Implementierung kann jeder Ort der mehreren einheitlich verteilten Orte einer Mitte eines entsprechenden kleineren Würfels sein.
  • Bei einer Ausführungsform sind die mehreren Orte über den imaginären Würfel 550 zufällig verteilt. In einigen Fällen ist die Steuerschaltung 111 konfiguriert, durch Teilen des imaginären Würfels 550 in mehrere nicht überlappende Regionen und durch Zuordnen eines entsprechenden Orts der mehreren Orte, sodass er sich in jeder Region der mehreren nicht überlappenden Regionen befindet, die mehreren Orte zu bestimmen, wobei der entsprechende Ort in einer bestimmten Region ein zufälliger Ort in dieser Region sein kann. In einigen Fällen kann die Steuerschaltung 111 konfiguriert sein, jede der halben Regionen rekursiv oder iterativ in kleinere halbe Regionen zu teilen und Orte unterschiedlichen halben Regionen zuzuweisen, sodass die mehreren Orte nicht um eine Region des imaginären Würfels 550 herum angehäuft sind.
  • Die Steuerschaltung kann zum Beispiel konfiguriert sein, die mehreren Orte über eine Reihe von Iterationen zu bestimmen, wobei ein erster Ort der mehreren Orte als irgendein Ort innerhalb des imaginären Würfels bestimmt wird und während einer ersten Iteration der Reihe von Iterationen bestimmt wird, wobei der imaginäre Würfel eine erste Region bildet, die verwendet wird, um die erste Iteration auszuführen. 5D veranschaulicht ein Beispiel eines ersten Orts 555A, der in der ersten Iteration bestimmt wird. Bei diesem Beispiel werden entsprechende Orte für die verbleibenden Iterationen durch Ausführen des Folgenden für jede der verbleibenden Iterationen bestimmt: (a) Teilen einer Region, die verwendet wird, um eine vorhergehende Iteration auszuführen, in eine erste Region und eine zweite Region, die sich nicht überlappen, wobei jede der ersten Region und der zweiten Region eine Region ist, die verwendet wird, um eine gegenwärtige Iteration auszuführen, (b) Bestimmen, welche der ersten Region und der zweiten Region einen vorherigen Ort enthält, wobei der vorherige Ort ein entsprechender Ort der mehreren Orte ist, die in der vorhergehenden Iteration bestimmt wurden, (c) und Bestimmen eines Orts innerhalb der anderen von der ersten Region und der zweiten Region als einen gegenwärtigen Ort, wobei der gegenwärtige Ort ein Ort der mehreren Orte ist, der für die gegenwärtige Iteration bestimmt ist. 5D veranschaulicht zum Beispiel eine zweite Iteration, die eine in einer vorhergehenden Iteration (d. h. der ersten Iteration) verwendete Region in eine erste halbe Region 553A und eine zweite halbe Region 553B teilt. Da der Ort für die erste Iteration sich in der ersten halben Region 554A befindet, befindet sich der Ort für die zweite Iteration ferner in der anderen, der zweiten halben Region 553B. 5E veranschaulicht eine dritte Iteration, die eine in einer vorhergehenden Iteration verwendete Region 553A in eine erste halbe Region 553C und eine zweite halbe Region 553D teilt. Da ein Ort 555A von einer vorhergehenden Iteration sich in der halben Region 553D befand, befindet sich der Ort 555C für die dritte Iteration in der anderen halben Region 553C. 5F veranschaulicht eine vierte Iteration, die eine in einer vorhergehenden Iteration verwendete Region 553B in die halben Regionen 553E und 553F teilt. Da sich ein Ort einer vorhergehenden Iteration in der halben Region 553F befand, befindet sich der Ort 555D für die vierte Iteration in der anderen halben Region 553E.
  • Unter erneuter Bezugnahme auf 4 umfasst das Verfahren 400 einen Schritt 405, in dem die Steuerschaltung 111 den Roboterarm steuern kann, um das Kalibriermuster zu den mehreren in Schritt 403 bestimmten Orten zu bewegen. In Bezug auf 5B kann der Roboter 450 zum Beispiel den Roboterarm durch Bewegen des einen oder der mehreren Gelenke 454A bis 454E des Roboterarms bewegen. Die Steuerschaltung 111 kann z. B. einen oder mehrere Bewegungsbefehle erzeugen, die bewirken würden, dass der Roboter die mehreren Gelenke 454A bis 454E bewegt, und den einen oder die mehreren Bewegungsbefehle über die Kommunikationsschnittstelle 113 an den Roboter 450 ausgeben. Die Steuerschaltung 111 kann insbesondere den einen oder die mehreren Bewegungsbefehle an die Kommunikationsschnittstelle 113 ausgeben, die den einen oder die mehreren Bewegungsbefehle zu dem Roboter 450 kommunizieren kann, um zu bewirken, dass der Roboterarm (z. B. die mehreren Gelenke 454A bis 454E) das Kalibriermuster basierend auf dem einen oder den mehreren Bewegungsbefehlen zu den mehreren Orten bewegt, die an oder überall in dem imaginären Würfel verteilt sind. Bei einer Ausführungsform können der eine oder die mehreren Bewegungsbefehle einen oder mehrere Motorbefehle umfassen, die einen Drehbewegungsbetrag steuern, um den sich die Gelenke 454A bis 454E relativ zueinander drehen. Bei einer Ausführungsform kann die Steuerschaltung konfiguriert sein, einen Ort als eine kartesische Koordinate [ X   Y   Z ] W o r l d T
    Figure DE102020105655A1_0046
    zu bestimmen und Motorbefehle basierend auf der kartesischen Koordinate zu bestimmen. Bei einer Ausführungsform kann die Steuerschaltung 111 konfiguriert sein, den Roboterarm (z. B. über Bewegungsbefehle, die dem Roboter 450 kommuniziert werden) zu steuern, um das Kalibriermuster 460 in unterschiedliche entsprechende Winkel relativ zur Kamera 470 für die mehreren Orte, die an oder überall in dem imaginären Würfel 550 verteilt sind, zu neigen, sodass mehrere entsprechende Kalibrierbilder das Kalibriermuster 460 in unterschiedlichen entsprechenden Winkeln relativ zur Kamera 470 erfassen.
  • Bei einer Ausführungsform umfasst das Verfahren 400 einen Schritt 407, bei dem die Steuerschaltung 111 mehrere Kalibrierbilder von der Kamera 470 über die Kommunikationsschnittstelle 113 abrufen oder anderweitig empfangen kann, wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und entsprechende Bilder des Kalibriermusters 460 an den mehreren Orten der Schritte 403 und 405 sind. In einigen Fällen kann der Schritt 407 einbeziehen, dass die Steuerschaltung die Kamera steuert, um die mehreren entsprechenden Kalibrierbilder zu erfassen, die dem Kalibriermuster entsprechen, das an den mehreren Orten angeordnet ist. Die 6A bis 6D veranschaulichen beispielsweise ein Beispiel von vier entsprechenden Bildern des Kalibriermusters 460 von 5A an unterschiedlichen Orten und/oder in unterschiedlichen entsprechenden Winkeln relativ zur Kamera 470. In einigen Fällen kann jedes Kalibrierbild der mehreren entsprechenden Kalibrierbilder ein Pixelarray mit entsprechenden Pixelintensitätswerten umfassen. Bei einer Ausführungsform kann eines oder mehrere der Kalibrierbilder eine Verzerrung zeigen, die sich durch eine Krümmung in oder unter Elementen des Kalibriermusters manifestierten kann, die tatsächlich gerade sind. Die Verzerrung wird nachstehend ausführlicher in Bezug auf 8B erörtert.
  • Bei einer Ausführungsform kann der Schritt 407 beinhalten, dass die Steuerschaltung ein Kalibrierbild durch Erzeugen eines Kamerabefehls und Kommunizieren des Kamerabefehls über die Kommunikationsschnittstelle 113 zu der Kamera abruft. Wenn der Kamerabefehl durch die Kamera empfangen wurde, kann er bewirken, dass die Kamera das Kalibrierbild oder jedes andere Bild von dem Kamerasichtfeld erfasst, und/oder er kann bewirken, dass die Kamera ein erfasstes Bild zu der Kommunikationsschnittstelle 113 zurückkommuniziert, die dann das erfasste Bild zu der Steuerschaltung 111 kommunizieren kann. Die Steuerschaltung 111 kann daher infolgedessen das erfasste Kalibrierbild von der Kamera über die Kommunikationsschnittstelle 113 empfangen. Bei einer Ausführungsform kann die Steuerschaltung 111 ein erfasstes Bild von der Kamera empfangen, ohne einen Kamerabefehl zu erzeugen. Die Kamera kann zum Beispiel ein Kalibrierbild oder jedes andere Bild von ihrem Kamerasichtfeld periodisch oder als Reaktion auf eine definierte Triggerbedingung automatisch erfassen, ohne einen Kamerabefehl von der Steuerschaltung 111 zu benötigen. Bei einer derartigen Ausführungsform kann die Kamera auch konfiguriert sein, ohne einen Kamerabefehl von der Steuerschaltung 111 das Kalibrierbild zu der Kommunikationsschnittstelle 113 automatisch zu kommunizieren, die dann das Bild zu der Steuerschaltung 111 kommunizieren kann.
  • Unter erneuter Bezugnahme auf 4 umfasst das Verfahren 400 einen Schritt 409, bei dem die Steuerschaltung 111 entsprechende Abschätzungen der intrinsischen Kameraparameter basierend auf den mehreren entsprechenden Kalibrierbildern bestimmen kann. Das Verfahren 400 umfasst ferner einen Schritt 411, bei dem die Steuerschaltung 111 basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter eine Abschätzung einer Transformationsfunktion bestimmt, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt. Bei einer Ausführungsform können die Schritte 409 und 411 Teil einer intrinsischen Kalibrierphase und einer Hand-Auge-Kalibrierphase sein, die nachfolgend ausführlicher beschrieben werden. Bei einer Ausführungsform kann das Verfahren 400 einen Schritt 413 umfassen, bei dem die Steuerschaltung ein anschließendes Bild von der Kamera empfängt und eine Platzierung des Roboterarms durch Ausgeben eines anschließenden Bewegungsbefehls (z. B. über die Kommunikationsschnittstelle 113) an den Roboter steuert, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert. Das anschließende Bild kann zum Beispiel ein Bild eines Pakets oder anderen Objekts sein, das durch die Kamera (z. B. automatisch oder als Reaktion auf einen Kamerabefehl) erfasst wird. Bei einem Beispiel kann der Schritt 413 die Verwendung der Transformationsfunktion und des anschließenden Bildes einbeziehen, um eine Objekt-zu-Welt-Beziehung (z. B. eine Matrix T W O R L D O B J E C T
    Figure DE102020105655A1_0047
    ) zu bestimmen, und diese Beziehung kann verwendet werden, um einen Bewegungsbefehl zu erzeugen, der eine Platzierung des Roboterarms oder einer anderen Komponente des Roboters relativ zu dem Paket steuert.
  • Bei einer Ausführungsform kann der in Schritt 405 (in dem das Kalibriermuster zu Orten bewegt wird, die an oder überall in dem imaginären Würfel verteilt sind) verwendete imaginäre Würfel ein größter imaginärer Würfel sein, der in ein Kamerasichtfeld (z. B. 510) passen (z. B. vollständig passen) kann. Bei einer Ausführungsform wird der größte imaginäre Würfel in Schritt 405 verwendet, wenn (z. B. nur wenn) ein Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann. Anderweitig kann ein kleinerer imaginärer Würfel für den Schritt 405 verwendet werden. Bei einer Ausführungsform des Verfahrens 400 wird der Schritt 401 zum Beispiel vor dem Schritt 405 ausgeführt und bezieht ein, dass die Steuerschaltung 111 einen ersten imaginären Würfel bestimmt, der in das Kamerasichtfeld der Kamera passt. 7 stellt ein Beispiel eines ersten imaginären Würfels 649 dar, der in einigen Fällen der größte imaginäre Würfel sein kann, der in das Kamerasichtfeld der Kamera passen kann. Die Steuerschaltung 111 kann dann bestimmen, ob der Roboterarm (z. B. des Roboters 450) das Kalibriermuster zu allen Eckorten des ersten imaginären Würfels bewegen kann. Wenn der Roboterarm fähig ist, dies zu tun, kann der erste imaginäre Würfel dann in den Schritten 403 und 405 als der imaginäre Würfel verwendet werden.
  • In einigen Fällen kann die Steuerschaltung 111 bestimmen, dass der Roboterarm das Kalibriermuster nicht zu einem oder mehreren Eckorten des ersten imaginären Würfels 649 bewegen kann. Die Steuerschaltung 111 kann zum Beispiel bestimmen, dass der Roboterarm ein Kalibriermuster zu nur sechs Eckorten des ersten imaginären Würfels 649 bewegen kann und unfähig sein kann, das Kalibriermuster zu einem siebten Eckort oder achten Eckort des ersten imaginären Würfels 649 zu bewegen. Solch eine Bestimmung reflektiert eine Möglichkeit, dass das Kalibriermuster nicht nahe dem siebten Eckort und dem achten Eckort angeordnet werden kann. Wenn bei einer derartigen Situation der erste imaginäre Würfel 649 verwendet wird, um Orte zu bestimmen, an denen das Kalibriermuster durch die Kamera fotografiert wird, kann die Kamera unfähig sein, Kalibrierbilder des Kalibriermusters nahe dem siebten Eckort und dem achten Eckort zu erfassen, da das Kalibriermuster nicht nahe daran heranbewegt werden kann. Diese Situation kann die Diversität von Kalibrierbildern reduzieren, die für eine Kamerakalibrierung verfügbar sind, was eine Genauigkeit oder Robustheit der Kamerakalibrierung reduzieren kann. Die Steuerschaltung 111 kann daher als Reaktion auf eine Bestimmung, dass der Roboterarm unfähig ist, das Kalibriermuster zu mindestens einem Eckort des ersten imaginären Würfels 649 zu bewegen, einen zweiten imaginären Würfel 650 bestimmen, der kleiner ist als der erste imaginäre Würfel 649 (z. B. 20 % kleiner). Wenn der Roboterarm das Kalibriermuster zu allen Eckorten des zweiten imaginären Würfels 650 bewegen kann, dann kann der zweite imaginäre Würfel 650 als der imaginäre Würfel der Schritte 403 und 405 verwendet werden.
  • Bei einer Ausführungsform kann die Steuerschaltung basierend auf dem Detektieren, ob ein physischer Gegenstand (z. B. ein Stromkabel) einen Weg von dem Roboterarm zu diesem Ort blockiert, bestimmen, ob der Roboterarm das Kalibriermuster zu einem bestimmten Ort bewegen kann. Bei einer Ausführungsform kann es einige Orte geben, bei denen der Roboterarm einfach unfähig ist, sie zu erreichen, da sie von einer Basis des Roboters zu weit entfernt sind oder weil der Roboterarm durch seinen physischen Aufbau darin eingeschränkt ist, sich zu diesem Ort zu bewegen. Der Roboterarm kann zum Beispiel durch eine Größe von einem oder mehreren Gelenken, die den Roboterarm bilden, eine Ausrichtung der einen oder der mehreren Gelenke, wie viele Freiheitsgrade durch Verbindungen bereitgestellt werden, die das eine oder die mehreren Gelenke verbinden, oder eine andere Einschränkung eingeschränkt sein. Bei einer Ausführungsform kann die Steuerschaltung die vorstehende Bestimmung durchführen, ohne den Roboterarm tatsächlich zu bewegen. Bei einer weiteren Ausführungsform kann die Steuerschaltung die vorstehende Bestimmung durch den tatsächlichen Versuch, den Kalibrierarm über den Roboterarm zu dem bestimmten Ort zu bewegen, und das Bestimmen, ob solch ein Versuch erfolgreich ist, durchführen.
  • Bei einer Ausführungsform wird ein bestimmter imaginärer Würfel für den Schritt 405 verwendet, wenn der Roboterarm das Kalibriermuster an jedem Eckort neigen kann, sodass es sich innerhalb eines definierten Winkelbereichs relativ zur Kamera befindet. In einigen Fällen wird der bestimmte imaginäre Würfel nur für den Schritt 405 verwendet, wenn die vorstehend genannte Bedingung erfüllt ist. Die Kamerakalibrierung kann zum Beispiel nur Kalibrierbilder verwenden, bei denen sich ein Winkel zwischen den Kalibriermustern und der Kamera in einem Bereich von 0 bis 45 Grad befindet. Bei einer Ausführungsform kann daher der Schritt 401 das Bestimmen durch die Steuerschaltung 111 einbeziehen, ob der Roboterarm das Kalibriermuster zu allen Eckorten des ersten imaginären Würfels 649 bewegen kann und ob er an jedem Eckort von allen Eckorten des ersten imaginären Würfels 649 das Kalibriermuster in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb eines definierten Winkelbereichs befindet. Wenn die Steuerschaltung bestimmt, dass der Roboterarm unfähig ist, das Kalibriermuster zu einem oder mehreren Eckorten des ersten imaginären Würfels 649 zu bewegen, oder dass der Roboterarm unfähig ist, für mindestens einen Eckort des ersten imaginären Würfels 649 das Kalibriermuster in einen Winkel zu neigen, der sich relativ zur Kamera innerhalb der definierten Winkelbereiche befindet, kann die Steuerschaltung 111 alle Eckorte des zweiten imaginären Würfels 650 bestimmen. Der zweite imaginäre Würfel 650 kann für den Schritt 405 verwendet werden, wenn die vorstehenden Bedingungen erfüllt sind.
  • Bei einer Ausführungsform kann die Steuerschaltung 111 konfiguriert sein, einen Wert eines Bildschärfeparameters und einen Wert eines Belichtungsparameters basierend auf einem Bild des Kalibriermusters zu bestimmen. In einigen Fällen kann diese Bestimmung vor dem Schritt 401 ausgeführt werden. Die Steuerschaltung 111 kann zum Beispiel konfiguriert sein, die Kamera zu steuern, ein erstes Kalibrierbild des Kalibriermusters vor dem Schritt 401 zu erfassen und ein Intensitätsniveau und ein Kontrastniveau von mindestens einem Musterelement (z. B. einem Punkt) des Kalibriermusters zu bestimmen. Die Steuerschaltung 111 kann konfiguriert sein, entsprechende Werte des Belichtungsparameters (z. B. eine Öffnung, Verschlusszeit oder ISO) und einen Bildschärfeparameter der Kamera basierend auf mindestens einem von dem Intensitätsniveau und dem Kontrastniveau von mindestens einem von den Musterelementen in dem ersten Kalibrierbild zu bestimmen. Die entsprechenden Werte dieser Parameter können dann von der Kamera verwendet werden, um bei Schritt 407 Kalibrierbilder des Kalibriermusters zu erfassen.
  • Wie vorstehend beschrieben, kann die Kamerakalibrierung auf Kalibrierbildern, wie beispielsweise Bildern des Kalibriermusters 460, basieren. Bei einer Ausführungsform kann das Kalibriermuster 460 auf eine flache Kalibriertafel gedruckt sein. Die Kalibriertafel kann aus einem Material gebildet sein, das gegenüber temperaturbedingter Krümmung beständig ist, wie beispielsweise Kohlenstofffasern. 8A stellt ein Beispiel des Kalibriermusters 460 dar, das mehrere der Musterelemente 4611 bis 46125 umfassen kann, die entlang imaginärer gerader Gitterlinien (4631 bis 4635 und 4651 bis 4655 ) eines rechteckigen Gitters angeordnet sind. Die imaginären Gitterlinien können beispielsweise einen ersten Satz von geraden Linien mit den gleichen Abständen 4631 bis 4635 und einen zweiten Satz von geraden Linien mit den gleichen Abständen 4651 bis 4655 umfassen, wobei der erste Satz imaginärer Gitterlinien 4631 bis 4635 zu dem zweiten Satz imaginärer Gitterlinien 4651 bis 4655 orthogonal ist. Bei einer Ausführungsform kann jedes der Musterelemente 4611 bis 46125 ein kreisförmiger Punkt sein. Bei einer Ausführungsform können sich die Musterelemente 4611 bis 46125 in der Größe unterscheiden. Die Musterelemente 4618 , 46113 und 46114 weisen zum Beispiel einen ersten Durchmesser auf, während alle verbleibenden Musterelemente einen zweiten Durchmesser aufweisen, der kleiner ist als der erste Durchmesser. Bei einer Ausführungsform weisen die mehreren Musterelemente 4611 bis 46125 eine definierte Größe bzw. Größen und einen definierten Abstand dazwischen auf. Der erste Durchmesser und der zweite Durchmesser können zum Beispiel Werte sein, die durch einen Hersteller des Kalibriermusters 460 (z. B. einem Kalibriertafelhersteller) definiert sind, und sie können während der Kamerakalibrierung ein bekannter Wert sein. Ferner können die mehreren Musterelemente 4611 bis 46125 einen definierten Abstand Δd1 entlang der Gitterlinien 4651 bis 4655 aufweisen und einen definierten Abstand Δd2 entlang der Gitterlinien 4631 bis 4635 aufweisen, wobei die definierten Abstände während der Kamerakalibrierung bekannte Werte sein können. Bei einer Ausführungsform ist Δd1 gleich Δd2. Bei einer Ausführungsform können die Musterelemente 4611 bis 46125 alle die gleiche Größe aufweisen (z. B. gleichen Durchmesser) und das Kalibriermuster 460 kann ferner ein Merkmal (z. B. eine rotationsasymmetrische Form) umfassen, das eine Ausrichtung des Kalibriermusters 460 anzeigt.
  • Das Musterkoordinatensystem kann wie vorstehend angegeben in Bezug auf ein Kalibriermuster, wie beispielsweise das Kalibriermuster 460, definiert sein. Bei einer Ausführungsform kann ein Musterelement an oder nahe einer Mitte des Kalibriermusters 460, wie beispielsweise das Musterelement 46113 , einen Ursprung des Kalibrierkoordinatensystems definieren. Bei dieser Ausführungsform kann die Achse X P a t t e r n
    Figure DE102020105655A1_0048
    mit den imaginären Gitterlinien 4631 bis 4635 ausgerichtet sein, während die Y P a t t e r n Achse
    Figure DE102020105655A1_0049
    mit den imaginären Gitterlinien 4651 bis 4655 ausgerichtet sein kann, und die Achse Z P a t t e r n
    Figure DE102020105655A1_0050
    ist zu einer durch das Kalibriermuster 460 gebildeten Ebene orthogonal ausgerichtet.
  • Während die Musterelemente entlang gerader imaginärer Linien angeordnet sind, können sie in einem Kalibrierbild aufgrund eines Linsenverzerrungseffekts wie auf einer gekrümmten Bahn angeordnet erscheinen. 8B stellt beispielsweise ein Beispiel eines Kalibrierbilds für das Kalibriermuster 460 dar, bei dem das Kalibrierbild einen Linsenverzerrungseffekt umfasst. Während zum Beispiel die Musterelemente in dem Kalibriermuster 460 entlang gerader Linien eines rechteckigen Gitters angeordnet sind, kann die Linsenverzerrung bewirken, dass sie so erscheinen, als wären sie entlang einer gekrümmten Bahn angeordnet. Wie nachfolgend ausführlicher beschrieben, kann die Kamerakalibrierung eine Abschätzung eines Verzerrungsparameters oder eines Satzes von Verzerrungsparametern basierend auf dem Detektieren einer Krümmung in dem Kalibrierbild bestimmen.
  • Wie vorstehend angegeben, kann ein Aspekt der Kamerakalibrierung eine intrinsische Kalibrierphase einbeziehen (was auch als Ausführen einer intrinsischen Kalibrierung bezeichnet wird), die nachfolgend erörtert wird. Bei einer Ausführungsform kann die intrinsische Kalibrierung das Bestimmen entsprechender Abschätzungen für die intrinsischen Kameraparameter der Kamera 170/370/470 von 1A/3B/5A, wie beispielsweise Verzerrungsparameter und eine Projektionsmatrix, umfassen.
  • Bei einer Ausführungsform kann die Projektionsmatrix ein intrinsischer Kameraparameter sein, dessen Wert eine aus Skalarwerten gebildete Matrix ist. Die Projektionsmatrix K einer Kamera 170/370/470 kann zum Beispiel als eine aus 9 Skalarwerten gebildete 3x3-Matrix definiert sein. Wie vorstehend angegeben, ist ein Beispiel der Projektionsmatrix: K = [ f x 0 C x 0 f y C y 0 0 1 ]
    Figure DE102020105655A1_0051
  • Bei einer Ausführungsform definiert die Projektionsmatrix eine lineare Transformation oder eine andere Zuordnung, die eine Koordinate [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0052
    eines Musterelements innerhalb des Kamerasichtfelds der Kamera zu einer Pixelkoordinate [ u   v ] S e n s o r T
    Figure DE102020105655A1_0053
    projiziert, an der das Musterelement in einem Kalibrierbild erscheinen wird: [ u v 1 ] = K [ X / Z Y / Z 1 ] ,
    Figure DE102020105655A1_0054
  • Die vorstehende Beziehung kann annehmen, dass es keine Linsenverzerrung gibt. Bei dem vorstehenden Beispiel ist der Vektor [X/Z Y/Z 1]T eine homogene 3D-Koordinate in dem Kamerakoordinatensystem und der Vektor [u v 1]T eine homogene 3D-Koordinate in dem Bildsensorkoordinatensystem.
  • Bei einer Ausführungsform kann die Pixelkoordinate [ u   v ] S e n s o r T
    Figure DE102020105655A1_0055
    eines Musterelements eine Abschätzung einer Mitte des Musterelements in dem Kalibrierbild bezeichnen. Wenn das Musterelement zum Beispiel als ein kreisförmiger Punkt in dem Kalibrierbild erscheint, kann die Pixelkoordinate eine Mitte des kreisförmigen Punkts sein. In einigen Situationen kann das Musterelement in dem Kalibrierbild als eine Ellipse erscheinen, obwohl es tatsächlich ein kreisförmiger Punkt auf dem Kalibriermuster ist. Der Grund für dieses Erscheinungsbild kann ein Winkel zwischen der Kamera und dem Kalibriermuster sein. In diesen Situationen kann die Pixelkoordinate des Musterelements geringfügig von einer geometrischen Mitte der Ellipse abweichen.
  • Bei einer Ausführungsform kann jedes von fx, fy, Cx und Cy eine Komponente der Projektionsmatrix und auch ein intrinsischer Kameraparameter sein, dessen Wert ein Skalarwert ist. Wie vorstehend angegeben, können die Parameter fx und fy Skalierungsfaktoren sein, die auf einer Brennweite der Kamera und einer Pixelgröße eines Bildsensors in einer X- oder Y-Richtung basieren. Die Parameter Cx und Cy können Pixelkoordinaten einer im Bildsensorkoordinatensystem ausgedrückten Bildmitte sein.
  • Bei einer Ausführungsform kann ein Verzerrungsparameter ein Parameter einer Verzerrungsfunktion sein. Die Linsenverzerrung einer Kamera kann insbesondere als eine oder mehrere Funktionen dx und dy modelliert werden, was ein Musterelement schafft, das sich tatsächlich bei [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0056
    in dem Sichtfeld der Kamera befindet, so erscheinen lässt, als ob sich das Musterelement bei [ X ^   Y ^   Z ] C a m e r a T
    Figure DE102020105655A1_0057
    befindet. In diesem Modell wird die Projektionsmatrix K auf [ X ^   Y ^   Z ] C a m e r a T
    Figure DE102020105655A1_0058
    anstatt auf [ X   Y   Z ] C a m e r a T
    Figure DE102020105655A1_0059
    angewandt. Dieses Phänomen kann ausgedrückt werden als: [ u v 1 ] = K [ X ^ Y ^ 1 ] = [ d x ( X ˜ , Y ˜ ) d y ( X ˜ , Y ˜ ) 1 ] = K [ d x ( X / Z , Y / Z ) d y ( X / Z , Y / Z ) 1 ]
    Figure DE102020105655A1_0060
  • In dem vorstehenden Beispiel sind X/Z und Y/Z vereinfacht als X̃ und Ỹ geschrieben. Eine nicht lineare Verzerrungsfunktion dx kann X̂ als eine Funktion von X̃ und Ỹ bestimmen und eine nicht lineare Verzerrungsfunktion dy kann Ŷ als eine Funktion von X̃ und Ỹ bestimmen. In einigen Fällen kann ein intrinsischer Kameraparameter ein Parameter in der Verzerrungsfunktion dx oder dy sein, wobei in diesem Fall der intrinsische Kameraparameter als ein Verzerrungsparameter bezeichnet werden kann.
  • Bei einer Ausführungsform können die Verzerrungsfunktionen auf einem Polynomverzerrungsmodell basieren, bei dem X ^ = d x ( X ˜ , Y ˜ ) = X ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 1 X ˜ Y ˜ + p 2 ( r 2 + 2 X ˜ 2 )
    Figure DE102020105655A1_0061
    Y ^ = d y ( X ˜ , Y ˜ ) = Y ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + 2 p 2 X ˜ Y ˜ + p 1 ( r 2 + 2 Y ˜ 2 )
    Figure DE102020105655A1_0062
  • In dem vorstehenden Beispiel ist r2 = X̂2 + Ỹ2. Ferner können die intrinsischen Kameraparameter bei diesem Beispiel k1,k2,k3,p1,p2 umfassen, wobei jeder davon insbesondere als ein Verzerrungsparameter bezeichnet werden kann. In einigen Fällen können einige oder alle der Verzerrungsparameter einen Wert aufweisen, der ein Skalarwert ist.
  • Bei einer Ausführungsform können die Verzerrungsfunktionen auf einem rationalen Verzerrungsmodell basieren, bei dem X ^ = d x ( X ˜ , Y ˜ ) = X ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 5 1 + k 4 r 2 + k 5 r 4 + k 6 r 6 ) + 2 p 1 X ˜ Y ˜ + p 2 ( r 2 + 2 X ˜ 2 )
    Figure DE102020105655A1_0063
    Y ^ = d y ( X ˜ Y ˜ ) = Y ˜ ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 1 + k 4 r 2 + k 5 r 4 + k 6 r 6 ) + 2 p 2 X ˜ Y ˜ + p 1 ( r 2 + 2 Y ˜ 2 )
    Figure DE102020105655A1_0064
  • Bei dem vorstehenden Beispiel ist r2 = X̃2 + Ỹ2 und jedes von k1, k2, k3, k4, k5, k6, p1 und p2 ein intrinsischer Kameraparameter und insbesondere ein Verzerrungsparameter.
  • Bei einer Ausführungsform können die Verzerrungsfunktionen auf einem Sichtfeld-Modell basieren, bei dem: X ^ = d x ( X ˜ ) = X ˜  tan ( r  tan ( ω ) ) tan ( ω )
    Figure DE102020105655A1_0065
    Y ^ = d y ( Y ˜ ) = Y ˜  tan ( r  tan ( ω ) ) tan ( ω )
    Figure DE102020105655A1_0066
  • Bei dem vorstehenden Beispiel ist ω ein intrinsischer Kameraparameter und insbesondere ein Verzerrungsparameter, dessen Wert ein Skalarwert ist.
  • Wie nachfolgend ausführlicher beschrieben, können einige Instanzen der intrinsischen Kalibrierphase das Bestimmen einer Abschätzung eines Verzerrungsparameters einbeziehen, wobei die Abschätzung ein Wert sein kann, der, wenn er angewandt wird, um die Verzerrungsfunktionen d x 1  und  d y 1
    Figure DE102020105655A1_0067
    umzukehren, einen Linsenverzerrungseffekt kompensieren kann. Wenn die inverse Verzerrungsfunktion zum Beispiel mit der Abschätzung des Verzerrungsparameters angewandt wird, kann sie ein Bild, das eine Krümmung aufweist (z. B. das Bild in 8B), in ein „unverzerrtes“ Bild umwandeln, das die Krümmung reduziert oder eliminiert.
  • Die 9A und 9B stellen ein Ablaufdiagramm eines beispielhaften Verfahrens 900 zum Ausführen einer Kamerakalibrierung dar, wobei die Kamerakalibrierung eine intrinsische Kalibrierphase umfassen kann. Das Verfahren kann Schätzwerte von unterschiedlichen intrinsischen Kameraparametern bei unterschiedlichen Stufen bestimmen. Das Verfahren 900 kann durch z. B. die Steuerschaltung 111 von 1A des Robotersteuersystems 110 von 1A ausgeführt werden. Wie vorstehend beschrieben, kann das Robotersteuersystem 110 in Kommunikation mit einem Roboter und einer Kamera sein, wie beispielsweise dem Roboter 450 von 5A und der Kamera 470 von 5A mit dem Kamerasichtfeld 510. Der Roboter 450 kann einen Roboterarm aufweisen, auf dem ein Kalibriermuster, wie beispielsweise das Kalibriermuster 460 von 5A, angeordnet ist. Das Kalibriermuster 460 umfasst mehrere Musterelemente 4611 bis 46125 von 8A mit entsprechend definierten Musterelementorten (z. B. Musterkoordinaten) in einem Musterkoordinatensystem, wie beispielsweise das in den 3C und 8A dargestellten. Das Musterkoordinatensystem kann ein Koordinatensystem sein, das in Bezug auf einen Ort und eine Ausrichtung des Kalibriermusters 460 definiert ist. Wie in 8A veranschaulicht, ist das Musterkalibriersystem zum Beispiel durch die Koordinatenachsen X p a t t e r n , Y p a t t e r n  und  Z p a t t e r n
    Figure DE102020105655A1_0068
    definiert. Bei einer Ausführungsform ist das Musterelement 46113 ein Ursprung des Musterkalibriersystems und sein definierter Musterelementort ist die Musterkoordinate [ 0   0   0 ] P a t t e r n T .
    Figure DE102020105655A1_0069
    Bei dieser Ausführungsform ist der definierte Musterelementort des Musterelements 46114 beispielsweise [ d 1   0   0 ] P a t t e r n T ,
    Figure DE102020105655A1_0070
    wobei d1 ein definierter Wert ist, der bekannt ist. Als ein weiteres Beispiel ist der definierte Musterelementort des Musterelements 4618 [ 0   d 2   0 ] P a t t e r n T .
    Figure DE102020105655A1_0071
  • Bei einer Ausführungsform kann das Verfahren 900 mit Schritt 901 beginnen, bei dem die Steuerschaltung 111 den Roboterarm steuern kann, das Kalibriermuster (z. B. 460) zu mindestens einem Ort innerhalb eines Kamerasichtfelds (z. B. 510 von 5B) zu bewegen, wobei das Kamerasichtfeld ein Sichtfeld der Kamera (z. B. 470) bezeichnen kann. In einigen Fällen kann Schritt 901 einbeziehen, dass die Steuerschaltung 111 einen Bewegungsbefehl zum Ausgeben an die Kommunikationsschnittstelle 113 des Robotersteuersystems 110 erzeugt und den Bewegungsbefehl an die Kommunikationsschnittstelle 113 ausgibt. Die Kommunikationsschnittstelle 113 kann den Bewegungsbefehl zum Roboter kommunizieren, wobei der Bewegungsbefehl bewirken kann, dass der Roboterarm das Kalibriermuster zu dem mindestens einen Ort in dem Kamerasichtfeld bewegt. Bei einer Ausführungsform kann Schritt 901 auf eine zu den Schritten 401 bis 405 von 4 ähnliche Weise ausgeführt werden.
  • In Schritt 902 ruft die Steuerschaltung 111 ein Kalibrierbild von der Kamera über die Kommunikationsschnittstelle 113 ab oder empfängt es anderweitig, wobei das Kalibrierbild durch die Kamera erfasst wird und ein Bild des Kalibriermusters an dem mindestens einen Ort ist. Bei einer Ausführungsform kann Schritt 902 auf eine dem Schritt 407 ähnliche Weise ausgeführt werden. Bei einer Ausführungsform kann Schritt 902 einbeziehen, dass die Steuerschaltung 111 die Kamera über einen Kamerabefehl steuert, um ein Kalibrierbild zu erfassen, das dem Kalibriermuster entspricht und sich bei dem mindestens einen Ort befindet, wie beispielsweise eines der Kalibrierbilder in den 6A bis 6D oder in 8B.
  • In Schritt 903 kann die Steuerschaltung 111 mehrere Bildmusterelementorte (auch als erfasste Musterelementorte bezeichnet) bestimmen, die entsprechende Orte anzeigen, an denen die mehreren Musterelemente in einem Kalibrierbild erscheinen. Jedes der Musterelemente kann beispielsweise ein kreisförmiger Punkt sein und ein erfasster Elementort eines bestimmten kreisförmigen Punkts kann eine Pixelkoordinate [u v]T sein, an welcher der kreisförmige Punkt in dem Kalibrierbild erscheint, und kann insbesondere eine abgeschätzte Pixelkoordinate einer Mitte des kreisförmigen Punkts sein.
  • In Schritt 905 kann die Steuerschaltung 111 eine erste Abschätzung eines ersten intrinsischen Kameraparameters der Kamera basierend auf den mehreren Bildmusterelementorten (z. B. einem Satz von [u v]T Koordinaten) und basierend auf den definierten Musterelementorten (z. B. einem Satz von [ X '   Y '   Z ' ] P a t t e r n T
    Figure DE102020105655A1_0072
    Koordinaten) bestimmen. In einigen Fällen umfasst die Kamera eine Linse und einen Bildsensor und der erste intrinsische Kameraparameter kann eine Projektionsmatrix sein, die eine Bildprojektion auf den Bildsensor beschreibt. Der erste intrinsische Kameraparameter kann beispielsweise die Projektionsmatrix K sein. In einigen Fällen kann der erste intrinsische Kameraparameter eine Komponente der Projektionsmatrix K sein, wie beispielsweise einer der Parameter fx, fy, Cx und Cy.
  • Wie vorstehend angegeben, kann die Projektionsmatrix K basierend auf entsprechenden bekannten Koordinaten von [ X '   Y '   Z ' ] P a t t e r n T
    Figure DE102020105655A1_0073
    von verschiedenen Musterelementen und auf entsprechenden bekannten [u v]T Koordinaten abgeschätzt werden, an denen die verschiedenen Musterelemente in einem Kalibrierbild des Kalibriermusters erscheinen. Bei einer Ausführungsform kann [u v]T mit K T C a m e r a P a t t e r n [ X '   Y '   Z ' ] P a t t e r n T
    Figure DE102020105655A1_0074
    in Zusammenhang stehen. Bei dieser Ausführungsform kann T C a m e r a P a t t e r n
    Figure DE102020105655A1_0075
    eine lineare Transformation sein, die eine Beziehung zwischen dem Musterkoordinatensystem und einem Kamerakoordinatensystem beschreibt, wie beispielsweise dem in den 3B und 3C dargestellten. Es kann zum Beispiel die Beziehung reflektieren, dass: [ X Y Z 1 ] C a m e r a = T c a m e r a p a t t e r n [ X ' Y ' Z ' 1 ] P a t t e r n
    Figure DE102020105655A1_0076
  • In einigen Fällen kann T c a m e r a p a t t e r n
    Figure DE102020105655A1_0077
    eine Drehmatrix R und einen Translationsvektor t umfassen. Es kann zum Beispiel als eine 4x4-Matrix geschrieben werden mit der Form T c a m e r a p a t t e r n = [ R c a m e r a p a t t e r n t c a m e r a p a t t e r n 0 1 ] .
    Figure DE102020105655A1_0078
  • Bei einer Ausführungsform kann Schritt 905 das Lösen für K und T C a m e r a P a t t e r n
    Figure DE102020105655A1_0079
    basierend auf mehreren Pixelkoordinaten [u v]T und ihren entsprechenden Koordinaten [ X '   Y '   Z ' ] P a t t e r n T
    Figure DE102020105655A1_0080
    einbeziehen. Bei einer Ausführungsform kann der perspective-n-point-Algorithmus verwendet werden, um eine Abschätzung von T C a m e r a P a t t e r n
    Figure DE102020105655A1_0081
    zu bestimmen. Bei einer Ausführungsform kann dieser Schritt auch eine Linsenverzerrung berücksichtigen und eine Abschätzung eines Verzerrungsparameters bestimmen. Dieser geschätzte Wert kann jedoch verworfen werden, nachdem Schritt 905 ausgeführt wurde, oder er wird genereller in den anderen Schritten des Verfahrens 900 nicht verwendet. Bei einer Ausführungsform kann Schritt 905 basierend auf einem Kamerakalibrierungsalgorithmus ausgeführt werden, der in „A Flexible New Technique for Camera Calibration,‟ Technical Report MSR-TR-98-71, von Zhengyou Zhang (der auch als Algorithmus von Zhang bezeichnet wird) beschrieben wird, wobei die Offenbarung hierin durch Bezugnahme vollständig aufgenommen wird. Der Algorithmus von Zhang kann insbesondere in der Lage sein, die Koordinaten [u v]T und [ X '   Y '   Z ' ] P a t t e r n T
    Figure DE102020105655A1_0082
    zu verwenden, um eine Abschätzung einer Projektionsmatrix K, eine Abschätzung der T C a m e r a P a t t e r n Matrix
    Figure DE102020105655A1_0083
    und eine Abschätzung eines Verzerrungsparameters oder Satzes von Verzerrungsparametern zu bestimmen. Bei diesem Beispiel kann die Abschätzung der Projektionsmatrix K für die Schritte 907 verwendet werden, was nachstehend ausführlicher beschrieben wird, während der geschätzte Wert von T C a m e r a P a t t e r n
    Figure DE102020105655A1_0084
    und/oder die Abschätzung des bzw. der Verzerrungsparameter verworfen werden kann oder alternativ auch eine oder mehrere der vorstehenden Abschätzungen als eine anfängliche Schätzung eines Parameterwerts in Schritt 907 verwendet werden kann, wie es nachfolgend ausführlicher beschrieben wird.
  • In Schritt 907 kann die Steuerschaltung eine erste Abschätzung eines bzw. von zweiten intrinsischen Kameraparametern der Kamera basierend auf der ersten Abschätzung des ersten intrinsischen Kameraparameters und basierend auf den mehreren Bildmusterelementorten (die auch als erfasste Musterelementorte bezeichnet werden) bestimmen. In einigen Fällen kann der zweite intrinsische Kameraparameter ein Verzerrungsparameter sein, der eine durch die Linse bewirkte Verzerrung beschreibt. Wie vorstehend beschrieben, kann der zweite intrinsische Kameraparameter beispielsweise ein Verzerrungsparameter sein, der für die nicht linearen Verzerrungsfunktionen dx und dy verwendet wird.
  • Bei einer Ausführungsform kann die Steuerschaltung in Schritt 907 die erste Abschätzung des bzw. der zweiten intrinsischen Kameraparameter (z. B. des bzw. der Verzerrungsparameter) bestimmen durch: (a) Bestimmen einer anfängliche Abschätzung des bzw. der zweiten intrinsischen Kameraparameter, (b) Erzeugen, basierend auf der anfänglichen Abschätzung des bzw. der zweiten intrinsischen Kameraparameter und auf der ersten Abschätzung der Projektionsmatrix und dem Kalibrierbild: einer modifizierten Version des Kalibrierbilds, das die durch die Linse bewirkte Verzerrung kompensiert, (c) Bestimmen eines Krümmungsbetrags in der modifizierten Version des Kalibrierbilds, (d) Anpassen der anfänglichen Abschätzung des zweiten intrinsischen Kameraparameters basierend auf dem Krümmungsbetrag in der modifizierten Version des Kalibrierbilds, um eine angepasste Abschätzung des zweiten intrinsischen Kameraparameters zu erzeugen, der den Krümmungsbetrag reduziert, wobei die angepasste Abschätzung die erste Abschätzung des zweiten intrinsischen Kameraparameters ist. Bei einer Ausführungsform kann die anfängliche Abschätzung für den zweiten intrinsischen Kameraparameter einen Nullwert oder einen Satz von Nullwerten aufweisen (z. B. sind k1, k2, k3, p1, and/or p2 in den vorstehenden Verzerrungsfunktionen gleich Null). Bei einer Ausführungsform kann die anfängliche Abschätzung für den zweiten intrinsischen Kameraparameter von einem Resultat von Schritt 905 erlangt werden. Wenn zum Beispiel Schritt 905 den Algorithmus von Zhang verwendet, kann der Algorithmus eine Abschätzung für den zweiten intrinsischen Kameraparameter ausgeben und diese ausgegebene Abschätzung kann in Schritt 907 als die anfängliche Abschätzung des zweiten intrinsischen Kameraparameters eingegeben werden.
  • Bei einer Ausführungsform kann die modifizierte Version des Kalibrierbilds eine Version sein, die versucht, eine Linsenverzerrung in dem Kalibrierbild zu kompensieren. Die modifizierte Version kann zum Beispiel durch Anwenden der inversen Verzerrungsfunktion d x 1  und  d y 1
    Figure DE102020105655A1_0085
    auf das Kalibrierbild erzeugt werden. Bei einem Beispiel kann das durch die Kamera erfasste Kalibrierbild durch die Pixelkoordinaten [u, v]T dargestellt werden, die Orte darstellen, an denen Musterelemente in dem Kalibrierbild erscheinen, während die modifizierte Version des Kalibrierbilds durch die Pixelkoordinaten [ũ ṽ]T dargestellt werden kann, die Orte darstellen, an denen die gleichen Musterelemente in der modifizierten Version erscheinen. Bei diesem Beispiel können die Pixelkoordinaten [ũṽ]T durch eine Abschätzung der Projektionsmatrix K und der inversen Verzerrungsfunktionen berechnet werden. Wie vorstehend beschrieben, kann die Abschätzung der Projektionsmatrix insbesondere verwendet werden, um eine inverse Projektionsmatrix zu bestimmen, die verwendet werden kann zum Bestimmen von [ X ^ Y ^ 1 ] = K 1 [ u v 1 ]
    Figure DE102020105655A1_0086
  • Ferner kann wie vorstehend beschrieben das vorstehende Resultat auf die inverse Verzerrung angewandt werden zum Bestimmen von: X ˜ = d x 1 ( X ^ , Y ^ )
    Figure DE102020105655A1_0087
    Y ˜ = d y 1 ( X ^ , Y ^ )
    Figure DE102020105655A1_0088
  • Bei dem vorstehenden Beispiel beziehen sich X̂ und Ŷ für ein Musterelement darauf, wo das Musterelement im Sichtfeld der Kamera zu sein scheint, wenn eine Linsenverzerrung angewandt wird, und X̃ und Ỹ beziehen sich darauf, wo das Musterelement im Sichtfeld der Kamera zu sein scheint, wenn es eine Kompensation gegenüber der Linsenverzerrung gibt. Die Projektionsmatrix kann auf X̃ und Ỹ angewandt werden, um die Pixelkoordinaten [ũ ṽ]T zu bestimmen basierend auf der Beziehung: [ u ˜ v ˜ 1 ] = K [ X ˜ Y ˜ 1 ]
    Figure DE102020105655A1_0089
  • Bei dem vorstehenden Beispiel kann die inverse Verzerrungsfunktion einen oder mehrere Verzerrungsparameter umfassen. Die Abschätzung für den einen oder die mehreren Verzerrungsparameter kann optimiert werden, um gegenüber einer Linsenverzerrung bestmöglich zu kompensieren. Insbesondere kann die Abschätzung entsprechend einen oder mehrere Schätzwerte für den einen oder die mehreren Verzerrungsparameter einbeziehen und optimiert werden, um einen Verzerrungsbetrag in der modifizierten Version des Kalibrierbilds zu minimieren oder anderweitig zu reduzieren. Die Steuerschaltung 111 kann zum Beispiel unterschiedliche Abschätzungen für den einen oder die mehreren Verzerrungsparameter versuchen, um unterschiedliche modifizierte Versionen des Kalibrierbilds zu erzeugen und zu bewerten, welche Abschätzung den Krümmungsbetrag in der modifizierten Version des Kalibrierbilds minimiert, wobei der Krümmungsbetrag als eine Krümmungspunktzahl bestimmt werden kann. Eine optimale Abschätzung für einen Verzerrungsparameter kann als die erste Abschätzung des Verzerrungsparameters behandelt werden. Wie vorstehend angegeben, kann das Kalibriermuster in einigen Fällen Musterelemente umfassen, die entlang gerader Gitterlinien angeordnet sind. Eine Linsenverzerrung kann bewirken, dass die Musterelemente in einem Kalibrierbild erscheinen, als ob sie entlang einer gekrümmten Bahn angeordnet wären. Eine modifizierte Version des Kalibrierbilds, das keine Verzerrung aufweist, kann keine Krümmung aufweisen, sodass Musterelemente in der modifizierten Version des Kalibrierbilds erscheinen, als wären sie entlang gerader Gitterlinien angeordnet.
  • Bei einer Ausführungsform kann eine Linienanpassungstechnik verwendet werden, um einen Krümmungsbetrag in der modifizierten Version des Kalibrierbilds zu bestimmen. Zum Beispiel können die mehreren Musterelemente in dem Kalibriermuster mehrere Punkte (z. B. kreisförmige Punkte) sein. Bei einem derartigen Beispiel kann die Steuerschaltung in Schritt 907 den Krümmungsbetrag bestimmen durch: Anpassen mehrerer gerader Linien durch die mehreren Punkte (z. B. durch entsprechende Mitten der Punkte) in der modifizierten Version des Kalibrierbilds und Bestimmen des Krümmungsbetrags basierend auf einem Abstand zwischen jeder geraden Linie der mehreren geraden Linien und einem entsprechenden Punkt (z. B. eine entsprechende Mitte des Punkts) der mehreren Punkte, durch welche die gerade Linie angepasst wird. Wenn die modifizierte Version des Kalibrierbilds nicht verzerrt wäre, hätte jede gerade Linie einen Abstand von Null mit den Punkten, durch welche die Linie angepasst ist, oder insbesondere einen Abstand von Null mit entsprechenden Mitten der Punkte. Die gerade Linie würde zum Beispiel durch entsprechende Mitten der Punkte hindurchgehen. 10A veranschaulicht jedoch ein Kalibrierbild, das einen Grad an Linsenverzerrung aufweist. Infolgedessen gehen eine oder mehrere der geraden Linien nicht durch entsprechende Mitten aller Punkte, an welche diese gerade Linie angepasst ist. 10B zeigt eine Linienanpassung für einen Teil der Punkte von 10A. In der Figur ist eine Linie, die an vier Punkte angepasst ist, außerhalb der entsprechenden Mitten von drei Punkten der vier Punkte. Der Krümmungsbetrag kann basierend auf einem entsprechenden Abstand zwischen einer Mitte jedes Punkts und der angepassten Linie in 10B berechnet werden, wie es durch einen entsprechenden Pfeil angegeben ist, der von der angepassten Linie ausgeht. Bei einer Ausführungsform kann der Krümmungsbetrag für die modifizierte Version des Kalibrierbilds durch eine Gesamtkrümmungspunktzahl dargestellt werden, die z. B. eine Summe von entsprechenden Krümmungspunktzahlen für in die Linienanpassung einbezogene einzelne Linien sein kann. Bei einer Ausführungsform kann Schritt 907 das Optimieren entsprechender Schätzwerte von mehreren Verzerrungsparametern einbeziehen, um eine Gesamtkrümmungspunktzahl für eine modifizierte Version des Kalibrierbilds zu minimieren, wobei die modifizierte Version basierend auf den Schätzwerten erzeugt wird.
  • Wie in 9B veranschaulicht, kann in Schritt 909 die Steuerschaltung 111 eine zweite Abschätzung des ersten intrinsischen Kameraparameters und eine zweite Abschätzung des zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des zweiten intrinsischen Kameraparameters bestimmen. Bei einer Ausführungsform basiert die Bestimmung bei Schritt 909 auch auf den mehreren Bildmusterelementorten und den definierten Musterelementorten. In Schritt 909 kann die erste Abschätzung des zweiten intrinsischen Kameraparameters verwendet werden, um die erste Abschätzung des ersten intrinsischen Kameraparameters zu verfeinern, wobei die verfeinerte Abschätzung eine zweite Abschätzung des ersten intrinsischen Kameraparameters ist. Da der zweite intrinsische Kameraparameter in einer separaten Stufe in Schritt 907 abgeschätzt wird, kann wie vorstehend erörtert diese Abschätzung des zweiten intrinsischen Kameraparameters relativ zu einer Situation korrekter sein, bei der die erste Abschätzung des ersten intrinsischen Kameraparameters und die erste Abschätzung des zweiten intrinsischen Kameraparameters gleichzeitig in der gleichen Stufe bestimmt werden. Bei einer Ausführungsform kann diese korrektere Abschätzung des zweiten intrinsischen Kameraparameters dann verwendet werden, um eine bessere, aktualisierte Abschätzung des ersten intrinsischen Kameraparameters zu erzeugen, wobei die aktualisierte Abschätzung die zweite Abschätzung des ersten intrinsischen Kameraparameters ist.
  • Bei einer Ausführungsform kann in Schritt 909 der Algorithmus von Zhang verwendet werden. Der Algorithmus von Zhang kann als eine Eingabe insbesondere einen vermuteten Anfangswert für den zweiten intrinsischen Kameraparameter akzeptieren. Der vermutete Anfangswert kann eine optionale Eingabe für den Algorithmus von Zhang sein. In einigen Fällen kann diese optionale Eingabe in Schritt 905 nicht verwendet worden sein. Die optionale Eingabe kann jedoch in Schritt 909 verwendet werden, bei dem die erste Abschätzung des zweiten intrinsischen Kameraparameters als der vermutete Anfangswert für den Algorithmus von Zhang angewandt wird, die ferner die mehreren Bildmusterelementorte und die definierten Musterelementorte verwenden kann, um die zweite Abschätzung des ersten intrinsischen Kameraparameters zu erzeugen. Bei einer Implementierung kann der Algorithmus von Zhang ferner eine zweite Abschätzung des zweiten intrinsischen Kameraparameters erzeugen und kann ferner eine Abschätzung einer Transformationsfunktion (z. B. T C A M E R A P A T T E R N
    Figure DE102020105655A1_0090
    ) ausgeben, die eine Beziehung zwischen einem Kamerakoordinatensystem und einer Musterkoordinate beschreibt.
  • Die Schritte 901 bis 909 können Teil einer intrinsischen Kalibrierphase eines Kamerakalibrierungsprozesses sein. Bei einer Ausführungsform kann die intrinsische Kalibrierphase ferner eine Stufe umfassen, bei der die Steuerschaltung die zweite Abschätzung des ersten intrinsischen Kameraparameters und die zweite Abschätzung des zweiten intrinsischen Kameraparameters verwendet, um einen simulierten Ort eines Musterelements zu bestimmen, und diese Abschätzungen anpasst, um eine dritte Abschätzung zu erzeugen, die eine Differenz zwischen dem simulierten Ort und einem aktuellen Ort des Musterelements minimiert.
  • Die Steuerschaltung kann insbesondere eine dritte Abschätzung des zweiten intrinsischen Kameraparameters und eine dritte Abschätzung des ersten intrinsischen Kameraparameters bestimmen durch: (a) Bestimmen eines simulierten Kalibrierbilds, das ein simuliertes Bild des Kalibriermusters ist, basierend auf der Abschätzung der ersten Transformationsfunktion, der zweiten Abschätzung des zweiten intrinsischen Kameraparameters und der zweiten Abschätzung des ersten intrinsischen Kameraparameters, (b) Bestimmen einer Differenz zwischen dem simulierten Kalibrierbild und dem durch die Kamera erfassten Kalibrierbild, (c) Anpassen der zweiten Abschätzung des zweiten intrinsischen Kameraparameters und der zweiten Abschätzung des ersten intrinsischen Kameraparameters basierend auf der Differenz, um eine angepasste Abschätzung des zweiten intrinsischen Kameraparameters und eine angepasste Abschätzung des ersten intrinsischen Kameraparameters zu erzeugen, welche die Differenz reduziert, wobei die angepasste Abschätzung des zweiten intrinsischen Kameraparameters die dritte Abschätzung davon ist und die angepasste Abschätzung des ersten intrinsischen Kameraparameters die dritte Abschätzung davon ist.
  • Bei einer Ausführungsform kann das simulierte Kalibrierbild die simulierten Pixelkoordinaten [usimulated vsimulated]T von verschiedenen Musterelementen umfassen. Eine simulierte Pixelkoordinate für ein Musterelement kann eine vorhergesagte Pixelkoordinate sein, die basierend auf entsprechenden Abschätzungen intrinsischer Kameraparameter und z. B. T C A M E R A P A T T E R N
    Figure DE102020105655A1_0091
    vorhersagt, wo das Muster erscheinen wird. Die simulierten Pixelkoordinaten können zum Beispiel basieren auf der Beziehung [ X s i m u l a t e d Y s i m u l a t e d Z s i m u l a t e d 1 ] C a m e r a = T C A M E R A P A T T E R N [ X ' Y ' Z ' 1 ] P a t t e r n
    Figure DE102020105655A1_0092
    X ^ = d x ( X Z , Y Z ) , Y ^ = d y ( X Z , Y Z )
    Figure DE102020105655A1_0093
    [ u s i m u l a t e d v s i m u l a t e d 1 ] = K [ X ^ Y ^ 1 ]
    Figure DE102020105655A1_0094
  • Bei dem vorstehenden Beispiel kann K die zweite Abschätzung des ersten intrinsischen Kameraparameters sein und kann angepasst werden, um die dritte Abschätzung davon zu finden. Die Verzerrungsfunktionen dx und dy können auf der zweiten Abschätzung des bzw. der zweiten intrinsischen Kameraparameter basieren, die angepasst werden können, um die dritte Abschätzung davon zu finden. Ferner kann T C A M E R A P A T T E R N
    Figure DE102020105655A1_0095
    eine Abschätzung sein, die bei Schritt 909 erlangt wird, während [X' Y' Z']Pattern eine bekannte Koordinate eines Musterelements in dem Musterkoordinatensystem ist.
  • Bei dem vorstehenden Beispiel kann die Steuerschaltung 111 einen Abstand zwischen einer entsprechenden simulierten Pixelkoordinate und einer tatsächlichen Pixelkoordinate berechnen, wobei die simulierte Pixelkoordinate darstellt, wo ein Musterelement bei [X' Y' Z']Pattern in dem simulierten Kalibrierbild erscheint, und die tatsächliche Pixelkoordinate darstellt, wo das Musterelement in dem durch die Kamera erfassten Kalibrierbild tatsächlich erscheint. Die Steuerschaltung 111 kann durch Anpassen der zweiten Abschätzung des ersten intrinsischen Kameraparameters (Projektionsmatrix K), der Abschätzung des bzw. der zweiten intrinsischen Kameraparameter (z. B. eines bzw. von Verzerrungsparametern) und der Abschätzung von T C A M E R A P A T T E R N
    Figure DE102020105655A1_0096
    eine Optimierung ausführen, bis die Abstände minimiert (z. B. näher an Null) sind. Die angepassten Schätzungen für diese Parameter können zur dritten Abschätzung davon werden. Bei einer Ausführungsform kann die dritte Abschätzung des ersten intrinsischen Kameraparameters eine abschließende Abschätzung des ersten intrinsischen Kameraparameters sein und die dritte Abschätzung des zweiten intrinsischen Kameraparameters eine abschließende Abschätzung des zweiten intrinsischen Kameraparameters sein, sodass eine Ausgabe der intrinsischen Kalibrierphase die dritten Abschätzungen des ersten intrinsischen Kameraparameters und des zweiten intrinsischen Kameraparameters sein kann.
  • Wie vorstehend angegeben, kann die Kamerakalibrierung zusätzlich zu der intrinsischen Kalibrierphase eine Stereokalibrierungsphase umfassen. Zum Beispiel in einem System, das wie System 100A mehr als eine Kamera einbezieht, in dem das Robotersteuersystem 110 konfiguriert ist, mit einer ersten Kamera und einer zweiten Kamera zu kommunizieren. Die erste Kamera kann ein erstes Kamerakoordinatensystem aufweisen, das in Bezug auf einen Ort und eine Ausrichtung der ersten Kamera definiert ist, und die zweite Kamera kann ein zweites Kamerakoordinatensystem aufweisen, das in Bezug auf einen Ort und eine Ausrichtung der zweiten Kamera definiert ist. In diesem Fall kann die Steuerschaltung 111 des Robotersteuersystems 110 konfiguriert sein, die Stereokalibrierungsphase durch Bestimmen einer Funktion (z. B. einer Matrix) auszuführen, die eine Beziehung zwischen dem ersten Kamerakoordinatensystem und dem zweiten Kamerakoordinatensystem beschreibt.
  • Wenn das Robotersteuersystem 110 in Kommunikation mit mehreren Kameras ist, kann das Robotersteuersystem 110 beispielsweise konfiguriert sein, Werte von intrinsischen Kameraparametern für jede der mehreren Kameras abzuschätzen und Orte der mehreren Kameras relativ zueinander und/oder deren Ausrichtungen relativ zueinander abzuschätzen. Bei einer Ausführungsform können die relativen Orte und Ausrichtungen zwischen zwei Kameras (z. B. 170 und 180 von 1A) als ein Translationsvektor und eine Rotationsmatrix zwischen den zwei Kameras ausgedrückt werden.
  • Wie vorstehend angegeben, kann die Kamerakalibrierung eine Hand-Auge-Kalibrierphase einbeziehen. Bei Schritt 911 kann die Steuerschaltung 111 zum Beispiel basierend auf der zweiten Abschätzung des ersten intrinsischen Kameraparameters und der zweiten Abschätzung des zweiten intrinsischen Kameraparameters eine Abschätzung einer Transformationsfunktion ( z .B T W o r l d C a m e r a )
    Figure DE102020105655A1_0097
    bestimmen, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt. Wie vorstehend angegeben, kann das Kamerakoordinatensystem ein Koordinatensystem sein, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, und das Weltkoordinatensystem ist ein Koordinatensystem, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist. Schritt 911 kann direkt auf den zweiten Abschätzungen des intrinsischen Kameraparameters oder indirekt darauf basieren. Schritt 911 kann zum Beispiel direkt auf der dritten Abschätzung des ersten intrinsischen Kameraparameters und der dritten Abschätzung des zweiten intrinsischen Kameraparameters basieren, die wiederum auf der zweiten Abschätzung des ersten intrinsischen Kameraparameters und der zweiten Abschätzung des zweiten intrinsischen Kameraparameters basieren. Bei einem derartigen Beispiel basiert Schritt 911 indirekt auf den zweiten Abschätzungen der intrinsischen Kameraparameter.
  • Bei einer Ausführungsform kann T C A M E R A P A T T E R N
    Figure DE102020105655A1_0098
    ein Beispiel einer ersten Transformationsfunktion sein und T W O R L D C A M E R A
    Figure DE102020105655A1_0099
    ein Beispiel einer zweiten Transformationsfunktion sein. In einigen Fällen kann die zweite Transformationsfunktion basierend auf der ersten Transformationsfunktion bestimmt werden.
  • Bei einem spezifischeren Beispiel kann eine Aufgabe der Hand-Auge-Kalibrierung sein, T W O R L D C A M E R A  und  T L I N K P A T T E R N
    Figure DE102020105655A1_0100
    (die ein Beispiel einer vierten Transformationsfunktion sein können basierend auf T C A M E R A P A T T E R N  und  T W O R L D L I N K
    Figure DE102020105655A1_0101
    (die ein Beispiel einer dritten Transformationsfunktion sein können) zu bestimmen.
  • Bei einer Ausführungsform kann die Hand-Auge-Kalibrierung basieren auf der Beziehung: T W O R L D L I N K T L I N K P A T T E R N = T W O R L D C A M E R A T C A M E R A P A T T E R N
    Figure DE102020105655A1_0102
  • Bei dem vorstehenden Beispiel kann T W O R L D L I N K  und  T C A M E R A P A T T E R N
    Figure DE102020105655A1_0103
    bekannt sein oder zu einem Beginn der Hand-Auge-Kalibrierphase bestimmt werden. Zum Beispiel kann T W O R L D L I N K
    Figure DE102020105655A1_0104
    basierend auf Bewegungsbefehlen, die das Robotersteuersystem 110 zu einem Roboter (z. B. 150 von 1A) kommuniziert hat, bestimmt werden. Bei einem Beispiel können die Bewegungsbefehle Motorbefehle sein, die eine Drehbewegung von Gelenken bewirken, die einen Roboterarm des Roboters bilden, und T W O R L D L I N K
    Figure DE102020105655A1_0105
    kann von der durch die Motorbefehle bewirkten Drehbewegung bestimmt werden. Bei einem Beispiel kann T C A M E R A P A T T E R N
    Figure DE102020105655A1_0106
    basierend auf der Projektionsmatrix K bestimmt werden, die von der intrinsischen Kalibrierphase abgeschätzt wurde. Zum Beispiel basiert T C A M E R A P A T T E R N
    Figure DE102020105655A1_0107
    auf der Beziehung: [ X Y Z 1 ] C a m e r a = T C A M E R A P A T T E R N [ X ' Y ' Z ' 1 ] P a t t e r n
    Figure DE102020105655A1_0108
  • Bei dem vorstehenden Beispiel kann [ X Y Z ] C a m e r a T
    Figure DE102020105655A1_0109
    eine Koordinate im Sichtfeld der Kamera eines Musterelements sein und von einem Kalibrierbild, in dem das Musterelement erscheint, und von einer Abschätzung der Projektionsmatrix und Abschätzungen der Verzerrungsparameter abgeschätzt werden. In einigen Fällen kann T C A M E R A P A T T E R N
    Figure DE102020105655A1_0110
    unter Verwendung des Perspective-n-Point-Algorithmus abgeschätzt werden, der eine Abschätzung einer Projektionsmatrix und eine Abschätzung eines bzw. von Verzerrungsparametern einer Kamera verwenden kann, um T C A M E R A P A T T E R N
    Figure DE102020105655A1_0111
    zu bestimmen. Solche Abschätzungen der Projektionsmatrix und des bzw. der Verzerrungsparameter können von der intrinsischen Kalibrierphase stammen oder von einem Hersteller der Kamera definierte Werte sein. Bei einem weiteren Beispiel kann T C A M E R A P A T T E R N
    Figure DE102020105655A1_0112
    selbst ein Nebenprodukt der intrinsischen Kalibrierphase sein. Wenn die intrinsische Kalibrierphase den Algorithmus von Zhang verwendet, kann der Algorithmus zum Beispiel eine Abschätzung von T C A M E R A P A T T E R N
    Figure DE102020105655A1_0113
    ausgeben und diese Abschätzung kann für die Hand-Auge-Kalibrierphase gespeichert werden.
  • Bei einer Ausführungsform ist die Gleichung T W O R L D L I N K T L I N K P A T T E R N = T W O R L D C A M E R A T C A M E R A P A T T E R N
    Figure DE102020105655A1_0114
    für die unbekannten Matrizen T W O R L D C A M E R A  und  T L I N K P A T T E R N
    Figure DE102020105655A1_0115
    nicht linear und nicht konvex. Die nicht konvexe Form kann eine Effektivität des Iterierens durch unterschiedliche Schätzungen für einen Wert der Matrizen begrenzen, da die Iteration zu einer Lösung führen kann, die anstatt global optimal nur lokal optimal ist. Eine Implementierung der Hand-Auge-Kalibrierphase kann daher eine Neuformulierung der vorstehenden Gleichung in eine konvexe Form einbeziehen. Bei einer Ausführungsform kann die Neuformulierung ein Umschreiben der vorstehenden Gleichung als ein Kronecker-Produkt von vektorisierten Matrizen einbeziehen.
  • Die vorstehende Gleichung kann insbesondere umgeschrieben werden zu: [ R W O R L D L I N K t W O R L D L I N K 0 1 ] [ R L I N K P A T T E R N t L I N K P A T T E R N 0 1 ] = [ R W O R L D C A M E R A t W O R L D C A M E R A 0 1 ] [ R C A M E R A P A T T E R N t C A M E R A P A T T E R N 0 1 ]
    Figure DE102020105655A1_0116
  • Diese Gleichung kann wiederum als zwei Gleichungen umgeschrieben werden: R A R X R Z R B = 0
    Figure DE102020105655A1_0117
    R Z t B R A t X + t Z = t A
    Figure DE102020105655A1_0118
  • In den vorstehenden Gleichungen wird die Nomenklatur für die verschiedenen Drehmatrizen und den Translationsvektor wie folgt geschrieben: R A = R W O R L D L I N K , R x = R L I N K P A T T E R N , R Z = R W O R L D C A M E R A , R B = R C A M E R A P A T T E R N
    Figure DE102020105655A1_0119
    t A = t W O R L D L I N K , t x = t L I N K P A T T E R N , t Z = t W O R L D C A M E R A , t B = t C A M E R A P A T T E R N
    Figure DE102020105655A1_0120
  • Die vorstehenden Gleichungen können als die folgende Gleichung unter Verwendung vektorisierter Versionen der vorstehenden Matrizen und Kronecker-Produkte umgeschrieben werden: [ R A I 3 R B T I 3 0 0 0 I 3 R B T t B T R A I 3 ] [ v e c ( R x ) v e c ( R Z T ) t X t Z ] = [ 0 t A ]
    Figure DE102020105655A1_0121
  • Bei dem vorstehenden Beispiel ist I3 eine 3x3-Einheitsmatrix. Die vorstehende Gleichung ist in linear und konvex, was das Auflösen für die Optimalwerte Rx, tx, Rz,tz, d. h. R L I N K P A T T E R N , t L I N K P A T T E R N , R W O R L D C A M E R A , t W O R L D C A M E R A
    Figure DE102020105655A1_0122
    erleichtern kann. In den vorstehenden Gleichungen können insbesondere die Ausdrücke [ R A I 3 R B T I 3 0 0 0 I 3 R B T t B T R A I 3 ]  und  [ 0 t A ]
    Figure DE102020105655A1_0123
    bekannt sein, da sie Komponenten umfassen, die zu T W O R L D L I N K  und  T C A M E R A P A T T E R N
    Figure DE102020105655A1_0124
    gehören. Die vorstehenden Gleichungen können daher [ v e c ( R X ) v e c ( R Z T ) t X t z ]
    Figure DE102020105655A1_0125
    lösen, was ein unbekannter Begriff ist. Wie vorstehend angegeben, kann die lineare und konvexe Art der Gleichung es einfacher machen, diesen unbekannten Ausdruck zu lösen, wobei eine Lösung des unbekannten Ausdrucks verwendet werden kann, um Rx, tx, Rz, tz zu rekonstruieren, die Komponenten von T W O R L D L I N K
    Figure DE102020105655A1_0126
    und T C A M E R A P A T T E R N
    Figure DE102020105655A1_0127
    sind.
  • Bei einer Ausführungsform kann die Lösung der vorstehenden Gleichung zu Rx und Rz führen, die nicht perfekte Drehmatrizen sind, da sie jeweils Spaltenvektoren umfassen können, die nicht zueinander orthogonal sind. Bei dieser Ausführungsform kann die Steuerschaltung 111 von Rx eine Matrix R X
    Figure DE102020105655A1_0128
    ableiten, die Spaltenvektoren aufweist, die zueinander orthogonal sind. Ähnlich kann die Steuerschaltung 111 von Rz eine Drehmatrix R Z
    Figure DE102020105655A1_0129
    ableiten, die Spaltenvektoren aufweist, die zueinander orthogonal sind. Bei einer Ausführungsform kann die Steuerschaltung 111 diese Operation basierend auf dem Lösen eines Orthogonal-Prokrustes-Problems ausführen, was das Finden der nahesten orthogonalen Matrix R X
    Figure DE102020105655A1_0130
    zu einer nicht orthogonalen Matrix Rx (in Form einer Frobenius-Norm) und das Finden der nahesten orthogonalen Matrix R Z
    Figure DE102020105655A1_0131
    zu einer nicht orthogonalen Matrix Rz einbezieht. In einigen Fällen kann dies über eine Singulärwertzerlegung erfolgen, die das Finden der Matrizen CX und DX einbeziehen kann, sodass C X D X T
    Figure DE102020105655A1_0132
    gleich RX ist, und das Finden der Matrizen CZ und DZ, sodass C Z D Z T
    Figure DE102020105655A1_0133
    gleich RZ ist, wobei Σ eine Diagonalmatrix ist. Bei dieser Ausführungsform kann R X
    Figure DE102020105655A1_0134
    als C X D X T
    Figure DE102020105655A1_0135
    und R Z
    Figure DE102020105655A1_0136
    als C Z D Z T
    Figure DE102020105655A1_0137
    bestimmt werden.
  • Bei einer Ausführungsform kann die Steuerschaltung 111 die orthogonalen Matrizen R X *
    Figure DE102020105655A1_0138
    und R Z
    Figure DE102020105655A1_0139
    verwenden, um die Translationsvektoren tX und tZ weiter zu aktualisieren. Die aktualisierten Translationsvektoren können als t X
    Figure DE102020105655A1_0140
    und t Z
    Figure DE102020105655A1_0141
    bezeichnet werden. Bei einigen Implementierungen kann die Aktualisierung unter Verwendung der vorstehenden Gleichung RZtB - RAtX + tZ = tA erfolgen, die aber R Z
    Figure DE102020105655A1_0142
    für RZ, t X
    Figure DE102020105655A1_0143
    für tX und t Z
    Figure DE102020105655A1_0144
    für tZ substituiert. Die resultierende Gleichung kann als R Z t B R A t X + t Z = t A
    Figure DE102020105655A1_0145
    ausgedrückt werden, die als [ R A I 3 ] [ t X t Z ] = t A R Z t B
    Figure DE102020105655A1_0146
    umgeschrieben werden kann. Die vorstehende Gleichung kann für t X
    Figure DE102020105655A1_0147
    und t Z
    Figure DE102020105655A1_0148
    gelöst werden. Die resultierenden Drehmatrizen und Translationsvektoren können eine Abschätzung von T L I N K P A T T E R N  und  T W O R L D C A M E R A
    Figure DE102020105655A1_0149
    bilden, die ausgedrückt werden kann als: T L I N K P A T T E R N = T X = [ R X t X 0 1 ]
    Figure DE102020105655A1_0150
    T W O R L D C A M E R A = T Z = [ R Z t Z 0 1 ]
    Figure DE102020105655A1_0151
  • Bei einer Ausführungsform kann die Hand-Auge-Kalibrierphase die Verwendung der vorstehenden Parameter, um ein simuliertes Kalibrierbild zu bestimmen, das ein simuliertes Bild eines Kalibriermusters ist, und das Einstellen von Werten der vorstehenden Parameter einbeziehen, um eine Differenz zwischen der simulierten Kalibrierung und einem tatsächlichen Kalibrierbild zu minimieren, das ein tatsächliches Bild des Kalibriermusters ist. Die Steuerschaltung 111 kann insbesondere basierend auf der Abschätzung der vierten Transformationsfunktion ( z . B . T L I N K P A T T E R N ) ,
    Figure DE102020105655A1_0152
    auf der Abschätzung der dritten Transformationsfunktion ( z . B . T W O R L D L I N K ) ,
    Figure DE102020105655A1_0153
    auf der Abschätzung der zweiten Transformationsfunktion ( z . B . T W O R L D L I N K ) ,
    Figure DE102020105655A1_0154
    und basierend auf (direkt oder indirekt) der zweiten Abschätzung des ersten intrinsischen Kameraparameters (z. B. Projektionsmatrix K) ein simuliertes Kalibrierbild des Kalibriermusters bestimmen. Das simulierte Kalibrierbild kann durch z. B. Pixelkoordinaten [ u ˜ s i m v ˜ s i m ] T ,
    Figure DE102020105655A1_0155
    von wo Musterelemente im simulierten Kalibrierbild erscheinen, dargestellt werden. Die Pixelkoordinaten können simulierte Koordinaten sein, wobei eine simulierte Koordinate für ein Musterelement eine vorhergesagte Koordinate sein kann, die vorhersagt, wo das Musterelement in einem Kalibrierbild erscheinen wird, das auf entsprechenden Abschätzungen der vorstehenden Transformationsfunktionen basiert. Die simulierten Pixelkoordinaten können zum Beispiel berechnet werden basierend auf der Beziehung: [ X Y Z 1 ] C a m e r a = T C A M E R A P A T T E R N [ X ' Y ' Z ' 1 ] P a t t e r n = ( T W O R L D C A M E R A ) 1 T W O R L D L I N K T L I N K P A T T E R N [ X ' Y ' Z ' 1 ] P a t t e r n
    Figure DE102020105655A1_0156
    [ u ˜ s i m v ˜ s i m 1 ] = K [ X / Z Y / Z 1 ] C A M E R A
    Figure DE102020105655A1_0157
  • Bei einer Ausführungsform muss das simulierte Kalibrierbild einen Linsenverzerrungseffekt nicht berücksichtigen. Bei einer weiteren Ausführungsform berücksichtigt das simulierte Kalibrierbild einen Linsenverzerrungseffekt, wie beispielsweise durch Anwenden der Verzerrungsfunktion auf X/Z und Y/Z.
  • Bei einer Ausführungsform kann das simulierte Kalibrierbild mit einer modifizierten Version des durch die Kamera erfassten tatsächlichen Kalibrierbildes verglichen werden. Die modifizierte Version kann gegenüber der durch die Linse der Kamera bewirkten Verzerrung kompensieren. Das tatsächliche Kalibrierbild kann insbesondere durch die Pixelkoordinaten [u, v]T der Musterelemente dargestellt werden und eine Linsenverzerrung aufweisen. Die modifizierte Version des Kalibrierbilds kann durch die Pixelkoordinaten [ũ ṽ]T der Musterelemente dargestellt werden und kann einen Linsenverzerrungseffekt kompensieren. Wie vorstehend angegeben, kann die modifizierte Version des Kalibrierbildes bestimmt werden basierend auf der Beziehung: [ X ^ Y ^ 1 ] = K 1 [ u v 1 ]
    Figure DE102020105655A1_0158
    X ˜ = d x 1 ( X ^ , Y ^ )
    Figure DE102020105655A1_0159
    Y ˜ = d y 1 ( X ^ , Y ^ )
    Figure DE102020105655A1_0160
    [ u ˜ v ˜ 1 ] = K [ X ˜ Y ˜ 1 ]
    Figure DE102020105655A1_0161
  • Bei einer Ausführungsform kann die Steuerschaltung 111 eine Differenz zwischen simulierten Pixelkoordinaten von Musterelementen in dem simulierten Kalibrierbild und Pixelkoordinaten von entsprechenden Musterelementen in der modifizierten Version des durch die Kamera erfassten Kalibrierbilds (z. B. zwischen [ u ˜ s i m v ˜ s i m ] T
    Figure DE102020105655A1_0162
    und [ũ ṽ]T) bestimmen. Bei einer Ausführungsform kann die Differenz als ein Abstand ausgedrückt werden, der bestimmt wird als d i s t a n c e = ( u ˜ s i m u ˜ ) 2 + ( v ˜ s i m v ˜ ) 2
    Figure DE102020105655A1_0163
  • Bei einer Ausführungsform kann die Steuerschaltung 111 mindestens die Abschätzung der vierten Transformationsfunktion ( z .  B .   T W O R L D P A T T E R N )
    Figure DE102020105655A1_0164
    und die Abschätzung der zweiten Transformationsfunktion ( z .B T W O R L D C A M E R A )
    Figure DE102020105655A1_0165
    anpassen, um die Differenz zwischen dem simulierten Kalibrierbild und der modifizierten Version des Kalibrierbilds zu reduzieren. Die Steuerschaltung 111 kann zum Beispiel entsprechende Werte der Komponenten T L I N K P A T T E R N
    Figure DE102020105655A1_0166
    und T W O R L D C A M E R A
    Figure DE102020105655A1_0167
    anpassen, [ u ˜ s i m v ˜ s i m ] T
    Figure DE102020105655A1_0168
    basierend auf den angepassten Matrizen neu berechnen und den Abstand basierend auf dem neu berechneten [ u ˜ s i m v ˜ s i m ] T
    Figure DE102020105655A1_0169
    bestimmen. Die Steuerschaltung 111 kann die Anpassung auf eine Weise wiederholen, die den vorstehenden Abstand minimiert. Bei einer Ausführungsform kann die Steuerschaltung 111 die vorstehenden Matrizen anpassen, um einen Fehler in dem simulierten Kalibrierbild zu minimieren, wobei der Fehler eine Summe der entsprechenden Abstände zwischen (a) entsprechenden Pixelkoordinaten von allen Musterelementen in der modifizierten Version des Kalibrierbilds und (b) entsprechenden Pixeln der gleichen entsprechenden Musterelemente in dem simulierten Kalibrierbild sein kann. Bei einer Ausführungsform kann die Anpassung auf einem Optimierungsalgorithmus zum Lösen von uneingeschränkten nichtlinearen Optimierungsproblemen, wie beispielsweise dem Nelder-Mead-Algorithmus, dem Broyden-Fletcher-Goldfarb-Shanno- (BFGS) - Algorithmus und dem Gradientenabstiegsalgorithmus, basieren. Bei einer Ausführungsform kann die vorstehende Optimierung auch Anpassungen an entsprechende Werte von T C A M E R A P A T T E R N ,
    Figure DE102020105655A1_0170
    K und/oder einen oder mehrere Verzerrungsparameter einbeziehen. Bei einer Ausführungsform kann ein Resultat der Optimierung eine abschließende Abschätzung für die Hand-Auge-Kalibrierphase (z. B. eine abschließende Abschätzung von T L I N K P A T T E R N
    Figure DE102020105655A1_0171
    und/oder T W O R L D C A M E R A )
    Figure DE102020105655A1_0172
    sein.
  • Unter erneuter Bezugnahme auf 9B kann das Verfahren 900 einen Schritt 913 einbeziehen, der nach Schritt 911 ausgeführt wird. Bei Schritt 913 kann die Steuerschaltung 111 ein anschließendes Bild von der Kamera und, um eine Platzierung des Roboterarms durch Ausgeben an den Roboter zu steuern (z. B. über die Kommunikationsschnittstelle 113), einen anschließenden Bewegungsbefehl, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, empfangen. Das anschließende Bild kann zum Beispiel ein Bild eines Pakets auf einem Förderband oder eines anderen Objekts im Kamerasichtfeld sein. Die Kamera kann das anschließende Bild automatisch oder als Reaktion auf einen Kamerabefehl erfassen, der durch die Steuerschaltung 111 erzeugt und über die Kommunikationsschnittstelle zu der Kamera kommuniziert wird. Bei einer Ausführungsform kann die Steuerschaltung 111 den anschließenden Bewegungsbefehl basierend auf der Abschätzung der Transformationsfunktion ( z .B T W O R L D C A M E R A )
    Figure DE102020105655A1_0173
    erzeugen. Zum Beispiel kann T W O R L D C A M E R A
    Figure DE102020105655A1_0174
    verwendet werden, um eine Beziehung zwischen einem fotografierten Objekt (z. B. dem Paket) und einem Roboter, der mit dem Objekt interagieren wird, zu bestimmen basierend auf der Beziehung: T W O R L D O B J E C T = T W O R L D C A M E R A   T C A M E R A O B J E C T
    Figure DE102020105655A1_0175
  • Bei der vorstehenden Gleichung wird T W O R L D C A M E R A
    Figure DE102020105655A1_0176
    durch die Kamerakalibrierung bestimmt und T C A M E R A O B J E C T
    Figure DE102020105655A1_0177
    kann bei einigen Fällen von einem Maschinellen-Sehen-Algorithmus bestimmt werden. Da die hierin erörterte Kamerakalibrierung korrektere Kalibrierinformationen, wie beispielsweise eine korrektere Abschätzung von T W O R L D C A M E R A
    Figure DE102020105655A1_0178
    erzeugt, können die Kalibrierinformationen eine korrektere Abschätzung von T W O R L D O B J E C T
    Figure DE102020105655A1_0179
    ergeben, was ermöglichen kann, dass der Roboter auf eine Weise gesteuert wird, die eine robustere Interaktion mit dem Objekt bereitstellt.
  • 11A stellt ein weiteres Diagramm bereit, das eine Ausführungsform einer intrinsischen Kalibrierphase einer Kamerakalibrierung veranschaulicht. In einigen Fällen kann der Vorgang in 11A durch z. B. die Steuerschaltung 111 von 1A des Robotersteuersystems 110 von 1A ausgeführt werden. Bei einer Ausführungsform bezieht die intrinsische Kalibrierphase eine Stufe 0 ein, bei der mehrere Kalibrierbilder empfangen werden, wobei die Kalibrierbilder Bilder eines Kalibriermusters sind. Das Kalibriermuster kann an einem Roboterarm eines Roboters feststehend angebracht sein und kann Musterelemente aufweisen, die Musterpunkte sind. Jeder der Musterpunkte kann einen definierten Musterelementort aufweisen, der bei diesem Beispiel eine 3D-Musterkoordinate [ X ' Y ' Z ' ] P a t t e r n T
    Figure DE102020105655A1_0180
    sein kann. Für jedes Kalibrierbild der mehreren Kalibrierbilder kann jeder der Musterpunkte auch einen Bildmusterelementort aufweisen (der auch als ein erfasster Musterelementort bezeichnet wird), der bei diesem Beispiel eine 2D-Pixelkoordinate sein kann. Bei einer Ausführungsform bezieht die Stufe 0 der intrinsischen Kalibrierphase das Bestimmen der entsprechenden 3D-Musterkoordinaten der Musterpunkte in dem Musterkoordinatensystem und das Bestimmen der 2D-Pixelkoordinaten ein, an denen die Musterpunkte in den mehreren Kalibrierbildern erscheinen.
  • Bei einer Ausführungsform bezieht die Stufe 1 der intrinsischen Kalibrierphase das Eingeben der 3D-Musterkoordinaten und der 2D-Pixelkoordinaten der Musterpunkte in einen Algorithmus zum Abschätzen einer Projektionsmatrix K, einer Transformationsfunktion T C A M E R A P A T T E R N
    Figure DE102020105655A1_0181
    und entsprechender Werte für Verzerrungsparameter einer Verzerrungsfunktion ein. Stufe 1 kann zum Beispiel den Algorithmus von Zhang verwenden, um eine erste Abschätzung der Projektionsmatrix K zu erzeugen. Bei diesem Beispiel kann der Algorithmus von Zhang oder ein anderer Algorithmus auch eine Abschätzung von T C A M E R A P A T T E R N
    Figure DE102020105655A1_0182
    und die entsprechenden Werte der Verzerrungsparameter in der gleichen Stufe bestimmen, aber diese Abschätzungen können für die nächste Stufe verworfen oder anderweitig ignoriert werden. Bei einer Ausführungsform kann der Algorithmus von Zhang als eine optionale Eingabe einen oder mehrere vermutete Werte für einen oder mehrere entsprechende Verzerrungsparameter aufweisen. Bei dem Beispiel von 11A ist diese optionale Eingabe in Stufe 1 jedoch nicht verwendet.
  • Bei einer Ausführungsform bezieht die Stufe 2 der intrinsischen Kalibrierphase das Eingeben der ersten Abschätzung der Projektionsmatrix K in einen Linienbegradigungsalgorithmus ein, wobei der Linienbegradigungsalgorithmus eine erste Abschätzung eines Verzerrungsparameters oder einen ersten Satz von entsprechenden Abschätzungen eines Satzes von Verzerrungsparametern erzeugen kann. Bei einer Ausführungsform kann der Linienbegradigungsalgorithmus Operationen einbeziehen, die vorstehend in Bezug auf Schritt 907 des Verfahrens 900 und in Bezug auf die 10A und 10B erörtert sind.
  • Bei einer Ausführungsform bezieht die Stufe 3 der intrinsischen Kalibrierphase die Verwendung der ersten Abschätzung des Verzerrungsparameters (oder des ersten Satzes von entsprechenden Abschätzungen von mehreren Verzerrungsparametern) ein, um eine zweite Abschätzung der Projektionsmatrix K, eine zweite Abschätzung des Verzerrungsparameters (oder eines zweiten Satzes von entsprechenden Abschätzungen der mehreren Verzerrungsparameter) und eine Abschätzung von T C A M E R A P A T T E R N
    Figure DE102020105655A1_0183
    zu erzeugen. In einigen Fällen wird der Algorithmus von Zhang in Stufe 3 erneut verwendet. Diese Stufe kann jedoch die erste Abschätzung des Verzerrungsparameters (oder des ersten Satzes von entsprechenden Abschätzungen von mehreren Verzerrungsparametern) als die vorstehend beschriebene optionale Eingabe verwenden, wobei die optionale Eingabe eine Schätzung sein kann, die in einer korrekteren Ausgabe des Algorithmus von Zhang resultiert.
  • Bei einer Ausführungsform bezieht die Stufe 4 der intrinsischen Kalibrierphase das Bestimmen einer dritten Abschätzung der Projektionsmatrix und einer dritten Abschätzung des Verzerrungsparameters (oder eines dritten Satzes von entsprechenden Abschätzungen für die mehreren Verzerrungsparameter) ein. Wie in 11A dargestellt, kann die Stufe 4 mit einem Optimierer ausgeführt werden. Wie vorstehend beschrieben, kann die durch den Optimierer ausgeführte Optimierung das Bestimmen eines simulierten Kalibrierbilds eines Kalibriermusters basierend auf der Abschätzung von T C A M E R A P A T T E R N ,
    Figure DE102020105655A1_0184
    der zweiten Abschätzung von K und der zweiten Abschätzung des Verzerrungsparameters einbeziehen und das Anpassen der zweiten Abschätzung daran, um eine Differenz zwischen dem simulierten Kalibrierbild und einem tatsächlichen Kalibrierbild des Kalibriermusters zu minimieren.
  • Bei der vorstehenden Ausführungsform von 11A können die Abschätzung von T C A M E R A P A T T E R N
    Figure DE102020105655A1_0185
    und/oder der entsprechenden Werte der Verzerrungsparameter in der Stufe 1 für die nächsten Stufen verworfen oder anderweitig ignoriert werden. Bei einer weiteren Ausführungsform können eine oder mehrere der vorstehenden Abschätzungen für jede Stufe verwendet werden, die Stufe 1 folgt. Wie in 11B veranschaulicht, kann eine Abschätzung der Verzerrungsparameterwerte in der Stufe 1 zum Beispiel als eine anfängliche Schätzung der Verzerrungsparameterwerte in der Stufe 2 der intrinsischen Kalibrierphase verwendet werden. In 11B kann ferner eine Abschätzung von T C A M E R A P A T T E R N
    Figure DE102020105655A1_0186
    verwendet werden, um eine Hand-Auge-Kalibrierung in der Stufe 2 der Hand-Auge-Kalibrierphase von 12 auszuführen.
  • 12 stellt ein Diagramm bereit, das eine beispielhafte Ausführungsform einer Hand-Auge-Kalibrierphase der Kamerakalibrierung veranschaulicht, die auch durch das Robotersteuersystem 110 von 1A ausgeführt werden kann. In einigen Fällen wird die Hand-Auge-Kalibrierphase nach der intrinsischen Kalibrierphase von 11A ausgeführt. Bei einer Ausführungsform bezieht die Stufe 1 der Hand-Auge-Kalibrierphase das Bestimmen einer Abschätzung von T C A M E R A P A T T E R N
    Figure DE102020105655A1_0187
    und T W O R L D L I N K
    Figure DE102020105655A1_0188
    ein. In einigen Fällen basiert T W O R L D L I N K
    Figure DE102020105655A1_0189
    auf einer Motormessung, die z. B. Sensorwerte umfassen kann, die entsprechende Rotationsbeträge für mehrere Motoren eines Roboterarms des Roboters anzeigen. In einigen Fällen basiert T C A M E R A P A T T E R N
    Figure DE102020105655A1_0190
    auf einem Bildverarbeitungsalgorithmus und kann auf einer abschließenden Abschätzung der Projektionsmatrix K und einer abschließenden Abschätzung des Verzerrungsparameters (oder eines abschließenden Satzes von Abschätzungen der mehreren Verzerrungsparameter) basieren. Bei einem Beispiel kann T C A M E R A P A T T E R N
    Figure DE102020105655A1_0191
    von der Stufe 1 der intrinsischen Kalibrierphase von 11B stammen.
  • Bei einer Ausführungsform bezieht die Stufe 2 der Hand-Auge-Kalibrierphase das Bestimmen von T W O R L D C A M E R A
    Figure DE102020105655A1_0192
    und T L I N K P A T T E R N
    Figure DE102020105655A1_0193
    ein. Diese Bestimmung kann zum Beispiel das Lösen der Gleichung T W O R L D L I N K   T L I N K P A T T E R N = T W O R L D C A M E R A   T C A M E R A P A T T E R N
    Figure DE102020105655A1_0194
    umfassen.
  • Bei einer Ausführungsform bezieht die Stufe 3 der Hand-Auge-Kalibrierphase das Anpassen einer Abschätzung von T W O R L D C A M E R A
    Figure DE102020105655A1_0195
    und T L I N K P A T T E R N
    Figure DE102020105655A1_0196
    ein. Diese Anpassung kann durch einen Optimierer ausgeführt werden, der basierend auf dem Minimieren einer Differenz zwischen einem simulierten Kalibrierbild eines Kalibriermusters und einem tatsächlichen Kalibrierbild des Kalibriermusters eine Optimierung ausführen kann. Das simulierte Kalibrierbild kann wie vorstehend beschrieben auf ( T W O R L D C A M E R A ) 1 T W O R L D L I N K   T L I N K P A T T E R N   [ X ' Y ' Z ' ] P A T T E R N T
    Figure DE102020105655A1_0197
    basieren. Bei einer Ausführungsform kann die angepasste Abschätzung T W O R L D C A M E R A
    Figure DE102020105655A1_0198
    und T L I N K P A T T E R N
    Figure DE102020105655A1_0199
    eine abschließende Abschätzung der Hand-Auge-Kalibrierphase sein.
  • Kurzbeschreibung von verschiedenen Ausführungsformen
  • Die Ausführungsform A1 der vorliegenden Offenbarung betrifft ein Robotersteuersystem, das eine Kommunikationsschnittstelle und eine Steuerschaltung umfasst. Die Kommunikationsschnittstelle ist konfiguriert, mit einem Roboter und mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren, wobei der Roboter eine Basis und einen Roboterarm mit einem darauf angeordneten Kalibriermuster aufweist. Die Steuerschaltung ist konfiguriert, eine Kamerakalibrierung auszuführen, durch: a) Bestimmen aller Eckorte eines imaginären Würfels, der in das Kamerasichtfeld passt, b) Bestimmen mehrerer Orte, die an oder überall in dem imaginären Würfel verteilt sind, c) Steuern des Roboterarms durch Ausgeben von Bewegungsbefehlen an den Roboter über die Kommunikationsschnittstelle, um das Kalibriermuster zu den mehreren Orten zu bewegen, die an oder überall in dem imaginären Würfel verteilt sind, d) Empfangen mehrerer Kalibrierbilder von der Kamera über die Kommunikationsschnittstelle, wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und entsprechende Bilder des Kalibriermusters an den mehreren Orten sind, e) Bestimmen entsprechender Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern und f) Bestimmen, basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter: einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist. Die Steuerschaltung ist ferner konfiguriert, nachdem die Kamerakalibrierung ausgeführt ist, über die Kommunikationsschnittstelle ein anschließendes Bild von der Kamera zu empfangen und durch Ausgeben über die Kommunikationsschnittstelle an den Roboter eines anschließenden Bewegungsbefehls, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, eine Platzierung des Roboterarms zu steuern.
  • Die Ausführungsform A2 umfasst das Robotersteuersystem der Ausführungsform A1, wobei die mehreren Orte an oder überall in dem imaginären Würfel einheitlich verteilt sind.
  • Die Ausführungsform A3 umfasst das Robotersteuersystem der Ausführungsform A2, wobei die mehreren Orte wie gemessen entlang einer Kante des imaginären Würfels zwischen unmittelbar angrenzenden Orten der mehreren Orte einen einheitlichen Abstand aufweisen.
  • Die Ausführungsform A4 umfasst das Robotersteuersystem von irgendwelchen der Ausführungsformen A1 bis A3, wobei die Steuerschaltung konfiguriert ist, den Roboterarm so zu steuern, dass er als Reaktion auf eine Bestimmung, dass der Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann, das Kalibriermuster zu den mehreren Orten bewegt.
  • Die Ausführungsform A5 umfasst das Robotersteuersystem der Ausführungsform A4, wobei die Steuerschaltung konfiguriert ist, den Roboterarm so zu steuern, dass er das Kalibriermuster nur zu den mehreren Orten bewegt als Reaktion auf: (a) die Bestimmung, dass der Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann und (b) eine Bestimmung, dass der Roboterarm an jedem Eckort von allen Eckorten des imaginären Würfels das Kalibriermuster in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb eines definierten Winkelbereichs befindet.
  • Die Ausführungsform A6 umfasst das Robotersteuersystem der Ausführungsform A5, wobei der imaginäre Würfel ein zweiter durch die Steuerschaltung bestimmter imaginärer Würfel ist. Bei dieser Ausführungsform ist die Steuerschaltung ferner konfiguriert, einen ersten imaginären Würfel zu bestimmen, der in das Kamerasichtfeld passt. Die Steuerschaltung ist ferner konfiguriert, zu bestimmen, dass der Roboterarm das Kalibriermuster nicht zu einem oder mehreren Eckorten des ersten imaginären Würfels bewegen kann, oder dass der Roboterarm für einen oder mehrere Eckorte des ersten imaginären Würfels das Kalibriermuster nicht in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb des definierten Winkelbereichs befindet. Die Steuerschaltung ist konfiguriert, alle Eckorte des zweiten imaginären Würfels zu bestimmen als Reaktion auf mindestens eines von: (a) einer Bestimmung, dass der Roboterarm das Kalibriermuster nicht zu einem oder mehreren Eckorten des ersten imaginären Würfels bewegen kann oder (b) der Roboterarm für einen oder mehrere Eckorte des ersten imaginären Würfels das Kalibriermuster nicht in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb des definierten Winkelbereichs befindet.
  • Die Ausführungsform A7 umfasst das Robotersteuersystem der Ausführungsform A6, wobei der erste imaginäre Würfel ein maximal dimensionierter imaginärer Würfel ist, der in das Kamerasichtfeld passen kann, und wobei der zweite imaginäre Würfel kleiner ist als der erste imaginäre Würfel.
  • Die Ausführungsform A8 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen A1 bis A7, wobei die mehreren Orte genau n3 Orte umfassen, wobei n eine ganze Zahl gleich oder größer als 2 ist.
  • Die Ausführungsform A9 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen A1 bis A8, wobei die Steuerschaltung konfiguriert ist, den Roboterarm über die Bewegungsbefehle zu steuern, um das Kalibriermuster relativ zur Kamera in unterschiedliche entsprechende Winkel für die mehreren Orte zu neigen, die einheitlich an oder überall in dem imaginären Würfel verteilt sind, sodass die mehreren entsprechenden Kalibrierbilder das Kalibriermuster in unterschiedlichen entsprechenden Winkeln relativ zur Kamera erfassen.
  • Die Ausführungsform A10 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen A1 bis A9, wobei das Kalibriermuster mehrere Musterelemente umfasst, und wobei die Steuerschaltung konfiguriert ist, ein erstes Kalibrierbild von der Kamera zu empfangen, bevor die mehreren Kalibrierbilder empfangen werden, wobei das erste Kalibrierbild ein Bild des Kalibriermusters ist und durch die Kamera erfasst wird, bevor die mehreren entsprechenden Kalibrierbilder erfasst werden. Die Steuerschaltung ist ferner konfiguriert, ein Intensitätsniveau und ein Kontrastniveau von mindestens einem der Musterelemente in dem ersten Kalibrierbild zu bestimmen und entsprechende Werte eines Belichtungsparameters und einen Bildschärfeparameter der Kamera basierend auf mindestens einem von dem Intensitätsniveau und dem Kontrastniveau von mindestens einem der Musterelemente in dem ersten Kalibrierbild zu bestimmen. Die mehreren entsprechenden Kalibrierbilder werden durch die Kamera mit den entsprechenden Werten des Belichtungsparameters und des Bildschärfeparameters erfasst.
  • Die Ausführungsform A11 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen A4 bis A10, wobei die Steuerschaltung konfiguriert ist, durch Teilen des imaginären Würfels in mehrere sich nicht überlappende Regionen und durch Zuordnen eines entsprechenden Orts der mehreren Orte, sodass er sich in jeder Region der mehreren sich nicht überlappenden Regionen befindet, die mehreren Orte zu bestimmen.
  • Die Ausführungsform A12 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen A4 bis A11, wobei die Steuerschaltung konfiguriert ist, die mehreren Orte über eine Reihe von Iterationen zu bestimmen, wobei ein erster Ort der mehreren Orte als irgendein Ort innerhalb des imaginären Würfels bestimmt wird und während einer ersten Iteration der Reihe von Iterationen bestimmt wird, wobei der imaginäre Würfel eine erste Region bildet, die verwendet wird, um die erste Iteration auszuführen. Bei dieser Ausführungsform werden entsprechende Orte für die verbleibenden Iterationen bestimmt durch Ausführen des Folgenden für jede der verbleibenden Iterationen: (a) Teilen einer Region, die verwendet wird, um eine vorhergehende Iteration auszuführen, in eine erste halbe Region und eine zweite halbe Region, die sich nicht überlappen, wobei jede der ersten halben Region und der zweiten halben Region eine Region ist, die verwendet wird, um eine gegenwärtige Iteration auszuführen, (b) Bestimmen, welche der ersten halben Region und der zweiten halben Region einen vorherigen Ort enthält, wobei der vorherige Ort ein entsprechender Ort der mehreren Orte ist, die in der vorhergehenden Iteration bestimmt wurden, (c) und Bestimmen von jedem Ort innerhalb der anderen ersten halben Region und zweiten halben Region als ein gegenwärtiger Ort, wobei der gegenwärtige Ort ein Ort der mehreren Orte ist, die für die gegenwärtige Iteration bestimmt sind.
  • Die Ausführungsform A13 betrifft ein Verfahren zum Ausführen eines Robotersteuersystems. Bei dieser Ausführungsform umfasst das Verfahren a) Bestimmen, durch ein Robotersteuersystem, von auf ein Kamerasichtfeld hinweisenden Informationen, wobei das Robotersteuersystem eine Kommunikationsschnittstelle umfasst, die konfiguriert ist, mit einer Kamera und mit einem Roboter mit einer Basis, einem Roboterarm und einem auf dem Roboterarm angeordneten Kalibriermuster zu kommunizieren, wobei das Kamerasichtfeld ein Sichtfeld der Kamera ist; b) Bestimmen, durch das Robotersteuersystem, aller Eckorte eines imaginären Würfels, der in das Kamerasichtfeld passt; c) Bestimmen, durch das Robotersteuersystem, mehrerer Orte, die an oder überall in dem imaginären Würfel verteilt sind; d) Ausgeben, durch das Robotersteuersystem, von Bewegungsbefehlen an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die Bewegungsbefehle zu dem Roboter zu kommunizieren, um zu bewirken, dass der Roboterarm das Kalibriermuster zu den mehreren Orten bewegt, die an oder überall in dem imaginären Würfel verteilt sind; e) Empfangen, durch das Robotersteuersystem, mehrerer Kalibrierbilder von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die mehreren Kalibrierbilder von der Kamera zu empfangen, und wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und mehrere von entsprechenden Bildern des Kalibriermusters an den mehreren Orten sind; f) Bestimmen, durch das Robotersteuersystem, entsprechender Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern; g) Bestimmen, durch das Robotersteuersystem, basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter, einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist; h) Empfangen, durch das Robotersteuersystem, eines anschließenden Bilds von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, das anschließende Bild von der Kamera nach dem Bestimmen der entsprechenden Abschätzungen der intrinsischen Kameraparameter und der Abschätzung der Transformationsfunktion zu empfangen; i) Erzeugen, durch das Robotersteuersystem, eines anschließenden Bewegungsbefehls basierend auf dem anschließenden Bild und basierend auf der Abschätzung der Transformationsfunktion; und j) Ausgeben, durch das Robotersteuersystem, des anschließenden Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den anschließenden Bewegungsbefehl zu dem Roboter zu kommunizieren, um die Platzierung des Roboterarms zu steuern.
  • Die Ausführungsform A14 betrifft ein nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Befehlen, die bei Ausführung durch eine Steuerschaltung eines Robotersteuersystems bewirken, dass die Steuerschaltung eine Kamerakalibrierung ausführt durch: a) Bestimmen von auf ein Kamerasichtfeld hinweisenden Informationen, wobei das Robotersteuersystem eine Kommunikationsschnittstelle umfasst, die konfiguriert ist, mit einer Kamera und mit einem Roboter mit einer Basis, einem Roboterarm und einem auf dem Roboterarm angeordneten Kalibriermuster zu kommunizieren, wobei das Kamerasichtfeld ein Sichtfeld der Kamera ist, b) Bestimmen aller Eckorte eines imaginären Würfels, der in das Kamerasichtfeld passt, c) Bestimmen mehrerer Orte, die an oder überall in dem imaginären Würfel verteilt sind, d) Ausgeben von Bewegungsbefehlen an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die Bewegungsbefehle zu dem Roboter zu kommunizieren, um zu bewirken, dass der Roboterarm das Kalibriermuster zu den mehreren Orten bewegt, die an oder überall in dem imaginären Würfel verteilt sind, e) Empfangen mehrerer Kalibrierbilder von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die mehreren Kalibrierbilder von der Kamera zu empfangen, und wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und mehrere entsprechende Bilder des Kalibriermusters an den mehreren Orten sind, f) Bestimmen entsprechender Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern, g) Bestimmen, basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter, einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, und das Weltkoordinatensystem ein Koordinatensystem in Bezug auf einen Ort definiert, der relativ zu der Basis des Roboters stationär ist, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist. Die Befehle bewirken bei Ausführung durch die Steuerschaltung ferner, dass die Steuerschaltung ein anschließendes Bild von der Kommunikationsschnittstelle empfängt, wobei die Kommunikationsschnittstelle konfiguriert ist, das anschließende Bild von der Kamera nach dem Bestimmen der entsprechenden Abschätzungen der intrinsischen Kameraparameter und der Abschätzung der Transformationsfunktion zu empfangen. Die Steuerschaltung ist zudem konfiguriert, eine Platzierung des Roboterarms durch das Ausgeben eines anschließenden Bewegungsbefehls an den Roboter über die Kommunikationsschnittstelle, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, zu steuern.
  • Die Ausführungsform B1 betrifft ein Robotersteuersystem, das eine Kommunikationsschnittstelle und eine Steuerschaltung umfasst. Die Kommunikationsschnittstelle ist konfiguriert, zu kommunizieren mit: einem Roboter mit einer Basis und einem Roboterarm mit einem darauf angeordneten Kalibriermuster und einer Kamera mit einem Kamerasichtfeld. Das Kalibriermuster umfasst mehrere Musterelemente mit entsprechenden definierten Musterelementorten in einem Musterkoordinatensystem, wobei das Musterkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung des Kalibriermusters definiert ist. Die Steuerschaltung ist konfiguriert, eine Kamerakalibrierung auszuführen durch: a) Steuern des Roboterarms durch Ausgeben eines Bewegungsbefehls über die Kommunikationsschnittstelle an den Roboter, um das Kalibriermuster zu mindestens einem Ort innerhalb des Kamerasichtfelds zu bewegen, b) Empfangen eines Kalibrierbildes von der Kamera über die Kommunikationsschnittstelle, wobei das Kalibrierbild durch die Kamera erfasst wird und ein Bild des Kalibriermusters an dem mindestens einen Ort ist, c) Bestimmen mehrerer Bildmusterelementorte, die entsprechende Orte anzeigen, an denen die mehreren Musterelemente im Kalibrierbild erscheinen, d) Bestimmen einer ersten Abschätzung eines ersten intrinsischen Kameraparameters basierend auf den mehreren Bildmusterelementorten und basierend auf den definierten Musterelementorten, e) Bestimmen einer ersten Abschätzung eines zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des ersten intrinsischen Kameraparameters und basierend auf den mehreren Bildmusterelementorten, nachdem die erste Abschätzung des ersten intrinsischen Kameraparameters bestimmt wurde, f) Bestimmen einer zweiten Abschätzung des ersten intrinsischen Kameraparameters und einer zweiten Abschätzung des zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des zweiten intrinsischen Kameraparameters und basierend auf den mehreren Musterbildelementorten und den definierten Musterelementorten und g) Bestimmen, basierend auf der zweiten Abschätzung des ersten intrinsischen Kameraparameters und der zweiten Abschätzung des zweiten intrinsischen Kameraparameters, einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist. Die Steuerschaltung ist ferner konfiguriert, nachdem die Kamerakalibrierung ausgeführt ist, ein anschließendes Bild von der Kamera zu empfangen und eine Platzierung des Roboterarms durch Ausgeben eines anschließenden Bewegungsbefehls an den Roboter, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, zu steuern.
  • Die Ausführungsform B2 umfasst das Robotersteuersystem der Ausführungsform B1, wobei die Transformationsfunktion eine zweite Transformationsfunktion ist, und wobei die Steuerschaltung konfiguriert ist, die Kamerakalibrierung durch das weitere Bestimmen einer Abschätzung einer ersten Transformationsfunktion, die eine Beziehung zwischen dem Musterkoordinatensystem und dem Kamerakoordinatensystem beschreibt, basierend auf der zweiten Abschätzung des ersten intrinsischen Kameraparameters und der zweiten Abschätzung des zweiten intrinsischen Kameraparameters auszuführen, wobei die zweite Transformationsfunktion basierend auf der ersten Transformationsfunktion bestimmt wird.
  • Die Ausführungsform B3 umfasst das Robotersteuersystem der Ausführungsform B1 oder B2, wobei die Kamera eine Linse und einen Bildsensor umfasst, und wobei der erste intrinsische Kameraparameter eine Projektionsmatrix ist, die eine Bildprojektion auf den Bildsensor beschreibt, und wobei der zweite intrinsische Kameraparameter ein Verzerrungsparameter ist, der eine durch die Linse verursachte Verzerrung beschreibt.
  • Die Ausführungsform B4 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen B1 bis B3. Bei dieser Ausführungsform ist die Steuerschaltung konfiguriert, die erste Abschätzung des zweiten intrinsischen Kameraparameters zu bestimmen durch: (a) Bestimmen einer anfänglichen Abschätzung des zweiten intrinsischen Kameraparameters, (b) Erzeugen, basierend auf der anfänglichen Abschätzung des zweiten intrinsischen Kameraparameters, der ersten Abschätzung des ersten intrinsischen Kameraparameters und dem Kalibrierbild, einer modifizierten Version des Kalibrierbilds, das gegenüber der Verzerrung kompensiert, die durch die Linse bewirkt wird, (c) Bestimmen eines Krümmungsbetrags bei der modifizierten Version des Kalibrierbilds, (d) Anpassen der anfänglichen Abschätzung des zweiten intrinsischen Kameraparameters basierend auf dem Krümmungsbetrag bei der modifizierten Version des Kalibrierbilds, um eine angepasste Abschätzung des zweiten intrinsischen Kameraparameters zu erzeugen, die den Krümmungsbetrag reduziert, wobei die angepasste Abschätzung die erste Abschätzung des zweiten intrinsischen Kameraparameters ist.
  • Die Ausführungsform B5 umfasst das Robotersteuersystem der Ausführungsform B4, wobei die mehreren Musterelemente des Kalibriermusters mehrere Punkte sind, und wobei die Steuerschaltung konfiguriert ist, den Krümmungsbetrag zu bestimmen durch: Anpassen mehrerer gerader Linien durch die mehreren Punkte in der modifizierten Version des Kalibrierbilds und Bestimmen des Krümmungsbetrags basierend auf entsprechenden Abständen zwischen jeder geraden Linie der mehreren geraden Linien und entsprechender Punkte der mehreren Punkte, durch welche die gerade Linie angepasst wurde.
  • Die Ausführungsform B6 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen B2 bis B5. Bei dieser Ausführungsform ist die Steuerschaltung ferner konfiguriert, eine dritte Abschätzung des zweiten intrinsischen Kameraparameters und eine dritte Abschätzung des ersten intrinsischen Kameraparameters zu bestimmen durch: (a) Bestimmen eines simulierten Kalibrierbilds, das ein simuliertes Bild des Kalibriermusters ist, basierend auf der Abschätzung der ersten Transformationsfunktion, der zweiten Abschätzung des zweiten intrinsischen Kameraparameters und der zweiten Abschätzung des ersten intrinsischen Kameraparameters, (b) Bestimmen einer Differenz zwischen dem simulierten Kalibrierbild und dem durch die Kamera erfassten Kalibrierbild, (c) Anpassen der zweiten Abschätzung des zweiten intrinsischen Kameraparameters und der zweiten Abschätzung des ersten intrinsischen Kameraparameters basierend auf der Differenz, um eine angepasste Abschätzung des zweiten intrinsischen Kameraparameters und eine angepasste Abschätzung des ersten intrinsischen Kameraparameters zu erzeugen, welche die Differenz reduziert, wobei die angepasste Abschätzung des zweiten intrinsischen Kameraparameters die dritte Abschätzung davon ist und die angepasste Abschätzung des ersten intrinsischen Kameraparameters die dritte Abschätzung davon ist. Bei dieser Ausführungsform wird ferner die Abschätzung der ersten Transformationsfunktion basierend auf der dritten Abschätzung des zweiten intrinsischen Kameraparameters und der dritten Abschätzung des ersten intrinsischen Kameraparameters bestimmt.
  • Die Ausführungsform B7 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen B2 bis B6, wobei der Roboterarm ein Gelenk umfasst, an dem das Kalibriermuster angeordnet ist. Bei dieser Ausführungsform ist die Steuerschaltung konfiguriert, die Kamerakalibrierung weiter auszuführen durch: Bestimmen einer Abschätzung einer dritten Transformationsfunktion, die eine Beziehung zwischen dem Weltkoordinatensystem und einem Gelenkkoordinatensystem beschreibt, wobei das Gelenkkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort an dem Gelenk definiert ist, und Bestimmen einer Abschätzung einer vierten Transformationsfunktion, die eine Beziehung zwischen dem Musterkoordinatensystem und dem Gelenkkoordinatensystem beschreibt, wobei sowohl die Abschätzung der zweiten Transformationsfunktion als auch die Abschätzung der vierten Transformationsfunktion basierend auf der Abschätzung der ersten Transformationsfunktion und der Abschätzung der dritten Transformationsfunktion bestimmt wird.
  • Die Ausführungsform B8 umfasst das Robotersteuersystem der Ausführungsform B7, wobei die Steuerschaltung konfiguriert ist, die Kamerakalibrierung ferner auszuführen durch: a) Bestimmen eines simulierten Kalibrierbilds, das ein simuliertes Bild des Kalibriermusters ist, basierend auf der Abschätzung der vierten Transformationsfunktion, der Abschätzung der dritten Transformationsfunktion, der Abschätzung der zweiten Transformation und der zweiten Abschätzung des ersten intrinsischen Kameraparameters, b) Bestimmen, basierend auf der zweiten Abschätzung des zweiten intrinsischen Kameraparameters, einer modifizierten Version des durch die Kamera erfassten Kalibrierbilds, um die Verzerrung zu kompensieren, die durch die Linse der Kamera verursacht wird, c) Bestimmen einer Differenz zwischen dem simulierten Kalibrierbild und der modifizierten Version des Kalibrierbilds und d) Anpassen von mindestens der Abschätzung der vierten Transformationsfunktion und der Abschätzung der zweiten Transformationsfunktion, um die Differenz zwischen dem simulierten Kalibrierbild und der modifizierten Version des Kalibrierbilds zu reduzieren.
  • Die Ausführungsform B9 umfasst das Robotersteuersystem von irgendeiner der Ausführungsformen B1 bis B8, wobei die Kamera, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, eine erste Kamera ist und das Kamerakoordinatensystem ein erstes Kamerakoordinatensystem ist und die Kommunikationsschnittstelle konfiguriert ist, mit einer zweiten Kamera zu kommunizieren. Bei dieser Ausführungsform ist die Steuerschaltung konfiguriert, die Kamerakalibrierung durch weiteres Bestimmen einer Beziehung zwischen dem ersten Kamerakoordinatensystem und einem zweiten Kamerakoordinatensystem auszuführen, wobei das zweite Kamerakoordinatensystem in Bezug auf einen Ort und eine Ausrichtung der zweiten Kamera definiert ist.
  • Die Ausführungsform B10 betrifft ein Verfahren zum Ausführen einer Robotersteuerung, wobei das Verfahren umfasst: a) Erzeugen, durch ein Robotersteuersystem, eines Bewegungsbefehls zum Ausgeben an eine Kommunikationsschnittstelle des Robotersteuersystems, wobei die Kommunikationsschnittstelle konfiguriert ist, mit einem Roboter mit einer Basis und einem Roboterarm mit einem darauf angeordneten Kalibriermuster zu kommunizieren, und konfiguriert ist, mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren; b) Ausgeben, durch das Robotersteuersystem, des Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den Bewegungsbefehl zu dem Roboter zu kommunizieren, um zu bewirken, dass der Roboterarm das Kalibriermuster zu mindestens einem Ort in dem Kamerasichtfeld bewegt; c) Empfangen, durch das Robotersteuersystem, eines Kalibrierbilds von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, das Kalibrierbild von der Kamera zu empfangen, und das Kalibrierbild ein Bild des Kalibriermusters an dem mindestens einen Ort in dem Kamerasichtfeld ist, und wobei das Kalibriermuster mehrere Musterelemente mit entsprechenden definierten Musterelementorten in einem Musterkoordinatensystem umfasst, wobei das Musterkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung des Kalibriermusters definiert ist; d) Bestimmen, durch das Robotersteuersystem, mehrerer Bildmusterelementorte von dem Kalibrierbild, wobei die mehreren Bildmusterelementorte entsprechende Orte anzeigen, an denen die mehreren Musterelemente in dem Kalibrierbild erscheinen; e) Bestimmen, durch das Robotersteuersystem, einer ersten Abschätzung eines ersten intrinsischen Kameraparameters basierend auf den mehreren Bildmusterelementorten und basierend auf den definierten Musterelementorten; f) Bestimmen, durch das Robotersteuersystem, nachdem die erste Abschätzung des ersten intrinsischen Kameraparameters bestimmt wurde, einer ersten Abschätzung eines zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des ersten intrinsischen Kameraparameters und basierend auf den mehreren Bildmusterelementorten, g) Bestimmen, durch das Robotersteuersystem, einer zweiten Abschätzung des ersten intrinsischen Kameraparameters und einer zweiten Abschätzung des zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des zweiten intrinsischen Kameraparameters und basierend auf den mehreren Bildmusterelementorten und den definierten Musterelementorten; h) Bestimmen, durch das Robotersteuersystem, basierend auf der zweiten Abschätzung des ersten intrinsischen Kameraparameters und der zweiten Abschätzung des zweiten intrinsischen Kameraparameters, einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist; i) Empfangen, durch das Robotersteuersystem, eines anschließenden Bilds von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, das anschließende Bild von der Kamera zu empfangen, nachdem die Abschätzung der Transformationsfunktion bestimmt wurde; j) Erzeugen, durch das Robotersteuersystem, eines anschließenden Bewegungsbefehls basierend auf dem anschließenden Bild und basierend auf der Abschätzung der Transformationsfunktion; und k) Ausgeben, durch das Robotersteuersystem, des anschließenden Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den anschließenden Bewegungsbefehl an den Roboter auszugeben, um eine Platzierung des Roboterarms zu steuern.
  • Die Ausführungsform B11 betrifft ein nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Befehlen, die bei Ausführung durch eine Steuerschaltung eines Robotersteuersystems, bewirken, dass die Steuerschaltung eine Kamerakalibrierung ausführt, durch a) Erzeugen eines Bewegungsbefehls, zum Ausgeben an eine Kommunikationsschnittstelle des Robotersteuersystems, wobei die Kommunikationsschnittstelle konfiguriert ist, mit einem Roboter mit einer Basis und einem Roboterarm mit einem darauf angeordneten Kalibriermuster und mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren; b) Ausgeben des Bewegungsbefehles zu der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den Bewegungsbefehl zu dem Roboter zu kommunizieren, um zu bewirken, dass der Roboterarm das Kalibriermuster zu mindestens einem Ort in dem Kamerasichtfeld bewegt; c) Empfangen eines Kalibrierbilds von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, das Kalibrierbild von der Kamera zu empfangen, wobei das Kalibrierbild ein Bild des Kalibriermusters an dem mindestens einen Ort im Kamerasichtfeld ist, und wobei das Kalibriermuster mehrere Musterelemente mit entsprechenden definierten Musterelementorten in einem Musterkoordinatensystem umfasst, wobei das Musterkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung des Kalibriermusters definiert ist; d) Bestimmen mehrerer Bildmusterelementorte von dem Kalibrierbild, wobei die mehreren Bildmusterelementorte entsprechende Orte anzeigen, an denen die mehreren Musterelemente im Kalibrierbild erscheinen; e) Bestimmen einer ersten Abschätzung eines ersten intrinsischen Kameraparameters, der auf den mehreren Bildmusterelementorten und auf den definierten Musterelementorten basiert; f) Bestimmen, nachdem die erste Abschätzung des ersten intrinsischen Kameraparameters bestimmt wurde, einer ersten Abschätzung eines zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des ersten intrinsischen Kameraparameters und basierend auf den mehreren Bildmusterelementorten; g) Bestimmen einer zweiten Abschätzung des ersten intrinsischen Kameraparameters und einer zweiten Abschätzung des zweiten intrinsischen Kameraparameters basierend auf der ersten Abschätzung des zweiten intrinsischen Kameraparameters und basierend auf den mehreren Bildmusterelementorten und den definierten Musterelementorten; h) Bestimmen, basierend auf der zweiten Abschätzung des ersten intrinsischen Kameraparameters und der zweiten Abschätzung des zweiten intrinsischen Kameraparameters einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist. Die Befehle veranlassen bei Ausführung durch die Steuerschaltung ferner, dass die Steuerschaltung ein anschließendes Bild von der Kommunikationsschnittstelle empfängt, wobei die Kommunikationsschnittstelle konfiguriert ist, das anschließende Bild von der Kamera zu empfangen, nachdem die Kamerakalibrierung ausgeführt ist, und eine Platzierung des Roboterarms durch Ausgeben eines anschließenden Bewegungsbefehls, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, an den Roboter über die Kommunikationsschnittstelle steuert.
  • 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. Somit sollten die Breite und der Umfang der vorliegenden Erfindung durch keinerlei der vorstehend beschriebenen 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 beschriebenen Ausführungsform und von jeder hierin angeführten Referenz in Kombination mit den Merkmalen jeder anderen Ausführungsform verwendet werden kann. Alle hierin beschriebenen Patente und Veröffentlichungen werden hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • „A Flexible New Technique for Camera Calibration,‟ Technical Report MSR-TR-98-71, von Zhengyou Zhang [0081]

Claims (20)

  1. Robotersteuersystem, umfassend: eine Kommunikationsschnittstelle, die konfiguriert ist, mit einem Roboter und mit einer Kamera mit einem Kamerasichtfeld zu kommunizieren, wobei der Roboter eine Basis und einen Roboterarm mit einem darauf angeordneten Kalibriermuster aufweist; und eine Steuerschaltung, die konfiguriert ist, eine Kamerakalibrierung auszuführen durch: Bestimmen aller Eckorte eines imaginären Würfels, der in das Kamerasichtfeld passt, Bestimmen mehrerer Orte, die an oder überall in dem imaginären Würfel verteilt sind, Steuern des Roboterarms, um das Kalibriermuster zu den mehreren Orten zu bewegen, die an oder überall in dem imaginären Würfel verteilt sind, durch Ausgeben von Bewegungsbefehlen an den Roboter über die Kommunikationsschnittstelle, Empfangen mehrerer Kalibrierbilder von der Kamera über die Kommunikationsschnittstelle, wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und entsprechende Bilder des Kalibriermusters an den mehreren Orten sind, Bestimmen entsprechender Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern und Bestimmen basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter: einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, und das Weltkoordinatensystems ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist, wobei die Steuerschaltung ferner konfiguriert ist, nachdem die Kamerakalibrierung ausgeführt ist, über die Kommunikationsschnittstelle ein anschließendes Bild von der Kamera zu empfangen und durch Ausgeben, über die Kommunikationsschnittstelle an den Roboter, eines anschließenden Bewegungsbefehls, der auf dem anschließenden Bild und auf der Abschätzung der Transformationsfunktion basiert, eine Platzierung des Roboterarms zu steuern.
  2. Robotersteuersystem nach Anspruch 1, wobei die mehreren Orte einheitlich an oder überall in dem imaginären Würfel verteilt sind.
  3. Robotersteuersystem nach Anspruch 2, wobei die mehreren Orte wie gemessen entlang einer Kante des imaginären Würfels zwischen unmittelbar angrenzenden Orten der mehreren Orte einen einheitlichen Abstand aufweisen.
  4. Robotersteuersystem nach Anspruch 1, wobei die Steuerschaltung konfiguriert ist, den Roboterarm so zu steuern, dass er als Reaktion auf eine Bestimmung, dass der Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann, das Kalibriermuster zu den mehreren Orten bewegt.
  5. Robotersteuersystem nach Anspruch 4, wobei die Steuerschaltung konfiguriert ist, den Roboterarm so zu steuern, dass er das Kalibriermuster nur als Reaktion auf: (a) die Bestimmung, dass der Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann und (b) eine Bestimmung, dass der Roboterarm an jedem Eckort von allen Eckorten des imaginären Würfels das Kalibriermuster in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb eines definierten Winkelbereichs befindet, zu den mehreren Orten bewegt.
  6. Robotersteuersystem nach Anspruch 5, wobei der imaginäre Würfel ein zweiter imaginärer Würfel ist, der durch die Steuerschaltung bestimmt ist, und wobei die Steuerschaltung ferner konfiguriert ist zum Bestimmen eines ersten imaginären Würfels, der in das Kamerasichtfeld passt, Bestimmen, dass der Roboterarm das Kalibriermuster nicht zu einem oder mehreren Eckorten des ersten imaginären Würfels bewegen kann, oder dass der Roboterarm für einen oder mehrere Eckorte des ersten imaginären Würfels das Kalibriermuster nicht in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb des definierten Winkelbereichs befindet, wobei die Steuerschaltung konfiguriert ist, als Reaktion auf mindestens eines von: (a) einer Bestimmung, dass der Roboterarm das Kalibriermuster nicht zu einem oder mehreren Eckorten des ersten imaginären Würfels bewegen kann oder (b) der Roboterarm für einen oder mehrere Eckorte des ersten imaginären Würfels das Kalibriermuster nicht in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb des definierten Winkelbereichs befindet, alle Eckorte des zweiten imaginären Würfels zu bestimmen.
  7. Robotersteuersystem nach Anspruch 6, wobei der erste imaginäre Würfel ein maximal dimensionierter imaginärer Würfel ist, der in das Kamerasichtfeld passen kann, und wobei der zweite imaginäre Würfel kleiner ist als der erste imaginäre Würfel.
  8. Robotersteuersystem nach Anspruch 1, wobei die mehreren Orte genau n3 Orte umfassen, wobei n eine ganze Zahl gleich oder größer als 2 ist.
  9. Robotersteuersystem nach Anspruch 1, wobei die Steuerschaltung konfiguriert ist, den Roboterarm über die Bewegungsbefehle so zu steuern, dass er das Kalibriermuster relativ zur Kamera in unterschiedliche entsprechende Winkel für die mehreren Orte neigt, die einheitlich an oder überall in dem imaginären Würfel verteilt sind, sodass die mehreren entsprechenden Kalibrierbilder das Kalibriermuster in unterschiedlichen entsprechenden Winkeln relativ zur Kamera erfassen.
  10. Robotersteuersystem nach Anspruch 1, wobei das Kalibriermuster mehrere Musterelemente umfasst, und wobei die Steuerschaltung konfiguriert ist, ein erstes Kalibrierbild von der Kamera zu empfangen, bevor die mehreren Kalibrierbilder empfangen werden, wobei das erste Kalibrierbild ein Bild des Kalibriermusters ist und durch die Kamera erfasst wird, bevor die mehreren entsprechenden Kalibrierbilder erfasst werden, ein Intensitätsniveau und ein Kontrastniveau von mindestens einem der Musterelemente in dem ersten Kalibrierbild zu bestimmen und entsprechende Werte eines Belichtungsparameters und eines Bildschärfeparameters der Kamera basierend auf mindestens einem von dem Intensitätsniveau und dem Kontrastniveau von mindestens einem der Musterelemente in dem ersten Kalibrierbild zu bestimmen, wobei die mehreren entsprechenden Kalibrierbilder mit den entsprechenden Werten des Belichtungsparameters und des Bildschärfeparameters durch die Kamera erfasst werden.
  11. Robotersteuersystem nach Anspruch 1, wobei die Steuerschaltung konfiguriert ist, die mehreren Orte durch Teilen des imaginären Würfels in mehrere nicht überlappende Regionen und durch Zuordnen eines entsprechenden Orts der mehreren Orte, sodass er sich in jeder Region der mehreren nicht überlappenden Regionen befindet, zu bestimmen.
  12. Robotersteuersystem nach Anspruch 1, wobei die Steuerschaltung konfiguriert ist, die mehreren Orte über eine Reihe von Iterationen zu bestimmen, wobei ein erster Ort der mehreren Orte als irgendein Ort innerhalb des imaginären Würfels bestimmt wird und während einer ersten Iteration der Reihe von Iterationen bestimmt wird, wobei der imaginäre Würfel eine erste Region bildet, die verwendet wird, um die erste Iteration auszuführen, und wobei entsprechende Orte für die verbleibenden Iterationen durch Ausführen des Folgenden für jede der verbleibenden Iterationen bestimmt werden: (a) Teilen einer Region, die verwendet wird, um eine vorhergehende Iteration auszuführen, in eine erste halbe Region und eine zweite halbe Region, die sich nicht überlappen, wobei jede der ersten halben Region und der zweiten halben Region eine Region ist, die verwendet wird, eine gegenwärtige Iteration auszuführen, (b) Bestimmen, welche der ersten halben Region und der zweiten halben Region einen vorherigen Ort enthält, wobei der vorherige Ort ein entsprechender Ort der mehreren Orte ist, die in der vorhergehenden Iteration bestimmt wurden, (c) und Bestimmen von jedem Ort innerhalb der anderen ersten halben Region und zweiten halben Region als ein gegenwärtiger Ort, wobei der gegenwärtige Ort ein Ort der mehreren Orte ist, die für die gegenwärtige Iteration bestimmt sind.
  13. Verfahren zum Ausführen eines Robotersteuersystems, wobei das Verfahren umfasst: Bestimmen von Informationen durch ein Robotersteuersystem, die ein Kamerasichtfeld angeben, wobei das Robotersteuersystem eine Kommunikationsschnittstelle umfasst, die konfiguriert ist, mit einer Kamera und mit einem Roboter mit einer Basis, einem Roboterarm und einem auf dem Roboterarm angeordneten Kalibriermuster zu kommunizieren, wobei das Kamerasichtfeld ein Sichtfeld der Kamera ist, Bestimmen, durch das Robotersteuersystem, aller Eckorte eines imaginären Würfels, der in das Kamerasichtfeld passt; Bestimmen, durch das Robotersteuersystem, mehrerer Orte, die an oder überall in dem imaginären Würfel verteilt sind; Ausgeben, durch das Robotersteuersystem, von Bewegungsbefehlen an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die Bewegungsbefehle zum Roboter zu kommunizieren, um den Roboterarm zu veranlassen, das Kalibriermuster zu den mehreren Orten zu bewegen, die an oder überall in dem imaginären Würfel verteilt sind; Empfangen, durch das Robotersteuersystem, mehrerer Kalibrierbilder von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die mehreren Kalibrierbilder von der Kamera zu empfangen, und wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und mehrere entsprechende Bilder der Kalibriermuster an den mehreren Orten sind; Bestimmen, durch das Robotersteuersystem, entsprechender Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern; Bestimmen, durch das Robotersteuersystem, basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter, einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist; Empfangen, durch das Robotersteuersystem, eines anschließenden Bildes von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, nach dem Bestimmen der entsprechenden Abschätzungen der intrinsischen Kameraparameter und der Abschätzung der Transformationsfunktion das anschließende Bild von der Kamera zu empfangen; Erzeugen, durch das Robotersteuersystem, eines anschließenden Bewegungsbefehls basierend auf dem anschließenden Bild und basierend auf der Abschätzung der Transformationsfunktion; und Ausgeben, durch das Robotersteuersystem, des anschließenden Bewegungsbefehls an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, den anschließenden Bewegungsbefehl zu dem Roboter zu kommunizieren, um die Platzierung des Roboterarms zu steuern.
  14. Verfahren nach Anspruch 13, wobei die mehreren Orte an oder überall in dem imaginären Würfel einheitlich verteilt sind.
  15. Verfahren nach Anspruch 14, wobei die mehreren Orte genau n3 Orte umfassen, wobei n eine ganze Zahl gleich oder größer als 2 ist.
  16. Nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Befehlen, die bei Ausführung durch eine Steuerschaltung eines Robotersteuersystems die Steuerschaltung veranlassen, eine Kamerakalibrierung auszuführen durch: Bestimmen von Informationen, die ein Kamerasichtfeld angeben, wobei das Robotersteuersystem eine Kommunikationsschnittstelle umfasst, die konfiguriert ist, mit einer Kamera und mit einem Roboter mit einer Basis, einem Roboterarm und einem auf dem Roboterarm angeordneten Kalibriermuster zu kommunizieren, wobei das Kamerasichtfeld ein Sichtfeld der Kamera ist, Bestimmen aller Eckorte eines imaginären Würfels, der in das Kamerasichtfeld passt, Bestimmen mehrerer Orte, die an oder überall in dem imaginären Würfel verteilt sind, Ausgeben von Bewegungsbefehlen an die Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die Bewegungsbefehle zum Roboter zu kommunizieren, um den Roboterarm zu veranlassen, das Kalibriermuster zu den mehreren Orten zu bewegen, die an oder überall in dem imaginären Würfel verteilt sind, Empfangen von mehreren Kalibrierbildern von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, die mehreren Kalibrierbilder von der Kamera zu empfangen, und wobei die mehreren Kalibrierbilder durch die Kamera erfasst werden und mehrere entsprechende Bilder der Kalibriermuster an den mehreren Orten sind, Bestimmen entsprechender Abschätzungen von intrinsischen Kameraparametern basierend auf den mehreren Kalibrierbildern, Bestimmen, basierend auf den entsprechenden Abschätzungen der intrinsischen Kameraparameter, einer Abschätzung einer Transformationsfunktion, die eine Beziehung zwischen einem Kamerakoordinatensystem und einem Weltkoordinatensystem beschreibt, wobei das Kamerakoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort und eine Ausrichtung der Kamera definiert ist, mit der zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist, und das Weltkoordinatensystem ein Koordinatensystem ist, das in Bezug auf einen Ort definiert ist, der relativ zu der Basis des Roboters stationär ist, mit dem zu kommunizieren die Kommunikationsschnittstelle konfiguriert ist; Empfangen eines anschließenden Bildes von der Kommunikationsschnittstelle, wobei die Kommunikationsschnittstelle konfiguriert ist, nach dem Bestimmen der entsprechenden Abschätzungen der intrinsischen Kameraparameter und der Abschätzung der Transformationsfunktion das anschließende Bild von der Kamera zu empfangen; und Steuern einer Platzierung des Roboterarms durch Ausgeben, an den Roboter über die Kommunikationsschnittstelle, eines anschließenden Bewegungsbefehls, der auf dem anschließenden Bild und der Abschätzung der Transformationsfunktion basiert.
  17. Nicht flüchtiges computerlesbares Medium nach Anspruch 16, wobei die Befehle bei Ausführung durch die Steuerschaltung ferner die Steuerschaltung veranlassen, zu bestimmen, ob der Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann, wobei die Bewegungsbefehle zum Bewegen des Kalibriermusters zu den mehreren Orten als Reaktion auf eine Bestimmung ausgegeben werden, dass der Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann.
  18. Nicht flüchtiges computerlesbares Medium nach Anspruch 17, wobei die Befehle bei Ausführung durch die Steuerschaltung ferner die Steuerschaltung veranlassen, zu bestimmen, ob der Roboterarm an jedem Eckort von allen Eckorten des imaginären Würfels das Kalibriermuster in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb eines definierten Winkelbereichs befindet, wobei die Bewegungsbefehle zum Bewegen des Kalibriermusters zu den mehreren Orten als Reaktion ausgegeben werden auf: (a) die Bestimmung, dass der Roboterarm das Kalibriermuster zu allen Eckorten des imaginären Würfels bewegen kann, und (b) eine Bestimmung, dass der Roboterarm an jedem Eckort von allen Eckorten des imaginären Würfels das Kalibriermuster in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb eines definierten Winkelbereichs befindet.
  19. Nicht flüchtiges computerlesbares Medium nach Anspruch 18, wobei der imaginäre Würfel ein zweiter imaginärer Würfel ist, der durch die Steuerschaltung bestimmt wird, und wobei die Befehle bei Ausführung durch die Steuerschaltung die Steuerschaltung ferner veranlassen zum Bestimmen eines ersten imaginären Würfels, der in das Kamerasichtfeld passt, Bestimmen, dass der Roboterarm das Kalibriermuster nicht zu einem oder mehreren Eckorten des ersten imaginären Würfels bewegen kann, oder dass der Roboterarm für einen oder mehrere Eckorte des ersten imaginären Würfels das Kalibriermuster nicht in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb des definierten Winkelbereichs befindet, wobei das Bestimmen aller Eckorte des zweiten imaginären Würfels nur als Reaktion auf mindestens eines erfolgt von: (a) einer Bestimmung, dass der Roboterarm das Kalibriermuster nicht zu einem oder mehreren Eckorten des ersten imaginären Würfels bewegen kann oder (b) der Roboterarm für einen oder mehrere Eckorte des ersten imaginären Würfels das Kalibriermuster nicht in einen Winkel neigen kann, der sich relativ zur Kamera innerhalb des definierten Winkelbereichs befindet.
  20. Nicht flüchtiges computerlesbares Medium nach Anspruch 19, wobei der erste imaginäre Würfel ein maximal dimensionierter imaginärer Würfel ist, der in das Kamerasichtfeld passen kann, und wobei der zweite imaginäre Würfel kleiner ist als der erste imaginäre Würfel.
DE102020105655.9A 2019-03-07 2020-03-03 Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung zur Robotersteuerung Active DE102020105655B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/295,940 US10369698B1 (en) 2019-03-07 2019-03-07 Method and system for performing automatic camera calibration for robot control
US16/295,940 2019-03-07

Publications (2)

Publication Number Publication Date
DE102020105655A1 true DE102020105655A1 (de) 2020-09-10
DE102020105655B4 DE102020105655B4 (de) 2021-04-22

Family

ID=67477579

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020105655.9A Active DE102020105655B4 (de) 2019-03-07 2020-03-03 Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung zur Robotersteuerung

Country Status (5)

Country Link
US (5) US10369698B1 (de)
JP (3) JP6675722B1 (de)
CN (3) CN115070755A (de)
DE (1) DE102020105655B4 (de)
WO (1) WO2020180342A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116038701A (zh) * 2022-12-30 2023-05-02 北京中科原动力科技有限公司 一种四轴机械臂的手眼标定方法及装置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6795471B2 (ja) * 2017-08-25 2020-12-02 ファナック株式会社 ロボットシステム
DE102018205399B4 (de) * 2018-04-10 2021-03-18 Continental Automotive Gmbh Korrekturverfahren und Vorrichtung zur Korrektur von Bilddaten
US10369698B1 (en) * 2019-03-07 2019-08-06 Mujin, Inc. Method and system for performing automatic camera calibration for robot control
CN111890371B (zh) * 2019-03-29 2021-05-04 牧今科技 验证和更新机器人控制用校准信息的方法和控制系统
US10399227B1 (en) 2019-03-29 2019-09-03 Mujin, Inc. Method and control system for verifying and updating camera calibration for robot control
US10906184B2 (en) * 2019-03-29 2021-02-02 Mujin, Inc. Method and control system for verifying and updating camera calibration for robot control
CN112677146A (zh) 2019-10-18 2021-04-20 牧今科技 验证和更新机器人控制用校准信息的方法和控制系统
US10565737B1 (en) 2019-07-09 2020-02-18 Mujin, Inc. Method and system for performing automatic camera calibration for a scanning system
WO2021012122A1 (zh) * 2019-07-19 2021-01-28 西门子(中国)有限公司 机器人手眼标定方法、装置、计算设备、介质以及产品
CN110517208B (zh) * 2019-08-19 2023-06-16 广东弓叶科技有限公司 坐标系关联方法及系统
US10614340B1 (en) 2019-09-23 2020-04-07 Mujin, Inc. Method and computing system for object identification
CN111191083B (zh) * 2019-09-23 2021-01-01 牧今科技 用于对象标识的方法和计算系统
US11370121B2 (en) * 2019-10-29 2022-06-28 Mujin, Inc. Method and system for determining poses for camera calibration
CN110640745B (zh) * 2019-11-01 2021-06-22 苏州大学 基于视觉的机器人自动标定方法、设备和存储介质
CN110834333B (zh) * 2019-11-14 2021-11-02 中科新松有限公司 一种机器人手眼标定方法及存储介质
CN110930460B (zh) * 2019-11-15 2024-02-23 五邑大学 面向结构光3d视觉系统的全自动标定方法及装置
EP3834997A1 (de) * 2019-12-11 2021-06-16 Carl Zeiss Industrielle Messtechnik GmbH Verfahren und vorrichtung zur kalibrierung einer maschinensichtvorrichtung zur positionsbestimmung
CN111055289B (zh) * 2020-01-21 2021-09-28 达闼科技(北京)有限公司 机器人的手眼标定方法、装置、机器人及存储介质
CN115552476A (zh) 2020-02-06 2022-12-30 伯克希尔格雷营业股份有限公司 用于利用可编程运动装置的铰接臂上的位置未知的基准物的照相机校准的系统和方法
US11006039B1 (en) 2020-02-13 2021-05-11 Mujin, Inc. Method and system for determining occlusion within a camera field of view
CN111582196B (zh) * 2020-02-13 2021-05-04 牧今科技 用于确定相机视场内的遮挡的方法和系统
US11130237B1 (en) 2020-03-05 2021-09-28 Mujin, Inc. Method and computing system for performing container detection and object detection
CN111515950B (zh) * 2020-04-28 2022-04-08 腾讯科技(深圳)有限公司 机器人坐标系变换关系确定方法、装置、设备和存储介质
DE102020206593A1 (de) * 2020-05-27 2021-12-02 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zur Kalibrierung mindestens eines Sensors
US20210390671A1 (en) * 2020-06-16 2021-12-16 Samsung Electronics Co., Ltd. Image processing system for performing image quality tuning and method of performing image quality tuning
KR20210155695A (ko) 2020-06-16 2021-12-23 삼성전자주식회사 화질 튜닝을 수행하는 이미지 처리 시스템 및 화질 튜닝 방법
EP3968283A1 (de) * 2020-09-14 2022-03-16 Eppendorf AG Verfahren zum kalibrieren einer optischen aufzeichnungsvorrichtung
JP7468288B2 (ja) 2020-10-16 2024-04-16 オムロン株式会社 キャリブレーション装置およびキャリブレーションの自動設定方法
US11911915B2 (en) * 2021-06-09 2024-02-27 Intrinsic Innovation Llc Determining robotic calibration processes
US11941840B2 (en) 2021-09-21 2024-03-26 The Boeing Company Method and apparatus for hand-off and tracking for pose estimation of a fiducial marker
US20230086050A1 (en) * 2021-09-21 2023-03-23 The Boeing Company Method and apparatus for modeling dynamic intrinsic parameters of a camera
CN114378825B (zh) * 2022-01-21 2023-05-12 四川长虹智能制造技术有限公司 一种多相机视觉定位方法、系统及电子设备
US20230278221A1 (en) * 2022-02-15 2023-09-07 Symbotic Canada, Ulc Apparatus and method for automatic pallet builder calibration
TWI793044B (zh) * 2022-07-07 2023-02-11 和碩聯合科技股份有限公司 機器手臂的手眼校正方法和手眼校正裝置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2690603B2 (ja) * 1990-05-30 1997-12-10 ファナック株式会社 視覚センサのキャリブレーション方法
DE10159574B9 (de) * 2001-10-15 2009-04-30 Tropf, Hermann, Dr.-Ing. Vorrichtung und Verfahren zur Korrektur der Bewegung von Greif- und Bearbeitungswerkzeugen
JP4021413B2 (ja) 2004-01-16 2007-12-12 ファナック株式会社 計測装置
JP4250620B2 (ja) * 2005-07-29 2009-04-08 キヤノン株式会社 情報処理方法および装置
JP4267005B2 (ja) * 2006-07-03 2009-05-27 ファナック株式会社 計測装置及びキャリブレーション方法
EP2075096A1 (de) * 2007-12-27 2009-07-01 Leica Geosystems AG Verfahren und System zum hochpräzisen Positionieren mindestens eines Objekts in eine Endlage im Raum
JP5365218B2 (ja) * 2009-01-28 2013-12-11 富士電機株式会社 ロボットビジョンシステムおよび自動キャリブレーション方法
US9393694B2 (en) * 2010-05-14 2016-07-19 Cognex Corporation System and method for robust calibration between a machine vision system and a robot
CN103503025B (zh) 2011-02-25 2016-09-07 弗劳恩霍夫应用研究促进协会 基于对对象的模型进行变换来确定模型参数
GB201107385D0 (en) * 2011-05-04 2011-06-15 Materialise Nv Medical imaging calibration device
US20140100694A1 (en) 2012-10-05 2014-04-10 Beckman Coulter, Inc. System and method for camera-based auto-alignment
EP2981397B1 (de) * 2013-04-05 2017-06-14 ABB Schweiz AG Robotersystem und verfahren zur kalibrierung
JP6468741B2 (ja) * 2013-07-22 2019-02-13 キヤノン株式会社 ロボットシステム及びロボットシステムの校正方法
JP6163942B2 (ja) * 2013-07-29 2017-07-19 富士通株式会社 情報処理装置、制御方法、及びプログラム
JP2015174191A (ja) * 2014-03-17 2015-10-05 株式会社安川電機 ロボットシステム、ロボットシステムのキャリブレーション方法およびロボットシステムの位置補正方法
JP6429473B2 (ja) * 2014-03-20 2018-11-28 キヤノン株式会社 ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体
US9211643B1 (en) * 2014-06-25 2015-12-15 Microsoft Technology Licensing, Llc Automatic in-situ registration and calibration of robotic arm/sensor/workspace system
JP6565175B2 (ja) * 2014-11-21 2019-08-28 セイコーエプソン株式会社 ロボットおよびロボットシステム
JP6486679B2 (ja) * 2014-12-25 2019-03-20 株式会社キーエンス 画像処理装置、画像処理システム、画像処理方法及びコンピュータプログラム
WO2017139330A1 (en) 2016-02-08 2017-08-17 Berkshire Grey Inc. Systems and methods for providing processing of a variety of objects employing motion planning
JP2017147585A (ja) * 2016-02-17 2017-08-24 セイコーエプソン株式会社 データ転送システム、データ転送装置、受信装置、及びデータ転送方法
PT3513382T (pt) * 2016-09-14 2020-11-20 Fraunhofer Ges Forschung Deteção de padrão
US10076842B2 (en) * 2016-09-28 2018-09-18 Cognex Corporation Simultaneous kinematic and hand-eye calibration
CN108214486A (zh) * 2016-12-22 2018-06-29 精工爱普生株式会社 控制装置、机器人及机器人系统
KR102576842B1 (ko) * 2017-01-04 2023-09-12 삼성전자주식회사 핸드-아이 캘리브레이션을 수행하는 로봇 및 전자 장치
JP6396516B2 (ja) * 2017-01-12 2018-09-26 ファナック株式会社 視覚センサのキャリブレーション装置、方法及びプログラム
JP7003463B2 (ja) * 2017-07-11 2022-01-20 セイコーエプソン株式会社 ロボットの制御装置、ロボットシステム、並びに、カメラの校正方法
CN108447095A (zh) * 2018-01-31 2018-08-24 潍坊歌尔电子有限公司 一种鱼眼相机标定方法和装置
CN108717715B (zh) * 2018-06-11 2022-05-31 华南理工大学 一种用于弧焊机器人的线结构光视觉系统自动标定方法
US10369698B1 (en) * 2019-03-07 2019-08-06 Mujin, Inc. Method and system for performing automatic camera calibration for robot control

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116038701A (zh) * 2022-12-30 2023-05-02 北京中科原动力科技有限公司 一种四轴机械臂的手眼标定方法及装置
CN116038701B (zh) * 2022-12-30 2023-12-05 北京中科原动力科技有限公司 一种四轴机械臂的手眼标定方法及装置

Also Published As

Publication number Publication date
CN111015665A (zh) 2020-04-17
US10369698B1 (en) 2019-08-06
JP7414222B2 (ja) 2024-01-16
CN111015665B (zh) 2020-12-04
DE102020105655B4 (de) 2021-04-22
CN115070755A (zh) 2022-09-20
CN110103219A (zh) 2019-08-09
CN110103219B (zh) 2022-06-14
US10636172B1 (en) 2020-04-28
WO2020180342A1 (en) 2020-09-10
JP6688523B1 (ja) 2020-04-28
US20220172399A1 (en) 2022-06-02
JP6675722B1 (ja) 2020-04-01
JP2020142367A (ja) 2020-09-10
US10373336B1 (en) 2019-08-06
US10628966B1 (en) 2020-04-21
JP2020142361A (ja) 2020-09-10
JP2020144829A (ja) 2020-09-10

Similar Documents

Publication Publication Date Title
DE102020105655B4 (de) Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung zur Robotersteuerung
DE102020106973B4 (de) Verfahren und Steuerungssystem zum Verifizieren und Aktualisieren einer Kamerakalibrierung zur Robotersteuerung
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE102015002760B4 (de) Robotersimulationssystem, das den Prozess des Entnehmens von Werkstücken simuliert
DE102015015194A1 (de) Bildverarbeitungsvorrichtung und -verfahren und Programm
DE602004008131T2 (de) Automatisches Arbeitsgerät und automatisches Arbeitskontrollprogramm
DE102016103799B4 (de) Bildverarbeitungssystem zum Trainieren eines Montagesystems durch virtuelle Montage von Objekten
DE102018009815B4 (de) Bildgebungsvorrichtung umfassend einen Sichtsensor zum Erfassen des Bildes eines Werkstücks
DE102018129143B4 (de) Variabler messobjektabhängiger Kameraaufbau und Kalibrierung davon
DE102014113433B4 (de) Vorrichtung und Verfahren zur dreidimensionalen Abbildung eines Objekts
DE102015101710A1 (de) Verfahren zum Kalibrieren eines beweglichen Greiforgans unter Verwendung einer entfernten Digitalkamera
DE102015102740A1 (de) Vorrichtung und Verfahren zur Anordnung von Gegenständen mittels eines Roboters und Gegenstand-Transportsystem
DE102013001603B4 (de) Bildverarbeitungsvorrichtung mit einer Funktion zum automatischen Einstellen des Suchfensters
DE102006055758A1 (de) Verfahren zur Kalibrierung von Kameras und Projektoren
DE102020131267A1 (de) Kalibrieren von kameras und berechnen von punktprojektionen unter verwendung eines eine axiale blickpunktverschiebung aufweisenden nicht zentralen kameramodells
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
DE102015016530A1 (de) Roboter-Identifizierungssystem
DE102021107333A1 (de) 3d-stellungsabschätzung mit einer 2d-kamera
DE102020119453A1 (de) Verfahren und Steuersystem zum Verifizieren und Aktualisieren von Kalibrierinformationen zur Robotersteuerung
DE102021201369A1 (de) Verfahren und System zur Bestimmung einer Okklusion bzw. Verdeckung innerhalb eines Kamerasichtfelds
EP4094897B1 (de) Hand-auge-kalibrierung von kamerageführten apparaturen
DE102020106968A1 (de) Verfahren und system zum bestimmen von posen für eine kamerakalibrierung
DE102021107479A1 (de) Erfassung einer dreidimensionalen pose durch mehrere 2d-kameras
EP1098268A2 (de) Verfahren zur dreidimensionalen optischen Vermessung von Objektoberflächen
DE102021102493A1 (de) Verfahren und System zum Durchführen einer automatischen Kamerakalibrierung

Legal Events

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