-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung ist im Allgemeinen auf Robotersysteme und insbesondere auf Systeme, Prozesse und Techniken zum Abtasten von Objekten gerichtet.
-
HINTERGRUND
-
Dank ihrer stetig steigenden Leistung und sinkenden Kosten werden heute viele Roboter (z. B. Maschinen, die dazu ausgelegt sind, automatisch/autonom physische Vorgänge auszuführen) in vielen Bereichen umfassend eingesetzt. Roboter können beispielsweise eingesetzt werden, um verschiedene Aufgaben (z. B. ein Objekt handhaben oder durch den Raum überführen) bei der Fertigung und/oder Montage, Verpackung und/oder Konfektionierung, dem Transport und/oder Versand usw. auszuführen. Bei der Ausführung der Aufgaben können die Roboter menschliche Handlungen nachbilden und so das Eingreifen eines Menschen ersetzen oder reduzieren, das andernfalls zur Ausführung gefährlicher oder sich wiederholender Aufgaben erforderlich wäre.
-
Trotz der technologischen Fortschritte fehlt Robotern jedoch oft die erforderliche Ausgereiftheit, um die Empfindlichkeit und/oder Anpassungsfähigkeit eines Menschen nachzubilden, die erforderlich sind, um komplexere Aufgaben auszuführen. Beispielsweise fehlt Handhabungsrobotern bei den ausgeführten Vorgängen oft die Steuergranularität und Flexibilität, um Abweichungen oder Unsicherheiten zu berücksichtigen, die sich aus verschiedenen realen Faktoren ergeben können. Dementsprechend besteht weiterhin Bedarf an verbesserten Techniken und Systemen zum Steuern und Verwalten verschiedener Aspekte der Roboter, um die Aufgaben trotz der verschiedenen realen Faktoren zu erfüllen.
-
Die
DE 10 2017 123 877 A1 beschreibt ein Robotersystem für eine Formgebungsmaschine mit einem Manipulator zur Manipulation eines Werkstücks, einem Bewegungsapparat zum Bewegen des Manipulators sowie einem mit dem Manipulator gekoppelten Messgerät, welches dazu ausgebildet ist, eine Relativposition zwischen einem Marker und dem Manipulator zu erfassen, aus der ein Korrekturwert für die Steuerung des Bewegungsapparats berechnet wird.
-
Aus der
DE 10 2017 005 882 A1 ist ein Verfahren zum Betrieb eines Roboters zur Überprüfung von Funktionen des Roboters in seiner Arbeitsumgebung bekannt, die aus einer Anzahl räumlich verteilt angeordneter Teilnehmer besteht.
-
Die
DE 10 2014 107 143 A1 beschreibt ein System zur Messung der Verschiebung einer Objektoberfläche mit einem Verschiebungssensor.
-
Die
DE 102 49 786 A1 offenbart ein Verfahren zur Referenzierung eines Roboters zu einem Werkstück.
-
Aus der US 2017 / 0 326 739 A1 ist ein Verfahren zum Bestimmen der Position und Orientierung eines Objektes bekannt.
-
Die US 2011 / 0 235 054 A1 beschreibt eine Vorrichtung zur Erkennung eines Artikels anhand von vier oder mehr Einheitsmustermarkierungen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
- 1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem mit einem verbesserten Abtastmechanismus betrieben werden kann.
- 2 ist ein Blockdiagramm, das das Robotersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
- 3A ist eine Veranschaulichung eines Objekts in einer ersten Pose.
- 3B ist eine Veranschaulichung des Objekts aus 3A in einer zweiten Pose.
- 3C ist eine Veranschaulichung des Objekts aus 3A in einer dritten Pose.
- 4 ist eine Draufsicht, die eine beispielhafte Aufgabe veranschaulicht, die von dem Robotersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung ausgeführt wird.
- 5A ist ein Flussdiagramm zum Betreiben des Robotersystems aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
- 5B ist ein Flussdiagramm zum Ableiten von Bewegungsplänen auf Grundlage von Abtastmetriken gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
Die vorliegende Erfindung stellt ein Verfahren zum Betreiben eines Robotersystems mit den Merkmalen das Anspruchs 1, ein computerlesbares Medium mit den Merkmalen des Anspruchs 18 und ein Robotersystem mit den Merkmalen des Anspruchs 19 bereit. Beispielhafte Ausgestaltungen sind in den abhängigen Ansprüchen angegeben.
-
In dieser Schrift sind Systeme und Verfahren für ein Robotersystem mit einem verbesserten Abtastmechanismus beschrieben. Das gemäß einigen Ausführungsformen ausgelegte Robotersystem (z. B. ein integriertes System von Vorrichtungen, das eine oder mehrere festgelegte Aufgaben ausführt) stellt durch das Ableiten und Ausführen von Bewegungsplänen gemäß den Unsicherheiten, die mit Anfangsposen von Objekten verbunden sind, ein verbessertes Abtasten bereit.
-
Das Robotersystem kann dazu ausgelegt sein, eine Aufgabe auf Grundlage des Handhabens (z. B. physischen Verlagerns und/oder Neuausrichtens) eines Zielobjekts auszuführen. Beispielsweise kann das Robotersystem auf Grundlage des Aufnehmens des Zielobjekts an einer Ausgangsposition (z. B. einem Behälter, einer Palette oder einem Förderband) und des Bewegens davon zu einer Zielposition verschiedene Objekte sortieren oder neu positionieren. In einigen Ausführungsformen kann die Aufgabe ferner das Abtasten des Zielobjekts während der Überführung beinhalten, wie etwa indem einem Satz von Abtasteinrichtungen eine oder mehrere Kennzeichnungen (z. B. Strichcodes oder Quick-Response-Codes (QR-Codes)), die sich an einer oder mehreren festgelegten Positionen und/oder Flächen des Zielobjekts befinden, präsentiert werden. Dementsprechend kann das Robotersystem einen Bewegungsplan ableiten oder berechnen, um das Zielobjekt zu greifen und aufzunehmen, das Zielobjekt an eine Präsentationsposition/in eine Präsentationsausrichtung zu überführen, um die Kennzeichnungen den Abtasteinrichtungen zu präsentieren, und das Zielobjekt an einer Aufgabenposition zu platzieren (z. B. durch Überführen des Objekts an die Aufgabenposition, Anpassen der Pose des Objekts, Absenken des Objekts und/oder Freigeben des Objekts).
-
Zum Ausführen der Aufgabe kann das Robotersystem in einigen Ausführungsformen eine Bildgebungsvorrichtung (z. B. eine Kamera, einen Infrarotsensor/eine Infrarotkamera, eine Radar- oder Lidar-Vorrichtung usw.) beinhalten, die verwendet wird, um eine Position und eine Pose (z. B. eine Ruheausrichtung) des Zielobjekts und/oder der Umgebung um das Zielobjekt zu ermitteln. In einigen Ausführungsformen kann das Robotersystem ferner ein Konfidenzmaß berechnen, das mit der Pose verbunden ist. Das Konfidenzmaß kann ein Maß der Sicherheit oder Wahrscheinlichkeit dafür darstellen, dass die bestimmte Pose mit der tatsächlichen realen Pose des Zielobjekts übereinstimmt. Als veranschaulichendes Beispiel kann das Robotersystem Bilder erlangen (z. B. Bilder eines Aufnahmebereichs, wie etwa einem Ausgangsbehälter oder einer Ausgangspalette), die Positionen und Ausrichtungen von Objekten darstellen, die von einem Aufnahmebereich zu einem Aufgabenbereich (z. B. Zielbehälter oder Zielpalette) überführt werden sollen. Das Robotersystem kann die Bilder gemäß einer vorgegebenen Reihenfolge (z. B. von oben nach unten und/oder von einem äußeren Rand nach innen) verarbeiten, um das Zielobjekt zu ermitteln oder auszuwählen. Das Robotersystem kann ferner mithilfe des Bildes die Anfangspose bestimmen, wie etwa durch das Ermitteln und Gruppieren von Objektlinien (z. B. gemäß Pixelfarbe, Helligkeit und/oder Veränderungen der jeweiligen Werte in Bezug auf benachbarte Pixel). Bei dem Bestimmen der Anfangspose kann das Robotersystem ferner das Konfidenzmaß (z. B. einen quantifizierten Grad der Sicherheit, der mit der bestimmten Pose verbunden ist) gemäß einem vorgegebenen Prozess und/oder einer Gleichung berechnen.
-
Gemäß der Position, der Pose, dem Konfidenzmaß oder einer Kombination davon kann das Robotersystem einen Bewegungsplan (z. B. eine Abfolge von Ansteuerungen für die Aktoren zum Bewegen eines/einer oder mehrerer Glieder und/oder Gelenke) ableiten und ausführen, um die Aufgabe auszuführen. Zum Sortieren und/oder Neupositionieren des Zielobjekts kann der Bewegungsplan zum Beispiel dem anfänglichen Greifen des Zielobjekts an der Ausgangsposition, dessen Handhaben im Raum und dessen Platzieren an der Zielposition entsprechen.
-
Herkömmliche Systeme leiten Bewegungspläne ausschließlich auf Grundlage von bestimmten Posen des Objekts ab und führen diese aus. Dementsprechend leiten die herkömmlichen Systeme Bewegungspläne unabhängig von Abweichungen, Fehlern und/oder Unsicherheiten, die vorgelagert (z. B. beim Sammeln der Eingabedaten) aufgetreten sein können, ab und führen diese aus. Daher können die herkömmlichen Systeme vorgelagert eingebrachte Mängel nicht mindern oder beheben, was zu Aufgabenstörungen (z. B. Störungen beim Ermitteln von Objekten und/oder dem Verlieren von Teilen bei der Überführung) führt, die den Eingriff/Eingaben von Menschen erforderlich machen.
-
Anders als die herkömmlichen Systeme können verschiedene Ausführungsformen, die nachfolgend beschrieben sind, den Bewegungsplan gemäß dem Konfidenzmaß ableiten und ausführen. Anders ausgedrückt kann das nachstehend beschriebene Robotersystem gemäß dem Konfidenzmaß eine Annäherung an das Zielobjekt variieren, eine Greifposition an dem Zielobjekt ändern, eine Präsentationspose/Präsentationsposition des Zielobjekts ändern und/oder andere Abschnitte des Bewegungspfads ändern. Als veranschaulichendes Beispiel kann das Robotersystem eine sich in dem Aufnahmebereich befindliche Kiste als Zielobjekt auswählen. Bei diesem Beispiel entspricht die Kiste einer Pose, bei der eine obere Fläche des Objekts im Allgemeinen waagerecht ausgerichtet und freiliegend ist und eine der Seitenflächen des Objekts (d. h. kleiner/schmaler als die obere Fläche) im Allgemeinen senkrecht ausgerichtet und ebenfalls freiliegend ist. Das Robotersystem kann in Stammdaten beinhalten, dass das Objekt eine Kennzeichnung auf einer unteren Fläche des Objekts (d. h. gegenüber der oberen Fläche des Objekts) und eine kleinere Kennzeichnung auf einer der Seitenflächen des Objekts aufweist. Wenn das Robotersystem das Bild der Aufnahmeposition beim Ermitteln des Zielobjekts verarbeitet, kann das Robotersystem das Konfidenzmaß berechnen. Das Konfidenzmaß kann beispielsweise einem Maß der Übereinstimmung zwischen einer oder mehreren sichtbaren Eigenschaften der Kiste (z. B. einer Form, einer Farbe, einem Bild, einem Design, einem Logo, einem Text usw.), die in dem Bild aufgenommen ist/sind, und vorgegebenen Informationen in den Stammdaten entsprechen. Liegt das Konfidenzmaß über einem Schwellenwert, derart dass das Robotersystem mit ausreichender Sicherheit erkennt, dass die obere Fläche des Objekts oben an der Kiste freiliegend ist, kann das Robotersystem einen Endeffektor über der freiliegenden oberen Fläche platzieren, die obere Fläche greifen und das Zielobjekt drehen, so dass es eine untere Fläche an einer festgelegten Position vor einer Abtasteinrichtung präsentiert. Liegt das Konfidenzmaß unter einem Schwellenwert, derart dass das Robotersystem nicht erkennen kann, ob die obere Fläche oder die untere Fläche freiliegend ist, kann das Robotersystem den Endeffektor an einer der Seitenflächen des Objekts platzieren, die Seitenfläche des Objekts greifen und das Zielobjekt drehen, so dass es zwischen einem Satz gegenüberliegender Abtasteinrichtungen hindurchgeführt wird.
-
Das Abtasten des Zielobjekts in der Luft (z. B. an einer Position zwischen der Startposition und der Aufgabenposition) stellt eine verbesserte Effizienz und Geschwindigkeit beim Ausführen der Aufgabe bereit. Durch das Berechnen des Bewegungsplans, der die Abtastpositionen beinhaltet und mit den Objektabtasteinrichtungen koordiniert wird, kann das Robotersystem die Aufgabe zum Überführen des Zielobjektes mit der Aufgabe zum Abtasten des Zielobjektes effektiv kombinieren. Darüber hinaus verbessert das Ableiten des Bewegungsplans auf der Grundlage des Konfidenzmaßes der Anfangsausrichtung ferner die Effizienz, Geschwindigkeit und Korrektheit für die Abtastaufgabe. Das Robotersystem kann den Bewegungsplan berechnen, der alternative Ausrichtungen berücksichtigt, die einer Hypothese entsprechen, dass die Anfangspose nicht korrekt ist. Dementsprechend kann das Robotersystem die Wahrscheinlichkeit erhöhen, dass das Zielobjekt selbst bei Posenbestimmungsfehlern (z. B. infolge von Kalibrierungsfehlern, unerwarteten Posen, unerwarteten Lichtverhältnissen usw.) korrekt/erfolgreich abgetastet wird. Die erhöhte Wahrscheinlichkeit für korrekte Abtastungen kann zu einem erhöhten Gesamtdurchsatz für das Robotersystem führen und den Aufwand/die Eingriffe des Bedieners weiter verringern. Nachstehend sind Einzelheiten zur Konfidenzberechnung und der damit verbundenen Wegberechnung beschrieben.
-
In der folgenden Beschreibung sind zahlreiche konkrete Details aufgeführt, um ein umfassendes Verständnis der vorliegenden Offenbarung zu ermöglichen. In anderen Ausführungsformen können die hier vorgestellten Techniken ohne diese konkreten Details umgesetzt werden. In anderen Fällen werden hinreichend bekannte Merkmale, wie etwa konkrete Funktionen oder Routinen, nicht detailliert beschrieben, um zu verhindern, dass die vorliegende Offenbarung unnötig undeutlich wird. Verweise auf „eine Ausführungsform“ oder dergleichen in dieser Beschreibung bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur, ein bestimmtes Material oder eine bestimmte Eigenschaft, die beschrieben werden, in mindestens einer Ausführungsform der vorliegenden Offenbarung beinhaltet ist. Somit bezieht sich das Auftreten derartiger Formulierungen in dieser Beschreibung nicht unbedingt immer auf dieselbe Ausführungsform. Andererseits schließen sich derartige Verweise auch nicht unbedingt gegenseitig aus. Des Weiteren können die bestimmten Merkmale, Strukturen, Materialien oder Eigenschaften auf jede geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden. Es versteht sich, dass die verschiedenen Ausführungsformen, die in den Figuren gezeigt sind, lediglich veranschaulichende Darstellungen sind und nicht unbedingt maßstabsgetreu gezeichnet sind.
-
Einige Details, die Strukturen oder Prozesse beschreiben, die hinlänglich bekannt sind und oft mit Robotersystemen und Untersystemen verbunden sind, die aber einige wesentliche Aspekte der offenbarten Techniken unnötig undeutlich machen können, sind in der folgenden Beschreibung aus Gründen der Übersichtlichkeit nicht aufgeführt. Obwohl in der folgenden Offenbarung mehrere Ausführungsformen verschiedener Aspekte der vorliegenden Offenbarung aufgeführt sind, können einige andere Ausführungsformen andere Anordnungen oder andere Komponenten aufweisen als sie in diesem Abschnitt beschrieben sind. Dementsprechend können die offenbarten Techniken andere Ausführungsformen mit zusätzlichen Elementen oder ohne einige der nachfolgend beschriebenen Elemente aufweisen.
-
Viele Ausführungsformen oder Aspekte der nachfolgend beschriebenen vorliegenden Offenbarung können in Form von computer- oder steuerungsausführbaren Anweisungen vorliegen, einschließlich Routinen, die von einem programmierbaren Computer oder einer programmierbaren Steuerung ausgeführt werden. Der einschlägige Fachmann wird erkennen, dass die offenbarten Techniken auf anderen Computer- oder Steuerungssystemen umgesetzt sein können, als sie nachstehend dargestellt und beschrieben sind. Die in dieser Schrift beschriebenen Techniken können in einem Spezialcomputer oder Datenprozessor umgesetzt sein, der spezifisch dazu programmiert, ausgelegt oder hergestellt ist, eine oder mehrere der nachstehend beschriebenen computerausführbaren Anweisungen auszuführen. Dementsprechend beziehen sich die im Allgemeinen in dieser Schrift verwendeten Begriffe „Computer“ und „Steuerung“ auf einen beliebigen Datenprozessor und können Internetgeräte und Handheld-Vorrichtungen (einschließlich Palm-Top-Computer, Wearable-Computer, Funktelefone oder Mobiltelefone, Multiprozessorsysteme, prozessorbasierte oder programmierbare Unterhaltungselektronik, Netzwerkcomputer, Mini-Computer und dergleichen) beinhalten. Die von diesen Computern und Steuerungen verarbeiteten Informationen können auf einem beliebigen geeigneten Anzeigemedium dargestellt werden, einschließlich einer Flüssigkristallanzeige (Liquid Crystal Display - LCD). Anweisungen zum Ausführen computer- oder steuerungsausführbarer Aufgaben können in oder auf einem beliebigen geeigneten computerlesbaren Medium gespeichert sein, einschließlich Hardware, Firmware oder einer Kombination aus Hardware und Firmware. Anweisungen können in einer beliebigen geeigneten Speichervorrichtung enthalten sein, einschließlich zum Beispiel in einem Flash-Laufwerk und/oder einem anderen geeigneten Medium.
-
Die Begriffe „gekoppelt“ und „verbunden“ sowie deren Ableitungen können in dieser Schrift verwendet werden, um strukturelle Beziehungen zwischen Komponenten zu beschreiben. Es versteht sich, dass diese Begriffe nicht als Synonyme füreinander bestimmt sind. Vielmehr kann „verbunden“ in bestimmten Ausführungsformen verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem Kontakt miteinander stehen. Sofern aus dem Zusammenhang nichts Gegenteiliges ersichtlich wird, kann der Begriff „gekoppelt“ verwendet werden, um darauf hinzuweisen, dass zwei oder mehr Elemente entweder direkt oder indirekt (mit anderen dazwischenliegenden Elementen) miteinander in Kontakt stehen, oder dass die zwei oder mehr Elemente miteinander zusammenwirken oder interagieren (z. B. wie in einer Ursache-Wirkungs-Beziehung, wie etwa bei der Signalübertragung/dem Signalempfang oder bei Funktionsaufrufen) oder beides.1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem 100 mit einem verbesserten Abtastmechanismus betrieben werden kann. Das Robotersystem 100 beinhaltet eine oder mehrere Strukturen (z. B. Roboter), die dazu ausgelegt sind, eine oder mehrere Aufgaben auszuführen. Aspekte des verbesserten Abtastmechanismus können von den verschiedenen Strukturen umgesetzt oder realisiert werden.
-
Bei dem in 1 veranschaulichten Beispiel kann das Robotersystem 100 eine Entladeeinheit 102, eine Überführungseinheit 104 (z. B. einen Palettierroboter und/oder einen Einzelstückkommissionierroboter), eine Transporteinheit 106, eine Ladeeinheit 108 oder eine Kombination davon in einem Lager oder einer Distributions-/Versandzentrum beinhalten. Jede der Einheiten im Robotersystem 100 kann dazu ausgelegt sein, eine oder mehrere Aufgaben auszuführen. Die Aufgaben können nacheinander kombiniert werden, um einen Ablauf auszuführen, der ein Ziel erreicht, wie etwa das Entladen von Objekten aus einem LKW oder einem Transporter zur Lagerung in einem Lager oder das Entladen von Objekten von Lagerpositionen und deren Verladung auf einen LKW oder einen Transporter für den Transport. Bei einem weiteren Beispiel kann die Aufgabe das Bewegen von Objekten aus einem Transportbehälter in einen anderen beinhalten. Jede der Einheiten kann dazu ausgelegt sein, eine Abfolge von Vorgängen (z. B. das Betreiben einer oder mehrerer Komponenten darin) auszuführen, um eine Aufgabe auszuführen.
-
In einigen Ausführungsformen kann die Aufgabe die Handhabung (z. B. das Bewegen und/oder Neuausrichten) eines Zielobjekts 112 (z. B. einer Kiste, eines Kastens, eines Korbs, einer Palette usw., die zur Handhabung bestimmt sind) von einer Startposition 114 zu einer Aufgabenposition 116 beinhalten. Die Entladeeinheit 102 (z. B. ein Entladeroboter) kann zum Beispiel dazu ausgelegt sein, das Zielobjekt 112 von einer Position in einer Transportvorrichtung (z. B. einem LKW) zu einer Position auf einem Förderband zu überführen. Zudem kann die Überführungseinheit 104 dazu ausgelegt sein, das Zielobjekt 112 von einer Position (z. B. dem Förderband, einer Palette oder einem Behälter) zu einer anderen Position (z. B. einer Palette, einem Behälter oder einem Korb auf der Transporteinheit 106) zu überführen. Als weiteres Beispiel kann die Überführungseinheit 104 (z. B. ein Einzelstückkommissionierroboter) dazu ausgelegt sein, das Zielobjekt 112 aus einem Transportbehälter in einen anderen zu überführen. Beim Abschließen des Ablaufs kann die Transporteinheit 106 das Zielobjekt 112 von einem mit der Überführungseinheit 104 verbundenen Bereich in einen mit der Ladeeinheit 108 verbundenen Bereich überführen, und die Ladeeinheit 108 kann das Zielobjekt 112 (z. B. durch Bewegen der Palette, die das Zielobjekt 112 trägt) von der Überführungseinheit 104 zu einer Lagerposition (z. B. einer Position auf den Regalen) überführen. Nachstehend sind Einzelheiten zu der Aufgabe und den damit verbundenen Vorgängen beschrieben.
-
Zu Zwecken der Veranschaulichung wird das Robotersystem 100 im Rahmen eines Versandzentrums beschrieben; es versteht sich jedoch, dass das Robotersystem 100 dazu ausgelegt sein kann, Aufgaben in anderen Umgebungen/für andere Zwecke auszuführen, wie etwa bei der Fertigung, Montage, Verpackung, im Gesundheitswesen und/oder für andere Arten der Automatisierung. Es versteht sich zudem, dass das Robotersystem 100 andere Einheiten, wie Manipulatoren, Serviceroboter, modulare Roboter usw. beinhalten kann, die nicht in 1 dargestellt sind. Das Robotersystem 100 kann zum Beispiel in einigen Ausführungsformen eine Entpalettierungseinheit zum Überführen der Objekte aus Gitterwagen oder von Paletten auf Förderer oder andere Paletten, eine Transportbehälterwechseleinheit zum Überführen der Objekte von einem Transportbehälter in einen anderen, eine Verpackungseinheit zum Verpacken der Objekte, eine Sortiereinheit zum Gruppieren von Objekten nach einem oder mehreren ihrer Merkmale, eine Einzelstückkommissioniereinheit zum unterschiedlichen Handhaben (z. B. zum Sortieren, Gruppieren und/oder Überführen) der Objekte nach einem oder mehreren ihrer Merkmale oder eine Kombination davon beinhalten. 2 ist ein Blockdiagramm, das das Robotersystem 100 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung veranschaulicht. In einigen Ausführungsformen kann das Robotersystem 100 (z. B. an einer/einem oder mehreren der vorstehend beschriebenen Einheiten und/oder Roboter) beispielsweise elektronische/elektrische Vorrichtungen, wie etwa einen oder mehrere Prozessoren 202, eine oder mehrere Speichervorrichtungen 204, eine oder mehrere Kommunikationsvorrichtungen 206, eine oder mehrere Ein-/Ausgabevorrichtungen 208, eine oder mehrere Betätigungsvorrichtungen 212, einen oder mehrere Transportmotoren 214, einen oder mehrere Sensoren 216 oder eine Kombination davon beinhalten. Die verschiedenen Vorrichtungen können über Drahtverbindungen und/oder drahtlose Verbindungen aneinander gekoppelt sein. Das Robotersystem 100 kann zum Beispiel einen Bus, wie etwa einen Systembus, einen Peripheral-Component-Interconnect-Bus (PCI-Bus) oder PCI-Express-Bus, einen HyperTransport- oder Industry-Standard-Architecture-Bus (ISA-Bus), einen Small-Computer-System-Interface-Bus (SCSI-Bus), einen Universal-Serial-Bus (USB-Bus), einen IIC-Bus (I2C-Bus) oder einen Bus nach dem Standard 1394 des Institute of Electrical and Electronics Engineers (IEEE) (wird auch als „Firewire“ bezeichnet) beinhalten. Das Robotersystem 100 kann zudem zum Beispiel Brücken, Adapter, Steuerungen oder andere signalbezogene Vorrichtungen zum Bereitstellen der Drahtverbindungen zwischen den Vorrichtungen beinhalten. Die drahtlosen Verbindungen können zum Beispiel auf Mobilfunkprotokollen (z. B. 3G, 4G, LTE, 5G usw.), Protokollen für Wireless Local Area Networks (LAN) (z. B. Wireless Fidelity (WIFI)), Peer-to-Peer- oder Device-to-Device-Kommunikationsprotokollen (z. B. Bluetooth, Near-Field-Kommunikation (NFC) usw.), Internet-of-Things-Protokollen (IoT-Protokollen) (z. B. NB-IoT, LTE-M usw.) und/oder anderen Drahtloskommunikationsprotokollen basieren.
-
Die Prozessoren 202 können Datenprozessoren (z. B. Central Processing Units (CPUs), Spezialcomputer und/oder Bordserver) beinhalten, die dazu ausgelegt sind, Anweisungen (z. B. Softwareanweisungen) auszuführen, die auf den Speichervorrichtungen 204 (z. B. Computerspeicher) gespeichert sind. Die Prozessoren 202 können die Programmanweisungen umsetzen, um andere Vorrichtungen zu steuern/sich mit diesen zu verbinden, und dadurch zu bewirken, dass das Robotersystem 100 Vorgänge, Aufgaben und/oder Abläufe ausführt.
-
Die Speichervorrichtungen 204 können nichtflüchtige computerlesbare Medien beinhalten, auf denen Programmanweisungen (z. B. Software) gespeichert sind. Einige Beispiele für die Speichervorrichtungen 204 können flüchtigen Speicher (z. B. Cache und/oder Direktzugriffsspeicher (Random-Access Memory - RAM)) und/oder nichtflüchtigen Speicher (z. B. Flash-Speicher und/oder Magnetplattenlaufwerke)) beinhalten. Andere Beispiele für die Speichervorrichtungen 204 können tragbare Speicherlaufwerke und/oder Cloud-Speichervorrichtungen beinhalten.
-
In einigen Ausführungsformen können die Speichervorrichtungen 204 verwendet werden, um Verarbeitungsergebnisse und/oder vorgegebene Daten/Schwellenwerte weiter zu speichern und zugänglich zu machen. Die Speichervorrichtungen 204 können zum Beispiel Stammdaten 252 speichern, die Beschreibungen von Objekten (z. B. Kisten, Kästen und/oder Produkte) beinhalten, die von dem Robotersystem 100 gehandhabt werden können. In einer oder mehreren Ausführungsformen können die Stammdaten 252 eine Abmessung, eine Form (z. B. Vorlagen für mögliche Posen und/oder computergenerierte Modelle zum Erkennen des Objekts in verschiedenen Posen), ein Farbschema, ein Bild, Identifikationsinformationen (z. B. Strichcodes, Quick-Response-Codes (QR-Codes), Logos usw. und/oder erwartete Positionen davon), ein erwartetes Gewicht oder eine Kombination davon für die Objekte beinhalten, von denen erwartet wird, dass sie von dem Robotersystem 100 gehandhabt werden. In einigen Ausführungsformen können die Stammdaten 252 handhabungsbezogene Informationen über die Objekte beinhalten, wie etwa eine Schwerpunktposition zu jedem der Objekte, erwartete Sensormessungen (z. B. für Kraft-, Drehmoment-, Druck- und/oder Kontaktmessungen), die einer oder mehreren Vorgängen/Manövern oder einer Kombination davon entsprechen. Beispielsweise können die Speichervorrichtungen 204 auch Objektverfolgungsdaten 254 speichern. In einigen Ausführungsformen können die Objektverfolgungsdaten 254 ein Protokoll mit den abgetasteten oder gehandhabten Objekten beinhalten. In einigen Ausführungsformen können die Objektverfolgungsdaten 254 Bildgebungsdaten (z. B. ein Bild, eine Punktwolke, eine Live-Videoübertragung usw.) der Objekte an einer oder mehreren Positionen (z. B. festgelegte Aufnahme- oder Abgabepositionen und/oder Förderbänder) beinhalten. In einigen Ausführungsformen können die Objektverfolgungsdaten 254 Positionen und/oder Ausrichtungen der Objekte an der einen oder mehreren Positionen beinhalten.
-
Die Kommunikationsvorrichtungen 206 können Schaltungen beinhalten, die dazu ausgelegt sind, mit externen oder entfernten Vorrichtungen über ein Netzwerk zu kommunizieren. Die Kommunikationsvorrichtungen 206 können Empfänger, Sender, Modulatoren/Demodulatoren (Modems), Signaldetektoren, Signalkodierer/Signaldekodierer, Verbindungsanschlüsse, Netzwerkkarten usw. beinhalten. Die Kommunikationsvorrichtungen 206 können dazu ausgelegt sein, elektrische Signale gemäß einem oder mehreren Kommunikationsprotokollen (z. B. dem Internet Protocol (IP), Drahtloskommunikationsprotokollen usw.) zu senden, zu empfangen und/oder zu verarbeiten. In einigen Ausführungsformen kann das Robotersystem 100 die Kommunikationsvorrichtungen 206 dazu verwenden, um Informationen zwischen Einheiten des Robotersystems 100 auszutauschen und/oder Informationen (z. B. zu Zwecken der Berichterstattung, Datenerfassung, Analyse und/oder Fehlerbehebung) mit Systemen oder Vorrichtungen außerhalb des Robotersystems 100 auszutauschen.
-
Die Eingabe-/Ausgabevorrichtungen 208 können Benutzerschnittstellenvorrichtungen beinhalten, die dazu ausgelegt sind, Informationen an menschliche Bediener zu übermitteln und/oder Informationen von diesen zu empfangen. Beispielsweise können die Eingabe-/Ausgabevorrichtungen 208 eine Anzeige 210 und/oder andere Ausgabevorrichtungen (z. B. einen Lautsprecher, eine Haptikschaltung, oder eine Vorrichtung für taktile Rückkopplung usw.) beinhalten, um dem menschlichen Bediener Informationen zu übermitteln. Zudem können die Eingabe-/Ausgabevorrichtungen 208 Steuer- oder Empfangsvorrichtungen beinhalten, wie etwa eine Tastatur, eine Maus, einen Touchscreen, ein Mikrofon, einen Sensor der Benutzeroberfläche (User Interface - UI) (z. B. eine Kamera zum Empfangen von Bewegungsbefehlen), eine tragbare Eingabevorrichtung usw. In einigen Ausführungsformen kann das Robotersystem 100 die Eingabe-/Ausgabevorrichtungen 208 verwenden, um mit den menschlichen Bedienern bei der Ausführung eines Vorgangs, einer Aufgabe, eines Ablaufs oder einer Kombination davon zu interagieren.
-
Das Robotersystem 100 kann physische oder strukturelle Elemente (z. B. Robotermanipulatorarme) beinhalten, die für Bewegungen (z. B. Dreh- und/oder Translationsbewegungen) an Gelenken verbunden sind. Die strukturellen Elemente und die Verbindungen können eine kinetische Kette bilden, die dazu ausgelegt ist, einen Endeffektor (z. B. den Greifer) zu handhaben, der dazu ausgelegt ist, eine oder mehrere Aufgaben (z. B. Greifen, Rotieren, Schweißen usw.) je nach Verwendung/Betrieb des Robotersystems 100 auszuführen. Das Robotersystem 100 kann die Betätigungsvorrichtungen 212 (z. B. Motoren, Aktoren, Drähte, künstliche Muskeln, elektroaktive Polymere usw.) beinhalten, die dazu ausgelegt sind, die strukturellen Elemente um ein entsprechendes Gelenk herum oder an diesem anzutreiben oder zu handhaben (z. B. zu verschieben und/oder neu auszurichten). In einigen Ausführungsformen kann das Robotersystem 100 die Transportmotoren 214 beinhalten, die dazu ausgelegt sind, die entsprechenden Einheiten/Chassis von Ort zu Ort zu transportieren.
-
Das Robotersystem 100 kann die Sensoren 216 beinhalten, die dazu ausgelegt sind, Informationen zu erlangen, die zum Umsetzen der Aufgaben verwendet werden, wie etwa zum Handhaben der strukturellen Elemente und/oder zum Transportieren der Robotereinheiten. Die Sensoren 216 können Vorrichtungen beinhalten, die dazu ausgelegt sind, eine oder mehrere physikalische Eigenschaften des Robotersystems 100 (z. B. einen Zustand, eine Bedingung und/oder eine Position eines oder mehrerer struktureller Elemente/von deren Gelenken) und/oder einer umliegenden Umgebung zu erfassen oder zu messen. Einige Beispiele für die Sensoren 216 können Beschleunigungsmesser, Gyroskope, Kraftsensoren, Dehnungsmessstreifen, taktile Sensoren, Drehmomentsensoren, Stellungsgeber usw. sein.
-
In einigen Ausführungsformen können die Sensoren 216 beispielsweise eine oder mehrere Bildgebungsvorrichtungen 222 (z. B. Bild- und/oder Infrarotkameras, zweidimensionale und/oder dreidimensionale Bildgebungskameras, Entfernungsmessvorrichtungen wie Lidar- oder Radarvorrichtungen usw.) beinhalten, die dazu ausgelegt sind, die umliegende Umgebung zu erfassen. Die Bildgebungsvorrichtungen 222 können Darstellungen der erfassten Umgebung, wie etwa digitale Bilder und/oder Punktwolken, erzeugen, die zur Umsetzung von maschinellem Sehen/Computersehen (z. B. für automatische Überprüfungen, Roboterführung oder andere Roboteranwendungen) verwendet werden. Wie nachstehend näher beschrieben, kann das Robotersystem 100 (z. B. über die Prozessoren 202) das digitale Bild und/oder die Punktwolke verarbeiten, um das Zielobjekt 112 aus 1, die Startposition 114 aus 1, die Aufgabenposition 116 aus 1, eine Pose des Zielobjekts 112, ein Konfidenzmaß bezüglich der Startposition 114 und/oder der Pose oder eine Kombination davon zu ermitteln.
-
Zum Handhaben des Zielobjekts 112 kann das Robotersystem 100 (z. B. über die verschiedenen Einheiten) ein Bild eines festgelegten Bereichs (z. B. einer Aufnahmeposition, wie etwa innerhalb des LKWs oder auf dem Förderband) aufnehmen und analysieren, um das Zielobjekt 112 und dessen Startposition 114 zu ermitteln. Auf ähnliche Weise kann das Robotersystem 100 ein Bild eines anderen festgelegten Bereichs (z. B. einer Abgabeposition zum Platzieren von Objekten auf dem Förderband, einer Position zum Platzieren von Objekten in dem Transportbehälter, oder einer Position auf der Palette für Stapelzwecke) aufnehmen und analysieren, um die Aufgabenposition 116 zu ermitteln. Die Bildgebungsvorrichtungen 222 können zum Beispiel eine oder mehrere Kameras, die dazu ausgelegt sind, Bilder des Aufnahmebereichs zu erzeugen und/oder eine oder mehrere Kameras beinhalten, die dazu ausgelegt sind, Bilder des Aufgabenbereichs (z. B. des Abgabebereichs) zu erzeugen. Auf Grundlage der aufgenommenen Bilder kann das Robotersystem 100 wie nachstehend beschrieben die Startposition 114, die Aufgabenposition 116, die entsprechenden verbundenen Posen und/oder die Konfidenzmaße bestimmen
-
In einigen Ausführungsformen kann die Aufgabe das Abtasten des Zielobjekts 112 beinhalten, wie etwa zum Erfassen des Gegenstands für den Versand/Wareneingang. Um den Abtastabschnitt der Aufgabe durchzuführen, können die Bildgebungsvorrichtungen 222 eine oder mehrere Abtasteinrichtungen (z. B. Strichcode-Scanner und/oder QR-Code-Scanner) beinhalten, die dazu ausgelegt sind, die Identifizierungsinformationen während der Überführung (z. B. zwischen der Startposition 114 und der Aufgabenposition 116) abzutasten. Dementsprechend kann das Robotersystem 100 einen Bewegungsplan berechnen, um einen oder mehrere Abschnitte des Zielobjekts 112 einer oder mehreren der Abtasteinrichtungen zu präsentieren.
-
In einigen Ausführungsformen können die Sensoren 216 zum Beispiel Stellungssensoren 224 (z. B. Stellungsgeber, Potentiometer usw.) beinhalten, die dazu ausgelegt sind, Stellungen struktureller Elemente (z. B. der Roboterarme und/oder der Endeffektoren) und/oder entsprechender Gelenke des Robotersystems 100 zu erfassen. Das Robotersystem 100 kann die Stellungssensoren 224 einsetzen, um Positionen und/oder Ausrichtungen der strukturellen Elemente und/oder Gelenke während der Ausführung der Aufgabe zu verfolgen.
-
In einigen Ausführungsformen können die Sensoren 216 beispielsweise Kontaktsensoren 226 beinhalten (z. B. Drucksensoren, Kraftsensoren, Dehnungsmessstreifen, piezoresistive/piezoelektrische Sensoren, kapazitive Sensoren, elastoresistive Sensoren und/oder andere taktile Sensoren), die dazu ausgelegt sind, eine Eigenschaft zu messen, die mit einem direkten Kontakt zwischen mehreren physikalischen Strukturen oder Flächen verbunden ist. Die Kontaktsensoren 226 können die Eigenschaft messen, die einem Greifen des Zielobjekts 112 durch den Endeffektor (z. B. den Greifer) entspricht. Dementsprechend können die Kontaktsensoren 226 ein Kontaktmaß ausgeben, das ein quantifiziertes Maß (z. B. eine gemessene Kraft, ein gemessenes Drehmoment, eine gemessene Position usw.) darstellt, das einem Grad an Kontakt oder Befestigung zwischen dem Greifer und dem Zielobjekt 112 entspricht. Das Kontaktmaß kann zum Beispiel einen oder mehrere Kraft- oder Drehmomentmesswerte beinhalten, die mit Kräften verbunden sind, die von dem Endeffektor auf das Zielobjekt 112 ausgeübt werden. Nachstehend sind Einzelheiten zum Kontaktmaß beschrieben.
-
3A, 3B und 3C sind Veranschaulichungen eines Objekts 302 in verschiedenen Posen (z. B. einer ersten Pose 312, einer zweiten Pose 314 und/oder einer dritten Pose 316). Eine Pose kann einen Standort und/oder eine Ausrichtung des Objekts 302 darstellen. Anders ausgedrückt kann die Pose eine Translationskomponente und/oder eine Rotationskomponente gemäß einem Rastersystem, das von dem Robotersystem 100 verwendet wird, beinhalten. In einigen Ausführungsformen kann die Pose durch einen Vektor, einen Satz von Winkeln (z. B. Euler'scher Winkel und/oder Roll-Nick-Gierwinkel), eine homogene Transformation oder eine Kombination davon dargestellt sein. Die Transformation des Objekts 302 kann eine Darstellung einer Kombination aus der Translationskomponente, der Rotationskomponente, einer Änderung bei diesen oder einer Kombination davon beinhalten. Das Robotersystem 100 kann eine Bildgebungsausgabe (z. B. ein zweidimensionales Bild, ein dreidimensionales Bild, eine Punktwolke und/oder andere Bildgebungsdaten von den Bildgebungsvorrichtungen 222 aus 2) verarbeiten, um die Pose des Objekts 302 zu ermitteln. Das Robotersystem 100 kann zum Beispiel die Bildgebungsausgabe einer oder mehrerer Kameras analysieren, die auf den Aufnahmebereich gerichtet sind, um die Pose des sich darin befindlichen Objekts 302 (z. B. des Zielobjekts 112 aus 1) zu ermitteln.
-
Zum Ermitteln der Pose kann das Robotersystem 100 zuerst die Bildgebungsdaten gemäß einem Mustererkennungsmechanismus und/oder einem Regelsatz analysieren, um Objektkonturen (z. B. Umfangskanten oder -flächen) zu ermitteln. Das Robotersystem 100 kann ferner Gruppierungen von Objektkonturen (z. B. nach vorgegebenen Regeln und/oder Posenvorlagen) als jeder eindeutigen Instanz von Objekten entsprechend ermitteln. Das Robotersystem 100 kann beispielsweise die Gruppierungen der Objektkonturen ermitteln, die in der Farbe, der Helligkeit, der Tiefe/Position oder einer Kombination davon über die Objektlinien hinweg einem Muster entsprechen (z. B. gleiche Werte oder mit bekannter Rate/bekanntem Muster variierend). Beispielsweise kann das Robotersystem 100 die Gruppierungen der Objektkonturen auch nach vorgegebenen Form-/Posenvorlagen ermitteln, die in den Stammdaten 252 aus 2 definiert sind.
-
Sobald die Objektumrisse gruppiert sind, kann das Robotersystem 100 die Pose des Objekts 302 in Bezug auf ein oder mehrere Koordinatensysteme ermitteln, wie etwa gemäß einem Raster oder einem Koordinatensystem, das von dem Robotersystem 100 verwendet wird. Das Robotersystem 100 kann zum Beispiel eine oder mehrere Flächen, Kanten und/oder Punkte des Objekts 302 und deren Ausrichtung/Position gemäß einem oder mehreren Koordinatensystemen ermitteln.
-
In einigen Ausführungsformen kann das Robotersystem 100 eine oder mehrere freiliegende Flächen (z. B. eine erste freiliegende Fläche 304, eine zweite freiliegende Fläche 306 usw.) des Objekts 302 in den Bildgebungsdaten ermitteln. Das Robotersystem 100 kann beispielsweise mithilfe der Bildgebungsdaten gemäß den Objektkonturen und den Kalibrier- oder Abbildungsdaten für die Bildgebungsvorrichtungen 222 eine Umrissform und/oder eine oder mehrere Abmessungen (z. B. Länge, Breite und/oder Höhe) des Objekts 302 bestimmen. Das Robotersystem 100 kann die bestimmten Abmessungen mit entsprechenden Daten in den Stammdaten 252 vergleichen, um das Objekt 302 zu ermitteln. Ferner kann das Robotersystem 100 eine freiliegende Fläche als obere Fläche 322 des Objekts oder untere Fläche 324 des Objekts ermitteln, wenn die Abmessungen der freiliegenden Fläche mit einer Länge und einer Breite des ermittelten Objekts übereinstimmen. Zudem kann das Robotersystem 100 die freiliegende Fläche als Umfangsfläche 326 des Objekts ermitteln, wenn eine der Abmessungen der freiliegenden Fläche mit einer Höhe des ermittelten Objekts übereinstimmt.
-
In einigen Ausführungsformen kann das Robotersystem 100 beispielsweise das Objekt 302 auf Grundlage einer oder mehrerer Markierungen (z. B. einem Buchstaben, einer Zahl, einer Form, einem sichtbaren Bild, einem Logo oder einer Kombination davon) ermitteln, die auf der einen oder den mehreren freiliegenden Flächen dargestellt sind. Das Robotersystem 100 kann das Objekt 302 auf Grundlage des Vergleichens der Markierungen mit einem oder mehreren vorgegebenen Bildern in den Stammdaten 252 ermitteln. Das Robotersystem 100 kann zum Beispiel ein oder mehrere Bilder eines Produktnamens, eines Logos, eines Designs/Bildes auf der Verpackungsoberfläche oder eine Kombination davon in den Stammdaten 252 beinhalten. Das Robotersystem 100 kann einen Abschnitt der Bildgebungsdaten (z. B. einen Abschnitt innerhalb der Objektkonturen des Objekts 302) mit den Stammdaten 252 vergleichen, um das Objekt 302 zu ermitteln. Auf ähnliche Weise kann das Robotersystem 100 eine Ausrichtung des Objekts 302 auf Grundlage des Abgleichens des Abschnitts der Bildgebungsdaten mit einem vorgegebenen Bildmuster, das für eine Fläche einzigartig ist, ermitteln.
-
Als veranschaulichendes Beispiel veranschaulichen 3A, 3B und 3C beispielhafte Bildgebungsdaten, die verschiedenen Posen des Objekts 302 entsprechen. 3A veranschaulicht eine erste Pose 312, bei der die erste freiliegende Fläche 304 (z. B. eine nach oben zeigende freiliegende Fläche) die obere Fläche 322 des Objekts ist und die zweite freiliegende Fläche 306 (z. B. eine im Allgemeinen zu einer Quelle der Bildgebungsdaten zeigende freiliegende Fläche) eine der Umfangsflächen 326 des Objekts ist.
-
Beim Ermitteln der freiliegenden Flächen kann das Robotersystem 100 die Bildgebungsdaten aus 3A verarbeiten, um die Abmessungen (z. B. Anzahl der Pixel) der ersten freiliegenden Fläche 304 und/oder der zweiten freiliegenden Fläche 306 zu messen. Das Robotersystem 100 kann die Messungen in den Bildgebungsdaten unter Verwendung einer vorgegebenen Kamerakalibrierung oder Abbildungsfunktion auf reale Abmessungen abbilden. Das Robotersystem 100 kann die abgebildeten Abmessungen mit Abmessungen bekannter/erwarteter Objekte in den Stammdaten 252 vergleichen und das Objekt auf Grundlage des Abgleichens der Abmessungen ermitteln. Ferner kann das Robotersystem 100 ermitteln, dass die erste freiliegende Fläche 304 entweder die obere Fläche 322 des Objekts oder die untere Fläche 324 des Objekts ist, da ein Paar sich schneidender Objektkanten, die die erste freiliegende Fläche 304 begrenzen, mit der Länge und der Breite des ermittelten Objekts übereinstimmt. Auf ähnliche Weise kann das Robotersystem 100 die zweite freiliegende Fläche 306 als Umfangsfläche 326 des Objekts ermitteln, da eine der Objektkanten, die die zweite freiliegende Fläche 306 definieren, mit der Höhe des ermittelten Objekts übereinstimmt.
-
In einigen Ausführungsformen kann das Robotersystem 100 die Bildgebungsdaten aus 3A verarbeiten, um eine oder mehrere Markierungen zu ermitteln, die für eine Fläche des Objekts einzigartig sind. Das Robotersystem 100 kann zum Beispiel in den Stammdaten 252 ein oder mehrere Bilder und/oder andere sichtbare Eigenschaften (z. B. Farbe, Abmessung, Größe usw.) von Flächen und/oder eindeutige Markierungen des Objekts, wie vorstehend beschrieben, beinhalten. Wie in 3A veranschaulicht, kann das Robotersystem 100 das Objekt als das in den Stammdaten 252 aufgeführte Objekt ermitteln, das ein „A“ auf der oberen Fläche 322 des Objekts aufweist. Dementsprechend kann das Robotersystem 100 ferner die erste freiliegende Fläche 304 als obere Fläche 322 des Objekts ermitteln.
-
In einigen Ausführungsformen kann das Robotersystem 100 in den Stammdaten 252 Informationen über eine Objektkennzeichnung 332 (z. B. eine computerlesbare sichtbare Kennzeichnung, wie z. B. einen Strichcode oder einen QR-Code, die für das Objekt 302 eindeutig ist) beinhalten. Die Stammdaten 252 können zum Beispiel das Bild und/oder die kodierte Meldung der Objektkennzeichnung 332, eine Position 334 der Kennzeichnung in Bezug auf eine Fläche und/oder einen Kantensatz, eine oder mehrere sichtbare Eigenschaften davon oder eine Kombination davon beinhalten. Wie in 3A veranschaulicht, kann das Robotersystem 100 auf Grundlage dessen, dass die Objektkennzeichnung 332 auf der Fläche vorhanden ist und/oder deren Position mit der Position 334 der Kennzeichnung übereinstimmt, die zweite freiliegende Fläche 306 als die Umfangsfläche 326 des Objekts ermitteln.
-
3B veranschaulicht eine zweite Pose 314, bei der das Objekt 302 um 90 Grad um eine senkrechte Achse entlang einer Richtung B in 3A gedreht ist. Ein Referenzpunkt „α” des Objekts 302 kann sich zum Beispiel in 3A in der linken unteren Ecke und in 3B in der rechten unteren Ecke befinden. Dementsprechend kann die obere Fläche 322 des Objekts in den Bildgebungsdaten im Vergleich zur ersten Pose 312 in einer anderen Ausrichtung zu sehen sein und/oder die Umfangsfläche 326 des Objekts, die die Objektkennzeichnung 332 aufweist, kann nicht sichtbar sein.
-
Das Robotersystem 100 kann die verschiedenen Posen auf Grundlage einer besonderen Ausrichtung einer oder mehrerer identifizierender sichtbarer Eigenschaften ermitteln. Das Robotersystem 100 kann zum Beispiel die erste Pose 312 und/oder die dritte Pose 316 bestimmen, wenn sich eine Abmessung, die mit einer bekannten Länge eines Objekts übereinstimmt, in den Bildgebungsdaten waagerecht erstreckt, eine Abmessung, die mit einer bekannten Höhe des Objekts übereinstimmt, sich in den Bildgebungsdaten senkrecht erstreckt und/oder eine Abmessung, die mit einer bekannten Breite des Objekts übereinstimmt, sich in den Bildgebungsdaten entlang einer Tiefenachse erstreckt. Auf ähnliche Weise kann das Robotersystem 100 die zweite Pose 314 bestimmen, wenn sich die Abmessung, die mit der Breite übereinstimmt, waagerecht erstreckt, sich die Abmessung, die mit der Höhe übereinstimmt, senkrecht erstreckt, und/oder sich die Abmessung, die mit der Länge übereinstimmt, entlang der Tiefenachse erstreckt. Beispielsweise kann das Robotersystem 100 zudem auf Grundlage einer Ausrichtung einer sichtbaren Markierung, wie etwa „A”, wie sie in 3A und 3B gezeigt ist, bestimmen, dass sich das Objekt 302 in der ersten Pose 312 oder der zweiten Pose 314 befindet. Außerdem kann das Robotersystem 100 beispielsweise gemäß sichtbaren Markierungen, die auf einer Kombination von Flächen zu sehen sind, bestimmen, dass sich das Objekt 302 in der ersten Pose 312 befindet, wie etwa, wenn die Objektkennzeichnung 332 mit der Markierung „A” sichtbar ist (d. h. auf verschiedenen Flächen).
-
3C veranschaulicht eine dritte Pose 316, bei der das Objekt 302 um 180 Grad um eine waagerechte Achse entlang einer Richtung C in 3A gedreht ist. Ein Referenzpunkt „α” des Objekts 302 kann sich zum Beispiel in 3A in der unteren linken vorderen Ecke und in 3C in der oberen linken hinteren Ecke befinden. Dementsprechend kann im Vergleich zur ersten Pose 312 die erste freiliegende Fläche 304 die untere Fläche 324 des Objekts sein und sowohl die obere Fläche 322 des Objekts als auch die Umfangsfläche 326 des Objekts, die die Objektkennzeichnung 332 aufweisen, können nicht sichtbar sein.
-
Wie vorstehend beschrieben, kann das Robotersystem 100 auf Grundlage der Abmessungen ermitteln, dass sich das Objekt 302 entweder in der ersten Pose 312 oder in der dritten Pose 316 befindet. Das Robotersystem 100 kann ermitteln, dass sich das Objekt 302 in der ersten Pose 312 befindet, wenn eine Markierung (z. B. „A”) der oberen Fläche sichtbar ist. Zudem kann das Robotersystem 100 ermitteln, dass sich das Objekt 302 in der dritten Pose 316 befindet, wenn eine Markierung (z. B. eine Instanz der Objektkennzeichnung 332) der unteren Fläche sichtbar ist.
-
Beim Bestimmen der Pose des Objekts 302 können reale Bedingungen die Korrektheit der Bestimmung beeinflussen. So können beispielsweise die Lichtverhältnisse die Sichtbarkeit von Markierungen auf den Flächen verringern, wie etwa durch Reflexionen und/oder Schatten. Zudem kann eine tatsächliche Ausrichtung des Objekts 302 eine Belichtung oder einen Betrachtungswinkel einer oder mehrerer der präsentierten Flächen verringern, so dass beliebige Markierungen darauf möglicherweise nicht ermittelbar sind. Daher kann das Robotersystem 100 in einigen Ausführungsformen ein Konfidenzmaß berechnen, das mit einer bestimmten Pose verbunden ist. Das Konfidenzmaß kann ein Maß der Korrektheit der bestimmten Pose darstellen. In einigen Ausführungsformen kann das Konfidenzmaß einer Wahrscheinlichkeit entsprechen, dass die bestimmte Pose mit der tatsächlichen Pose des Objekts 302 übereinstimmt.
-
In einigen Ausführungsformen kann das Robotersystem 100 beispielsweise das Konfidenzmaß auf Grundlage eines Maßes der Übereinstimmung berechnen, das bei der Bestimmung der Pose verwendet wurde. Das Robotersystem 100 kann zum Beispiel das Konfidenzmaß auf Grundlage eines Sicherheitsintervalls berechnen, das mit den Messungen von Abmessungen in dem Bild verbunden ist. In einigen Ausführungsformen kann das Sicherheitsintervall zunehmen, wenn ein Abstand zwischen dem Objekt 302 und der Bildgebungsquelle (z. B. den Bildgebungsvorrichtungen 222 aus 2) abnimmt und/oder wenn eine gemessene Kante des Objekts 302 eher orthogonal zu einer von der Bildgebungsquelle ausgehenden Richtung als parallel zu der ausgehenden Richtung ist. Zudem kann das Robotersystem 100 das Konfidenzmaß auf Grundlage eines Übereinstimmungsgrads zwischen einer Markierung oder einem Design in den Bildgebungsdaten und einer bekannten Markierung/einem bekannten Design in den Stammdaten 252 berechnen. In einigen Ausführungsformen kann das Robotersystem 100 ein Überlappungs- oder ein Abweichungsmaß zwischen den Bildgebungsdaten oder einem Abschnitt davon und den vorgegebenen Markierungen/Bildern verwenden. Das Robotersystem 100 kann das Objekt und/oder die Ausrichtung gemäß dem größten Überlappungs- und/oder dem kleinsten Abweichungsmaß ermitteln, wie etwa für einen Mechanismus des minimalen mittleren Fehlerquadrats (Minimum Mean Square Error - MMSE). Darüber hinaus kann das Robotersystem das Konfidenzmaß auf Grundlage des resultierenden Überlappungs-/Abweichungsmaßes berechnen. Wie nachstehend detaillierter beschrieben, kann das Robotersystem 100 einen Bewegungspfad gemäß dem Konfidenzmaß berechnen. Anders ausgedrückt kann das Robotersystem 100 das Objekt 302 gemäß dem Konfidenzmaß unterschiedlich bewegen.
-
4 ist eine Draufsicht, die eine beispielhafte Aufgabe 402 veranschaulicht, die von dem Robotersystem 100 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung ausgeführt wird. Wie vorstehend beschrieben, kann die Aufgabe 402 eine Abfolge von Vorgängen darstellen, die vom Robotersystem 100 ausgeführt werden (z. B. von einer der vorstehend beschriebenen Einheiten, wie der Überführungseinheit 104 aus 1), um ein Ziel zu erreichen. Wie beispielsweise in 4 veranschaulicht, kann die Aufgabe 402 das Bewegen des Zielobjekts 112 von der Startposition 114 (z. B. einer Position auf/in einer Wareneingangspalette oder einem Wareneingangsbehälter) zu der Aufgabenposition 116 (z. B. einer Position auf/in einer sortierten Palette oder einem Behälter) beinhalten. Die Aufgabe 402 kann ferner das Abtasten des Zielobjekts 112 beinhalten, während es sich von der Startposition 114 zu der Aufgabenposition 116 bewegt. Dementsprechend kann das Robotersystem 100 die Objektverfolgungsdaten 254 aus 2 entsprechend den abgetasteten Informationen aktualisieren, wie etwa durch das Hinzufügen, Entfernen und/oder Überprüfen des abgetasteten Objekts zu/von den Objektverfolgungsdaten 254.
-
In einigen Ausführungsformen kann das Robotersystem 100 einen vorgegebenen Bereich bildlich darstellen, um die Startposition 114 zu ermitteln und/oder zu lokalisieren. Das Robotersystem 100 kann zum Beispiel eine Ausgangsabtasteinrichtung 412 (z. B. eine Instanz der Bildgebungsvorrichtungen 222 aus 2) beinhalten, die auf einen Aufnahmebereich, wie etwa einen für eine Beschaffungspalette oder einen Beschaffungsbehälter festgelegten Bereich und/oder eine Region auf einer Wareneingangsseite des Förderbands, gerichtet ist. Das Robotersystem 100 kann die Ausgangsabtasteinrichtung 412 verwenden, um Bildgebungsdaten (z. B. ein aufgenommenes Bild und/oder eine Punktwolke) des festgelegten Bereichs zu erzeugen. Das Robotersystem 100 kann (z. B. über die Prozessoren 202 aus 2) Prozesse des Computersehens für die Bildgebungsdaten umsetzen, um die unterschiedlichen Objekte (z. B. Kisten oder Kästen), die sich in dem festgelegten Bereich befinden, zu ermitteln. Nachstehend sind Einzelheiten zur Objektermittlung beschrieben.
-
Aus den erkannten Objekten kann das Robotersystem 100 (z. B. gemäß einer vorgegebenen Abfolge oder einem Regelsatz und/oder Vorlagen von Objektkonturen) ein Objekt als das Zielobjekt 112 für eine Ausführung der Aufgabe 402 auswählen. Das Robotersystem 100 kann ferner die Bildgebungsdaten für das ausgewählte Zielobjekt 112 verarbeiten, um die Startposition 114 und/oder eine Anfangspose zu bestimmen. Nachstehend sind Einzelheiten zur Auswahl und Bestimmung der Position/Pose beschrieben.
-
Das Robotersystem 100 kann ferner einen anderen vorgegebenen Bereich bildlich darstellen und verarbeiten, um die Aufgabenposition 116 zu ermitteln. In einigen Ausführungsformen kann das Robotersystem 100 zum Beispiel eine weitere Instanz der Bildgebungsvorrichtungen 222 (nicht gezeigt) beinhalten, die dazu ausgelegt ist, Bildgebungsdaten eines Platzierungsbereichs, wie etwa eines für eine sortierte Palette oder einen sortierten Behälter festgelegten Bereichs und/oder einer Region auf einer Beschickungsseite des Förderbandes, zu erzeugen. Das Bildgebungsergebnis kann (z. B. über die Prozessoren 202) verarbeitet werden, um die Aufgabenposition 116 und/oder eine entsprechende Pose zum Platzieren des Zielobjekts 112 zu ermitteln. In einigen Ausführungsformen kann das Robotersystem 100 die Aufgabenposition 116 gemäß einer vorgegebenen Abfolge oder einem Regelsatz zum Stapeln und/oder Anordnen mehrerer Objekte (auf Grundlage des Bildgebungsergebnisses oder nicht) ermitteln.
-
In einigen Ausführungsformen kann die Aufgabe 402 das Abtasten (z. B. das Abtasten der Objektkennzeichnung 332 aus 3A und/oder 3C) des Zielobjekts 112 zu Produkterfassungszwecken und/oder zum weiteren Ermitteln des Zielobjekts 112 beinhalten. Das Robotersystem 100 kann zum Beispiel eine oder mehrere Objektabtasteinrichtungen 416 (z. B. weitere Instanzen der Bildgebungsvorrichtungen 222, wie etwa Strichcode-Scanner oder QR-Code-Scanner) beinhalten, die dazu ausgelegt sind, das Zielobjekt 112 gewöhnlich an einer oder mehreren Positionen zwischen dem Aufnahmebereich und dem Platzierungsbereich, abzutasten. In einigen Ausführungsformen können die Objektabtasteinrichtungen 416 in waagerechte Richtungen zeigen, um Markierungen abzutasten, die benachbart zu den Abtasteinrichtungen liegen (z. B. in einer Höhe, die der des/der entsprechenden Abtasteinrichtung(en) entspricht) und sich auf vertikal ausgerichteten Flächen befinden. In einigen Ausführungsformen können die Objektabtasteinrichtungen 416 in senkrechte Richtungen zeigen, um Markierungen abzutasten, die sich über/unter der Abtasteinrichtung und auf waagerecht ausgerichteten Flächen befinden. In einigen Ausführungsformen können die Objektabtasteinrichtungen 416 einander zugewandt sein, derart dass sie gegenüberliegende Seiten des Objekts, das zwischen den Objektabtasteinrichtungen 416 platziert wird, abtasten können. Gemäß der Position und/oder Abtastrichtung der Objektabtasteinrichtungen 416 kann das Robotersystem 100 das Zielobjekt 112 handhaben, um das Zielobjekt 112 an einer Präsentationsposition und/oder gemäß einer Präsentationspose zum Abtasten einer oder mehrerer Flächen/Abschnitte des Zielobjekts 112 mit den Objektabtasteinrichtungen 416 zu platzieren.
-
Unter Verwendung der ermittelten Startposition 114 und/oder der Aufgabenposition 116 kann das Robotersystem 100 eine oder mehrere Strukturen (z. B. einen Roboterarm 414 und/oder den Endeffektor) einer entsprechenden Einheit (z. B. der Überführungseinheit 104) bedienen, um die Aufgabe 402 auszuführen. Entsprechend kann das Robotersystem 100 (z. B. über die Prozessoren 202) einen Bewegungsplan berechnen (z. B. über Bewegungsplanregeln oder - algorithmen), der einem oder mehreren Vorgängen entspricht, die durch die entsprechende Einheit umgesetzt werden, um die Aufgabe 402 auszuführen. Der Bewegungsplan für die Überführungseinheit 104 kann zum Beispiel das Positionieren des Endeffektors an einer Annäherungsposition (z. B. einer Position/Stellung zum Platzieren eines Endeffektors, so dass er das Zielobjekt 112 berühren und greifen kann), das Greifen des Zielobjekts 112, das Anheben des Zielobjekts 112, das Überführen des Zielobjekts 112 von einer Stelle über der Startposition 114 zu der Präsentationsposition/Präsentationspose für den Abtastvorgang, das Überführen des Zielobjekts 112 von der Präsentationsposition zu einer Stelle über der Aufgabenposition 116, das Absenken des Zielobjekts 112 und das Freigeben des Zielobjekts 112 beinhalten.
-
In einigen Ausführungsformen kann das Robotersystem 100 den Bewegungsplan durch Bestimmen einer Abfolge von Befehlen und/oder Einstellungen für eine oder mehrere der Betätigungsvorrichtungen 212 aus 2, die den Roboterarm 414 und/oder den Endeffektor bedienen, berechnen. Das Robotersystem 100 kann zum Beispiel die Prozessoren 202 verwenden, um die Befehle und/oder Einstellungen der Betätigungsvorrichtungen 212 zum Handhaben des Endeffektors und des Roboterarms 414 zu berechnen, um den Endeffektor (z. B. einen Greifer) an der Annäherungsposition bei der Startposition 114 zu platzieren, das Zielobjekt 112 mit dem Endeffektor in Eingriff zu nehmen und zu greifen, den Endeffektor in einer Abtaststellung (z. B. einer festgelegten Position und/oder Ausrichtung) an der Präsentationsposition zu platzieren, den Endeffektor an einer bestimmten Position an der Aufgabenposition 116 zu platzieren und das Zielobjekt 112 von dem Endeffektor freizugeben. Das Robotersystem 100 kann die Vorgänge zum Erfüllen der Aufgabe 402 ausführen, indem es die Betätigungsvorrichtungen 212 gemäß der bestimmten Abfolge von Befehlen und/oder Einstellungen betreibt.
-
In einigen Ausführungsformen kann das Robotersystem 100 den Bewegungsplan auf Grundlage eines Konfidenzmaßes ableiten, das ein Maß der Sicherheit oder Wahrscheinlichkeit dafür darstellt, dass die bestimmte Pose mit der tatsächlichen realen Pose des Zielobjekts 112 übereinstimmt. Das Robotersystem 100 kann zum Beispiel den Endeffektor gemäß dem Konfidenzmaß an verschiedenen Positionen zur Aufnahme platzieren, wie etwa zum Greifen oder Bedecken verschiedener Flächen, unterschiedliche Präsentationspositionen/Präsentationsposen für das Zielobjekt 112 berechnen oder eine Kombination davon.
-
Als veranschaulichendes Beispiel kann das Zielobjekt 112 das Objekt 302 aus 3A sein, das in der ersten Pose 312 aus 3A platziert ist (d. h. die obere Fläche 322 des Objekts aus 3A zeigt im Allgemeinen nach oben und ist freiliegend). Wenn das Konfidenzmaß hoch ist (d. h. ein Grad der Sicherheit über einem Schwellenwert liegt, was darstellt, dass die bestimmte Pose mit höherer Wahrscheinlichkeit korrekt ist), kann das Robotersystem 100 einen ersten Bewegungsplan 422 berechnen, der eine erste Annäherungsposition 432 und eine erste Präsentationsposition 442 beinhaltet. Da beispielsweise die obere Fläche 322 des Objekts mit hinreichender Sicherheit nach oben zeigt (d. h. die untere Fläche 324 des Objekts aus 3C mit der Objektkennzeichnung 332 aus 3C nach unten zeigt), kann das Robotersystem 100 den ersten Bewegungsplan 422, der die erste Annäherungsposition 432 beinhaltet, zum Platzieren des Endeffektors direkt über der oberen Fläche 322 des Objekts berechnen. Dementsprechend kann das Robotersystem 100 das Zielobjekt 112 greifen, wobei der Endeffektor die obere Fläche 322 des Objekts berührt/bedeckt, derart dass die untere Fläche 324 des Objekts freiliegend ist. Zudem kann das Robotersystem 100 den ersten Bewegungsplan 422 berechnen, der die erste Präsentationsposition 442 für das Zielobjekt 112 direkt über einer nach oben zeigenden Abtasteinrichtung zum Abtasten der Objektkennzeichnung 332, die sich auf der unteren Fläche 324 des Objekts befindet, beinhaltet.
-
Wenn dagegen das Konfidenzmaß niedrig ist (d. h. ein Grad der Sicherheit unter einem Schwellenwert liegt, was darstellt, dass die bestimmte Pose mit geringerer Wahrscheinlichkeit korrekt ist), kann das Robotersystem 100 einen zweiten Bewegungsplan 424 (d. h. einen sich von dem ersten Bewegungsplan 422 unterscheidenden Bewegungsplan) berechnen, der eine zweite Annäherungsposition 434 und eine oder mehr zweite Präsentationspositionen 444 beinhaltet. Das Robotersystem 100 kann zum Beispiel die Abmessungen des Zielobjekts 112 messen und vergleichen und bestimmen (z. B. wenn die Sicherheitsniveaus der Messungen einen vorgegebenen Schwellenwert übersteigen), dass sich das Objekt entweder in der ersten Pose 312 aus 3A oder der dritten Pose 316 aus 3C befindet. Das bildliche Darstellen/Verarbeiten von Markierungen, die auf die Fläche des Zielobjekts 112 gedruckt sind, kann dem Robotersystem 100 jedoch Schwierigkeiten bereiten, derart dass das Konfidenzmaß, das mit der bestimmten Pose verbunden ist, unter einem Schwellenwert liegt. Anders ausgedrückt kann das Robotersystem 100 nicht hinreichend sicher sein, ob die nach oben zeigende freiliegende Fläche die obere Fläche 322 des Objekts (z. B. die erste Pose 312) oder die untere Fläche 324 des Objekts (z. B. die dritte Pose 316) ist.
-
Aufgrund des höheren Unsicherheitsgrades kann das Robotersystem 100 den zweiten Bewegungsplan 424, der die zweite Annäherungsposition 434 beinhaltet, zum Platzieren des Endeffektors benachbart (z. B. ausgerichtet auf und/oder in eine parallele Richtung zu der oberen Fläche 322 des Objekts und/oder der unteren Fläche 324 des Objekts zeigend) zu einer der Umfangsflächen 326 des Objekts aus 3A berechnen. Dementsprechend kann das Robotersystem 100 das Zielobjekt 112 greifen, wobei der Endeffektor eine der Umfangsflächen 326 des Objekts berührt/bedeckt und sowohl die obere Fläche 322 des Objekts als auch die untere Fläche 324 des Objekts freigelegt werden. Das Robotersystem 100 kann die obere Fläche 322 des Objekts und die untere Fläche 324 des Objekts gleichzeitig oder nacheinander vor den Objektabtasteinrichtungen 416 (z. B. in deren Abtastfeldern und/oder zu diesen zeigend) präsentieren oder platzieren. Wenn das Zielobjekt 112 für die Abtastung platziert wurde, kann das Robotersystem 100 die Objektabtasteinrichtungen 416 (z. B. mindestens die zu der oberen Fläche 322 des Objekts und der unteren Fläche 324 des Objekts zeigenden Abtasteinrichtungen) so bedienen, dass sie die präsentierten Flächen gleichzeitig und/oder nacheinander abtasten und die Objektkennzeichnung(en) 332 darauf aufnehmen.
-
Zudem kann das Robotersystem 100 den zweiten Bewegungsplan 424, der die zweite(n) Präsentationsposition(en) 444 beinhaltet, zum Platzieren einer anfänglich nach unten zeigenden Fläche (der unteren Fläche 324 des Objekts) waagerecht und direkt über einer nach oben zeigenden Abtasteinrichtung und/oder zum Platzieren einer anfänglich nach oben zeigenden Fläche (der oberen Fläche 322 des Objekts) senkrecht und direkt vor einer in die waagerechte Richtung zeigenden Abtasteinrichtung berechnen. Der zweite Bewegungsplan 424 kann einen Neuausrichtungs-/Drehvorgang (z. B. wie durch einen gestrichelten, ungefüllten Kreis dargestellt) beinhalten, um die zwei Präsentationspositionen/Präsentationsposen bereitzustellen und dabei beide gegenüberliegenden oberen/unteren Flächen unter Verwendung orthogonal ausgerichteter Abtasteinrichtungen abzutasten. Beispielsweise kann das Robotersystem 100 nacheinander die obere Fläche 322 des Objekts einer nach oben zeigenden Abtasteinrichtung präsentieren und abtasten und dann das Zielobjekt 112 um 90 Grad drehen, um die untere Fläche 324 des Objekts einer in die waagerechte Richtung zeigenden Abtasteinrichtung zum Abtasten zu präsentieren. In einigen Ausführungsformen kann der Neuausrichtungs-/Drehvorgang von Bedingungen abhängig sein, derart dass das Robotersystem 100 die entsprechenden Befehle umsetzt, wenn das erste Abtasten in Bezug auf das Lesen der Objektkennzeichnung 332 nicht erfolgreich ist.
-
Alternativ kann das Robotersystem 100 beispielsweise einen Bewegungsplan (nicht gezeigt) zum Greifen/Bedecken einer der Umfangsflächen 326 des Objekts entlang der Breite des Zielobjekts 112 berechnen, wenn das Konfidenzmaß niedrig ist. Das Robotersystem 100 kann das Zielobjekt 112 zwischen einem waagerecht gegenüberliegenden Paar der Objektabtasteinrichtungen 416 bewegen, um die Umfangsflächen 326 des Objekts entlang der Länge des Zielobjekts 112 zu präsentieren, um die Objektkennzeichnung 332 auf einer dieser Umfangsflächen (z. B. wie in 3A gezeigt) abzutasten. Einzelheiten zur Bewegungsplanung auf Grundlage des Konfidenzmaßes sind nachstehend beschrieben.
-
Beim Ausführen der Vorgänge für die Aufgabe 402 kann das Robotersystem 100 eine aktuelle Position (z. B. einen Satz von Koordinaten, der einem von dem Robotersystem 100 verwendeten Raster entspricht) und/oder eine aktuelle Pose des Zielobjekts 112 verfolgen. Beispielsweise kann das Robotersystem 100 (z. B. über die Prozessoren 202) die aktuelle Position/Pose gemäß den Daten von den Stellungssensoren 224 aus 2 verfolgen. Das Robotersystem 100 kann einen oder mehrere Abschnitte des Roboterarms 414 (z. B. die strukturellen Elemente und/oder deren Gelenke) gemäß den Daten von den Stellungssensoren 224 in der kinetischen Kette lokalisieren. Das Robotersystem 100 kann ferner die Position/Pose des Endeffektors und damit die aktuelle Position des Zielobjekts 112, das vom Endeffektor gehalten wird, auf Grundlage der Position und Ausrichtung des Roboterarms 414 berechnen. Zudem kann das Robotersystem 100 die aktuelle Position auf Grundlage der Verarbeitung anderer Sensormesswerte (z. B. Kraftmesswerte oder Messwerte von Beschleunigungsmessern), der ausgeführten Betätigungsbefehle/Einstellungen und/oder der damit verbundenen Zeitpunkte oder einer Kombination davon gemäß einem Koppelnavigationsmechanismus verfolgen.
-
5A ist ein Flussdiagramm für ein Verfahren 500 zum Betreiben des Robotersystems 100 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung. Das Verfahren 500 kann zum Ausführen der Aufgabe 402 aus 4 gemäß einem Konfidenzmaß, das mit einer Anfangsposenbestimmung verbunden ist, dienen. Das Verfahren 500 kann zum Ableiten/Berechnen und Umsetzen eines Bewegungsplans auf Grundlage des Konfidenzmaßes dienen. Das Verfahren 500 kann auf Grundlage der Ausführung der Anweisungen, die auf einer oder mehreren der Speichervorrichtungen 204 aus 2 gespeichert sind, mit einem oder mehreren der Prozessoren 202 aus 2 umgesetzt werden.
-
Bei Block 501 kann das Robotersystem 100 Abtastfelder von einer oder mehreren der Bildgebungsvorrichtungen 222 aus 2 ermitteln. Das Robotersystem 100 kann zum Beispiel (z. B. über einen oder mehrere der Prozessoren 202) Stellen ermitteln, die von einer oder mehreren der Bildgebungsvorrichtungen 222, wie etwa der Ausgangsabtasteinrichtung 412 aus 4 und/oder den Objektabtasteinrichtungen 416 aus 4, abgetastet werden können. In einigen Ausführungsformen kann das Robotersystem 100 die Abtastfelder, die in entgegengesetzte Richtungen und/oder orthogonale Richtungen gemäß den Ausrichtungen der Objektabtasteinrichtungen 416 ausgerichtet sind, ermitteln. Wie in 4 veranschaulicht, können die Objektabtasteinrichtungen 416 in einigen Ausführungsformen einander gegenüberliegend und/oder einander zugewandt angeordnet sein, beispielsweise in einer waagerechten Richtung oder in einer senkrechten Richtung. Zudem können die Objektabtasteinrichtungen 416 in einigen Ausführungsformen senkrecht zueinander angeordnet sein, wie etwa wenn eine nach oben oder unten und eine andere in eine waagerechte Richtung zeigt.
-
In einigen Ausführungsformen kann das Robotersystem 100 zum Beispiel die Abtastfelder gemäß den Stammdaten 252 ermitteln. Die Stammdaten 252 können Rasterpositionen, Koordinaten und/oder andere Markierungen beinhalten, die die Bildgebungsvorrichtungen 222 und/oder die entsprechenden Abtastfelder darstellen. Die Stammdaten 252 können gemäß einer Anordnung und/oder einer physischen Platzierung der Bildgebungsvorrichtungen 222, den Fähigkeiten der Bildgebungsvorrichtungen 222, Umgebungsfaktoren (z. B. Lichtverhältnisse und/oder Hindernisse/Strukturen) oder einer Kombination davon vorgegeben werden. In einigen Ausführungsformen kann das Robotersystem 100 einen Kalibrierungsprozess umsetzen, um die Abtastfelder zu ermitteln. Das Robotersystem 100 kann zum Beispiel die Überführungseinheit 104 aus 1 verwenden, um eine bekannte Markierung oder einen bekannten Code an einem Satz von Positionen zu platzieren und bestimmen, ob die entsprechende Bildgebungsvorrichtung die bekannte Markierung korrekt abtastet. Das Robotersystem 100 kann die Abtastfelder auf Grundlage der Positionen der bekannten Markierung ermitteln, die zu korrekten Abtastergebnissen geführt haben.
-
Bei Block 502 kann das Robotersystem 100 festgelegte Bereiche abtasten. In einigen Ausführungsformen kann das Robotersystem 100 (z. B. über Befehle/Aufforderungen, die von den Prozessoren 202 gesendet werden) eine oder mehrere der Bildgebungsvorrichtungen 222 (z. B. die Ausgangsabtasteinrichtung 412 aus 4 und/oder andere Bereichsabtasteinrichtungen) verwenden, um Bildgebungsdaten (z. B. aufgenommene digitale Bilder und/oder Punktwolken) von einem oder mehreren festgelegten Bereichen, wie dem Aufnahmebereich und/oder dem Abgabebereich (z. B. der Ausgangspalette/dem Ausgangsbehälter/Ausgangsförderer und/oder der Aufgabenpalette/dem Aufgabenbehälter/Aufgabenförderer), zu erzeugen. Die Bildgebungsdaten können von den Bildgebungsvorrichtungen 222 an den einen oder die mehreren Prozessoren 202 übermittelt werden. Dementsprechend können einer oder mehrere der Prozessoren 202 die Bildgebungsdaten zur weiteren Verarbeitung empfangen, die den Aufnahmebereich (der z. B. Objekte vor der Ausführung der Aufgabe beinhaltet) und/oder den Ausgabebereich (der z. B. Objekte nach der Ausführung der Aufgabe beinhaltet) darstellen.
-
Bei Block 504 kann das Robotersystem 100 das Zielobjekt 112 aus 1 und die damit verbundenen Positionen (z. B. die Startposition 114 aus 1 und/oder die Aufgabenposition 116 aus 1) und/oder Ausrichtungen (z. B. die Anfangspose) ermitteln. In einigen Ausführungsformen kann das Robotersystem 100 zum Beispiel (z. B. über die Prozessoren 202) die Bildgebungsdaten gemäß einem Mustererkennungsmechanismus und/oder einem Regelsatz analysieren, um Objektkonturen (z. B. Umfangskanten und/oder -flächen) zu ermitteln. Das Robotersystem 100 kann ferner Gruppierungen von Objektkonturen (z. B. nach vorgegebenen Regeln und/oder Posenvorlagen) und/oder Flächen als jeder eindeutigen Instanz von Objekten entsprechend ermitteln. Das Robotersystem 100 kann beispielsweise die Gruppierungen der Objektkonturen ermitteln, die in der Farbe, der Helligkeit, der Tiefe/Position oder einer Kombination davon über die Objektlinien hinweg einem Muster entsprechen (z. B. gleiche Werte oder mit bekannter Rate/bekanntem Muster variierend). Beispielsweise kann das Robotersystem 100 die Gruppierungen der Objektkonturen und/oder Flächen auch nach vorgegebenen Form-/Posenvorlagen, Bildern oder einer Kombination davon ermitteln, die in den Stammdaten 252 definiert sind.
-
Aus den erkannten Objekten an der Aufnahmeposition kann das Robotersystem 100 (z. B. gemäß einer vorgegebenen Abfolge oder einem Regelsatz und/oder Vorlagen von Objektkonturen) eines als das Zielobjekt 112 auswählen. Das Robotersystem 100 kann zum Beispiel das Zielobjekt 112 als das sich oben befindliche Objekt auswählen, wie etwa gemäß der Punktwolke (die die Abstände/Stellungen in Bezug auf eine bekannte Position der Ausgangsabtasteinrichtung 412 darstellt). Das Robotersystem 100 kann zum Beispiel das Zielobjekt 112 auch als das Objekt auswählen, das sich an einer Ecke/Kante befindet und zwei oder mehr Flächen aufweist, die in den Bildgebungsergebnissen freigelegt/gezeigt sind. Ferner kann das Robotersystem 100 das Zielobjekt 112 gemäß einem vorgegebenen Muster oder einer vorgegebenen Abfolge (z. B. von links nach rechts, vom nächsten zum entferntesten usw. in Bezug auf eine Referenzposition) auswählen.
-
Das Robotersystem 100 kann ferner das Bildgebungsergebnis für das ausgewählte Zielobjekt 112 verarbeiten, um die Startposition 114 und/oder die Anfangspose zu bestimmen. Das Robotersystem 100 kann zum Beispiel die Startposition 114 durch Abbilden einer Position (z. B. eines vorgegebenen Referenzpunkts für die bestimmte Pose) des Zielobjekts 112 in dem Bildgebungsergebnis auf eine Position in dem Raster, das von dem Robotersystem 100 verwendet wird, bestimmen. Das Robotersystem 100 kann die Positionen gemäß einer vorgegebenen Kalibrierungskarte abbilden.
-
In einigen Ausführungsformen kann das Robotersystem 100 die Bildgebungsergebnisse der Ausgabebereiche verarbeiten, um freie Stellen zwischen Objekten zu bestimmen. Das Robotersystem 100 kann die freien Stellen auf Grundlage des Abbildens der Objektlinien gemäß einer vorgegebenen Kalibrierungskarte bestimmen, die Bildpositionen auf reale Positionen und/oder von dem System verwendete Koordinaten abbildet. Das Robotersystem 100 kann die freien Stellen als den Abstand zwischen den Objektlinien (und damit den Objektflächen), die zu verschiedenen Gruppierungen/Objekten gehören, bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 die für das Zielobjekt 112 geeigneten freien Stellen auf Grundlage des Messens einer oder mehrerer Abmessungen der freien Stellen und des Vergleichens der gemessenen Abmessungen mit einer oder mehreren Abmessungen des Zielobjekts 112 (z. B. wie in den Stammdaten 252 aus 2 gespeichert) bestimmen. Das Robotersystem 100 kann nach einem vorgegebenen Muster (z. B. von links nach rechts, vom nächsten zum entferntesten, von unten nach oben usw. in Bezug auf eine Referenzposition), eine der geeigneten/freien Stellen als Aufgabenposition 116 auswählen.
-
In einigen Ausführungsformen kann das Robotersystem 100 die Aufgabenposition 116 ohne das oder zusätzlich zu dem Verarbeiten der Bildgebungsergebnisse bestimmen. Das Robotersystem 100 kann zum Beispiel die Objekte gemäß einer vorgegebenen Abfolge von Vorgängen und Positionen in dem Platzierungsbereich platzieren, ohne den Bereich bildlich darzustellen. Das Robotersystem 100 kann zudem zum Beispiel die Bildgebungsergebnisse zum Ausführen mehrerer Aufgaben verarbeiten (z. B. Überführen mehrerer Objekte, wie etwa für Objekte, die sich in einer gemeinsamen Schicht/Lage eines Stapels befinden).
-
Bei Block 522 kann das Robotersystem 100 zum Beispiel eine Anfangspose (z. B. eine Schätzung einer Ruheausrichtung des Zielobjekts 112 an der Aufnahmeposition) auf Grundlage des Verarbeitens der Bildgebungsdaten (z. B. der Bildgebungsdaten von der Ausgangsabtasteinrichtung 412) bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 die Anfangspose des Zielobjekts 112 auf Grundlage des Vergleichens (z. B. des Vergleichen von Pixelwerten) der Objektkonturen mit Konturen in vorgegebenen Posenvorlagen der Stammdaten 252 bestimmen. Die vorgegebenen Posenvorlagen können z. B. unterschiedliche mögliche Anordnungen der Objektkonturen gemäß entsprechenden Ausrichtungen der erwarteten Objekte beinhalten. Das Robotersystem 100 kann den Satz von Objektkonturen (z. B. Kanten einer freiliegenden Fläche, wie die erste freiliegende Fläche 304 aus 3A und/oder 3C und/oder die zweite freiliegende Fläche 306 aus 3A) ermitteln, die zuvor mit dem als Zielobjekt 112 ausgewählten Objekt verbunden wurden. Das Robotersystem 100 kann die Anfangspose auf Grundlage des Auswählens einer der Posenvorlagen bestimmen, die einem niedrigsten Differenzmaß zwischen den verglichenen Objektkonturen entspricht.
-
Als weiteres Beispiel kann das Robotersystem 100 in einigen Ausführungsformen die Anfangspose des Zielobjekts 112 auf Grundlage der physischen Abmessungen des Zielobjekts 112 bestimmen. Das Robotersystem 100 kann physische Abmessungen des Zielobjekts 112 auf Grundlage der Abmessungen der freiliegenden Flächen, die in den Bildgebungsdaten aufgenommen wurden, schätzen. Das Robotersystem 100 kann eine Länge und/oder einen Winkel für jede Objektkontur in den Bildgebungsdaten messen und dann die gemessene Länge unter Verwendung einer Kalibrierungskarte, einer Umrechnungstabelle oder eines Umrechnungsprozesses, einer vorgegebenen Gleichung oder einer Kombination davon auf reale oder Standardlängen abbilden oder in diese umwandeln. Das Robotersystem 100 kann die gemessenen Abmessungen verwenden, um das Zielobjekt 112 und/oder die freiliegende(n) Fläche(n), die den physischen Abmessungen entsprechen, zu ermitteln. Das Robotersystem 100 kann das Objekt und/oder die freiliegende(n) Fläche(n) auf Grundlage des Vergleichens der geschätzten physischen Abmessungen mit einem Satz bekannter Abmessungen (z. B. Höhe, Länge und/oder Breite) von Objekten und deren Flächen in den Stammdaten 252 ermitteln. Das Robotersystem 100 kann den abgeglichenen Satz von Abmessungen verwenden, um die freiliegende(n) Fläche(n) und die entsprechende Ausrichtung zu ermitteln. Das Robotersystem 100 kann zum Beispiel die freiliegende Fläche entweder als die obere Fläche 322 des Objekts aus 3A oder als die untere Fläche 324 des Objekts aus 3B ermitteln (z. B. ein Paar gegenüberliegender Flächen), wenn die Abmessungen der freiliegenden Fläche mit einer Länge und einer Breite für ein erwartetes Objekt übereinstimmen. Auf Grundlage der Ausrichtung der freiliegenden Fläche kann das Robotersystem 100 die Anfangspose (z. B. entweder die erste Pose 312 oder die dritte Pose 316, wenn die freiliegende Fläche nach oben zeigt) ermitteln.
-
Zum Beispiel kann das Robotersystem 100 in einigen Ausführungsformen die Anfangspose des Zielobjekts 112 auf Grundlage eines sichtbaren Bildes einer oder mehrerer Flächen des Zielobjekts 112 und/oder einer oder mehrerer ihrer Markierungen bestimmen. Das Robotersystem 100 kann die Pixelwerte innerhalb eines Satzes von verbundenen Konturen mit vorgegebenen markierungsbasierten Posenvorlagen der Stammdaten 252 vergleichen. Die markierungsbasierten Posenvorlagen können z. B. eine oder mehrere eindeutige Markierungen von erwarteten Objekten in mehreren verschiedenen Ausrichtungen beinhalten. Das Robotersystem 100 kann die Anfangspose auf Grundlage des Auswählens einer der Flächen, der Flächenausrichtungen und/oder der entsprechenden Posen bestimmen, die zu einem niedrigsten Differenzmaß für die verglichenen Bilder führt.
-
Bei Block 524 kann das Robotersystem 100 ein Konfidenzmaß berechnen, das mit der Anfangspose verbunden ist. Das Konfidenzmaß kann ein Maß der Sicherheit oder Wahrscheinlichkeit dafür darstellen, dass die Anfangspose mit der tatsächlichen realen Pose des Zielobjekts 112 übereinstimmt. In einigen Ausführungsformen kann das Robotersystem 100 das Konfidenzmaß als Teil des Bestimmens der Anfangspose berechnen. Beispielsweise kann das Konfidenzmaß dem Differenzmaß zwischen den Objektkonturen und den Konturen in der vorstehend beschriebenen ausgewählten Vorlage entsprechen. Zudem kann das Konfidenzmaß beispielsweise einem Toleranzniveau entsprechen, das mit den vorstehend beschriebenen geschätzten physischen Abmessungen und/oder den Winkeln verbunden ist. Das Konfidenzmaß kann beispielsweise außerdem dem Differenzmaß zwischen einer sichtbaren Markierung in den Bildgebungsdaten und den vorstehend beschriebenen Vorlagenbildern entsprechen.
-
Bei Block 506 kann das Robotersystem 100 einen Bewegungsplan (z. B. den ersten Bewegungsplan 422 aus 4 und/oder den zweiten Bewegungsplan 424 aus 4) zum Ausführen der Aufgabe 402 für das Zielobjekt 112 berechnen. Das Robotersystem 100 kann zum Beispiel den Bewegungsplan auf Grundlage des Berechnens einer Abfolge von Befehlen oder Einstellungen oder einer Kombination davon für die Betätigungsvorrichtungen 212 aus 2, die den Roboterarm 414 aus 4 und/oder den Endeffektor bedienen, berechnen. Für einige Aufgaben kann das Robotersystem 100 die Abfolge und die Einstellungswerte berechnen, die den Roboterarm 414 und/oder den Endeffektor handhaben, um das Zielobjekt 112 von der Startposition 114 zu der Aufgabenposition 116 zu überführen. Das Robotersystem 100 kann einen Bewegungsplanungsmechanismus (z. B. einen Prozess, eine Funktion, eine Gleichung, einen Algorithmus, ein computergeneriertes/computerlesbares Modell oder eine Kombination davon) umsetzen, der dazu ausgelegt ist, einen Weg im Raum gemäß einer/eines oder mehreren Einschränkungen, Zielen und/oder Regeln zu berechnen. Beispielsweise kann das Robotersystem 100 den A*-Algorithmus, den D*-Algorithmus und/oder andere rasterbasierte Suchvorgänge verwenden, um den Weg durch den Raum zum Bewegen des Zielobjekts 112 von der Startposition 114 zur Aufgabenposition 116 durch eine oder mehrere Präsentationsposen/Präsentationspositionen (z. B. eine oder mehrere entsprechende Abtastpositionen für den Endeffektor) zu berechnen. Der Bewegungsplanungsmechanismus kann einen weiteren Prozess, eine Funktion oder Gleichung und/oder eine Abbildungstabelle verwenden, um den Weg in die Abfolge von Befehlen oder Einstellungen oder eine Kombination davon für die Betätigungsvorrichtungen 212 umzuwandeln. Unter Verwendung des Bewegungsplanungsmechanismus kann das Robotersystem 100 die Abfolge berechnen, die den Roboterarm 414 und/oder den Endeffektor bedient und bewirkt, dass das Zielobjekt 112 dem berechneten Weg folgt.
-
In einigen Ausführungsformen kann das Robotersystem 100 den Bewegungsplan auf Grundlage des Konfidenzmaßes selektiv berechnen/ableiten. Das Robotersystem 100 kann den Bewegungsplan berechnen, der eine Annäherungsposition (z. B. die erste Annäherungsposition 432 aus 4 und/oder die zweite Annäherungsposition 434 aus 4), eine oder mehrere Abtastpositionen (z. B. die erste Präsentationsposition 442 aus 4 und/oder die zweite Präsentationsposition 444 aus 4) oder eine Kombination davon gemäß dem Konfidenzmaß beinhaltet. Beispielsweise kann das Robotersystem 100 die Annäherungsposition und/oder die Abtastpositionen gemäß einer Metrik (z. B. einer Leistungsmetrik und/oder einer Abtastmetrik) auf Grundlage eines Ergebnisses des Vergleichens des Konfidenzmaßes mit einem Hinlänglichkeitsschwellenwert berechnen. Die Abtastposition kann dazu dienen, den Endeffektor, derart zu platzieren, dass eine oder mehrere Flächen des Zielobjekts 112 vor (d. h. im Abtastfeld von) einem oder mehreren entsprechenden Objektabtasteinrichtungen 416 präsentiert werden, die die eine oder mehreren Objektkennzeichnungen 332 abtasten sollen.
-
Bei Block 532 kann das Robotersystem 100 (z. B. über die Prozessoren 202) einen Satz verfügbarer Annäherungspositionen berechnen. Die verfügbaren Annäherungspositionen können freien oder nicht besetzten Stellen an der Startposition 114 entsprechen, die für das Platzieren des Endeffektors ausreichend sind. Wie nachstehend beschrieben, kann das Robotersystem 100 den Endeffektor an einer ausgewählten Annäherungsposition zum Berühren und Greifen des Zielobjekts 112, ohne andere Objekte zu stören, platzieren.
-
In einigen Ausführungsformen kann das Robotersystem 100 zum Beispiel den Satz verfügbarer Annäherungspositionen auf Grundlage des Berechnens von Trennabständen zwischen Objektkonturen des Zielobjekts 112 und denen benachbarter Objekte berechnen. Das Robotersystem 100 kann die Trennabstände mit einem vorgegebenen Satz von Abständen, die einer physischen Größe/Form des Endeffektors und/oder unterschiedlichen Ausrichtungen von diesem entsprechen, vergleichen. Das Robotersystem kann jede der verfügbaren Annäherungspositionen ermitteln, wenn die entsprechenden Trennabstände den vorgegebenen Satz von Abständen, die der Größe des Endeffektors entsprechen, übersteigen.
-
Bei Entscheidungsblock 534 kann das Robotersystem 100 das Konfidenzmaß mit einer oder mehreren Hinlänglichkeitsbedingungen (z. B. einem oder mehreren Schwellenwerten) vergleichen, um zu bestimmen, ob sie erfüllt sind oder nicht. Wenn das Konfidenzmaß die Hinlänglichkeitsbedingung erfüllt (das Konfidenzmaß z. B. den erforderlichen Schwellenwert übersteigt), wie bei Block 536 veranschaulicht, kann das Robotersystem 100 den Bewegungsplan (z. B. den ersten Bewegungsplan 422) auf Grundlage einer Leistungsmetrik berechnen. Wenn das Konfidenzmaß die Hinlänglichkeitsbedingung erfüllt, kann das Robotersystem 100 in einigen Ausführungsformen davon ausgehen, dass die Anfangspose richtig ist, und den Bewegungsplan berechnen, ohne eine Abtastmetrik zu berücksichtigen, die einer Wahrscheinlichkeit für das Abtasten mindestens einer Objektkennzeichnung und/oder einer Möglichkeit entspricht, dass die anfängliche Pose nicht korrekt sein kann.
-
Als veranschaulichendes Beispiel kann das Robotersystem 100 in einigen Ausführungsformen bei Block 542 mögliche Pläne berechnen. Die möglichen Pläne können jeweils eine Instanz eines Bewegungsplans sein, die einer einzigartigen Kombination aus einer verfügbaren Annäherungsposition und einer Abtastposition (die z. B. der Präsentationsposition/Präsentationsausrichtung für das Zielobjekt 112 entspricht) entspricht. In einigen Ausführungsformen kann das Robotersystem 100 die Kennzeichnungsposition(en) 334 gemäß der Anfangspose berechnen, wie etwa durch Drehen der Kennzeichnungsposition(en) 334 oder eines entsprechenden Modells/einer entsprechenden Pose in den Stammdaten 252. Das Robotersystem 100 kann verfügbare Annäherungspositionen eliminieren, bei denen der Endeffektor die Kennzeichnungsposition(en) 334 verdecken würde (z. B. direkt über, vor und/oder innerhalb eines Schwellenabstandes von dieser/diesen liegen würde).
-
Das Robotersystem 100 kann einen möglichen Plan für jede verbleibende verfügbare Annäherungsposition in dem Satz berechnen (z. B. Berechnungsergebnis von Block 532). Für jeden möglichen Plan kann das Robotersystem 100 ferner eine einzigartige Abtastposition gemäß der verfügbaren Annäherungsposition berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die Abtastposition auf Grundlage des Drehens und/oder Verschiebens eines Modells des Zielobjekts 112, derart dass die Fläche, die der Kennzeichnungsposition 334 entspricht, sich in dem Abtastfeld befindet und zu der entsprechenden Objektabtasteinrichtung zeigt, berechnen. Das Robotersystem 100 kann das Modell gemäß einem vorgegebenen Prozess, einer vorgegebenen Gleichung, Funktion usw. drehen und/oder verschieben.
-
Bei Block 544 kann das Robotersystem 100 eine Leistungsmetrik für jeden möglichen Plan berechnen. Das Robotersystem 100 kann die Leistungsmetrik berechnen, die einer Durchsatzrate zum Ausführen der Aufgabe 402 entspricht. Die Leistungsmetrik kann zum Beispiel mit einem Abstand, der von dem Zielobjekt 112 zurückgelegt wird, einer geschätzten Überführungsdauer, einer Anzahl von Befehlen und/oder Einstellungsveränderungen für die Betätigungsvorrichtungen 212, einer Fertigstellungsrate (d. h. ergänzend zu einer Stückverlustrate) oder einer Kombination davon für den möglichen Plan verbunden sein. Das Robotersystem 100 kann die entsprechenden Werte für den möglichen Bewegungsplan unter Verwendung eines oder mehrerer gemessener oder bekannter Datenelemente (z. B. Beschleunigung/Geschwindigkeit, die mit Einstellungen/Befehlen verbunden sind, und/oder der Stückverlustrate, die mit einer Greiffläche und/oder einem Manöver verbunden ist) und einem vorgegebenen Berechnungsprozess, einer Gleichung, einer Funktion usw. berechnen.
-
Bei Block 546 kann das Robotersystem 100 den möglichen Plan (d. h. zusammen mit der entsprechenden Annäherungsposition) mit der maximalen Leistungsmetrik als den Bewegungsplan auswählen. Das Robotersystem 100 kann zum Beispiel aus dem Satz möglicher Pläne den möglichen Plan als den Bewegungsplan auswählen, der der höchsten Fertigstellungsrate, der kürzesten zurückzulegenden Strecke, der niedrigsten Anzahl von Befehlen und/oder Einstellungsveränderungen, der schnellsten Überführungsdauer oder einer Kombination davon entspricht. Dementsprechend kann das Robotersystem 100 die verfügbare Annäherungsposition in dem Satz als Annäherungsposition auswählen, die der höchsten Leistungsmetrik entspricht.
-
Im Vergleich dazu kann das Robotersystem 100 den möglichen Plan nach einem anderen Maß berechnen, wenn das Konfidenzmaß die Hinlänglichkeitsbedingung nicht erfüllt (das Konfidenzmaß z. B. unter dem erforderlichen Schwellenwert liegt). Wie bei Block 538 veranschaulicht, kann das Robotersystem 100 den Bewegungsplan (z. B. den zweiten Bewegungsplan 424) in einigen Ausführungsformen auf Grundlage einer Abtastmetrik berechnen. Die Abtastmetrik ist ein Wert (z. B. ein binärer Wert oder ein(e) nichtbinäre(r) Punktzahl/Prozentsatz), der einer Wahrscheinlichkeit entspricht, dass mindestens eine der Objektkennzeichnungen 332 von dem Endeffektor unverdeckt bleibt und abtastbar ist, unabhängig davon, ob die Anfangspose korrekt ist. In einigen Ausführungsformen kann das Robotersystem 100 zum Beispiel die Abtastmetrik gegenüber den Leistungsmetriken priorisieren (z. B. zuerst erfüllen und/oder ihr eine höhere Gewichtung geben), wenn das Konfidenzmaß die Hinlänglichkeitsbedingung nicht erfüllt. Dementsprechend kann das Robotersystem 100 den Bewegungsplan berechnen, der eine oder mehrere Abtastpositionen zum Präsentieren der mindestens einen unverdeckten Objektkennzeichnung vor einer oder mehreren der Objektabtasteinrichtungen (d. h. in dem Abtastfeld und/oder auf die entsprechende Abtasteinrichtung zeigend) beinhaltet. Zur detaillierteren Veranschaulichung des Prozesses ist 5B ein Flussdiagramm 538 zum selektiven Berechnen von Bewegungsplänen (z. B. einer oder mehr Positionen für den Endeffektor) auf Grundlage von Abtastmetriken gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
-
In einigen Ausführungsformen kann das Berechnen des Bewegungsplans auf Grundlage einer Abtastmetrik das Berechnen eines Satzes freiliegender Kennzeichnungspositionen beinhalten, wie in Block 552 veranschaulicht. Das Robotersystem 100 kann den Satz der freiliegenden Kennzeichnungspositionen (z. B. die Kennzeichnungspositionen 334, die mit dem Endeffektor in der Greifstellung abtastbar bleiben können) in Bezug auf die Anfangspose berechnen. Das Robotersystem 100 kann die freiliegenden Kennzeichnungspositionen für jede verfügbare Annäherungsposition berechnen. Die freiliegende Kennzeichnungsposition kann mit Positionen der Objektkennzeichnungen 332 übereinstimmen, die gemäß einer Hypothese, dass die Anfangspose korrekt ist, unverdeckt bleiben, wenn sich der Endeffektor in der entsprechenden Annäherungsposition befindet.
-
Wie vorstehend beschrieben (für Block 542), können die Stammdaten 252 in einigen Ausführungsformen ein Computermodell oder eine Vorlage (z. B. Versatzmaße in Bezug auf eine oder mehrere Objektkanten und/oder Bilder) beinhalten, das/die die Kennzeichnungspositionen 334 für jedes der erwarteten Objekte beschreibt. Das Robotersystem 100 kann den Satz von freiliegenden Kennzeichnungspositionen auf Grundlage des Drehens und/oder Verschiebens des vorgegebenen Modells/der vorgegebenen Vorlage in den Stammdaten 252 berechnen, damit sie mit der Anfangspose übereinstimmen. In einigen Ausführungsformen kann das Robotersystem 100 verfügbare Annäherungspositionen eliminieren, bei denen der Endeffektor die Kennzeichnungspositionen 334 verdecken würde (z. B. direkt über, vor und/oder innerhalb eines Schwellenabstandes von diesen liegen würde). Anders ausgedrückt kann das Robotersystem 100 die Annäherungspositionen eliminieren, die direkt über, vor und/oder innerhalb eines Schwellenabstandes von den Kennzeichnungspositionen 334 liegen.
-
Bei Block 554 kann das Robotersystem 100 einen Satz von alternativen Kennzeichnungspositionen berechnen. Das Robotersystem 100 kann den Satz der alternativen Kennzeichnungspositionen (z. B. die Kennzeichnungspositionen 334) für alternative Posen zu der Anfangspose berechnen. Für jede verfügbare Annäherungsposition kann das Robotersystem 100 alternative Posen berechnen und für jede alternative Pose kann das Robotersystem 100 die alternativen Kennzeichnungspositionen berechnen. Demnach können die alternativen Kennzeichnungspositionen Positionen der Objektkennzeichnungen 332 entsprechen, die gemäß einer Hypothese, dass die Anfangspose nicht korrekt ist, unverdeckt bleiben, wenn sich der Endeffektor an der entsprechenden Annäherungsposition befindet. Wie vorstehend für die freiliegenden Kennzeichnungspositionen beschrieben, kann das Robotersystem 100 die alternativen Kennzeichnungspositionen auf Grundlage des Drehens und/oder Verschiebens des vorgegebenen Modells/der vorgegebenen Vorlage in den Stammdaten 252 gemäß der alternativen Pose berechnen.
-
Bei Block 556 kann das Robotersystem 100 eine Wahrscheinlichkeit des Freiliegens für jede der Annäherungspositionen, jede der alternativen Posen, jede der Objektkennzeichnungen oder eine Kombination davon berechnen. Die Wahrscheinlichkeit des Freiliegens stellt eine Wahrscheinlichkeit dar, dass eine oder mehrere Objektkennzeichnungen freiliegend und abtastbar bleiben würden, wenn der Endeffektor das Zielobjekt 112 aus der entsprechenden Annäherungsposition greift. Die Wahrscheinlichkeit des Freiliegens kann sowohl das Szenario, dass die Anfangspose korrekt ist darstellen als auch das Szenario, dass die Anfangspose nicht korrekt ist. Anders ausgedrückt kann die Wahrscheinlichkeit des Freiliegens die Wahrscheinlichkeit darstellen, dass, selbst wenn die Anfangspose nicht korrekt ist, eine oder mehrere Objektkennzeichnungen freiliegend und abtastbar bleiben würden.
-
In einigen Ausführungsformen kann das Robotersystem 100 beispielsweise die Wahrscheinlichkeit des Freiliegens als bedingte Wahrscheinlichkeit berechnen, wie etwa einen probabilistischen Wert, der einer bestimmten Bedingung entspricht (z. B. einer eindeutigen Instanz der Annäherungsposition, der alternativen Pose, der Objektkennzeichnung oder einer Kombination davon). In einigen Ausführungsformen kann das Robotersystem 100 die Wahrscheinlichkeit des Freiliegens auf Grundlage des Kombinierens (z. B. über das Addieren und/oder Multiplizieren) der bedingten Wahrscheinlichkeit mit einer Wahrscheinlichkeit, dass die jeweilige Bedingung wahr ist (z. B. einen Wert ähnlich dem Konfidenzmaß hat), berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die Wahrscheinlichkeit des Freiliegens auf Grundlage des Addierens der Wahrscheinlichkeiten für jede wahrscheinlich freiliegende Kennzeichnung, wenn mehrere Kennzeichnungen für die betrachtete Annäherungsposition und/oder die betrachtete Pose freiliegen würden, berechnen.
-
In einigen Ausführungsformen kann das Robotersystem 100 die Wahrscheinlichkeit des Freiliegens auf Grundlage des Kombinierens der probabilistischen Werte auf Grundlage der freiliegenden Kennzeichnungspositionen und der alternativen Kennzeichnungspositionen, wie etwa für jede potenzielle Pose für eine betrachtete Annäherungsposition, berechnen. Das Robotersystem 100 kann zum Beispiel die Wahrscheinlichkeit des Freiliegens unter Verwendung der Wahrscheinlichkeiten für die freiliegenden Kennzeichnungspositionen und die alternativen Kennzeichnungspositionen mit entgegengesetzten Vorzeichen (z. B. positiv und negativ) berechnen. Das Robotersystem 100 kann die Wahrscheinlichkeit des Freiliegens auf Grundlage des Addierens der Größen der beiden Wahrscheinlichkeiten und/oder des Addierens der Wahrscheinlichkeiten mit den Vorzeichen berechnen. Die Gesamtgröße kann eine Gesamtwahrscheinlichkeit darstellen, dass eine oder mehrere Objektkennzeichnungen abtastbar bleiben, und die vorzeichenbehaftete/gerichtete Wahrscheinlichkeit kann eine Wahrscheinlichkeit darstellen, dass eine oder mehrere Objektkennzeichnungen abtastbar bleiben würden, selbst wenn die Anfangspose nicht korrekt war. Dementsprechend wäre eine Annäherungsposition ideal, wenn die Gesamtgröße größer ist und die vorzeichenbehaftete/gerichtete Wahrscheinlichkeit näher bei null liegt, wie etwa zum Darstellen ähnlicher Möglichkeiten, dass eine Objektkennzeichnung unabhängig von der Korrektheit für die Anfangspose abtastbar wäre.
-
Bei Block 558 kann das Robotersystem 100 eine Annäherungsposition auswählen. In einigen Ausführungsformen kann das Robotersystem 100 als Annäherungsposition die verfügbare Annäherungsposition auswählen, die unverdeckte Kennzeichnungspositionen sowohl in einem Satz freiliegender Kennzeichnungen (z. B. einem Satz geschätzter Positionen der Objektkennzeichnungen gemäß einer Hypothese, dass die Anfangspose richtig ist) als auch in einem Satz alternativer Kennzeichnungen (z. B. einem oder mehreren Sätzen geschätzter Positionen der Objektkennzeichnungen gemäß einer Hypothese, dass die Anfangspose falsch ist) beinhaltet. Anders ausgedrückt kann das Robotersystem 100 die Annäherungsposition auswählen, bei der mindestens eine Objektkennzeichnung freiliegt und unabhängig von der Korrektheit der Anfangsposition abtastbar bleibt. In einigen Ausführungsformen kann das Robotersystem 100 als Annäherungsposition die verfügbare Annäherungsposition auswählen, die einer Wahrscheinlichkeit des Freiliegens entspricht, die mit einer Zielbedingung übereinstimmt und/oder dieser am nächsten kommt, wie etwa der höchsten Gesamtgröße und/oder der vorzeichenbehafteten/gerichteten Wahrscheinlichkeit, die näher bei null liegt.
-
In einigen Ausführungsformen kann das Robotersystem 100 eine Abtastwahrscheinlichkeit (z. B. eine Wahrscheinlichkeit, dass eine freiliegende Objektkennzeichnung erfolgreich abgetastet werden würde) auf Grundlage der Wahrscheinlichkeit des Freiliegens berechnen. Das Robotersystem 100 kann zum Beispiel die Wahrscheinlichkeit des Freiliegens mit einem Bewertungswert (z. B. einer verfolgten Rate erfolgreicher Abtastungen, einer physikalischen Größe und/oder einem Kennzeichnungstyp) kombinieren, der mit der entsprechenden freiliegenden Objektkennzeichnung verbunden ist. Das Robotersystem 100 kann als Annäherungsposition die verfügbare Annäherungsposition auswählen, die der höchsten Abtastwahrscheinlichkeit entspricht.
-
In einigen Ausführungsformen kann das Robotersystem 100 den Satz freiliegender Kennzeichnungen mit dem Satz alternativer Kennzeichnungen vergleichen, um zu bestimmen, ob der Satz freiliegender Kennzeichnungen und der Satz alternativer Kennzeichnungen Positionen auf gegenüberliegenden Flächen des Zielobjekts 112 beinhalten (z. B. zwischen der ersten Pose 312 und der dritten Pose 316). Dementsprechend kann das Robotersystem 100 eine verfügbare Annäherungsposition auswählen, die einer dritten Fläche (z. B. einer der Umfangsflächen 326 des Objekts) entspricht, die orthogonal zu den beiden gegenüberliegenden Flächen verläuft.
-
Bei Block 560, etwa wenn das Konfidenzmaß den Hinlänglichkeitsschwellenwert nicht erfüllt, kann das Robotersystem 100 mögliche Bewegungspläne auf Grundlage der ausgewählten Annäherungsposition berechnen. Das Robotersystem 100 kann die möglichen Bewegungspläne berechnen, die eine oder mehrere Abtastpositionen für den Endeffektor beinhalten, die einer oder mehreren Präsentationspositionen/Präsentationsausrichtungen entsprechen, die die Objektkennzeichnungen sowohl im Satz freiliegender Kennzeichnungen als auch im Satz alternativer Kennzeichnungen platzieren. Anders ausgedrückt kann das Robotersystem 100 die möglichen Bewegungspläne berechnen, die das Zielobjekt 112 unabhängig von der Korrektheit der Anfangsposition abtasten können.
-
In einigen Ausführungsformen kann das Robotersystem 100 die möglichen Bewegungspläne berechnen, die die Kennzeichnungspositionen sowohl im Satz freiliegender Kennzeichnungen als auch im Satz alternativer Kennzeichnungen berücksichtigen. Beispielsweise kann das Robotersystem 100 die möglichen Bewegungspläne berechnen, die die möglichen Kennzeichnungspositionen auf gegenüberliegenden und/oder orthogonalen Flächen berücksichtigen. Entsprechend kann das Robotersystem 100 eine entgegengesetzte Pose (z. B. eine Pose, die in eine entgegengesetzte Richtung ausgerichtet ist, bei der die Kontur des Zielobjekts von einer Betrachtungsposition/einem Winkel aus gleich bleibt) und/oder andere gedrehte Posen zusätzlich zur Ausgangspose berücksichtigen. Unter erneuter Bezugnahme auf die 3A und 3C als veranschaulichendes Beispiel kann das Robotersystem 100 die möglichen Bewegungspläne berechnen, die sowohl die erste Pose 312 als auch die dritte Pose 316 berücksichtigen, wenn die Greifposition einer der Umfangsflächen 326 des Objekts entspricht.
-
Um mehrere mögliche Posen zu berücksichtigen (z. B. fehlerhafte Schätzung der Anfangsposition), kann das Robotersystem 100 eine Abtastpose berechnen, die die Objektkennzeichnungen sowohl im Satz freiliegender Kennzeichnungen als auch im Satz alternativer Kennzeichnungen platziert. Wie bei Block 562 veranschaulicht, kann das Robotersystem 100 in einigen Ausführungsformen einen Satz möglicher Posen für das Zielobjekt 112 in den oder durch die Abtastfelder(n) berechnen. Angesichts der gewählten Annäherungsposition kann das Robotersystem 100 die für Block 542 vorstehend beschriebenen möglichen Abtastpositionen berechnen, wie etwa durch Drehen und/oder Verschieben des Kennzeichnungspositionsmodells, um die Kennzeichnungsposition 334 in dem Abtastfeld zu platzieren.
-
Bei Block 564 kann das Robotersystem 100 den Satz freiliegender Kennzeichnungen und den Satz alternativer Kennzeichnungen auf jede der möglichen Abtastpositionen abbilden. Das Robotersystem 100 kann den Satz freiliegender Kennzeichnungen auf Grundlage des Drehens des Kennzeichnungspositionsmodells ausgehend von der Anfangspose abbilden. Das Robotersystem 100 kann den Satz freiliegender Kennzeichnungen auf Grundlage des Drehens des Kennzeichnungspositionsmodells ausgehend von einer der alternativen Posen (z. B. der entgegengesetzten Pose) abbilden.
-
Mit den abgebildeten Kennzeichnungspositionen kann das Robotersystem 100 bei Block 568 eine Position und/oder eine Ausrichtung der Objektkennzeichnungen sowohl in dem Satz freiliegender Kennzeichnungen als auch in dem Satz alternativer Kennzeichnungen mit den Abtastfeldern vergleichen. Bei dem Entscheidungsblock 570 kann das Robotersystem 100 bestimmen, ob die mögliche Pose die Objektkennzeichnungen den Objektabtasteinrichtungen gleichzeitig sowohl in dem Satz freiliegender Kennzeichnungen als auch dem Satz alternativer Kennzeichnungen präsentiert.
-
Bei Block 572 kann das Robotersystem 100 die möglichen Posen als die Abtastpose ermitteln, die die Objektkennzeichnungen sowohl in dem Satz freiliegender Kennzeichnungen als auch dem Satz alternativer Kennzeichnungen gleichzeitig verschiedenen Objektabtasteinrichtungen/Abtastfeldern präsentiert. Wenn die Greifposition zum Beispiel einer der Umfangsflächen 326 des Objekts entspricht, wobei sich die Objektpositionen im Satz freiliegender Kennzeichnungen und im Satz alternativer Kennzeichnungen auf gegenüberliegenden Flächen befinden, kann das Robotersystem 100 die Abtastpose ermitteln, die das Zielobjekt 112 zwischen einem Paar von gegenüberliegenden/zueinander zeigenden Objektabtasteinrichtungen platziert, wobei jede der gegenüberliegenden Flächen des Zielobjekts 112 zu dem einen der Objektabtasteinrichtungen zeigt.
-
Wenn keine der möglichen Posen die Objektkennzeichnungen gleichzeitig sowohl im Satz freiliegender Kennzeichnungen als auch im Satz alternativer Kennzeichnungen präsentiert, kann das Robotersystem 100 bei Block 574 mehrere Abtastpositionen (z. B. eine erste Abtastposition und eine zweite Abtastposition) berechnen, die jeweils mindestens eine Objektkennzeichnung aus dem Satz freiliegender Kennzeichnungen und dem Satz alternativer Kennzeichnungen präsentieren. Beispielsweise kann die erste Abtastposition einer der Objektabtasteinrichtungen eine oder mehrere Objektkennzeichnungspositionen in dem Satz freiliegender Kennzeichnungen präsentieren und die zweite Abtastposition kann einer der Objektabtasteinrichtungen eine oder mehrere Objektkennzeichnungspositionen in dem Satz alternativer Kennzeichnungen präsentieren. Die zweite Abtastposition kann mit dem Drehen des Endeffektors um eine Achse, dem Verschieben des Endeffektors oder einer Kombination davon aus der ersten Abtastposition verbunden sein.
-
Unter erneuter Bezugnahme auf das in 4 veranschaulichte Beispiel kann der zweite Bewegungsplan 424 der zweiten Annäherungsposition 434 entsprechen, die der dritten Fläche entspricht (z. B. einer der Umfangsflächen 326 des Objekts), die orthogonal zu den zwei gegenüberliegenden Flächen (z. B. für die erste Pose 312 und die dritte Pose 316) verläuft, wie vorstehend beschrieben. Entsprechend kann die erste Abtastposition einer ersten der zweiten Präsentationspositionen 444 entsprechen, die eine Fläche (von der z. B. geschätzt wird, dass sie die untere Fläche 324 des Objekts ist), die der Anfangspose (z. B. der ersten Pose 312) entspricht, über einer nach oben zeigenden Objektabtasteinrichtung 416 und zu dieser zeigend platziert. Die zweite Abtastposition kann einer zweiten der zweiten Präsentationspositionen 444 entsprechen, die das Zielobjekt 112 entgegen dem Uhrzeigersinn um 90 Grad in Bezug auf eine Gesamtüberführungsrichtung dreht (z. B. im Allgemeinen von der Startposition 114 zu der Aufgabenposition 116). Entsprechend kann die zweite Abtastposition der zweiten Präsentationsposition 444 entsprechen, die eine Fläche (von der z. B. geschätzt wird, dass sie die untere Fläche 324 des Objekts ist), die der alternativen Pose (z. B. der dritten Pose 316) entspricht, in einer vertikalen Ausrichtung vor einer in eine waagerechte Richtung zeigenden Objektabtasteinrichtung 416 und zu dieser zeigend platziert.
-
Entsprechend der sich ergebenden Abtastpose und/oder dem Satz von Abtastpositionen kann das Robotersystem 100 die möglichen Pläne berechnen. Das Robotersystem 100 kann einen oder mehrere der vorstehend beschriebenen Mechanismen (z. B. den A*-Mechanismus) verwenden, um die möglichen Pläne zu berechnen, die den Endeffektor an der ausgewählten Annäherungsposition platzieren, das Zielobjekt 112 entsprechend berühren und greifen und das Zielobjekt 112 anheben und in die ermittelte Abtastposition und/oder den Satz von Abtastpositionen überführen. Wenn die Abtastposition ermittelt ist, kann das Robotersystem 100 zum Beispiel die möglichen Pläne berechnen, um die Abtastpose für das Zielobjekt 112 in den oder durch die Abtastfelder(n) zu bilden. Wenn das Robotersystem 100 die Abtastposition nicht ermittelt, kann das Robotersystem 100 die möglichen Pläne berechnen, um den Endeffektor nacheinander durch den Satz mehrerer Abtastpositionen zu überführen/auszurichten, wodurch das Zielobjekt 112 nacheinander gemäß mehreren Präsentationspositionen/Präsentationsausrichtungen überführt/gedreht wird.
-
Bei Block 576 kann das Robotersystem 100 die Abtastwahrscheinlichkeit für jeden der möglichen Bewegungspläne erneut berechnen oder aktualisieren. Das Robotersystem 100 kann die Abtastwahrscheinlichkeit auf Grundlage des Kombinierens der verschiedenen Wahrscheinlichkeiten und/oder Präferenzen, wie vorstehend für Block 544 beschrieben, aktualisieren (z. B. Wahrscheinlichkeiten und/oder Punktzahlen für die Annäherungsposition, die Abtastposition, die verwendete Objektabtasteinrichtung, die wahrscheinlich freiliegende Kennzeichnung, eine zugehörige Fehler- und/oder Verlustrate oder eine Kombination davon), jedoch in Bezug auf die Abtastmetrik anstelle der Leistungsmetrik.
-
Bei Block 578 kann das Robotersystem 100 den Bewegungsplan auf Grundlage des Auswählens des möglichen Plans gemäß der Abtastwahrscheinlichkeit berechnen. Das Robotersystem 100 kann den möglichen Plan als den Bewegungsplan auswählen, der unter den möglichen Plänen die maximale Abtastwahrscheinlichkeit aufweist. Das Robotersystem 100 kann zum Beispiel den möglichen Plan auswählen, der die höchste Wahrscheinlichkeit aufweist, während der Überführung des Zielobjekts 112 mindestens eine der freiliegenden Kennzeichnungspositionen und mindestens eine der alternativen Kennzeichnungspositionen in einem oder mehreren der Abtastfelder (d. h vor einer oder mehreren der Objektabtasteinrichtungen) zu platzieren (z. B. zum Abtasten in der Luft zwischen der Startposition 114 und der Zielposition 116).
-
Wenn mehr als ein möglicher Plan Abtastwahrscheinlichkeiten innerhalb eines relativ kleinen Differenzwerts (z. B. einem vorgegebenen Schwellenwert) entspricht, kann das Robotersystem 100 Leistungsmetriken, die den entsprechenden möglichen Plänen entsprechen, berechnen und bewerten (wie z. B. vorstehend für die Blöcke 544 und 546 beschrieben). Das Robotersystem 100 kann den möglichen Plan als den Bewegungsplan auswählen, der der angestrebten Bedingung am nächsten kommt.
-
In einigen Ausführungsformen kann das Robotersystem 100 von dem veranschaulichten beispielhaften Fluss abweichen. Das Robotersystem 100 kann die Annäherungsposition zum Beispiel wie vorstehend beschrieben auswählen. Auf Grundlage der ausgewählten Annäherungsposition kann das Robotersystem 100 das Zielobjekt 112 greifen und einen vorgegebenen Satz von Manövern umsetzen, wie Anheben, Neuausrichten, waagerecht Verschieben, Wiederabsetzen und Freigeben oder eine Kombination davon. Während oder nach dem vorgegebenen Satz von Manövern kann das Robotersystem 100 den Aufnahmebereich erneut bildlich darstellen oder abtasten (z. B. über das Zurückspringen zu Block 502) und die Anfangspose und das Konfidenzmaß erneut bestimmen (z. B. über die Blöcke 522 und 524).
-
Unter erneuter Bezugnahme auf 5A kann das Robotersystem 100 bei Block 508 beginnen, den sich ergebenden Bewegungsplan umzusetzen. Das Robotersystem 100 kann den Bewegungsplan auf Grundlage des Betreibens des einen oder der mehreren Prozessoren 202 umsetzen, um die Befehle und/oder Einstellungen des Bewegungsplans an andere Vorrichtungen (z. B. die entsprechenden Betätigungsvorrichtungen 212 und/oder andere Prozessoren) zu senden, um die Aufgabe 402 auszuführen. Entsprechend kann das Robotersystem 100 den Bewegungsplan ausführen, indem es die Betätigungsvorrichtungen 212 gemäß der Abfolge von Befehlen oder Einstellungen oder einer Kombination davon betreibt. Das Robotersystem 100 kann zum Beispiel die Betätigungsvorrichtungen 212 betreiben, um den Endeffektor an der Annäherungsposition bei der Startposition 114 zu platzieren, das Zielobjekt 112 zu berühren und zu greifen oder eine Kombination davon.
-
Bei Block 582 kann das Robotersystem 100 den Endeffektor in die Abtastposition überführen und damit das Zielobjekt 112 in die Präsentationsposition/Präsentationsausrichtung überführen. Nach oder neben dem Anheben des Zielobjekts 112 aus der Startposition 114 kann das Robotersystem 100 den Endeffektor zum Beispiel überführen, um die Abtastpose für das Zielobjekt 112 zu bilden. Zudem kann das Robotersystem 100 den Endeffektor zu der ersten Abtastposition überführen.
-
Bei Block 584 kann das Robotersystem 100 die Objektabtasteinrichtungen 416 betreiben, um das Zielobjekt 112 abzutasten. Einer oder mehrere der Prozessoren 202 können zum Beispiel einen Befehl an die Objektabtasteinrichtungen 416 senden, um eine Abtastung auszuführen und/oder eine Abfrage an die Objektabtasteinrichtungen 416 senden, um einen Abtaststatus und/oder einen abgetasteten Wert zu empfangen. Wenn der Bewegungsplan die Abtastpose beinhaltet, wie etwa bei Block 585, kann das Robotersystem 100 den Bewegungsplan umsetzen, um das Zielobjekt 112 über die Abtastfelder in einer Richtung, die orthogonal zu den Ausrichtungen der Abtastfelder verläuft, in die Abtastpose zu überführen. Während das Zielobjekt 112 überführt wird, können die Objektabtasteinrichtungen 416 (gleichzeitig und/oder nacheinander) mehrere Flächen nach mehreren möglichen Positionen der Objektkennzeichnungen 332 abtasten.
-
Bei Entscheidungsblock 586 kann das Robotersystem 100 das Abtastergebnis (z. B. Status und/oder den abgetasteten Wert) bewerten, um zu bestimmen, ob das Zielobjekt 112 abgetastet wurde. Das Robotersystem 100 kann zum Beispiel das Abtastergebnis überprüfen, nachdem der Bewegungsplan bis zu der ersten Abtastposition umgesetzt wurde. Wenn das Abtastergebnis eine erfolgreiche Abtastung des Zielobjekts 112 anzeigt (z. B. wenn der Status der Erfassung eines gültigen Codes/einer gültigen Kennzeichnung entspricht und/oder der abgetastete Wert mit dem erfassten/erwarteten Objekt übereinstimmt), wie etwa bei Block 588, kann das Robotersystem 100 das Zielobjekt 112 zu der Aufgabenposition 116 überführen. In einigen Ausführungsformen kann das Robotersystem 100 auf Grundlage der erfolgreichen Abtastung jegliche folgende Abtastposition (z. B. die zweite Abtastposition) ignorieren und das Zielobjekt 112 direkt zu der Aufgabenposition 116 überführen
-
Wenn das Abtastergebnis eine nicht erfolgreiche Abtastung anzeigt, kann das Robotersystem 100 bei dem Entscheidungsblock 590 bestimmen, ob es sich bei der aktuellen Abtastposition um die letzte in dem Bewegungsplan handelt. Handelt es sich nicht um den letzten Bewegungsplan, kann das Robotersystem 100 das Zielobjekt 112 zu der nächsten Präsentationsposition/Präsentationsausrichtung überführen, wie durch einen Rücksprung auf Block 582 dargestellt ist.
-
Wenn es sich bei der aktuellen Abtastposition um die letzte in dem Bewegungsplan handelt, kann das Robotersystem 100 einen oder mehrere Abhilfevorgänge umsetzen, wie bei Block 592 veranschaulicht. In einigen Ausführungsformen kann das Robotersystem 100 den Bewegungsplan anhalten und/oder abbrechen, wenn die Abtastergebnisse für alle der Abtastpositionen in dem Bewegungsplan fehlgeschlagene Abtastungen anzeigen. In einigen Ausführungsformen kann das Robotersystem 100 einen Fehlerstatus/eine Fehlermeldung zum Benachrichtigen eines Bedieners erzeugen. In einigen Ausführungsformen kann das Robotersystem 100 das Zielobjekt 112 innerhalb eines Bereichs (d. h. an einer Position, die sich von der Startposition 114 und der Aufgabenposition 116 unterscheidet) platzieren, der für Objekte festgelegt ist, die nicht abgetastet werden konnten.
-
Auf Grundlage entweder des erfolgreichen Abschließens der Aufgabe 402 (d. h. des erfolgreichen Abtastens des Zielobjekts 112 und seines Platzierens an der Aufgabenposition 116) oder des Umsetzens der Abhilfevorgänge, kann das Robotersystem 100 zur nächsten Aufgabe/zum nächsten Objekt übergehen. In einigen Ausführungsformen kann das Robotersystem 100 die festgelegten Bereiche erneut abtasten, wie durch einen Rücksprung auf Block 502 veranschaulicht. In einigen Ausführungsformen kann das Robotersystem 100 die vorhandenen Bildgebungsdaten verwenden, um das nächste Objekt als das Zielobjekt 112 auszuwählen, wie durch einen Rücksprung zu Block 504 veranschaulicht.
-
Das Abtasten des Zielobjekts 112 in der Luft (z. B. an einer Position zwischen der Startposition 114 und der Aufgabenposition 116) stellt eine verbesserte Effizienz und Geschwindigkeit beim Ausführen der Aufgabe 402 bereit. Durch das Berechnen des Bewegungsplans, der die Abtastpositionen beinhaltet und mit den Objektabtasteinrichtungen 416 koordiniert wird, kann das Robotersystem 100 die Aufgabe zum Überführen des Zielobjektes mit der Aufgabe zum Abtasten des Zielobjektes effektiv kombinieren. Darüber hinaus verbessert das Berechnen des Bewegungsplans gemäß dem Konfidenzmaß der Anfangsausrichtung ferner die Effizienz, Geschwindigkeit und Korrektheit für die Abtastaufgabe. Wie vorstehend beschrieben, kann das Robotersystem 100 den Bewegungsplan berechnen, der alternative Ausrichtungen berücksichtigt, die dem Szenario entsprechen, dass die Anfangspose nicht korrekt ist. Dementsprechend kann das Robotersystem 100 die Wahrscheinlichkeit erhöhen, dass das Zielobjekt selbst bei Posenbestimmungsfehlern, wie etwa aufgrund von Kalibrierungsfehlern, unerwarteten Posen, unerwarteten Lichtverhältnissen usw. korrekt/erfolgreich abgetastet wird. Die erhöhte Wahrscheinlichkeit für korrekte Abtastungen kann zu einem erhöhten Gesamtdurchsatz für das Robotersystem 100 führen und den Aufwand/die Eingriffe des Bedieners weiter verringern.