DE102022102562A1 - Effektives berechnungsverfahren des mindestabstands zu dynamischen objekten - Google Patents

Effektives berechnungsverfahren des mindestabstands zu dynamischen objekten Download PDF

Info

Publication number
DE102022102562A1
DE102022102562A1 DE102022102562.4A DE102022102562A DE102022102562A1 DE 102022102562 A1 DE102022102562 A1 DE 102022102562A1 DE 102022102562 A DE102022102562 A DE 102022102562A DE 102022102562 A1 DE102022102562 A1 DE 102022102562A1
Authority
DE
Germany
Prior art keywords
robot
image
distance
camera
pixel
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.)
Pending
Application number
DE102022102562.4A
Other languages
English (en)
Inventor
Chiara TALIGNANI LANDI
Hsien-Chung Lin
Tetsuaki Kato
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.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Publication of DE102022102562A1 publication Critical patent/DE102022102562A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • 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/90Determination of colour characteristics
    • 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/39091Avoid collision with moving obstacles
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40202Human robot coexistence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction
    • 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/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)
  • Manipulator (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Verfahren und System zur Berechnung eines Mindestabstands von einem Roboter zu dynamischen Objekten im Arbeitsraum eines Roboters. Das Verfahren verwendet Bilder von einer oder mehreren dreidimensionalen Kameras, wobei in jedem Bild Kanten von Objekten detektiert werden und der Roboter und der Hintergrund von dem sich ergebenden Bild subtrahiert werden, sodass nur Bildpunkte von Objektkanten übrig bleiben. Anschließend werden Tiefenwerte auf die Bildpunkte der Objektkanten eingeblendet und Abstandsberechnungen nur zwischen den Kantenbildpunkten und Sollpunkten an den Roboterarmen durchgeführt. Es können zwei oder mehrere Kameras verwendet werden, um eine Verdeckung von Objekten aufzulösen, wobei der Mindestabstand jeder Kamera unabhängig berechnet wird, und das Maximum der Mindestabstände der Kameras als das tatsächliche Ergebnis verwendet wird. Der Einsatz mehrerer Kameras erhöht die Rechenbelastung nicht wesentlich und erfordert eine Kalibrierung der Kameras in Beziehung zueinander.

Description

  • HINTERGRUND
  • Gebiet
  • Die vorliegende Offenlegung betrifft das Gebiet der Objekterkennung für die Bewegungssteuerung von Industrierobotern und insbesondere ein Verfahren zur Berechnung eines Mindestabstands zwischen einem Roboter und dynamischen Objekten, die im Arbeitsraum des Roboters vorhanden sind, unter Verwendung von Bildern von einer oder mehreren dreidimensionalen Kameras, wobei in jedem Bild Kanten von Objekten detektiert werden, und der Roboter und der Hintergrund von dem sich ergebenden Bild subtrahiert werden, Tiefenwerte auf die übrigen Bildpunkte (Pixel) der Objektkanten eingeblendet und Abstandsberechnungen nur zwischen den Bildpunkten der Objektkanten und Sollpunkten an den Roboterarmen durchgeführt werden.
  • Erörterung des Standes der Technik
  • Der Einsatz von Industrierobotern zur Durchführung eines breiten Bereichs von Herstellungs-, Montage- und Materialbewegungsabläufen ist wohlbekannt. In vielen Arbeitsumgebungen des Roboters sind Hindernisse vorhanden und können sich im Weg der Roboterbewegung befinden. Die Hindernisse können ständige Strukturen wie Maschinen und Vorrichtungen sein, die vom Roboter aufgrund ihrer statischen Beschaffenheit leicht umgangen werden können. Die Hindernisse können auch dynamische Objekte sein, die sich zufällig in oder durch den Arbeitsraum des Roboters bewegen. Dynamische Objekte müssen in Echtzeitberechnungen durch die Robotersteuereinheit berücksichtigt werden, wobei der Roboter um die Objekte herum manövrieren muss, während ein Arbeitsgang durchgeführt wird. Kollisionen zwischen dem Roboter und einem beliebigen Hindernis müssen unbedingt vermieden werden.
  • Verfahren zur Erkennung dynamischer Objekte auf der Basis von Kamerabildern im Stand der Technik sind dem Fachmann bekannt - jedoch leiden diese bekannten Verfahren an erheblichen Beschränkungen. Ein bekanntes Verfahren verwendet mehrere Tiefensensoren, um Punktwolken zu erzeugen, die Außenflächen beliebiger Objekte im Arbeitsraum des Roboters definieren, und berechnet bei jedem Zeitschritt der Roboterbewegung einen Mindestabstand zwischen den Punkten in den Punktwolken und den Roboterarmen. Jedoch sind diese Berechnungen wegen der Anzahl der Punkte in der Punktwolke rechnerisch äußerst intensiv und langsam.
  • Wegen des charakteristischen Nachteils des auf Punktwolken basierenden Abstandsverfahrens für Objekte sind andere Verfahren entwickelt worden. Bekannt ist ein Tiefenraumansatz mit Einzelkamera, bei dem aus einem Tiefenbild Abstände zwischen Hindernispunkten und Sollpunkten des Roboters berechnet werden. Bei Hindernissen, die sich näher an der Kamera als am Roboter befinden, ist die Tiefenausdehnung des Hindernisses jedoch nicht bekannt, und der verdeckte Raum hinter dem Hindernis gilt als belegt. Dies kann dazu führen, dass der Mindestabstand grundlegend unterschätzt wird und unnötig große Abweichungen der Roboterarme um einen Objektraum herum, der nicht einmal belegt ist, verursacht werden.
  • Um die Einschränkungen des Tiefenraumansatzes mit Einzelkamera zu überwinden, wurde eine Multisensortechnik entwickelt, die das Problem der Verdeckung lösen soll. Bei diesem Verfahren wird ein Primärsensor verwendet, um ein räumliches Tiefenraster zu erstellen, und andere Sensoren werden verwendet, um verdeckte Zellen hinter einem Hindernis im Tiefenraster zu überprüfen. Obwohl dieses Verfahren weniger rechenintensiv ist als der Punktwolkenansatz, kann es immer noch eine lange Rechenzeit für große Roboter mit vielen Sollpunkten und großen Arbeitsräumen mit vielen Zellen im Tiefenraster erfordern. Darüber hinaus ist dieses Verfahren fehleranfällig in der Auslegung des dreidimensionalen Tiefenrasters und erfordert eine präzise Kalibrierung der Kameras/Sensoren relativ zueinander, um diese Fehler zu minimieren.
  • Angesichts der oben beschriebenen Umstände besteht Bedarf an einem verbesserten Verfahren zur Berechnung eines Mindestabstands zwischen einem Roboter und dynamischen Objekten im Roboterarbeitsraum.
  • ZUSAMMENFASSUNG
  • Gemäß der technischen Lehre der vorliegenden Offenlegung werden ein Verfahren und ein System zur Berechnung eines Mindestabstands von einem Roboter zu dynamischen Objekten im Arbeitsraum eines Roboters beschrieben und dargestellt. Das Verfahren verwendet Bilder von einer oder mehreren dreidimensionalen Kameras, bei denen in jedem Bild Kanten von Objekten detektiert werden und der Roboter und der Hintergrund von dem resultierenden Bild subtrahiert werden, sodass nur Bildpunkte der Objektkanten übrigbleiben. Dann werden Tiefenwerte auf die Bildpunkte der Objektkanten eingeblendet und Abstandsberechnungen nur zwischen den Bildpunkten der Objektkanten und Sollpunkten an den Roboterarmen durchgeführt. Zwei oder mehrere Kameras können genutzt werden, um eine Verdeckung von Objekten aufzulösen, wobei der Mindestabstand jeder Kamera unabhängig berechnet wird, und das Maximum der Mindestabstände der Kameras als tatsächliches Ergebnis verwendet wird. Der Einsatz mehrerer Kameras erhöht die Rechenbelastung nicht wesentlich und erfordert eine Kalibrierung der Kameras in Beziehung zueinander.
  • Zusätzliche Merkmale der gegenwärtig offengelegten Vorrichtungen und Verfahren werden aus der folgenden Beschreibung und den angefügten Ansprüchen in Verbindung mit den begleitenden Zeichnungen ersichtlich.
  • Figurenliste
    • 1 ist eine Darstellung eines Menschen, der einen Arbeitsraum eines Industrieroboters einnimmt, und veranschaulicht eine Berechnung des Mindestabstands, die durchgeführt werden muss, um eine Kollisionsvermeidung zwischen Roboter und Objekt zu gewährleisten.
    • 2 ist eine Darstellung einer Tiefenraumtechnik mit Einzelkamera zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Objekt, wie es auf dem Fachgebiet bekannt ist;
    • 3 ist eine Darstellung einer Tiefenraumtechnik mit mehreren Sensoren zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Objekt, wie es auf dem Fachgebiet bekannt ist;
    • 4A bis 4D sind Darstellungen einer Abfolge von Bildern, die ihren Höhepunkt in einer Erkennung von Hinderniskanten mit Tiefeninformationen finden, die zur Berechnung eines Mindestabstands zwischen einem Roboter und dem Hindernis nach einer Ausführungsform der vorliegenden Offenlegung verwendet werden;
    • 5 ist ein Ablaufdiagramm, das ein Verfahren und einen Datenfluss zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Hindernis gemäß einer Ausführungsform der vorliegenden Offenlegung darstellt;
    • 6 ist eine Ansicht von oben eines Mehrkamerasystems zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Hindernis, wobei jede Kamera unabhängig das Berechnungsverfahren von 5 gemäß einer Ausführungsform der vorliegenden Offenlegung anwendet;
    • 7 ist ein Ablaufdiagramm, das ein Verfahren zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Hindernis unter Einsatz des Mehrkamerasystems von 6 nach einer Ausführungsform der vorliegenden Offenlegung darstellt;
    • 8A und 8B sind Darstellungen einer Szene, die gleichzeitig von zwei Kameras mit unterschiedlichen Standpunkten aufgenommen wurden und zeigen, wie das System und das Verfahren von 6 und 7 angewendet werden, um einen Mindestabstand zwischen Roboter und Hindernis zu bestimmen, der eng mit tatsächlichen Messungen korreliert, gemäß einer Ausführungsform der vorliegenden Offenlegung; und
    • 9A bis 9C sind Darstellungen dreier verschiedener Hindernisszenarien und der daraus resultierenden Berechnungen des Mindestabstands für jedes Szenario unter Verwendung eines Drei-Kamera-Systems nach einer Ausführungsform der vorliegenden Offenlegung.
  • AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Die folgende Erörterung der Ausführungsformen der auf das Berechnen eines Mindestabstands zu dynamischen Objekten im Arbeitsraum eines Roboters gerichteten Offenlegung ist lediglich beispielhafter Natur und soll in keiner Weise die offengelegten Vorrichtungen und Techniken oder ihre Anwendungen oder Einsätze beschränken.
  • Es ist bekannt, Industrieroboter für eine Vielzahl von Herstellungs-, Montage- und Materialbewegungsabläufen einzusetzen. In vielen Arbeitsumgebungen des Roboters sind Hindernisse vorhanden und können sich manchmal im Weg der Roboterbewegung befinden. Das heißt, ohne vorbeugende Bewegungsplanung kann ein bestimmter Teil des Roboters mit einem bestimmten Teil eines Hindernisses kollidieren oder sich in dessen Nähe befinden, wenn sich der Roboter von seiner aktuellen Position zu einer Zielposition bewegt. Die Hindernisse können feste Strukturen wie Maschinen, Vorrichtungen und Tische sein, oder die Hindernisse können dynamische (sich bewegende) Objekte wie Menschen, Gabelstapler und andere Maschinen sein. Im Stand der Technik wurden Verfahren entwickelt, um Roboterbewegungen so zu berechnen, dass das Werkzeug einem Weg in die Zielposition folgt, während eine Kollision des Roboters mit einem beliebigen Hindernis vermieden wird. Im Fall von dynamischen Objekten war es jedoch schon immer eine Herausforderung, den Standort des Objekts zu bestimmen und einen Mindestabstand vom Objekt zum Roboter in Echtzeit zu berechnen, der für die Bewegungsplanung mit Kollisionsvermeidung notwendig ist.
  • Ein Verfahren zur Berechnung von Abständen zwischen Roboter und Objekt umfasst das Definieren von Sollpunkten auf dem Roboter, das Berechnen der dreidimensionalen (3D) Koordinaten der Sollpunkte basierend auf einer Roboterpose bei jedem Zeitschritt und das Berechnen der Abstände von Hindernispunkten zu den Sollpunkten des Roboters. Das Hindernis kann durch Punktwolken aus Sensordaten oder durch andere Techniken definiert werden, die weiter unten erörtert werden.
  • 1 ist die Darstellung eines den Arbeitsraum eines Industrieroboters einnehmenden Menschen, die als Beispiel der Berechnung des Mindestabstands dient, die durchgeführt werden muss, um Kollisionsvermeidung zwischen Roboter und Objekt zu gewährleisten. In 1 arbeitet ein Roboter 100 in einem Arbeitsraum. Eine Vielzahl von Sollpunkten (102-106, usw.) ist an dem Roboter 100 definiert. Die Sollpunkte 102-106 können an Schlüsselpunkten des Roboterskeletts (wie Gelenkmittelpunkte und Punkte entlang der Mittellinien des Arms) definiert sein, oder sie können an Außenflächen der tatsächlichen Armformen definiert sein. Ein Mensch 130 nimmt einen Teil des Arbeitsraums ein, in welchem der Roboter 100 arbeitet. Der Mensch 130 stellt ein dynamisches Objekt dar, das sich in den Arbeitsraum hinein, um diesen herum und heraus bewegen kann. Die Bestimmung des Mindestabstands zwischen dem Roboter 100 und dem Menschen 130 bei jedem Zeitschritt ist unerlässlich für die Planung eines kollisionsfreien Roboterweges.
  • Eine Methode zur Bestimmung des Mindestabstands von Roboter und Hindernis besteht darin, mehrere Sensoren um den Arbeitsraum herum zu anzuordnen und eine Punktwolke zu erstellen, die das Hindernis aus den Sensordaten definiert. Anschließend werden dreidimensionale Abstände von den Punkten in der Punktwolke zu Robotersollpunkten berechnet. Einige dieser Abstände sind in 1 durch mit 110 angegebenen Linien gezeigt, aus denen dann ein Mindestabstand ermittelt wird. Die Punktwolkenmethode kann genaue Ergebnisse des Mindestabstands von Roboter und Hindernis liefern. Weil die Hindernispunktwolke jedoch in der Regel viele tausende dreidimensionale Punkte enthält und jeder Punkt in der Punktwolke gegen jeden Robotersollpunkt überprüft werden muss, sind die Berechnungen des Mindestabstands der Punktwolke sehr rechenintensiv. Aus diesem Grund wurden andere Verfahren zur Berechnung des Mindestabstands entwickelt. Ein diesen anderen Verfahren innewohnendes Problem besteht darin, dass ein scheinbarer Mindestabstand zwischen einem Hindernis und einem Robotersollpunkt, wie aus jedem einzelnen Standpunkt bestimmt, in 1 als Abstand 140 dargestellt, signifikant kleiner sein kann als der tatsächliche dreidimensionale Abstand. Dieser Effekt wird weiter unten erläutert.
  • 2 ist eine Darstellung einer Tiefenraumtechnik mit Einzelkamera zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Objekt, wie es im Stand der Technik bekannt ist. Eine einzelne 3D-Kamera 200 ist durch einen Kameramittelpunkt 202 dargestellt. Die Kamera 200 besitzt eine Bildebene 210, wobei jeder Bildpunkt in der Bildebene Koordinaten (px, py) im Raum der Bildebene aufweist. Weil es sich bei der Kamera 200 um eine 3D-Kamera handelt, besitzt jeder Bildpunkt auch einen Tiefen- oder Abstandswert d. Unter Verwendung des in 2 dargestellten Tiefenraumansatzes liefert die Kamera 200 eine kontinuierliche Reihe von Bildern, wobei jedes Bild analysiert wird, um Hindernisse zu detektieren, die ein Manöver der Kollisionsvermeidung durch den Roboter erfordern können. Für die folgende Erörterung ist zu berücksichtigen, dass die Kamera 200 von 2 Bilder der in 1 dargestellten Szene zur Verfügung stellt.
  • Die Kamera 200 in 2 erkennt einen Hindernispunkt 220 und einen Hindernispunkt 230. Der Hindernispunkt 220 könnte ein Punkt auf dem Arm oder der Hand des Menschen 130 sein. Der Hindernispunkt 230 könnte ein Punkt auf irgendeinem anderen Objekt im Hintergrund von 1 sein. Auch ein Sollpunkt 240 ist dargestellt, wobei der Sollpunkt 240 einer der Sollpunkte 102-106 auf dem Roboter 100 von 1 sein könnte. Die Lage des Sollpunktes 240, einschließlich eines Abstandswertes d4, kann aus bekannter Kinematik des Roboters und der räumlichen Kalibrierung der Kamera zum Koordinatenrahmen des Arbeitsraumes bestimmt werden. Gestützt auf einen Abstandswert d2 ist bekannt, dass der Hindernispunkt 220 viel näher an der Kamera 200 liegt als der Sollpunkt 240. Weil die Kamera 200 jedoch das Hindernis nicht „durchschauen“ kann, ist nicht bekannt, wie viel Platz hinter dem Hindernispunkt 220 belegt ist. Dieser Effekt ist als Verdeckung bekannt. Daher müssen für diesen den Hindernispunkt 220 darstellenden Bildpunkt alle Tiefenwerte, die größer als die Tiefe d2 sind, als belegt betrachtet werden. Dieser belegte Raum wird durch eine Linie 222 dargestellt.
  • Die dreidimensionalen Koordinaten des Hindernispunktes 220 können anhand der entsprechenden Bildpunktposition in der Bildebene 210, Parametern der Kamerakalibrierung und dem Abstand d2 bestimmt werden. Die dreidimensionalen Koordinaten des Sollpunktes 240 sind bekannt, wie oben beschrieben. Daher kann ein Abstand zwischen dem Hindernispunkt 220 und dem Sollpunkt 240 berechnet werden. Es gibt jedoch keine Gewissheit, dass der berechnete Abstand der Mindestabstand wäre zwischen dem am Hindernispunkt 220 detektierten Objekt und dem Roboter. Stattdessen muss aufgrund einer Verdeckung und der Möglichkeit, dass irgendeiner oder alle Punkte entlang der Linie 222 belegt sind, der Mindestabstand im ungünstigsten Fall zwischen dem Objekt und dem Sollpunkt 240 als der kürzeste Abstand zwischen dem Sollpunkt 240 und der Linie 222 - der entlang einer Linie senkrecht zur Linie 222 gefunden wird - berechnet werden. Dieser Mindestabstand ist durch einen Pfeil 224 dargestellt; es ist der Abstand, wie er auf eine Ebene parallel zur Bildebene 210 der Kamera projiziert wird.
  • Der Hindernispunkt 230 besitzt einen kameragemessenen Abstand d3, der größer ist als der Abstand d4 zum Sollpunkt 240. Im Fall des Hindernispunktes 230 beeinflusst der verdeckte Raum, dargestellt durch eine Linie 232, also nicht die Berechnung des Mindestabstands, weil er über den Sollpunkt 240 hinaus liegt. Der Abstand vom Hindernispunkt 230 zum Sollpunkt 240 kann daher basierend auf den tatsächlichen dreidimensionalen Koordinaten jedes Punktes (unter Verwendung der Summe der Quadrate der Differenzen in x, y und z Koordinaten) berechnet werden. Der resultierende Abstand, der durch einen Pfeil 234 dargestellt wird, ist ein genauer Mindestabstand zwischen dem am Hindernispunkt 230 detektierten Objekt und dem Sollpunkt 240 am Roboter.
  • 2 veranschaulicht das Defizit der Tiefenraumtechnik mit Einzelkamera zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Hindernis. Das heißt, der Mindestabstand von Objekten, der näher zur Kamera 200 als der Roboter zur Kamera 200 ist, muss aufgrund von Verdeckung mittels Annahme des ungünstigsten Falls berechnet werden. Dies zeigt sich in 2 darin, dass der durch den Pfeil 224 dargestellte Abstand (Mindestabstand im ungünstigsten Fall) viel kleiner ist als der tatsächliche Abstand zwischen dem Hindernispunkt 220 und dem Sollpunkt 240. Anhand des im ungünstigsten Fall angenommenen Roboter-Hindernis-Mindestabstands wird eine Robotersteuereinheit einen Weg berechnen, der den Roboter unnötigerweise dazu bringt, sich weit aus seinem Weg heraus zu bewegen, um den Hindernispunkt 220 zu umgehen.
  • 3 ist eine Darstellung der Tiefenraumtechnik mit mehreren Sensoren zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Objekt, wie es im Stand der Technik bekannt ist. Die in 3 dargestellte Multisensor-Tiefenraumtechnik wurde entwickelt, um die oben erörterten Mängel des Einzelkamera-Tiefenraumverfahrens zu überwinden.
  • Auf der linken Seite von 3 ist die Tiefenraumanordnung mit Einzelkamera von 2 umgezeichnet. Diese umfasst, wie oben erörtert, die Bildebene 210, die Hindernispunkte 220 und 230 sowie den Sollpunkt 240. Auf der rechten Seite von 3 ist die Erweiterung um den Multisensor dargestellt. Die Kamera 200 (von 2) ist links dargestellt. Die Kamera 200 ist jetzt die Primärkamera, wobei mindestens eine zusätzliche Kamera oder ein Sensor 300 vorgesehen sind. Zum Zwecke dieser Erörterung wird dies als Kamera 300 bezeichnet, und es wird angenommen, dass sie sowohl über die Bildebene als auch die Fähigkeit zur Abstandsmessung verfügt, wie es oben für die Kamera 200 beschrieben ist.
  • Bei der Multisensor-Tiefenraumtechnik wird eine Tiefenrasterkarte 310 erstellt, um das Problem der Verdeckung zu überwinden, indem die tatsächliche räumliche Belegung beliebiger Hindernisse im Arbeitsraum des Roboters minimiert wird. Die Tiefenrasterkarte 310 ist ein dreidimensionales volumetrisches Raster von konischen Hexaedern, das vom Kameramittelpunkt 202 ausgeht. Daten von der Kamera 200 (der Primärkamera) werden verwendet, um die gesamte Zellenstruktur der Tiefenrasterkarte 310 zu erstellen. Die Zellenstruktur der Tiefenrasterkarte 310 bleibt für alle Bilder aus der Kamera 200 konstant, und die Tiefenrasterkarte 310 deckt vorzugsweise im Wesentlichen das gesamte Arbeitsvolumen des Roboterarbeitsraums ab.
  • Für jedes Kamerabild aus der Kamera 200 werden, wie oben erörtert, Hindernispunkte ermittelt. Jeder Hindernispunkt wird anschließend einer entsprechenden belegten Zelle in der Tiefenrasterkarte 310 zugeordnet. Zum Beispiel entspricht der Hindernispunkt 220 einer belegten Zelle 320 in der Tiefenrasterkarte 310. Es ist bekannt, dass die Zelle 320, basierend auf dem Abstand d2 von der Kamera 200 zum Hindernispunkt 220 belegt ist. Bei der Multisensor-Tiefenraumtechnik werden Daten von der Kamera 300 (Sekundärkamera/Sensor) genutzt, um festzustellen, ob Zellen, die sich „hinter“ belegten Zellen (von der Kamera 200 verdeckt) befinden, von einem Hindernis belegt sind. Zelle 330 und Zelle 340 befinden sich „hinter“ der belegten Zelle 320, wie von der Kamera 200 aus betrachtet. So werden Daten der Kamera 300 verwendet, um festzustellen, ob die Zellen 330 und 340 tatsächlich von dem Hindernis belegt sind. Wenn sich beispielsweise der Hindernispunkt 220 auf einem dünnen Objekt mit geringer Tiefe befindet, werden die Zellen 330 und 340 leer sein. Alle Zellen in der Tiefenrasterkarte 310 werden auf diese Weise als belegt oder leer festgestellt.
  • Mit der Feststellung der Belegung der Zellen in der Tiefenrasterkarte 310 kann der Mindestabstand zwischen Roboter und Hindernis berechnet werden, indem der Abstand von jedem Sollpunkt am Roboter zu jeder belegten Zelle in der Tiefenrasterkarte 310 berechnet wird. Diese Multisensor-Tiefenraumtechnik überwindet weitgehend das Problem der Verdeckung, indem sie Daten von zusätzlichen Sensoren verwendet. Für große Arbeitsräume kann die Tiefenrasterkarte 310 (die tatsächlich viel feiner als in 3 dargestellt, auf einem Bild mit Tausenden von Bildpunkten basierend, ist) jedoch bei weitem Hunderttausende von Rasterzellen enthalten. Die sich daraus ergebenden Berechnungen des Mindestabstands zu Sollpunkten des Roboters können daher ungeheuer rechenintensiv werden.
  • Die vorliegende Offenlegung beschreibt eine Technik, die entwickelt wurde, um das Problem der Verdeckung der Tiefenraumtechnik mit Einzelkamera und das Problem der Rechenkomplexität der Tiefenraumtechnik mit mehreren Sensoren zu überwinden. Die vorliegende Offenlegung beschreibt ein Verfahren zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Objekt, welches drastisch die Anzahl der Punkte reduziert, die bewertet werden müssen, und das in jeder von Einzelkamerakonfiguration oder Mehrkamerakonfiguration angewendet werden kann. Dieses Verfahren wird in Bezug auf die folgenden Abbildungen erörtert.
  • 4A bis 4D sind Darstellungen einer Abfolge von Bildern, die in einer Erkennung der Hinderniskante mit Tiefeninformationen ihren Höhepunkt findet, die zur Berechnung eines Mindestabstands zwischen einem Roboter und dem Hindernis gemäß einer Ausführungsform der vorliegenden Offenlegung verwendet werden. Die Bildverarbeitungsschritte von 4A bis 4D bilden die Grundlage für die offengelegte effiziente Berechnungstechnik des Mindestabstands.
  • Figure 4A ist eine Darstellung eines Kamerabildes 400 eines Roboterarbeitsraums 402 vor einem der offengelegten Bearbeitungsschritte. Das Bild 400 ist ein digitales Bild von einer 3D-Kamera, wie an sich bekannt, und ist vom oben erörterten Typ. Das Bild 400 enthält einen Roboter 410 zusammen mit Hintergrundobjekten wie etwa eine Steuereinheit 420, Rohre 422, Türen 424 und einen Boden 426. Das Bild 400 zeigt auch einen Menschen 430, der einen Gegenstand 432 haltend den Arbeitsraum 402 betreten hat. Der Mensch 430 und der Gegenstand 432 stellen Hindernisse dar, die durch den Roboter 410 erkannt und umgangen werden müssen.
  • 4B ist eine Darstellung eines Bildes 440, bei dem der Roboter 410 „subtrahiert“ (digital herausgeschnitten) wurde. Der Mensch 430 und der Gegenstand 432 wurden aus dem Bild 440 der Übersichtlichkeit halber einfach weggelassen. Der Roboter 410 weist ein Unterteil, das am Boden 426 befestigt ist, und mehrere Roboterarme auf, die sich alle im Arbeitsraum 402 umher bewegen. Anhand bekannter Formen von Roboterarmen (aus CAD-Modellen oder angenähert mittels grafischen Primitiven) und Daten von Roboterposen (Gelenkpositionen), die von der Steuereinheit 420 bekannt sind, können bei jedem Bildzeitschritt die Positionen der Roboterarme im Bild 440 berechnet werden. Die Bildpunkte, die so berechnet werden, dass sie den Roboter 410 beinhalten, werden von dem Bild 440 subtrahiert, wie es durch den weißen Raum 442 dargestellt ist. Das Berechnen der Position der Roboterarme im Bild 440 ist möglich, solange Position und Stellung der Kamera im Voraus auf den Arbeitsraumkoordinatenrahmen kalibriert sind und die Roboterkinematik und die Armformen wie oben angegeben bereitgestellt werden. Das Subtrahieren des Roboters 410 vereinfacht das Bild 440 für die weitere Verarbeitung, indem Bildpunkte eliminiert werden, die nicht mit dynamischen Objekten (Hindernissen) in Verbindung stehen.
  • In einer anderen Ausführungsform wird das Bild 400 analysiert, um erkennbare Komponenten des Roboters 410 (Arme, Gelenke, Endof-Arm-Werkzeug) zu detektieren, wobei nur diejenigen Teile des Roboters 410, die im Bild 400 sichtbar sind, subtrahiert werden, um das Bild 440 zu erzeugen. Diese Technik vermeidet die unbeabsichtigte Wegnahme von Teilbereichen der dynamischen Objekte, die sich zwischen der Kamera und dem Roboter 410 befinden.
  • 4C ist eine Darstellung eines Bildes 450, das nur Bildpunkte der Kanten der Hintergrundobjekte 420-426 enthält. Die Hintergrundobjekte 420-426 bewegen sich nicht. Diese Tatsache kann genutzt werden, um die Hintergrundobjekte 420-426 in einem weiteren Bildverarbeitungsschritt zu entfernen. Ein Bild wie das Bild 440 (ohne Hindernisse) oder möglicherweise mehrere Bilder ohne Hindernisse und dem Roboter 400 in verschiedenen Positionen können verarbeitet werden, um die Bildpunkte zu erkennen, die die Kanten der Hintergrundobjekte 420-426 enthalten. Das Ergebnis wird als Bild 450 gespeichert, welches für die weitere Bildbearbeitung im offengelegten Verfahren verwendet werden kann.
  • In einer Ausführungsform des offengelegten Verfahrens wird eine Kantenfilterung am Bild 400 (4A) durchgeführt, um ein Zwischenbild zu erzeugen, das nur Kantenbildpunkte enthält, wobei anschließend Roboter und Hintergrundobjekte von dem Nur-Kanten-Bild subtrahiert werden. In anderen Ausführungsformen kann der Kantenfilterschritt an einem anderen Punkt im Ablauf durchgeführt werden, beispielsweise nach einer Wegnahme des Roboters.
  • 4D ist eine Darstellung eines Bildes 460, das nur Kantenbildpunkte des Menschen 430 und des Objekts 432 enthält. Das Bild 460 wird erzeugt, indem man mit dem Originalbild 400 beginnt, eine Kantenfilterung durchführt, um nur Kantenbildpunkte in einem zuerst verarbeiteten Bild zu belassen, und anschließend den Roboter (4B) und die Kantenbildpunkte des Hintergrundobjekts (4C) subtrahiert, wie oben beschrieben, um das Bild 460 zu erzeugen. Das Bild 460 enthält nur Kantenbildpunkte der dynamischen Objekte (das heißt, andere Dinge als den Roboter und den Hintergrund - d.h., mögliche Hindernisse) im Arbeitsraum 402. Jeder der Bildpunkte im Bild 460 weist einen Tiefenwert auf, der von der 3D-Kamera bereitgestellt wird, die das Bild 400 aufgenommen hat. Etwaige „Löcher“ in den Bildpunkttiefendaten im Bild 460 (einigen Bildpunkten in dreidimensionalen Kamerabildern kann es aufgrund von Blockierung des Tiefensignals um den Umfang von Objekten im Vordergrund herum an Tiefendaten mangeln) können durch einen Mindesttiefenwert (von der Kamera) unter benachbarten Bildpunkten befüllt werden, was sicherstellt, dass Tiefenwerte von den dynamischen Objekten, nicht dem Hintergrund, entnommen werden.
  • Gestützt auf die oben beschriebene Bildverarbeitung und Analyse besitzt jeder Bildpunkt im Bild 460 die Koordinaten x und y in einer Bildebene und einen Tiefenwert von der Kamera und kann daher durch seine dreidimensionalen Koordinaten im Koordinatenrahmen des Arbeitsraums dargestellt werden. Die dreidimensionalen Koordinaten der Robotersollpunkte sind bekannt, wie bereits früher in Bezug auf 2 erörtert. Somit kann ein dreidimensionaler Abstand zwischen jedem der Bildpunkte im Bild 460 und den Robotersollpunkten berechnet werden. Wenn die Bildpunkte im Bild 460 (die dynamischen Objekte darstellend - der Mensch 430 und das Objekt 432) jedoch näher an der Kamera sind als der Roboter, gibt es keine Gewissheit, dass der dreidimensionale Abstand der Mindestabstand zwischen den Objekten 430 und 432 und dem Roboter wäre. Stattdessen muss aufgrund von Verdeckung und der Möglichkeit, dass einige oder alle Punkte hinter den Objekten 430 und 432 belegt sind, der (kürzeste) Mindestabstand im ungünstigsten Fall zwischen den Objekten 430-432 und den Robotersollpunkten als der Abstand berechnet werden, der auf eine Ebene parallel zur Kamerabildebene projiziert wird, wie es mit Bezug auf 2 erörtert wird. Diese auf einer Verdeckung basierende Abstandsberechnung des ungünstigsten Falls gilt nur, wenn die Bildpunkte der Objekte 430 und 432 einen Abstand von der Kamera aufweisen, der kleiner als der Abstand von den Robotersollpunkten zur Kamera ist. Sonst wird die aktuelle dreidimensionale Abstandsberechnung von jedem Bildpunkt zu jedem Sollpunkt des Roboters verwendet.
  • 5 ist ein Ablaufdiagramm 500, das ein Verfahren und den Datenfluss zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Hindernis nach einer Ausführungsform der vorliegenden Offenlegung darstellt. Links ist eine 3D-Kamera 502 gezeigt, die in jedem Zeitintervall der Kamera auf Linie 504 ein neues Bild liefert. Das Zeitintervall oder der Zeitschritt der Kamera kann auf einer beliebigen geeigneten Bildrate basieren, wie etwa in einem Bereich von 10-30 Bildern pro Sekunde. Es können auch höhere oder niedrigere Bildraten verwendet werden. Das Bild auf der Linie 504 wird in zwei parallelen Spuren verarbeitet - einer (oberen) Bildpunktverarbeitungsspur unter Verwendung eines Farbbildes 510 und einer (unteren) Tiefenverarbeitungsspur unter Verwendung eines Tiefenbildes 520.
  • Unter Verwendung des Farbbildes 510 wird beim Kästchen 512 eine Kantenfilterung durchgeführt, um ein bearbeitetes Zwischenbild zu erzeugen. Wie oben erörtert, erzeugt die Kantenfilterung eine Version des Farbbildes 510, die nur Kantenbildpunkte der Bildinhalte enthält. Im Kästchen 514 wird eine Subtraktion von Roboter und Hintergrund an dem bearbeiteten Zwischenbild durchgeführt, um ein endgültiges verarbeitetes Bild von Bildpunkten zu erzeugen. Die Subtraktion von Roboter und Hintergrund wurde oben erörtert und in 4B bzw. 4C veranschaulicht. Das endgültige verarbeitete Bild von Bildpunkten enthält nur die Kantenbildpunkte beliebiger dynamischer Objekte (das heißt, was übrigbleibt, nachdem der Roboter und der Hintergrund entfernt wurden), die sich in dem Farbbild 510 befanden. Ein Beispiel für das endgültige verarbeitete Bild wurde in 4D gezeigt.
  • Unter Verwendung des Tiefenbildes 520 wird beim Kästchen 522 eine Tiefenlochfüllfilterung durchgeführt. Der Filterschritt des Befüllens des Tiefenlochs im Kästchen 522 stellt Tiefenwerte für Bildpunkte zur Verfügung, denen Tiefendaten fehlen. Dies kann durch ein Objekt im Vordergrund verursacht werden, welches das Tiefensignal von Hintergrundobjekten in benachbarten Bildpunkten blockiert. Löcher der Tiefendaten werden mittels eines Mindestwertes der Tiefe (von der Kamera) unter benachbarten Bildpunkten befüllt, wodurch sichergestellt wird, dass Tiefenwerte von den dynamischen Objekten im Vordergrund, nicht den Hintergrundobjekten wie Türen, Wänden usw., genommen werden.
  • Ein Bildpunkttiefenbild 530 von Hinderniskanten wird aus dem endgültigen verarbeiteten Bild von Bildpunkten nach der Subtraktion von Roboter und Hintergrund (Kästchen 514) und den Bildpunkttiefendaten nach der Tiefenlochfüllfilterung (Kästchen 522) erstellt. Das Bildpunkttiefenbild 530 von Hinderniskanten enthält nur Bildpunkte, die die Kanten von Hindernissen (dynamischen Objekten) aus dem Farbbild 510 darstellen, wobei Tiefendaten für jeden Bildpunkt aus dem Tiefenbild 520 bereitgestellt werden. 4D, wie früher erörtert, war eine Darstellung des Hinderniskanten-Bildpunkttiefenbildes 530.
  • Bei der Entscheidungsraute 540 wird festgelegt, ob das Hinderniskanten-Bildpunkttiefenbild 530 eine Menge von Bildpunkten enthält, die einen vorherbestimmten Schwellenwert überschreitet. Auch wenn keine dynamischen Objekte in einem Kamerabild vorhanden sind, führen die Schritte der Bildverarbeitung von 5 wahrscheinlich zu einer kleinen Anzahl von „Rauschbildpunkten“ im Hinderniskanten-Bildpunkttiefenbild 530. Die Schwellenwertprüfung bei der Entscheidungsraute 540 soll feststellen, ob tatsächlich irgendwelche dynamischen Objekte in dem Bild (und im Arbeitsraum des Roboters) vorhanden sind oder nicht. Das heißt, wenn nur ein Dutzend oder zwei Bildpunkte im Hinderniskanten-Bildpunkttiefenbild 530 verbleiben, dann ist es unwahrscheinlich, dass sich ein dynamisches Objekt in dem Bild befindet. Andererseits, falls Hunderte oder Tausende von Bildpunkten im Hinderniskanten-Bildpunkttiefenbild 530 verbleiben und unterschiedliche Formen wie in 4D definieren, dann stellt dies eindeutig reale Objekte in dem Bild dar. Die Schwellenwertprüfung bei der Entscheidungsraute 540 kann beliebig geeignet gestaltet werden, um zwischen bloßen „Rauschbildpunkten“ und realen Objekten im Bild zu unterscheiden. Wenn der Schwellenwert bei der Entscheidungsraute 540 nicht überschritten wird, was darauf hinweist, dass keine dynamischen Objekte im Bild vorhanden sind, kehrt der Ablauf zurück, um das nächste Bild von der Kamera 502 auf der Linie 504 zu empfangen.
  • Wenn der Schwellenwert bei der Entscheidungsraute 540 überschritten wird, was darauf hinweist, dass dynamische Objekte im Bild vorhanden sind, wird beim Kästchen 550 der Abstand von jedem Bildpunkt im Hinderniskanten-Bildpunkttiefenbild 530 zu jedem Robotersollpunkt berechnet. Wenn der Abstand von der Kamera zu den Bildpunkten im Hinderniskanten-Bildpunkttiefenbild 530 kleiner ist als der Abstand von der Kamera zu den Robotersollpunkten, dann basiert die Berechnung beim Kästchen 550 auf der oben erörterten Annahme einer Verdeckung. Ist der Abstand von der Kamera zu den Bildpunkten im Hinderniskanten-Bildpunkttiefenbild 530 größer als der Abstand von der Kamera zu den Robotersollpunkten, so basiert die Berechnung beim Kästchen 550 auf dem tatsächlichen dreidimensionalen Abstand von den Bildpunktkoordinaten zu den Sollpunktkoordinaten.
  • Für die Situation ohne Verdeckung (bei der sich der Roboter näher an der Kamera befindet als das Objekt zur Kamera) wird die Berechnung des dreidimensionalen Abstands beim Kästchen 550 durchgeführt, indem zuerst jeder Bildpunkt im Hinderniskanten-Bildpunkttiefenbild 530 von Bildkoordinaten (x/y in Bildebene plus Tiefe) umgesetzt wird zu einem Koordinatenrahmen des Roboterarbeitsraums, wie zuvor erörtert und veranschaulicht. Die Koordinaten der Robotersollpunkte im Koordinatenrahmen des Arbeitsraums sind bereits aus der Roboterpose bekannt, wie ebenfalls zuvor erörtert. Die Berechnung des tatsächlichen dreidimensionalen Abstands von einem Bildpunkt im Hinderniskanten-Bildpunkttiefenbild 530 zu einem Sollpunkt erfolgt dann mittels Summe der Quadrate der Koordinatenunterschiede in drei Dimensionen.
  • Für die Situation mit Verdeckung (bei der der Roboter weiter von der Kamera entfernt ist als das Objekt von der Kamera) wird die Abstandsberechnung im Kästchen 550 unter der Annahme durchgeführt, dass der gesamte Platz hinter den Bildpunkten im Hinderniskanten-Bildpunkttiefenbild 530 vom Objekt eingenommen wird. Somit wird der Abstand als scheinbarer Abstand vom Bildpunkt zum Sollpunkt in einer Ebene parallel zur Kamerabildebene, wie bereits erwähnt, berechnet.
  • Beim Kästchen 560 wird dann der Mindestabstand von den dynamischen Objekten zum Roboter als der kleinste Wert der Abstandsberechnungen (für alle Bildpunkte und Sollpunkte) vom Kästchen 550 bereitgestellt. Wenn der Mindestabstand beim Kästchen 560 kleiner ist als ein Schwellenwert, wird die Robotersteuereinheit die vorhandenen dynamischen Objekte bei der Berechnung des Roboterbewegungsprogramms einbeziehen, um eine Kollisionsvermeidung zu gewährleisten. Die Robotersteuereinheit kann mehr Daten als nur den einzelnen Mindestabstand berücksichtigen. Wenn der Mindestabstand zum Beispiel kleiner als der Schwellenwert ist, kann die Steuereinheit des Roboters bei der Berechnung der Kollisionsvermeidung alle Hindernisbildpunkte berücksichtigen, die sich in einem bestimmten Abstand von einem beliebigen Punkt auf dem Roboter befinden. Nachdem der Mindestabstand von den dynamischen Objekten zum Roboter (und möglicherweise andere Bildpunkt-Roboter-Abstandsdaten) beim Kästchen 560 bereitgestellt wurde, kehrt der Ablauf zurück, um das nächste Bild von der Kamera 502 auf der Linie 504 zu empfangen.
  • Das Verfahren von 5 kann auf einer Steuereinheit des Roboters selbst, wie der Steuereinheit 420 in 4, oder auf einem separaten Computer durchgeführt werden, der für die Bildverarbeitung und die Berechnung des Mindestabstands vorgesehen ist. Die Steuereinheit 420 berechnet Bewegungsbefehle des Robotergelenks, wie es auf dem Fachgebiet bekannt ist. Wenn ein separater Computer genutzt wird, um die Mindestabstände zwischen Roboter und Hindernis zu berechnen, kann der Robotersteuereinheit bei jedem Bildschritt ein Vektor des Mindestabstands (und möglicherweise andere Bildpunkt-Roboter-Abstandsdaten) zur Verfügung gestellt werden, so dass die Steuereinheit die Gelenkbewegungsberechnungen einschließlich Überlegungen der Kollisionsvermeidung basierend auf dem bereitgestellten Roboter-Hindernis-Mindestabstand durchführen kann.
  • Der Verlauf der Bildverarbeitung von 4A bis 4D und das Ablaufdiagramm 500 von 5 basierten beide auf einer einzigen 3D-Kamera, die Bilder des Roboterarbeitsraums liefert. Die gleichen Techniken können, wie unten erörtert, auf ein Mehrkamerasystem angewendet werden.
  • 6 ist eine Draufsicht eines Mehrkamerasystems zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Hindernis, wobei jede Kamera das Berechnungsverfahren von 5 gemäß einer Ausführungsform der vorliegenden Offenlegung unabhängig anwendet. Das Verfahren von 5 bietet eine wirksame und effiziente Berechnung des Mindestabstands zwischen Roboter und Hindernis, wobei nur Kantenbildpunkte bei Berechnungen verwendet werden, wenn ein unbekanntes oder dynamisches Objekt in den Roboterarbeitsraum eintritt. Mit einer einzigen Kamera kann die Verdeckung jedoch immer noch ein Problem darstellen, was bewirkt, dass die Kamera einen scheinbaren (nicht operativ, ungünstigster Fall) Roboter-HindernisAbstand berechnet, der viel kleiner ist als der tatsächliche dreidimensionale Abstand zwischen Roboter und Hindernis.
  • 6 veranschaulicht, wie die Techniken von 4 und 5 sehr einfach auf mehrere Kameras hochskaliert werden können, folglich die Genauigkeit des Mindestabstands bei Verdeckungssituationen erhöht wird. Ein Roboter 600 arbeitet, wie bereits erörtert, in einem Arbeitsraum. 3D-Kameras 610, 620 und 630 sind im Umkreis des Arbeitsraums herum angeordnet, um Bilder aus verschiedenen Blickwinkeln zu liefern. Weil sich dynamische Objekte (Personen, Gabelstapler, usw.), die in den Arbeitsraum eintreten, wahrscheinlich auf dem Fußboden bewegen, sind die Kameras 610-630 typischerweise im Wesentlichen horizontal - d.h., mit dem Kamerazielvektor innerhalb von +/- 20° von einer Horizontalen und der Kamerabildebene innerhalb von +/- 20° von einer Vertikalen, ausgerichtet.
  • Die Kameras 610, 620 und 630 kommunizieren entweder durch eine festverdrahtete Verbindung oder drahtlos mit einem Computer 640. Der Computer 640 führt die Bildverarbeitung und Mindestabstandsberechnungen durch und liefert Ergebnisse des Mindestabstands an eine Steuereinheit 650, die mit dem Roboter 600 in einer dem Stand der Technik bekannten Art und Weise kommuniziert und ihn steuert. Wechselweise kann der Computer 640 eliminiert werden, wobei die Steuereinheit 650 die Bilder von den Kameras 610, 620 und 630 empfängt und die Bildverarbeitung und Mindestabstandsberechnungen selbst durchführt.
  • Jede der Kameras 610, 620 und 630 verfügt über ein Sichtfeld, das als ein von der bestimmten Kamera ausgehendes Dreieck dargestellt ist. Die Kamera 610 besitzt ein Sichtfeld 612, die Kamera 620 ein Sichtfeld 622 und die Kamera 630 ein Sichtfeld 632. Die Sichtfelder 612, 622 und 632 sind in 6 der Übersichtlichkeit halber jeweils zweimal beschriftet. In den Roboterarbeitsraum ist ein dynamisches Objekt 640 (eine Person) eingetreten und befindet sich innerhalb aller Sichtfelder 612, 622 und 632. Das Objekt 640 erzeugt einen Bereich der Verdeckung nach unten im Sichtfeld von jeder der Kameras. Ein Bereich der Verdeckung 614 wird unterhalb des Objekts 640 im Sichtfeld 612 (Kamera 610), ein Bereich der Verdeckung 624 unterhalb des Objekts 640 im Sichtfeld 622 (Kamera 620) und ein Bereich der Verdeckung 634 (sehr klein) unterhalb des Objekts 640 im Sichtfeld 632 (Kamera 630) erzeugt.
  • Unter Verwendung der oben mit Bezug auf 4 und 5 erörterten Techniken zur Berechnung des Kantenbildpunktabstands kann für jede der Kameras 610, 620 und 630 ein Mindestabstand zwischen Roboter und Hindernis berechnet werden. In Betracht gezogen wird zuerst die Kamera 610 und ihr Sichtfeld 612. Das Objekt 640 befindet sich näher an der Kamera 610 als der Roboter 600 an der Kamera 610. Daher liegt eine Verdeckungssituation vor, und es muss davon ausgegangen werden, dass das Objekt 640 den Bereich der Verdeckung 614 einnimmt. Nach den oben mit Bezug auf 5 beschriebenen Bildverarbeitungsschritten berechnet die Kamera 610 einen auf Verdeckung basierenden Mindestabstand zwischen Roboter und Hindernis, der als Linie 616 gekennzeichnet ist.
  • Betrachten wir nun die Kamera 620 und ihr Sichtfeld 622. Das Objekt 640 befindet sich näher an der Kamera 620 als der Roboter 600 an der Kamera 620. Daher liegt die Situation einer Verdeckung vor, und es muss davon ausgegangen werden, dass das Objekt 640 den Bereich der Verdeckung 624 einnimmt. Nach den oben mit Bezug auf 5 beschriebenen Schritten der Bildverarbeitung berechnet die Kamera 620 einen auf Verdeckung basierenden Mindestabstand zwischen Roboter und Hindernis, der als Linie 626 gekennzeichnet ist.
  • Betrachten wir nun die Kamera 630 und ihr Sichtfeld 632. Das Objekt 640 befindet sich weiter von der Kamera 630 entfernt als der Roboter 600 von der Kamera 630. Daher liegt keine Verdeckungssituation vor, und der Bereich der Verdeckung 634 wird bei den Berechnungen des Mindestabstands nicht genutzt. Dafür werden bei der Kamera 630 die tatsächlichen dreidimensionalen Abstände zwischen Kantenbildpunkten und Sollpunkten des Roboters berechnet und bei der Berechnung des Mindestabstands verwendet. Nach den oben mit Bezug auf 5 beschriebenen Bildverarbeitungsschritten berechnet die Kamera 630 einen tatsächlichen Mindestabstand zwischen Roboter und Hindernis, der als Linie 636 gekennzeichnet ist.
  • Nach den Berechnungen für alle drei Kameras ist ein Roboter-Hindernis-Mindestabstand 616 für die Kamera 610, ein Roboter-Hindernis-Mindestabstand 626 für die Kamera 620 und ein Roboter-Hindernis-Mindestabstand 636 für die Kamera 630 vorhanden. An diesem Punkt kann der größte der drei Mindestabstände sicher als tatsächlicher Wert gewählt werden, da ein tatsächlicher dreidimensionaler Abstand, bei Betrachtung von anderen Beobachtungspunkten aus, nie geringer ist als die größte dieser Beobachtungen. Diese Tatsache äußert sich in den Annahmen einer Verdeckung, die dazu führen, dass die Mindestabstände 616 und 626 künstlich niedrig sind. Daher wird der Mindestabstand 636 als der genaueste Wert unter den drei Kameras ausgewählt und ist der Wert, der bei Berechnungen der Bewegungsplanung von Robotern mit Kollisionsvermeidung durch die Steuereinheit 650 verwendet wird.
  • 7 ist ein Ablaufdiagramm 700, das ein Verfahren zur Berechnung eines Mindestabstands zwischen einem Roboter und einem Hindernis unter Verwendung des Mehrkamerasystems von 6 nach einer Ausführungsform der vorliegenden Offenlegung darstellt. Im Schritt 710 wird ein Einzelbild von einer als Kamera 1 gekennzeichneten ersten 3D-Kamera erfasst. Wie oben erörtert, stellt jede der Kameras in 7 (und in oben erörterter 6) einen kontinuierlichen Bildstrom mit einer gewissen Bildrate, normalerweise mehrere Einzelbilder pro Sekunde, zur Verfügung. Beim Kästchen 712 wird auf das Bild eine Kantenfilterung angewendet, was dazu führt, dass ein zwischenbearbeitetes Bild nur Kantenbildpunkte aufweist. Beim Kästchen 714 werden der Roboter und der feststehende Hintergrund vom zwischenbearbeiteten Bild aus dem Kästchen 712 subtrahiert, was zu einem Bild führt, das nur Kanten dynamischer Objekte enthält, wie es zuvor erörtert wurde. Beim Kästchen 716 werden Tiefendaten (von der Kamera) auf die Objektbildpunkte angewendet, die im Kantenbild des dynamischen Objekts verbleiben. Beim Kästchen 718 wird, nachdem Tiefendaten auf das Kantenbild des dynamischen Objekts angewendet wurden, der Mindestabstand der Objektkantenbildpunkte bezüglich der Robotersollpunkte entweder als echter dreidimensionaler Abstand oder basierend auf der Annahme einer Verdeckung, wie oben beschrieben, berechnet. Die Berechnung des Mindestabstands beim Kästchen 718 liefert den Mindestabstandswert für das aktuelle Einzelbild von Kamera 1, der dem in 6 dargestellten Abstand 616 entspricht.
  • Beim Schritt 720 wird ein Einzelbild von einer als Kamera 2 bezeichneten zweiten 3D-Kamera erfasst. Das Bild von Kamera 2 wird in den Kästchen 722-728 verarbeitet, was zu einer Abstandsberechnung beim Kästchen 728 führt, die den Mindestabstandswert für das aktuelle Einzelbild von Kamera 2 liefert, der dem Abstand 626 von 6 entspricht.
  • Beim Schritt 730 wird ein Einzelbild von einer nächsten 3D-Kamera erfasst, die als Kamera N bezeichnet ist. Das Bild von Kamera N wird in den Kästchen 732-738 verarbeitet, was zu einer Abstandsberechnung beim Kästchen 738 führt, die den Mindestabstandswert für das aktuelle Einzelbild von Kamera N liefert. Wenn der Wert von N drei ist, dann entspricht der bei Kästchen 738 berechnete Abstand dem Abstand 636 von 6.
  • Beim Kästchen 740 wird der größte der in den Kästchen 718, 728 und 738 berechneten Mindestabstände als die genaueste Darstellung des Roboter-Hindernis-Mindestabstands für den Zeitschritt des aktuellen Kamerabilds ausgewählt. Wie oben mit Bezug auf 6 erörtert, können die von einigen der Kameras berechneten Mindestabstände aufgrund der Annahme einer Verdeckung künstlich reduziert werden, und der größte berechnete Mindestabstand von den mehreren Kameras ist als der genaueste Wert bekannt.
  • Das Mehrkameraverfahren von 7 kann auf eine beliebige Anzahl von Kameras, zwei oder mehr, angewendet werden. Je größer die Anzahl der Kameras ist, desto genauer wird der endgültige Wert des Mindestabstands (aus dem Kästchen 740) sein. Es ist anzumerken, dass eine Erhöhung der Anzahl von Kameras im Verfahren von 7 nur eine minimale Zunahme der Rechenintensität verursacht, da der Mindestabstand jeder Kamera unabhängig und parallel berechnet wird und am Ende nur eine einfache Auswahl mit dem größten Wert erforderlich ist (Kästchen 740). Dies steht im Gegensatz zu dem in 3 gezeigten und oben erörterten Verfahren im Stand der Technik, bei dem mehrere Kameras die Erstellung eines dreidimensionalen Tiefenrasters bewirken, wobei komplexe Berechnungen die Wechselbeziehung zwischen Daten aus den verschiedenen Kameras beinhalten.
  • Darüber hinaus erfordert die derzeit offengelegte Technik von 6 und 7 nur, dass die Kameras relativ zum Koordinatenrahmen des Roboterarbeitsraums kalibriert sind. Das Verfahren der vorliegenden Offenlegung erfordert nicht, dass die Kameras relativ zueinander kalibriert werden, was keine triviale Übung ist und die, wenn sie nicht genau durchgeführt wird, Fehler bei dem in 3 dargestellten Tiefenraster verursachen wird.
  • 8A und 8B sind Darstellungen einer Szene, die von zwei Kameras mit unterschiedlichen Standpunkten gleichzeitig aufgenommen wurde und zeigen, wie System und Verfahren von 6 und 7 nach einer Ausführungsform der vorliegenden Offenlegung angewendet werden, um einen Roboter-Hindernis-Mindestabstand zu bestimmen, der eng mit tatsächlichen Messungen korreliert. 8A zeigt das Bild eines Roboterarbeitsraums, das von einer ersten, nicht gezeigten Kamera aufgenommen wurde. In dem Arbeitsraum arbeitet ein Roboter 800 und wird von einer Steuereinheit 810 gesteuert. Dynamische Objekte existieren auch im Arbeitsraum, einschließlich einer Person 820, die ein Objekt 830 hält. 8B zeigt den Roboterarbeitsraum in einem Bild, das von einer zweiten, nicht gezeigten Kamera aufgenommen wurde. Der Roboter 800, die Steuereinheit 810, die Person 820 und das Objekt 830 sind ebenfalls im Bild in 8B zu sehen. 8A und 8B stellen zwei Bilder dar, die aufgenommen wurden mit verschiedenen Kameras im Wesentlichen im selben Moment - das heißt, dem letzten Zeitschritt der Kamera, bei dem die beiden Kameras mit der gleichen Bildrate arbeiten, sodass sie mittels Verfahren von 7 verarbeitet werden können.
  • 8A und 8B veranschaulichen ein Beispiel mit zwei Kameras für das System und Verfahren von 6 und 7. In 8A ist aus den Positionen der Person 820 und des Roboters 800 auf dem Boden ersichtlich, dass die Person 820 und der Objekt 830 näher an der ersten Kamera sind als der Roboter 800 an der ersten Kamera. Es liegt also die Situation einer Verdeckung vor, und es muss davon ausgegangen werden, dass der Raum „hinter“ der Person 820 und dem Objekt 830, bei Betrachtung von der ersten Kamera aus, belegt ist. Unter Anwendung der Bildverarbeitungstechniken von 4 und dem Verfahren von 5 auf die erste Kamera wird ein auf Verdeckung basierender Roboter-Hindernis-Mindestabstand ermittelt, der durch eine Linie 840 gekennzeichnet ist. Die Mindestabstandslinie 840 wird in einer Ebene parallel zur Kamerabildebene gemessen.
  • In 8B sind die Person 820 und das Objekt 830 ungefähr gleich weit von der zweiten Kamera entfernt wie der Roboter 800 von der zweiten Kamera. Daher gibt es wenig oder gar keine Verdeckung. Wendet man die Bildverarbeitungstechniken von 4 und das Verfahren von 5 auf die zweite Kamera an, so wird ein Roboter-Hindernis-Mindestabstand ermittelt, wie er durch eine Linie 850 gekennzeichnet ist. Unabhängig davon, ob die Linie 850 des Mindestabstands in einer Ebene parallel zur Kamerabildebene oder in tatsächlichen dreidimensionalen Arbeitsraumkoordinaten gemessen wird, wird die Länge der Linie 850 erheblich größer als die Länge der Linie 840 sein.
  • Mit dem Verfahren von 7 wird der Roboter-Hindernis-Mindestabstand für die in 8A und 8B dargestellte Szene als Linie 850 (8B) ausgewählt, die der größere der zwei von der ersten Kamera und der zweiten Kamera ermittelten Mindestabstände ist.
  • 9A, 9B und 9C sind Darstellungen von drei verschiedenen Hindernisszenarien und die daraus resultierenden Berechnungen des Mindestabstands für jedes Szenario unter Einsatz eines Drei-Kamera-Systems gemäß einer Ausführungsform der vorliegenden Offenlegung. Im Gegensatz zu 8A und 8B, die Bilder derselben Szene sind, die von verschiedenen Kameras im selben Moment aufgenommen wurden, sind 9A bis 9C Darstellungen von Bildern dreier verschiedener Szenen von derselben Kamera, die zu unterschiedlichen Zeiten aufgenommen wurden, bei denen die dynamischen Objekte von einer Szene zur nächsten an neue Orte bewegt wurden. Jede der 9A bis 9C wird separat erörtert, um darzustellen, wie sich das Verhältnis von Hindernisposition zu Kameraposition um den Arbeitsraum herum auf den berechneten Mindestabstand jeder Kamera auswirkt. In jedem Szenario werden für jede Kamera Abstandswerte von aktuellen Systemtests aufgelistet.
  • Eine Kamera 910 befindet sich in der „vorderen Mitte“ des Arbeitsraums, wie in den 9A bis 9C dargestellt. Das heißt, die 9A bis 9C sind aus dem Sichtfeld der Kamera 910 dargestellt. Eine Kamera 920 befindet sich „hinten links“ im Arbeitsraum und eine Kamera 930 in der Mitte der rechten Seite des Arbeitsraums, wie in 9A bis 9C dargestellt. In jeder der 9A bis 9C arbeitet ein Roboter 900 mit einer Steuereinheit 902 im Arbeitsraum. Der Roboter 900 ist in jeder der 9A bis 9C in der gleichen Pose dargestellt. Eine Person 940 hält ein Objekt 950, wobei die Person 940 und das Objekt 950 potenzielle Hindernisse für den Roboter 900 darstellen und dadurch dynamisch sind, dass sie sich in den, aus dem und um den Arbeitsraum herumbewegen können.
  • In 9A befindet sich die Person 940 an der „Vorderseite links“ des Arbeitsraums und hält das Objekt 950 mit ihrem Arm im Wesentlichen horizontal und zur Mitte des Arbeitsraums hinausragend. In diesem Szenario bekommt die Kamera 910 eindeutig die Situation einer Verdeckung, weil die Kamera 910 viel näher am Objekt 950 ist als am Roboter 900. Zwischen dem Objekt 950 und dem Roboter 900 besteht jedoch ein ausreichender seitlicher und vertikaler Abstand, sodass die Kamera 910 einen auf Verdeckung basierenden Mindestabstand zwischen Roboter und Hindernis von etwa 69 Zentimetern (cm) wahrnimmt. Die Kamera 920 bekommt ebenfalls eine Verdeckungssituation, weil die Kamera 920 näher am Objekt 950 ist als am Roboter 900. Wegen der Annahme einer Verdeckung und der relativen Positionen des Objekts 950 und des Roboters 900 nimmt die Kamera 920 einen auf Verdeckung basierenden Mindestabstand zwischen Roboter und Hindernis von etwa 39 cm wahr. Die Kamera 930 bekommt keine Verdeckungssituation, weil die Kamera 930 näher am Roboter 900 ist als am Objekt 950. Die Kamera 930 berechnet deshalb auf der Basis der tatsächlichen dreidimensionalen Koordinaten eines Kantenbildpunktes des Objekts 950 und eines Sollpunktes auf dem Roboter 900 einen Roboter-Hindernis-Mindestabstand. Unter Verwendung der tatsächlichen dreidimensionalen Koordinaten berechnet die Kamera 930 einen Roboter-Hindernis-Mindestabstand von ca. 82 cm. Nach dem Verfahren von 7 wird der größte der drei Mindestabstände der Kameras als der genaueste ausgewählt. So wird der Mindestabstand von 82 cm von der Kamera 930 ausgewählt. Dieser Mindestabstandswert lässt sich günstig vergleichen mit einem Mindestabstand von 81 cm, der für das Szenario von 9A durch ein Motion-Capture-System gemessen wurde, das im eigentlichen Arbeitsraum eingerichtet wurde.
  • In 9B befindet sich die Person 940 an der Vorderseite des Arbeitsraums, links von der Mitte, und hält immer noch das Objekt 950, wobei der Arm der Person im Wesentlichen horizontal ist und zur Mitte des Arbeitsraums hinausragt. In diesem Szenario bekommt die Kamera 910 immer noch die Situation einer Verdeckung, weil die Kamera 910 viel näher am Objekt 950 ist als am Roboter 900. Zwischen dem Objekt 950 und dem Roboter 900 besteht nun ein geringerer seitlicher und vertikaler Abstand als in 9A, und die Kamera 910 nimmt einen auf Verdeckung basierenden Mindestabstand zwischen Roboter und Hindernisabstand von etwa 35 cm wahr. Die Kamera 920 bekommt ebenfalls die Situation einer Verdeckung, weil die Kamera 920 näher am Objekt 950 ist als am Roboter 900. Aufgrund der Annahme einer Verdeckung und der relativen Positionen des Objekts 950 und des Roboters 900 nimmt die Kamera 920 auch einen Mindestabstand zwischen Roboter und Hindernis von ca. 35 cm wahr. Die Kamera 930 bekommt immer noch keine Situation einer Verdeckung, weil die Kamera 930 näher am Roboter 900 ist als am Objekt 950. Die Kamera 930 berechnet daher auf der Basis tatsächlicher dreidimensionaler Koordinaten eines Kantenbildpunkts des Objekts 950 und eines Sollpunktes auf dem Roboter 900 einen Roboter-Hindernis-Mindestabstand, wobei dieser Abstand etwa 83 cm beträgt. Gemäß dem Verfahren von 7 wird der größte der drei Mindestabstände der Kamera, das heißt, der Mindestabstand von 83 cm von der Kamera 930, als der genaueste ausgewählt. Dieser Mindestabstandswert lässt sich günstig vergleichen mit einem Mindestabstand von 89 cm, der durch das Motion-Capture-System im tatsächlichen Arbeitsraum für das Szenario von 9B gemessen wurde.
  • In 9C befindet sich die Person 940 auf der linken Seite des Arbeitsraums nach hinten und hält immer noch das Objekt 950, wobei der Arm der Person im Wesentlichen horizontal ist und zur Mitte des Arbeitsraums hinausragt. In diesem Szenario kann die Kamera 910 die Situation einer Verdeckung bekommen oder auch nicht, weil sich die Kamera 910 ungefähr im gleichen Abstand von dem Objekt 950 und dem Roboter 900 befindet. Unter Verwendung der in 4 gezeigten Bildverarbeitungstechnik und des Verfahrens von 5 wird eine Verdeckung angenommen, da der Abstand von den Kantenbildpunkten des Objekts 950 zur Kamera geringer ist als der Abstand von den Sollpunkten am Roboterarm zur Kamera. Mittels entsprechender Berechnung (entweder eine auf Verdeckung basierende Projektion oder ein echter dreidimensionaler Abstand) berechnet die Kamera 910 einen Mindestabstand zwischen Roboter und Hindernis von etwa 78 cm. Die Kamera 920 bekommt in 9C definitiv die Situation einer Verdeckung. Aufgrund der Annahme einer Verdeckung und der relativen Positionen des Objekts 950 und des Roboters 900 nimmt die Kamera 920 einen auf Verdeckung basierenden Mindestabstand zwischen Roboter und Hindernis von etwa 20 cm wahr. Die Kamera 930 bekommt in 9C immer noch keine Situation einer Verdeckung, weil sich die Kamera 930 näher am Roboter 900 als am Objekt 950 befindet. Die Kamera 930 berechnet daher einen Roboter-Hindernis-Mindestabstand basierend auf den tatsächlichen dreidimensionalen Koordinaten eines Kantenbildpunktes des Objekts 950 und eines Sollpunktes auf dem Roboter 900, wobei dieser Abstand etwa 77 cm beträgt. Nach dem Verfahren von 7 wird der größte Abstand der drei Mindestabstände der Kamera als der genaueste ausgewählt, das heißt, der Mindestabstand von 78 cm von der Kamera 910. Dieser Mindestabstandswert lässt sich günstig mit einem Mindestabstand von 78 cm vergleichen, der durch das Motion-Capture-System im tatsächlichen Arbeitsraum für das Szenario von 9C gemessen wurde.
  • Die vorangegangene Erörterung von 9A bis 9C soll veranschaulichen, wie das System und Verfahren von 6 und 7 in realen Roboter-Hindernis-Situationen mittels dreier Kameras angewendet werden, um genaue Mindestabstände schnell und zuverlässig zu bestimmen. Der Erörterung halber: Wenn sich die Person 940 und das Objekt 950 an der rechten Vorderseite des Arbeitsraums befänden, würde die Kamera 920 wahrscheinlich den größten (und genauesten) Mindestabstand liefern.
  • Wie früher erwähnt, kann die Steuereinheit 902 in 9A bis 9C die Bilder von den Kameras 910, 920 und 930 empfangen und alle oben bezüglich 4 bis 9 beschriebenen Schritte der Bildverarbeitungs- und Abstandsberechnung ausführen. Wechselweise kann ein separater Computer vorgesehen sein, um alle Schritte der Bildverarbeitung und Abstandsberechnung durchzuführen, was zu einer Bestimmung führt, ob dynamische Objekte im Arbeitsraum vorhanden sind und wenn ja, wie groß der Mindestabstand zwischen Roboter und Hindernis ist. In beiden Fällen wird, wenn dynamische Objekte vorhanden sind, der Roboter-Hindernis-Mindestabstand von der Steuereinheit 902 genutzt, um festzulegen, ob Kollisionsvermeidungsmanöver für den Roboter 900 erforderlich sind.
  • In der vorherigen Erörterung sind durchweg verschiedene Computer und Steuereinheiten beschrieben und einbezogen. Es soll verständlich werden, dass die Softwareanwendungen und Module dieser Computer und Steuereinheiten auf einem oder mehreren Rechengeräten mit einem Prozessor und einem Speichermodul ausgeführt werden. Dies umfasst insbesondere einen Prozessor jeweils in der Robotersteuereinheit 650 und dem Computer 640 (falls verwendet) von der oben erörterten 6. Insbesondere ist der Prozessor in der Steuereinheit 650 und/oder dem Computer 640 (falls verwendet) so konfiguriert, dass er die Bildverarbeitungsschritte an Bildern von einer oder mehreren Kameras ausführt und einen Roboter-Hindernis-Mindestabstand in der durchweg in der vorstehenden Offenlegung beschriebenen Weise berechnet. Gleiches gilt für die in 4, 8 und 9 dargestellten Robotersteuereinheiten, die mit oder ohne separaten Computer zur Durchführung der offengelegten Berechnungen verwendet werden können.
  • Wie es oben kurz dargestellt ist, bieten die offengelegten Techniken zur Berechnung eines Mindestabstands zu dynamischen Objekten in einem Roboterarbeitsraum erhebliche Vorteile gegenüber Verfahren im Stand der Technik. Die offengelegten Bildverarbeitungsschritte zum Erkennen von Bildpunkten der Objektkanten ermöglichen die effiziente Ermittlung eines Vektors des Mindestabstands für eine Kamera, unabhängig davon, ob eine Verdeckung vorhanden ist oder nicht. Die Kombination mehrerer Kameras in einer parallelen Berechnung ermöglicht die Ermittlung eines genauen Mindestabstandes schnell und ohne zeitaufwändige und fehleranfällige Kalibrierung der Kamera und dreidimensionale Tiefenrasterberechnungen von Verfahren im Stand der Technik.
  • Während oben eine Anzahl von beispielhaften Aspekten und Ausführungsformen des Verfahrens und des Systems zur Berechnung eines Mindestabstands zu dynamischen Objekten in einem Roboterarbeitsraum erörtert wurde, wird der Fachmann Modifizierungen, Umsetzungen, Ergänzungen und Unterkombinationen davon erkennen. Es ist daher beabsichtigt, dass die folgenden angehängten Ansprüche und Ansprüche, die im Folgenden eingeführt werden, so ausgelegt werden, dass sie alle diese Modifizierungen, Umsetzungen, Ergänzungen und Unterkombinationen umfassen, wie sie in ihrem wahren Geist und Geltungsbereich liegen.

Claims (20)

  1. Verfahren zur Berechnung eines Mindestabstands von einem Roboter zu Hindernissen in einem Arbeitsraum des Roboters, wobei das Verfahren Folgendes umfasst: Bereitstellen eines Bildes des Arbeitsraums von einer dreidimensionalen Kamera; Durchführen einer Kantenfilterung an dem Bild unter Verwendung eines Computers mit einem Prozessor und einem Datenspeicher, was zu einem Kantenbild führt, das nur Bildpunkte aufweist, die Kanten von Elementen im Arbeitsraum definieren; Subtrahieren der Roboter- und Hintergrundelemente aus dem Kantenbild, was zu einem Bild von Bildpunkten der dynamischen Objektkanten führt; Zuweisen eines Tiefenwerts zu jedem Bildpunkt im Bild von Bildpunkten der dynamischen Objektkanten, um ein endgültiges Bild zu erzeugen, bei dem der Tiefenwert von Tiefendaten in dem von der Kamera bereitgestellten Bild entnommen wird; Berechnen eines Abstands von jedem Bildpunkt im endgültigen Bild zu jedem einer Vielzahl von Sollpunkten auf dem Roboter; und Bestimmen eines Roboter-Hindernis-Mindestabstands aus den berechneten Abständen.
  2. Verfahren nach Anspruch 1, wobei das Subtrahieren des Roboters aus dem Kantenbild das Berechnen einer Roboterpose auf der Basis von vorwärtskinematischen Berechnungen mittels Positionsdaten des Robotergelenks, das Verschieben der Roboterpose in eine Position und Ausrichtung jedes Roboterarms in einem Bildkoordinatenrahmen und das Subtrahieren jedes Roboterarm aus dem Kantenbild umfasst.
  3. Verfahren nach Anspruch 1, wobei das Subtrahieren von Hintergrundelementen aus dem Kantenbild das Bereitstellen eines zuvor aufgenommenen Referenzbildes des Hintergrunds, von dem bekannt ist, dass es keine dynamischen Objekte im Arbeitsraum bekommt, das Durchführen einer Kantenfilterung an dem Hintergrundreferenzbild, um ein Hintergrundreferenzkantenbild zu erzeugen, und das Subtrahieren des Hintergrundreferenzkantenbildes von dem Kantenbild umfasst.
  4. Verfahren nach Anspruch 1, des Weiteren umfassend das Lochfüllen der Tiefendaten, bevor ein Tiefenwert jedem Bildpunkt zugewiesen wird, einschließlich Zuweisen eines Tiefenwerts zu Bildpunkten im Bild, denen Tiefendaten fehlen, wobei der Tiefenwert basierend auf einem Bildpunkt innerhalb eines vordefinierten benachbarten Abstands zugewiesen wird, der einen der Kamera am nächsten liegenden Tiefenwert besitzt.
  5. Verfahren nach Anspruch 1, ferner umfassend das Bestimmen, ob eine Anzahl von Bildpunkten im endgültigen Bild größer als ein vordefinierter Schwellenwert ist, das Berechnen des Abstands von jedem Bildpunkt im endgültigen Bild zu jedem der Vielzahl von Sollpunkten auf dem Roboter, wenn die Anzahl von Bildpunkten größer ist als der Schwellenwert, und das Feststellen, dass im Arbeitsraum keine Hindernisse vorhanden sind, wenn die Anzahl von Bildpunkten im endgültigen Bild kleiner als oder gleich dem vordefinierten Schwellenwert ist.
  6. Verfahren nach Anspruch 1, wobei das Berechnen eines Abstands von jedem Bildpunkt im endgültigen Bild zu jedem einer Vielzahl von Sollpunkten auf dem Roboter das Durchführen einer Prüfung einer Verdeckung umfasst, wobei die Prüfung einer Verdeckung positiv ist, wenn ein Abstand von der Kamera zum Bildpunkt kleiner als ein Abstand von der Kamera zum Sollpunkt ist.
  7. Verfahren nach Anspruch 6, wobei, wenn die Prüfung der Verdeckung positiv ist, Berechnen des Abstands vom Bildpunkt zum Sollpunkt als ein auf eine Ebene parallel zu einer Kamerabildebene projizierter Abstand.
  8. Verfahren nach Anspruch 6, wobei, wenn die Prüfung der Verdeckung nicht positiv ist, Berechnen des Abstands vom Bildpunkt zum Sollpunkt als ein tatsächlicher dreidimensionaler Abstand unter Verwendung einer Summe der Quadrate der Differenzen in einer Koordinatenformel.
  9. Verfahren nach Anspruch 1, wobei jeder der Sollpunkte an dem Roboter an einem Punkt auf einer Außenfläche eines Roboterarms entlang einer kinematischen Achse eines Roboterarms oder an einem Gelenkmittelpunkt definiert ist.
  10. Verfahren nach Anspruch 1, ferner umfassend das Bereitstellen eines simultanen Bildes des Arbeitsraums von einer oder mehreren zusätzlichen dreidimensionalen Kameras, wobei jede der Kameras an einem anderen Ort um einen Umfang des Arbeitsraums herum angeordnet ist, das Bestimmen eines Roboter-Hindernis-Mindestabstands aus dem Bild von jeder der zusätzlichen Kameras und das Auswählen eines Maximums der bestimmten Roboter-Hindernis-Mindestabstände zur Verwendung bei einer Programmierung der Roboterbewegung.
  11. Verfahren nach Anspruch 1, ferner umfassend das Verwenden des Roboter-Hindernis-Mindestabstands durch eine Robotersteuereinheit in einem Roboterbewegungsplanungsalgorithmus mit Kollisionsvermeidung.
  12. Verfahren nach Anspruch 11, wobei der Computer die Steuereinheit des Roboters ist.
  13. Verfahren zur Berechnung eines Mindestabstands von einem Roboter zu Hindernissen in einem Arbeitsraum des Roboters, wobei dieses Verfahren Folgendes umfasst: Bereitstellen eines simultanen Bildes des Arbeitsraums von jeder einer Vielzahl dreidimensionaler (3D) Kameras; Durchführen einer Kantenfilterung an jedem der Bilder unter Verwendung eines Computers mit Prozessor und Arbeitsspeicher, was zu einem Kantenbild führt, das nur Bildpunkte enthält, die Kanten von Elementen im Arbeitsraum definieren; Subtrahieren der Roboter- und Hintergrundelemente von jedem der Kantenbilder, was zu einem Bild aus Bildpunkten dynamischer Objektkanten führt; Zuweisen eines Tiefenwerts zu jedem Bildpunkt in jedem der Bilder aus Bildpunkten der dynamischen Objektkanten, um ein endgültiges Bild zu erzeugen, wenn der Tiefenwert von Tiefendaten in dem von der Kamera bereitgestellten Bild entnommen wird; wenn eine Anzahl von Bildpunkten in jedem der endgültigen Bilder größer als oder gleich einem vordefinierten Schwellenwert ist, das Berechnen eines Abstands von jedem Bildpunkt im endgültigen Bild zu jedem einer Vielzahl von Sollpunkten auf dem Roboter; Bestimmen eines Roboter-Hindernis-Mindestabstands für jede der Kameras aus den berechneten Abständen; Auswählen eines Maximums der bestimmten Roboter-Hindernis Mindestabstände zur Verwendung beim Programmieren der Roboterbewegung; und wenn die Anzahl von Bildpunkten in allen endgültigen Bildern kleiner ist als der vordefinierte Schwellenwert, Feststellen, dass keine Hindernisse in dem Arbeitsraum vorhanden sind.
  14. Verfahren nach Anspruch 13, wobei das Berechnen eines Abstands von jedem Bildpunkt im endgültigen Bild zu jedem von mehreren Sollpunkten auf dem Roboter das Durchführen einer Prüfung einer Verdeckung umfasst, wobei die Prüfung einer Verdeckung positiv ist, wenn ein Abstand von der Kamera zum Bildpunkt kleiner als ein Abstand von der Kamera zum Sollpunkt ist, und wenn die Prüfung einer Verdeckung positiv ist, der Abstand vom Bildpunkt zum Sollpunkt als ein auf eine Ebene parallel zu einer Kamerabildebene projizierter Abstand berechnet wird.
  15. System zur Berechnung eines Mindestabstands von einem Roboter zu Hindernissen in einem Arbeitsraum des Roboters, wobei das System Folgendes umfasst: eine oder mehrere dreidimensionale (3D) Kameras, die jeweils ein simultanes Bild des Arbeitsraums liefern; und einen Computer im Informationsaustausch mit der einen oder mehreren Kameras, wobei der Computer einen Prozessor und Speicher aufweist, die konfiguriert sind, zum: Durchführen einer Kantenfilterung an jedem der Bilder, was zu einem Kantenbild führt, das nur Bildpunkte enthält, die Kanten von Elementen im Arbeitsraum definieren; Subtrahieren der Roboter- und Hintergrundelemente von jedem der Kantenbilder, was zu einem Bild von Bildpunkten dynamischer Objektkanten führt; Zuweisen eines Tiefenwerts zu jedem Bildpunkt in jedem der Bilder von Bildpunkten dynamischer Objektkanten, um ein endgültiges Bild zu erzeugen, bei dem der Tiefenwert aus Tiefendaten in dem von der Kamera bereitgestellten Bild entnommen wird; wenn eine Anzahl von Bildpunkten in jedem der endgültigen Bilder größer als oder gleich einem vordefinierten Schwellenwert ist, das Berechnen eines Abstands von jedem Bildpunkt im endgültigen Bild zu jedem einer Vielzahl von Sollpunkten auf dem Roboter; Bestimmen eines Roboter-Hindernis-Mindestabstands für jede der Kameras aus den berechneten Abstanden; Auswählen eines Maximums der bestimmten Roboter-Hindernis-Mindestabstände zur Nutzung, wenn mehr als eine Kamera verwendet wird; und wenn die Anzahl von Bildpunkten in allen endgültigen Bildern kleiner als der vordefinierte Schwellenwert ist, Feststellen, dass keine Hindernisse im Arbeitsraum vorhanden sind.
  16. System nach Anspruch 15, wobei der Computer des Weiteren für das Lochfüllen der Tiefendaten konfiguriert ist, bevor jedem Bildpunkt ein Tiefenwert zugewiesen wird, einschließlich Zuweisen eines Tiefenwerts zu Bildpunkten im Bild, denen Tiefendaten fehlen, wobei der Tiefenwert auf der Basis eines Bildpunktes innerhalb eines vordefinierten benachbarten Abstands zugewiesen wird, der einen Tiefenwert aufweist, der der Kamera am nächsten liegt.
  17. System nach Anspruch 15, wobei das Berechnen eines Abstands von jedem Bildpunkt im endgültigen Bild zu jedem einer Vielzahl von Sollpunkten auf dem Roboter das Durchführen einer Prüfung einer Verdeckung umfasst, wobei die Prüfung einer Verdeckung positiv ist, wenn ein Abstand von der Kamera zum Bildpunkt kleiner als ein Abstand von der Kamera zum Sollpunkt ist, und wenn die Prüfung einer Verdeckung positiv ist, der Abstand vom Bildpunkt zum Sollpunkt als ein auf eine Ebene parallel zu einer Kamerabildebene projizierter Abstand berechnet wird.
  18. System nach Anspruch 15, wobei sich die eine oder mehrere Kameras um einen Umfang des Arbeitsraums herum befinden und das Bild von jeder Kamera mit der Kamera aufgenommen wird, die in eine im Wesentlichen horizontale Richtung gerichtet ist.
  19. System nach Anspruch 15, des Weiteren umfassend eine Robotersteuereinheit im Informationsaustausch mit dem Computer und konfiguriert, um den Roboter-Hindernis-Mindestabstand in einem Roboterbewegungsplanungsalgorithmus mit Kollisionsvermeidung zu verwenden.
  20. System nach Anspruch 15, wobei der Computer eine Robotersteuereinheit ist, die so konfiguriert ist, dass sie den Roboter-Hindernis-Mindestabstand in einem Roboterbewegungsplanungsalgorithmus mit Kollisionsvermeidung verwendet.
DE102022102562.4A 2021-11-29 2022-02-03 Effektives berechnungsverfahren des mindestabstands zu dynamischen objekten Pending DE102022102562A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/456,771 2021-11-29
US17/456,771 US20230166406A1 (en) 2021-11-29 2021-11-29 Effective calculation method of the minimum distance to dynamic objects

Publications (1)

Publication Number Publication Date
DE102022102562A1 true DE102022102562A1 (de) 2023-06-01

Family

ID=86317047

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022102562.4A Pending DE102022102562A1 (de) 2021-11-29 2022-02-03 Effektives berechnungsverfahren des mindestabstands zu dynamischen objekten

Country Status (4)

Country Link
US (1) US20230166406A1 (de)
JP (1) JP2023079994A (de)
CN (1) CN116188567A (de)
DE (1) DE102022102562A1 (de)

Also Published As

Publication number Publication date
US20230166406A1 (en) 2023-06-01
CN116188567A (zh) 2023-05-30
JP2023079994A (ja) 2023-06-08

Similar Documents

Publication Publication Date Title
DE102015002760B4 (de) Robotersimulationssystem, das den Prozess des Entnehmens von Werkstücken simuliert
EP2767925B1 (de) Verfahren zur Erkennung von Objekten in einem Lager und/oder zur räumlichen Orientierung in einem Lager
DE102014102943B4 (de) Robotersystem mit Funktionalität zur Ortsbestimmung einer 3D- Kiste
DE102013012224B4 (de) Vorrichtung zum Entnehmen von lose gespeicherten Gegenständen durch einen Roboter
DE112018005656T5 (de) Bordinterne Umgebungserkennungsvorrichtung
DE102014209137B4 (de) Verfahren und Vorrichtung zur Kalibrierung eines Kamerasystems eines Kraftfahrzeugs
DE102015121387B4 (de) Hinderniserkennungseinrichtung und Hinderniserkennungsverfahren
DE112017006018T5 (de) Mobile robotische vorrichtung, die unstrukturierte daten von innenumgebungen verarbeitet, um räume in einer einrichtung zu segmentieren, um die bewegung der vorrichtung durch die einrichtung zu verbessern
DE102016124978A1 (de) Virtuelle Repräsentation einer Umgebung eines Kraftfahrzeugs in einem Fahrerassistenzsystem mit mehreren Projektionsflächen
DE102021201369A1 (de) Verfahren und System zur Bestimmung einer Okklusion bzw. Verdeckung innerhalb eines Kamerasichtfelds
DE102018212049A1 (de) Verfahren zur dreidimensionalen bildlichen Rekonstruktion eines Fahrzeugs
DE102012024878A1 (de) Verfahren zum Detektieren eines Zielobjekts anhand eines Kamerabilds durch Clusterbildung aus mehreren benachbarten Bildzellen, Kameraeinrichtung und Kraftfahrzeug
DE102018100667A1 (de) Computersichtvorfusion und räumlich-zeitliche Verfolgung
DE102018101023B3 (de) Verfahren zur Abstandsmessung mittels trajektoriebasierter Triangulation
DE4113992A1 (de) Verfahren zur automatischen dreidimensionalen ueberwachung von gefahrenraeumen
EP3293971B1 (de) Verfahren zur nachführung eines bildausschnitts
DE102022102562A1 (de) Effektives berechnungsverfahren des mindestabstands zu dynamischen objekten
DE102020003662A1 (de) Verfahren zur Bestimmung einer Eigenbewegung mittels Lidar-Odometrie und Fahrzeug
DE102019120022A1 (de) Flurförderzeug mit einer Objekterkennung
DE102020204677B4 (de) Trackingsystem und Computerprogramm zur Kompensation von Sichtschatten bei der Nachverfolgung von Messobjekten
EP3663800B1 (de) Verfahren zur objekterfassung mit einer 3d-kamera
WO2008154989A1 (de) Verfahren zur optimierung eines stereoskopischen bildes
DE102022130692B3 (de) Computerimplementiertes Verfahren zur Erstellung eines dreidimensionalen virtuellen Modells einer Umgebung eines Kraftfahrzeugs
DE102019102561A1 (de) Verfahren zum Erkennen einer Pflastermarkierung
DE102022112318B3 (de) Verfahren zur Ermittlung einer Ausdehnungsinformation eines Zielobjekts, Kraftfahrzeug, Computerprogramm und elektronisch lesbarer Datenträger