DE102019130043A1 - Robotersystem mit fehlererkennung und dynamischem packmechanismus - Google Patents

Robotersystem mit fehlererkennung und dynamischem packmechanismus Download PDF

Info

Publication number
DE102019130043A1
DE102019130043A1 DE102019130043.6A DE102019130043A DE102019130043A1 DE 102019130043 A1 DE102019130043 A1 DE 102019130043A1 DE 102019130043 A DE102019130043 A DE 102019130043A DE 102019130043 A1 DE102019130043 A1 DE 102019130043A1
Authority
DE
Germany
Prior art keywords
placement
discretized
determining
robot system
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102019130043.6A
Other languages
English (en)
Other versions
DE102019130043B4 (de
Inventor
Rosen Nikolaev Diankov
Denys Kanunikov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Inc
Original Assignee
Mujin Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mujin Inc filed Critical Mujin Inc
Publication of DE102019130043A1 publication Critical patent/DE102019130043A1/de
Application granted granted Critical
Publication of DE102019130043B4 publication Critical patent/DE102019130043B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B57/00Automatic control, checking, warning, or safety devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B65/00Details peculiar to packaging machines and not otherwise provided for; Arrangements of such details
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/03Stacking of articles by adding to the top of the stack from above
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/16Stacking of articles of particular shape
    • B65G57/20Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical
    • B65G57/22Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical in layers each of predetermined arrangement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G61/00Use of pick-up or transfer devices or of manipulators for stacking or de-stacking articles not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2814/00Indexing codes relating to loading or unloading articles or bulk materials
    • B65G2814/03Loading or unloading means
    • B65G2814/0301General arrangements
    • B65G2814/0304Stacking devices
    • B65G2814/0305Adding to the top
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39391Visual servoing, track end effector with camera image feedback
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39393Camera detects projected image, compare with reference image, position end effector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40014Gripping workpiece to place it in another place
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45056Handling cases, boxes

Abstract

Ein Verfahren zum Betreiben eines Robotersystems beinhaltet das Bestimmen eines diskretisierten Objektmodells basierend auf Ausgangssensordaten; Vergleichen des diskretisierten Objektmodells mit einem Packplan oder mit Masterdaten; Bestimmen eines diskretisierten Plattformmodells basierend auf Zielsensordaten; Bestimmen von Höhenmaßen basierend auf den Zielsensordaten; Vergleichen des diskretisierten Plattformmodells und/oder der Höhenmaße mit einem erwarteten Plattformmodell und/oder erwarteten Höhenmaßen; und Bestimmen von einem oder mehreren Fehlern durch (i) Bestimmen von mindestens einem Ausgangszuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) dem diskretisierten Objektmodell und (b) dem Packplan oder den Masterdaten oder (ii) Bestimmen von mindestens einem Zielzuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) dem diskretisierten Plattformmodell oder den Höhenmaßen und (b) dem erwarteten Plattformmodell bzw. den erwarteten Höhenmaßen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Der Gegenstand der Anmeldung bezieht sich auf eine gleichzeitig eingereichte US-Patentanmeldung von Rosen N. Diankov und Denys Kanunikov mit dem Titel „A ROBOTIC SYSTEM WITH PACKING MECHANISM“, die auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8005.US01 trägt und vollumfänglich durch Bezugnahme hierin aufgenommen wird.
  • Der Gegenstand der Anmeldung bezieht sich auf eine gleichzeitig eingereichte US-Patentanmeldung von Rosen N. Diankov und Denys Kanunikov mit dem Titel „A ROBOTIC SYSTEM WITH DYNAMIC PACKING MECHANISM“, die auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8006.US01 trägt und vollumfänglich durch Bezugnahme hierin aufgenommen wird.
  • Der Gegenstand der Anmeldung bezieht sich auf eine gleichzeitig eingereichte US-Patentanmeldung von Rosen N. Diankov und Denys Kanunikov mit dem Titel „ROBOTIC SYSTEM FOR PROCESSING PACKAGES ARRIVING OUT OF SEQUENCE“, die auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8008.US01 trägt und vollumfänglich durch Bezugnahme hierin aufgenommen wird.
  • Der Gegenstand der Anmeldung bezieht sich auf eine gleichzeitig eingereichte US-Patentanmeldung von Rosen N. Diankov und Denys Kanunikov mit dem Titel „ROBOTIC SYSTEM FOR PALLETIZING PACKAGES USING REAL-TIME PLACEMENT SIMULATION“, die auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8009.US01 trägt und vollumfänglich durch Bezugnahme hierin aufgenommen wird.
  • TECHNISCHES GEBIET
  • Die vorliegende Technologie bezieht sich im Allgemeinen auf Robotersysteme und insbesondere auf Systeme, Prozesse und Techniken zum dynamischen Packen von Objekten basierend auf identifizierten Fehlern.
  • ALLGEMEINER STAND DER TECHNIK
  • Aufgrund ihrer ständig wachsenden Leistung und sinkenden Kosten werden nun viele Roboter (z. B. Maschinen, die dazu konfiguriert sind, physische Handlungen automatisch/autonom auszuführen) in vielen Bereichen weitgehend verwendet. Beispielsweise können Roboter verwendet werden, um verschiedene Aufgaben (z. B. Steuern oder Übertragen eines Objekts durch einen Raum) beim Herstellen und/oder Zusammenbauen, Packen und/oder Verpacken, Transportieren und/oder Versenden usw. auszuführen. Beim Ausführen der Aufgaben können die Roboter menschliche Handlungen replizieren, wodurch menschliches Eingreifen, das anderenfalls zur Durchführung gefährlicher oder sich wiederholender Aufgaben erforderlich wäre, ersetzt oder reduziert wird.
  • Trotz der technischen Fortschritte fehlt Robotern jedoch oftmals die Ausgereiftheit, die notwendig ist, um menschliches Feingefühl und/oder menschliche Anpassungsfähigkeit, das bzw. die für die Ausführung komplexerer Aufgaben erforderlich ist, zu duplizieren. Beispielsweise fehlt Robotern oftmals die Detailtiefe für die Steuerung und Flexibilität bei den ausgeführten Handlungen, um Abweichungen, Fehler oder Unklarheiten, die aus verschiedenen Faktoren aus der realen Welt hervorgehen können, zu berücksichtigen. Dementsprechend gibt es noch immer einen Bedarf nach verbesserten Techniken und Systemen zum Steuern und Handhaben verschiedener Aspekte der Roboter, um die Aufgaben trotz der verschiedenen Faktoren aus der realen Welt abzuschließen.
  • Figurenliste
    • 1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem mit einem dynamischen Packmechanismus arbeiten kann.
    • 2 ist ein Blockdiagramm, welches das Robotersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie veranschaulicht.
    • 3A ist eine Veranschaulichung von diskretisierten Objekten gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 3B ist eine Veranschaulichung einer diskretisierten Packplattform gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 4A ist eine Veranschaulichung einer Stützberechnung gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 4B ist eine Veranschaulichung einer Stützmetrik gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 5 ist eine Draufsicht, die eine beispielhafte Platzierung veranschaulicht, die von dem Robotersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung ausgeführt wird.
    • 6A ist eine Profilansicht, die einen ersten beispielhaften Ansatz gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 6B ist eine Profilansicht, die einen zweiten beispielhaften Ansatz gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
    • 7 ist ein Ablaufdiagramm zum Betreiben des Robotersystems aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 8 ist ein Ablaufdiagramm zum Betreiben des Robotersystems aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
  • DETAILLIERTE BESCHREIBUNG
  • In der vorliegenden Schrift werden Systeme und Verfahren zum Identifizieren verschiedener Packfehler und dem dynamischen Packen von Objekten (z. B. Paketen und/oder Kisten) beschrieben. Ein Robotersystem (z. B. ein integriertes System von Vorrichtungen, das eine oder mehrere spezielle Aufgaben ausführt), das gemäß einigen Ausführungsformen konfiguriert ist, stellt eine verbesserte Pack- und Lagereffizienz bereit, indem Lagerpositionen für die Objekte dynamisch abgeleitet werden und diese entsprechend gestapelt werden.
  • Traditionelle Systeme verwenden systemunabhängige Packsimulatoren, um Packsequenzen/-anordnungen vorzubestimmen. Die traditionellen Packsimulatoren verarbeiten Objektinformationen (z. B. Formen/Größen von Behältern) für eine vorbestimmte oder geschätzte Reihe von Behältern, um Packpläne zu erzeugen. Sobald sie bestimmt wurden, geben die Packpläne spezifische Positionen/Stellungen für die Platzierung der Objekte an Zielorten (z. B. Paletten, Tonnen, Körbe, Kisten usw.), spezifische Sequenzen für die Platzierung und/oder vorbestimmte Bewegungspläne vor und/oder erfordern diese. Anhand der vorbestimmten Packpläne können die traditionellen Packsimulatoren Ausgangsanforderungen (z. B. Sequenzen und/oder Platzierungen für die Objekte) ableiten, die mit den Packplänen übereinstimmen oder diese ermöglichen.
  • Da die Packpläne in traditionellen Systemen systemunabhängig entwickelt werden, sind die Pläne unabhängig von tatsächlichen Packvorgängen/-bedingungen, Objektankünften und/oder anderen Systemumsetzungen. Dementsprechend erfordert der gesamte Betrieb/die gesamte Umsetzung, dass die aufgenommenen Pakete (z. B. an der Start-/Aufnahmeposition) festen Sequenzen folgen, die mit den vorbestimmten Packplänen übereinstimmen. Demnach können sich traditionelle Systeme nicht an Echtzeit-Bedingungen und/oder Abweichungen der aufgenommenen Pakete (z. B. andere Sequenz, Position und/oder Ausrichtung), unerwartete Fehler (z. B. Kollisionen, verlorengegangene Stücke und/oder unterschiedliche Packbedingungen), Echtzeit-Packanforderungen (z. B. empfangene Aufträge) und/oder andere Echtzeit-Faktoren anpassen. Da traditionelle Systeme Objekte gemäß festen vorbestimmten Plänen/Sequenzen gruppieren und packen, ist ferner erforderlich, dass alle Objekte an einer Ausgangsposition entweder (1) eine gleiche erwartete Abmessung/Art aufweisen oder (2) gemäß einer bekannten Sequenz ankommen. Zum Beispiel erfordern traditionelle Systeme, dass Objekte (z. B. mittels einer Fördervorrichtung) gemäß einer festen Sequenz an einer Aufnahmeposition ankommen. Außerdem erfordern die traditionellen Systeme beispielsweise, dass die Objekte an der Aufnahmeposition gemäß einer vorbestimmten Stellung an speziellen Positionen zu platzieren sind. Somit erfordern traditionelle Systeme einen oder mehrere Vorgänge, um die Objekte am Ausgang (d. h. vor dem Packvorgang) gemäß der vorbestimmten Sequenz/Anordnung zu sortieren und/oder zu platzieren. Oftmals erfordern traditionelle Systeme einen Sequenzpuffer, der über eine Million US-Dollar kostet, um die Objekte am Ausgang gemäß der vorbestimmten Sequenz/Stellung zu sortieren und/oder zu platzieren.
  • Im Gegensatz zu traditionellen Systemen kann das hierin beschriebene Robotersystem während des Systembetriebs (i) Echtzeit-Bedingungen und/oder Abweichungen der aufgenommenen Pakete und/oder andere unerwartete Fehler identifizieren und (ii) Platzierungspositionen der Objekte dynamisch ableiten (z. B., wenn ein oder mehrere Objekte ankommen oder identifiziert werden und/oder nach dem Starten von einem oder mehreren Vorgängen, wie etwa einem Packvorgang) . In einigen Ausführungsformen kann das Robotersystem die dynamische Ableitung der Platzierung basierend auf einem Auslöseereignis einleiten/umsetzen, wie etwa einer Identifizierung von einem oder mehreren Pack-/Steuerungsfehlern (z. B. einem Kollisionsereignis oder einem Ereignis eines verlorengegangenen Stücks), eines nicht erkannten Objekts (z. B. am Ausgang und/oder am Ziel), einer Veränderung der Positionen/Ausrichtungen von bereits platzierten Paketen und/oder eines Vorhandenseins anderer dynamischer Bedingungen. Beim dynamischen Ableiten der Platzierungspositionen kann das Robotersystem verschiedene Echtzeit-Bedingungen (z. B. derzeit bestehende oder fortdauernde Bedingungen) verwenden, die z. B. verfügbare/ankommende Objekte, Objekteigenschaften und/oder -anforderungen, Platzierungsanforderungen und/oder andere Echtzeit-Faktoren beinhalten.
  • Das Robotersystem kann die Platzierungspositionen basierend auf einem Diskretisierungsmechanismus (z. B. einem Prozess, einer Schaltung, einer Funktion und/oder einer Routine) ableiten. Zum Beispiel kann das Robotersystem den Diskretisierungsmechanismus verwenden, um physische Größen/Formen von Objekten und/oder Zielpositionen gemäß einer Diskretisierungseinheit (d. h. einem diskreten Bereich/Raum) zu beschreiben. Das Robotersystem kann diskretisierte Objektprofile, die die Diskretisierungseinheiten verwenden, um die erwarteten Objekte zu beschreiben, und/oder diskretisierte Zielprofile, die die Zielposition (z. B. Fläche oben auf der Palette und/oder einen Raum/eine untere Fläche innerhalb einer Tonne/eines Behälters/einer Kiste) beschreiben, erzeugen. Dementsprechend kann das Robotersystem einen durchgehenden Raum/Bereich der realen Welt in computerlesbare digitale Informationen umwandeln. Ferner können die diskretisierten Daten eine Reduzierung der Rechenkomplexität zum Beschreiben des Grundrisses des Pakets und zum Vergleichen verschiedener Paketplatzierungen ermöglichen. Zum Beispiel können die Paketabmessungen ganzen Zahlen von Diskretisierungseinheiten entsprechen, die zu einfacheren mathematischen Berechnungen führen, anstelle von Dezimalzahlen der realen Welt.
  • In einigen Ausführungsformen kann das Robotersystem diskretisierte Zellen hinsichtlich der Platzierungsplattform überprüfen, um Objektplatzierungsmöglichkeiten zu bestimmen. Zum Beispiel kann das Robotersystem Tiefenmessungen oder Höhen von platzierten Objekten auf der Platzierungsplattform verwenden. Das Robotersystem kann das Tiefenmaß bestimmen, um Höhen bei/gemäß den diskretisierten Zellen zu bestimmen. Das Robotersystem kann das Tiefenmaß gemäß den Gruppierungen der diskretisierten Zellen beurteilen, die dem Objekt entsprechen, das platziert werden soll. Das Robotersystem kann die maximale Höhe innerhalb der Gruppierung zum Beurteilen der Platzierungsmöglichkeiten bestimmen. Anders formuliert, kann das Robotersystem bestimmen, ob die getestete Platzierungsposition eine ausreichende Stützung bereitstellt, sodass das platzierte Objekt relativ flach platziert werden kann (z. B. gemäß den vorbestimmten Schwellenwerten und/oder Bedingungen). Einzelheiten bezüglich der dynamischen Platzierungsableitungen sind nachfolgend beschrieben.
  • Dementsprechend kann das Robotersystem die Effizienz, Geschwindigkeit und Genauigkeit für das dynamische Ableiten der Objektplatzierung basierend auf den Echtzeit-Bedingungen verbessern. Zum Beispiel kann das hierin beschriebene System die Platzierungspositionen ableiten, wenn die Echtzeit-Bedingungen Unklarheiten in Verbindung mit erwarteten Bedingungen und/oder Abweichungen davon darstellen. Ferner kann das Robotersystem die Gesamtkosten durch Beseitigen des einen oder der mehreren Vorgänge, der einen oder mehreren Maschinen (z. B. Sequenzpuffer) und/oder der menschlichen Unterstützung, die bei traditionellen Systemen notwendig wären, um die Objekte am Ausgang und/oder für den Packvorgang (z. B. zur Fehlerbehandlung) zu platzieren, reduzieren. Durch das dynamische Ableiten von Platzierungspositionen, wenn die Objekte verfügbar werden (z. B. basierend auf Ankunfts- und/oder Auslöseereignissen von Objekten), beseitigt das Robotersystem die Notwendigkeit, die Pakete erneut zu organisieren oder zu sequenzieren, zusammen mit den assoziierten maschinellen/menschlichen Vorgängen.
  • Nach dem Ableiten der Objektplatzierung kann das Robotersystem das Objekt an der abgeleiteten Platzierungsposition gemäß einem abgeleiteten Annäherungsplan platzieren. In einigen Ausführungsformen kann das Robotersystem verifizieren, dass die Platzierung des Objekts an der abgeleiteten Platzierungsposition genau ist, und/oder kann Platzierungspositionen für ein oder mehrere andere Objekte dynamisch ableiten (z. B. basierend auf früheren Platzierungen der Objekte an den entsprechenden Platzierungspositionen).
  • In der folgenden Beschreibung sind zahlreiche spezifische Details aufgeführt, um ein umfassendes Verständnis der vorliegend offenbarten Technologie zu ermöglichen. In anderen Ausführungsformen können die hier eingeführten Techniken ohne diese spezifischen Details in die Praxis umgesetzt werden. In anderen Fällen werden hinreichend bekannte Merkmale, wie etwa spezifische Funktionen oder Routinen, nicht ausführlich beschrieben, um die vorliegende Offenbarung nicht unnötig undeutlich zu machen. Verweise in dieser Beschreibung auf „eine Ausführungsform“ oder dergleichen bedeuten, dass ein/e bestimmte/s Merkmal, Struktur, Material oder Charakteristik, das bzw. die beschrieben ist, in mindestens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Somit beziehen sich derartige Formulierungen in dieser Beschreibung nicht notwendigerweise allesamt auf die gleiche Ausführungsform. Andererseits schließen sich derartige Verweise auch nicht notwendigerweise gegenseitig aus. Zudem können die konkreten Merkmale, Strukturen, Materialien oder Eigenschaften in einer oder mehreren Ausführungsformen auf eine beliebige geeignete Weise kombiniert werden. Es versteht sich, dass die in den Figuren gezeigten verschiedenen Ausführungsformen lediglich veranschaulichende Darstellungen und nicht unbedingt maßstabsgetreu sind.
  • Mehrere Details, die Strukturen oder Prozesse beschreiben, die hinreichend bekannt und oftmals mit Robotersystemen und -teilsystemen assoziiert sind, die jedoch einige signifikante Aspekte der offenbarten Techniken unnötig undeutlich machen können, sind der Einfachheit halber in der folgenden Beschreibung nicht dargelegt. Wenngleich die folgende Offenbarung mehrere Ausführungsformen verschiedener Aspekte der vorliegenden Technologie darlegt, können darüber hinaus mehrere andere Ausführungsformen andere Konfigurationen oder andere Komponenten als die in diesem Abschnitt beschriebenen aufweisen. Dementsprechend können die offenbarten Techniken andere Ausführungsformen mit zusätzlichen Elementen oder ohne mehrere der Elemente, die nachfolgend beschrieben sind, aufweisen.
  • Viele Ausführungsformen oder Aspekte der vorliegenden Offenbarung, die nachfolgend beschrieben sind, können die Form von computer- oder prozessorausführbaren Anweisungen annehmen, einschließlich Routinen, die von einem programmierbaren Computer oder Prozessor ausgeführt werden. Der Fachmann erkennt, dass die offenbarten Techniken auf anderen Computer- oder Prozessorsystemen als den nachfolgend gezeigten und beschriebenen umgesetzt werden können. Die hierin beschriebenen Techniken können in einem Spezialcomputer oder einem Datenprozessor ausgeführt werden, der spezifisch programmiert, konfiguriert oder konstruiert ist, eine oder mehrere der nachfolgend beschriebenen computerausführbaren Anweisungen auszuführen. Dementsprechend beziehen sich die Begriffe „Computer“ und „Prozessor“, wie in der vorliegenden Schrift im Allgemeinen verwendet, auf einen beliebigen Datenprozessor und können Internetgeräte und tragbare Vorrichtungen umfassen (darunter Palmtop-Computer, tragbare Computer, Mobiltelefone, Mehrprozessorsysteme, prozessorbasierte oder programmierbare Unterhaltungselektronik, Netzwerkcomputer, Minicomputer und dergleichen). Informationen, die von diesen Computern und Prozessoren verarbeitet werden, können auf einem beliebigen geeigneten Anzeigemedium, einschließlich einer Flüssigkristallanzeige (liquid crystal display - LCD), dargestellt werden. Anweisungen zum Ausführen von computer- oder prozessorausführbaren Aufgaben können in oder auf einem beliebigen geeigneten computerlesbaren Medium, einschließlich Hardware, Firmware oder einer Kombination aus Hardware und Firmware, gespeichert sein. Anweisungen können in einer beliebigen geeigneten Speichervorrichtung enthalten sein, einschließlich zum Beispiel eines Flash-Laufwerks und/oder eines anderen geeigneten Mediums.
  • Die Ausdrücke „gekoppelt“ und „verbunden“ samt deren Ableitungen können hierin verwendet werden, um strukturelle Beziehungen zwischen den Komponenten zu beschreiben. Es versteht sich, dass diese Ausdrücke nicht als Synonyme füreinander bestimmt sind. Vielmehr kann „verbunden“ in bestimmten Ausführungsformen verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem Kontakt miteinander stehen. Sofern aus dem Kontext nicht anderweitig ersichtlich, kann der Ausdruck „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente entweder in direktem oder in indirektem Kontakt miteinander (mit anderen Zwischenelementen dazwischen) stehen oder dass die zwei oder mehr Elemente miteinander wirken oder interagieren (z. B. als eine Ursache-Wirkungs-Beziehung, wie etwa für die Signalübertragung/den Signalempfang oder für Funktionsaufrufe) oder beides.
  • Geeignete Umgebungen
  • 1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem 100 mit einem dynamischen Packmechanismus arbeiten kann. Das Robotersystem 100 kann eine oder mehrere Einheiten (z. B. Roboter) beinhalten und/oder mit diesen kommunizieren, die dazu konfiguriert sind, eine oder mehrere Aufgaben auszuführen. Aspekte des dynamischen Packmechanismus können von den verschiedenen Einheiten praktiziert oder umgesetzt werden.
  • Für das in 1 veranschaulichte Beispiel kann das Robotersystem 100 eine Entladeeinheit 102, eine Übertragungseinheit 104 (z. B. einen Palettierungsroboter und/oder einen Stückaufnahmeroboter), eine Transporteinheit 106, eine Ladeeinheit 108 oder eine Kombination davon in einem Lager oder einem Verteil-/Versandzentrum beinhalten. Jede der Einheiten in dem Robotersystem 100 kann dazu konfiguriert sein, eine oder mehrere Aufgaben auszuführen. Die Aufgaben können nacheinander kombiniert werden, um einen Vorgang durchzuführen, der ein Ziel erreicht, wie etwa das Entladen von Objekten von einem Lastkraftwagen oder einem Lieferwagen und das Lagern dieser in einem Lager oder das Entladen von Objekten aus Lagerbereichen und Vorbereiten dieser für den Versand. In einigen Ausführungsformen kann die Aufgabe das Platzieren der Objekte an einer Zielposition (z. B. oben auf einer Palette und/oder innerhalb einer Tonne/eines Korbs/einer Kiste/eines Behälters) umfassen. Wie nachfolgend ausführlich beschrieben, kann das Robotersystem 100 individuelle Platzierungspositionen/-ausrichtungen ableiten, entsprechende Bewegungspläne berechnen oder eine Kombination davon, um die Objekte zu platzieren und/oder zu stapeln. Jede der Einheiten kann dazu konfiguriert sein, eine Sequenz von Handlungen (z. B. Betreiben einer oder mehrerer Komponenten darin) auszuführen, um eine Aufgabe auszuführen.
  • In einigen Ausführungsformen kann die Aufgabe das Steuern (z. B. das Bewegen und/oder Neuausrichten) eines Zielobjekts 112 (z. B. eines von den Paketen, Kisten, Behältern, Körben, Paletten usw., die der auszuführenden Aufgabe entsprechen) von einer Start-/Ausgangsposition 114 zu einer Aufgaben-/Zielposition 116 beinhalten (z. B. basierend auf Informationen, die von einem oder mehreren Sensoren erhalten wurden, wie etwa einer oder mehreren dreidimensionalen (3D) Sichtkameras 122). Beispielsweise kann die Entladeeinheit 102 (z. B. ein Containerentladeroboter) konfiguriert sein, um das Zielobjekt 112 von einer Position auf einem Träger (z. B. einem Lastkraftwagen) zu einer Position auf einem Förderband zu übertragen. Außerdem kann die Übertragungseinheit 104 konfiguriert sein, um das Zielobjekt 112 von einer Position (z. B. dem Förderband, einer Palette oder einer Tonne) zu einer anderen Position (z. B. einer Palette, einer Tonne usw.) zu übertragen. In einem anderen Beispiel kann die Übertragungseinheit 104 (z. B. ein Palettierungsroboter) konfiguriert sein, um das Zielobjekt 112 von einer Ausgangsposition (z. B. einer Palette, einem Aufnahmebereich und/oder einer Fördervorrichtung) zu einer Zielpalette zu übertragen. Beim Abschließen des Vorgangs kann die Transporteinheit 106 das Zielobjekt 112 von einem Bereich, der mit der Übertragungseinheit 104 assoziiert ist, zu einem Bereich, der mit der Ladeeinheit 108 assoziiert ist, übertragen, und die Ladeeinheit 108 kann das Zielobjekt 112 (z. B. durch Bewegen der Palette, die das Zielobjekt 112 trägt) von der Übertragungseinheit 104 zu einer Lagerposition (z. B. einer Position auf den Regalen) übertragen. Einzelheiten bezüglich der Aufgabe und der assoziierten Handlungen sind nachfolgend beschrieben.
  • Zum Zwecke der Veranschaulichung ist das Robotersystem 100 im Kontext eines Versandzentrums beschrieben; jedoch versteht es sich, dass das Robotersystem 100 dazu konfiguriert sein kann, Aufgaben in anderen Umgebungen/zu anderen Zwecken auszuführen, wie etwa für die Herstellung, den Zusammenbau, das Verpacken, die Gesundheitspflege und/oder andere Arten von Automatisierung. Es versteht sich außerdem, dass das Robotersystem 100 andere Einheiten beinhalten kann, wie etwa Handhabungsvorrichtungen, Serviceroboter, modulare Roboter usw., die in 1 nicht gezeigt sind. In einigen Ausführungsformen kann das Robotersystem 100 zum Beispiel eine Depalettierungseinheit für das Übertragen der Objekte von Korbwägen oder Paletten auf Fördervorrichtungen oder andere Paletten, eine Containerwechseleinheit für das Übertragen der Objekte von einem Container auf einen anderen, eine Verpackungseinheit für das Einwickeln der Objekte, eine Sortiereinheit für das Gruppieren von Objekten gemäß einer oder mehreren Charakteristika davon, eine Stückaufnahmeeinheit für das unterschiedliche Steuern (z. B. Sortieren, Gruppieren und/oder Übertragen) der Objekte gemäß einer oder mehreren Charakteristika davon oder eine Kombination davon beinhalten.
  • Geeignetes System
  • 2 ist ein Blockdiagramm, welches das Robotersystem 100 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie veranschaulicht. In einigen Ausführungsformen kann das Robotersystem 100 (z. B. an einer/einem oder mehreren der Einheiten und/oder Roboter, wie vorstehend beschrieben) zum Beispiel elektronische/elektrische Vorrichtungen, wie etwa einen oder mehrere Prozessoren 202, eine oder mehrere Speichervorrichtungen 204, eine oder mehrere Kommunikationsvorrichtungen 206, eine oder mehrere Eingabe-/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 drahtgebundene Verbindungen und/oder drahtlose Verbindungen aneinander gekoppelt sein. Zum Beispiel kann das Robotersystem 100 einen Bus, wie etwa einen Systembus, einen Peripheral-Component-Interconnect(PCI)-Bus oder PCI-Express-Bus, einen HyperTransport- oder Industry-Standard-Architecture(ISA)-Bus, einen Small-Computer-System-Interface(SCSI)-Bus, einen Universal-Serial-Bus (USB), einen IIC(I2C)-Bus oder einen Institute-of-Electrical-and-Electronics-Engineers(IEEE)-Standard-1394-Bus (auch als „Firewire“ bezeichnet), beinhalten. Beispielsweise kann das Robotersystem 100 auch Brücken, Adapter, Prozessoren oder andere signalbezogene Vorrichtungen zum Bereitstellen der drahtgebundenen Verbindungen zwischen den Vorrichtungen beinhalten. Die drahtlosen Verbindungen können beispielsweise auf zellulären Kommunikationsprotokollen (z. B. 3G, 4G, LTE, 5G usw.), drahtlosen Local-Area-Network(LAN)-Protokollen (z. B. Wireless Fidelity (WiFi)), Peer-to-Peer- oder Vorrichtung-zu-Vorrichtung-Kommunikationsprotokollen (z. B. Bluetooth, Nachbereichskommunikation (NFC) usw.), Internet-der-Dinge(Internet of Things - IoT)-Protokollen (z. B. NB-IoT, LTE-M usw.) und/oder anderen drahtlosen Kommunikationsprotokollen basieren.
  • Die Prozessoren 202 können Datenprozessoren (z. B. zentrale Verarbeitungseinheiten (central processing units - CPU), Spezialcomputer und/oder integrierte Server) umfassen, die konfiguriert sind, um Anweisungen (z. B. Software-Anweisungen), die in den Speichervorrichtungen 204 (z. B. Computerspeicher) gespeichert sind, auszuführen. In einigen Ausführungsformen können die Prozessoren 202 in einer separaten/eigenständigen Steuerung enthalten sein, die an die anderen in 2 veranschaulichten elektronischen/elektrischen Vorrichtungen und/oder den in 1 veranschaulichten Robotereinheiten wirkgekoppelt ist. Die Prozessoren 202 können die Programmanweisungen umsetzen, um andere Vorrichtungen zu steuern bzw. eine Schnittstelle damit zu bilden, wodurch das Robotersystem 100 dazu veranlasst wird, Handlungen, Aufgaben und/oder Vorgänge auszuführen.
  • Bei den Speichervorrichtungen 204 kann es sich um nicht flüchtige computerlesbare Medien handeln, auf denen Programmanweisungen (z. B. Software) gespeichert sind. Einige Beispiele für die Speichervorrichtungen 204 umfassen flüchtigen Speicher (z. B. Cache und/oder Direktzugriffsspeicher (random-access memory - RAM)) und/oder nicht flüchtigen Speicher (z. B. Flash-Speicher und/oder Magnetplatteneinheiten). Andere Beispiele für die Speichervorrichtungen 204 können tragbare Speichervorrichtungen und/oder Cloud-Speichervorrichtungen beinhalten.
  • In einigen Ausführungsformen können die Speichervorrichtungen 204 verwendet werden, um zudem Verarbeitungsergebnisse und/oder vorbestimmte Daten/Schwellenwerte zu speichern und Zugriff darauf bereitzustellen. Zum Beispiel können die Speichervorrichtungen 204 Masterdaten 252 speichern, die Beschreibungen von Objekten (z. B. Kisten, Behältern und/oder Produkten) beinhalten, die von dem Robotersystem 100 gesteuert werden können. In einer oder mehreren Ausführungsformen können die Masterdaten 252 eine Abmessung, eine Form (z. B. Vorlagen für mögliche Stellungen und/oder von Computern erzeugte Modelle für das Erkennen des Objekts in unterschiedlichen Stellungen), ein Farbschema, ein Bild, Identifizierungsinformationen (z. B. Barcodes, Quick-Response(QR)-Codes, Logos usw. und/oder erwartete Positionen davon), ein erwartetes Gewicht, andere physische/visuelle Charakteristika oder eine Kombination davon für die Objekte, die von dem Robotersystem 100 erwartungsgemäß zu steuern sind, beinhalten. In einigen Ausführungsformen können die Masterdaten 252 steuerungsbezogene Informationen bezüglich der Objekte beinhalten, wie etwa eine Massenmittelpunkt(center of mass - CoM)-Position an jedem der Objekte, erwartete Sensormessungen (z. B. für Kraft-, Drehmoment-, Druck- und/oder Kontaktmessungen), die einer/einem oder mehreren Handlungen/Manövern entsprechen, oder eine Kombination davon. Außerdem können die Speichervorrichtungen 204 beispielsweise Objektverfolgungsdaten 254 speichern. In einigen Ausführungsformen können die Objektverfolgungsdaten 254 ein Protokoll von gescannten oder gesteuerten 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. speziellen 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 den mehreren Positionen beinhalten.
  • Die Kommunikationsvorrichtungen 206 können Schaltungen beinhalten, die dazu konfiguriert sind, über ein Netzwerk mit externen oder entfernen Vorrichtungen zu kommunizieren. Beispielsweise können die Kommunikationsvorrichtungen 206 Empfänger, Sender, Modulatoren/Demodulatoren (Modems), Signaldetektoren, Signalcodierer/-decodierer, Verbindungsanschlüsse, Netzwerkkarten usw. umfassen. Die Kommunikationsvorrichtungen 206 können konfiguriert sein, um elektrische Signale gemäß einem oder mehreren Kommunikationsprotokollen (z. B. dem Internetprotokoll (IP), den drahtlosen Kommunikationsprotokollen usw.) zu senden, zu empfangen und/oder zu verarbeiten. In einigen Ausführungsformen kann das Robotersystem 100 die Kommunikationsvorrichtungen 206 verwenden, um Informationen zwischen Einheiten des Robotersystems 100 auszutauschen und/oder Informationen (z. B. zum Zwecke der Berichterstattung, der Datenerfassung, der Analyse und/oder der Fehlerbehebung) mit Systemen oder Vorrichtungen außerhalb des Robotersystems 100 auszutauschen.
  • Die Eingabe-/Ausgabevorrichtungen 208 können Benutzerschnittstellenvorrichtungen umfassen, die konfiguriert sind, um Informationen an die menschlichen Bediener zu kommunizieren 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 haptische Schaltung oder eine Tastrückmeldungsvorrichtung usw.) zum Kommunizieren von Informationen an den menschlichen Bediener umfassen. Zudem können die Eingabe-/Ausgabevorrichtungen 208 Steuer- und Empfangsvorrichtungen umfassen, wie etwa eine Tastatur, eine Maus, einen Touchscreen, ein Mikrofon, einen Benutzerschnittstellen(user interface - UI)-Sensor (z. B. eine Kamera für das 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 einer Handlung, einer Aufgabe, eines Vorgangs oder einer Kombination davon zu interagieren.
  • Das Robotersystem 100 kann physische oder strukturelle Elemente (z. B. Robotersteuerarme) umfassen, die zur Bewegung an Gelenken verbunden sind (z. B. Rotations- und/oder Translationsverschiebungen). Die strukturellen Elemente und die Gelenke können eine kinetische Kette bilden, die konfiguriert ist, um einen Endeffektor (z. B. den Greifer) zu steuern, der konfiguriert ist, um eine oder mehrere Aufgaben (z. B. Greifen, Drehen, Schweißen usw.) in Abhängigkeit von der Verwendung/dem Betrieb des Robotersystems 100 auszuführen. Das Robotersystem 100 kann die Betätigungsvorrichtungen 212 (z. B. Motoren, Aktoren, Drähte, künstlichen Muskeln, elektroaktiven Polymere usw.) umfassen, die konfiguriert sind, um die strukturellen Elemente um ein entsprechendes Gelenk oder daran anzutreiben oder zu steuern (z. B. zu verschieben und/oder neu auszurichten). In einigen Ausführungsformen kann das Robotersystem 100 die Transportmotoren 214 umfassen, die konfiguriert sind, um die entsprechenden Einheiten/Gehäuse von Ort zu Ort zu transportieren.
  • Das Robotersystem 100 kann die Sensoren 216 umfassen, die konfiguriert sind, um Informationen abzurufen, die verwendet werden, um die Aufgaben umzusetzen, wie etwa zum Steuern der strukturellen Elemente und/oder zum Transportieren der Robotereinheiten. Die Sensoren 216 können Vorrichtungen umfassen, die konfiguriert sind, um eine oder mehrere physische Eigenschaften des Robotersystems 100 (z. B. einen Zustand, eine Bedingung und/oder eine Position von einem oder mehreren strukturellen Elementen/Gelenken davon) und/oder einer unmittelbaren Umgebung zu erkennen oder zu messen. Zu einigen Beispielen für die Sensoren 216 können Beschleunigungsmesser, Gyroskope, Kraftsensoren, Dehnungsmesser, Berührungssensoren, Drehmomentsensoren, Positionscodierer usw. gehören.
  • In einigen Ausführungsformen können die Sensoren 216 beispielsweise eine oder mehrere Bildgebungsvorrichtungen 222 (z. B. visuelle und/oder Infrarotkameras, zweidimensionale (2D-) und/oder 3D-Bildaufnahmekameras, Abstandsmessvorrichtungen, wie etwa Lidar oder Radar, usw.) beinhalten, die dazu konfiguriert sind, die unmittelbare Umgebung zu erkennen. Die Bildgebungsvorrichtungen 222 können Darstellungen der detektierten Umgebung erzeugen, wie etwa digitale Bilder und/oder Punktwolken, die durch Maschinen-/Computervision verarbeitet werden können (z. B. zur automatischen Inspektion; Roboterführung oder für andere Roboteranwendungen) . Wie nachfolgend ausführlicher 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 Stellung des Zielobjekts 112, ein Konfidenzmaß bezüglich der Startposition 114 und/oder der Stellung oder eine Kombination davon zu identifizieren.
  • Zur Steuerung des Zielobjekts 112 kann das Robotersystem 100 (z. B. über die verschiedenen vorstehend beschriebenen Schaltungen/Vorrichtungen) Bildaten eines speziellen Bereichs (z. B. einer Aufnahmeposition, wie etwa innerhalb des Lastkraftwagens oder auf dem Förderband) erfassen und analysieren, um das Zielobjekt 112 und die Startposition 114 davon zu identifizieren. Gleichermaßen kann das Robotersystem 100 Bilddaten eines anderen festgelegten Bereichs (z. B. einer Ablageposition zum Platzieren von Objekten auf dem Förderband, einer Position zum Platzieren von Objekten innerhalb des Containers oder einer Position auf der Palette zum Stapeln) erfassen und analysieren, um die Aufgabenposition 116 zu erkennen. Beispielsweise können die Bildgebungsvorrichtungen 222 eine oder mehrere Kameras, die dazu konfiguriert sind, Bilddaten des Aufnahmebereichs zu erzeugen, und/oder eine oder mehrere Kameras, die dazu konfiguriert sind, Bilddaten des Aufgabenbereichs (z. B. Abgabebereichs) zu erzeugen, beinhalten. Basierend auf den Bilddaten, wie nachfolgend beschrieben, kann das Robotersystem 100 die Startposition 114, die Aufgabenposition 116, die assoziierten Stellungen, eine Pack-/Platzierungsposition und/oder andere Verarbeitungsergebnisse bestimmen. Einzelheiten bezüglich des dynamischen Packalgorithmus sind nachfolgend beschrieben.
  • In einigen Ausführungsformen können die Sensoren 216 beispielsweise Positionssensoren 224 (z. B. Positionscodierer, Potentiometer usw.) beinhalten, die dazu konfiguriert sind, Positionen von strukturellen Elementen (z. B. den Roboterarmen und/oder den Endeffektoren) und entsprechenden Gelenken des Robotersystems 100 zu detektieren. Das Robotersystem 100 kann die Positionssensoren 224 verwenden, um Positionen und/oder Ausrichtungen der strukturellen Elemente und/oder der Gelenke während der Ausführung der Aufgabe zu verfolgen.
  • Diskretisierungsmodelle
  • 3A und 3B sind Veranschaulichungen von diskretisierten Daten, die verwendet werden, um Objekte gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie zu planen und zu packen. 3A veranschaulicht diskretisierte Objekte und 3B veranschaulicht eine diskretisierte Packplattform für das Packen von Objekten.
  • In einigen Ausführungsformen kann das Robotersystem 100 aus 1 vorbestimmte diskretisierte Modelle/Darstellungen der erwarteten Objekte, die in den Masterdaten 252 aus 2 gespeichert sind, beinhalten. In einigen Ausführungsformen kann das Robotersystem 100 (z. B. über die Prozessoren 202 aus 2) die diskretisierten Modelle dynamisch erzeugen, indem durchgehende Flächen/Kanten von Objekten der realen Welt (z. B. Paketen, Paletten und/oder anderen Objekten, die mit der Aufgabe assoziiert sind) in diskrete Gegenstücke (z. B. Längeneinheiten und/oder Flächeneinheiten) abgebildet werden. Zum Beispiel kann das Robotersystem 100 Bilddaten (z. B. ein Bild einer Draufsicht und/oder Punktwolkedaten) des Zielobjekts 112 und/oder einer oberen Fläche der Palette, die durch die eine oder mehreren Bildgebungsvorrichtungen 222 aus 2 erfasst werden, diskretisieren. Anders formuliert, kann das Robotersystem 100 die Bilddaten der Startposition 114 aus 1, einer Position vor der Startposition 114 auf einer Fördervorrichtung und/oder der Aufgabenposition 116 aus 1 diskretisieren. Das Robotersystem 100 kann basierend auf dem Identifizieren eines Außenumfangs des Objekts/der Palette in den Bilddaten und dann Unterteilen des Bereichs innerhalb des Außenumfangs gemäß einer Dimensions-/Flächeneinheit diskretisieren. In einigen Ausführungsformen kann die Dimensions-/Flächeneinheit für die Bilddaten basierend auf einer Größe und/oder einer Position des Objekts/der Palette relativ zu den Bildgebungsvorrichtungen 222 gemäß einem Koordinatendiagramm und/oder einem vorbestimmten Anpassungsfaktor/einer vorbestimmten Anpassungsgleichung skaliert oder abgebildet werden.
  • Wie in 3A veranschaulicht, können einige Ausführungsformen des Robotersystems 100 diskretisierte Objektmodelle 302 verwenden, um Platzierungspositionen von Objekten (z. B. des Zielobjekts 112) zu planen/abzuleiten. Die diskretisierten Objektmodelle 302 (in gepunkteten Linien gezeigt) können äußere physische Abmessungen, Formen, Kanten, Flächen oder eine Kombination davon (in gestrichelten Linien gezeigt) für ankommende oder eingehende Objekte (z. B. Pakete, Kisten, Behälter usw.) gemäß einer Diskretisierungseinheit (z. B. einer Längeneinheit) darstellen. Die diskretisierten Objektmodelle 302 können erwartete/bekannte Objekte und/oder unerwartete/unbekannte Objekte darstellen, die wie vorstehend beschrieben abgebildet und diskretisiert wurden.
  • Wie in 3B veranschaulicht, können einige Ausführungsformen des Robotersystems 100 ein oder mehrere diskretisierte Plattformmodelle 304 (z. B. diskretisierte Darstellungen der Aufgabenpositionen 116 aus 1) verwenden, um Stapelplatzierungen von Objekten zu planen/abzuleiten. Die diskretisierten Plattformmodelle 304 können einen Platzierungsbereich 340 (z. B. die physikalische Abmessung, Form oder eine Kombination davon der Aufgabenposition 116, wie etwa eine obere Fläche der Aufgabenposition 116, eine obere Fläche eines darauf platzierten Pakets oder eine Kombination davon) gemäß der Diskretisierungseinheit darstellen. In einer oder mehreren Ausführungsformen können die diskretisierten Plattformmodelle 304 Echtzeit-Bedingungen des Platzierungsbereichs 340, wie etwa über Echtzeit-Aktualisierungen, darstellen. In Bezug auf eine Draufsicht können die diskretisierten Plattformmodelle 304 beispielsweise anfangs eine obere Fläche einer Palette, eine innere untere Fläche einer Tonne oder einer Kiste usw., die die Objekte aufnehmen und direkt berühren soll, darstellen. Wenn das Robotersystem 100 die Objekte platziert, kann sich der Platzierungsbereich 340 derart verändern, dass er obere Flächen der platzierten Pakete (z. B. zum Stapeln von Paketen) beinhaltet, und das diskretisierte Plattformmodell 304 kann aktualisiert werden, um die Veränderungen widerzuspiegeln.
  • In einigen Ausführungsformen können die diskretisierten Plattformmodelle 304 auf Draufsichten von einer oder mehreren Paletten mit Standardgröße (z. B. Paletten mit 1,1 m mal 1,1 m) basieren. Dementsprechend können die diskretisierten Plattformmodelle 304 pixelierten 2D-Darstellungen der Platzierungsbereiche entlang horizontaler Ebenen (z. B. der x-y-Ebenen) gemäß einem von dem Robotersystem 100 verwendeten Rastersystem entsprechen. In einigen Ausführungsformen können die diskretisierten Objektmodelle 302 Draufsichten (z. B. x-y-Ebenen) von erwarteten oder ankommenden Objekten beinhalten. Dementsprechend können die diskretisierten Objektmodelle 302 pixelierten 2D-Darstellungen der Objekte entsprechen.
  • Die Diskretisierungseinheit, die verwendet wird, um diskretisierte Modelle zu erzeugen, kann eine Länge beinhalten, die von einem Systembetreiber, einem System-Designer, einer vorbestimmten Eingabe/Einstellung, einem Auftrag oder einer Kombination davon voreingestellt wird. In einigen Ausführungsformen kann das Robotersystem 100 Einheitspixel 310 (z. B. Polygone, wie etwa Quadrate, mit einer oder mehreren Abmessungen gemäß der Diskretisierungseinheit) verwenden, um Bereiche/Flächen von angezielten Objekten (z. B. über die diskretisierten Objektmodelle 302) und Beladeplattformen/-flächen (z. B. über die diskretisierten Plattformmodelle 304) zu beschreiben. Dementsprechend kann das Robotersystem 100 die Objekte und die Beladeplattformen in 2D entlang den x-y-Achsen pixelieren. In einigen Ausführungsformen kann sich die Größe der Einheitspixel 310 (z. B. der Diskretisierungseinheit) gemäß den Abmessungen der Objekte und/oder Abmessungen der Beladeplattformen verändern. Die Größe der Einheitspixel 310 kann auch (z. B. über eine voreingestellte Regel/Gleichung und/oder eine Auswahl des Bedieners) eingestellt werden, um erforderliche Ressourcen (z. B. Rechenzeiten, erforderlichen Speicher usw.) mit der Packgenauigkeit abzustimmen. Wenn die Größe der Einheitspixel 310 abnimmt, können beispielsweise die Rechenzeiten und die Packgenauigkeit zunehmen. Dementsprechend stellt die Diskretisierung der Packaufgaben (z. B. die Zielpakete und die Packplattformen) unter Verwendung der Einheitspixel 310, die einstellbar sind, eine erhöhte Flexibilität für das Palettieren der Pakete bereit. Das Robotersystem 100 kann einen Ausgleich zwischen den Rechenressourcen/der Rechenzeit und der Packgenauigkeit gemäß Echtzeit-Szenarien, -Mustern und/oder -Umgebungen steuern.
  • In einigen Ausführungsformen kann das Robotersystem 100 für die diskretisierten Objektmodelle 302 Teile der Einheitspixel 310 beinhalten, die das Objekt nur teilweise überlappen, sodass die Einheitspixel 310 sich über die tatsächlichen Umfangskanten des Objekts hinaus erstrecken. In anderen Ausführungsformen kann das Robotersystem 100 teilweise überlappende Teile der Einheitspixel 310 aus den diskretisierten Plattformmodellen 304 über die tatsächlichen Abmessungen der Plattformfläche hinaus ausschließen, sodass die Einheitspixel 310 in den diskretisierten Objektmodellen 302 überlappt werden und/oder in den tatsächlichen Umfangskanten der Plattformfläche enthalten sind.
  • Als ein veranschaulichendes Beispiel zeigt 3A eine erste Modellausrichtung 332 und eine zweite Modellausrichtung 334 eines diskretisierten Objektmodells, welches das Zielobjekt 112 darstellt. In einigen Ausführungsformen kann das Robotersystem 100 eines der diskretisierten Modelle (d. h., das als die erste Modellausrichtung 332 erfasst/gespeichert wurde) um einen vorbestimmten Betrag entlang der abgebildeten Ebene drehen. Wie in 3A veranschaulicht, kann das Robotersystem 100 das diskretisierte Objektmodell 302 um eine vertikale Achse (die sich in die und aus der Ebene der Veranschaulichung oder senkrecht dazu erstreckt) und entlang einer horizontalen Ebene (z. B. entlang der x- und y-Achsen dargestellt) um 90 Grad für die zweite Modellausrichtung 334 drehen. Das Robotersystem 100 kann die verschiedenen Ausrichtungen verwenden, um entsprechende Platzierungen der Objekte zu testen/beurteilen.
  • Basierend auf den diskretisierten Daten/Darstellungen kann das Robotersystem 100 eine Platzierungsposition 350 für das Zielobjekt 112 dynamisch ableiten. Wie in 3B veranschaulicht, kann das Robotersystem 100 die Platzierungsposition 350 dynamisch ableiten, auch nachdem ein oder mehrere Objekte (z. B. in 3B als diagonal ausgefüllte Objekte veranschaulicht) auf dem Platzierungsbereich 340 platziert wurden. Außerdem kann die dynamische Ableitung der Platzierungsposition 350 auftreten, nachdem das Zielobjekt 112 entladen/vom Regal genommen, registriert, abgetastet, abgebildet wurde, oder eine Kombination davon, oder währenddessen. Zum Beispiel kann das Robotersystem 100 die Platzierungsposition 350 dynamisch ableiten, wenn das Zielobjekt 112 (z. B. über eine Fördervorrichtung) transportiert wird, nachdem die Bildgebungsvorrichtungen 222 aus 2 die Bilddaten des Zielobjekts 112 erzeugt haben, oder eine Kombination davon.
  • Das dynamische Ableiten der Platzierungsposition 350 eines Objekts stellt eine erhöhte Flexibilität und eine reduzierte menschliche Arbeitskraft für Versand-/Packumgebungen bereit. Das Robotersystem 100 kann diskretisierte Echtzeit-Bilder/-Tiefenabbildungen von Objekten und der Palette (d. h. einschließlich der bereits platzierten Objekte) verwenden, um verschiedene Platzierungspositionen und/oder Ausrichtungen zu testen und zu beurteilen. Dementsprechend kann das Robotersystem 100 Objekte ohne Eingriff eines menschlichen Bedieners packen, auch wenn das Objekt nicht erkannt wird (z. B. bei neuen/unerwarteten Objekten und/oder Fehlern des maschinellen Sehens), wenn eine Ankunftssequenz/-reihenfolge der Objekte unbekannt ist und/oder wenn ein unerwartetes Ereignis auftritt (z. B. ein Stückverlustereignis und/oder ein Kollisionsereignis).
  • Zum Zwecke der Veranschaulichung ist die Platzierungsposition 350 in 3B derart gezeigt, dass sie sich benachbart zu den bereits platzierten Objekten befindet (d. h. auf derselben horizontalen Ebene/Höhe wie diese platziert ist), wie etwa direkt auf der Palette bzw. diese berührend. Es versteht sich jedoch, dass die Platzierungsposition 350 oben auf den bereits platzierten Objekten sein kann. Anders formuliert, kann das Robotersystem 100 die Platzierungsposition 350 für das Stapeln des Zielobjekts 112 über einem oder mehreren und/oder auf eines oder mehrere Objekte, die sich bereits auf der Palette befinden, ableiten. Wie nachfolgend ausführlich beschrieben, kann das Robotersystem 100 die Höhen der bereits platzierten Objekte beim Ableiten der Platzierungsposition 350 beurteilen, um sicherzustellen, dass das Objekt ausreichend gestützt wird, wenn es auf die bereits platzierten Objekte gestapelt wird.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Objektkanten 362 beim Ableiten der Platzierungsposition 350 identifizieren. Die Objektkanten 362 können Linien in den Bilddaten beinhalten, die Kanten und/oder Seiten der bereits auf der Palette platzierten Objekte darstellen. In einigen Ausführungsformen können die Objektkanten 362 Kanten entsprechen, die freiliegen (z. B. ein anderes Objekt/eine andere Kante nicht direkt berühren bzw. benachbart dazu sind), sodass sie einen Umfang von einem oder einer Gruppe von Objekten (z. B. einer Schicht von Objekten), die an der Aufgabenposition 116 platziert sind, definieren.
  • Wie nachfolgend ausführlicher beschrieben, kann das Robotersystem 100 die Platzierungsposition 350 gemäß einer Reihe von Platzierungsregeln, Bedingungen, Parametern, Anforderungen usw. ableiten. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsposition 350 basierend auf dem Beurteilen/Testen von einer oder mehreren möglichen Stellen 360 ableiten. Die möglichen Stellen 360 können den diskretisierten Objektmodellen 302 entsprechen, die an verschiedenen Positionen und/oder mit verschiedenen Ausrichtungen auf den diskretisierten Plattformmodellen 304 überlagert sind. Dementsprechend können die möglichen Stellen 360 das potentielle Platzieren des Zielobjekts 112 benachbart zu einer oder mehreren der Objektkanten 362 und/oder das potentielle Stapeln des Zielobjekts 112 auf eines oder mehrere der bereits platzierten Objekte beinhalten. Das Robotersystem 100 kann jede der möglichen Stellen 360 gemäß verschiedenen Parametern/Bedingungen beurteilen, wie etwa Stützmaß/-bedingung, Stützgewicht im Vergleich zu Zerbrechlichkeitseinstufungen (z. B. maximales Stützgewicht, wie etwa für darauf gestapelte Pakete) der stützenden Objekte, Raum-/Packauswirkungen oder eine Kombination davon. Das Robotersystem 100 kann ferner die möglichen Stellen 360 unter Verwendung von einer oder mehreren Platzierungsregeln beurteilen, wie etwa kollisionsfreie Anforderung, Stapelstabilität, vom Kunden festgelegte Regeln/Prioritäten, Pakettrennungsanforderungen oder das Fehlen davon, Maximierung von insgesamt beladenen Paketen oder eine Kombination davon.
  • Echtzeit-Aktualisierungen der Platzierungsoberfläche
  • Die 4A und 4B veranschaulichen verschiedene Aspekte einer Stützberechnung und einer Stützmetrik gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. In einigen Ausführungsformen, wie in 4A veranschaulicht, kann das Robotersystem 100 aus 1 die möglichen Stellen 360 aus 3B basierend auf dem Überlappen des diskretisierten Objektmodells 302 aus 3A des Zielobjekts 112 aus 1 über dem diskretisierten Plattformmodell 304 der Aufgabenposition 116 aus 1 erzeugen. Ferner kann das Robotersystem 100 das diskretisierte Objektmodell 302 iterativ über das diskretisierte Plattformmodell 304 bewegen, wenn die möglichen Stellen 360 erzeugt werden. Zum Beispiel kann das Robotersystem 100 einen anfänglichen Teil der möglichen Stelle 360 durch Platzieren eines entsprechenden diskretisierten Objektmodells 302 gemäß einer oder mehreren Ausrichtungen (z. B. der ersten Modellausrichtung 332 aus 3A und/oder der zweiten Modellausrichtung 334 aus 3A) an einer vorbestimmten anfänglichen Position (z. B. einer Ecke) des diskretisierten Plattformmodells 304 erzeugen. Für den nächste Teil der möglichen Stelle 360 kann das Robotersystem 100 das diskretisierte Objektmodell 302, welches einem anderen/nächsten Objekt entspricht, um eine vorbestimmte Entfernung (z. B. ein oder mehrere Einheitspixel 310 aus 3B) gemäß einer vorbestimmten Richtung/einem vorbestimmten Muster bewegen.
  • Wenn die möglichen Stellen 360 ein oder mehrere Objekte überlappen, die bereits an der Aufgabenposition 116 platziert sind, kann das Robotersystem 100 ein Maß an Stützung, das von den bereits platzierten Objekten bereitgestellt wird, berechnen und beurteilen. Um das Maß an Stützung zu berechnen und zu beurteilen, kann das Robotersystem 100 Höhen/die Kontur für den Platzierungsbereich 340 aus 3B in Echtzeit unter Verwendung von einer oder mehreren der Bildgebungsvorrichtungen 222 aus 2 bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 Tiefenmaße (z. B. Punktwolkenwerte) von einer oder mehreren der Bildgebungsvorrichtungen 222, die sich über der Aufgabenposition 116 befinden, verwenden. Da eine vertikale Stelle des Bodens und/oder der Oberfläche der Plattform (z. B. Palette) (z. B. eine Höhe der Plattformoberfläche über der Bodenfläche der Anlage) bekannt ist, kann das Robotersystem 100 das Tiefenmaß verwenden, um die Höhen/Kontur der freiliegenden oberen Fläche(n) der Plattform, der platzierten Objekte oder eine Kombination davon zu berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die Aufgabenposition 116 abbilden und die Höhen der freiliegenden oberen Fläche(n) in Echtzeit aktualisieren, wie etwa nach dem Transportieren des Objekts zur Plattform und/oder dem Platzieren des Objekts auf der Plattform.
  • In einigen Ausführungsformen, wie in 4A veranschaulicht, kann das Robotersystem 100 das diskretisierte Plattformmodell 304 derart aktualisieren, dass es Höhenmaße 402 beinhaltet. Das Robotersystem 100 kann die Höhenmaße 402 gemäß jedem der diskretisierten Pixel (z. B. der Einheitspixel 310) in dem diskretisierten Plattformmodell 304 bestimmen. Zum Beispiel kann das Robotersystem 100 die Höhenmaße 402 als maximale Höhen für die Oberflächenabschnitte des Platzierungsbereichs 340, der durch die entsprechenden Einheitspixel 310 dargestellt wird, bestimmen.
  • Für jede der möglichen Stellen 360, die eines oder mehrere der bereits platzierten Objekte überlappen, kann das Robotersystem 100 die Platzierungsmöglichkeit basierend auf den Höhenmaßen 402 beurteilen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsmöglichkeit basierend auf dem Identifizieren des höchsten Werts der Höhenmaße 402, die an jeder der möglichen Stellen 360 überlappt werden, beurteilen. Das Robotersystem 100 kann ferner andere Höhenmaße 402 identifizieren, die sich an jeder der möglichen Stellen 360 befinden, wobei die Höhenmaße 402 innerhalb einer Grenze eines Differenzschwellenwerts relativ zu dem höchsten Maß der Höhenmaße 402 liegen. Die geeigneten Zellen/Pixel können Positionen darstellen, die eine Stützung für das gestapelte Objekt bereitstellen können, sodass das gestapelte Objekt im Wesentlichen flach/horizontal liegt.
  • Wie in 4A veranschaulicht, kann das höchste Höhenmaß für die ersten der möglichen Stellen 360 (obere linke Ecke des diskretisierten Plattformmodells 304) 0,3 betragen (d.h. 300 Millimeter (mm) hoch). Für den Differenzschwellenwert, der als 0,02 (was z. B. 20 mm darstellt) vorbestimmt wurde, kann das Robotersystem 100 die oberen vier diskretisierten Zellen/Pixel als den Differenzschwellenwert einhaltend identifizieren. Das Robotersystem 100 kann die identifizierten/geeigneten Zellen/Pixel verwenden, um das Ausmaß der Stützung zu beurteilen/darzustellen.
  • 4B veranschaulicht ein weiteres Beispiel für die Stützberechnung. 4B zeigt eine der möglichen Stellen 360 aus 3 mit dem diskretisierten Objektmodell 302 (mit einem durchgezogenen dickeren Umriss gezeigt), das in einer oberen linken Ecke des diskretisierten Plattformmodells 304 überlagert ist. Das Robotersystem 100 kann verschiedene Stützparameter 410 berechnen/verwenden, bei denen es sich um Parameter handelt, die verwendet werden, um die mögliche Stelle 360 zu beurteilen. Zum Beispiel können die Stützparameter 410 diskretisierte Abmessungen 412, einen überlappten Bereich 414, einen Höhendifferenzschwellenwert 416, einen Stützschwellenwert 418, eine maximale Höhe 420, eine untere Höhengrenze 422, eine geeignete Anzahl 424, eine Reihe von Stützbereichsumrissen 426, eine Stützbereichsgröße 428, ein Stützverhältnis 430, eine Position des Massenmittelpunkts (CoM) 432 oder eine Kombination davon beinhalten.
  • Die diskretisierten Abmessungen 412 können physische Abmessungen (z. B. Länge, Breite, Höhe, Umfang usw.) des Zielobjekts 112 aus 1 gemäß den Einheitspixeln 310 aus 3A beschreiben. Zum Beispiel können die diskretisierten Abmessungen 412 Mengen der Einheitspixel 310 beinhalten, die Umfangskanten des diskretisierten Objektmodells 302 bilden. Der überlappte Bereich 414 kann einen Bereich (z. B. eine Grundrissgröße entlang der horizontalen Ebene) beschreiben, der von dem Zielobjekt 112 belegt ist und gleichermaßen gemäß den Einheitspixeln 310 dargestellt werden kann. Anders formuliert, kann der überlappte Bereich 414 einer Menge der Einheitspixel 310 innerhalb des diskretisierten Objektmodells 302 entsprechen. Für das in 4B veranschaulichte Beispiel kann das Zielobjekt 112 die diskretisierte Abmessung 412 von sechs Pixeln mal sieben Pixeln aufweisen, was dem überlappten Bereich 414 von 42 Pixeln entspricht.
  • Der Höhendifferenzschwellenwert 416 und der Stützschwellenwert 418 können Grenzen entsprechen, die verwendet werden, um die möglichen Stellen 360 zu verarbeiten und/oder zu validieren. Der Höhendifferenzschwellenwert 416, der von einem Bediener und/oder durch einen Auftrag vorbestimmt und/oder angepasst werden kann, kann erlaubte Abweichungen von einer anderen Referenzhöhe (z. B. der maximalen Höhe 420, die dem höchsten Teil für die Höhenmaße 402 in dem von dem diskretisierten Objektmodell 302 überlappten Bereich entspricht) zum Berühren und/oder Stützen von Paketen, die obendrauf platziert sind, darstellen. Anders formuliert, kann der Höhendifferenzschwellenwert 416 verwendet werden, um einen Bereich der Oberflächenhöhen zu definieren, die das darauf platzierte Pakete berühren und/oder stützen können. Somit kann die untere Höhengrenze 422 relativ zur maximalen Höhe 420 einer unteren Grenzen für Höhen innerhalb des überlappten Bereichs 414 entsprechen, die eine Stütze für das gestapelte Paket bereitstellen kann. Für das in 4B veranschaulichte Beispiel kann der Höhendifferenzschwellenwert 416 0,02 betragen. Wenn die maximale Höhe 420 0,2 beträgt, kann die untere Höhengrenze 422 0,18 betragen. Dementsprechend kann das Robotersystem 100 beim Platzieren des Zielobjekts 112 an der möglichen Stelle 360 schätzen, dass Oberflächen/Pixel mit Höhen über 0,18 das Zielobjekt 112 berühren und/oder Stützung dafür bereitstellen.
  • Dementsprechend kann das Robotersystem 100 in einer oder mehreren Ausführungsformen die Einheitspixel 310 innerhalb des überlappten Bereichs 414 gemäß dem Höhendifferenzschwellenwert 416 kategorisieren. Zum Beispiel kann das Robotersystem 100 die Einheitspixel 310 mit Höhen, die den Höhendifferenzschwellenwert 416 einhalten (d. h. Werten größer als oder gleich der unteren Höhengrenze 422), als stützende Positionen 442 kategorisieren (z. B. eine Gruppierung von Einheitspixeln 310, die eine Oberfläche darstellt, auf der Objekte gestapelt werden können, wie in 4B durch die schraffierten Pixel dargestellt). Das Robotersystem 100 kann die anderen Einheitspixel 310 als ungeeignete Positionen 444 kategorisieren (z. B. Pixel mit Höhen unter der unteren Höhengrenze 422).
  • Der Stützschwellenwert 418 kann eine Grenze für das Beurteilen der möglichen Stellen 360 basierend auf einer Angemessenheit der stützenden Positionen 442 darstellen. Zum Beispiel kann der Stützschwellenwert 418 zum Beurteilen einer Menge, eines Verhältnisses, eines Bereichs, einer Position oder einer Kombination davon in Verbindung mit den stützenden Positionen 442 dienen. In einigen Ausführungsformen kann der Stützschwellenwert 418 verwendet werden, um zu bestimmen, ob die geeignete Anzahl 424 (z. B. eine Menge der stützenden Positionen 442) für die mögliche Stelle 360 zum Stützen des Zielobjekts 112 ausreichend ist.
  • In einer oder mehreren Ausführungsformen kann der Stützschwellenwert 418 verwendet werden, um einen gestützten Bereich (z. B. die Einheitspixel 310, die Stützung für ein darauf gestapeltes Objekt bereitstellen können, wie durch den Höhenschwellenwert bestimmt werden kann) in Verbindung mit den stützenden Positionen 442 zu beurteilen. Zum Beispiel kann das Robotersystem 100 die Stützbereichsumrisse 426 basierend auf dem Verlängern von Kanten und/oder dem Bestimmen von Linien bestimmen, die sich über oder um die ungeeigneten Positionen 444 erstrecken, um Ecken der äußersten/umrandenden Teile der stützenden Positionen 442 zu verbinden. Somit können die Stützbereichsumrisse 426 die ungeeigneten Positionen 444 ausschließen. Dementsprechend können die Stützbereichsumrisse 426 einen Umfang für den gestützten Bereich basierend auf den umrandenden Teilen der stützenden Positionen 442 definieren. Da die Stützbereichsumrisse 426 sich über die ungeeigneten Positionen 444 erstrecken und/oder diese beinhalten können, kann die Stützbereichsgröße 428 (z. B. eine Menge der Einheitspixel 310 innerhalb des gestützten Bereichs) größer sein als die geeignete Anzahl 424. Somit stellt die Stützbereichsgröße 428 effektiv Trennungen zwischen den äußersten Kanten/Ecken, an denen die Stützung bereitgestellt wird, dar. Da breitere Stützungen bevorzugt werden (z. B., bei denen Abschnitte der Stützbereichsumrisse 426 größer sind als der Überlappungsbereich 414 des Objekts, um Überstände zu reduzieren und/oder die Stabilität zu verbessern), kann der Stützschwellenwert 418 einer minimalen Anzahl der Einheitspixel 310 im gestützten Bereich entsprechen (z. B. zum Beurteilen der Stützbereichsumrisse 426), wodurch effektiv eine Trennung zwischen den äußersten Kanten/Ecken, an denen die Stützung bereitgestellt wird, beurteilt wird.
  • In einigen Ausführungsformen kann der Stützschwellenwert 418 zum Beurteilen des Stützverhältnisses 430 dienen, der basierend auf dem Vergleichen der geeigneten Anzahl 424 und/oder der Stützbereichsgröße 428 mit dem überlappten Bereich 414 berechnet werden kann. Zum Beispiel kann das Stützverhältnis 430 ein Verhältnis zwischen der geeigneten Anzahl 424 und dem überlappten Bereich 414 zum Darstellen der horizontalen Stabilität, der Konzentration des gestützten Gewichts oder einer Kombination davon beinhalten. Außerdem kann das Stützverhältnis 430 ein Verhältnis zwischen der Stützbereichsgröße 428 und dem überlappten Bereich 414 zum Darstellen relativer Breiten zwischen den stützenden Kanten/Ecken unter dem Zielobjekt 112 beinhalten.
  • Ferner kann das Robotersystem 100 die möglichen Stellen 360 basierend auf der CoM-Position 432 des Zielobjekts 112 beurteilen. In einigen Ausführungsformen kann das Robotersystem 100 anhand der Masterdaten 252 aus 2 auf die CoM-Position 432 des Zielobjekts 112 zugreifen und/oder die CoM-Position 432 basierend auf dem Greifen und/oder Anheben des Zielobjekts 112 dynamisch schätzen. Sobald auf sie zugegriffen/sie geschätzt wurde, kann das Robotersystem 100 die CoM-Position 432 mit den Stützbereichsumrissen 426 vergleichen. Das Robotersystem 100 kann erfordern, dass die mögliche Stelle 360 die CoM-Position 432 innerhalb der Stützbereichsumrisse 426 beinhaltet, und die möglichen Stellen 360, die einer derartigen Erfordernis nicht entsprechen, beseitigen/ausschließen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 eine Platzierungsbewertung basierend auf Trennungsabständen (z. B. entlang der x- und/oder der y-Achse) zwischen der CoM-Position 432 und den Stützbereichsumrissen 426 berechnen und beurteilen.
  • Das Robotersystem 100 kann die Stützparameter 410 verwenden, um Einschränkungen/Erfordernisse zu beurteilen. Zum Beispiel kann das Robotersystem 100 die möglichen Stellen beseitigen/ausschließen, die den Stützschwellenwert 418, einen CoM-Positionsschwellenwert (z. B. eine Erfordernis, dass die CoM-Position 432 innerhalb der Stützbereichsumrisse 426 enthalten ist) und/oder andere Stapelregeln nicht einhalten. Außerdem kann das Robotersystem 100 die Stützparameter 410 verwenden, um die Platzierungsbewertungen für die möglichen Stellen 360 (z. B. die Positionen, welche die Einschränkungen einhalten) gemäß vorbestimmten Gewichten und/oder Gleichungen zu berechnen. Wie nachfolgend ausführlich beschrieben, kann das Robotersystem 100 die berechnete Platzierungsbewertung verwenden, um die möglichen Stellen 360 gemäß den vorbestimmten Präferenzen (z. B., wie durch die Gewichte/Gleichungen widergespiegelt) einzustufen.
  • Objektplatzierungsvorgang
  • 5 ist eine Draufsicht, die eine beispielhafte Platzierung veranschaulicht, die von dem Robotersystem 100 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung ausgeführt wird. In einigen Ausführungsformen kann das Robotersystem 100 einen Roboterarm 502 (z. B. einen Abschnitt der Übertragungseinheit 104 aus 1, wie etwa eines Palettierungsroboters) beinhalten und/oder mit diesem kommunizieren, der dazu konfiguriert ist, das Zielobjekt 112 von der Startposition 114 zu übertragen und dieses an der abgeleiteten Platzierungsposition 350 an der Aufgabenposition 116 zu platzieren. Zum Beispiel kann das Robotersystem 100 den Roboterarm 502 betreiben, um das Zielobjekt 112 von einer bestimmten Position/einem bestimmten Abschnitt auf einer Fördervorrichtung zu greifen und aufzunehmen und das Zielobjekt 112 auf einer Palette zu platzieren.
  • Das Robotersystem 100 kann die Platzierungsposition 350 dynamisch ableiten (z. B., wenn das Zielobjekt 112 an der Anlage und/oder an der Startposition 114 ankommt, und/oder nachdem ein oder mehrere Vorgänge, wie etwa der Packvorgang, gestartet wurden). Das Robotersystem 100 kann die Platzierungsposition 350 basierend auf oder unter Berücksichtigung von einem oder mehreren Fehlern oder Ungenauigkeitsfaktoren dynamisch ableiten, wie etwa einem Fehlen eines Packplans (z. B. eines Plans zum Darstellen von Platzierungspositionen 350, die für eine Reihe von Objekten abgeleitet sind, einschließlich des Zielobjekts 112, an der Aufgabenposition 116), einem Fehler bei ankommenden Objekten (z. B., wenn das Objekt nicht mit einem erwarteten/bekannten Objekt oder einer Sequenz übereinstimmt) oder einer Kombination davon. Das Robotersystem 100 kann auch die Platzierungsposition 350 basierend auf oder unter Berücksichtigung von einer/einem oder mehreren Ungenauigkeiten oder Fehlern am Ziel dynamisch ableiten, wie etwa aufgrund eines unerwarteten und/oder veränderten Platzierungsbereichs 340 (z. B., wenn ein Zugang zu der Aufgabenposition 116 teilweise verdeckt ist, wie etwa, wenn ein Korb oder eine Wagenbahn nicht vollständig offen ist), bereits platzierten Objekten 508 (z. B. nicht erkennbaren und/oder unerwarteten Paketen auf der Palette und/oder eines Wechsels bei einem oder mehreren der bereits platzierten Objekte 508) und/oder Kollisionsereignissen (z. B. zwischen dem Roboterarm 502 und einem bereits platzierten Objekt 508).
  • In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsposition 350 basierend auf Daten (z. B. Bilddaten und/oder Messdaten), die über einen oder mehrere der Sensoren 216 aus 2 (z. B. die Bildgebungsvorrichtungen 222 aus 2) dynamisch erfasst wurden, dynamisch ableiten. Zum Beispiel kann das Robotersystem 100 einen Ausgangssensor 504 (z. B. eine der 3D-Kameras 122 aus 1) beinhalten und/oder mit diesem kommunizieren, der sich über der Startposition 114 und/oder einem eingehenden Pfad (z. B. einer Fördervorrichtung) befindet. Das Robotersystem 100 kann die Daten von dem Ausgangssensor 504 verwenden, um die diskretisierten Objektmodelle 302 aus 3A zu erzeugen und/oder darauf zuzugreifen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 unter Verwendung des Ausgangssensors 504 die Objekte abbilden und/oder eine oder mehrere Abmessungen der Objekte messen. Das Robotersystem 100 kann die Bilder und/oder die Messungen mit den Masterdaten 252 aus 2 vergleichen, um die eingehenden Objekte zu identifizieren. Basierend auf der Identifizierung kann das Robotersystem 100 auf die diskretisierten Objektmodelle 302, die mit den Objekten assoziiert sind, zugreifen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die diskretisierten Objektmodelle 302 basierend auf dem Unterteilen der Bilder/Abmessungen gemäß dem Einheitspixel 310 dynamisch erzeugen, wie vorstehend beschrieben.
  • Außerdem kann das Robotersystem 100 einen Zielsensor 506 (z. B. eine der 3D-Kameras 122 aus 1) beinhalten und/oder mit diesem kommunizieren, der sich über der Aufgabenposition 116 befindet. Das Robotersystem 100 kann die Daten von dem Zielsensor 506 verwenden, um die diskretisierten Plattformmodelle 304 aus 3B zu bestimmen und dynamisch zu aktualisieren. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 eine oder mehrere Abmessungen des Platzierungsbereichs 340 (z. B. der Aufgabenposition 116, wie etwa einer Palette, eines Korbs und/oder einer Wagenbahn) abbilden und/oder messen. Das Robotersystem 100 kann das Bild und/oder die Messungen verwenden, um die diskretisierten Plattformmodelle 304 zu identifizieren, darauf zuzugreifen und/oder diese zu erzeugen, ähnlich wie vorstehend für die diskretisierten Objektmodelle 302 beschrieben. Des Weiteren kann das Robotersystem 100 die Daten (z.B. die Tiefenabbildung) von dem Zielsensor 506 verwenden, um die Höhenmaße 402 aus 4A zu bestimmen. Dementsprechend kann das Robotersystem 100 die Höhenmaße 402 verwenden, um den Platzierungsbereich 340 und die diskretisierten Plattformmodelle 304 in Echtzeit zu aktualisieren. Zum Beispiel kann das Robotersystem 100 die Höhenmaße 402 gemäß den bereits platzierten Objekten 508, wie etwa nach dem Platzieren des Zielobjekts 112 an der Platzierungsposition 350, aktualisieren.
  • Das Robotersystem 100 kann einen Annäherungspfad 510 für das Übertragen des Zielobjekts 112 zur Platzierungsposition 350 und/oder jede der möglichen Stellen 360 aus 3B ableiten. Der Annäherungspfad 510 kann einem Bewegungsplan für das Steuern/Übertragen des Zielobjekts 112 durch den Raum von der Startposition 114 zur entsprechenden möglichen Stelle 360 entsprechen. Der Annäherungspfad 510 kann in 3D vorliegen und sich über horizontale und/oder vertikale Richtungen erstrecken.
  • Beim Platzieren des Zielobjekts 112 kann das Robotersystem 100 verifizieren, dass das Platzieren des Zielobjekts 112 an der abgeleiteten Platzierungsposition zur Platzierung des Zielobjekts 112 gemäß den in den 3-6 oben beschriebenen Metriken stabil ist (z. B. für den Fall, dass sich der Zustand der Bedingungen an der Aufgabenposition 116 verändert hat). Nach dem Platzieren des Objekts kann das Robotersystem 100 verifizieren und validieren, ob die Platzierung des Objekts an der abgeleiteten Platzierungsposition genau war und/oder ob sich der Zustand der Bedingungen an der Aufgabenposition 116 verändert hat. Zumindest teilweise basierend auf den Informationen bezüglich der Validierung kann das Robotersystem 100 damit fortfahren, ein oder mehrere andere Objekte (z. B. zusätzliche/nachfolgende Teile des Zielobjekts 112) an der Aufgabenposition 116 zu packen (z. B. durch dynamisches Ableiten der Platzierungspositionen für das eine oder die mehreren Objekte).
  • Beurteilung des Annäherungspfades
  • Die 6A und 6B sind Profilansichten, die beispielhafte Ansätze zum Platzieren des Zielobjekts 112 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung veranschaulichen. Die 6A und 6B veranschaulichen die Annäherungspfade 510 aus 5 zum Platzieren des Zielobjekts 112 an der entsprechenden möglichen Stelle 360 aus 3B über eines oder mehrere der bereits platzierten Objekte 508 an der Aufgabenposition 116 (z. B. einer Palette).
  • Das Robotersystem 100 aus 1 kann die Annäherungspfade 510 basierend auf den Annäherungszunahmen 602 ableiten, die als gestrichelte Felder F-1 bis F-5 veranschaulicht sind. Die Annäherungszunahmen 602 können sequentielle Stellen des Zielobjekts 112 im 3D-Raum entlang des entsprechenden Annäherungspfades 510 beinhalten. Anders formuliert, können die Annäherungszunahmen 602 abgetasteten Stellen des Zielobjekts 112 zum Folgen des entsprechenden Annäherungspfades 510 entsprechen. Die Annäherungszunahmen 602 können gemäß den Pfadsegmenten 604 des entsprechenden Annäherungspfades 510 ausgerichtet sein. Die Pfadsegmente 604 können linearen Segmenten/Richtungen im Annäherungspfad 510 entsprechen. Die Pfadsegmente 604 können ein finales Segment 606 für das Platzieren des Zielobjekts 112 an der entsprechenden möglichen Stelle 360 beinhalten. Das finale Segment 606 kann eine vertikale (z. B. nach unten gerichtete) Richtung beinhalten.
  • Um die Annäherungspfade 510 abzuleiten, kann das Robotersystem 100 beliebige der bereits platzierten Objekte 508 identifizieren, die möglicherweise zu einem Hindernis 610 werden können (wie z. B. einem möglichen Hindernis, wenn das Zielobjekt 112 an der möglichen Stelle 360 platziert wird). In einer oder mehreren Ausführungsformen kann das Robotersystem 100 (ein) mögliche(s) Hindernis(se) 610 als Teil(e) der bereits platzierten Objekte 508 identifizieren, die eine horizontale Linie 611 überlappen (z. B. eine gerade Linie entlang der x-y-Ebene), welche die Startposition 114 und die entsprechende mögliche Stelle 360 verbindet. Das Robotersystem 100 kann ferner das/die mögliche(n) Hindernis(se) 610 als Teil(e) der bereits platzierten Objekte 508, die eine abgeleitete Bahn 613 um die horizontale Linie 611 überlappen, identifizieren, wie etwa basierend auf dem Ableiten der Bahn parallel zu der horizontalen Linie und diese überlappend, die eine Breite basierend auf einer oder mehreren Abmessungen (z. B. einer Breite, einer Länge und/oder einer Höhe) des Zielobjekts 112 aufweist. Wie in den 6A und 6B veranschaulicht, kann sich die Startposition 114 rechts von der möglichen Stelle 360 befinden. Dementsprechend kann das Robotersystem 100 das bereits platzierte Objekt auf der rechten Seite als das mögliche Hindernis 610 identifizieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 das mögliche Hindernis 610 basierend auf den Höhenmaßen 402 aus 4A validieren. Zum Beispiel kann das Robotersystem 100 die möglichen Hindernisse 610 mit einem oder mehreren der Höhenmaße 402, das größer als oder gleich denen der möglichen Stelle 360 ist, als die möglichen Hindernisse 610 validieren/identifizieren. Das Robotersystem 100 kann die bereits platzierten Objekte 508, welche die Höhenmaße 402 aufweisen, die kleiner sind als diejenigen der möglichen Stelle 360, beseitigen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die möglichen Hindernisse 610 basierend auf einer Mehrdeutigkeit in Verbindung mit der Höhe der möglichen Stelle 360 und/oder der Höhe der möglichen Hindernisse 610 identifizieren/beseitigen.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Annäherungspfade 510 in umgekehrter Reihenfolge ableiten, wie etwa bei der möglichen Stelle 360 beginnend und bei der Startposition 114 aus 5 endend. Dementsprechend kann das Robotersystem 100 das finale Segment 606 zuerst ableiten (z. B. vor anderen Segmenten), um die möglichen Hindernisse 610 zu vermeiden. Zum Beispiel kann das Robotersystem 100 die Annäherungszunahmen 602 (z. B. „F-1” zuerst, dann „F-2“ usw.) basierend auf dem iterativen Erhöhen der Höhe der Annäherungszunahmen 602 um einen vorbestimmten Abstand bestimmen. Für jede Iteration kann das Robotersystem 100 einen Vektor 612 zwischen der bestimmten Annäherungszunahme 602 (z. B. einer unteren Fläche/Kante davon) und den möglichen Hindernissen 610 (z. B. einer oberen Fläche/Kante davon) berechnen und analysieren. Das Robotersystem 100 kann damit fortfahren, die Höhe der Annäherungszunahmen 602 zu erhöhen, bis der Vektor 612 angibt, dass die bestimmte Annäherungszunahme 602 über den möglichen Hindernissen 610 liegt und/oder die möglichen Hindernisse 610 um einen Entfernungsschwellenwert 614 entfernt (z. B. eine Anforderung für eine minimale vertikale Trennung für das Zielobjekt 112 über einem höchsten Punkt der möglichen Hindernisse 610, um einen Kontakt oder eine Kollision zwischen dem Zielobjekt 112 und dem möglichen Hindernis 610 zu vermeiden). Wenn die bestimmte Annäherungszunahme den Entfernungsschwellenwert 614 einhält, oder für die folgende Iteration, kann das Robotersystem 100 die entsprechende Annäherungszunahme 602 um einen vorbestimmten Abstand entlang einer horizontalen Richtung (z. B. zur Startposition 114 hin) anpassen. Dementsprechend kann das Robotersystem 100 das finale Segment 606 und/oder die anschließenden Pfadsegmente 604 basierend auf der möglichen Stelle 360 und der Annäherungszunahme 602, welche den Entfernungsschwellenwert 614 eingehalten hat, ableiten, um die Annäherungspfade 510 abzuleiten.
  • Sobald sie abgeleitet wurden, kann das Robotersystem 100 die Annäherungspfade 510 verwenden, um die entsprechenden möglichen Stellen 360 zu beurteilen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsbewertung gemäß den Annäherungspfaden 510 berechnen. Zum Beispiel kann das Robotersystem 100 die Platzierungsbewertung gemäß einer Präferenz (z. B. gemäß einem oder mehreren Gewichten, die den vorbestimmten Platzierungspräferenzen entsprechen) für eine kürzere Länge/Entfernung für das finale/vertikale Segment 606 berechnen. Dementsprechend kann das Robotersystem 100 beim Vergleichen der Annäherungspfade 510 aus den 6A und 6B den Pfad bevorzugen, der in 6B veranschaulicht ist und eine kürzere Länge des finalen/vertikalen Segments 606 aufweist. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 eine Einschränkung beinhalten, wie etwa eine maximale Grenze, die mit den Annäherungspfaden 510 assoziiert ist (z. B. für das finale/vertikale Segment 606) und verwendet wird, um mögliche Stellen 360 zu beseitigen oder auszuschließen.
  • In einigen Ausführungsformen kann das Robotersystem 100 ferner die entsprechenden möglichen Stellen 360 gemäß anderen auf eine Kollision/Blockierung bezogenen Parametern beurteilen. Zum Beispiel kann das Robotersystem 100 die möglichen Stellen 360 gemäß horizontalen Trennungen 616 zwischen den möglichen Stellen 360 und einem oder mehreren der bereits platzierten Objekte 508 beurteilen. Jede der horizontalen Trennungen 616 kann ein Abstand (z. B. ein kürzester Abstand) entlang einer horizontalen Richtung (z. B. x-y-Ebene) zwischen der entsprechenden möglichen Stelle 360 und einem benachbarten Teil der bereits platzierten Objekte 508 sein. Das Robotersystem 100 kann die Platzierungsbewertungen für die möglichen Stellen 360 basierend auf der horizontalen Trennung 616 berechnen, ähnlich wie vorstehend für die Annäherungspfade 510 beschrieben. Außerdem kann das Robotersystem 100 mögliche Stellen 360 basierend auf der horizontalen Trennung 616 beseitigen oder ausschließen, wie etwa, wenn die horizontale Trennung 616 eine Mindestanforderung nicht erfüllt. Einzelheiten bezüglich der Berechnung der Platzierungsbewertung und/oder der Einschränkungen für das Beseitigen der möglichen Stellen 360 sind nachfolgend erörtert.
  • Betriebsablauf
  • 7 ist ein Ablaufdiagramm für ein Verfahren 700 zum Betreiben des Robotersystems 100 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Verfahren 700 kann zum Erzeugen von 2D-/3D-Packplänen für das Platzieren von Paketen (z. B. Behältern und/oder Kisten) auf eine Plattform (z. B. eine Palette) und/oder für das entsprechende Platzieren der Pakete dienen. Das Verfahren 700 kann basierend auf dem Ausführen 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 702 kann das Robotersystem 100 eine Paketreihe (z. B. verfügbare Pakete) und ein Ziel (z. B. die Aufgabenposition 116 aus 1, wie etwa eine Palette und/oder einen Container für das Aufnehmen der Pakete) identifizieren. Zum Beispiel kann das Robotersystem 100 die Paketreihe identifizieren, um die verfügbaren Pakete darzustellen, einschließlich der Pakete, die für das Packen zur Verfügung stehen, sich an einem Ausgang befinden, zur Platzierung festgelegt sind und/oder in einem Auftrag/einer Anforderung/einem Plan aufgeführt sind. Außerdem identifiziert das Robotersystem 100 eine Größe oder eine Abmessung eines Bereichs (z. B. einer oberen Ladefläche der Palette, wie etwa der Platzierungspalette 340 aus 3) der Aufgabenposition 116, in dem die Pakete platziert werden können. In einigen Ausführungsformen kann das Robotersystem 100 eine Größe, eine Abmessung, eine Art oder eine Kombination davon für eine Palette identifizieren.
  • Bei Block 704 kann das Robotersystem 100 diskretisierte Modelle (z.B. die diskretisierten Objektmodelle 302 aus 3A und/oder die diskretisierten Plattformmodelle 304 aus 3B) erzeugen und/oder darauf zugreifen, die der Paketreihe entsprechen und die verfügbaren Pakete und/oder die Aufgabenposition 116 darstellen. In einigen Ausführungsformen kann das Robotersystem 100 (z. B. in Echtzeit, wie etwa nach dem Empfangen des Auftrags und/oder vor dem Beginn des Packvorgangs, oder systemunabhängig) die diskretisierten Modelle basierend auf dem Unterteilen physischer Abmessungen der Objekte und/oder des Plattformbereichs (z. B. der oberen Fläche der Palette gemäß dem Einheitspixel 310 aus 3B) erzeugen. Das Einheitspixel 310 kann vorbestimmt werden (z. B. von einem Hersteller, einem auftraggebenden Kunden und/oder einem Betreiber), wie etwa 1 Millimeter (mm) oder 1/16 Zoll (in) oder größer (z. B. 5 mm oder 20 mm).
  • In einigen Ausführungsformen kann das Robotersystem 100 auf die diskretisierten Modelle zugreifen, die in den Speichervorrichtungen 204 und/oder einer anderen Vorrichtung (z. B. einer Speichervorrichtung, einer Datenbank und/oder einem Server eines Paketlieferanten, auf die bzw. den über die Kommunikationsvorrichtungen 206 aus 2 zugegriffen wird) gespeichert sind. Das Robotersystem 100 kann auf die vorbestimmten diskretisierten Modelle zugreifen, die die verfügbaren Pakete und/oder die Aufgabenposition 116 darstellen. Zum Beispiel kann das Robotersystem 100 auf die diskretisierten Objektmodelle 302 zugreifen, die den verfügbaren Paketen entsprechen, indem die Masterdaten 252 aus 2 (z. B. eine vorbestimmte Tabelle oder eine Nachschlagetabelle) hinsichtlich der verfügbaren Pakete und ihrer entsprechenden Modelle durchsucht werden. Gleichermaßen kann das Robotersystem 100 auf das diskretisierte Plattformmodell 304 zugreifen, welches die Plattform, wie etwa die identifizierte Palette, darstellt, auf der die verfügbaren Pakete zu platzieren sind.
  • Bei Block 706 kann das Robotersystem 100 Paketgruppierungen (z. B. Untergruppierungen der verfügbaren Pakete) bestimmen. Das Robotersystem 100 kann die Paketgruppierungen basierend auf den verfügbaren Paketen für das Platzieren dieser auf der identifizierten Plattform (z. B. der Platzierungspalette 340) bestimmen. Das Robotersystem 100 kann die Paketgruppierungen gemäß Ähnlichkeiten und/oder Mustern in einer oder mehreren Charakteristika der verfügbaren Pakete bestimmen. In einigen Ausführungsformen, wie in Block 721 veranschaulicht, kann das Robotersystem 100 die Paketgruppierung durch Gruppieren der verfügbaren Pakete gemäß Gruppierungsbedingungen/-anforderungen bestimmen. Einige Beispiele für die Gruppierungsbedingungen/-anforderungen können eine Paketpriorität (z. B. wie durch einen oder mehrere Kunden festgelegt), eine Zerbrechlichkeitseinstufung (z. B. ein maximales Gewicht, das von dem Paket gestützt werden kann), ein Gewicht, eine Paketabmessung (z. B. eine Pakethöhe), eine Paketart oder eine Kombination davon beinhalten. Bei der Gruppierung der verfügbaren Pakete kann das Robotersystem 100 die Masterdaten 252 hinsichtlich der verschiedenen Charakteristika der verfügbaren Pakete durchsuchen, die mit den Gruppierungsbedingungen/-anforderungen übereinstimmen.
  • Bei Block 708 kann das Robotersystem 100 eine Verarbeitungsreihenfolge (z. B. eine Sequenz für das Berücksichtigen/Ableiten der Platzierungspositionen) für die verfügbaren Pakete und/oder die Gruppierungen davon (d. h. die Paketgruppierungen) berechnen. In einigen Ausführungsformen, wie bei Block 722 veranschaulicht, kann das Robotersystem 100 die Verarbeitungsreihenfolge gemäß einer oder mehreren Sequenzierungsbedingungen/-anforderungen berechnen. Zum Beispiel kann das Robotersystem 100 die Platzierungsplanung der Paketgruppierungen gemäß einer Anzahl an Paketen innerhalb jeder der Gruppierungen priorisieren, wie etwa zum Verarbeiten der Paketgruppierungen mit einer größeren Anzahl an Paketen früher in der Platzierungsplanung. Als ein weiteres Beispiel kann das Robotersystem 100 die Platzierungsplanung von Paketgruppierungen gemäß dem Füllgrad jeder Gruppe priorisieren, wie etwa für das Verarbeiten der Paketgruppierungen mit einer geringeren Anzahl an größeren Paketen früher in der Platzierungsplanung als eine Paketgruppierung mit einer größeren Anzahl an kleineren Paketen. In einigen Ausführungsformen können sich die Sequenzierungsbedingungen mit den Gruppierungsbedingungen überschneiden, wie etwa für die Gewichtsbereiche, die Zerbrechlichkeitseinstufungen usw. Zum Beispiel kann das Robotersystem 100 die Verarbeitung der schwereren und/oder der weniger zerbrechlichen Pakete für eine frühere Verarbeitung und/oder für die Platzierung in unteren Schichten priorisieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsplanung gemäß einem kombinierten horizontalen Bereich priorisieren. Das Robotersystem 100 kann Flächenbereiche von oberen Flächen der Pakete in den Gruppierungen unter Verwendung von Informationen, die in den Masterdaten 252 festgelegt sind, berechnen (z. B. durch Multiplizieren entsprechender Breiten und Längen) oder darauf zugreifen. Bei dem Berechnen des kombinierten horizontalen Bereichs kann das Robotersystem 100 die Flächenbereiche von Paketen mit der gleichen Art und/oder Höhe innerhalb eines Schwellenbereichs hinzufügen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsplanung von Gruppierungen, die den größeren kombinierten horizontalen Bereich aufweisen, für eine frühere Verarbeitung und/oder für die Platzierung in unteren Schichten priorisieren.
  • Für eine oder mehrere Ausführungsformen kann das Robotersystem 100 einen Puffer mit Kennungen und/oder Mengen der verfügbaren Pakete laden. Das Robotersystem 100 kann die Kennungen im Puffer gemäß den Gruppierungen sequenzieren. Ferner kann das Robotersystem 100 die Kennungen im Puffer gemäß der Verarbeitungsreihenfolge sequenzieren. Dementsprechend können die sequenzierten Werte im Puffer den verfügbaren Paketen und/oder den übrigen Paketen entsprechen.
  • Wie in Block 724 veranschaulicht, kann das Robotersystem 100 beispielsweise die Verarbeitungsreihenfolge für eine anfängliche Reihe (z. B. die Paketreihe) der verfügbaren Pakete berechnen, bevor ein entsprechender Stapelplan umgesetzt wird, wie etwa, bevor beliebige der Pakete in der Paketreihe auf der Plattform platziert werden. In einigen Ausführungsformen, wie in Block 726 veranschaulicht, kann das Robotersystem 100 die Verarbeitungsreihenfolge für eine übrige Reihe der verfügbaren Pakete nach dem Einleiten oder während des Umsetzens des entsprechenden Stapelplans berechnen. Wie beispielsweise durch eine Rückkopplungsschleife aus Block 716 veranschaulicht, kann das Robotersystem 100 die Verarbeitungsreihenfolge für die übrige Reihe (z. B. einen Teil der verfügbaren Pakete, die nicht zur Plattform übertragen wurden und/oder an einer Ausgangsposition bleiben) gemäß einer oder mehreren Auslösebedingungen berechnen. Beispielhafte Auslösebedingungen können Stapelfehler (z. B. verlorengegangene oder heruntergefallene Pakete), Kollisionsereignisse, vorbestimmte Neuauslösezeitpunkte oder eine Kombination davon beinhalten.
  • Bei Block 710 kann das Robotersystem 100 2D-Pläne für das Platzieren der verfügbaren Pakete entlang einer horizontalen Ebene erzeugen. Beispielsweise kann das Robotersystem 100 die Platzierungspläne erzeugen, um die 2D-Abbildungen der verfügbaren Pakete entlang der horizontalen Ebene darzustellen. Das Robotersystem 100 kann zwei oder mehr Platzierungspläne basierend auf den diskretisierten Modellen erzeugen. Zum Beispiel kann das Robotersystem 100 die Platzierungspläne basierend auf dem Vergleichen der diskretisierten Objektmodelle 302 mit dem diskretisierten Plattformmodell 304 erzeugen. Das Robotersystem 100 kann unterschiedliche Platzierungen/Anordnungen der diskretisierten Objektmodelle 302 bestimmen, diese mit dem diskretisierten Plattformmodell 304 überlappen/vergleichen und die Anordnungen, die sich bei Überlappung innerhalb der Grenzen des diskretisierten Plattformmodells 304 befinden, validieren/bewahren. Das Robotersystem 100 kann die Pakete, die nicht innerhalb der Grenzen des diskretisierten Plattformmodells 304 platziert werden können, für eine andere Schicht (z. B. einen anderen Teil der Platzierungspläne) festlegen. Dementsprechend kann das Robotersystem 100 iterativ Platzierungspositionen für die Platzierungspläne ableiten, die 2D-Schichten des Stapelplans darstellen, bis jedes der Pakete in der Paketreihe einer Position in den Platzierungsplänen zugewiesen wurde.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungspläne basierend auf den Paketgruppierungen erzeugen. Zum Beispiel kann das Robotersystem 100 die Anordnungen für die Pakete innerhalb einer Paketgruppierung bestimmen, bevor Platzierungen von Paketen in einer anderen Gruppierung berücksichtigt werden. Wenn Pakete innerhalb einer Paketgruppe über eine Schicht hinausragen (d. h. die Pakete nicht in eine Schicht oder einen Teil des diskretisierten Plattformmodells 304 passen können) und/oder nachdem alle Pakete einer Gruppierung platziert wurden, kann das Robotersystem 100 Positionen für die Pakete in der nächsten Gruppierung einem beliebigen übrigen/nicht belegten Bereich im diskretisierten Plattformmodell 304 zuweisen. Das Robotersystem 100 kann die Zuweisungen iterativ wiederholen, bis keines der nicht zugewiesenen Pakete über übrige Räume des diskretisierten Plattformmodells 304 passt.
  • Gleichermaßen kann das Robotersystem 100 die Platzierungspläne basierend auf der Verarbeitungsreihenfolge (z. B. basierend auf den Paketgruppierungen gemäß der Verarbeitungsreihenfolge) erzeugen. Zum Beispiel kann das Robotersystem 100 eine Testanordnung basierend auf dem Zuweisen von Paketen und/oder Gruppierungen gemäß der Verarbeitungsreihenfolge bestimmen. Das Robotersystem 100 kann dem/der frühesten sequenzierten Paket/Gruppierung eine anfängliche Platzierung für die Testanordnung zuweisen und dann die nachfolgenden Pakete/Gruppierungen gemäß der Verarbeitungsreihenfolge testen/zuweisen. In einigen Ausführungsformen kann das Robotersystem 100 die Verarbeitungsreihenfolge für die Pakete/Gruppierungen über die Schichten hinweg (z. B. über die Teile der Platzierungspläne hinweg) bewahren. In einigen Ausführungsformen kann das Robotersystem 100 die Verarbeitungsreihenfolge neuberechnen und aktualisieren (wie unter Verwendung einer gestrichelten Rückkopplungslinie in 7 veranschaulicht), nachdem jede Schicht ausgefüllt wurde.
  • In einigen Ausführungsformen kann das Robotersystem 100 als ein veranschaulichendes Beispiel für die vorstehend beschriebenen Prozesse die 2D-Pläne durch Identifizieren der unterschiedlichen Paketarten innerhalb der Paketreihe erzeugen. Anders formuliert, kann das Robotersystem 100 bei Block 732 eindeutige Pakete (z. B. wie durch die Paketarten dargestellt) innerhalb jeder der Paketgruppierung und/oder der Paketreihe identifizieren.
  • Bei Block 734 kann das Robotersystem 100 Platzierungspositionen für jedes der verfügbaren Pakete (z. B. iterativ) ableiten. Bei Block 736 kann das Robotersystem 100 eine anfängliche Platzierungsposition für das eindeutige Paket, das gemäß der Verarbeitungsreihenfolge das erste in der Sequenz ist, bestimmen. Das Robotersystem 100 kann die anfängliche Platzierungsposition gemäß einem vorbestimmten Muster bestimmen, wie vorstehend beschrieben. In einigen Ausführungsformen kann das Robotersystem 100 anfängliche Platzierungen für jedes eindeutige Paket berechnen. Die entstandenen anfänglichen Platzierungen können jeweils zu einer eindeutigen Platzierungskombination (z. B. einem Teil eines Suchbaums) entwickelt werden, wie etwa durch Verfolgen des Platzierungsplans 350 über Iterationen hinweg. Bei Block 738 kann das Robotersystem 100 mögliche Platzierungspositionen für die nachfolgenden Pakete gemäß der Verarbeitungsreihenfolge und/oder die übrigen Pakete ableiten und verfolgen, wie vorstehend beschrieben. Dementsprechend kann das Robotersystem 100 die Platzierungskombinationen iterativ ableiten.
  • Beim Ableiten der Platzierungskombinationen (z. B. von möglichen Platzierungskombinationen) kann das Robotersystem 100 Positionen des diskretisierten Objektmodells 302 des entsprechenden Pakets basierend auf dem iterativen Ableiten und Beurteilen von möglichen Stapelszenarien (z. B. möglichen Kombinationen von eindeutigen Platzierungspositionen für die verfügbaren Pakete) testen/beurteilen. Die möglichen Stapelszenarien können jeweils basierend auf dem Identifizieren eindeutiger möglicher Positionen (z. B. gemäß einer vorbestimmten Sequenz/Regel für Platzierungspositionen) für die Pakete gemäß der vorstehend erörterten Sequenz abgeleitet werden. Die möglichen Stapelszenarien und/oder die eindeutigen Platzierungspositionen können gemäß einem oder mehreren Platzierungskriterien (z. B. Anforderungen, Einschränkungen, Platzierungskosten und/oder heuristischen Bewertungen) beurteilt werden. Zum Beispiel können die Platzierungskriterien erfordern, dass die diskretisierten Objektmodelle 302 vollständig in die horizontalen Grenzen des diskretisierten Plattformmodells 304 passen, wenn sie an der ausgewählten Position platziert werden. Außerdem können die Platzierungskriterien erfordern, dass die Platzierung der diskretisierten Objektmodelle 302 innerhalb eines Schwellenabstands oder darüber hinaus relativ zu der anfänglichen Platzierungsposition (z. B. entlang einer horizontalen Richtung) und/oder der vorherigen Platzierungsposition, wie etwa für benachbarte Platzierungen oder Trennungsanforderungen, liegt. Andere Beispiele für die Platzierungskriterien können Präferenzen für benachbart platzierte Pakete beinhalten, die die geringste(n) Differenz(en) bei einer oder mehreren Paketabmessungen (z. B. Höhe), den Zerbrechlichkeitseinstufungen, den Gewichtsbereichen der Pakete oder einer Kombination davon aufweisen. In einigen Ausführungsformen können die Platzierungskriterien Kollisionswahrscheinlichkeiten beinhalten, die Positionen und/oder Charakteristika (z. B. der Höhe) von bereits zugewiesenen Paketen in der Schicht relativ zu einer Referenzposition (z. B. der Position des Palettierungsroboters) entsprechen können. Dementsprechend kann das Robotersystem 100 mehrere eindeutige Platzierungskombinationen (d. h. mögliche Platzierungspläne für jede Schicht und/oder die möglichen Stapelszenarien, in denen jede Schicht mehrere Schichten beinhalten kann) der Paketplatzierungspositionen erzeugen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungen der Kombination basierend auf dem Erzeugen und Aktualisieren eines Suchbaums über die Platzierungsiterationen hinweg verfolgen.
  • Bei Block 740 kann das Robotersystem 100 eine Platzierungsbewertung für jede Kombinations-/Paketplatzierung berechnen/aktualisieren. Das Robotersystem 100 kann die Platzierungsbewertung gemäß einer oder mehreren der Platzierungsbedingungen/-präferenzen (z. B. Paketabmessungen, Kollisionswahrscheinlichkeiten, Zerbrechlichkeitseinstufungen, Gewichtsbereiche der Pakete, Trennungsanforderungen, Paketmengenbedingungen) berechnen. Zum Beispiel kann das Robotersystem 100 Präferenzfaktoren (z. B. Multiplikatorgewichte) und/oder Gleichungen verwenden, um eine Präferenz für Folgendes zu beschreiben: Trennungsabstände zwischen Paketen, Differenzen bei Paketabmessungen/Zerbrechlichkeitseinstufungen/Paketgewichten für benachbarte Pakete, die Kollisionswahrscheinlichkeiten, durchgehende/benachbarte Flächen mit derselben Höhe, ein statistisches Ergebnis davon (z. B. durchschnittliche, maximale, minimale, Standardabweichung usw.) oder eine Kombination davon. Jede Kombination kann gemäß den Präferenzfaktoren und/oder den Gleichungen bewertet werden, die von einem Systemhersteller, einem Auftrag und/oder einem Systembetreiber vordefiniert werden können. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsbewertung am Ende der gesamten Platzierungsiterationen berechnen.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Sequenz der Platzierungskombinationen in einer Prioritätswarteschlange nach jeder Platzierungsiteration aktualisieren. Das Robotersystem 100 kann die Sequenz basierend auf der Platzierungsbewertung aktualisieren.
  • Das Robotersystem 100 kann die Platzierungsiterationen stoppen, wie etwa, wenn ein möglicher Platzierungsplan beendet ist, und zwar basierend auf dem Bestimmen eines Status einer leeren Quelle, eines Status einer vollständigen Schicht oder eines Status einer unveränderten Bewertung. Der Status der leeren Quelle kann darstellen, dass alle der verfügbaren Pakete platziert wurden. Der Status der vollständigen Schicht kann darstellen, dass kein anderes Paket in den übrigen Bereichen des berücksichtigten diskretisierten Plattformmodells 304 platziert werden kann. Der Status der unveränderten Bewertung kann darstellen, dass die Platzierungsbewertung für die Kombination über eine oder mehrere aufeinanderfolgende Platzierungsiterationen konstant bleibt. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsiterationen unter Verwendung unterschiedlicher anfänglicher Platzierungspositionen und/oder einer unterschiedlichen Verarbeitungsreihenfolge (z. B. für das Neusortieren von Gruppen mit demselben Sequenzierungswert/derselben Sequenzierungsbewertung in Verbindung mit den Sequenzierungsbedingungen) wiederholen, um andere Teile möglicher Stapelszenarien abzuleiten. Anders formuliert, kann das Robotersystem 100 mehrere 2D-Platzierungspläne erzeugen, wobei jeder 2D-Platzierungsplan eine Schicht innerhalb eines 3D-Stapels darstellen kann (z. B. einen Teil der möglichen Stapelszenarien). In anderen Ausführungsformen kann das Robotersystem 100 den 3D-Effekt iterativ berücksichtigen, wenn ein 2D-Platzierungsplan abgeleitet wird, und mit dem Ableiten der nächsten Schicht als eine nächste Iteration beginnen, wenn der 2D-Platzierungsplan voll wird.
  • Bei Block 712 kann das Robotersystem 100 einen Stapelplan erzeugen. In einigen Ausführungsformen kann das Robotersystem 100 mit dem Erzeugen des Stapelplans beginnen, wenn die Platzierungsposition des verarbeiteten Pakets ein oder mehrere bereits platzierte/verarbeitete Pakete überlappt.
  • Bei dem Erzeugen des Stapelplans und/oder Beurteilen der 2D-Pläne kann das Robotersystem 100 jede der Platzierungskombinationen und/oder jeden der Platzierungspläne in 3D-Zustände umwandeln, wie bei Block 752 veranschaulicht. Zum Beispiel kann das Robotersystem 100 die Höhenwerte für die Pakete den Platzierungskombinationen zuweisen. Anders formuliert, kann das Robotersystem 100 eine Konturenabbildung (eine Schätzung einer Tiefenabbildung) basierend auf dem Hinzufügen der Pakethöhen zu Platzierungskombinationen erzeugen.
  • Bei den 3D-Zuständen kann das Robotersystem 100 die Platzierungskombinationen gemäß einer oder mehreren Stapelregeln (z. B. einer Horizontalversatzregel, einer Stütztrennungsregel und/oder einer Vertikalversatzregel) beurteilen. Als ein veranschaulichendes Beispiel kann das Robotersystem 100, wenn das platzierte Paket auf/über einem oder mehreren bereits verarbeiteten Paketen gestapelt wird, beliebige der Platzierungskombinationen beseitigen, die eine Überlappungsanforderung, eine Überstandsanforderung, die Vertikalversatzregel, eine CoM-Versatzanforderung oder eine Kombination davon missachten. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 beliebige der Platzierungskombinationen beseitigen, die die Zerbrechlichkeitseinstufungen von einem oder mehreren Paketen unter dem verarbeiteten Paket missachten, wie etwa durch Schätzen der gestützten Gewichte an den überlappten Paketen und Vergleichen dieser mit den entsprechenden Zerbrechlichkeitseinstufungen.
  • Für die übrigen Platzierungskombinationen kann das Robotersystem 100 3D-Platzierungsbewertungen berechnen oder die Platzierungsbewertung aktualisieren, wie bei Block 754 veranschaulicht. Das Robotersystem 100 kann vorbestimmte Präferenzen (z. B. Gewichte und/oder Gleichungen) in Verbindung mit Platzierungskosten und/oder heuristischen Werten für 3D-Platzierungen verwenden. Die vorbestimmten 3D-Präferenzen können den 2D-Präferenzen, Gruppierungspräferenzen, Sequenzierungsbedingungen oder einer Kombination davon ähneln. Zum Beispiel können die 3D-Präferenzen dazu konfiguriert sein, Kollisionswahrscheinlichkeiten basierend auf dem 3D-Zustand zu berechnen und Bewertungen zu berechnen, die die Platzierungskombinationen mit geringeren Kollisionswahrscheinlichkeiten bevorzugen. Außerdem kann das Robotersystem 100 die Bewertungen basierend auf den übrigen Paketen, Größen von Stützbereichen mit gemeinsamer Höhe, Anzahl von gepackten Elementen im 3D-Zustand, der Differenz zwischen den Höhen der verarbeiteten Pakete oder einer Kombination davon berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die Sequenz der Platzierungskombinationen in der Prioritätswarteschlange gemäß den Bewertungen aktualisieren.
  • Nachdem die 3D-Zustände verarbeitet wurden, kann das Robotersystem 100 die 2D-Pläne durch Ableiten einer Platzierung für das nächste Paket der übrigen Pakete aktualisieren, wie etwa bei Block 710. Das Robotersystem 100 kann den vorstehend beschriebenen Prozess bis zu einer Stoppbedingung wiederholen, wie etwa, wenn alle der verfügbaren Pakete verarbeitet wurden (d. h. leerer Wert/leere Reihe für die übrigen Pakete) und/oder wenn die Platzierungskombinationen nicht verbessert werden können (auch als nicht verbesserte Kombinationen bezeichnet). Einige Beispiele für nicht verbesserte Kombinationen können beinhalten, dass die derzeit verarbeitete Platzierung die letzte der Platzierungskombinationen in der Prioritätswarteschlange aufgrund einer oder mehreren der Missachtungen beseitigt und/oder dass die Platzierungsbewertung für die bevorzugten Kombinationen über eine Schwellenanzahl an Iterationen hinweg konstant bleibt.
  • Wenn die Stoppbedingung detektiert wurde, wie etwa bei Block 756, kann das Robotersystem 100 eine der abgeleiteten Platzierungskombinationen gemäß den Platzierungsbewertungen (z. B. den 2D- und/oder den 3D-bezogenen Bewertungen) auswählen. Dementsprechend kann das Robotersystem 100 die ausgewählte Platzierungskombination als den Stapelplan (z. B. eine Reihe der Platzierungspläne) festlegen.
  • In einigen Ausführungsformen kann das Robotersystem 100 als ein veranschaulichendes Beispiel die Funktionen von Block 710 und 712 unterschiedlich umsetzen. Zum Beispiel kann das Robotersystem 100 bei Block 710 den 2D-Plan (z. B. einen Teil des Platzierungsplans 350) für eine untere Schicht erzeugen, wie vorstehend beschrieben. Dabei kann das Robotersystem 100 dazu konfiguriert sein, größere Präferenzen (z. B. größere Parametergewichtungen) für das Entsprechen der Pakethöhen, größere Paketgewichte und/oder ein größeres unterstütztes Gewicht für die Pakete bei der Berücksichtigung der Platzierungen und/oder der Verarbeitungsreihenfolge zuzuordnen. Das Robotersystem 100 kann den ersten 2D-Plan für die Basisschicht ableiten, wie vorstehend für Block 710 beschrieben.
  • Sobald die erste 2D-Schicht vollständig/voll ist, wie vorstehend beschrieben, wodurch die Basisschicht gebildet wird, kann das Robotersystem 100 den Platzierungsplan in 3D-Zustände umwandeln, wie für Block 712/752 beschrieben. Unter Verwendung der 3D-Informationen kann das Robotersystem 100 einen oder mehrere planare Abschnitte/Bereiche (z. B. die Platzierungsflächen 352-356 aus 3B) der Basisschicht identifizieren, wie vorstehend beschrieben. Unter Verwendung der planaren Abschnitte kann das Robotersystem 100 Paketplatzierungen für die nächste Schicht über der Basisschicht iterativ/rekursiv ableiten. Das Robotersystem 100 kann jeden der planaren Abschnitte als neue Teile der diskretisierten Plattformmodelle 304 berücksichtigen und unterschiedliche Platzierungen testen/beurteilen, wie vorstehend für Block 710 beschrieben. In einigen Ausführungsformen kann das Robotersystem 100 die 2D-Platzierungen unter Verwendung der Platzierungsflächen ableiten, jedoch die Bewertung für die Gesamtheit der Platzierungspalette 340 berechnen. Dementsprechend kann das Robotersystem 100 dazu konfiguriert sein, Präferenzen für größere Platzierungsbereiche für nachfolgende Schichten zu folgen, ohne auf die vorherigen Platzierungsbereiche beschränkt zu sein.
  • Sobald der iterative Platzierungsprozess für die zweite Schicht stoppt, kann das Robotersystem 100 planare Abschnitte (z. B. obere Flächen mit Höhen innerhalb eines Schwellenbereichs) für die abgeleitete Schicht berechnen, um die 2D-Platzierungen der übrigen Pakete/Gruppierungen für die nächste darüberliegende Schicht zu erzeugen. Der iterative Schichtungsprozess kann fortgesetzt werden, bis die Stoppbedingung erfüllt wurde, wie vorstehend beschrieben.
  • In einigen Ausführungsformen kann das Robotersystem 100 bei Block 712 2D-Pläne separat erzeugen (z. B. zwei oder mehr der Platzierungspläne) . Das Robotersystem 100 kann den Stapelplan basierend auf dem vertikalen Kombinieren (z. B. Anordnen/Überlappen der 2D-Platzierungspläne entlang einer vertikalen Richtung) der 2D-Pläne erzeugen.
  • Bei Block 714 kann das Robotersystem 100 eine Packsequenz (z. B. die Stapelsequenz 530 aus 5B) basierend auf dem Stapelplan berechnen. Beispielsweise kann die Packsequenz zur Identifizierung der Platzierungsreihenfolge der verfügbaren Pakete dienen. In einigen Ausführungsformen, wie bei Block 762 veranschaulicht, kann das Robotersystem 100 die Packsequenz Schicht für Schicht berechnen. Anders formuliert, kann das Robotersystem 100 die Packsequenz für jede Schicht berechnen und dann die Sequenzen gemäß der Reihenfolge/Position der Schichten von unten nach oben verbinden. Beim Berechnen der Packsequenz kann das Robotersystem 100 in einigen Ausführungsformen die Platzierungspläne anpassen, wie bei Block 772 veranschaulicht. Zum Beispiel kann das Robotersystem 100 die Platzierungspläne durch erneutes Zuweisen eines oder mehrerer der Pakete (z. B. Pakete mit Höhen, die die Kollisionswahrscheinlichkeiten für nachfolgende Veränderungen/Übertragungen erhöhen) von einem Platzierungsplan einer unteren Schicht zu einem Platzierungsplan einer oberen Schicht anpassen. Alle Pakete, die von dem neu zugewiesenen Paket gestützt werden, können auch einer weiter höheren Schicht zugewiesen werden. Anders formuliert, können die neu zugewiesenen Pakete in derselben horizontalen Platzierung bleiben und einer höheren Schicht zugeordnet werden, sodass die Pakete später platziert werden können, wie in 5B veranschaulicht. Bei Block 774 kann das Robotersystem 100 die Packsequenz (z. B. die Stapelsequenz 530) basierend auf dem angepassten Platzierungsplan berechnen, wie etwa durch Packen/Verändern von Objekten, die den höheren Schichten zugewiesen sind, nach den Objekten, die den unteren Schichten zugewiesen sind.
  • In anderen Ausführungsformen, wie bei Block 764 veranschaulicht, kann das Robotersystem 100 die Packsequenz ungeachtet der/unabhängig von den Schichtzuweisungen berechnen. Anders formuliert, kann das Robotersystem 100 die Packsequenz derart berechnen, dass Pakete, die einer unteren Schicht zugewiesen sind, nach Paketen platziert werden können, die einer höheren Schicht zugewiesen sind.
  • Beim Berechnen der Packsequenz, sowohl innerhalb von Schichten als auch zwischen diesen, kann das Robotersystem 100 die Positionen der Pakete im Stapelplan gemäß einer oder mehreren Paketabmessungen (z. B. Höhen), relativen Platzierungspositionen oder einer Kombination davon analysieren. Zum Beispiel kann das Robotersystem 100 Platzierungen von Kisten weiter weg von einer Einheits-/Referenzposition (z. B. Position des Palettierungsroboters) vor näher zugewiesenen Paketen sequenzieren. Außerdem kann das Robotersystem 100 größere/schwerere Pakete früher platzieren, wenn ihre zugewiesenen Positionen entlang den Umfängen des Platzierungsplans und entfernt von der Einheitsposition sind.
  • Bei Block 716 kann das Robotersystem 100 den Stapelplan für das Platzieren der verfügbaren Pakete auf der Plattform umsetzen. Das Robotersystem 100 kann den Stapelplan basierend auf dem Kommunizieren von einem/einer oder mehreren Bewegungsplänen, Aktorbefehlen/-einstellungen oder einer Kombination davon an die entsprechende Vorrichtung/Einheit (z. B. die Übertragungseinheit 104 aus 1, die Betätigungsvorrichtungen 212 aus 2, die Sensoren 216 aus 2 usw.) gemäß dem Stapelplan umsetzen. Das Robotersystem 100 kann ferner den Stapelplan basierend auf dem Ausführen der kommunizierten Informationen an den Vorrichtungen/Einheiten umsetzen, um die verfügbaren Pakete von einer Ausgangsposition zur Zielplattform zu übertragen. Dementsprechend kann das Robotersystem 100 die verfügbaren Pakete gemäß der 3D-Abbildung platzieren, wobei eines oder mehrere der verfügbaren Pakete auf anderen Paketen platziert/gestapelt werden, wie etwa durch das schichtweise Platzieren der verfügbaren Pakete. Ferner kann das Robotersystem 100 die Pakete gemäß der Packsequenz verändern/übertragen. Somit kann das Robotersystem 100 die Pakete Schicht für Schicht oder ohne derartige Einschränkungen platzieren, wie vorstehend beschrieben.
  • 8 ist ein Ablaufdiagramm für ein Verfahren 800 zum Betreiben des Robotersystems 100 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Verfahren 800 kann verwendet werden, um Fehler und mögliche Kollisionen zu detektieren und entsprechende Reaktionen zu bestimmen. Zum Beispiel kann das Verfahren 800 verwendet werden, um die Platzierungspositionen 350 aus 3B für die Zielobjekte 112 aus 3 an einer Aufgabenposition 116 aus 1 dynamisch abzuleiten und/oder einen bestehenden Packplan (z. B. Einzelheiten bezüglich spezifischer Platzierungspositionen/-Stellungen einer Reihe von Objekten an Zielen, assoziierten Sequenzen und/oder Bewegungsplänen oder einer Kombination davon) aufgrund der detektierten Fehler anzupassen. Wie nachfolgend ausführlicher beschrieben wird, beinhalten mögliche Fehler Abweichungen oder Unterschiede zwischen erwarteten Packbedingungen und Echtzeit-Packbedingungen. Anders formuliert, können die Fehler unerwarteten Ereignissen (z. B. Kollisionen, fallengelassenen/verlorengegangenen Objekten, Verschiebungen von bereits platzierten Objekten und/oder Verdeckung an der Aufgabenposition 116) entsprechen, die während des Platzierens der Objekte an der Aufgabenposition 116 gemäß dem Packplan auftreten können. In diesen und weiteren Ausführungsformen können erwartete Packbedingungen zumindest teilweise auf einer Veränderung der Packbedingungen (z. B. gemäß dem Packplan) vor, während oder nach dem Platzieren eines Zielobjekts und/oder eines bereits platzierten Objekts 508 basieren. In diesen und noch weiteren Ausführungsformen kann das Verfahren 800 durch Ausführen von Anweisungen, die auf einer oder mehreren Speichervorrichtungen 204 aus 2 gespeichert sind, mit einem oder mehreren Prozessoren 202 aus 2 umgesetzt werden.
  • Wie vorstehend erörtert, kann das Verfahren 700 aus 7 umgesetzt werden, um die Packpläne abzuleiten und/oder umzusetzen, wie in der gleichzeitig eingereichten US-Patentanmeldung von Rosen N. Kiankov und Denys Kanunikov mit dem Titel „A ROBOTIC SYSTEM WITH PACKING MECHANISM“, die auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8005.US01 trägt und vollumfänglich durch Bezugnahme hierin aufgenommen wird, ausführlicher beschrieben ist.
  • Nachdem der 3D-Packplan und/oder die Packsequenz erzeugt wurde, kann das Robotersystem 100 damit beginnen, den Packplan auszuführen, wie bei Block 801 veranschaulicht. Um den Packplan auszuführen, kann das Robotersystem 100 eine oder mehrere der Robotereinheiten, wie etwa die Entladeeinheit 102, die Übertragungseinheit 104, die Transporteinheit 106, die Ladeeinheit 108 usw., die in 1 veranschaulicht sind, betreiben (z. B. durch Erzeugen, Senden, Umsetzen von entsprechenden Befehlen, Einstellungen, Bewegungsplänen usw. an diese bzw. diesen). Das Robotersystem 100 kann die Robotereinheiten betreiben, um die Objekte zur Startposition 114 aus 1 zu transportieren und die Objekte von der Startposition 114 derart zu steuern (z. B. über die Übertragungseinheit 104), dass diese an/auf der Aufgabenposition 116 aus 1 (z. B. einer Palette, einem Korb, einer Wagenbahn usw.) gemäß dem 3D-Stapelplan platziert werden. Zum Beispiel kann das Robotersystem 100 die Objekte gemäß der Packsequenz zur Startposition 114 transportieren (z. B. über die Transporteinheit 106, wie etwa die Fördervorrichtung) und die Objekte an Positionen im Platzierungsbereich 340 aus 3B gemäß dem 3D-Packplan platzieren. Das Robotersystem 100 kann ferner einen Fortschritt überwachen, während der Packplan ausgeführt wird, um die Objekte in der Packsequenz und/oder im 3D-Packplan zu identifizieren, die an den zugewiesenen Positionen platziert wurden.
  • Bei Block 802 kann das Robotersystem 100 Echtzeit-Packbedingungen identifizieren. Während des Umsetzens des Packplans kann das Robotersystem 100 Echtzeit-Packbedingungen an der Startposition 114 und/oder der Aufgabenposition 116 oder um diese herum (z. B. innerhalb eines vorbestimmten Abstands davon) identifizieren. Zum Beispiel kann das Robotersystem 100 Informationen (z. B. Sensordaten von den Sensoren 216 aus 2) bezüglich jedes der eingehenden Objekte und/oder der Objekte an der Aufgabenposition 116 in Echtzeit empfangen und analysieren. In einigen Ausführungsformen kann das Robotersystem 100 Ausgangssensordaten empfangen (z. B. von dem Ausgangssensor 504 aus 5) und analysieren, welche ein oder mehrere Objekte, einschließlich des Zielobjekts 112, darstellen, die sich an der Startposition 114 befinden oder sich dieser nähern. In diesen und weiteren Ausführungsformen kann das Robotersystem 100 Zielsensordaten empfangen (z. B. von dem Zielsensor 506 aus 5) und analysieren, welche einen Platzierungsbereich (z. B. den Platzierungsbereich 340) darstellen, der mit der Aufgabenposition 116 und/oder den bereits darauf platzierten Objekten 508 aus 5 assoziiert ist.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Sensordaten analysieren. Beim Analysieren der Sensordaten kann das Robotersystem 100 die Sensordaten (z. B. Bilder und/oder Tiefenabbildungen von den Sensoren 216) verarbeiten, um Kanten zu identifizieren/schätzen. Zum Beispiel kann das Robotersystem 100 die Sensordaten verarbeiten, wie etwa unter Verwendung von Sobel-Filtern, um Kanten des Zielobjekts 112, der Aufgabenposition 116, der bereits platzieren Objekte 508 oder einer Kombination davon zu erkennen. Das Robotersystem 100 kann die Kanten verwenden, um Bereiche zu identifizieren, die separate Objekte und/oder Abmessungen davon darstellen. In diesen und weiteren Ausführungsformen kann das Robotersystem 100 eine oder mehrere Abmessungen oder Längen eines erfassten Objekts (z. B. des eingehenden Objekts, des Zielobjekts 112, der Palette oder des Korbs usw.) basierend auf den Sensordaten (z. B. den Ausgangssensordaten) schätzen. Das Robotersystem 100 kann ferner die identifizierten Bereiche verwenden, um eine Stellung und/oder eine Position des Objekts zu bestimmen. Zum Beispiel kann das Robotersystem 100 die Kanten auf einem bestehenden Rastersystem abbilden, um eine Ausrichtung und/oder eine Position des Objekts zu bestimmen.
  • Bei Block 804 kann das Robotersystem 100 auf diskretisierte Modelle (z. B. die diskretisierten Objektmodelle 302 aus 3A und/oder die diskretisierten Plattformmodelle 304 aus 3B) zugreifen und/oder diese erzeugen, die eingehende Pakete (einschließlich z. B. des Zielobjekts 112) und die Aufgabenposition 116, wie etwa die Palette und/oder den Korb, darstellen. Das Robotersystem 100 kann die diskretisierten Modelle (z. B. diskretisierten Objektmodelle 302 und/oder die diskretisierten Plattformmodelle 304) basierend auf den Echtzeit-Sensordaten (z. B. den Ausgangssensordaten und/oder den Zielsensordaten) bestimmen (z. B. erzeugen und/oder darauf zugreifen). In einigen Ausführungsformen kann das Robotersystem 100 einen Objekttyp (z. B. eine Identifizierung oder eine Kategorie für das eingehende Objekt) für das Zielobjekt 112 basierend auf den Ausgangssensordaten identifizieren. Zum Beispiel kann das Robotersystem 100 die Masterdaten 252, die in den Speichervorrichtungen aus 2 und/oder einer anderen Vorrichtung (z. B. einer Speichervorrichtung, einer Datenbank und/oder einem Server eines Paketlieferanten, auf die/den über die Kommunikationsvorrichtungen 206 aus 2 zugegriffen wird) gespeichert sind, unter Verwendung der identifizierenden Informationen (z. B. des Oberflächenbildes und/oder der geschätzten Abmessungen) durchsuchen, um übereinstimmende diskretisierte Modelle zu finden und auf diese zuzugreifen.
  • In einigen Ausführungsformen kann das Robotersystem 100 ein diskretisiertes Modell des Zielobjekts in Echtzeit dynamisch erzeugen, wie etwa direkt als Reaktion auf das Empfangen der Ausgangssensordaten. Um die diskretisierten Modelle dynamisch zu erzeugen, kann das Robotersystem 100 die Sensordaten und/oder entsprechende physische Abmessungen (z. B. für das eingehende Objekt, die obere Fläche der Palette usw.) gemäß dem Einheitspixel 310 aus 3B unterteilen. Anders formuliert, kann das Robotersystem 100 die diskretisierten Modelle basierend auf dem Überlagern der Einheitspixel 310 über einem Bereich, der für das Zielobjekt 112 und/oder die Aufgabenposition 116 repräsentativ ist, gemäß den entsprechenden Sensordaten erzeugen. Das Einheitspixel 310 kann vorbestimmt werden (z. B. von einem Hersteller, einem auftraggebenden Kunden und/oder einem Betreiber), wie etwa 1 mm oder 1/16 Zoll (in) oder größer (z. B. 5 mm oder 20 mm). In einigen Ausführungsformen kann das Einheitspixel 310 (z. B. als Prozentsatz oder Bruchteil) auf einer Abmessung oder einer Größe von einem oder mehreren der Pakete und/oder der Plattform basieren.
  • Bei Block 806 kann das Robotersystem 100 detektieren oder bestimmen, ob ein oder mehrere Fehler aufgetreten sind. Zum Beispiel kann das Robotersystem 100 bestimmen, ob Fehler aufgetreten sind, indem es Abweichungen oder Unterschiede zwischen erwarteten Packbedingungen und den Echtzeit-Packbedingungen identifiziert. Anders formuliert, kann das Robotersystem 100 bestimmen, ob Fehler aufgetreten sind, indem es die Sensordaten mit einem erwarteten Zustand der Startposition 114 und/oder einem erwarteten Zustand der Aufgabenposition 116 vergleicht. Zu Beispielen für mögliche Fehler, die durch das Robotersystem 100 identifiziert werden, gehören Ausgangszuordnungsfehler (z. B. Masterdatenfehler, unerwartete Objektfehler, Ankunftssequenzfehler usw.), Zielzuordnungsfehler (z. B. Platzierungszugangsfehler, unerwartete Platzierungsfehler, Platzierungsbereichsfehler usw.) und/oder Betriebsstatusfehler (z. B. Kollisionsfehler, Transportfehler, Objektverschiebungsfehler usw.).
  • Bei Block 832 kann das Robotersystem 100 Ausgangszuordnungsfehler identifizieren. Um Ausgangszuordnungsfehler zu identifizieren, kann das Robotersystem 100 die Ausgangssensordaten mit Daten vergleichen, die erwarteten Packbedingungen an der Startposition 114 entsprechen. In einer Ausführungsform kann das Robotersystem 100 einen Masterdatenfehler durch Vergleichen der Ausgangssensordaten mit Masterdaten (z. B. den Masterdaten 252 aus 2) detektieren, die Beschreibungen, wie etwa Eigenschaftsinformationen, der möglichen Objekte beinhalten, die bereits am Robotersystem 100 registriert sind. In diesen Ausführungsformen kann das Robotersystem 100 bestimmen, ob die Eigenschaften (z. B. physikalischen Eigenschaften, wie etwa Höhe, Breite, Länge, Gewicht und/oder andere Eigenschaften) des Zielobjekts 112, die in den Ausgangssensordaten erfasst wurden, mit den Eigenschaftsinformationen der Objekte, die in den Masterdaten 252 gespeichert sind, übereinstimmen. Für den Fall, dass die Eigenschaften des Zielobjekts 112, die in den Ausgangssensordaten erfasst wurden, nicht mit den Eigenschaftsinformationen der Objekte, die in den Masterdaten 252 gespeichert sind, übereinstimmen, kann das Robotersystem 100 bestimmen, dass ein Masterdatenfehler aufgetreten ist. Dementsprechend kann das Robotersystem 100 Ausgangszuordnungsfehler identifizieren, die mit der Ankunft von nicht registrierten und/oder nicht erkannten Objekten assoziiert sind.
  • In diesen und weiteren Ausführungsformen kann das Robotersystem 100 einen unerwarteten Objektfehler und/oder einen Ankunftssequenzfehler durch Vergleichen der Ausgangssensordaten mit Daten, die dem Packplan und/oder der Packsequenz entsprechen, detektieren. Um das Beispiel fortzusetzen, kann das Robotersystem 100 die abgeleiteten Eigenschaften (z. B. physikalischen Eigenschaften) des Zielobjekts 112 mit erwarteten Eigenschaften eines Objekts, das gemäß der Packsequenz an der Startposition 114 ankommen soll, und dem überwachten Fortschritt vergleichen. Wenn die Eigenschaften des Zielobjekts 112 mit einem der Objekte, die in den Masterdaten 252 registriert sind, übereinstimmen, kann das Robotersystem 100 die Kennung/den Typ des übereinstimmenden Objekts mit der/dem des erwarteten Objekts gemäß dem überwachten Fortschritt der Packsequenz vergleichen. Für den Fall, dass das Zielobjekt 112 nicht mit dem erwarteten Objekt übereinstimmt, kann das Robotersystem bestimmen, dass ein unerwarteter Objektfehler aufgetreten ist (z. B., dass das Zielobjekt 112 nicht das erwartete Objekt ist und/oder außerhalb der Sequenz angekommen ist). In einigen Ausführungsformen kann das Robotersystem 100 damit fortfahren, das Zielobjekt 112 (z. B. Eigenschaften davon und/oder eine übereinstimmende Kennung) mit einem oder mehreren anderen Objekten, die gemäß der Packsequenz an der Startposition 114 ankommen sollen (z. B. nach und/oder vor dem Zielobjekt 112), zu vergleichen. Zum Beispiel kann das Robotersystem 100 das Zielobjekt 112 mit einer vorbestimmten Anzahl an Objekten vergleichen, die sich innerhalb der Packsequenz vor oder nach dem erwarteten Objekt befinden. Für den Fall, dass die Eigenschaften des Zielobjekts 112 mit den erwarteten Eigenschaften eines weiteren Objekts übereinstimmen, das an der Startposition 114 ankommen soll, kann das Robotersystem 100 bestimmen, dass ein Ankunftssequenzfehler aufgetreten ist (z. B., dass das Zielobjekt 112 außerhalb der Sequenz an der Startposition 114 angekommen ist), und/oder es kann das Zielobjekt 112 für das nächste Auftreten des Zielobjekts 112 lagern, um eine oder mehrere Echtzeit-Anpassungen auszuführen (z. B. Lagern des Zielobjekts 112 an einem vorübergehenden Aufbewahrungsbereich und dann Zugreifen auf dieses gemäß der nächsten erwarteten Reihenfolge/Zeit).
  • Zusätzlich oder alternativ kann das Robotersystem 100 Zielzuordnungsfehler bei Block 834 identifizieren. Um Zielzuordnungsfehler zu identifizieren, kann das Robotersystem 100 die Zielsensordaten mit Daten vergleichen, die erwarteten Packbedingungen an der Aufgabenposition 116 entsprechen. Zum Beispiel kann das Robotersystem 100 den aktuellen Fortschritt des 3D-Packplans basierend auf dem Identifizieren der Objekte, die platziert wurden, überwachen. Das Robotersystem 100 kann ein oder mehrere Computermodelle verwenden, um eine erwartete Form und/oder eine erwartete Oberflächenkontur (z. B. eine Reihe von Höhenschätzungen, die der erwarteten Platzierungsoberfläche entsprechen) zu bestimmen, die dem überwachten Fortschritt entspricht. Das Robotersystem 100 kann Bilder, die Tiefenabbildung und/oder andere Daten, die für den aktuellen Zustand der Aufgabenposition 116 repräsentativ sind (z. B. ein diskretisiertes Plattformmodell und/oder aktuelle Höhenmaße der Aufgabenposition 116) und unter Verwendung der Sensoren 216 erfasst wurden, mit der erwarteten Form und/oder der erwarteten Oberflächenkontur vergleichen. Das Robotersystem 100 kann Zielzuordnungsfehler zumindest teilweise basierend auf Unterschieden zwischen dem aktuellen Zustand der Aufgabenposition 116 und dem erwarteten Zustand der Aufgabenposition 116 bestimmen.
  • Als ein veranschaulichendes Beispiel kann das Robotersystem 100 aufgenommene Bilder und/oder andere Daten der Aufgabenposition 116 (z. B. des Platzierungsbereichs 340 und/oder der bereits an der Aufgabenposition 116 platzierten Objekte 508) analysieren, um aktuelle Eigenschaften zu bestimmen, wie etwa die Positionen/Stellen, Stellungen/Ausrichtungen, physischen Abmessungen, Formen, Höhenmessungen und/oder andere Eigenschaften der Aufgabenposition 116 und/oder der bereits platzierten Objekte 508. Um Zielzuordnungsfehler zu bestimmen, kann das Robotersystem 100 eine oder mehrere der aktuellen Eigenschaften der Aufgabenposition 116 mit einer oder mehreren erwarteten Eigenschaften der Aufgabenposition 116, der bereits platzierten Objekte 508 und/oder des Platzierungsbereichs 340 vergleichen, um Nichtübereinstimmungen oder Unterschiede zu identifizieren. Unter Verwendung des Vergleichs zwischen den aktuellen Eigenschaften und den erwarteten Eigenschaften kann das Robotersystem 100 bestimmen, ob ein oder mehrere Fehler (z. B. ein Platzierungszugangsfehler, ein unerwarteter Platzierungsfehler und/oder ein Platzierungsbereichsfehler) aufgetreten ist. Einige Beispiel des Platzierungszugangsfehlers (z. B. Eigenschaften des Platzierungsbereichs 340 unterscheiden sich davon, was erwartet wurde) können auf dem Platzierungsbereich 308 beruhen, der eine andere Größe oder Form als erwartet aufweist, wie etwa aufgrund eines Platzierens der falsch bemessenen Palette für die Aufgabenposition 116 oder einer Wand eines Containers (z. B. eines Korbs oder einer Wagenbahn) für die Aufgabenposition 116, die nicht vollständig geöffnet ist. Einige Beispiele für den unerwarteten Platzierungsfehler können darauf basieren, dass eines oder mehrere der bereits platzierten Objekte 508 eine unerwartete Position/Stellung aufweisen, da beispielsweise das eine oder die mehreren bereits platzierten Objekte 508 bewegt, verschoben wurden und/oder heruntergefallen sind und/oder an einer falschen Position und/oder mit einer falschen Ausrichtung platziert wurden. Einige Beispiele für den Platzierungsbereichsfehler können Höhenmessungen des Platzierungsbereichs 340 entsprechen, die sich von den erwarteten unterscheiden. In diesen und weiteren Ausführungsformen kann das Robotersystem 100 die Zielsensordaten verwenden, um zu bestimmen, dass eines oder mehrere der bereits platzierten Objekte 508 vorher falsch platziert wurden oder fehlen und/oder dass sich ein unerwartetes Objekt an der Aufgabenposition 116 befindet.
  • Bei Block 836 kann das Robotersystem 100 andere Arten von Fehlern bestimmen. Zum Beispiel kann das Robotersystem 100 die Echtzeit-Packbedingungen (z. B. Rückkopplungsdaten von den Robotereinheiten und/oder aktuelle Bedingungen am Objektausgang/-ziel) analysieren, um Betriebsfehler zu identifizieren, wie etwa Kollisionsfehler (z. B. sind Robotereinheiten und/oder Objekte kollidiert) und/oder Objektbewegungsfehler (z. B. haben sich Objekte während oder nach der Platzierung verschoben). Als ein weiteres Beispiel kann das Robotersystem 100 Transport- oder Steuerungsfehler identifizieren, wie etwa, wenn ein Greifer an der Übertragungseinheit 104 keinen ausreichenden Griff eines Objekts aufweist und/oder wenn ein Objekt während des Transports/der Steuerung fallengelassen wird/verlorengeht). Das Robotersystem 100 kann verschiedene Rückkopplungsdaten, wie etwa Positionen, Geschwindigkeiten, Status (z. B. Außenkontaktstatus und/oder Griffstatus), Kraftmessungen, (z. B. von außen aufgebrachte Kraft, Griffkraft und/oder Gewicht/Drehmoment, das am Greifer gemessen wird) oder eine Kombination davon, von den Robotereinheiten während des Umsetzens des Packvorgangs erhalten (bei Block 801 veranschaulicht). Das Robotersystem 100 kann die erhaltenen Daten mit einem bzw. einer oder mehreren vorbestimmten Schwellenwerten/Vorlagen vergleichen, welche die Betriebsfehler charakterisieren, um Vorkommnisse davon zu identifizieren.
  • Bei Block 838 kann das Robotersystem 100 Packbedingungen identifizieren, die ein Kollisionsrisiko darstellen. In einigen Ausführungsformen kann das Robotersystem 100 identifizieren, ob Packbedingungen ein Kollisionsrisiko darstellen, und zwar unabhängig von dem oder als Reaktion auf das Bestimmen, dass ein oder mehrere Fehler aufgetreten sind (bei den Blöcken 832-836). Das Robotersystem 100 kann die Sensordaten analysieren, um ein Kollisionsrisiko zwischen den Robotereinheiten und/oder Objekten zu identifizieren, wenn das Robotersystem 100 damit fortfährt, das Zielobjekt 112 zu packen/palettieren. Wenn das Zielobjekt 112 das erwartete Objekt gemäß der Packsequenz ist, kann das Robotersystem 100 den Annäherungspfad 510 aus 5 für das Platzieren des Zielobjekts 112 gemäß dem 3D-Packplan neuberechnen und/oder darauf zugreifen. Da die aktuellen Bedingungen aufgrund des bestimmten Fehlers von den erwarteten Bedingungen abgewichen sind, kann das Robotersystem 100 den Annäherungspfad 510 und die Echtzeit-Bedingungen vergleichen, um das Kollisionsrisiko zu bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 die Echtzeit-Sensordaten analysieren, sodass das Robotersystem 100 Echtzeit-Packbedingungen gemäß einer festgelegten Priorität identifiziert (z. B. beim Verringern des Ausmaßes des Kollisionsrisikos und/oder von Fehlern). Unter Bezugnahme auf die Aufgabenposition 116 kann das Robotersystem 100 beispielsweise die Zielsensordaten analysieren, sodass das Robotersystem 100 den Annäherungspfad 510 beeinträchtigende Echtzeit-Packbedingungen in der folgenden Reihenfolge identifiziert: (a) ob ein Container an der Aufgabenposition 116 im Zusammenhang mit einem Platzierungszugangsfehler ein Kollisionsrisiko darstellt (z. B., da der Container nicht vollständig geöffnet ist); (b) ob ein oder mehrere bereits platzierte Objekte 508, die bewegt, verschoben und/oder fallengelassen wurden, im Zusammenhang mit einem unerwarteten Platzierungsfehler ein Kollisionsrisiko darstellen; (c) ob ein oder mehrere bereits platzierte Objekte 508, die an einer falschen Position und/oder mit einer falschen Ausrichtung platziert wurden, im Zusammenhang mit einem Platzierungsbereichsfehler ein Kollisionsrisiko darstellen; und/oder (d) ob Höhen von palettierten Körben im Zusammenhang mit einem Platzierungsbereichsfehler ein Kollisionsrisiko darstellen (z. B. aufgrund eines Unterschieds zwischen erwarteten und tatsächlichen Höhenmessungen des Platzierungsbereichs 340, wie vorstehend beschrieben).
  • Wenn das Robotersystem 100 bei den Blöcken 832-838 bestimmt, dass keine Fehler aufgetreten sind, oder keine(n) Fehler oder Packbedingung identifiziert, der/die ein Kollisionsrisiko darstellt, kann das Robotersystem 100 zu Block 801 zurückkehren, um mit der Ausführung des Packplans fortzufahren. Anderenfalls führt die fortgesetzte Ausführung des Packplans in einem beliebigen der Fehlerszenarien und Szenarien mit möglicher Kollision, wie vorstehend dargelegt, wahrscheinlich zu weiteren Fehlern. Zum Beispiel kann die gestapelte Palette die falschen Elemente beinhalten und/oder sie kann instabil werden, da sie oder ihre Objekte andere Eigenschaften (z. B. unterschiedliche Höhen für ein oder mehrere stützende Objekte im Stapel) aufweisen, als von dem Packplan vorgesehen. Des Weiteren kann das Kollisionsrisiko zwischen Robotereinheiten und/oder Objekten aufgrund von Abweichungen bei Objektpositionen und/oder unerwarteten Beeinträchtigungen zunehmen.
  • Somit kann das Robotersystem 100 (bei Block 840) als Reaktion auf das Bestimmen von einem oder mehreren Fehlern und/oder das Identifizieren von einer oder mehreren Packbedingungen, die ein Kollisionsrisiko darstellen, eine Reaktion auf die Fehler und/oder möglichen Kollisionen, die bei den Blöcken 832-838 identifiziert wurden, bestimmen. Zu Beispielen für angemessene Reaktionen können eines oder mehrere von Folgendem gehören: (a) Warnen eines Bedieners und/oder eines anderen Systems bezüglich des Fehlers und/oder der Echtzeit-Bedingungen, die ein Kollisionsrisiko darstellen; (b) Zurückkehren zu Block 804, um ein diskretisiertes Modell des Zielobjekts 112 dynamisch zu erzeugen; (c) Aktualisieren der Masterdaten 252; (d) Aktualisieren einer Masterliste der Aufgabenposition 116, um ein unerwartetes Objekt an der Aufgabenposition 116 aufzunehmen und/oder ein fehlendes Objekt an der Aufgabenposition 116 auszuschließen; (e) Platzieren des Zielobjekts 112 an einer anderen Position als der Aufgabenposition 116 (z. B. Beiseitelegen des Zielobjekts 112 und/oder Zwischenlagern des Zielobjekts 112 für den späteren Transport/die spätere Steuerung zur Aufgabenposition 116); (f) Neupositionieren von einem oder mehreren bereits platzierten Objekten 508; (g) Umsetzen des Packplans durch dynamisches Anpassen des Annäherungspfads 510; (h) Modifizieren oder Anpassen des Packplans durch dynamisches Ableiten einer aktualisierten Platzierungsposition; (i) Erzeugen eines neuen Packplans; und/oder (j) Verwerfen des Packplans und dynamisches Ableiten von Platzierungspositionen, wenn Objekte ankommen.
  • In einigen Ausführungsformen kann das Robotersystem 100 die angemessene Reaktion basierend auf der Art des identifizierten Fehlers oder der möglichen Kollision bestimmen. Zum Beispiel kann das Robotersystem 100 im Zusammenhang mit einem Masterdatenfehler auch dazu in der Lage sein, mit der Umsetzung des Packplans fortzufahren. Somit kann die angemessene Reaktion auf einen Masterdatenfehler (d. h., das Objekt stimmt nicht mit den Masterdaten 252 überein) das Platzieren des Zielobjekts 112 an einer vorübergehenden Position, Platzieren der nachfolgenden Objekte an ihren festgelegten Positionen oder an der vorübergehenden Position (z. B., wenn die Platzierung den ursprünglich für das Zielobjekt 112 vorgesehenen Annäherungspfad 510 blockiert) beinhalten. Wenn das erwartete Objekt (d. h. im Vergleich mit dem Zielobjekt 112) an der Startposition 114 ankommt, kann das Robotersystem 100 das erwartete Objekt an der ursprünglich vorgesehenen Position platzieren. Das Zwischenlagern oder Platzieren des Zielobjekts 112 an einer vorübergehenden Position ist ausführlicher beschrieben in der gleichzeitig eingereichten US-Patentanmeldung von Rosen N. Diankov und Denys Kanunikov mit dem Titel „ROBOTIC SYSTEM FOR PROCESSING PACKAGES ARRIVING OUT OF SEQUENCE", das auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8008.US01 trägt und vollumfänglich durch Bezugnahme hierin aufgenommen wird. Wenn ein oder mehrere anschließende Teile des erwarteten Objekts (d. h. dieselbe Art/Kennung wie das Zielobjekt 112) ebenfalls den Masterdatenfehler verursachen, kann das Robotersystem 100 in einigen Ausführungsformen die Abmessungen und/oder das diskretisierte Modell des Zielobjekts 112 mit denen des erwarteten Objekts vergleichen. Wenn die verglichenen Daten mit einem vorbestimmten Schwellenbereich übereinstimmen oder innerhalb von diesem liegen, kann das Robotersystem 100 einen Bediener benachrichtigen und/oder damit fortfahren, den Packplan umzusetzen, nachdem die Masterdaten aktualisiert wurden. Zum Beispiel kann der Ablauf zu Block 804 zurückkehren, um ein diskretisiertes Modell des Zielobjekts 112 in Echtzeit dynamisch zu erzeugen und die Masterdaten 252 derart zu aktualisieren, dass sie das erzeugte diskretisierte Modell beinhalten.
  • Wenn die Abmessungen und/oder die diskretisierten Daten nicht mit den Maßen übereinstimmen oder sich von diesen unterschieden, wobei der Schwellenbereich überschritten wird, kann das Robotersystem 100 den bestehenden Packplan verwerfen und den Packplan gemäß den aktualisierten Masterdaten und den aktuellen Bedingungen (z. B. den übrigen Paketen und/oder den anfänglichen Höhen der Platzierungsoberfläche) erneut ableiten. Dementsprechend kann das Robotersystem 100 das Verfahren 700 oder einen oder mehrere Abschnitte davon, wie vorstehend beschrieben, umsetzen. In einigen Ausführungsformen kann das Robotersystem 100 zum Beispiel die Paketreihe (Block 706) gemäß den übrigen Objekten erneut identifizieren und einen oder mehrere der folgenden Vorgänge umsetzen (wie z. B. bei Block 704 und weiteren veranschaulicht). In einigen Ausführungsformen kann das Robotersystem 100 auf die bereits bestimmten Paketgruppierungen gemäß den aktuellen Bedingungen zugreifen und diese anpassen (z. B. durch Entfernen der bereits platzierten Objekte), die bereits bestimmte Verarbeitungsreihenfolge beibehalten und die 2D- und 3D-Platzierungspläne entsprechend erneut ableiten. Zum Beispiel kann das Robotersystem 100 die aktuelle Bedingung an der Aufgabenposition 116 als eine aktualisierte Platzierungsoberfläche verwenden (z. B. anstelle des diskretisierten Plattformmodells 304) oder die aktuelle Bedingung als einen bestehenden Abschnitt des Plans identifizieren, wie es beispielsweise aus früheren Planungsiterationen, wie vorstehend beschrieben, resultieren kann. Alternativ, wenn die übrige Anzahl an Paketen unter einer Schwellengrenze liegt, kann das Robotersystem 100 die Platzierungspositionen dynamisch ableiten, wie nachfolgend ausführlich beschrieben wird.
  • Als ein weiteres Beispiel kann das Robotersystem 100 bei einem Platzierungszugangsfehler, bei dem ein Container an der Aufgabenposition 116 nicht vollständig geöffnet ist, einen Bediener und/oder ein anderes System warnen, dass der Korb oder die Wagenbahn nicht vollständig geöffnet ist. Zusätzlich oder alternativ kann das Robotersystem 100 einen Umfang bestimmen, inwieweit der Packplan durch den nicht vollständig geöffneten Container beeinträchtigt wird. Zum Beispiel kann das Robotersystem 100 den Umfang (z. B. eine Anzahl und/oder relative Positionen von beeinträchtigten Objekten innerhalb des 3D-Packplans) basierend auf einer Überlagerung des 3D-Packplans über den Zieldaten (z. B. dem Bild und/oder der Tiefenabbildung) und einer Identifizierung und/oder Zählung der Objekte im 3D-Packplan, welche die teilweise geschlossene Wand oder die Abdeckung des Korbs/der Wagenbahn überlappen, bestimmen. Außerdem kann das Robotersystem 100 das Ausmaß durch Vergleichen der Annäherungspfade 510 für eines oder mehrere der Objekte im 3D-Packplan mit den Wänden/Kanten des Korbs/der Wagenbahn bestimmen und die Pfade identifizieren, welche die Wände/Kanten kreuzen. Das Robotersystem 100 kann den Umfang basierend auf dem Identifizieren (z. B. gemäß vorbestimmten Funktionen, Regeln, Modellen usw.) und Berücksichtigen (z. B. durch Erhöhen der Anzahl der beeinträchtigten Objekte) anderer abhängiger Objekte, die von den beeinträchtigen Objekten gestützt werden, anpassen. In diesen Ausführungsformen kann das Robotersystem 100, wenn die Positionen/Muster der beeinträchtigten Objekte mit einer oder mehreren vorbestimmten Vorlagen übereinstimmen und/oder die Menge der beeinträchtigten Objekte eine Schwellenmenge unterschreitet, bestimmen, dass die angemessene Reaktion darin besteht, den Packplan durch dynamisches Modifizieren oder Anpassen des Annäherungspfades 510 umzusetzen, sodass das Robotersystem 100 das Zielobjekt 112 an einer Position an der Aufgabenposition 116 platziert, die von dem Packplan festgelegt wurde, während eine Kollision mit dem Container und/oder mit den bereits platzierten Objekten 508 vermieden wird.
  • Alternativ kann das Robotersystem 100 bestimmen, dass der Container vollständig oder deutlich geschlossen ist, wie etwa, wenn die Anzahl der beeinträchtigten Objekte die Schwellenmenge überschreitet, was einer Bedingung entspricht, dass ein großer Abschnitt der Aufgabenposition 116 für das Robotersystem 100 nicht zugänglich ist. In einigen Ausführungsformen kann das Robotersystem 100 bestimmen, dass die angemessene Reaktion auf den Platzierungszugangsfehler darin besteht, die Platzierungspositionen 350 für das Zielobjekt 112 und/oder anschließend ankommende Objekte dynamisch erneut abzuleiten/anzupassen (wie nachfolgend unter Bezugnahme auf die Blöcke 808-816 ausführlicher beschrieben), wenn die Objekt an der Startposition 114 ankommen. In einigen Ausführungsformen kann das Robotersystem 100 bestimmen, dass die angemessene Reaktion auf den Platzierungszugangsfehler darin besteht, einen neuen Packplan zu erzeugen, um möglichst viel dessen zu nutzen, was von der Aufgabenposition 116 für das Robotersystem 100 zugänglich bleibt. Zum Beispiel kann das Robotersystem 100 den Packvorgang unterbrechen (Block 801) und Paketgruppierungen für den neuen Packplan durch Gruppieren von verfügbaren Paketen (z. B. des Zielobjekts 112, der Pakete, die noch an der Startposition 114 ankommen müssen, jedoch gemäß dem früheren Packplan ankommen sollen, und/oder der bereits platzierten Objekte 508) gemäß Gruppierungsbedingungen bestimmen. Das Robotersystem 100 kann dann (i) 2D-Pläne durch Identifizieren von eindeutigen Elementen und iteratives Ableiten von Platzierungspositionen erzeugen und (ii) den neuen Packplan durch Umwandeln der 2D-Pläne in 3D-Zustände, Berechnen von 3D-Bewertungen und Auswählen von Platzierungskombinationen gemäß den Platzierungsbewertungen erzeugen. In diesen und weiteren Ausführungsformen kann das Robotersystem 100 (i) das Zielobjekt 112 und/oder ein oder mehrere andere Pakete, die an der Startposition 114 ankommen, zwischenlagern, um die durch den früheren Packplan definierte Packsequenz anzupassen, und/oder (ii) ein oder mehrere bereits platzierte Objekte 508 neu positionieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 bestimmen, dass eine angemessene Reaktion auf einen identifizierten Fehler und/oder eine mögliche Kollision darin besteht, die Platzierungspositionen 350 für das Zielobjekt 112 und die anschließenden Objekte dynamisch abzuleiten. Zum Beispiel kann das Robotersystem 100 die Platzierungsposition 350 dynamisch ableiten, wenn die identifizierten Fehler und/oder möglichen Kollisionen vordefinierte Bedingungen oder Schwellenwerte einhalten oder überschreiten. Als ein spezifisches Beispiel kann das Robotersystem 100 die Platzierungspositionen als Reaktion auf einen unerwarteten Platzierungsfehler (z. B., wenn ein oder mehrere bereits platzierte Objekte 508 bewegt, verschoben wurden usw.) dynamisch ableiten, wie vorstehend beschrieben.
  • Um eine Platzierungsposition 350 für das Zielobjekt 112 dynamisch abzuleiten, kann das Robotersystem 100 bei Block 808 eine Reihe von möglichen Stellen (z. B. die mögliche Stelle 360 aus 3B) für das Platzieren des Zielobjekts 112 an/über der Aufgabenposition 116 ableiten. Das Robotersystem 100 kann die möglichen Stellen 360 basierend auf dem Überlappen des diskretisierten Objektmodells 302 des Zielobjekts 112 über dem diskretisierten Plattformmodell 304 des aktuellen Zustands der Aufgabenposition 116 an entsprechenden Position in/über der Aufgabenposition 116 ableiten. Die möglichen Stellen 360 können Positionen der diskretisierten Objektmodelle 302 entlang einer horizontalen Ebene und über/in dem diskretisierten Plattformmodell 304 entsprechen. Das Robotersystem 100 kann die möglichen Stellen 360, welche die bereits platzierten Objekte 508 überlappen und/oder benachbart dazu sind, ableiten.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Positionen des diskretisierten Objektmodells 302 basierend auf dem Bestimmen einer anfänglichen Platzierungsposition (z. B. einer vorbestimmten Position für einen Teil der möglichen Stelle 360, wie etwa eine festgelegte Ecke des Platzierungsbereichs) iterativ bestimmen. Das Robotersystem 100 kann anschließende mögliche Stellen 360 gemäß einer vorbestimmten Richtung für das Ableiten der nächsten möglichen Stellen 360, einer Trennungsanforderung zwischen den möglichen Stellen 360 über Iterationen hinweg, einer Regel/Bedingung, welche die Platzierung regelt, einer Grenze der Gesamtanzahl der möglichen Stellen 360, einem oder mehreren Mustern davon oder einer Kombination davon bestimmen. Des Weiteren kann das Robotersystem 100 eine Reihe von Präferenzen und/oder Regeln für das Bestimmen der möglichen Stellen 360 relativ zu den bereits platzierten Objekten 508 beinhalten. Zum Beispiel kann das Robotersystem 100 mit Präferenzen (z. B. für das frühere Durchführen der Funktion als die meisten anderen Arten/Kategorien der möglichen Stellen 360) bezüglich des Bestimmens der möglichen Stellen 360 konfiguriert sein, an denen sich das diskretisierte Objektmodell 302 benachbart zu einer oder mehreren Kanten der bereits platzierten Objekte 508 und/oder einer Umfangsgrenze/-kante des Platzierungsbereichs 340 oder daran angrenzend befindet. Außerdem kann das Robotersystem 100 mit Präferenzen bezüglich des Bestimmens der möglichen Stellen 360 konfiguriert sein, an denen sich das diskretisierte Objektmodell 302 über den bereits platzierten Objekten 508 befindet und in eines der Objekte passt und/oder eine oder mehrere Kanten der Objekte überlappt.
  • Das Robotersystem 100 kann die möglichen Stellen 360 gemäß vorbestimmten Regeln, Mustern, Grenzen und/oder Sequenzen für das Platzieren des diskretisierten Objektmodells 302 ableiten. Zum Beispiel kann das Robotersystem 100 die möglichen Stellen 360 basierend auf einer Präferenz für die Objektkanten ableiten, wie etwa benachbart zu und/oder innerhalb einer vorbestimmten Abstandsgrenze von den äußersten Kanten der bereits platzierten Objekte 508. Außerdem kann das Robotersystem 100 die möglichen Stellen 360 basierend auf einer Präferenz für äußere Kanten/Ränder für den Platzierungsbereich 340 ableiten, wie etwa, an denen sich das diskretisierte Objektmodell 302 am nächsten zu den Rändern/Kanten der Palette, des Korbs usw. befindet oder an diese angrenzt. Außerdem kann das Robotersystem 100 die möglichen Stellen 360, welche die bereits platzierten Objekte 508 überlappen, ableiten.
  • Bei Block 810 kann das Robotersystem 100 Echtzeit-Bedingungen des Platzierungsbereichs 340 aus 3B bestimmen/aktualisieren, wie etwa für 3D-Stapelbeurteilungen. Zum Beispiel kann das Robotersystem 100 die Zielsensordaten verwenden, um die Höhenmaße 402 aus 4 zu bestimmen. Das Robotersystem 100 kann die Tiefenmaße, die von den Zielsensordaten abgeleitet wurden, und bekannte Höhen der Aufgabenposition 116 und/oder den Sensor verwenden, um Höhen der oberen Fläche(n) an der Aufgabenposition 116 abzuleiten. Das Robotersystem 100 kann die berechneten Höhen den Einheitspixeln 310 in dem diskretisierten Plattformmodell 304 zuordnen und die maximale berechnete Höhe innerhalb des Einheitspixels 310 als das entsprechende Höhenmaß 402 zuweisen. In einigen Ausführungsformen kann das Robotersystem 100 die Höhenmaße 402 für die Einheitspixel 310 bestimmen, die von dem diskretisierten Objektmodell 302 an den möglichen Stellen 360 überlappt werden.
  • Bei Block 812 kann das Robotersystem 100 die möglichen Stellen 360 beurteilen. In einigen Ausführungsformen kann das Robotersystem 100 die möglichen Stellen 360 gemäß Echtzeit-Bedingungen, Verarbeitungsergebnissen, vorbestimmten Regeln und/oder Parametern oder einer Kombination davon beurteilen. Zum Beispiel kann das Robotersystem 100 die möglichen Stellen 360 basierend auf dem Berechnen von entsprechenden Platzierungsbewertungen, Validieren/Qualifizieren der möglichen Stellen 360 oder einer Kombination davon beurteilen.
  • Bei Block 842 kann das Robotersystem 100 die Platzierungsbewertung für jede der möglichen Stellen 360 berechnen. Das Robotersystem 100 kann die Platzierungsbewertung gemäß einer oder mehreren der Platzierungsbedingungen berechnen. Zum Beispiel kann das Robotersystem 100 Platzierungspräferenzen (z. B. über Multiplikatorgewichte) und/oder Gleichungen verwenden, um Präferenzen für Folgendes zu beschreiben: Trennungsabstände zwischen Paketen, Differenzen bei Paketabmessungen/Zerbrechlichkeitseinstufungen/Paketgewichten für horizontal benachbarte Pakete, die Kollisionswahrscheinlichkeiten (z. B. basierend auf den Annäherungspfaden 510 aus 5 oder einer Charakteristik davon und/oder der horizontalen Trennung 616 aus 6), durchgehende/benachbarte Flächen mit derselben Höhe, ein statistisches Ergebnis davon (z. B. durchschnittliche, maximale, minimale, Standardabweichung usw.) oder eine Kombination davon. Zu anderen Beispielen für die Platzierungspräferenzen können eine resultierende Höhe, ein Näherungsmaß, ein Kantenplatzierungsstatus, ein maximal unterstützbares Gewicht, die Objektart, ein unterstütztes Gewichtsverhältnis oder eine Kombination davon gehören. Dementsprechend kann das Robotersystem 100 in einigen Ausführungsformen die Verarbeitungsgewichte/Multiplikatoren beinhalten, die Präferenzen für untere maximale Höhen für das Platzieren des Zielobjekts 112 in der Nähe eines Randes eines bereits platzierten Objekts oder einer Kante der Platzierungsplattform, für das Minimieren einer Differenz zwischen den Höhen und/oder maximal unterstützbaren Gewichten benachbarter Objekte, für das Reduzieren eines Verhältnisses zwischen dem unterstützten Gewicht und dem maximal unterstützbaren Gewicht für Objekte, die von dem Zielobjekt 112 überlappt werden, für das Zuordnen der Objektarten für benachbarte Objekte oder eine Kombination davon darstellen. Jede Platzierungsposition kann gemäß den Präferenzfaktoren und/oder den Gleichungen bewertet werden, die von einem Systemhersteller, einem Auftrag und/oder einem Systembetreiber vordefiniert werden können.
  • In einigen Ausführungsformen kann das Robotersystem 100 beispielsweise die Platzierungsbewertungen basierend auf Stützmaßen für die möglichen Stellen 360 berechnen. Das Robotersystem 100 kann den Betrag an Stützung (z. B. beim Stapeln von Objekten) für eine oder mehrere der möglichen Stellen 360 zumindest teilweise basierend auf den Höhenmaßen 402 berechnen. Als ein veranschaulichendes Beispiel kann das Robotersystem 100 den Betrag an Stützung basierend auf dem Identifizieren der maximalen Höhe 420 aus 4B für jede der möglichen Stellen 360 berechnen. Basierend auf der maximalen Höhe 420 und dem Höhendifferenzschwellenwert 416 aus 4B kann das Robotersystem 100 die untere Höhengrenze 422 aus 4B für jede der möglichen Stellen 360 berechnen. Das Robotersystem 100 kann die Höhenmaße 402 der möglichen Stellen 360 mit den entsprechenden unteren Höhengrenzen 422 vergleichen, um die stützenden Positionen 442 aus 4B für jede der möglichen Stellen 360 zu identifizieren. Das Robotersystem 100 kann die Platzierungsbewertung für jede der möglichen Stellen 360 basierend auf der geeigneten Anzahl 424 aus 4B der entsprechenden stützenden Positionen 442 berechnen.
  • In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die Platzierungsbewertungen basierend auf dem Ableiten der Stützbereichsumrisse 426 aus 4B für die möglichen Stellen 360 berechnen. Wie vorstehend beschrieben, kann das Robotersystem 100 den Satz der Stützbereichsumrisse 426 für jede der möglichen Stellen 360 basierend auf dem Verlängern von äußeren Kanten und/oder Verbinden von Ecken von äußersten/umrandenden Teilen der stützenden Positionen 442 an der entsprechenden Stelle ableiten. Basierend auf den stützenden Positionen 442 kann das Robotersystem 100 die Stützbereichsgröße 428 aus 4B und/oder das Stützverhältnis 430 aus 4B zum Berechnen der Platzierungsbewertung bestimmen. Außerdem kann das Robotersystem 100 einen geringsten Trennungsabstand zwischen der CoM-Position 432 und den Stützbereichsumrissen 426 berechnen. Das Robotersystem 100 kann die Stützbereichsgröße 428, das Stützverhältnis 430, den geringsten Trennungsabstand, entsprechende Präferenzgewichte oder eine Kombination davon verwenden, um die Platzierungsbewertung für die entsprechende mögliche Stelle zu berechnen.
  • In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die Platzierungsbewertungen basierend auf dem Ableiten der Annäherungspfade 510 für die möglichen Stellen 360 berechnen, wie vorstehend beschrieben. Das Robotersystem 100 kann die Platzierungsbewertung für jede der möglichen Stellen 360 gemäß dem finalen Segment 606 aus 6 (z. B. einer Länge davon), einer Menge/Länge von einem oder mehreren Pfadsegmenten 604 aus 6 oder einer Kombination davon berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsbewertungen basierend auf der horizontalen Trennung 616 aus 6 für die möglichen Stellen 360 berechnen.
  • In einigen Ausführungsformen, wie bei Block 844 veranschaulicht, kann das Robotersystem 100 die möglichen Stellen 360 qualifizieren. Das Robotersystem 100 kann die möglichen Stellen 360 basierend auf dem dynamischen Ableiten eines validierten Satzes der möglichen Stellen 360 gemäß einer oder mehreren Platzierungseinschränkungen qualifizieren. Beim Ableiten des validierten Satzes kann das Robotersystem 100 Teile der möglichen Stellen 360, die eine oder mehrere der Platzierungseinschränkungen missachten oder nicht einhalten, die zumindest teilweise mit den Höhenmaßen 402 assoziiert sind, beseitigen oder ausschließen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 den validierten Satz zuerst ableiten und dann die Platzierungsbewertungen für den validierten Satz berechnen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 den validierten Satz gleichzeitig mit dem Berechnen der Platzierungsbewertungen ableiten.
  • In einer oder mehreren Ausführungsformen können die Platzierungseinschränkungen mit dem Vergleichen der geeigneten Anzahl 424, des Satzes von Stützbereichsumrissen 426, der Stützbereichsgröße 428, des Stützverhältnisses 430, der CoM-Position 432, der Annäherungspfade 510, der horizontalen Trennung 616 oder einer Kombination davon mit einem Schwellenwert (z. B. dem Stützschwellenwert 418 aus 4B) oder einer Anforderung assoziiert sein. Zum Beispiel kann das Robotersystem 100 den validierten Satz ableiten, sodass er Stellen mit der geeigneten Anzahl 424, der Stützbereichsgröße 428 und/oder dem Stützverhältnis 430, die einen entsprechenden Schwellenwert einhalten/überschreiten, beinhaltet. Außerdem kann das Robotersystem 100 den validierten Satz ableiten, sodass er die Stellen beinhaltet, welche die CoM-Position 432 in/umgeben von den Stützbereichsumrissen 426 beinhalten und/oder einen minimalen Trennungsabstand von den Stützbereichsumrissen 426 einhält. Außerdem kann das Robotersystem 100 den validierten Satz ableiten, sodass er die Stellen beinhaltet, welche den Annäherungspfad 510 (z. B. das finale Segment 606 darin) aufweisen, der einen maximalen Längenschwellenwert einhält, und/oder die horizontale Trennung 616 aufweisen, welche einen minimalen Schwellenwert einhält.
  • Bei Block 814 kann das Robotersystem 100 die Platzierungsposition 350 für das Platzieren des Zielobjekts 112 über/an der Aufgabenposition 116 dynamisch ableiten. Das Robotersystem 100 kann die Platzierungsposition 350 basierend auf dem Auswählen von einer der Stellen in dem validierten Satz oder der möglichen Stellen 360 gemäß den Platzierungsbewertungen dynamisch ableiten. In einigen Ausführungsformen kann das Robotersystem 100 die möglichen Stellen 360 unter Verwendung einer Bergstruktur nachverfolgen. Dementsprechend kann das Robotersystem 100 Stellen aus den Bergstrukturen entfernen, wenn die Stellen Einschränkungen missachten, wie vorstehend beschrieben. Ferner kann das Robotersystem 100 die nachverfolgten Stellen gemäß den entsprechenden Platzierungsbewertungen sequenzieren oder einstufen. In einigen Ausführungsformen kann das Robotersystem 100 die nachverfolgten Stellen kontinuierlich sequenzieren, wenn die Platzierungsbewertungen oder iterativen Aktualisierungen der Bewertungen berechnet werden. Infolgedessen kann das Robotersystem 100 die Stelle an der festgelegten Position (z. B. im ersten Fenster) in der Bergstruktur als die Platzierungsposition 350 auswählen, wenn die Bewertungsberechnungen abgeschlossen sind.
  • Bei Block 816 kann das Robotersystem 100 Informationen für das Platzieren des Zielobjekts 112 an der abgeleiteten Platzierungsposition 350 kommunizieren. Beim Kommunizieren der Informationen für das Platzieren des Zielobjekts 112 an der Platzierungsposition 350 können eine oder mehrere Komponenten/Vorrichtungen des Robotersystems 100 mit anderen Komponenten/Vorrichtungen kommunizieren und/oder diese betreiben. Zum Beispiel können einer oder mehrere der Prozessoren 202 und/oder eine eigenständige Steuerung (wie z. B. eine Steuervorrichtung im Lager/Versandzentrum) Informationen, wie etwa die Platzierungsposition 350, einen entsprechenden Bewegungsplan, einen Satz von Befehlen und/oder Einstellungen zum Betreiben der Betätigungsvorrichtungen 212 aus 2 und/oder des Transportmotors 214 aus 2 oder eine Kombination davon, an die anderen Komponenten/Vorrichtungen senden. Die anderen Komponenten/Vorrichtungen, wie etwa andere Teile der Prozessoren 202 und/oder der Roboterarm 502 aus 5, die Betätigungsvorrichtungen 212, der Transportmotor 214 und/oder andere externe Vorrichtungen/Systeme, können die Informationen empfangen und entsprechende Funktionen ausführen, um das Zielobjekt 112 zu steuern (z. B. zu greifen und aufzunehmen, durch den Raum zu übertragen und/oder neu auszurichten, am Ziel zu platzieren und/oder freizugeben) und es an der Platzierungsposition zu platzieren.
  • Bei Block 818 kann das Robotersystem 100 die Platzierung des Zielobjekts 112 an der abgeleiteten Platzierungsposition verifizieren. Zum Beispiel kann das Robotersystem 100 bestimmen, ob das Robotersystem 100 als Reaktion auf die kommunizierten Informationen bei Block 816 das Zielobjekt 112 an der abgeleiteten Platzierungsposition platziert hat, und sollte dies der Fall sein, kann das Robotersystem 100 die Genauigkeit der Platzierung des Zielobjekts 112 im Vergleich zu der abgeleiteten Platzierungsposition durch Analysieren der Zielsensordaten bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 Echtzeit-Packbedingungen nach dem Platzieren des Zielobjekts 112 aktualisieren oder erneut identifizieren. Anders formuliert, kann der Steuerablauf nach Block 818 zu Block 801 und/oder 802 übergehen. Dementsprechend kann das Robotersystem 100 das nächste eingehende Objekt als das Zielobjekt 112 aktualisieren/identifizieren. Das Robotersystem 100 kann außerdem Informationen bezüglich des Platzierungsbereichs 340 und/oder der bereits platzierten Objekte 508 darauf aktualisieren, sodass sie das zuletzt platzierte Objekt beinhalten. In anderen Ausführungsformen kann das Robotersystem 100 den Packplan neuberechnen oder anpassen und/oder gemäß dem Packplan fortfahren, nachdem das Zielobjekt 112 (Block 801) platziert wurde.
  • Die Diskretisierung der Aufgaben und die 2D-/3D-Schichtung, wie vorstehend beschrieben, stellen eine verbesserte Effizienz, Geschwindigkeit und Genauigkeit für das Packen von Objekten bereit. Dementsprechend können die Reduzierung der Bedienereingaben und die Erhöhung der Genauigkeit ferner menschliche Arbeit für den automatisierten Packprozess verringern. In einigen Umgebungen kann das Robotersystem 100, wie vorstehend beschrieben, die Notwendigkeit für Sequenzierungspuffer, die etwa oder mehr als 1 Million US-Dollar kosten können, beseitigen.
  • Des Weiteren stellt die dynamische Berechnung der Platzierungsposition 350 gemäß Echtzeit-Bedingungen (wie z. B. durch die Sensordaten und andere Status/Daten dargestellt) eine Verringerung von Betriebsfehlern bereit. Wie vorstehend beschrieben, kann das Robotersystem Fehler und/oder mögliche Kollisionen berücksichtigen und beheben, die durch unerwartete Bedingungen/Ereignisse verursacht werden, ohne dass es eines menschlichen Eingriffs bedarf. Außerdem können die vorstehend beschriebenen Ausführungsformen die Objekte in 3D stapeln, ohne dass es einen bereits bestehenden Packplan gibt oder wenn die unerwarteten Bedingungen/Ereignisse den gesamten oder einen Teil des bereits bestehenden Packplans beeinträchtigen, wie etwa durch das dynamische Ableiten der Platzierungspositionen 350, wenn die Objekte an der Startposition 114 ankommen. Im Vergleich zu traditionellen Systemen, die auf dynamisches 2D-Packen begrenzt sind (d. h. das Platzieren von Objekten direkt auf der Plattform als eine Schicht), kann die Berücksichtigung der Höhe es den vorstehend beschriebenen Ausführungsformen ermöglichen, die Objekte übereinander zu stapeln und die Packdichte zu erhöhen. Auf diese Weise ist das Robotersystem 100 dazu in der Lage, Fehler und/oder mögliche Kollisionen zu identifizieren und als Reaktion darauf eine angemessene Handlung zu bestimmen, sei es das Fortsetzen der Umsetzung eines früheren Packplans, das Wiederherstellen eines Teils des früheren Packplans, das Erzeugen eines neuen Packplans und/oder das dynamische Ableiten einer Platzierungsposition für das Zielobjekt 112 und ein oder mehrere Pakete, die anschließend an der Startposition 114 ankommen sollen.
  • Schlussfolgerung
  • Die vorstehende detaillierte Beschreibung von Beispielen für die offenbarte Technologie erhebt keinerlei Anspruch auf Vollständigkeit und soll die offenbarte Technologie nicht auf die vorstehend erörterte genaue Form begrenzen. Wenngleich konkrete Beispiele für die offenbarte Technologie vorstehend zum Zwecke der Veranschaulichung beschrieben sind, sind verschiedene äquivalente Modifikationen im Geltungsbereich der offenbarten Technologie möglich, wie ein Fachmann auf dem entsprechenden Gebiet erkennt. Beispielsweise können, wenngleich Prozesse oder Blöcke in einer bestimmten Reihenfolge dargestellt sind, alternative Umsetzungen Routinen durchführen, die Schritte aufweisen, oder Systeme verwenden, die Blöcke aufweisen, die durch eine andere Reihenfolge gekennzeichnet sind, und einige Prozesse oder Blöcke können gelöscht, verschoben, hinzugefügt, unterteilt, kombiniert und/oder modifiziert sein, um alternative oder Unterkombinationen bereitzustellen. Jeder dieser Prozesse oder Blöcke kann auf eine Vielzahl von verschiedenen Arten umgesetzt sein. Zudem können, wenngleich Prozesse oder Blöcke manchmal so dargestellt sind, dass sie der Reihe nach ausgeführt werden, diese Prozesse oder Blöcke anstelle dessen parallel durchgeführt oder umgesetzt oder zu anderen Zeitpunkten durchgeführt werden. Zudem sind jedwede konkreten Ziffern, die in der vorliegenden Schrift enthalten sind, lediglich beispielhaften Charakters; alternative Umsetzungen können abweichende Werte oder Bereiche verwenden.
  • Diese und andere Änderungen können vor dem Hintergrund der vorstehenden detaillierten Beschreibung an der offenbarten Technologie vorgenommen werden. Wenngleich die detaillierte Beschreibung bestimmte Beispiele für die offenbarte Technologie beschreibt, sowie die in Betracht gezogene beste Verfahrensweise, kann die offenbarte Technologie auf vielen Wegen praktiziert werden, egal wie detailliert die vorstehende Beschreibung auch zu sein scheint. Einzelheiten des Systems können sich in der konkreten Umsetzung wesentlich unterscheiden, während diese nach wie vor durch die in der vorliegenden Schrift offenbarte Technologie eingeschlossen sind. Wie vorstehend angemerkt, sollte die zum Beschreiben von bestimmten Merkmalen oder Aspekten der offenbarten Technologie verwendete Terminologie nicht so ausgelegt werden, dass sie impliziert, dass die Terminologie in der vorliegenden Schrift dahingehend neu definiert wird, dass sie auf jedwede konkrete Eigenschaften, Merkmale oder Aspekte der offenbarten Technologie beschränkt ist, mit der diese Terminologie assoziiert ist. Dementsprechend wird die Erfindung ausschließlich durch die beigefügten Patentansprüche beschränkt. Im Allgemeinen sollten die in den nachstehenden Patentansprüchen verwendeten Begriffe nicht so ausgelegt werden, dass sie die offenbarte Technologie auf die in der Patentschrift offenbarten konkreten Beispiele beschränken, sofern der vorstehende Abschnitt Detaillierte Beschreibung derartige Begriffe nicht ausdrücklich definiert. Im vorliegenden Zusammenhang bezieht sich der Ausdruck „und/oder“, wie bei „A und/oder B“, auf A allein, B allein und sowohl A als auch B.
  • Wenngleich bestimmte Aspekte der Erfindung nachstehend in bestimmten Anspruchsformen dargestellt sind, zieht der Anmelder die verschiedenen Aspekte der Erfindung in einer beliebigen Anzahl von Anspruchsformen in Betracht. Dementsprechend behält sich der Anmelder das Recht vor, zusätzliche Patentansprüche zu verfolgen, nachdem diese Anmeldung eingereicht wurde, um derartige zusätzliche Anspruchsformen zu verfolgen, entweder in dieser Anmeldung oder in einer fortführenden Anmeldung.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • von Rosen N. Diankov und Denys Kanunikov mit dem Titel „ROBOTIC SYSTEM FOR PROCESSING PACKAGES ARRIVING OUT OF SEQUENCE“, das auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8008.US01 [0123]

Claims (20)

  1. Verfahren zum Betreiben eines Robotersystems, wobei das Verfahren Folgendes umfasst: Empfangen von Ausgangssensordaten, die ein Zielobjekt darstellen, das sich an einer Startposition befindet oder dieser nähert; Analysieren der Ausgangssensordaten, wobei das Analysieren der Ausgangssensordaten Folgendes beinhaltet: Bestimmen eines diskretisierten Objektmodells zumindest teilweise basierend auf den Ausgangssensordaten, wobei das diskretisierte Objektmodell mindestens eines von einer physikalischen Größe oder Form des Zielobjekts in zwei Dimensionen (2D) gemäß Einheitspixeln darstellt, und Vergleichen des diskretisierten Objektmodells mit mindestens einem von einem Packplan oder Masterdaten, wobei der Packplan vor dem Empfangen der Ausgangssensordaten abgeleitet wird, wobei der Packplan Platzierungspositionen und Stellungen von Objekten an einer Aufgabenposition angibt und wobei ferner die Masterdaten Beschreibungen von möglichen Objekten, die vorher im Robotersystem registriert wurden, beinhalten; Empfangen von Zielsensordaten, die einen Platzierungsbereich darstellen, der mit mindestens einem von der Aufgabenposition oder einem oder mehreren Objekten, die bereits an der Aufgabenposition platziert wurden, assoziiert ist; Analysieren der Zielsensordaten, wobei das Analysieren der Zielsensordaten Folgendes beinhaltet: Bestimmen eines diskretisierten Plattformmodells zumindest teilweise basierend auf den Zielsensordaten, wobei das diskretisierte Plattformmodell mindestens eines von einer physikalischen Größe oder Form der Aufgabenposition in 2D gemäß weiteren Einheitspixeln darstellt, Bestimmen von Höhenmaßen zumindest teilweise basierend auf den Zielsensordaten, wobei die Höhenmaße maximale Höhen in einem oder mehreren Abschnitten des Platzierungsbereichs, die einem oder mehreren Sätzen der weiteren Einheitspixel entsprechen, darstellen, und Vergleichen von mindestens einem von dem diskretisierten Plattformmodell oder den Höhenmaßen mit mindestens einem von einem erwarteten Plattformmodell oder erwarteten Höhenmaßen des Platzierungsbereichs; Bestimmen von einem oder mehreren Fehlern, wobei das Bestimmen des einen oder der mehreren Fehler mindestens eines von Folgendem beinhaltet: (i) Bestimmen von mindestens einem Ausgangszuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) dem diskretisierten Objektmodell und (b) mindestens einem von dem Packplan oder den Masterdaten; oder (ii) Bestimmen von mindestens einem Zielzuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) mindestens einem von dem diskretisierten Plattformmodell oder den Höhenmaßen und (b) mindestens einem von dem erwarteten Plattformmodell oder den erwarteten Höhenmaßen; und als Reaktion auf das Bestimmen des einen oder der mehreren Fehler, Anpassen einer Platzierungsposition für das Zielobjekt und/oder ein oder mehrere andere Objekte zumindest teilweise basierend auf dem einen oder den mehreren bestimmten Fehlern.
  2. Verfahren nach Anspruch 1, wobei: das Analysieren der Ausgangssensordaten das Vergleichen des diskretisierten Objektmodells mit den Masterdaten beinhaltet und wobei das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen dem diskretisierten Objektmodell und den Masterdaten beinhaltet, und der eine oder die mehreren Fehler einen Masterdatenfehler beinhalten, der darstellt, dass die Masterdaten falsch sind.
  3. Verfahren nach Anspruch 1, wobei: der Packplan eine Sequenz festlegt, in der Objekte, einschließlich des Zielobjekts, an der Startposition anzukommen sind; das Analysieren der Ausgangssensordaten das Vergleichen des diskretisierten Objektmodells mit dem Packplan durch Vergleichen des diskretisierten Objektmodells mit einem von der Sequenz festgelegten diskretisierten Objektmodell beinhaltet; das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen dem diskretisierten Objektmodell und dem von der Sequenz festgelegten diskretisierten Objektmodell beinhaltet; und der eine oder die mehreren Fehler einen Ankunftssequenzfehler beinhalten, der darstellt, dass sich das an der Startposition angekommene Zielobjekt außerhalb der von dem Packplan festgelegten Sequenz befindet.
  4. Verfahren nach Anspruch 1, wobei: das Analysieren der Zielsensordaten das Vergleichen des diskretisierten Plattformmodells mit dem erwarteten Plattformmodell beinhaltet, das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen dem diskretisierten Plattformmodell und dem erwarteten Plattformmodell beinhaltet, und der eine oder die mehreren Fehler einen Platzierungszugangsfehler, einen unerwarteten Platzierungsfehler und/oder einen Platzierungsbereichsfehler beinhalten, die darstellen, dass sich der mit der Aufgabenposition assoziierte Platzierungsbereich von einem mit der Aufgabenposition assoziierten erwarteten Platzierungsbereich unterscheidet.
  5. Verfahren nach Anspruch 4, wobei: das Bestimmen des einen oder der mehreren Fehler ferner das Identifizieren von Echtzeit-Packbedingungen beinhaltet, die ein Kollisionsrisiko darstellen, das Identifizieren der Echtzeit-Packbedingungen das Bestimmen eines Platzierungszugangsfehlers beinhaltet, der darstellt, dass eine Wand eines Containers, Korbs oder einer Wagenbahn an der Aufgabenposition nicht vollständig geöffnet ist, sodass weniger als der gesamte mit der Aufgabenposition assoziierte Platzierungsbereich für das Robotersystem zugänglich ist, und das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und dem Container, Korb oder der Wagenbahn ist.
  6. Verfahren nach Anspruch 1, wobei: das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen (a) dem diskretisierten Plattformmodell und/oder den Höhenmaßen und (b) dem erwarteten Plattformmodell und/oder den erwarteten Höhenmaßen beinhaltet, das Bestimmen des einen oder der mehreren Fehler ferner das Identifizieren von Echtzeit-Packbedingungen beinhaltet, die ein Kollisionsrisiko darstellen, das Identifizieren der Echtzeit-Packbedingungen das Bestimmen eines unerwarteten Platzierungsfehlers beinhaltet, der darstellt, dass ein Objekt der bereits platzierten Objekte an der Aufgabenposition verlagert wurde, heruntergefallen ist, verschoben wurde oder eine Kombination davon, und das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und dem Objekt der bereits an der Aufgabenposition platzierten Objekte ist.
  7. Verfahren nach Anspruch 1, wobei: das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen (a) dem diskretisierten Plattformmodell und/oder den Höhenmaßen und (b) dem erwarteten Plattformmodell und/oder den erwarteten Höhenmaßen beinhaltet, das Bestimmen des einen oder der mehreren Fehler ferner das Identifizieren von Echtzeit-Packbedingungen beinhaltet, die ein Kollisionsrisiko darstellen, das Identifizieren der Echtzeit-Packbedingungen das Bestimmen eines Platzierungsbereichsfehlers beinhaltet, der darstellt, dass ein Objekt der bereits platzierten Objekte an der Aufgabenposition falsch platziert wurde, und das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und dem Objekt der bereits an der Aufgabenposition platzierten Objekte ist.
  8. Verfahren nach Anspruch 1, wobei: das erwartete Plattformmodell und/oder die erwarteten Höhenmaße des Platzierungsbereichs durch den Packplan festgelegt sind, das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen (a) dem diskretisierten Plattformmodell und/oder den Höhenmaßen und (b) dem erwarteten Plattformmodell und/oder den erwarteten Höhenmaßen beinhaltet, das Bestimmen des einen oder der mehreren Fehler ferner das Identifizieren von Echtzeit-Packbedingungen beinhaltet, die ein Kollisionsrisiko darstellen, das Identifizieren der Echtzeit-Packbedingungen das Bestimmen eines Platzierungsbereichsfehlers beinhaltet, der darstellt, dass ein Objekt, das nicht im Packplan enthalten ist, an der Aufgabenposition positioniert ist, und das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und dem Objekt, das nicht im Packplan enthalten ist, ist.
  9. Verfahren nach Anspruch 1, wobei: das Bestimmen des einen oder der mehreren Fehler ferner das Identifizieren von Echtzeit-Packbedingungen beinhaltet, die ein Kollisionsrisiko darstellen, und das Identifizieren der Echtzeit-Packbedingungen das Bestimmen von Fehlern in der folgenden Reihenfolge beinhaltet: das Bestimmen eines Platzierungszugangsfehlers, der darstellt, dass eine Wand eines Containers, Korbs oder einer Wagenbahn an der Aufgabenposition nicht vollständig geöffnet ist, sodass weniger als der gesamte mit der Aufgabenposition assoziierte Platzierungsbereich für das Robotersystem zugänglich ist und das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und dem Container, Korb oder der Wagenbahn an der Aufgabenposition ist; Bestimmen eines unerwarteten Platzierungsfehlers, der darstellt, dass ein erstes Objekt der bereits an der Aufgabenposition platzierten Objekte verlagert wurde, heruntergefallen ist, verschoben wurde oder eine Kombination davon, sodass das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und dem ersten Objekt der bereits an der Aufgabenposition platzierten Objekte ist; Bestimmen eines Platzierungsbereichsfehlers, der darstellt, dass ein zweites Objekt der bereits an der Aufgabenposition platzierten Objekte falsch platziert wurde, sodass das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und dem zweiten Objekt der bereits an der Aufgabenposition platzierten Objekte ist; und Bestimmen eines Platzierungsbereichsfehlers, der einen Unterschied zwischen den Höhenmaßen und den erwarteten Höhenmaßen darstellt, sodass das Kollisionsrisiko ein Kollisionsrisiko zwischen dem Robotersystem und Objekten, die an dem Unterschied zwischen den Höhenmaßen und den erwarteten Höhenmaßen beteiligt sind, ist, wobei die Objekte, die an dem Unterschied beteiligt sind, (a) ein drittes Objekt der bereits platzierten Objekte, (b) den Container, den Korb oder die Wagenbahn und/oder (c) ein Objekt, das nicht im Packplan enthalten, jedoch an der Aufgabenposition vorhanden ist, beinhalten.
  10. Verfahren nach Anspruch 1, wobei: das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen (a) dem diskretisierten Plattformmodell und/oder den Höhenmaßen und (b) dem erwarteten Plattformmodell und/oder den erwarteten Höhenmaßen beinhaltet, und der eine oder die mehreren Fehler einen Platzierungsbereichsfehler beinhalten, der darstellt, dass ein Objekt der bereits an der Aufgabenposition platzierten Objekte an der Aufgabenposition fehlt.
  11. Verfahren nach Anspruch 10, wobei der eine oder die mehreren Fehler ferner einen Transport- oder Steuerungsfehler beinhalten, der darstellt, dass das Objekt der bereits platzierten Objekte fallengelassen wurde, während das Objekt von der Ausgangsposition zur Aufgabenposition transportiert wurde.
  12. Verfahren nach Anspruch 1, wobei: das Bestimmen des einen oder der mehreren Fehler das Identifizieren von mindestens einem Unterschied zwischen (a) dem diskretisierten Plattformmodell und/oder den Höhenmaßen und (b) dem erwarteten Plattformmodell und/oder den erwarteten Höhenmaßen beinhaltet, und der eine oder die mehreren Fehler einen Kollisionsfehler beinhalten, der darstellt, dass es zu einer Kollision zwischen mindestens zweien von einer Robotereinheit des Robotersystems, dem Zielobjekt, den bereits platzierten Objekten, einem Container an der Aufgabenposition oder einem Objekt, das nicht im Packplan enthalten, jedoch an der Aufgabenposition vorhanden ist, gekommen ist.
  13. Verfahren nach Anspruch 1, wobei das Verfahren nach Anspruch 1 vor dem Platzieren des Zielobjekts an der im Packplan festgelegten Platzierungsposition für das Zielobjekt durchgeführt wird.
  14. Verfahren nach Anspruch 1, ferner umfassend: als Reaktion auf das Bestimmen des einen oder der mehreren Fehler Ableiten von einer oder mehreren möglichen Stellen basierend auf dem Überlappen des diskretisierten Objektmodells über dem diskretisierten Plattformmodell an entsprechenden Positionen; dynamisches Ableiten eines validierten Satzes der möglichen Stellen gemäß einer oder mehreren Platzierungseinschränkungen, die mit den Höhenmaßen assoziiert sind; Berechnen von Platzierungsbewertungen für Stellen im validierten Satz, wobei die Platzierungsbewertungen gemäß einer oder mehreren Platzierungspräferenzen berechnet werden; und dynamisches Ableiten einer Platzierungsposition basierend auf dem Auswählen von einer der Stellen im validierten Satz gemäß den Platzierungsbewertungen, wobei die Platzierungsposition zur Platzierung des Zielobjekts über der Aufgabenposition dient.
  15. Verfahren nach Anspruch 14, wobei das Ableiten des validierten Satzes Folgendes beinhaltet: Ableiten von Annäherungspfaden für das Platzieren des Zielobjekts an den möglichen Stellen; und Ableiten des validierten Satzes basierend auf den Annäherungspfaden.
  16. Verfahren nach Anspruch 14, wobei: das Anpassen der Platzierungsposition für das Zielobjekt das Erzeugen von Informationen für das Platzieren des Zielobjekts an der Platzierungsposition über dem Platzierungsbereich beinhaltet und das Verfahren ferner das Kommunizieren der erzeugten Informationen für das Platzieren des Zielobjekts an der Platzierungsposition über dem Platzierungsbereich umfasst.
  17. Verfahren nach Anspruch 16, ferner umfassend: das Empfangen von aktualisierten Ziel-/Ausgangsdaten; und zumindest teilweise basierend auf den aktualisierten Ziel-/Ausgangsdaten das Verifizieren der Platzierungsgenauigkeit des Zielobjekts an der Platzierungsposition.
  18. Verfahren nach Anspruch 14, ferner umfassend das Aktualisieren oder Ersetzen des Packplans zumindest teilweise basierend auf mindestens einem des einen oder der mehreren bestimmten Fehler oder der Platzierungsposition für das Platzieren des Zielobjekts.
  19. Robotersystem, umfassend: mindestens einen Sensor, der dazu konfiguriert ist, Zielsensordaten zu erfassen, die einen Platzierungsbereich, der mit der Aufgabenposition assoziiert ist, und/oder bereits an der Aufgabenposition platzierte Objekte darstellen; mindestens einen Prozessor; und mindestens eine Speichervorrichtung, die mit dem mindestens einen Prozessor verbunden ist und auf der vom Prozessor ausführbare Anweisungen für Folgendes gespeichert sind: Analysieren von Ausgangssensordaten, die ein Zielobjekt darstellen, das sich an einer Startposition befindet oder dieser nähert, wobei das Analysieren der Ausgangssensordaten Folgendes beinhaltet: Bestimmen eines diskretisierten Objektmodells zumindest teilweise basierend auf den Ausgangssensordaten, wobei das diskretisierte Objektmodell mindestens eines von einer physikalischen Größe oder Form des Zielobjekts in zwei Dimensionen (2D) gemäß Einheitspixeln darstellt, und Vergleichen des diskretisierten Objektmodells mit mindestens einem von einem Packplan oder Masterdaten, wobei der Packplan vor dem Empfangen der Ausgangssensordaten abgeleitet wird, wobei der Packplan Platzierungspositionen und Stellungen von Objekten an einer Aufgabenposition angibt und wobei ferner die Masterdaten Beschreibungen von möglichen Objekten, die vorher im Robotersystem registriert wurden, beinhalten; Analysieren von Zielsensordaten, die einen Platzierungsbereich darstellen, der mit mindestens einem von der Aufgabenposition oder einem oder mehreren Objekten, die bereits an der Aufgabenposition platziert wurden, assoziiert ist, wobei das Analysieren der Zielsensordaten Folgendes beinhaltet: Bestimmen eines diskretisierten Plattformmodells zumindest teilweise basierend auf den Zielsensordaten, wobei das diskretisierte Plattformmodell mindestens eines von einer physikalischen Größe oder Form der Aufgabenposition in 2D gemäß weiteren Einheitspixeln darstellt, Bestimmen von Höhenmaßen zumindest teilweise basierend auf den Zielsensordaten, wobei die Höhenmaße maximale Höhen in einem oder mehreren Abschnitten des Platzierungsbereichs, die einem oder mehreren Sätzen der weiteren Einheitspixel entsprechen, darstellen, und Vergleichen von mindestens einem von dem diskretisierten Plattformmodell oder den Höhenmaßen mit mindestens einem von einem erwarteten Plattformmodell oder erwarteten Höhenmaßen des Platzierungsbereichs; Bestimmen von einem oder mehreren Fehlern, wobei das Bestimmen von einem oder mehreren Fehlern mindestens eines von Folgendem beinhaltet: (i) Bestimmen von mindestens einem Ausgangszuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) dem diskretisierten Objektmodell und (b) dem Packplan und/oder den Masterdaten; oder (ii) Bestimmen von mindestens einem Zielzuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) mindestens einem von dem diskretisierten Plattformmodell oder den Höhenmaßen und (b) mindestens einem von dem erwarteten Plattformmodell oder den erwarteten Höhenmaßen; und Anpassen einer Platzierungsposition für das Zielobjekt und/oder ein oder mehrere andere Objekte zumindest teilweise basierend auf dem einen oder den mehreren bestimmten Fehlern.
  20. Materielles, nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Prozessoranweisungen, die bei Ausführung durch ein Robotersystem über einen oder mehrere Prozessoren davon das Robotersystem veranlassen, ein Verfahren durchzuführen, wobei die Anweisungen Folgendes umfassen: Anweisungen zum Empfangen von Ausgangssensordaten, die ein Zielobjekt darstellen, das sich an einer Startposition befindet oder dieser nähert; Anweisungen zum Analysieren der Ausgangssensordaten, wobei die Anweisungen zum Analysieren der Ausgangssensordaten Folgendes beinhalten: Anweisungen zum Bestimmen eines diskretisierten Objektmodells zumindest teilweise basierend auf den Ausgangssensordaten, wobei das diskretisierte Objektmodell mindestens eines von einer physikalischen Größe oder Form des Zielobjekts in zwei Dimensionen (2D) gemäß Einheitspixeln darstellt, und Anweisungen zum Vergleichen des diskretisierten Objektmodells mit mindestens einem von einem Packplan oder Masterdaten, wobei der Packplan vor dem Empfangen der Ausgangssensordaten abgeleitet wird, wobei der Packplan Platzierungspositionen und Stellungen von Objekten an einer Aufgabenposition angibt und wobei ferner die Masterdaten Beschreibungen von möglichen Objekten, die vorher im Robotersystem registriert wurden, beinhalten; Anweisungen zum Empfangen von Zielsensordaten, die einen Platzierungsbereich darstellen, der mit mindestens einem von der Aufgabenposition oder einem oder mehreren Objekten, die bereits an der Aufgabenposition platziert wurden, assoziiert ist; Anweisungen zum Analysieren der Zielsensordaten, wobei die Anweisungen zum Analysieren der Zielsensordaten Folgendes beinhalten: Anweisungen zum Bestimmen eines diskretisierten Plattformmodells zumindest teilweise basierend auf den Zielsensordaten, wobei das diskretisierte Plattformmodell mindestens eines von einer physikalischen Größe oder Form der Aufgabenposition in 2D gemäß weiteren Einheitspixeln darstellt, Anweisungen zum Bestimmen von Höhenmaßen zumindest teilweise basierend auf den Zielsensordaten, wobei die Höhenmaße maximale Höhen in einem oder mehreren Abschnitten des Platzierungsbereichs, die einem oder mehreren Sätzen der weiteren Einheitspixel entsprechen, darstellen, und Anweisungen zum Vergleichen von mindestens einem von dem diskretisierten Plattformmodell oder den Höhenmaßen mit mindestens einem von einem erwarteten Plattformmodell oder erwarteten Höhenmaßen des Platzierungsbereichs; Anweisungen zum Bestimmen von einem oder mehreren Fehlern, wobei die Anweisungen zum Bestimmen des einen oder der mehreren Fehler mindestens eines von Folgendem beinhalten: (i) Anweisungen zum Bestimmen von mindestens einem Ausgangszuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) dem diskretisierten Objektmodell und (b) mindestens einem von dem Packplan oder den Masterdaten; oder (ii) Anweisungen zum Bestimmen von mindestens einem Zielzuordnungsfehler durch Identifizieren von einem oder mehreren Unterschieden zwischen (a) mindestens einem . von dem diskretisierten Plattformmodell oder den Höhenmaßen und (b) mindestens einem von dem erwarteten Plattformmodell oder den erwarteten Höhenmaßen; und Anweisungen zum Anpassen einer Platzierungsposition für das Zielobjekt und/oder ein oder mehrere andere Objekte zumindest teilweise basierend auf dem einen oder den mehreren bestimmten Fehlern.
DE102019130043.6A 2019-05-31 2019-11-07 Robotersystem mit fehlererkennung und dynamischem packmechanismus Active DE102019130043B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/428,809 2019-05-31
US16/428,809 US10618172B1 (en) 2019-05-31 2019-05-31 Robotic system with error detection and dynamic packing mechanism

Publications (2)

Publication Number Publication Date
DE102019130043A1 true DE102019130043A1 (de) 2020-12-03
DE102019130043B4 DE102019130043B4 (de) 2020-12-17

Family

ID=70223719

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102019009189.2A Active DE102019009189B4 (de) 2019-05-31 2019-11-07 Robotersytem mit Fehlererkennung und dynamischem Packmechanismus
DE102019130043.6A Active DE102019130043B4 (de) 2019-05-31 2019-11-07 Robotersystem mit fehlererkennung und dynamischem packmechanismus

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102019009189.2A Active DE102019009189B4 (de) 2019-05-31 2019-11-07 Robotersytem mit Fehlererkennung und dynamischem Packmechanismus

Country Status (5)

Country Link
US (4) US10618172B1 (de)
JP (2) JP6729953B1 (de)
KR (2) KR102408914B1 (de)
CN (1) CN112009810A (de)
DE (2) DE102019009189B4 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9393686B1 (en) * 2013-03-15 2016-07-19 Industrial Perception, Inc. Moveable apparatuses having robotic manipulators and conveyors to facilitate object movement
EP3606312B1 (de) * 2017-03-30 2022-01-26 Fuji Corporation Befestigungssystem und meldesteuerungsvorrichtung
US11046519B2 (en) 2019-02-25 2021-06-29 Rehrig Pacific Company Delivery system
US10766141B1 (en) * 2019-05-09 2020-09-08 Mujin, Inc. Robotic system with a coordinated transfer mechanism
US10618172B1 (en) * 2019-05-31 2020-04-14 Mujin, Inc. Robotic system with error detection and dynamic packing mechanism
US11077554B2 (en) 2019-05-31 2021-08-03 Mujin, Inc. Controller and control method for robotic system
US10679379B1 (en) 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism
US10696494B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence
US10647528B1 (en) 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
US10696493B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with packing mechanism
CN111559544B (zh) * 2019-05-31 2021-05-11 牧今科技 具有错误检测和动态打包机制的机器人系统
US20220274256A1 (en) 2019-08-02 2022-09-01 Dextrous Robotics, Inc. A robotic system for picking and placing objects from and into a constrained space
US11138459B2 (en) * 2019-08-19 2021-10-05 International Business Machines Corporation Cognitive container content determination
US10906188B1 (en) 2019-10-25 2021-02-02 Dexterity, Inc. Singulation of arbitrary mixed items
US11701776B2 (en) * 2019-10-25 2023-07-18 Dexterity, Inc. Robotic kitting machine
US11305430B2 (en) * 2019-11-11 2022-04-19 Symbotic Llc Pallet building system with flexible sequencing
US11587302B2 (en) * 2019-12-17 2023-02-21 X Development Llc Shared dense network with robot task-specific heads
US11922253B2 (en) 2020-04-20 2024-03-05 Rehrig Pacific Company Camera enabled portal
EP3915738B1 (de) * 2020-05-26 2024-04-10 Tata Consultancy Services Limited Greifvorrichtung zum greifen und stapeln von mehreren gegenständen
US20220289501A1 (en) * 2021-03-15 2022-09-15 Dexterity, Inc. Singulation of arbitrary mixed items
US20220405439A1 (en) * 2021-06-16 2022-12-22 Dexterity, Inc. Physics engine based evaluation of pallet stability
US20230027984A1 (en) 2021-07-21 2023-01-26 Mujin, Inc. Robotic system with depth-based processing mechanism and methods for operating the same
US20230044858A1 (en) * 2021-08-05 2023-02-09 Zebra Technologies Corporation Container Fullness Tracking Method and Systems
US11823440B2 (en) 2021-08-19 2023-11-21 Rehrig Pacific Company Imaging system with unsupervised learning
CA3181434A1 (en) 2021-11-01 2023-05-01 Rehrig Pacific Company Delivery system
TW202340062A (zh) * 2021-12-10 2023-10-16 美商辛波提克有限責任公司 材料處理系統及其方法
US20230241777A1 (en) * 2022-01-31 2023-08-03 Dexterity, Inc. Packing and planning for tight incollapsible loads
US20240104487A1 (en) * 2022-03-18 2024-03-28 Xpo Logistics, Inc. Intelligent shipment analysis and routing
WO2023205176A1 (en) 2022-04-18 2023-10-26 Dextrous Robotics, Inc. System and/or method for grasping objects
CN115965628B (zh) * 2023-03-16 2023-06-02 湖南大学 一种工件涂装质量在线动态检测方法及检测系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10352279A1 (de) * 2003-11-08 2005-06-09 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Handhaben von Objekten
DE102009011300A1 (de) * 2009-03-02 2010-09-09 Kuka Roboter Gmbh Beladung von Lademitteln mit Paketen mittels Manipulator
DE102007001263B4 (de) * 2007-01-08 2015-07-23 Kuka Roboter Gmbh Robotersystem zur Beladung von Lademitteln mit Stückguteinheiten
US9089969B1 (en) * 2012-03-06 2015-07-28 Vecna Technologies, Inc. Loading articles on one or more support surfaces with one or more mobile devices
US9714145B1 (en) * 2012-07-20 2017-07-25 Amazon Technologies, Inc. Container stacking configurations
US10124489B2 (en) * 2016-02-26 2018-11-13 Kinema Systems Inc. Locating, separating, and picking boxes with a sensor-guided robot
US10647528B1 (en) * 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
US10679379B1 (en) * 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism
US10696493B1 (en) * 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with packing mechanism
US10696494B1 (en) * 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence

Family Cites Families (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3586176A (en) 1969-04-09 1971-06-22 George C Devol Palletizing apparatus
US4641271A (en) 1983-11-09 1987-02-03 Hitachi, Ltd. Piling planning method and piling system of cargoes by palletizing robot
DE3406858A1 (de) 1984-02-25 1985-10-03 OSTMA Maschinenbau GmbH, 5352 Zülpich Verfahren u. vorrichtung zum transportieren von mit riesel- oder fliessfaehigem gut gefuellten flachbeuteln zu einer stapelstelle, insbes. einem verpackungsbehaelter
US4692876A (en) 1984-10-12 1987-09-08 Hitachi, Ltd. Automatic freight stacking system
JPS6219963A (ja) * 1985-07-19 1987-01-28 Hitachi Ltd 貨物自動積付装置の異常予報方式
US5079699A (en) 1987-11-27 1992-01-07 Picker International, Inc. Quick three-dimensional display
US5175692A (en) 1989-04-14 1992-12-29 University Of Cincinnati Method and apparatus for palletizing randomly arriving mixed size and content parcels
JPH03162320A (ja) 1989-11-21 1991-07-12 Mitsubishi Electric Corp パレタイズ装置
JP2508410B2 (ja) 1990-11-30 1996-06-19 三菱電機株式会社 パレタイズ装置
NL9100483A (nl) 1991-03-19 1992-10-16 Nederland Ptt Werkwijze voor het bepalen van vrije deelvlakken op een gedeeltelijk met rechthoekige voorwerpen bedekt vlak alsmede een werkwijze voor het bepalen van vrije ruimten in een gedeeltelijk met voorwerpen in de vorm van een rechthoekig parallelepipedum gevulde ruimte.
US5501571A (en) 1993-01-21 1996-03-26 International Business Machines Corporation Automated palletizing system
JPH08118274A (ja) * 1994-10-26 1996-05-14 Mitsubishi Electric Corp 産業用ロボット装置
US5908283A (en) 1996-11-26 1999-06-01 United Parcel Service Of Americia, Inc. Method and apparatus for palletizing packages of random size and weight
JPH11116056A (ja) 1997-10-14 1999-04-27 Okura Yusoki Co Ltd 積付パターン生成装置および積付装置
JPH11130263A (ja) 1997-10-27 1999-05-18 Yaskawa Electric Corp 積載パターン作成方法
JP3589880B2 (ja) 1998-12-08 2004-11-17 日本政策投資銀行 全自動混載積付方法及びそのシステム
US7062093B2 (en) 2000-09-27 2006-06-13 Mvtech Software Gmbh System and method for object recognition
JP3586639B2 (ja) 2000-11-20 2004-11-10 村田機械株式会社 配送センター
JP2002154616A (ja) 2000-11-20 2002-05-28 Murata Mach Ltd デパレタイズシステム
US20030110102A1 (en) 2001-05-29 2003-06-12 Chen-Fu Chien Method for goods arrangement and its system
JP2003104563A (ja) 2001-09-28 2003-04-09 Maki Mfg Co Ltd 入荷設備
KR100484163B1 (ko) 2002-09-14 2005-04-19 삼성전자주식회사 디지털 화질 개선 방법 및 장치
JP3969334B2 (ja) 2003-04-04 2007-09-05 株式会社ダイフク 物品の積付方法
JP4359108B2 (ja) 2003-09-17 2009-11-04 村田機械株式会社 ピッキング物品積上げ指示システム
US7266422B1 (en) 2004-04-09 2007-09-04 Fanuc Robotics America, Inc. Automated palletizing cases having mixed sizes and shapes
AU2004201709A1 (en) 2004-04-23 2005-11-10 Foodmach Pty Ltd Materials handling system
US20080030497A1 (en) 2005-12-08 2008-02-07 Yangqiu Hu Three dimensional modeling of objects
JP4784823B2 (ja) * 2005-12-28 2011-10-05 株式会社Ihi 物品の荷崩れ検出方法および装置
JP4838627B2 (ja) 2006-04-25 2011-12-14 株式会社神戸製鋼所 表面性状に優れた高Si含有鋼板およびその製造方法ならびにその製造用の素材の高Si含有鋼材
US20080131255A1 (en) 2006-11-30 2008-06-05 Transbotics Corporation Palletizing systems and methods
US7773811B2 (en) 2006-12-06 2010-08-10 D & S Consultants, Inc. Method and system for searching a database of graphical data
DE102007016727B4 (de) 2007-04-07 2010-06-10 Dematic Gmbh & Co. Kg Verfahren zum mehrlagigen Bestapeln eines Trägers
JP4302160B2 (ja) 2007-09-12 2009-07-22 ファナック株式会社 ロボットによるパレタイジング作業のためのロボットプログラミング装置
CN101145051A (zh) 2007-09-20 2008-03-19 广东韶钢松山股份有限公司 板材生产线堆垛过程自动化控制技术
US8264697B2 (en) * 2007-11-27 2012-09-11 Intelligrated Headquarters, Llc Object detection device
DE102009011296B4 (de) 2009-03-02 2021-11-25 Kuka Roboter Gmbh Beladung eines Lademittels mit Paketen
DE102009011294B4 (de) 2009-03-02 2020-12-24 Kuka Roboter Gmbh Palletieren von Paketen mittels eines Manipulators
JP2011022784A (ja) 2009-07-15 2011-02-03 Sony Corp 情報処理装置、ブロック検出方法およびプログラム
JP5402697B2 (ja) 2009-10-26 2014-01-29 株式会社安川電機 ロボット装置及びワーク取り出しシステム並びにワーク取り出し方法
JP5257335B2 (ja) 2009-11-24 2013-08-07 オムロン株式会社 3次元視覚センサにおける計測有効領域の表示方法および3次元視覚センサ
US8447423B2 (en) 2009-11-30 2013-05-21 Exxonmobil Research And Engineering Company Method and apparatus for optimizing a performance index of a bulk product blending and packaging plant
WO2012029058A1 (en) * 2010-08-30 2012-03-08 Bk-Imaging Ltd. Method and system for extracting three-dimensional information
CN201804260U (zh) 2010-09-01 2011-04-20 江苏天奇物流系统工程股份有限公司 座椅托盘堆垛机构的自动控制系统
JP2012140139A (ja) 2010-12-28 2012-07-26 Asahi Glass Co Ltd ガラス板梱包容器及び該ガラス板梱包容器を用いた運搬方法
CN103492134B (zh) 2011-04-14 2016-05-04 三菱电机株式会社 机械臂控制装置
EP2769341B1 (de) * 2011-10-17 2016-06-15 Symbotic LLC Palettenbausystem
US20130343640A1 (en) * 2012-06-21 2013-12-26 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US20140180479A1 (en) 2012-12-20 2014-06-26 Wal-Mart Stores, Inc. Bagging With Robotic Arm
US9393686B1 (en) 2013-03-15 2016-07-19 Industrial Perception, Inc. Moveable apparatuses having robotic manipulators and conveyors to facilitate object movement
JP5616478B1 (ja) 2013-04-18 2014-10-29 ファナック株式会社 ワークを搬送するロボットを備えるロボットシステム
CN103350908A (zh) 2013-06-13 2013-10-16 周怡 自动包装码垛控制系统及码垛系统
US9682826B2 (en) 2013-06-23 2017-06-20 Top Tier, Llc Item infeed apparatus and method for a palletizer system
US9663309B2 (en) 2013-09-06 2017-05-30 Liquor Control Board Of Ontario (Lcbo) Automated palletization method, system and software
CN103640729B (zh) 2013-11-25 2015-08-26 天津中财型材有限责任公司 一种塑钢异型材自动包装系统
US9393693B1 (en) 2014-07-10 2016-07-19 Google Inc. Methods and systems for determining and modeling admissible gripper forces for robotic devices
US9272417B2 (en) * 2014-07-16 2016-03-01 Google Inc. Real-time determination of object metrics for trajectory planning
US9205558B1 (en) * 2014-07-16 2015-12-08 Google Inc. Multiple suction cup control
CN104154878B (zh) 2014-07-29 2016-09-28 暨南大学 一种使用单像素探测器的光学成像方法
US9424470B1 (en) * 2014-08-22 2016-08-23 Google Inc. Systems and methods for scale invariant 3D object detection leveraging processor architecture
US9457477B1 (en) * 2014-08-25 2016-10-04 Google Inc. Variable stiffness suction gripper
US9205562B1 (en) * 2014-08-29 2015-12-08 Google Inc. Integration of depth points into a height map
US9507995B2 (en) * 2014-08-29 2016-11-29 X Development Llc Combination of stereo and structured-light processing
US9866815B2 (en) * 2015-01-05 2018-01-09 Qualcomm Incorporated 3D object segmentation
US9688489B1 (en) * 2015-03-30 2017-06-27 X Development Llc Modular dock for facilities integration
US9694498B2 (en) * 2015-03-30 2017-07-04 X Development Llc Imager for detecting visual light and projected patterns
US9457970B1 (en) * 2015-03-30 2016-10-04 Google Inc. Modular cross-docking system
US9715639B2 (en) 2015-06-18 2017-07-25 The Boeing Company Method and apparatus for detecting targets
WO2017018113A1 (ja) 2015-07-29 2017-02-02 株式会社オートネットワーク技術研究所 対象物のハンドリングシミュレーション装置、対象物のハンドリングシミュレーションシステム、対象物のハンドリングをシミュレーションする方法、対象物の製造方法及び対象物のハンドリングシミュレーションプログラム
US9718188B2 (en) 2015-09-21 2017-08-01 Amazon Technologies, Inc. Networked robotic manipulators
US9926138B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Determination of removal strategies
DE102015220091A1 (de) 2015-10-15 2017-04-20 Jungheinrich Aktiengesellschaft Autonomes Kommissioniergerät
JP6267175B2 (ja) 2015-11-20 2018-01-24 ファナック株式会社 物品を積む位置を設定する積み付けパターン計算装置
CA3003127A1 (en) 2015-11-30 2017-06-08 Gebo Cermex Canada Inc. Distribution conveying device
JP6378232B2 (ja) 2016-03-17 2018-08-22 ファナック株式会社 複数の種類の物品を積み付けるための積み付けパターン計算装置および積み付け装置
CN105691717A (zh) 2016-03-25 2016-06-22 云南昆船电子设备有限公司 一种机器人抓取散状辅料包装置及寻包方法
US9965730B2 (en) 2016-08-23 2018-05-08 X Development Llc Autonomous condensing of pallets of items in a warehouse
JP6614075B2 (ja) 2016-09-07 2019-12-04 株式会社ダイフク 物品積載設備
JP6469061B2 (ja) 2016-09-29 2019-02-13 ファナック株式会社 積み付けパターン計算装置及び積み付けシステム
CN108064197B (zh) 2016-12-30 2021-04-06 深圳配天智能技术研究院有限公司 确定码垛点位置信息的方法、装置及机器人
JP2018136896A (ja) * 2017-02-24 2018-08-30 キヤノン株式会社 情報処理装置、システム、情報処理方法、および物品の製造方法
JP7001354B2 (ja) 2017-03-29 2022-01-19 トーヨーカネツ株式会社 自動物流システム
US10328578B2 (en) 2017-04-21 2019-06-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
JP7116901B2 (ja) 2017-08-01 2022-08-12 オムロン株式会社 ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP6549654B2 (ja) 2017-08-03 2019-07-24 ファナック株式会社 ロボットシステムのシミュレーション装置およびシミュレーション方法
JP6680732B2 (ja) 2017-08-23 2020-04-15 ファナック株式会社 物品積み付け装置及び機械学習装置
CN207374734U (zh) 2017-09-11 2018-05-18 宁波德克尔运输设备有限公司 一种打包码垛一体化装置
US10713547B2 (en) 2017-10-17 2020-07-14 Kyocera Document Solutions Inc. Systems, processes, interfaces, and computer program products for verification of image content in software development systems
JP6647266B2 (ja) 2017-11-06 2020-02-14 西部電機株式会社 出庫処理システム及び出庫処理方法
JP6613288B2 (ja) 2017-11-14 2019-11-27 ファナック株式会社 積み付けパターン計算装置及びロボット制御装置
US20190193956A1 (en) 2017-12-21 2019-06-27 Walmart Apollo, Llc System for dynamic pallet-build
JP2019117547A (ja) 2017-12-27 2019-07-18 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
CN108748136A (zh) 2018-04-10 2018-11-06 上海新时达机器人有限公司 机器人码垛程序生成方法、存储介质及示教器
CN108776879B (zh) 2018-06-04 2022-06-14 江苏楚门机器人科技有限公司 一种基于权重学习的垛形规划方法
CN109359739A (zh) 2018-09-13 2019-02-19 深圳市递四方信息科技有限公司 基于遗传算法的堆叠组合方法、装置、设备和存储介质
CN109132313A (zh) 2018-10-26 2019-01-04 北京旷视科技有限公司 物品移动系统、取货机器人、搬运机器人及方法
CN109353833B (zh) 2018-11-27 2021-06-29 深圳市汇川技术股份有限公司 机器人码垛点位生成方法、设备及计算机可读存储器
US10335947B1 (en) * 2019-01-18 2019-07-02 Mujin, Inc. Robotic system with piece-loss management mechanism
US10549928B1 (en) 2019-02-22 2020-02-04 Dexterity, Inc. Robotic multi-item type palletizing and depalletizing
US10618172B1 (en) 2019-05-31 2020-04-14 Mujin, Inc. Robotic system with error detection and dynamic packing mechanism
US11077554B2 (en) 2019-05-31 2021-08-03 Mujin, Inc. Controller and control method for robotic system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10352279A1 (de) * 2003-11-08 2005-06-09 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Handhaben von Objekten
DE102007001263B4 (de) * 2007-01-08 2015-07-23 Kuka Roboter Gmbh Robotersystem zur Beladung von Lademitteln mit Stückguteinheiten
DE102009011300A1 (de) * 2009-03-02 2010-09-09 Kuka Roboter Gmbh Beladung von Lademitteln mit Paketen mittels Manipulator
US9089969B1 (en) * 2012-03-06 2015-07-28 Vecna Technologies, Inc. Loading articles on one or more support surfaces with one or more mobile devices
US9714145B1 (en) * 2012-07-20 2017-07-25 Amazon Technologies, Inc. Container stacking configurations
US10124489B2 (en) * 2016-02-26 2018-11-13 Kinema Systems Inc. Locating, separating, and picking boxes with a sensor-guided robot
US10647528B1 (en) * 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
US10679379B1 (en) * 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism
US10696493B1 (en) * 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with packing mechanism
US10696494B1 (en) * 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence

Also Published As

Publication number Publication date
DE102019009189A1 (de) 2020-12-03
CN112009810A (zh) 2020-12-01
US11794346B2 (en) 2023-10-24
US10618172B1 (en) 2020-04-14
US20200376670A1 (en) 2020-12-03
KR102408914B1 (ko) 2022-06-14
US20210237274A1 (en) 2021-08-05
DE102019130043B4 (de) 2020-12-17
JP6729953B1 (ja) 2020-07-29
KR20220080061A (ko) 2022-06-14
KR20200138076A (ko) 2020-12-09
JP2020196117A (ja) 2020-12-10
DE102019009189B4 (de) 2022-07-28
JP2020196127A (ja) 2020-12-10
US10953549B2 (en) 2021-03-23
US20240109199A1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
DE102019130043B4 (de) Robotersystem mit fehlererkennung und dynamischem packmechanismus
DE102019130902B4 (de) Ein Robotersytem mit dynamischem Packmechanismus
DE102019130923B4 (de) Robotersystem für das palettieren von paketen unter verwendung von echtzeit-platzierungssimulation
DE102019130635B4 (de) Ein robotersystem mit packmechanismus
DE102020127473A1 (de) Robotersystem mit wandbasiertem packmechanismus und verfahren zum betreiben dieses systems
DE102019130639B4 (de) ROBOTERSYSTEM ZUM VERARBEITEN VON PAKETEN, DIE AUßERHALB DER SEQUENZ ANKOMMEN
DE112019000217B4 (de) Ein Robotersystem mit automatisiertem Paketregistrierungsmechanismus und Leitung zur automatischen Erkennung
DE102019130048B4 (de) Ein Robotersystem mit Srückverlustverwaltungsmechanismus
DE112020000009T5 (de) Robotersystem mit Koordinationsmechanismus und Verfahren zum Betreiben dieses Systems
DE112020000067T5 (de) Roboter-mehrfachgreiferbaugruppen und -verfahren zum greifen und halten von objekten
CN111498213B (zh) 具有动态打包机制的机器人系统
CN111559544B (zh) 具有错误检测和动态打包机制的机器人系统
CN111498214A (zh) 具有打包机制的机器人系统

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102019009189

Country of ref document: DE

R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

R020 Patent grant now final