DE102022130652A1 - Anlernen eines roboters durch vorführen mit visualservoing - Google Patents

Anlernen eines roboters durch vorführen mit visualservoing Download PDF

Info

Publication number
DE102022130652A1
DE102022130652A1 DE102022130652.6A DE102022130652A DE102022130652A1 DE 102022130652 A1 DE102022130652 A1 DE 102022130652A1 DE 102022130652 A DE102022130652 A DE 102022130652A DE 102022130652 A1 DE102022130652 A1 DE 102022130652A1
Authority
DE
Germany
Prior art keywords
workpiece
hand
geometric features
robot
ibvs
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
DE102022130652.6A
Other languages
English (en)
Inventor
Kaimeng Wang
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 DE102022130652A1 publication Critical patent/DE102022130652A1/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/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • 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
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35464Glove, movement of fingers
    • 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/20112Image segmentation details
    • G06T2207/20132Image cropping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Geometry (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

Ein Verfahren zum Anlernen und Steuern eines Roboters zum Durchführen eines Vorgangs auf der Grundlage einer menschlichen Demonstration mit Bildern von einer Kamera. Das Verfahren umfasst eine Vorführphase, in der eine Kamera eine menschliche Hand erfasst, die ein Werkstück greift und bewegt, um eine grobe Trajektorie der robotergestützten Bewegung des Werkstücks zu definieren. Während der Vorführphase erfasste Linienmerkmale oder andere geometrische Merkmale auf dem Werkstück werden bei einem bildbasierten Visual-Servoing- (IBVS) -Ansatz verwendet, bei dem eine endgültige Platzierungsposition des Werkstücks verfeinert wird, wobei die IBVS-Regelung die Werkstückplatzierung während der Endannäherung durch den Roboter übernimmt. Die Erkennung von sich bewegenden Objekten wird verwendet, um sowohl die Objekt- als auch die Handposition in einem 2D-Bildraum automatisch zu lokalisieren und dann Linienmerkmale auf dem Werkstück zu identifizieren, indem Linienmerkmale, die zur Hand gehören, unter Verwendung der Erkennung von Keypoints der Hand entfernt werden.

Description

  • STAND DER TECHNIK
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich auf das Gebiet der Programmierung von Industrierobotern und insbesondere auf ein Verfahren zum Programmieren eines Roboters zum Durchführen eines Vorgangs zum Aufnehmen/Bewegen/Platzieren eines Werkstücks, das eine Vorführphase umfasst, in der eine Kamera eine menschliche Hand erfasst, die das Werkstück greift und bewegt, um eine grobe Trajektorie zu definieren, und bei dem während der Vorführphase erfasste geometrische Merkmale auf dem Werkstück bei einer Verfeinerung der endgültigen Platzierungsposition des Werkstücks durch bildbasiertes Visual-Servoing verwendet werden.
  • Erörterung des Standes der Technik
  • Die Verwendung von Industrierobotern zur wiederholten Durchführung eines breiten Spektrums von Herstellungs-, Montage- und Materialbewegungstätigkeiten ist gut bekannt. Allerdings war es unintuitiv, zeitaufwändig und/oder kostspielig, einem Roboter mit herkömmlichen Verfahren beizubringen, selbst einen ziemlich einfachen Vorgang auszuführen, wie etwa das Aufnehmen eines Werkstücks in einer zufälligen Position und Orientierung auf einem Förderband und das Bewegen des Werkstücks zu einem Behälter oder einem zweiten Förderband.
  • Herkömmlicherweise wurde Robotern von einem menschlichen Bediener unter Verwendung eines Lehrgeräts beigebracht, Pick-and-Place-Vorgänge der oben beschriebenen Art auszuführen. Das Lehrgerät wird vom Bediener dazu verwendet, den Roboter anzuweisen, inkrementale Bewegungen - wie etwa „Schritt in x-Richtung“ oder „Greifer um die lokale z-Achse drehen“ - auszuführen, bis sich der Roboter und sein Greifer in der richtigen Position und Orientierung befinden, um das Werkstück zu greifen. Dann werden die Roboterkonfiguration sowie die Position und die Pose des Werkstücks von der Robotersteuerung aufgezeichnet, um für den Vorgang „Aufnehmen“ verwendet zu werden. Ähnliche Lehrgerät-Befehle werden dann zum Definieren der Vorgänge „Bewegen“ und „Platzieren“ verwendet. Die Verwendung eines Lehrgeräts zum Programmieren eines Roboters erweist sich jedoch häufig als unintuitiv, fehleranfällig und zeitaufwändig, insbesondere bei unerfahrenen Bedienern.
  • Eine andere bekannte Technik, um einem Roboter beizubringen, einen Pick-and-Place-Vorgang auszuführen, besteht in der Verwendung eines Bewegungserfassungssystems. Ein Bewegungserfassungssystem besteht aus mehreren Kameras, die um eine Arbeitszelle aufgestellt sind, um Positionen und Orientierungen eines menschlichen Bedieners und eines Werkstücks aufzuzeichnen, während der Bediener das Werkstück handhabt. Der Bediener und/oder das Werkstück kann/können mit eindeutig erkennbaren Markierungspunkten versehen sein, damit wesentliche Stellen an dem Bediener und dem Werkstück in den Kamerabildern genauer erkannt werden, wenn der Vorgang ausgeführt wird. Derartige Bewegungserfassungssysteme sind jedoch teuer und es ist schwierig und zeitaufwändig, sie so einzurichten und präzise zu konfigurieren, dass die aufgezeichneten Positionen genau sind.
  • Das Anlernen eines Roboters durch menschliche Demonstration ist ebenfalls bekannt, aber es kann ihm an Positionsgenauigkeit mangeln, die für die präzise Platzierung des Werkstücks erforderlich ist, wie sie für Anwendungen wie Einbau und Montage von Bauelementen benötigt wird.
  • In Anbetracht der oben beschriebenen Umstände besteht ein Bedarf an einem verbesserten Roboter-Anlern-Verfahren, das für einen menschlichen Bediener einfach und intuitiv auszuführen ist und die für robotergestützte Einbau- und Montagevorgänge erforderliche Präzision aufweist.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Entsprechend der Lehre der vorliegenden Offenbarung wird ein auf der menschlichen Demonstration mit Bildern von einer Kamera basierendes Verfahren zum Anlernen und Steuern eines Roboters zum Ausführen eines Vorgangs offenbart. Das Verfahren umfasst eine Vorführphase, in der eine Kamera eine menschliche Hand erfasst, die ein Werkstück greift und bewegt, um eine grobe Trajektorie der robotergestützten Bewegung des Werkstücks zu definieren. Während der Vorführphase erfasste Linienmerkmale oder andere geometrische Merkmale auf dem Werkstück werden bei einem bildbasierten Visual-Servoing- (IBVS) -Ansatz verwendet, bei dem eine endgültige Platzierungsposition des Werkstücks verfeinert wird, wobei die IBVS-Regelung die Werkstückplatzierung während der Endannäherung durch den Roboter übernimmt. Die Erkennung von sich bewegenden Objekten wird verwendet, um sowohl die Objekt- als auch die Handposition in einem 2D-Bildraum automatisch zu lokalisieren und dann Linienmerkmale auf dem Werkstück zu identifizieren, indem Linienmerkmale, die zur Hand gehören, unter Verwendung der Erkennung von Keypoints der Hand entfernt werden.
  • Weitere Merkmale der hier offenbarten Vorrichtungen und Verfahren werden aus der nachstehenden Beschreibung und den beigefügten Patentansprüchen in Verbindung mit den begleitenden Zeichnungen ersichtlich.
  • Figurenliste
    • 1 ist eine Darstellung davon, wie Bilder einer menschlichen Hand ausgewertet werden, um eine entsprechende Position und Orientierung eines fingerartigen Robotergreifers gemäß einer Ausführungsform der vorliegenden Offenbarung zu bestimmen;
    • 2 ist eine Darstellung eines Systems und von Schritten, um einem Roboter gemäß einer Ausführungsform der vorliegenden Offenbarung unter Verwendung von Kamerabilden einer menschlichen Hand und eines Werkstücks beizubringen, einen Pick-and-Place-Vorgang auszuführen;
    • 3 ist eine Darstellung eines Systems und von Schritten für einen Roboter zum Ausführen eines Pick-and-Place-Vorgangs gemäß einer Ausführungsform der vorliegenden Offenbarung unter Verwendung von Kamerabilden eines Werkstücks und einer Programmierung, die zuvor durch Vorführen mit einer menschlichen Hand gelehrt wurde;
    • 4 ist eine Darstellung, die ein Grundkonzept eines Verfahrens zum Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing gemäß einer Ausführungsform der vorliegenden Offenbarung veranschaulicht;
    • 5A ist ein Bild eines Werkstücks, das von einem menschlichen Vorführer in eine Baugruppe eingebaut wird, und 5B ist eine zugeschnittene Version des Bilds von 5A, das Linienmerkmale zeigt, die für das bildbasierte Visual-Servoing gemäß einer Ausführungsform der vorliegenden Offenbarung identifiziert wurden;
    • 6 ist eine Darstellung, die Details eines Verfahrens zum Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt; und
    • 7 ist ein Flussdiagramm des Verfahrens zum Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing, das eine Vorführphase und eine Phase der Ausführung durch einen Roboter gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Die nachstehende Erörterung der Ausführungsformen der Offenbarung, die das Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing betrifft, ist nur beispielhafter Natur und soll die offenbarten Vorrichtungen und Verfahren oder ihre Anwendungen und Verwendungen in keiner Weise beschränken.
  • Die Verwendung von Industrierobotern für eine Vielzahl von Herstellungs-, Montage- und Materialbewegungstätigkeiten ist gut bekannt. Eine bekannte Art einer Robotertätigkeit ist gelegentlich als „Aufnehmen, Bewegen und Platzieren“ bekannt, wobei ein Roboter ein Teil oder Werkstück von einem ersten Ort aufnimmt, das Teil bewegt und es an einem zweiten Ort platziert. Der erste Ort kann ein Förderband sein, auf dem zufällig ausgerichtete Teile strömen, wie etwa Teile, die gerade aus einer Form genommen wurden. Der zweite Ort kann ein anderer Förderer sein, der zu einem anderen Arbeitsvorgang führt, oder es kann ein Versandcontainer sein, doch in jedem Fall muss das Teil in einer bestimmten Position und ausgerichtet in einer bestimmten Pose an dem zweiten Ort platziert werden.
  • Zum Ausführen von Tätigkeiten zum Aufnehmen, Bewegen und Platzieren der oben beschriebenen Art wird in der Regel eine Kamera verwendet, um die Position und Orientierung von ankommenden Teilen zu bestimmen, und einem Roboter muss beigebracht werden, das Teil in einer bestimmten Weise unter Verwendung des Fingergreifers oder eines Magnet- oder Sauggreifers zu greifen. Herkömmlicherweise wurde dem Roboter von einem menschlichen Bediener unter Verwendung eines Lehrgeräts beigebracht, wie er das Teil entsprechend der Orientierung des Teils greifen muss. Das Lehrgerät wird vom Bediener dazu verwendet, den Roboter anzuweisen, inkrementale Bewegungen - wie etwa „Schritt in x-Richtung“ oder „Greifer um die lokale z-Achse drehen“ - auszuführen, bis sich der Roboter und sein Greifer in der richtigen Position und Orientierung befinden, um das Werkstück zu greifen. Dann werden die Roboterkonfiguration sowie die Position und die Pose des Werkstücks von der Robotersteuerung aufgezeichnet, um für den Vorgang „Aufnehmen“ verwendet zu werden. Ähnliche Lehrgerät-Befehle werden dann zum Definieren der Vorgänge „Bewegen“ und „Platzieren“ verwendet. Die Verwendung eines Lehrgeräts zum Programmieren eines Roboters erweist sich jedoch häufig als unintuitiv, fehleranfällig und zeitaufwändig, insbesondere bei unerfahrenen Bedienern.
  • Eine andere bekannte Technik, um einem Roboter beizubringen, einen Vorgang zum Aufnehmen, Bewegen und Platzieren auszuführen, besteht in der Verwendung eines Bewegungserfassungssystems. Ein Bewegungserfassungssystem besteht aus mehreren Kameras, die um eine Arbeitszelle aufgestellt sind, um Positionen und Orientierungen eines menschlichen Bedieners und eines Werkstücks aufzuzeichnen, während der Bediener das Werkstück handhabt. Der Bediener und/oder das Werkstück kann/können mit eindeutig erkennbaren Markierungspunkten versehen sein, damit wesentliche Stellen an dem Bediener und dem Werkstück in den Kamerabildern genauer erkannt werden, wenn der Vorgang ausgeführt wird. Derartige Bewegungserfassungssysteme sind jedoch teuer und es ist schwierig und zeitaufwändig, sie so einzurichten und präzise zu konfigurieren, dass die aufgezeichneten Positionen genau sind.
  • Bekannt ist auch das Anlernen eines Roboters durch menschliche Demonstration, bei dem eine oder mehr Kameras Bilder der menschlichen Hand (Hände) erfassen, die das Werkstück von einer Anfangsposition (Aufnahmeposition) zu einer Zielposition (Platzierungsposition) bewegt (bewegen). Verfahren zum Anlernen eines Roboters durch menschliche Demonstration wurden in der am 4.8.2020 eingereichten US-Patentanmeldung Nr. 16/843,185 mit dem Titel „ROBOT TEACHING BY HUMAN DEMONSTRATION“ (TEACHEN EINES ROBOTERS DURCH MENSCHLICHE DEMONSTRATION) offenbart, die gemeinsam mit der vorliegenden Anmeldung übertragen wurde und hierin in ihrer Gesamtheit durch Bezugnahme aufgenommen wird. Die oben erwähnte Anmeldung wird im Folgenden als „die `185er Anmeldung“ bezeichnet.
  • Die Verfahren der `185er Anmeldung funktionieren gut, wenn beim Platzieren des Werkstücks keine feine Präzision erforderlich ist. Bei Anwendungen mit präziser Platzierung, wie etwa dem robotergestützten Einbau eines Bauelements in eine Baugruppe, kann die Unsicherheit der Greifpose des Werkstücks in der Hand jedoch Probleme verursachen. Daher bedarf es eines Verfahrens zur Verbesserung der Genauigkeit der Werkstückplatzierung. Die vorliegende Offenbarung bewerkstelligt dies durch Verwendung des bildbasierten Visual-Servoing (IBVS) zum Verfeinern der Werkstückplatzierung an einer Zielposition in einer Baugruppe, und sie verbessert den IBVS-Ansatz durch die automatische Identifizierung der zu dem Werkstück gehörenden Linienmerkmale um ein Weiteres.
  • 1 ist eine Darstellung davon, wie Bilder einer menschlichen Hand ausgewertet werden, um eine entsprechende Position und Orientierung eines fingerartigen Robotergreifers zu bestimmen, wie in der '185er Anmeldung offenbart und bei einer Ausführungsform der vorliegenden Offenbarung verwendet wird. Eine Hand 110 hat einen Hand-Koordinatenrahmen 120, der als daran festgemacht definiert ist. Die Hand 110 umfasst einen Daumen 112 mit einer Daumenspitze 114 und einen Zeigefinger 116 mit einer Zeigefingerspitze 118. Es können auch andere Punkte auf dem Daumen 112 und dem Zeigefinger 116 in den Kamerabildern identifiziert werden, wie etwa Stellen des Ansatzes des Daumens 112 und des Zeigefingers 116 und des ersten Knöchels des Daumens 112 und des Zeigefingers 116 usw.
  • Ein Punkt 122 befindet sich in der Mitte zwischen dem Ansatz des Daumens 112 und dem Ansatz des Zeigefingers 116, wobei der Punkt 122 als der Ursprung des Hand-Koordinatenrahmens 120 definiert ist. Andere reale oder abgeleitete strukturelle Punkte der Hand 110 können als der Ursprungspunkt 122 definiert werden. Die Orientierung des Hand-Koordinatenrahmens 120 kann unter Verwendung einer beliebigen Konvention festgelegt werden, die für eine Korrelation mit der Orientierung des Robotergreifers geeignet ist. Beispielsweise kann die y-Achse des Hand-Koordinatenrahmens 120 als senkrecht zur Ebene des Daumens 112 und des Zeigefingers 116 definiert werden (wobei diese Ebene durch die Punkte 114, 118 und 122 definiert wird). Dementsprechend liegen die Achsen x und z in der Ebene des Daumens 112 und des Zeigefingers 116. Ferner kann die z-Achse als den Winkel, der durch den Daumen 112 und den Zeigefinger 116 gebildet wird (der Winkel 114-122-118), halbierend definiert werden. Die Orientierung der x-Achse kann dann durch die Rechte-Hand-Regel anhand der bekannten Achsen y und z gefunden werden. Wie oben erwähnt, sind die hier definierten Konventionen nur beispielhafter Natur und es können stattdessen andere Orientierungen des Koordinatenrahmens verwendet werden. Der Punkt ist, dass eine Koordinatenrahmenposition und -orientierung auf der Grundlage von wesentlichen erkennbaren Punkten auf der Hand definiert werden kann und dass die Koordinatenrahmenposition und -orientierung mit einer Robotergreiferposition und -orientierung korreliert werden kann.
  • Eine Kamera (nicht in 1 dargestellt; später erörtert) kann verwendet werden, um Bilder der Hand 110 bereitzustellen, wobei die Bilder dann ausgewertet werden können, um die räumlichen Positionen (beispielsweise in einem Arbeitszellenkoordinatenrahmen) des Daumens 112 und des Zeigefingers 116, einschließlich der Daumenspitze 114 und der Zeigefingerspitze 118 mitsamt der Knöchel, und somit die Lage des Ursprungs 122 und die Orientierung des Hand-Bezugsrahmens 120 zu bestimmen. In 1 ist die Position und Orientierung des Hand-Bezugsrahmens 120 mit einem Greifer-Koordinatenrahmen 140 eines Greifers 150 korreliert, der an einem Roboter 160 befestigt ist. Der Greifer-Koordinatenrahmen 140 hat einen Ursprung 142, der dem Ursprung 122 des Hand-Bezugsrahmens 120 entspricht, und Punkte 144 und 146, die der Zeigefingerspitze 118 beziehungsweise der Daumenspitze 114 entsprechen. Somit befinden sich die zwei Finger des fingerartigen Greifers 150 in der xz-Ebene des Greifer-Koordinatenrahmens 140, wobei die z-Achse den Winkel 146-142-144 halbiert.
  • Der Ursprung 142 des Greifer-Koordinatenrahmens 140 kann auch als der Werkzeugmittelpunkt des Roboters 160 definiert werden. Der Werkzeugmittelpunkt ist ein Punkt, dessen Position und Orientierung der Robotersteuerung bekannt ist, wobei die Steuerung Befehlssignale für den Roboter 160 bereitstellen kann, um den Werkzeugmittelpunkt und seinen zugeordneten Koordinatenrahmen (den Greifer-Koordinatenrahmen 140) in eine festgelegte Position und Orientierung zu bewegen.
  • 1 veranschaulicht, wie Bilder einer Hand einem fingerartigen Robotergreifer entsprechen. Ähnliche Verfahren können verwendet werden, um die Hand eines menschlichen Vorführers mit einer Position und Orientierung eines Sauggreifers oder anderer Greiferarten zu korrelieren.
  • 2 ist eine Darstellung eines Systems 200 und von Schritten, um einem Roboter unter Verwendung von Kamerabilden einer menschlichen Hand beizubringen, einen Pick-and-Place-Vorgang auszuführen, wie in der '185er Anmeldung offenbart und bei einer Ausführungsform der vorliegenden Offenbarung verwendet. Die in 2 dargestellte Anlern-Phase wird in einer Arbeitszelle 202 ausgeführt. Die Arbeitszelle 202 umfasst eine Kamera 210 zum Aufnehmen von Bildern der Anlern-Schritte. Die Kamera 210 kann eine dreidimensionale (3D) Kamera oder eine zweidimensionale (2D) Kamera sein, solange sie in der Lage ist, Koordinaten bestimmter Punkte und Merkmale der Hand zu erkennen, wie etwa Fingerspitze, Daumenspitze und Knöchelgelenke, die zuvor erörtert wurden. Techniken zur Verwendung einer 3D-Kamera zum Erkennen einer Handpose und verschiedene Techniken zur Verwendung einer 2D-Kamera zum Erkennen einer Handpose werden in der '185er Anmeldung im Einzelnen erörtert. Die Kamera 210 ist dazu eingerichtet, Bilder des Teils der Arbeitszelle 202 bereitzustellen, in dem die Teilebewegungstätigkeit stattfindet (alle unten erörterten Schritte (①-③).
  • Die Kamera 210 kommuniziert mit einer Robotersteuerung 220. Die Steuerung 220 wertet Bilder der Anlern-Schritte aus und erzeugt Roboterprogrammierbefehle, wie unten erörtert, wobei die Roboterprogrammierbefehle verwendet werden, um eine Bewegung eines Roboters, der den Pick-and-Place-Vorgang ausführt, während einer Wiedergabe- oder Ausführungsphase zu steuern. Es könnte auch ein separater Computer zwischen der Kamera 210 und der Steuerung 220 vorgesehen werden, wobei dieser separate Computer Kamerabilder auswerten und der Steuerung 220 eine Greiferposition oder eine Endtrajektorie übermitteln würde. Die Anlern-Phase von 2 besteht aus drei Schritten: in einem Aufnahmeschritt (Schritt ① werden eine Position und eine Pose (Pose ist austauschbare Terminologie für Orientierung) eines Werkstücks bestimmt und es werden eine Position und eine Pose einer Hand bestimmt, die das Werkstück greift; in einem Bewegungsschritt (Schritt ②) wird die Position des Werkstücks und der Hand verfolgt, während das Werkstück von der Aufnahmeposition zu einer Platzierungsposition bewegt wird; in einem Platzierungsschritt (Schritt ③) werden die Position und die Pose des Werkstücks verwendet, um das Werkstück in seiner Zielposition (Platzierungsposition) zu platzieren. Die Schritte werden unten erörtert.
  • In Schritt ① (Aufnahme) werden Kamerabilder verwendet, um eine Position und eine Pose eines Werkstücks 230 zu identifizieren. Wenn Werkstücke auf einem Förderer einströmen, dann wird eine Koordinate (wie etwa z) der Position des Werkstücks 230 gemäß einem Fördererpositionsindex verfolgt. Das in 2 gezeigte Werkstück 230 ist ein einfacher Würfel; doch kann jede Art oder Form des Werkstücks 230 anhand von Kamerabildern identifiziert werden. Wenn zum Beispiel bekannt ist, dass das Werkstück 230 ein bestimmtes Spritzgussteil ist und eine zufällige Orientierung und Position auf dem Förderer haben kann, können die Bilder von der Kamera 210 ausgewertet werden, um wesentliche Merkmale des Werkstücks 230 zu identifizieren und anhand dieser Merkmale eine Position und Orientierung eines Werkstückkoordinatenrahmens 232 zu bestimmen. Das Werkstück 230 kann auch ein in eine Baugruppe einzubauendes Bauteil sein, wobei das Bauteil in irgendeiner geeigneten Weise (einzeln oder zu mehreren) zur Aufnahme durch den Roboter bereitgestellt wird.
  • Ebenfalls bei Schritt ① (Aufnahme) werden Kamerabilder auch dazu verwendet, eine Position und eine Pose einer Hand 240 zu identifizieren, während sie das Werkstück 230 greift. Die Bilder der Hand 240 werden ausgewertet, um in der oben mit Bezug auf 1 erörterten und in der '185er Anmeldung im Einzelnen beschriebenen Weise (zwei verschiedene Techniken) eine Position und Orientierung eines Hand-Koordinatenrahmens 242 zu bestimmen. Die Hand 240 nähert sich dem Werkstück 230 in einer von Pfeil 244 gezeigten Richtung. Wenn die Daumenspitze das Werkstück 230 wie gezeigt bei Punkt 250 berührt und die Fingerspitze das Werkstück 230 berührt (dieser Berührungspunkt ist nicht sichtbar), speichert die Steuerung 220 alle Daten von diesem bestimmten Bild als die Aufnahmedaten. Die Aufnahmedaten beinhalten eine Position und eine Pose des Werkstücks 230, wie sie durch seinen Werkstück-Koordinatenrahmen 232 definiert werden, und eine Position und eine Pose der Hand 240, wie sie durch ihren Hand-Koordinatenrahmen 242 definiert werden.
  • In Schritt ② (Bewegung) werden Kamerabilder verwendet, um die Position sowohl des Werkstücks 230 als auch der Hand 240 zu verfolgen, während sie sich entlang einer Bahn 260 bewegen. Mehrere Bilder des Werkstücks 230 und der Hand 240 werden aufgezeichnet, um die Bahn 260 zu definieren, die normalerweise keine gerade Linie ist. Beispielsweise kann die Bahn 260 eine lange ausladende Kurve umfassen, oder die Bahn 260 kann das Bewegen des Werkstücks 230 nach oben und über irgendeine Barriere beinhalten. In jedem Fall umfasst die Bahn 260 mehrere Punkte, die die Position (und wahlweise die Orientierung) des Werkstücks 230 und der Hand 240 während des Bewegungsschritts definieren. Dieselben zuvor erörterten Techniken werden verwendet, um die Position und die Pose des Werkstück-Koordinatenrahmens 232 sowie die Position und die Pose des Hand-Koordinatenrahmens 242 anhand der Kamerabilder zu bestimmen. Die Techniken zum Bestimmen der Handpose werden ebenfalls in der '185er Anmeldung im Einzelnen erörtert.
  • In Schritt ③ (Platzierung) werden Kamerabilder verwendet, um die Endposition und -pose des Werkstücks 230 (wie sie durch seinen Werkstück-Koordinatenrahmen 232 definiert wird) zu bestimmen, nachdem es an seiner von Pfeil 270 gezeigten Zielposition platziert wurde. Dieselben zuvor erörterten Techniken werden verwendet, um die Position und die Pose des Werkstück-Koordinatenrahmens 232 anhand der Kamerabilder zu bestimmen. Wenn die Daumenspitze und die Fingerspitze den Kontakt mit dem Werkstück 230 abbrechen, speichert die Steuerung 220 die Werkstück-Koordinatenrahmendaten von diesem bestimmten Bild als die Platzierungsdaten. Die Platzierungsdaten können auch auf der Grundlage des Werkstücks 230, das aufgehört hat, sich zu bewegen - das heißt, dass sich der Werkstück-Koordinatenrahmen 232 für eine Zeitspanne (wie etwa 1 bis 2 Sekunden) in der genau gleichen Position und Pose befindet -, aufgezeichnet und gespeichert werden.
  • Die oben beschriebenen Schritte zum Bestimmen der Handpose anhand der 3D-Koordinaten von Hand-Keypoints können in einer Robotersteuerung wie der Steuerung 220 von 2 oder einem separaten Computer, der mit der Steuerung 220 in Verbindung steht, ausgeführt werden. Verfahren zum Berechnen der 3D-Koordinaten der Hand-Keypoints unter Verwendung verschiedener Arten und einer unterschiedlichen Anzahl von Kameras werden in der '185er Anmeldung offenbart. Während 2 die Schritte für die menschliche Demonstration eines Vorgangs zum Aufnehmen, Bewegen und Platzieren zum Definieren einer Trajektorie in einer Roboter-Anlern-Phase (ohne Einbeziehung eines Roboters) veranschaulicht, wird eine entsprechende Reihe von Schritten von einem Roboter (ohne Einbeziehung eines menschlichen Vorführers) während der unten erörterten Phase der Wiedergabe oder Ausführung durch den Roboter verwendet.
  • 3 ist eine Darstellung eines Systems 300 und von Schritten für die Ausführung eines Pick-and-Place-Vorgangs durch einen Roboter unter Verwendung von Kamerabilden eines Werkstücks und einer zuvor durch Vorführen mit einer menschlichen Hand eingelernten Programmierung, wie in der '185er Anmeldung offenbart und bei einer Ausführungsform der vorliegenden Offenbarung verwendet. Das System 300 befindet sich in einer Arbeitszelle 302, die eine Kamera 330 umfasst, die mit einer Steuerung 340 kommuniziert. Diese Elemente können dieselben sein wie die Arbeitszelle 202, die Kamera 210 und die Steuerung 220, die zuvor in 2 gezeigt wurden, oder nicht. Neben der Kamera 330 und der Steuerung 340 umfasst die Arbeitszelle 302 einen Roboter 310, der mit der Steuerung 340, normalerweise über ein physisches Kabel 342, in Verbindung steht. Der Roboter 310 betätigt einen Greifer 320.
  • Das System 300 ist dazu ausgelegt, die vom menschlichen Bediener in das System 200 eingelernten Aufnahme-, Bewegungs- und Platzierungsvorgänge „wiederzugeben“. Die in den Aufnahme-, Bewegungs- und Platzierungsschritten aufgezeichneten Hand- und Werkstück-Positionsdaten werden verwendet, um wie folgt Roboter-Programmieranweisungen zu erzeugen. Der Roboter 310 positioniert den Greifer 320 in einer Ausgangsposition, wie Fachleuten bekannt ist. Die Kamera 330 identifiziert eine Position und Orientierung eines Werkstücks 350, das sich beispielsweise in einem Behälter mit Teilen befinden kann. Das Werkstück 350 wird in den Positionen 350A und 350C in 3 gezeigt.
  • Aus der oben erörterten Anlern-Norführphase kennt die Steuerung 220 (2) die Position und Orientierung der Hand 240 (und somit, von 1, die Position und Orientierung des Greifers 320) relativ zum Werkstück 350, um das Werkstück 350 richtig zu greifen (der Vorgang „Aufnahme“). Bahn1 wird als Bahn zum Bewegen des Greifers 320 aus der Ausgangsposition zu einer Aufnahmeposition berechnet, die auf der Grundlage der Position und Orientierung des Werkstücks 350 berechnet wurde. Der Aufnahmevorgang erfolgt am Ende der Bahn1. Der Greifer 320 wird als 320A entlang der Bahn1 in Annäherung an die Aufnahmeposition gezeigt, und das Werkstück 350 wird als 350A an der Aufnahmeposition gezeigt.
  • Aus der Anlern-/Vorführphase kennt die Steuerung 220 die Position des Werkstücks 230 (und somit des Werkstücks 350) an mehreren Stellen entlang der Bewegungstrajektorie. Bahn2 wird als Bahn zum Bewegen des Greifers 320A und des Werkstücks 350A von der Aufnahmeposition entlang der Bewegungstrajektorienbahn berechnet. In 3 zeigt eine der Zwischenpositionen längs der Bewegungsbahn den Greifer 320B.
  • Bahn2 endet an der Platzierungsposition, die während der Anlern-/Vorführphase aufgezeichnet wurde. Dies umfasst sowohl eine Position als auch eine Pose (Orientierung) des Werkstücks 350, die dem Werkstück 350C entsprechen. Nachdem der Greifer 320 das Werkstück 350 in der Platzierungsposition und -orientierung platziert hat, gibt der Greifer 320 das Werkstück 350 frei und kehrt über Bahn3 zur Ausgangsposition zurück.
  • Es folgt eine Zusammenfassung der offenbarten Techniken zur Roboterprogrammierung durch menschliche Demonstration, die oben beschrieben wurden:
    • • Eine menschliche Hand wird verwendet, um das Greifen, Bewegen und Platzieren eines Werkstücks in einer Anlern-/Vorführphase vorzuführen.
    • • Kamerabilder der Hand und des Werkstücks werden ausgewertet, um auf der Grundlage von anhand der Kamerabilder bestimmten Keypoints auf der Hand die richtige Pose und Position eines Robotergreifers relativ zum Werkstück zu bestimmen.
    • • Die richtige Pose und Position des Robotergreifers relativ zum Werkstück wird verwendet, um Roboterbewegungsbefehle für eine Aufnahme-Bewegung-Platzierung-Trajektorie auf der Grundlage von Kamerabildern eines Werkstücks während einer Wiedergabe- oder Ausführungsphase zu erzeugen.
  • In der vorliegenden Offenbarung wird die oben im Einzelnen dargelegte Erzeugung der Aufnahme-Bewegung-Platzierung-Trajektorie anhand einer Vorführung durch einen Menschen verwendet, und es werden die Erfassung von IBVS-Daten während der Vorführphase und außerdem die IBVS-Regelung während der Wiedergabe-/Ausführungsphase hinzugefügt, um die präzise Werkstückplatzierung zu bieten, die für Tätigkeiten wie die robotergestützte Montage von Bauelementen benötigt wird.
  • 4 ist eine Darstellung, die ein Grundkonzept eines Verfahrens zum Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing (IBVS) gemäß einer Ausführungsform der vorliegenden Offenbarung veranschaulicht. In Kasten 410 wird die menschliche Demonstration der Aufnahme, Bewegung und Platzierung des Werkstücks mit Kameraüberwachung ausgeführt, wie in 2 dargestellt. In Kasten 420 wird die Aufnahme-Bewegung-Platzierung-Trajektorie gezeigt, wie sie anhand der Auswertung der Kamerabilder der menschlichen Demonstration bestimmt wurde. Eine grobe Trajektorie 422 stellt die tatsächliche Bewegung der Hand (den Koordinatenrahmen, der den Robotergreifer repräsentiert) im 3D-Raum dar, die viele kleine wacklige Bewegungen und ungenaue Bewegungen umfasst, die typisch für menschliche Demonstrationen sind. Eine verfeinerte Trajektorie 424 wird anhand der groben Trajektorie 422 berechnet, indem beispielsweise von einer Aufnahmeposition gerade nach oben bis zu einer maximalen Höhe, horizontal auf der maximalen Höhe bis zu einem Punkt direkt über der Platzierungsposition und gerade nach unten zur Platzierungsposition vorangeschritten wird.
  • Die Aufnahme-Bewegung-Platzierung-Trajektorie von Kasten 420 - vorzugsweise die verfeinerte Trajektorie 424 - wird in Kasten 430 von einem Roboter (nicht dargestellt) in der Wiedergabe- oder Ausführungsphase verwendet. Dies wurde ausführlich beschrieben und in 3 dargestellt. Anstelle der Verwendung der Trajektorie 424 zum Platzieren des Werkstücks in seiner Endposition wird in der vorliegenden Offenbarung eine IBVS-Verfolgung in einem Endannäherungsabschnitt 432 der Trajektorie 424 hinzugefügt. Bei der IBVS-Verfolgung werden geometrische Merkmale des Werkstücks in Kamerabildern der Ausführung durch den Roboter detektiert und die tatsächlichen Positionen der geometrischen Merkmale mit Ziel- oder Soll-Positionen verglichen, und die Robotersteuerung verwendet Ausgangssignale von der IBVS-Verfolgungsberechnung, um die Endannäherungsbewegungen des Roboters und des Greifers und somit die endgültige Platzierung des Werkstücks präzise zu steuern. Details der IBVS-Berechnungen und Verbesserungen des Gesamtverfahrens zur Verbesserung der Zuverlässigkeit werden unten erörtert.
  • Das bildbasierte Visual-Servoing (IBVS) ist eine Technik, bei der aus einem Vision-Sensor extrahierte Rückkopplungsinformationen (visuelle Rückkopplung) zum Steuern der Bewegung eines Roboters verwendet werden. Beim IBVS wird ein Steuersignal auf der Grundlage einer Abweichung zwischen tatsächlichen Positionen und Zielpositionen ausgewählter Merkmale in einer Bildebene berechnet. Das IBVS überwindet Probleme mit Kalibrierungsfehlern und Tiefengenauigkeit, die häufig bei Robotersteuerungsverfahren auftreten, bei denen 3D-Kamera-Daten verwendet werden.
  • Das grundlegende Konzept des IBVS besteht darin, geometrische Merkmale auf einem Objekt (z.B. einem Werkstück) zu erkennen und die Platzierung des Objekts derart zu führen, dass die geometrischen Merkmale mit vordefinierten Zielpositionen der Merkmale in der Bildebene übereinstimmen. Im einfachsten Fall, in dem das geometrische Merkmal ein Punkt A ist, hat der Punkt A eine Position in x,y-Pixelkoordinaten in einem aktuellen Kamerabild, und eine Zielpunktposition B hat eine andere Position in x,y-Pixelkoordinaten in der Kamerabildebene. Der Roboter bewegt das Objekt, und die Position des Punkts A relativ zur Zielpunktposition B wird in jedem nachfolgenden Kamerabild berechnet, bis der Punkt A mit der Zielpunktposition B übereinstimmt.
  • Die Bewegung des Roboters wird gesteuert, um die Bewegung des Punkts A wie folgt auszuführen. Der 2D- (x,y-Pixel) -Fehler der Position des Punkts A relativ zur Zielpunktposition B wird verwendet, um einen Geschwindigkeitsvektor ΔX im 2D-Bildraum zu berechnen. Eine Jacobi-Matrix J setzt den Bildraum-Geschwindigkeitsvektor ΔX in Beziehung zu einem Geschwindigkeitsvektor Δq im dreidimensionalen kartesischen Raum des Roboters. Die Jacobi-Matrix J ist auf der Grundlage von Kameraprojektionsparametern bekannt. Die Geschwindigkeit im 2D-Bildraum, die Jacobi-Matrix und die Geschwindigkeit im dreidimensionalen kartesischen Raum stehen in folgender Beziehung zueinander: Δ X = J Δ q
    Figure DE102022130652A1_0001
  • Wobei nur der Geschwindigkeitsvektor Δq im dreidimensionalen kartesischen Raum des Roboters unbekannt ist.
  • Um den Geschwindigkeitsvektor Δq im dreidimensionalen kartesischen Raum des Roboters zu berechnen, wird die Gleichung (1) wie folgt umgeordnet: Δ q = J 1 Δ X
    Figure DE102022130652A1_0002
  • Wobei J-1 die Inverse der Jacobi-Matrix J ist.
  • Viele verschiedene Arten von geometrischen Merkmalen auf dem Objekt (Werkstück) können beim IBVS verfolgt werden. Dazu gehören Punkte, Linien, Kreise, andere Ellipsen, Zylinder und sogar unregelmäßige Formen, bei denen ein Positionsfehler über eine Momentberechnung mittels Doppelintegral berechnet werden kann. Im Allgemeinen ist die Verwendung von Punktmerkmalen nicht robust gegenüber Veränderungen einer realen Roboterumgebung. Beispielsweise kann sich eine scheinbare Position eines Punkts in einem Bildraum aufgrund der Lichtverhältnisse ändern, und es kann schwierig sein, verschiedene Merkmalspunkte zu trennen oder zu unterscheiden, weil viele Punktmerkmale auf den meisten Objekten sehr nahe beieinander liegen können. Demgegenüber können IBVS-Berechnungen in Verbindung mit komplexen 2D- und 3D-Formen langwierig werden, und viele Objekte haben keine verwendbaren geometrischen Merkmale wie Kreise und Zylinder. Letztendlich kann die Auswahl der Merkmalstypen so getroffen werden, dass sie am besten zu einem bestimmten Objekt (Werkstück) und einer bestimmten Montageanwendung passen.
  • In einem Beispiel, das ausgiebig unter Verwendung des Verfahrens der vorliegenden Offenbarung getestet wurde, wird ein CPU-Lüfter für eine Computeranordnung analysiert. Der CPU-Lüfter hat eine allgemein quadratische äußere Form (in der Draufsicht) mit einer inneren Mantelfläche (die die Lüfterflügel umgibt) in Form eines Achtecks. Daher eignet sich dieses Teil gut für die Verwendung von Linienmerkmalen für das IBVS. Wie später dargelegt wird, ist es die Aufgabe des Roboters, die CPU-Lüftereinheit aufzunehmen und in das Computergehäuse einzubauen, was die präzise Platzierung der CPU-Lüftereinheit erfordert, um die Stifte und Schlitze auszurichten, die in Eingriff gebracht werden müssen, wenn die CPU-Lüftereinheit in ihren Sitz gedrückt wird.
  • Die Zielpositionen von Linienmerkmalen auf dem Werkstück (z.B. CPU-Lüftereinheit) können während der menschlichen Demonstration der Montage des Bauelements bestimmt werden. Wenn zum Beispiel die Hand an der Position „Platzierung“ aufhört, sich zu bewegen, oder wenn sich die Hand wegbewegt und das Werkstück in den Kamerabildern unbewegt bleibt, ist bekannt, dass sich das Werkstück in der endgültigen Einbauposition befindet, und die Zielpositionen der Linienmerkmale im Bildraum können berechnet werden. Die Bestimmung der Zielpositionen der Linienmerkmale erfolgt nur einmal während der Phase der menschlichen Demonstration und erfordert keine zusätzlichen Schritte für den menschlichen Vorführer - lediglich zusätzliche Berechnungen auf der Grundlage derselben in 2 veranschaulichten Schritte der menschlichen Demonstration.
  • Während der Ausführung durch den Roboter wird die IBVS-Verfolgung aktiviert, wenn sich der Greifer/das Werkstück im Endannäherungsabschnitt 432 der Trajektorie 424 (4) befindet. An diesem Punkt beginnt die Verfolgung der ausgewählten Linienmerkmale auf dem Werkstück in Kamerabildern. Damit die entsprechenden Linienmerkmale in den Bildern zuverlässig und effizient identifiziert werden, ist es hilfreich, zuerst die Kamerabilder zuzuschneiden, um den gesamten statischen Hintergrund zu eliminieren - d.h. alles zu eliminieren, was sich von einem Bild zum nächsten nicht bewegt.
  • Die Grundidee der Erkennung von sich bewegenden Objekten besteht darin, ein Bildhintergrundmodell von einem aktuellen Bild zu subtrahieren, und alle Pixel, bei denen die Differenz größer als ein Schwellenwert ist, werden als Bildvordergrundmaske beibehalten, die repräsentiert, was sich im aktuellen Bild geändert hat. Es ist bekannt, dass das Modellieren des Hintergrunds unter Verwendung einer Methode auf Basis des Gaußschen Mischverteilungsmodells die Robustheit der Erkennung von sich bewegenden Objekten verbessert, wobei eine Gaußsche Verteilung berechnet wird und Pixel, die sich innerhalb einer bestimmten statistischen Distanz vom Mittelwert (wie etwa +/- 2 Sigma) befinden, als nicht verändert identifiziert werden, während Pixel, die außerhalb der vordefinierten statistischen Distanz liegen, als verändert identifiziert werden.
  • Die Erkennung von sich bewegenden Objekten kann aus 2D-Rot-Grün-Blau- (RGB) -Bilddaten oder aus Tiefendaten von einer 3D-Kamera berechnet werden. In einigen Umgebungen leiden RGB-Bilddaten unter Problemen mit Schatten, die von der Hand des menschlichen Vorführers oder vom Werkstück geworfen werden. Die Schatten erscheinen als sich bewegende Objekte, wodurch dem auszuwertenden zugeschnittenen Bereich unnötig zusätzlicher Bildraum hinzugefügt wird. Bei Tiefendaten gibt es keine Probleme wegen Schatten, doch sind sie oft verrauscht mit vielen kleinen Flecken oder Pixelgruppen, die sich scheinbar von einem Bild zum nächsten verändert haben. Bei einer bevorzugten Ausführungsform wird die Erkennung von sich bewegenden Objekten an RGB-Daten und Tiefendaten separat für jeden Bildzeitschritt ausgeführt, und die sowohl in den RGB-Daten als auch den Tiefendaten (in einer „UND“-Berechnung) als sich bewegend identifizierten Pixel werden verwendet, um die Begrenzung des Bildzuschnitts zu definieren. Es hat sich gezeigt, dass diese Technik gut funktioniert, um ein zugeschnittenes Bild bereitzustellen, das die menschliche Hand und das Objekt/Werkstück enthält, aber nicht die Schatten oder Rauschen.
  • Eine andere Technik, von der sich gezeigt hat, dass sie beim Verbessern der Effizienz und Robustheit der IBVS-Verfolgung hilfreich ist, besteht darin, Linienmerkmale auf der Hand des menschlichen Vorführers zu entfernen, nachdem das Bild unter Verwendung der Erkennung von sich bewegenden Objekten zugeschnitten wurde. Dies kann durch Nutzung der Handerkennungstechniken erfolgen, die in dargestellt und in der '185-Anmeldung ausführlich beschrieben werden. Nachdem wesentliche strukturelle Punkte (z.B. Knöchel) der Finger und des Daumens in einem Bild identifiziert wurden, kann insbesondere die Kenntnis der Handposition in dem Bild herangezogen werden, um Linienmerkmale auf der Hand in zwei Schritten zu entfernen. In einem ersten Schritt werden Linienmerkmale, die sich zwischen dem Zeigefinger und dem kleinen Finger der Hand befinden, aus dem zugeschnittenen Bild entfernt. Beim ersten Schritt können möglicherweise viele Linienmerkmale eliminiert werden, die den Rändern der Finger zugeordnet sind, die bei der IBVS-Positionierung des Objekts (CPU-Lüfter) klarerweise nicht nützlich sind. In einem zweiten Schritt werden Linienmerkmale entfernt, die innerhalb einer Breitentoleranz (δ) des Zeigefingers oder des Daumens liegen. Die Idee des zweiten Schritts besteht darin, Linienmerkmale zu entfernen, die den Rändern des Zeigefingers selbst und des Daumens selbst zugeordnet sind. Wenn beispielsweise eine Linie in einem Bild erkannt wird und diese Linie innerhalb einer Abstandstoleranz der Mittellinie des Zeigefingers, die durch die Gelenk-Keypoints (das heißt, d < δ) definiert ist, liegt, dann wird diese Linie bei den IBVS-Berechnungen nicht berücksichtigt. Dasselbe Konzept wird auf Linien nahe dem Daumen im zweiten Schritt angewendet. Das Entfernen von Linienmerkmalen auf der Hand beschleunigt die IBVS-Berechnungen bei den zugeschnittenen Bildern, da die entfernten Linien nicht evaluiert werden müssen, um zu bestimmen, ob sie zu den Linien auf dem Objekt (CPU-Lüfter) gehören, die für die IBVS-basierte Platzierung des Objekts verfolgt werden müssen.
  • 5A ist ein Bild 500 eines Werkstücks, das von einem menschlichen Vorführer in eine Baugruppe eingebaut wird. Das Werkstück (CPU-Lüfter) wurde von der Hand des Vorführers aus einer durch einen Kasten 510 angezeigten Position seitab der Baugruppe (Computergehäuse) aufgenommen. Das Werkstück wurde dann bewegt und in seiner Position im Computergehäuse platziert, einschließlich des Ausrichtens von elektrischen Steckverbindern und mechanischen Merkmalen wie Stiften/Löchern. Das Werkstück wird in einem Kasten 520 in seiner endgültigen Einbauposition gezeigt. Wie oben erörtert, stellt die Phase der menschlichen Demonstration die grundlegende Aufnahme-Bewegung-Platzierung-Trajektorie des Greifers und des Werkstücks bereit, und sie bietet auch die Möglichkeit, während der Werkstückbewegung Linienmerkmalsdaten zu erfassen und die Soll- oder ZielPositionen der Linienmerkmale zu identifizieren, wenn das Werkstück in seine endgültige Einbauposition eingefügt wird.
  • 5B ist ein Bild 550, das eine zugeschnittene Version des Bilds von 5A ist und die Linienmerkmale zeigt, die für das bildbasierte Visual-Servoing gemäß einer Ausführungsform der vorliegenden Offenbarung identifiziert wurden. Das Bild 550 wurde unter Verwendung von Techniken zur Erkennung von sich bewegenden Objekten, wie oben beschrieben, zugeschnitten, was dazu führt, dass der zugeschnittene Abschnitt des Bilds 500 im Wesentlichen nur die Hand des Vorführers und das Werkstück (CPU-Lüfter) enthält. Nachdem es wie gezeigt zugeschnitten wurde, werden die der Hand des Vorführers zugeordneten Linienmerkmale wie oben beschrieben entfernt. Dies beinhaltet das Entfernen (Übergehen) aller Linienmerkmale, die sich zwischen dem Zeigefinger und dem kleinen Finger der Hand befinden, und das Entfernen (Übergehen) aller Linienmerkmale innerhalb eines Toleranzabstands des Daumens oder Zeigefingers der Hand. Linienmerkmale, die in dem zugeschnittenen Bild 550 verbleiben, werden für die IBVS-Verfolgung verwendet, wie zuvor erörtert. Im Bild 550 sind Linien 560, 562, 564 und 566 identifiziert, die alle geometrische Merkmale des Außenrahmens und der Ummantelung des CPU-Lüfters sind. Dies ist genau die Art von geometrischen Merkmalen, die für die IBVS-Verfolgung benötigt werden.
  • Bilder werden zugeschnitten und ausgewertet und geometrische Merkmalsdaten werden während der gesamten in 5A gezeigten Phase der menschlichen Demonstration erfasst, und die Ziel- oder Soll-Positionen der geometrischen Merkmale (z.B. der Linien 560-566) werden identifiziert, wenn die Hand und das Werkstück aufhören, sich zu bewegen, und sich das Werkstück in seiner endgültigen Einbauposition befindet, wie in 5B gezeigt. Die während der menschlichen Demonstration erfassten Linienmerkmalsdaten werden dann, wie unten erörtert, für die IBVS-Verfolgung während der Phase der Wiedergabe oder Ausführung durch den Roboter verwendet.
  • 6 ist eine Darstellung, die Details eines Verfahrens zum Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing (IBVS) gemäß einer Ausführungsform der vorliegenden Offenbarung zeigt. Ein Phase 600 der menschlichen Demonstration umfasst die menschliche Demonstration des Aufnahme-Bewegung-Platzierung-Vorgangs bei Kasten 602. Bei jedem Einzelbild-Intervall wird die Handpose in dem Bild bei Kasten 610 identifiziert, wobei die Handpose in eine entsprechende Greiferpose übersetzt wird, wie oben mit Bezug auf die 1 und 2 erörtert wurde. Nach Abschluss der Demonstration wird bei Kasten 620 die 3D-Aufnahme-Bewegung-Platzierung-Gesamttrajektorie bestimmt, wie ebenfalls oben beschrieben. Die resultierende Trajektorie wird bei 622 gezeigt.
  • Ebenfalls während der Phase 600 der menschlichen Demonstration werden bei Kasten 630 geometrische Merkmale auf dem Werkstück aus den Kamerabildern für das bildbasierte Visual-Servoing erfasst. Im oben erörterten Beispiel des CPU-Lüfters werden Linienmerkmale ausgewählt, die für das IBVS verfolgt werden sollen. In Abhängigkeit von den am besten geeigneten Merkmalen, die sich auf dem Werkstück befinden, könnten auch andere Arten geometrischer Merkmale verwendet werden. Bei Kasten 640 werden die Ziel- oder Soll-Linienmerkmale erfasst, die die Linienmerkmale in der endgültigen Einbauposition des Werkstücks repräsentieren. Die Ziel- oder Soll-Linienmerkmale werden erfasst, wenn bei der Erzeugung der Trajektorie bei Kasten 620 bestimmt wird, dass das Werkstück die Position „Platzierung“ erreicht hat (sich nicht mehr bewegt), wie bei der Linie 624 angegeben. Die in den Kästen 630 und 640 ausgeführten Schritte wurden oben bei der Erörterung der 5A und 5B beschrieben. Die Ziel- oder Soll-Linienmerkmale sind 2D-Linien in Koordinaten der Bildebene der Kamera.
  • Eine Phase 650 der Ausführung durch den Roboter (oder Wiedergabe) wird unter Verwendung eines Systems, wie es in 3 dargestellt ist, ausgeführt. Die Aufnahme-Bewegung-Platzierung-Gesamtrajektorie von Kasten 620 wird auf Linie 652 für die Robotersteuerung bereitgestellt, die bei Kasten 660 ein Roboter-Bewegungsprogramm ausführt. Das bei Kasten 660 ausgeführte Roboter-Bewegungsprogramm bewirkt, dass der Roboter das Werkstück unter Verwendung einer Trajektorie 662, die der während der menschlichen Demonstration erfassten Trajektorie 622 entspricht, aufnimmt, bewegt und platziert. Die vom Roboter verwendete Trajektorie 662 kann eine vereinfachte Version (z.B. „nach oben, über und nach unten“) der während der Demonstration erfassten Trajektorie 622 sein.
  • Bei Kasten 670 bestimmt die Robotersteuerung, dass der Robotergreifer in einer vorgesehenen Annäherungsposition angekommen ist und sich der Position „Platzierung“ nähert. Dies wurde in 4 veranschaulicht und zuvor erörtert. Wenn die Annäherungsposition erreicht wird, wird das bildbasierte Visual-Servoing gestartet, wie durch Punkt 672 auf der Trajektorie 662 angegeben. Bei Kasten 680 wird das IBVS ausgeführt, während der Roboter das Werkstück bei der Endannäherung zur Position „Platzierung“ bewegt. Während des IBVS werden Kamerabilder des Werkstücks kontinuierlich ausgewertet, um die aktuellen Positionen der ausgewählten Linienmerkmale zu bestimmen. Die Ziel- oder Soll-Linienmerkmale vom Kasten 640 werden der Robotersteuerung wie gezeigt auf Linie 654 bereitgestellt. Roboter-Steuersignale werden auf der Grundlage der Differenz (in Koordinaten der Kamerabildebene) zwischen den aktuellen Positionen der ausgewählten Linienmerkmale und den Ziel- oder Soll-Positionen der Linienmerkmale erzeugt. Die IBVS-Steuersignale bewirken, dass der Robotergreifer das Werkstück mit einer viel größeren Präzision in seiner endgültigen Einbauposition (bei Kasten 690 angegeben) platziert, als es bei Verwendung nur der Trajektorie 662 möglich ist.
  • Die Phase 650 der Ausführung durch den Roboter kann viele Male auf der Grundlage einer einzigen Phase 600 der menschlichen Demonstration ausgeführt werden. Beispielsweise wird bei der hierin erörterten Anwendung des Einbaus des CPU-Lüfters nach dem Einbau des Werkstücks durch den Roboter bei Kasten 690 ein neues Computergehäuse (das einen CPU-Lüfter benötigt) in einer festgelegten Position relativ zur IBVS-Kamera angeordnet, ein anderer CPU-Lüfter wird vom Roboter ergriffen (es können viele CPU-Lüfter in einem Behälter zur Auswahl oder nur einer zur Verfügung stehen) und die Schritte der Kästen 660, 670, 680 und 690 werden wiederholt. Die Phase der Ausführung durch den Roboter kann für die Trajektorie und Soll-Linienmerkmale, die bei Kasten 620 beziehungsweise 640 erfasst wurden, beliebig oft wiederholt werden.
  • 7 ist ein Flussdiagramm 700 des Verfahrens zum Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing, das eine Vorführphase und eine Phase der Ausführung durch einen Roboter gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst. Die Schritte auf der linken Seite von 7 mit den Nummern 702-712 repräsentieren die Phase 600 der menschlichen Demonstration von 6 und früheren Figuren. Die Schritte auf der rechten Seite von 7 mit den Nummern 720-726 repräsentieren die Phase 650 der Ausführung durch den Roboter von 6 und früheren Figuren.
  • Bei Kasten 702 führt ein Mensch einen Vorgang vor, wie etwa einen Aufnahme-Bewegung-Platzierung-Vorgang, der vorgeführt wird, indem ein Werkstück ergriffen, entlang einer Soll-Trajektorie bewegt und in einer Zielposition platziert wird. Das Platzieren in der Zielposition kann das Einbauen oder Montieren eines Bauelement-Werkstücks in eine separate Struktur umfassen. Bei Kasten 704 werden Bilder der Vorführung von einer oder mehr Kameras ausgewertet, um Hand-Keypoints und das Werkstück in den Bildern zu erkennen. Das Erkennen der Hand-Keypoints und ihre Korrelation mit einer Greiferpose wurden in 1 dargestellt und zuvor erörtert.
  • Bei Kasten 706 wird ein neuer Schritt in einer Bewegungstrajektorie auf der Grundlage der Auswertung der Hand und des Werkstücks im letzten Bild hinzugefügt. Details der Erzeugung der Trajektorie - einschließlich der Erkennung der Greifaktion am Aufnahmepunkt und der Aktion des Lösens des Griffs am Platzierungspunkt - wurden in der '185er Anmeldung beschrieben und auch hierin oben dargelegt. Bei Kasten 708 werden geometrische Merkmale des Werkstücks - wie etwa die oben erörterten Linienmerkmale auf dem CPU-Lüfter - für das letzte Kamerabild erfasst. Details der Erfassung von geometrischen Merkmalen während der menschlichen Demonstration eines Vorgangs wurden oben mit Bezug auf die 5 und 6 erörtert und insbesondere im Kasten 630 von 6 dargestellt.
  • Bei Entscheidungsraute 710 wird bestimmt, ob die Platzierungsposition (Endposition) erreicht wurde. Wie zuvor erörtert, kann das Erreichen der Platzierungsposition (des Endes der Trajektorie) daran erkannt werden, dass sich die Hand und/oder das Werkstück in den Kamerabildern nicht mehr bewegt. Die Platzierungsposition kann auch daran erkannt werden, dass sich die Fingerspitzen der Hand vom Werkstück wegbewegen, wie in der '185er Anmeldung beschrieben. Wenn die Platzierungsposition nicht erreicht wurde, wird die Vorführung fortgesetzt, und der Prozess kehrt zu Kasten 704 zurück, um das nächste Kamerabild auszuwerten. Wenn die Platzierungsposition erreicht wurde, geht der Prozess von der Entscheidungsraute 710 zu Kasten 712 über, wo die Trajektorie endgültig festgelegt und die Zielpositionen (oder Sollpositionen) der geometrischen Merkmale erfasst werden. Sowohl die Trajektorie als auch die Zielpositionen der geometrischen Merkmale werden in der Phase der Ausführung durch den Roboter verwendet, wie mit Bezug auf 6 im Einzelnen beschrieben.
  • Bei Kasten 720, während der Ausführung durch den Roboter des vorgeführten Vorgangs (z.B. Aufnehmen, Bewegen und Platzieren eines Werkstücks), führt die Robotersteuerung ein Roboterprogramm aus, das bewirkt, dass der Robotergreifer das Werkstück aufnimmt und es in Übereinstimmung mit der Trajektorie bewegt, die während der menschlichen Demonstration erzeugt wurde. Das von der Steuerung berechnete Roboterprogramm wandelt die Greiferpositionen und -orientierungen an verschiedenen Punkten entlang der Trajektorie in Robotergelenk-Geschwindigkeitsbefehle um, wie etwa unter Verwendung von Inverskinematik-Berechnungen, wie für einen Fachmann ersichtlich ist.
  • Bei Entscheidungsraute 722 wird bestimmt, ob die Endannäherungsposition in der Trajektorie erreicht wurde. Dieses Konzept wurde im Kasten 430 von 4 veranschaulicht und ebenfalls mit Bezug auf Kasten 670 von 6 erörtert. Wenn die Endannäherungsposition noch nicht erreicht wurde, dann kehrt der Prozess zum Kasten 720 zurück, um das Folgen der vorgeführten Trajektorie fortzusetzen. Wenn die Endannäherungsposition bei der Entscheidungsraute 722 erreicht wurde, dann wird das bildbasierte Visual-Servoing (IBVS) bei Kasten 724 gestartet.
  • Bei Kasten 726 werden von der Robotersteuerung IBVS-Steuersignale verwendet, um den Robotergreifer zu positionieren, während das Werkstück in die endgültige Platzierungs- oder Einbauposition manövriert wird. Die IBVS-Steuersignale werden auf der Grundlage der Differenz zwischen den in einem aktuellen Kamerabild identifizierten geometrischen Merkmalen und den Ziel- oder Soll-Merkmalspositionen in Bildebenen-Koordinaten berechnet. Diese Technik wurde ebenfalls zuvor mit Bezug auf die 5 und 6 beschrieben.
  • Der Prozess endet, wenn der Roboter das Werkstück in seine endgültige Platzierungs- oder Einbauposition platziert. Die Phase der Ausführung durch den Roboter (Schritte mit den Nummern 720 bis 726 in 7) kann auf der Grundlage der anhand der einmaligen menschlichen Demonstration erfassten Daten viele Male wiederholt werden.
  • In der gesamten vorstehenden Erörterung werden verschiedene Computer und Steuerungen beschrieben und vorausgesetzt. Es versteht sich, dass die Softwareanwendungen und -module dieser Computer und Steuerungen auf einer oder mehreren Rechenvorrichtungen ausgeführt werden, die einen Prozessor und ein Speichermodul haben. Dies umfasst insbesondere die Prozessoren in den oben erörterten Robotersteuerungen 220 und 340 mitsamt dem optionalen separaten Computer, der mit Bezug auf 2 erörtert wurde. Insbesondere sind die Prozessoren in den Steuerungen/dem Computer dazu eingerichtet, das Anlernen eines Roboters durch menschliche Demonstration, das Erfassen der IBVS-Daten während der Anlern-Phase und die IBVS-Regelung der Werkstückplatzierung während der Ausführungsphase in der oben erörterten Weise auszuführen.
  • Wie oben erläutert, machen die offenbarten Verfahren zum Anlernen eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing (IBVS) die Programmierung der Roboterbewegung schneller, einfacher und intuitiver als frühere Verfahren und bieten zugleich die Präzision der Werkstückplatzierung, die für robotergestützte Vorgänge für die Montage von Bauelementen benötigt wird.
  • Zwar wurde oben eine Reihe beispielhafter Aspekte und Ausführungsformen des Anlernens eines Roboters durch menschliche Demonstration mit bildbasiertem Visual-Servoing (IBVS) erörtert, doch erkennt der Fachmann Modifikationen, Permutationen, Hinzufügungen und Unterkombinationen hiervon. Es ist daher beabsichtigt, dass die folgenden beigefügten Patentansprüche und hiernach eingeführten Patentansprüche so ausgelegt werden, dass sie alle Modifikationen, Permutationen, Hinzufügungen und Unterkombinationen einschließen, die ihrem wahren Geist und Umfang entsprechen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/843185 [0013]

Claims (20)

  1. Verfahren zum Programmieren eines Roboters durch menschliche Demonstration zum Durchführen eines Vorgangs, wobei das Verfahren umfasst: Vorführen des Vorgangs an einem Werkstück mit einer menschlichen Hand; Auswerten von Kamerabildern der Hand und des Werkstücks durch einen Computer, um Vorführungsdaten zu erzeugen; Hinzufügen eines neuen Punkts zu einer Trajektorie bei jedem Einzelbild-Intervall auf der Grundlage eines in den Vorführungsdaten identifizierten Hand-Koordinatenrahmens; Identifizieren von geometrischen Merkmalen auf dem Werkstück in den Vorführungsdaten bei jedem Einzelbild-Intervall; endgültiges Festlegen der Trajektorie und Erfassen von Zielpositionen der geometrischen Merkmale, wenn die Vorführung des Vorgangs beendet ist; Ausführen eines Programms durch eine Robotersteuerung, um zu bewirken, dass ein Roboter mit einem Greifer den Vorgang an dem Werkstück unter Verwendung der Trajektorie ausführt; Starten des bildbasierten Visual-Servoing (IBVS), wenn bestimmt wird, dass eine Endannäherungsposition in der Trajektorie erreicht wurde; und Verwenden einer IBVS-Regelung durch die Robotersteuerung, um den Greifer zu manövrieren, bis aktuelle Positionen der geometrischen Merkmale auf dem Werkstück mit den Zielpositionen der geometrischen Merkmale übereinstimmen.
  2. Verfahren nach Anspruch 1, wobei die geometrischen Merkmale auf dem Werkstück eines oder mehrere von Punkten, Linien, Bögen, Ellipsen, Zylindern und unregelmäßigen Formen umfassen.
  3. Verfahren nach Anspruch 1, wobei die geometrischen Merkmale auf dem Werkstück, die aktuellen Positionen und die Zielpositionen der geometrischen Merkmale in Bildebenen-Koordinaten der Kamerabilder identifiziert werden.
  4. Verfahren nach Anspruch 1, wobei die Vorführung des Vorgangs abgeschlossen ist, wenn bestimmt wird, dass das Werkstück, die Hand oder beide aufgehört haben, sich zu bewegen.
  5. Verfahren nach Anspruch 1, wobei das Identifizieren von geometrischen Merkmalen auf dem Werkstück in den Vorführungsdaten das Zuschneiden jedes Einzelbilds unter Verwendung der Erkennung von sich bewegenden Objekten umfasst, um nur einen Abschnitt des Einzelbilds einzuschließen, der sich seit einem vorherigen Einzelbild verändert hat.
  6. Verfahren nach Anspruch 5, wobei die Erkennung von sich bewegenden Objekten an sowohl zweidimensionalen (2D) Farb-/Intensitätsdaten als auch dreidimensionalen (3D) Tiefendaten ausgeführt wird und das Einzelbild zugeschnitten wird, um Pixel einzuschließen, die sich sowohl in den 2D-Daten als auch in den 3D-Daten verändert haben.
  7. Verfahren nach Anspruch 1, wobei das Identifizieren von geometrischen Merkmalen auf dem Werkstück in den Vorführungsdaten das Entfernen von geometrischen Merkmalen der menschlichen Hand vor dem Identifizieren von geometrischen Merkmalen auf dem Werkstück umfasst.
  8. Verfahren nach Anspruch 7, wobei das Entfernen von geometrischen Merkmalen der menschlichen Hand das Entfernen von geometrischen Merkmalen, die sich zwischen einem Zeigefinger und einem kleinen Finger der Hand befinden, und das Entfernen von geometrischen Merkmalen umfasst, die innerhalb einer vordefinierten Abstandstoleranz des Zeigefingers oder eines Daumens der Hand liegen.
  9. Verfahren nach Anspruch 1, wobei der Hand-Koordinatenrahmen auf der Grundlage von in den Vorführungsdaten identifizierten Keypoints auf zwei oder mehr Fingern der Hand berechnet wird, wobei die Keypoints Knöchel umfassen.
  10. Verfahren nach Anspruch 1, wobei die Verwendung des IBVS zum Manövrieren des Greifers das Erzeugen von Roboter-Steuersignalen auf der Grundlage einer Differenz in Bildebenen-Koordinaten zwischen den aktuellen Positionen und den Zielpositionen der geometrischen Merkmale umfasst.
  11. Verfahren nach Anspruch 1, wobei das Vorführen des Vorgangs das Einbauen des Werkstücks in eine Baugruppe durch das Ineingriffbringen von mechanischen Merkmalen umfasst und die IBVS-Regelung durch die Robotersteuerung bewirkt, dass der Greifer das Werkstück in die Baugruppe durch Ineingriffbringen der mechanischen Merkmale einbaut.
  12. Verfahren nach Anspruch 11, ferner umfassend das kontinuierliche Wiederholen der Ausführung des Programms und der Verwendung einer IBVS-Regelung zum Manövrieren des Greifers durch die Steuerung an neuen Exemplaren des Werkstücks und der Baugruppe.
  13. Verfahren zum Programmieren eines Roboters durch menschliche Demonstration zum Durchführen eines Einbauvorgangs, wobei das Verfahren umfasst: Vorführen des Vorgangs zum Einbauen eines Werkstücks in eine Baugruppe mit einer menschlichen Hand; Auswerten von Kamerabildern der Hand und des Werkstücks durch einen Computer, um Vorführungsdaten zu erzeugen; Hinzufügen eines neuen Punkts zu einer Trajektorie bei jedem Einzelbild-Intervall auf der Grundlage eines in den Vorführungsdaten identifizierten Hand-Koordinatenrahmens; Identifizieren von geometrischen Merkmalen auf dem Werkstück in den Vorführungsdaten bei jedem Einzelbild-Intervall; endgültiges Festlegen der Trajektorie und Erfassen von Zielpositionen der geometrischen Merkmale, wenn die Vorführung des Vorgangs durch mechanisches Einfügen des Werkstücks in die Baugruppe beendet ist; Ausführen eines Programms durch eine Robotersteuerung, um zu bewirken, dass ein Roboter mit einem Greifer den Einbauvorgang an dem Werkstück unter Verwendung der Trajektorie ausführt; Starten des bildbasierten Visual-Servoing (IBVS), wenn bestimmt wird, dass eine Endannäherungsposition in der Trajektorie erreicht wurde; und Verwenden einer IBVS-Regelung durch die Robotersteuerung, um den Greifer zu manövrieren, bis der Einbauvorgang durch mechanisches Einfügen des Werkstücks in die Baugruppe beendet ist, wobei die Verwendung einer IBVS-Regelung das Berechnen eines Steuersignals auf der Grundlage einer Differenz zwischen aktuellen Positionen der geometrischen Merkmale auf dem Werkstück und den Zielpositionen der geometrischen Merkmale umfasst.
  14. System zum Programmieren eines Roboters durch menschliche Demonstration zum Durchführen eines Vorgangs, wobei das System umfasst: eine Kamera; einen Roboter mit einem Greifer; und eine Robotersteuerung mit einem Prozessor und einem Speicher, wobei die Steuerung mit dem Roboter in Verbindung steht und Bilder von der Kamera empfängt, wobei die Steuerung dazu eingerichtet ist, Schritte auszuführen, die umfassen: Auswerten von Kamerabildern einer menschlichen Hand, die den Vorgang an dem Werkstück vorführt, um Vorführungsdaten zu erzeugen; Hinzufügen eines neuen Punkts zu einer Trajektorie bei jedem Einzelbild-Intervall auf der Grundlage eines in den Vorführungsdaten identifizierten Hand-Koordinatenrahmens; Identifizieren von geometrischen Merkmalen auf dem Werkstück in den Vorführungsdaten bei jedem Einzelbild-Intervall; endgültiges Festlegen der Trajektorie und Erfassen von Zielpositionen der geometrischen Merkmale, wenn die Vorführung des Vorgangs beendet ist; Ausführen eines Programms, um zu bewirken, dass der Roboter mit dem Greifer den Vorgang an dem Werkstück unter Verwendung der Trajektorie ausführt; Starten des bildbasierten Visual-Servoing (IBVS), wenn bestimmt wird, dass eine Endannäherungsposition in der Trajektorie erreicht wurde; und Verwenden einer IBVS-Regelung, um den Greifer zu manövrieren, bis aktuelle Positionen der geometrischen Merkmale auf dem Werkstück mit den Zielpositionen der geometrischen Merkmale übereinstimmen.
  15. System nach Anspruch 14, wobei die geometrischen Merkmale auf dem Werkstück eines oder mehrere von Punkten, Linien, Bögen, Ellipsen, Zylindern und unregelmäßigen Formen umfassen.
  16. System nach Anspruch 14, wobei das Identifizieren von geometrischen Merkmalen auf dem Werkstück in den Vorführungsdaten das Zuschneiden jedes Einzelbilds unter Verwendung der Erkennung von sich bewegenden Objekten umfasst, um nur einen Abschnitt des Einzelbilds einzuschließen, der sich seit einem vorherigen Einzelbild verändert hat.
  17. System nach Anspruch 14, wobei das Identifizieren von geometrischen Merkmalen auf dem Werkstück in den Vorführungsdaten das Entfernen von geometrischen Merkmalen der menschlichen Hand vor dem Identifizieren von geometrischen Merkmalen auf dem Werkstück umfasst, das das Entfernen von geometrischen Merkmalen, die sich zwischen einem Zeigefinger und einem kleinen Finger der Hand befinden, und das Entfernen von geometrischen Merkmalen umfasst, die innerhalb einer vordefinierten Abstandstoleranz des Zeigefingers oder eines Daumens der Hand liegen.
  18. System nach Anspruch 14, wobei die Verwendung des IBVS zum Manövrieren des Greifers das Erzeugen von Roboter-Steuersignalen auf der Grundlage einer Differenz in Bildebenen-Koordinaten zwischen den aktuellen Positionen und den Zielpositionen der geometrischen Merkmale umfasst.
  19. System nach Anspruch 14, wobei das Vorführen des Vorgangs das Einbauen des Werkstücks in eine Baugruppe durch das Ineingriffbringen von mechanischen Merkmalen umfasst und die IBVS-Regelung durch die Robotersteuerung bewirkt, dass der Greifer das Werkstück in die Baugruppe durch Ineingriffbringen der mechanischen Merkmale einbaut.
  20. System nach Anspruch 19, ferner umfassend das kontinuierliche Wiederholen der Ausführung des Programms und der Verwendung einer IBVS-Regelung zum Manövrieren des Greifers an neuen Exemplaren des Werkstücks und der Baugruppe.
DE102022130652.6A 2021-12-06 2022-11-21 Anlernen eines roboters durch vorführen mit visualservoing Pending DE102022130652A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/457,688 US20230173660A1 (en) 2021-12-06 2021-12-06 Robot teaching by demonstration with visual servoing
US17/457,688 2021-12-06

Publications (1)

Publication Number Publication Date
DE102022130652A1 true DE102022130652A1 (de) 2023-06-07

Family

ID=86382052

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022130652.6A Pending DE102022130652A1 (de) 2021-12-06 2022-11-21 Anlernen eines roboters durch vorführen mit visualservoing

Country Status (4)

Country Link
US (1) US20230173660A1 (de)
JP (1) JP2023084116A (de)
CN (1) CN116214480A (de)
DE (1) DE102022130652A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116533679B (zh) * 2023-06-14 2023-09-29 奇诺机器人科技(杭州)有限公司 基于视觉引导的自动换胎方法
CN116834023B (zh) * 2023-08-28 2023-11-14 山东嘉达装配式建筑科技有限责任公司 一种打钉机器人控制系统

Also Published As

Publication number Publication date
JP2023084116A (ja) 2023-06-16
CN116214480A (zh) 2023-06-06
US20230173660A1 (en) 2023-06-08

Similar Documents

Publication Publication Date Title
DE102015002760B4 (de) Robotersimulationssystem, das den Prozess des Entnehmens von Werkstücken simuliert
DE102014102943B4 (de) Robotersystem mit Funktionalität zur Ortsbestimmung einer 3D- Kiste
DE112019002310B4 (de) Ausführen einer &#34;peg in hole&#34;-aufgabe mit unbekannter neigung
DE102015208584B4 (de) Greifvorrichtung und Greifverfahren
DE112011103794B4 (de) Aufnehmervorrichtung für Werkstücke
DE102014108287B4 (de) Schnelles Erlernen durch Nachahmung von Kraftdrehmoment-Aufgaben durch Roboter
DE102022130652A1 (de) Anlernen eines roboters durch vorführen mit visualservoing
DE102021107532A1 (de) System und Verfahren zum Anlernen eines Roboters mittels Demonstration durch einen Menschen
DE102015000587B4 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
DE102019109624B4 (de) Roboterbewegungseinlernvorrichtung, Robotersystem und Robotersteuerung
DE102021103726B4 (de) Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
DE102015101710A1 (de) Verfahren zum Kalibrieren eines beweglichen Greiforgans unter Verwendung einer entfernten Digitalkamera
DE102013203381A1 (de) Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration
DE102016001174A1 (de) Robotersystem zum Entnehmen von Werkstücken mit Umrechenfunktion von Position und Orientierung und Verfahren zum Entnehmen von Werkstücken
EP3966731A1 (de) Maschinelles lernen einer objekterkennung mithilfe einer robotergeführten kamera
DE102019124810A1 (de) Bildverarbeitungsgerät und Bildverarbeitungsverfahren
DE102022107227A1 (de) Greifenlernen unter verwendung modularisierter neuronaler netze
DE102018124671B4 (de) Verfahren und Vorrichtung zur Erstellung eines Robotersteuerprogramms
DE102020115670A1 (de) Roboter-lerngerät und robotersystem
DE102020209080A1 (de) Bildverarbeitungssystem
DE112017007903B4 (de) Haltepositions- und Orientierungslehreinrichtung, Haltepositions- und Orientierungslehrverfahren und Robotersystem
DE102021109333B4 (de) Vorrichtung und Verfahren zum Trainieren eines Neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe
DE102021201880A1 (de) Vorrichtung und Verfahren zum Ermitteln der Pose eines Objekts
DE102021120229A1 (de) Zweihand-erkennung beim einlernen aus einer vorführung
DE102022123148A1 (de) Teaching eines doppelarm-roboters aus einer menschlichen zweihand-demonstration