DE102019130902B4 - Ein Robotersytem mit dynamischem Packmechanismus - Google Patents

Ein Robotersytem mit dynamischem Packmechanismus Download PDF

Info

Publication number
DE102019130902B4
DE102019130902B4 DE102019130902.6A DE102019130902A DE102019130902B4 DE 102019130902 B4 DE102019130902 B4 DE 102019130902B4 DE 102019130902 A DE102019130902 A DE 102019130902A DE 102019130902 B4 DE102019130902 B4 DE 102019130902B4
Authority
DE
Germany
Prior art keywords
placement
discretized
sensor data
target object
target
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.)
Active
Application number
DE102019130902.6A
Other languages
English (en)
Other versions
DE102019130902A1 (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 DE102019130902A1 publication Critical patent/DE102019130902A1/de
Application granted granted Critical
Publication of DE102019130902B4 publication Critical patent/DE102019130902B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • B65B57/10Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged
    • B65B57/14Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged and operating to control, or stop, the feed of articles or material to be packaged
    • 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
    • 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
    • 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/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
    • 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
    • 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
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • 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
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • B65G1/137Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed
    • B65G1/1373Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed for fulfilling orders in warehouses
    • B65G1/1378Storage devices mechanical with arrangements or automatic control means for selecting which articles are to be removed for fulfilling orders in warehouses the orders being assembled on fixed commissioning areas remote from the storage areas
    • 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
    • B65G47/00Article or material-handling devices associated with conveyors; Methods employing such devices
    • B65G47/74Feeding, transfer, or discharging devices of particular kinds or types
    • B65G47/90Devices for picking-up and depositing articles or materials
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • 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
    • B65G2201/00Indexing codes relating to handling devices, e.g. conveyors, characterised by the type of product or load being conveyed or handled
    • B65G2201/02Articles
    • B65G2201/0267Pallets
    • 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/45Nc applications
    • G05B2219/45048Packaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/32Image data format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Vacuum Packaging (AREA)
  • Stacking Of Articles And Auxiliary Devices (AREA)

Abstract

Ein Verfahren zum Betreiben eines Robotersystems beinhaltet das Bestimmen eines diskretisierten Objektmodells, das ein Zielobjekt darstellt; Bestimmen eines diskretisierten Plattformmodells, das eine Aufgabenposition darstellt; Bestimmen von Höhenmaßen basierend auf Echtzeit-Sensordaten, welche die Aufgabenposition darstellen; und dynamisches Ableiten einer Platzierungsposition basierend auf (1) dem Überlappen des diskretisierten Objektmodells und des diskretisierten Plattformmodells für das Stapeln von Objekten an der Aufgabenposition und (2) Berechnen einer Platzierungsbewertung, die mit dem Überlappen assoziiert ist, basierend auf den Höhenmaßen.

Description

  • 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 ERROR DETECTION AND DYNAMIC PACKING MECHANISM“, die auf die Mujin, Inc. angemeldet wurde, das anwaltliche Aktenzeichen 131837-8007.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.
  • Die vorliegende Technologie bezieht sich im Allgemeinen auf Robotersysteme und insbesondere auf Systeme, Prozesse und Techniken für das Packen von Objekten basierend auf dynamischen Berechnungen.
  • 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.
  • DE 10 2014 005 758 A1 betrifft ein Robotersystem mit einer dreidimensionale Messeinrichtung zur Ermittlung von Informationen zur Lage eines Werkstücks.
  • DE 11 2011 105 151 T5 betrifft eine Roboterkontrollvorrichtung, die bewirkt, dass ein Roboter, der mit einer Hand an einem Ende eines Arms versehen ist, einen Aufnahmevorgang ausführt, der die Hand zum Greifen und Bewegen eines Werkstücks verwendet, das durch eine Werkstückdetektionseinheit detektiert wird.
  • EP 2 314 425 A2 betrifft ein Robotersystem, bei dem Forminformationen über mehrere Werkstücke in einem Behälter von einem Formsensor erfasst werden.
  • US 2018 / 0 065 818 A1 betrifft eine Ladevorrichtung mit einer Steuereinheit, die eine erste Ladekontrolle durchführt, wenn ein Zielgegenstand, der von einer Bestimmungseinheit als ein Artikel bestimmt wurde, der sich in einer geeigneten Ausrichtung befindet, auf ein erstes Stützelement geladen werden soll, und eine zweite Ladekontrolle durchführt, wenn ein Zielartikel, der von der Bestimmungseinheit als ein Artikel mit einer ungeeigneten Ausrichtung bestimmt wurde, in der entsprechenden Ausrichtung auf das erste Stützelement geladen werden soll.
  • US 2017 / 0 0246 744 A1 betrifft ein Roboter-Kommissioniersystemen, das Kisten von einer unstrukturierten Palette mithilfe von Computer Vision und / oder einem oder mehreren Erkundungspicks zu lokalisieren und zu kommissionieren, um die Größe und Position von Kisten auf der Palette zu bestimmen.
  • US 9 393 693 B1 betrifft Methoden und Systeme zur Bestimmung und Modellierung zulässiger Greiferkräfte eines Roboters.
  • 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 und 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. Es ist also eine Aufgabe, ein Robotersystem sowie ein Verfahren zum Betreiben eines Robotersystems anzugeben, das die Effizienz, Geschwindigkeit und/oder Genauigkeit für das dynamische Ableiten der Objektplatzierung basierend auf den Echtzeit-Bedingungen verbessern kann. Diese Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1, ein Robotersystem mit den Merkmalen des Anspruchs 19 und einem Medium mit darauf gespeicherten Prozessanweisungen gemäß Anspruch 20. Weiterbildungen sind Gegenstand der abhängigen Ansprüche.
    • 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.
  • In der vorliegenden Schrift werden Systeme und Verfahren zum 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 optimale 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 empfangenen Pakete (z. B. andere Sequenz, Position und/oder Ausrichtung), unerwartete Fehler (z. B. Kollisionen und/oder verlorengegangene Stücke), 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 Startposition entweder (1) eine gleiche 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 Platzierungspositionen der Objekte dynamisch ableiten (z. B., wenn das Objekt ankommt oder identifiziert wird und/oder nach dem Starten von einem oder mehreren Vorgängen, wie etwa einem tatsächlichen Packvorgang). In einigen Ausführungsformen kann das Robotersystem die dynamische Ableitung der Platzierung basierend auf einem Auslöseereignis einleiten/umsetzen, wie etwa einem Neubewertungszeitpunkt, einem Pack-/Steuerungsfehler (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 einem Vorhandensein anderer dynamischer Bedingungen. In einigen Ausführungsformen kann die Platzierungsposition dynamisch abgeleitet werden, wenn dem Robotersystem Vorabinformationen über die ankommenden Objekte fehlen, wie etwa zum Aufnehmen von noch unbekannten Objekten und/oder zum Aufnehmen von Objekten in zufälligen/unbekannten Sequenzen. 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. Demnach kann das Robotersystem unbekannte Objekte und/oder zufällig ankommende Objekte (d. h. ohne bekannte/vorbestimmte Sequenz) aufnehmen und packen.
  • 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.
  • 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.
  • 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 Ziel-/Aufgabenposition 116 beinhalten. 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.
  • 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(12C)-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, Nahbereichskommunikation (NFC) usw.), Internet-der-Dinge(Internet of ThingsloT)-Protokollen (z. B. NB-loT, 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, 2D- und/oder 3D-Bildaufnahmekameras, Abstandsmessvorrichtungen, wie etwa Lidar oder Radar, usw.) umfassen, die konfiguriert sind, um 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) Bilddaten 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/oder 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.
  • 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 Punktwolkendaten) 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-Anforderungen, -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.
  • 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ächsten 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. In einigen Ausführungsformen kann das Robotersystem 100 vorbestimmte Höhen-/Stellenwerte aufweisen, die einer vertikalen Stelle des Bodens und/oder der Oberfläche der Plattform (z. B. Palette) entsprechen, wie etwa einer Höhe der Oberfläche der Plattform über der Bodenfläche der Anlage. In einigen Ausführungsformen kann das Robotersystem 100 das Tiefenmaß verwenden, um die Höhen/Kontur der freiliegenden oberen Fläche(n) der Plattform, der platzierten Objekte oder einer 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 360, 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, das 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) ei nzustufen.
  • 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 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 oder mehreren Ungenauigkeiten am Ziel dynamisch ableiten, wie etwa aufgrund von bereits platzierten Objekten 508 (z. B. nicht erkennbaren und/oder nicht erwarteten Paketen auf der Palette) und/oder einer Verschiebung von einem oder mehreren der bereits platzierten Objekte 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 3D-Kamera) 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 3D-Kamera) 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 (z. B. der Aufgabenposition 116, wie etwa einer Palette) 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.
  • 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 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 ü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, 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, als die möglichen Hindernisse 610 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 602 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.
  • 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 dynamischen Ableiten der Platzierungsposition 350 aus 3B an der Aufgabenposition 116 aus 1 zum Platzieren des Zielobjekts 112 aus 1 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 Echtzeit-Packbedingungen identifizieren. Zum Beispiel kann das Robotersystem 100, wie bei Block 732 veranschaulicht, eingehende Objekte und/oder die Aufgabenposition 116 aus 1 in Echtzeit analysieren. Das Robotersystem 100 kann Sensordaten von den Sensoren 216 aus 2 empfangen und analysieren. In einigen Ausführungsformen kann das Robotersystem 100 Ausgangssensordaten empfangen (z. B. von dem Ausgangssensor 504 aus 5) und analysieren, welche das Zielobjekt 112 aus 1 darstellen, das sich an der Startposition 114 aus 1 befindet oder sich dieser nähert. Außerdem kann das Robotersystem 100 Zielsensordaten empfangen (z. B. von dem Zielsensor 506 aus 5) und analysieren, welche einen Platzierungsbereich (z. B. den Platzierungsbereich 340 aus 3B) darstellen, der mit der Aufgabenposition 116 und/oder den bereits darauf platzierten Objekten 508 aus 5 assoziiert ist.
  • In einigen Ausführungsformen, wie bei Block 734 veranschaulicht, kann das Robotersystem 100 die Sensordaten analysieren, um einen oder mehrere Ungenauigkeitsfaktoren zu bestimmen. Zum Beispiel kann das Robotersystem 100 die Sensordaten mit einem bereits abgeleiteten (z. B. über eine systemunabhängige Berechnung und/oder eine Echtzeit-Berechnung an der entsprechenden Anlage) Packplan vergleichen, der die Platzierungspositionen für eingehende Objekte, einschließlich des Zielobjekts 112, festlegt. Dementsprechend können einige Fälle der Ungenauigkeiten auf Nichtübereinstimmungen der Sensordaten und des Packplans oder einer dazugehörigen Ankunftssequenz basieren.
  • Beim Analysieren der Sensordaten bezüglich Ungenauigkeiten, wie bei Block 736 veranschaulicht, kann das Robotersystem 100 die Sensordaten (z. B. Bilder und/oder Tiefenabbildungen) 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 einigen Fällen können die Nichtübereinstimmungen Ausgangszuordnungsfehler beinhalten, die aus dem Vergleichen der Ausgangssensordaten mit den Masterdaten 252 aus 2, einer Zugangs-/Ankunftssequenz, die mit dem Packplan assoziiert ist, oder einer Kombination davon resultieren. Die Ausgangszuordnungsfehler können zum Beispiel daraus resultieren, dass das eingehende Objekt falsch identifiziert wird (z. B., wenn die Ausgangssensordaten keinen Objekten im Packplan und/oder in den Masterdaten 252 entsprechen) und/oder sich das eingehende Objekt außerhalb der Sequenz befindet und nicht mit der erwarteten Ankunfts-/Zugangssequenz für den Packplan übereinstimmt. Außerdem können die Nichtübereinstimmungen Zielzuordnungsfehler beinhalten, welche aus dem Vergleichen der Zielsensordaten mit dem Packplan resultieren. Die Zielzuordnungsfehler können zum Beispiel durch eines oder mehrere der bereits platzierten Objekte 508 verursacht werden, die sich an nicht erwarteten Positionen (d. h., die nicht mit dem Packplan übereinstimmen) befinden, wie etwa aufgrund eines Verschiebens des Pakets. Zu anderen Beispielen kann gehören, dass der Container bei der Ankunft für die Aufgabenposition 116 nicht vollständig geöffnet ist, um die Pakete aufzunehmen, und/oder unerwartete Elemente darin aufweist.
  • In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die Ungenauigkeiten basierend auf weiteren Auslösern bestimmen. Zum Beispiel kann das Robotersystem 100 die Ungenauigkeiten basierend auf einem Fehlen des Packplans bestimmen. Außerdem kann das Robotersystem 100 die Ungenauigkeiten zum Beispiel basierend auf dem Betriebsstatus oder Ereignissen bestimmen, wie etwa einem Kollisionsereignis (z. B., wenn Robotereinheiten und/oder Objekte kollidieren), einem Ereignis eines verlorengegangenen Objekts (z. B., wenn Objekte während des Transport/der Steuerung fallengelassen werden), einem Ereignis eines verschobenen Objekts (z. B., wenn sich ein Objekt nach der Platzierung verschiebt) oder einer Kombination davon. Wie nachfolgend ausführlicher beschrieben, kann das Robotersystem 100 die Platzierungsposition 350 aus 3 für das Zielobjekt 112 als Reaktion auf und/oder unter Berücksichtigung von den Ungenauigkeiten dynamisch ableiten.
  • 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 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. das diskretisierte Objektmodell 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 Objekte, wie etwa das Zielobjekt 112, basierend auf den Ausgangssensordaten identifizieren. Das Robotersystem 100 kann die Masterdaten 252 durchsuchen, um eine abgebildete Oberfläche Oberflächenbildern zuzuordnen, welche dem Objekttyp entsprechen, wenn die Ungenauigkeiten überprüft werden, wie vorstehend beschrieben. In einigen Ausführungsformen kann das Robotersystem 100 eine oder mehrere Abmessungen oder Längen des erfassten Objekts (z. B. des eingehenden Objekts, des Zielobjekts 112, der Palette, des Korbs usw.) basierend auf den Sensordaten (z. B. den Ausgangssensordaten) beim Überprüfen von Ungenauigkeiten schätzen. Das Robotersystem 100 kann die identifizierenden Informationen verwenden, um auf die diskretisierten Modelle zugreifen, 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 bzw. den über die Kommunikationsvorrichtungen 206 aus 2 zugegriffen wird) gespeichert sind. Zum Beispiel kann das Robotersystem 100 die Masterdaten 252 unter Verwendung der identifizierten 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 die diskretisierten Modelle in Echtzeit erzeugen, wie etwa direkt als Reaktion auf das Empfangen der Ausgangssensordaten und/oder Bestimmen der Ungenauigkeiten. Um die diskretisierten Modelle dynamisch zu erzeugen, kann das Robotersystem 100 die Sensordaten und/oder entsprechende physikalische 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 706 kann das Robotersystem 100 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 an entsprechenden Positionen 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 Stelle 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 708 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 710 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 742 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 744 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 712 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 714 kann das Robotersystem 100 das Zielobjekt 112 an der abgeleiteten Platzierungsposition 350 platzieren. Beim 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.
  • 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 714 zu Block 702 ü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 platziert wurde.
  • Die Diskretisierung der Aufgaben und die 2D43D-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 Ungenauigkeiten 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, 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.
  • 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 derartige Begriffe nicht ausdrücklich definiert.

Claims (20)

  1. Verfahren zum Betreiben eines Robotersystems (100), wobei das Verfahren Folgendes umfasst: Empfangen von Ausgangssensordaten, die ein Zielobjekt (112) darstellen, das sich an einer Ausgangsposition befindet oder dieser nähert; Bestimmen eines diskretisierten Objektmodells (302) basierend auf den Ausgangssensordaten, wobei das diskretisierte Objektmodell (302) eine physikalische Größe, eine Form oder eine Kombination davon des Zielobjekts (112) in zwei Dimensionen (2D) gemäß Einheitspixeln (310) darstellt; Empfangen von Zielsensordaten, die einen Platzierungsbereich (340), der mit einer Aufgabenposition (116) assoziiert ist, und/oder bereits an der Aufgabenposition (116) platzierte Objekte (508) darstellen; Bestimmen eines diskretisierten Plattformmodells (304) basierend auf den Zielsensordaten, wobei das diskretisierte Plattformmodell (304) eine physikalische Größe, eine Form oder eine Kombination davon der Aufgabenposition (116) in 2D gemäß weiteren Einheitspixeln (310) darstellt; Bestimmen von Höhenmaßen (402) basierend auf den Zielsensordaten, wobei die Höhenmaße (402) maximale Höhen in Abschnitten des Platzierungsbereichs (340), die einem oder mehreren Sätzen der weiteren Einheitspixel (310) entsprechen, darstellen; Ableiten von einer oder mehreren möglichen Stellen (360) basierend auf dem Überlappen des diskretisierten Objektmodells (302) über dem diskretisierten Plattformmodell (304) an entsprechenden Positionen; dynamisches Ableiten eines validierten Satzes der möglichen Stellen (360) gemäß einer oder mehreren Platzierungseinschränkungen, die mit den Höhenmaßen (402) assoziiert sind; Berechnen von Platzierungsbewertungen für Stellen im validierten Satz, wobei die Platzierungsbewertungen gemäß einer oder mehreren Platzierungspräferenzen berechnet werden; dynamisches Ableiten einer Platzierungsposition (350) basierend auf dem Auswählen von einer der Stellen im validierten Satz gemäß den Platzierungsbewertungen, wobei die Platzierungsposition (350) zur Platzierung des Zielobjekts (112) über der Aufgabenposition (116) dient; und Kommunizieren von Informationen gemäß der Platzierungsposition (350) für das Platzieren des Zielobjekts (112) an der Platzierungsposition (350) über dem Platzierungsbereich (340).
  2. Verfahren nach Anspruch 1, wobei die Platzierungsposition (350) als Reaktion auf einen oder mehrere Ungenauigkeitsfaktoren abgeleitet wird.
  3. Verfahren nach Anspruch 2, wobei der eine oder die mehreren Ungenauigkeitsfaktoren mit einem Fehlen eines Packplans assoziiert sind, wobei der Packplan zur Darstellung von Platzierungspositionen (350) für eine Reihe von Objekten, einschließlich des Zielobjekts (112), an der Aufgabenposition (116) dient.
  4. Verfahren nach Anspruch 2, wobei der eine oder die mehreren Ungenauigkeitsfaktoren mit einer oder mehreren Abweichungen von einem Packplan assoziiert sind, wobei der Packplan zur Darstellung von Platzierungspositionen (350) für eine Reihe von Objekten, einschließlich des Zielobjekts (112), an der Aufgabenposition (116) dient.
  5. Verfahren nach Anspruch 4, wobei der eine oder die mehreren Ungenauigkeitsfaktoren mit einem Ausgangszuordnungsfehler aufgrund des Vergleichens der Ausgangssensordaten mit Masterdaten (252), einer Sequenz, die mit dem Packplan assoziiert ist, oder einer Kombination davon assoziiert sind.
  6. Verfahren nach Anspruch 4, wobei der eine oder die mehreren Ungenauigkeitsfaktoren mit einem Zielzuordnungsfehler aufgrund des Vergleichens der Zielsensordaten mit dem Packplan assoziiert sind.
  7. Verfahren nach Anspruch 4, wobei der eine oder die mehreren Ungenauigkeitsfaktoren mit einem Kollisionsereignis, einem Ereignis eines verlorengegangenen Stücks, einem Ereignis eines verschobenen Objekts oder einer Kombination davon assoziiert sind.
  8. Verfahren nach Anspruch 1, wobei das Bestimmen des diskretisierten Objektmodells (302) Folgendes beinhaltet: Identifizieren eines Objekttyps basierend auf den Ausgangssensordaten, wobei der Objekttyp das Zielobjekt (112) identifiziert; und Zugreifen auf das diskretisierte Objektmodell (302) basierend auf dem Durchsuchen von Masterdaten (252) gemäß dem Objekttyp.
  9. Verfahren nach Anspruch 1, wobei das Bestimmen des diskretisierten Objektmodells (302) Folgendes beinhaltet: Schätzen von einer oder mehreren Längen basierend auf den Ausgangssensordaten, wobei die eine oder mehreren Längen eine oder mehrere Abmessungen des Zielobjekts (112) darstellen; Zugreifen auf das diskretisierte Objektmodell (302) basierend auf dem Durchsuchen von Masterdaten (252) gemäß der einen oder den mehreren Längen.
  10. Verfahren nach Anspruch 1, wobei das Bestimmen des diskretisierten Objektmodells (302) das Erzeugen des diskretisierten Objektmodells in Echtzeit direkt als Reaktion auf das Empfangen der Ausgangssensordaten beinhaltet, wobei das diskretisierte Objektmodell (302) basierend auf dem Überlagern der Einheitspixel (310) über einen Bereich, der das Zielobjekt (112) darstellt, gemäß den Ausgangssensordaten erzeugt wird.
  11. Verfahren nach Anspruch 1, wobei das Bestimmen der Höhenmaße (402) das Bestimmen der Höhenmaße (402) für den einen oder die mehreren Sätze der weiteren Einheitspixel (310), die von dem diskretisierten Objektmodell (302) überlappt werden, für eine oder mehrere der möglichen Stellen (360) beinhaltet.
  12. Verfahren nach Anspruch 1, ferner umfassend: Identifizieren einer maximalen Höhe (420) für jede der möglichen Stellen, wobei die maximale Höhe (420) einen höchsten Teil der Höhenmaße (402) für die entsprechende mögliche Stelle (360) darstellt; Berechnen einer unteren Höhengrenze (422) basierend auf einem Höhendifferenzschwellenwert (416) und der maximalen Höhe (420); Identifizieren von stützenden Positionen (442) basierend auf dem Vergleichen der Höhenmaße (402) mit der unteren Höhengrenze (422), wobei die stützende Position (442) Teile der weiteren Einheitspixel (310) beinhaltet, bei denen die Höhenmaße (402) die untere Höhengrenze (422) einhalten und/oder überschreiten; wobei: das Ableiten des validierten Satzes und/oder das Berechnen der Platzierungsbewertungen das Beurteilen von jeder der möglichen Stellen (360) gemäß den entsprechenden stützenden Positionen (442) beinhaltet.
  13. Verfahren nach Anspruch 12, wobei das Ableiten des validierten Satzes Folgendes beinhaltet: Berechnen einer geeigneten Anzahl (424), die eine Menge der stützenden Positionen (442) darstellt; und Ableiten des validierten Satzes basierend auf dem Vergleichen der geeigneten Anzahl (424) für einen entsprechenden Teil der möglichen Stellen (360) mit einem Schwellenwert.
  14. Verfahren nach Anspruch 12, wobei das Ableiten des validierten Satzes Folgendes beinhaltet: Ableiten von Stützbereichsumrissen (426) basierend auf Kanten und/oder Ecken von äußersten Teilen der stützenden Positionen (442) und Berechnen einer Stützbereichsgröße (428) basierend auf den Stützbereichsumrissen (426), wobei die Stützbereichsgröße (428) eine Menge der Einheitspixel (310) innerhalb der Stützbereichsumrisse (426) darstellt; und Ableiten des validierten Satzes basierend auf dem Vergleichen der Stützbereichsgröße (428) für einen entsprechenden Teil der möglichen Stellen (360) mit einem Schwellenwert.
  15. Verfahren nach Anspruch 12, wobei das Ableiten des validierten Satzes Folgendes beinhaltet: für jede der möglichen Stellen (360), Ableiten von Stützbereichsumrissen (426) basierend auf Kanten und/oder Ecken von äußersten Teilen der stützenden Positionen (442); Vergleichen einer Massenmittelpunkt(CoM)-Position, die mit dem diskretisierten Objektmodell (302) assoziiert ist, mit den Stützbereichsumrissen (426); und Ableiten des validierten Satzes, einschließlich der möglichen Stellen (360), mit den Stützbereichsumrissen (426), welche die CoM-Position umgeben.
  16. Verfahren nach Anspruch 12, wobei das Ableiten des validierten Satzes Folgendes beinhaltet: Ableiten von Annäherungspfaden (510) für das Platzieren des Zielobjekts (112) an den möglichen Stellen (360); und Ableiten des validierten Satzes basierend auf den Annäherungspfaden (510).
  17. Verfahren nach Anspruch 12, wobei das Berechnen der Platzierungsbewertungen das Berechnen einer Platzierungsbewertung für jede der möglichen Stellen (360) basierend auf einer geeigneten Anzahl (424), einer Stützbereichsgröße (428), einer Massenmittelpunkt(CoM)-Position (432), einem Annäherungspfad (540) oder einer Kombination davon beinhaltet.
  18. Verfahren nach Anspruch 1, wobei das Berechnen der Platzierungsbewertungen das Berechnen einer Platzierungsbewertung für jede der möglichen Stellen (360) basierend auf einer resultierenden Höhe, einem Näherungsmaß, einem Kantenplatzierungsstatus, einem maximal unterstützbaren Gewicht, einem Objekttyp, einem unterstützten Gewichtsverhältnis oder einer Kombination davon beinhaltet.
  19. Robotersystem (100), umfassend: mindestens einen Prozessor (202); und mindestens eine Speichervorrichtung (204), die mit dem mindestens einen Prozessor (202) verbunden ist und auf der vom Prozessor (202) ausführbare Anweisungen für Folgendes gespeichert sind: Bestimmen eines diskretisierten Objektmodells, welches eine physikalische Größe, eine Form oder eine Kombination davon eines Zielobjekts (112) in zwei Dimensionen (2D) gemäß Einheitspixeln (310) darstellt; Bestimmen eines diskretisierten Plattformmodells (304), welches eine physikalische Größe, eine Form oder eine Kombination davon eines Zielbereichs in 2D gemäß weiteren Einheitspixeln (310) darstellt; Empfangen von Sensordaten, wobei die Sensordaten eine Bedingung darstellen, die mit dem Zielobjekt (112), dem Zielbereich oder einer Kombination davon assoziiert ist; Bestimmen von Höhenmaßen (402) basierend auf den Sensordaten, wobei die Höhenmaße (402) maximale Höhen in Abschnitten des Platzierungsbereichs (340), die einem oder mehreren Sätzen der weiteren Einheitspixel (310) entsprechen, darstellen; Ableiten von einer oder mehreren möglichen Stellen (360) für das Platzieren des Zielobjekts (112) im Zielbereich; Berechnen von Platzierungsbewertungen für die möglichen Stellen (360) zumindest teilweise basierend auf den Höhenmaßen (402); und dynamisches Ableiten einer Platzierungsposition (350) basierend auf den Platzierungsbewertungen, wobei die Platzierungsposition (350) eine bestimmte Position innerhalb des Zielbereichs für das Platzieren des Zielobjekts (112) darstellt.
  20. Materielles, nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Prozessoranweisungen, die bei Ausführung durch ein Robotersystem (100) über einen oder mehrere Prozessoren davon das Robotersystem (100) veranlassen, ein Verfahren durchzuführen, wobei die Anweisungen Folgendes umfassen: Anweisungen zum Empfangen von Ausgangssensordaten, die ein Zielobjekt (112) darstellen, das sich an einer Ausgangsposition befindet oder dieser nähert; Anweisungen zum Bestimmen eines diskretisierten Objektmodells basierend auf den Ausgangssensordaten, wobei das diskretisierte Objektmodell eine physikalische Größe, eine Form oder eine Kombination davon des Zielobjekts (112) in zwei Dimensionen (2D) gemäß Einheitspixeln (310) darstellt; Anweisungen zum Empfangen von Zielsensordaten, die einen Platzierungsbereich (340), der mit einer Aufgabenposition (116) assoziiert ist, und/oder bereits an der Aufgabenposition (116) platzierte Objekte (508) darstellen; Anweisungen zum Bestimmen eines diskretisierten Plattformmodells (304) basierend auf den Zielsensordaten, wobei das diskretisierte Plattformmodell (304) eine physikalische Größe, eine Form oder eine Kombination davon der Aufgabenposition (116) in 2D gemäß weiteren Einheitspixeln (310) darstellt; Anweisungen zum Bestimmen von Höhenmaßen (402) basierend auf den Zielsensordaten, wobei die Höhenmaße (402) maximale Höhen in Abschnitten des Platzierungsbereichs (340), die einem oder mehreren Sätzen der weiteren Einheitspixel (310) entsprechen, darstellen; Anweisungen zum Ableiten von einer oder mehreren möglichen Stellen (360) basierend auf dem Überlappen des diskretisierten Objektmodells über dem diskretisierten Plattformmodell (304) an entsprechenden Positionen; Anweisungen zum dynamischen Ableiten eines validierten Satzes der möglichen Stellen (360) gemäß einer oder mehreren Platzierungseinschränkungen, die mit den Höhenmaßen (402) assoziiert sind; Anweisungen zum Berechnen von Platzierungsbewertungen für Stellen im validierten Satz, wobei die Platzierungsbewertungen gemäß einer oder mehreren Platzierungspräferenzen berechnet werden; Anweisungen zum dynamischen Ableiten einer Platzierungsposition (350) basierend auf dem Auswählen von einer der Stellen im validierten Satz gemäß den Platzierungsbewertungen, wobei die Platzierungsposition (350) zur Platzierung des Zielobjekts (112) über der Aufgabenposition (116) dient; und Anweisungen zum Kommunizieren von Informationen gemäß der Platzierungsposition (350) für das Platzieren des Zielobjekts (112) an der Platzierungsposition (350) über dem Platzierungsbereich (340).
DE102019130902.6A 2019-05-31 2019-11-15 Ein Robotersytem mit dynamischem Packmechanismus Active DE102019130902B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/428,714 2019-05-31
US16/428,714 US10679379B1 (en) 2019-05-31 2019-05-31 Robotic system with dynamic packing mechanism

Publications (2)

Publication Number Publication Date
DE102019130902A1 DE102019130902A1 (de) 2020-12-03
DE102019130902B4 true DE102019130902B4 (de) 2021-01-14

Family

ID=70858263

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102019009206.6A Active DE102019009206B4 (de) 2019-05-31 2019-11-15 Robotersystem mit dynamischem Packmechanismus
DE102019130902.6A Active DE102019130902B4 (de) 2019-05-31 2019-11-15 Ein Robotersytem mit dynamischem Packmechanismus

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102019009206.6A Active DE102019009206B4 (de) 2019-05-31 2019-11-15 Robotersystem mit dynamischem Packmechanismus

Country Status (5)

Country Link
US (3) US10679379B1 (de)
JP (2) JP6704157B1 (de)
KR (2) KR102424718B1 (de)
CN (1) CN112009812A (de)
DE (2) DE102019009206B4 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11101163B2 (en) * 2018-01-30 2021-08-24 Taiwan Semiconductor Manufacturing Co., Ltd. Systems and methods for automated robotic arm sensing
US11046519B2 (en) 2019-02-25 2021-06-29 Rehrig Pacific Company Delivery system
US10696493B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with 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
US10647528B1 (en) 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
US10696494B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence
US10618172B1 (en) 2019-05-31 2020-04-14 Mujin, Inc. Robotic system with error detection and dynamic packing mechanism
US20210182772A1 (en) * 2019-12-12 2021-06-17 Grey Orange Pte. Ltd. System and method for order consolidation
US11922253B2 (en) 2020-04-20 2024-03-05 Rehrig Pacific Company Camera enabled portal
CN114056819A (zh) * 2020-07-31 2022-02-18 北京小米移动软件有限公司 仓储产线、仓储管理方法、装置、电子设备和存储介质
US11905115B2 (en) * 2021-04-30 2024-02-20 Dexterity, Inc. Robotic system for identifying items
US20220402710A1 (en) * 2021-06-16 2022-12-22 Dexterity, Inc. Simulated box placement for algorithm evaluation and refinement
JP7241374B2 (ja) * 2021-08-10 2023-03-17 株式会社Mujin ロボットによるオブジェクト配置のシステム及び方法
US11823440B2 (en) 2021-08-19 2023-11-21 Rehrig Pacific Company Imaging system with unsupervised learning
CN113753462B (zh) * 2021-09-14 2023-04-11 深圳市库宝软件有限公司 任务分配方法、装置、设备、仓储***及存储介质
CN113963140B (zh) * 2021-10-29 2022-07-08 山东大学 一种可变规格圆柱形货物错位摆放装箱***
MX2022013771A (es) 2021-11-01 2023-05-02 Rehrig Pacific Co Sistemas de entrega.

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2314425A2 (de) * 2009-10-26 2011-04-27 Kabushiki Kaisha Yaskawa Denki Robotersystem und Werkstückaufnahmeverfahren
DE112011105151T5 (de) * 2011-04-14 2014-01-09 Mitsubishi Electric Corp. Roboterkontrollvorrichtung
DE102014005758A1 (de) * 2013-04-18 2014-10-23 Fanuc Corporation Robotersystem, aufweisend einen Roboter zur Beförderung eines Werkstücks
US9393693B1 (en) * 2014-07-10 2016-07-19 Google Inc. Methods and systems for determining and modeling admissible gripper forces for robotic devices
US20170246744A1 (en) * 2016-02-26 2017-08-31 Kinema Systems Inc. Locating, separating, and picking boxes with a sensor-guided robot
US20180065818A1 (en) * 2016-09-07 2018-03-08 Daifuku Co., Ltd. Article Loading Facility

Family Cites Families (104)

* 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 産業用ロボット装置
JPH1080881A (ja) * 1996-09-06 1998-03-31 Nippon Steel 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 日本政策投資銀行 全自動混載積付方法及びそのシステム
JP3776340B2 (ja) * 2000-09-27 2006-05-17 エムヴイテック・ソフトウェア・ゲーエムベーハー 対象物認識システム及び方法
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 入荷設備
JP4036681B2 (ja) 2002-05-22 2008-01-23 ダイハツ工業株式会社 車両走行制御装置および方法
KR100484163B1 (ko) * 2002-09-14 2005-04-19 삼성전자주식회사 디지털 화질 개선 방법 및 장치
JP3969334B2 (ja) 2003-04-04 2007-09-05 株式会社ダイフク 物品の積付方法
JP4359108B2 (ja) 2003-09-17 2009-11-04 村田機械株式会社 ピッキング物品積上げ指示システム
DE10352279A1 (de) 2003-11-08 2005-06-09 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Handhaben von Objekten
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
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
DE102007001263B4 (de) 2007-01-08 2015-07-23 Kuka Roboter Gmbh Robotersystem zur Beladung von Lademitteln mit Stückguteinheiten
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
DE102009011300B4 (de) 2009-03-02 2022-08-11 Kuka Roboter Gmbh Beladung von Lademitteln mit Paketen mittels Manipulator
DE102009011294B4 (de) 2009-03-02 2020-12-24 Kuka Roboter Gmbh Palletieren von Paketen mittels eines Manipulators
DE102009011296B4 (de) * 2009-03-02 2021-11-25 Kuka Roboter Gmbh Beladung eines Lademittels mit Paketen
JP2011022784A (ja) * 2009-07-15 2011-02-03 Sony Corp 情報処理装置、ブロック検出方法およびプログラム
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
US20130163879A1 (en) 2010-08-30 2013-06-27 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 ガラス板梱包容器及び該ガラス板梱包容器を用いた運搬方法
JP6204365B2 (ja) 2011-10-17 2017-09-27 シムボティック エルエルシー パレット構築システム
US10216865B1 (en) 2012-03-06 2019-02-26 Vecna Robotics, Inc. Monitoring one or more articles on a support surface
US9434072B2 (en) 2012-06-21 2016-09-06 Rethink Robotics, Inc. Vision-guided robots and methods of training them
US9315344B1 (en) 2012-07-20 2016-04-19 Amazon Technologies, Inc. Container stacking configurations
US20140180479A1 (en) 2012-12-20 2014-06-26 Wal-Mart Stores, Inc. Bagging With Robotic Arm
US9333649B1 (en) 2013-03-15 2016-05-10 Industrial Perception, Inc. Object pickup strategies for a robotic device
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 天津中财型材有限责任公司 一种塑钢异型材自动包装***
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
US9507995B2 (en) 2014-08-29 2016-11-29 X Development Llc Combination of stereo and structured-light processing
US9205562B1 (en) 2014-08-29 2015-12-08 Google Inc. Integration of depth points into a height map
US9866815B2 (en) 2015-01-05 2018-01-09 Qualcomm Incorporated 3D object segmentation
US9457970B1 (en) 2015-03-30 2016-10-04 Google Inc. Modular cross-docking system
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
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
JP6267175B2 (ja) 2015-11-20 2018-01-24 ファナック株式会社 物品を積む位置を設定する積み付けパターン計算装置
EP3405418B1 (de) 2015-11-30 2021-06-09 Sidel Canada Inc. Verteilfördervorrichtung und förderverfahren
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
JP6469061B2 (ja) 2016-09-29 2019-02-13 ファナック株式会社 積み付けパターン計算装置及び積み付けシステム
WO2018120210A1 (zh) 2016-12-30 2018-07-05 深圳配天智能技术研究院有限公司 确定码垛点位置信息的方法、装置及机器人
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 ファナック株式会社 積み付けパターン計算装置及びロボット制御装置
WO2019125613A1 (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
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
US10696494B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence
US10679379B1 (en) * 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism
US11077554B2 (en) 2019-05-31 2021-08-03 Mujin, Inc. Controller and control method for robotic system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2314425A2 (de) * 2009-10-26 2011-04-27 Kabushiki Kaisha Yaskawa Denki Robotersystem und Werkstückaufnahmeverfahren
DE112011105151T5 (de) * 2011-04-14 2014-01-09 Mitsubishi Electric Corp. Roboterkontrollvorrichtung
DE102014005758A1 (de) * 2013-04-18 2014-10-23 Fanuc Corporation Robotersystem, aufweisend einen Roboter zur Beförderung eines Werkstücks
US9393693B1 (en) * 2014-07-10 2016-07-19 Google Inc. Methods and systems for determining and modeling admissible gripper forces for robotic devices
US20170246744A1 (en) * 2016-02-26 2017-08-31 Kinema Systems Inc. Locating, separating, and picking boxes with a sensor-guided robot
US20180065818A1 (en) * 2016-09-07 2018-03-08 Daifuku Co., Ltd. Article Loading Facility

Also Published As

Publication number Publication date
DE102019009206A1 (de) 2021-02-18
JP2020196124A (ja) 2020-12-10
DE102019130902A1 (de) 2020-12-03
KR20200138072A (ko) 2020-12-09
JP6704157B1 (ja) 2020-06-03
KR102424718B1 (ko) 2022-07-25
US11488323B2 (en) 2022-11-01
US10679379B1 (en) 2020-06-09
US20230008946A1 (en) 2023-01-12
KR20220106091A (ko) 2022-07-28
JP2020196118A (ja) 2020-12-10
CN112009812A (zh) 2020-12-01
US20200380722A1 (en) 2020-12-03
DE102019009206B4 (de) 2022-10-13

Similar Documents

Publication Publication Date Title
DE102019130902B4 (de) Ein Robotersytem mit dynamischem Packmechanismus
DE102019130043B4 (de) Robotersystem mit fehlererkennung und dynamischem packmechanismus
DE102019130635B4 (de) Ein robotersystem mit packmechanismus
DE102019130923B4 (de) Robotersystem für das palettieren von paketen unter verwendung von echtzeit-platzierungssimulation
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
DE102019130046B4 (de) Robotersytem mit verbessertem Abtastmechanismus
DE102019130048B4 (de) Ein Robotersystem mit Srückverlustverwaltungsmechanismus
DE112020000009T5 (de) Robotersystem mit Koordinationsmechanismus und Verfahren zum Betreiben dieses Systems
DE102020111139A1 (de) Verfeinerung nach Erfassung basierend auf Kanten und mehrdimensionalen Ecken
DE102020116803A1 (de) System und verfahren zur objekterkennung auf der grundlage von bilddaten
CN111498213B (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
R082 Change of representative

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

R130 Divisional application to

Ref document number: 102019009206

Country of ref document: DE

R020 Patent grant now final