DE102020127473A1 - Robotersystem mit wandbasiertem packmechanismus und verfahren zum betreiben dieses systems - Google Patents

Robotersystem mit wandbasiertem packmechanismus und verfahren zum betreiben dieses systems Download PDF

Info

Publication number
DE102020127473A1
DE102020127473A1 DE102020127473.4A DE102020127473A DE102020127473A1 DE 102020127473 A1 DE102020127473 A1 DE 102020127473A1 DE 102020127473 A DE102020127473 A DE 102020127473A DE 102020127473 A1 DE102020127473 A1 DE 102020127473A1
Authority
DE
Germany
Prior art keywords
location
robot system
model
container
placement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020127473.4A
Other languages
English (en)
Inventor
Denis Kanunikov
Rosen Nikolaev Diankov
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 DE102020127473A1 publication Critical patent/DE102020127473A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J15/00Gripping heads and other end effectors
    • B25J15/06Gripping heads and other end effectors with vacuum or magnetic holding means
    • B25J15/0616Gripping heads and other end effectors with vacuum or magnetic holding means with vacuum
    • 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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding 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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B35/00Supplying, feeding, arranging or orientating articles to be packaged
    • B65B35/30Arranging and feeding articles in groups
    • B65B35/50Stacking one article, or group of articles, upon another before packaging
    • 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
    • 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
    • B65G47/905Control arrangements
    • 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
    • B65G47/91Devices for picking-up and depositing articles or materials incorporating pneumatic, e.g. suction, grippers
    • B65G47/917Devices for picking-up and depositing articles or materials incorporating pneumatic, e.g. suction, grippers control arrangements
    • 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
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1687Assembly, peg and hole, palletising, straight line, weaving pattern movement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/04Detection means
    • B65G2203/041Camera
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39101Cooperation with one or more rotating workpiece holders, manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40006Placing, palletize, un palletize, paper roll placing, box stacking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40067Stack irregular packages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Manipulator (AREA)
  • Loading Or Unloading Of Vehicles (AREA)
  • Image Analysis (AREA)

Abstract

Ein System und ein Verfahren zum Betreiben eines Robotersystems, um Objekte in Containern zu platzieren, die Stützwänden aufweisen, werden offenbart. Das Robotersystem kann einen Packplan zum Stapeln von Objekten übereinander ableiten. Das Robotersystem kann Platzierungsstandorte für ein oder mehrere Objekte ableiten, die über ein oder mehrere darunter liegende Stützobjekte hinausragen. Die abgeleiteten Platzierungsstandorte können auf der Verwendung einer oder mehrerer der Stützwände basieren, um das platzierte Objekt zu sichern.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG(EN)
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der Seriennummer 62/931,161, eingereicht am 19. November 2019, die in ihrer Gesamtheit durch Verweis in die vorliegende Schrift aufgenommen ist.
  • TECHNISCHES GEBIET
  • Die vorliegende Technologie bezieht sich im Allgemeinen auf Robotersysteme und insbesondere auf Systeme, Prozesse und Techniken für das Packen von Objekten innerhalb von Containern.
  • ALLGEMEINER STAND DER TECHNIK
  • Aufgrund ihrer ständig wachsenden Leistung und sinkenden Kosten werden nun viele Roboter (z. B. Maschinen, die konfiguriert sind, um physikalische 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. Bei der Ausführung der Aufgaben können die Roboter menschliche Handlungen replizieren, wodurch menschliches Eingreifen, das anderenfalls zur Durchführung gefährlicher oder sich wiederholender Aufgaben erforderlich wäre, ersetzt oder reduziert wird.
  • Trotz der technischen Fortschritte fehlt Robotern jedoch oftmals die Ausgereiftheit, die notwendig ist, um menschliches Feingefühl und/oder menschliche Anpassungsfähigkeit, das bzw. die für die Ausführung komplexerer und komplizierter Aufgaben erforderlich ist, zu duplizieren. Beispielsweise fehlt Robotern oftmals die Detailtiefe für die Steuerung und Flexibilität bei den ausgeführten Handlungen, um verfügbare Ressourcen vollumfänglich zu nutzen. Roboter sind häufig auch nicht in der Lage, 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.
  • Figurenliste
    • 1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem mit einem wandbasierten Packmechanismus arbeiten kann.
    • 2 ist ein Blockdiagramm, welches das Robotersystem gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie veranschaulicht.
    • 3 ist eine Veranschaulichung des Robotersystems gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 4A-4D sind Veranschaulichungen von beispielhaften Objektcontainern gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 5A-5C sind Veranschaulichungen eines beispielhaften Endeffektors gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 6 ist eine Veranschaulichung eines beispielhaften diskretisierten Modells von Packkomponenten gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 7A ist eine Veranschaulichung eines beispielhaften Packplans gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 7B ist eine Veranschaulichung eines Platzierungsplanungsprozesses gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 7C ist eine Veranschaulichung von Platzierungsregeln gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 8A und 8B sind Veranschaulichungen von verschiedenen Aspekten einer Stützungsberechnung gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 9A-9C sind veranschaulichte Aspekte einer beispielhaften Bewegungsplanberechnung gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 10 veranschaulicht beispielhafte Echtzeitsensordaten gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 11 ist ein Ablaufdiagramm für ein erstes beispielhaftes Verfahren zum Betreiben des Robotersystems aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
    • 12 ist ein Ablaufdiagramm für ein zweites beispielhaftes Verfahren zum Betreiben des Robotersystems aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie.
  • DETAILLIERTE BESCHREIBUNG
  • Systeme und Verfahren für Robotersysteme mit wandbasierten Packmechanismen sind in der vorliegenden Schrift beschrieben. Ein Robotersystem (z. B. ein integriertes System von Vorrichtungen, das eine oder mehrere festgelegte Aufgaben ausführt), das gemäß einigen Ausführungsformen konfiguriert ist, stellt eine verbesserte Steuerung, Anwendbarkeit und Flexibilität durch Packen von Objekten (z. B. Paketen, Kartons, Verpackungen usw.) in Bezug auf Containerwände bereit. Beispielsweise kann das Robotersystem die Objekte in Schichten stapeln, wobei ein oder mehrere Objekte über einer Basisschicht (1) eine oder mehrere Behälterwände berühren oder an diese lehnen und/oder (2) über ein oder mehrere Basisschichtobjekte, die der Containerwand am nächsten liegen, hinausragen (z. B. seitlich über die Randkante(n) hervorstehen).
  • Das Robotersystem kann die Objekte in Bezug auf die Containerwände (z. B. vertikal ausgerichtete Wände oder Trennwände von Wagen, Käfigen, Behältern, Kisten usw.) verpacken, indem verschiedene Packkomponenten diskretisiert werden. Einige Beispiele für die Packkomponenten können Objekte beinhalten (z. B. registrierte oder erwartete Objekte und/oder nichterkannte Objekte), Container oder Packplattformen, die dazu konfiguriert sind, die Objekte aufzunehmen, und/oder Robotermanipulatoren (z. B. ein Endeffektor, ein Roboterarm, ein Teil davon oder eine Kombination davon). Das Robotersystem kann diskretisierte Modelle der Packkomponenten erzeugen.
  • Unter Verwendung der diskretisierten Modelle kann das Robotersystem einen Packplan ableiten, der die Platzierungsstandorte von Objekten in den Containern identifiziert. Der Packplan kann die Platzierungsstandorte enthalten, an denen Objekte übereinandergestapelt werden (z. B. in Schichten). Das Robotersystem kann Trennabstände zwischen Objekten und/oder zwischen Objekten und den Containerwänden, Überstandsabstände oder -teile, andere Objekt-zu-Objekt-Messungen und/oder andere Objekt-zu-Container-Messungen berechnen/schätzen. Basierend auf den Berechnungen kann das Robotersystem den Packplan mit Platzierungsstandorten ableiten, an denen sich das platzierte Objekt die Containerwand berührt/an diese anlehnt und/oder über ein oder mehrere Objekte darunter hinausragt. In einigen Ausführungsformen kann das Robotersystem den Ort des Massenschwerpunkts (center-of-mass - CoM), Drehpunkt, Masse/Gewicht, Abmessungen und/oder andere physikalische Merkmale der Objekte ableiten und nutzen, um den Packplan abzuleiten.
  • In einigen Ausführungsformen kann das Robotersystem Bewegungspläne ableiten, die dem Packplan entsprechen. Jeder Bewegungsplan kann einem Objekt entsprechen und einen Bewegungsweg oder einen entsprechenden Satz von Befehlen/Einstellungen für das Objekt und/oder die Robotereinheiten (z. B. einen Roboterarm und/oder einen Endeffektor) beinhalten. Der Bewegungsplan kann Operationen der Robotereinheiten entsprechen, um sich einem Objekt an seinem Startort zu nähern, das Objekt mit dem Endeffektor zu greifen, das Objekt anzuheben und an seinen Platzierungsstandort zu übertragen und das Objekt an dem Platzierungsstandort freizugeben/zu platzieren.
  • Das Robotersystem kann den Packplan umsetzen, wie etwa durch Kommunizieren eines oder mehrerer Bewegungspläne und/oder entsprechender Befehle/Einstellungen an Zielrobotereinheiten. Das Robotersystem kann den Packplan ferner umsetzen, indem es die Befehle/Einstellungen an den Zielrobotereinheiten ausführt. Dementsprechend kann das Robotersystem die Robotereinheiten betreiben, um die Objekte gemäß dem Packplan von den Startorten zu den jeweiligen Platzierungsstandorten zu übertragen.
  • Das Robotersystem kann dazu konfiguriert sein, den Packplan dynamisch anzupassen, um unerwartete Bedingungen (z. B. Containeranomalien) zu berücksichtigen. Beispielsweise können Container (z. B. zweiwandige Wagen und/oder dreiwandige Käfige) vertikal ausgerichtete Wände beinhalten, die verformt, gebogen, falsch ausgerichtet, teilweise geschlossen sein können und/oder sich anderweitig physikalisch von den erwarteten Bedingungen unterscheiden können. Derartige unerwarteten Bedingungen können sich auf einen Platzierungsbereich innerhalb des Containers und/oder auf Annäherungswege in den Platzierungsbereich auswirken. Das Robotersystem kann derartige unerwartete Zustände erkennen und den Packplan dynamisch anpassen. Wie nachfolgendstehend ausführlich beschrieben, kann das Robotersystem die diskretisierten Modelle dazu verwenden, einen achsenausgerichteten Begrenzungsrahmen (axis aligned bounding box - AABB) zu bestimmen, den AABB zu versetzen und/oder den Versatz des AABB zu validieren. Basierend auf den dynamischen Anpassungen kann das Robotersystem auch die Bewegungspläne aktualisieren, um die unerwarteten Bedingungen zu berücksichtigen. In einigen Ausführungsformen kann das Robotersystem von eingestellten Objektplatzierungsstandorten ausgehen und sich schrittweise rückwärts zu den Startorten bewegen, um die Bewegungspläne zu bestimmen. Das Robotersystem kann ein diskretisiertes Modell des Endeffektors entlang des Rückwärtsbewegungsweges platzieren, um die Bewegungspläne zu aktualisieren und/oder zu validieren.
  • In der nachstehenden Beschreibung sind zahlreiche spezifische Details dargelegt, um ein tiefgreifendes Verständnis der vorliegend offenbarten Technologie zu gewährleisten. In anderen Ausführungsformen können die hier eingeführten Techniken ohne diese spezifischen Details in die Praxis umgesetzt werden. In anderen Fällen sind hinlänglich bekannte Merkmale, wie etwa spezifische Funktionen oder Routinen, nicht näher beschrieben, um die vorliegende Offenbarung nicht unnötig unklar 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 in der vorliegenden Schrift 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 beispielsweise eines Flash-Laufwerks und/oder eines anderen geeigneten Mediums.
  • Die Begriffe „gekoppelt“ und „verbunden“ samt deren Ableitungen können in der vorliegenden Schrift verwendet werden, um strukturelle Beziehungen zwischen den Komponenten zu beschreiben. Es versteht sich, dass diese Begriffe nicht als Synonyme füreinander bestimmt sind. Vielmehr kann „verbunden“ in bestimmten Ausführungsformen verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem Kontakt miteinander stehen. Sofern aus dem Kontext nicht anderweitig ersichtlich, kann der Begriff „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehr Elemente entweder in direktem oder in indirektem Kontakt (mit anderen Zwischenelementen dazwischen) miteinander stehen oder dass die zwei oder mehr Elemente miteinander wirken oder interagieren (z. B. als eine Ursache-Wirkung-Beziehung, wie etwa für die Signalübertragung/den Signalempfang oder für Funktionsaufrufe) oder beides.
  • Geeignete Umgebungen
  • 1 ist eine Veranschaulichung einer beispielhaften Umgebung, in der ein Robotersystem 100 mit einem wandbasierten Packmechanismus arbeiten kann. Das Robotersystem 100 kann eine oder mehrere Einheiten (z. B. Roboter) umfassen und/oder mit diesen kommunizieren, die konfiguriert sind, eine oder mehrere Aufgaben auszuführen. Aspekte des wandbasierten 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 einem anderen Beispiel kann die Aufgabe das Platzieren der Objekte an einem Zielstandort (z. B. oben auf einer Palette und/oder innerhalb einer Tonne/eines Korbs/einer Kiste/eines Behälters) umfassen. Wie nachfolgend beschrieben, kann das Robotersystem Pläne (z. B. Platzierungsstandorte/-ausrichtungen, Sequenz für das Übertragen der Objekte und/oder entsprechende Bewegungspläne) für das Platzieren und/oder Stapeln der Objekte ableiten. Jede der Einheiten kann konfiguriert sein, um eine Sequenz von Handlungen (z. B. durch Betreiben einer oder mehrerer Komponenten darin) entsprechend einem oder mehreren der abgeleiteten Pläne 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 einem Startstandort 114 zu einem Aufgabenstandort 116 umfassen. Beispielsweise kann die Entladeeinheit 102 (z. B. ein Containerentladeroboter) dazu konfiguriert sein, das Zielobjekt 112 von einem Standort auf einem Träger (z. B. einem Lastkraftwagen) zu einem Standort auf einer Fördervorrichtung zu übertragen. Außerdem kann die Übertragungseinheit 104 dazu konfiguriert sein, das Zielobjekt 112 von einem Standort (z. B. der Fördervorrichtung, einer Palette oder einem Gefäß) zu einem anderen Standort (z. B. einer Palette, einem Gefäß usw.) zu übertragen. In einem anderen Beispiel kann die Übertragungseinheit 104 (z. B. ein Palettierungsroboter) dazu konfiguriert sein, das Zielobjekt 112 von einem Startstandort (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 derLadeeinheit 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 einem Lagerstandort (z. B. einem Standort 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 konfiguriert sein kann, um 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 beispielsweise eine Depalettierungseinheit für das Übertragen der Objekte von Korbwagen oder Paletten auf Fördervorrichtungen oder andere Paletten, eine Containerwechseleinheit für das Übertragen der Objekte von einem Container auf einen anderen, eine Packeinheit für das Einwickeln der Objekte, eine Sortiereinheit für das Gruppieren von Objekten gemäß einer oder mehreren Eigenschaften davon, eine Stückaufnahmeeinheit für das unterschiedliche Steuern (z. B. Sortieren, Gruppieren und/oder Übertragen) der Objekte gemäß einer oder mehreren Eigenschaften davon oder eine Kombination davon umfassen.
  • Das Robotersystem 100 kann physikalische oder strukturelle Elemente (z. B. Robotersteuerarme), die zur Bewegung an Gelenken verbunden sind (z. B. Rotations- und/oder Translationsverschiebungen), umfassen und/oder mit diesen gekoppelt sein. 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 (z. B. Motoren, Aktoren, Drähte, künstliche Muskeln, elektroaktive 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 Transportmotoren umfassen, die konfiguriert sind, um die entsprechenden Einheiten/Gehäuse von Ort zu Ort zu transportieren.
  • Das Robotersystem 100 kann Sensoren umfassen, die konfiguriert sind, um Informationen zu erhalten, die verwendet werden, um die Aufgaben umzusetzen, wie etwa zum Steuern der strukturellen Elemente und/oder zum Transportieren der Robotereinheiten. Die Sensoren können Vorrichtungen umfassen, die konfiguriert sind, um eine oder mehrere physikalische Eigenschaften des Robotersystems 100 (z. B. einen Zustand, eine Bedingung und/oder einen Standort von einem oder mehreren strukturellen Elementen/Gelenken davon) und/oder einer unmittelbaren Umgebung zu erkennen oder zu messen. Einige Beispiele der Sensoren können Beschleunigungsmesser, Gyroskope, Kraftsensoren, Dehnungsmesser, Berührungssensoren, Drehmomentsensoren, Positionscodierer usw. umfassen.
  • In einigen Ausführungsformen können die Sensoren beispielsweise eine oder mehrere Bildgebungsvorrichtungen (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 können Darstellungen der erkannten 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 nachstehend näher beschrieben, kann das Robotersystem 100 das digitale Bild und/oder die Punktwolke verarbeiten, um das Zielobjekt 112, den Startstandort 114, den Aufgabenstandort 116, eine Stellung des Zielobjekts 112, ein Konfidenzmaß bezüglich des Startstandorts 114 und/oder der Stellung oder eine Kombination davon zu erkennen.
  • Zur Steuerung des Zielobjekts 112 kann das Robotersystem 100 ein Bild eines festgelegten Bereichs (z. B. einem Aufnahmestandort, wie etwa innerhalb des Lastkraftwagens oder auf der Fördervorrichtung) aufnehmen und auswerten, um das Zielobjekt 112 und den Startstandort 114 davon zu erkennen. Gleichermaßen kann das Robotersystem 100 ein Bild eines anderen festgelegten Bereichs (z. B. eines Ablagestandorts zum Anordnen von Objekten auf der Fördervorrichtung, einem Standort zum Anordnen von Objekten innerhalb des Containers oder einem Standort auf der Palette zum Stapeln) aufnehmen und auswerten, um den Aufgabenstandort 116 zu erkennen. Beispielsweise können die Bildgebungsvorrichtungen eine oder mehrere Kameras, die konfiguriert sind, um Bilder des Aufnahmebereichs zu erzeugen, und/oder eine oder mehrere Kameras, die konfiguriert sind, um Bilder des Aufgabenbereichs (z. B. Ablagebereichs) zu erzeugen, umfassen. Auf Grundlage der erfassten Bilder, wie nachstehend beschrieben, kann das Robotersystem 100 den Startstandort 114, den Aufgabenstandort 116, die assoziierten Stellungen, einen Pack-/Platzierungsplan, eine Übertragungs-/Packsequenz und/oder andere Verarbeitungsergebnisse ermitteln.
  • In einigen Ausführungsformen können zu den Sensoren beispielsweise Positionssensoren (z. B. Positionscodierer, Potentiometer usw.) gehören, die konfiguriert sind, um Positionen von strukturellen Elementen (z. B. den Roboterarmen und/oder den Endeffektoren) und/oder entsprechenden Gelenken des Robotersystems 100 zu erkennen. Das Robotersystem 100 kann die Positionssensoren verwenden, um Standorte und/oder Ausrichtungen der strukturellen Elemente und/oder der Gelenke während der Ausführung der Aufgabe zu verfolgen.
  • Geeignetes System
  • 2 ist ein Blockdiagramm, welches das Robotersystem 100 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie veranschaulicht. In einigen Ausführungsformen kann das Robotersystem 100 (z. B. an einer/einem oder mehreren der Einheiten und/oder Roboter, wie vorstehend beschrieben) beispielsweise 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. Beispielsweise 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-ComputerSystem-Interface(SCSI)-Bus, einen Universal-Serial-Bus (USB), einen IIC(I2C)-Bus oder einen Institute-of-Electrical-and-Electronics-Engineers(IEEE)-Standard-1394-Bus (auch als „Firewire“ bezeichnet), umfassen. Beispielsweise kann das Robotersystem 100 zudem Brücken, Adapter, Prozessoren oder andere signalbezogene Vorrichtungen zum Bereitstellen der drahtgebundenen Verbindungen zwischen den Vorrichtungen umfassen. Die drahtlosen Verbindungen können beispielsweise auf zellulären Kommunikationsprotokollen (z. B. 3G, 4G, LTE, 5G usw.), drahtlosen Local-Area-Network(LAN)-Protokollen (z. B. Wireless Fidelity (WiFi)), Peer-to-Peer- oder Vorrichtung-zu-Vorrichtung-Kommunikationsprotokollen (z. B. Bluetooth, Nachbereichskommunikation (NFC) usw.), Internet-der-Dinge(Internet of Things - IoT)-Protokollen (z. B. NB-IoT, LTE-M usw.) und/oder anderen drahtlosen Kommunikationsprotokollen basieren.
  • Die Prozessoren 202 können Datenprozessoren (z. B. zentrale Verarbeitungseinheiten (central processing units - CPU), Spezialcomputer und/oder integrierte Server) umfassen, die konfiguriert sind, um Anweisungen (z. B. Software-Anweisungen), die in den Speichervorrichtungen 204 (z. B. Computerspeicher) gespeichert sind, auszuführen. In einigen Ausführungsformen können die Prozessoren 202 in einer separaten/eigenständigen Steuerung enthalten sein, die mit den anderen in 2 veranschaulichten elektronischen/elektrischen Vorrichtungen und/oder den in 1 veranschaulichten Robotereinheiten wirkgekoppelt sind. Die Prozessoren 202 können die Programmanweisungen umsetzen, um andere Vorrichtungen zu steuern bzw. eine Schnittstelle damit zu bilden, wodurch das Robotersystem 100 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 umfassen.
  • 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. Beispielsweise können die Speichervorrichtungen 204 Stammdaten 252 speichern, zu denen Beschreibungen von Objekten (z. B. Kartons, Behälter und/oder Produkte) gehören, die von dem Robotersystem 100 gesteuert werden können. In einer oder mehreren Ausführungsformen können zu den Stammdaten 252 Registrierungsdaten 254 für jedes derartige Subjekt gehören. Zu den Registrierungsdaten 254 können eine Abmessung, eine Form (z. B. Vorlagen für mögliche Stellungen und/oder von Computern erzeugte Modelle für das Erkennen des Objektes in unterschiedlichen Stellungen), ein Farbschema, ein Bild, Kenninformationen (z. B. Barcodes, Quick-Response(QR)-Codes, Logos usw. und/oder erwartete Standorte davon), ein erwartetes Gewicht, andere physikalische/visuelle Eigenschaften oder eine Kombination davon für die Objekte gehören, die von dem Robotersystem 100 erwartungsgemäß zu steuern sind. In einigen Ausführungsformen können zu den Stammdaten 252 steuerungsbezogene Informationen bezüglich der Objekte gehören, wie etwa ein Massenschwerpunkt (center of mass - CoM) an jedem der Objekte oder eine Schätzung davon, 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.
  • Die Kommunikationsvorrichtungen 206 können Schaltungen umfassen, die konfiguriert sind, um über ein Netzwerk mit externen oder entfernten 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 den 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 physikalische 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, elektroaktive Polymere usw.) umfassen, die konfiguriert sind, um die strukturellen Elemente um oder an einem entsprechenden Gelenk 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 physikalische Eigenschaften des Robotersystems 100 (z. B. einen Zustand, eine Bedingung und/oder einen Standort 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, den Startstandort 114 aus 1, den Aufgabenstandort 116 aus 1, eine Stellung des Zielobjekts 112, ein Konfidenzmaß bezüglich des Startstandorts 114 und/oder der Stellung oder eine Kombination davon zu identifizieren.
  • Zur Steuerung des Zielobjektes 112 kann das Robotersystem 100 (z. B. über die verschiedenen vorstehend beschriebenen Schaltungen/Vorrichtungen) ein Bild eines festgelegten Bereichs (z. B. eines Aufnahmestandorts, wie etwa innerhalb des Lastkraftwagens oder auf dem Förderband) erfassen und analysieren, um das Zielobjekt 112 und den Startstandort 114 davon zu erkennen. Gleichermaßen kann das Robotersystem 100 ein Bild eines anderen festgelegten Bereichs (z. B. eines Ablagestandorts zum Anordnen von Objekten auf der Fördervorrichtung, einem Standort zum Anordnen von Objekten innerhalb des Containers oder einem Standort auf der Palette zum Stapeln) aufnehmen und auswerten, um den Aufgabenstandort 116 zu erkennen. Beispielsweise können die Bildgebungsvorrichtungen 222 eine oder mehrere Kameras, die konfiguriert sind, um Bilder des Aufnahmebereichs zu erzeugen, und/oder eine oder mehrere Kameras, die konfiguriert sind, um Bilder des Aufgabebereichs (z. B. Ablagebereichs) zu erzeugen, umfassen. Auf Grundlage der erfassten Bilder, wie nachstehend beschrieben, kann das Robotersystem 100 den Startstandort 114, den Aufgabenstandort 116, die assoziierten Stellungen, einen Pack-/Platzierungsplan, eine Übertragungs-/Packsequenz und/oder andere Verarbeitungsergebnisse ermitteln.
  • In einigen Ausführungsformen können die Sensoren 216 beispielsweise Positionssensoren 224 (z. B. Positionscodierer, Potentiometer usw.) umfassen, die konfiguriert sind, um Positionen von strukturellen Elementen (z. B. den Roboterarmen und/oder den Endeffektoren) und entsprechenden Gelenken des Robotersystems 100 zu erkennen. Das Robotersystem 100 kann die Positionssensoren 224 verwenden, um Standorte und/oder Ausrichtungen der strukturellen Elemente und/oder der Gelenke während der Ausführung der Aufgabe zu verfolgen.
  • Beispielhaftes Übertragen und Packen von Objekten
  • 3 ist eine Veranschaulichung des Robotersystems 100 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Robotersystem 100 kann einen Roboterarm 302, der einen Endeffektor 304 (z.B. einen Greifer) beinhaltet, beinhalten oder mit diesem kommunikativ gekoppelt sein. Der Roboterarm 302 kann eine der in 1 dargestellten Robotereinheiten oder ein Teil davon sein (z. B. ein Exemplar der Übertragungseinheit 104 aus 1). Beispielsweise kann der Roboterarm 302 ein industrielles Robotersystem beinhalten, das in industriellen Anwendungen einschließlich Packhandhabungsanwendungen eingesetzt wird. Der Roboterarm 302 kann entlang oder um eine Anzahl von Achsen angelenkt sein, beispielsweise für sechsachsige industrielle Roboterarmstrukturen.
  • Der Roboterarm 302 kann dazu konfiguriert sein, das Zielobjekt 112 zwischen dem Startstandort 114 aus 1 und dem Aufgabenstandort 116 aus 1 zu übertragen. Wie in 3 veranschaulicht, kann der Startstandort 114 einem Standort (z. B. einen End-/Eintrittspunkt) an einem Förderband 306 (z. B. ein Exemplar der Transporteinheit 106 aus 1) entsprechen. Der Aufgabenstandort 116 für den Roboterarm 302 kann eine Platzierungsplattform 308 (z. B. ein Container, wie etwa ein Wagen oder ein Käfig) oder ein Standort darin sein. Beispielsweise kann der Roboterarm 302 dazu konfiguriert sein, das Objekt 112 von dem Förderband 306 aufzunehmen und dieses auf/in der Platzierungsplattform 308 zu platzieren, damit ein Transport zu einem anderen Ziel/einer anderen Aufgabe erfolgen kann.
  • Der Endeffektor 304 kann eine beliebige Komponente oder Komponenten umfassen, die mit einem distalen Ende des Roboterarms 302 gekoppelt sind. Der Endeffektor 304 kann dazu konfiguriert sein, mit einem oder mehreren Objekten zu interagieren. In einigen Ausführungsformen kann der Endeffektor 304 einen Kraft-Drehmoment (force-torque - F-T)-Sensor (nicht gezeigt), eine Armschnittstelle, ein Greifersystem und/oder eine Greiferschnittstelle beinhalten. Zur Veranschaulichung ist gezeigt, dass der Endeffektor 304 Reihen von Saugnäpfen aufweist, wobei es sich jedoch versteht, dass der Endeffektor 304 eine andere Konfiguration aufweisen kann. Beispielsweise kann der Endeffektor 304 einen Saugnapf mit integrierten Saugkanälen, eine Greifvorrichtung vom Pincher-Typ oder eine andere Art von Greifsystem zum Greifen von Objekten aufweisen.
  • Das Robotersystem 100 kann im Rahmen der Durchführung des Übertragungsschrittes mit dem Roboterarm 302 einen oder mehrere der Sensoren 216 aus 2 verwenden. Das Robotersystem 100 kann einen Satz von Sensoren (z. B. 2D und/oder 3D-Sensoren wie etwa Kameras und/oder Tiefensensoren) an dem oder um den Startstandort 114 und/oder den Aufgabenstandort 116 beinhalten oder mit diesen gekoppelt sein. In einigen Ausführungsformen kann das Robotersystem 100 einen Draufsichtsensor 310, der sich über dem Aufgabenstandort 116 befindet und auf diesen gerichtet ist, und/oder einen Seitenansichtssensor 312, der sich neben dem Aufgabenstandort 116 befindet und seitlich auf diesen gerichtet ist, beinhalten oder mit diesem gekoppelt sein. Das Robotersystem 100 kann in ähnlicher Weise einen oder mehrere Quellensensoren 314 beinhalten, die auf den Startstandort 114 gerichtet sind. Die Sensoren können dazu konfiguriert sein, entsprechende Standorte abzubilden und/oder zu analysieren. Beispielsweise kann der Draufsichtsensor 310 Bilddaten, die eine Draufsicht auf die Platzierungsplattform 308 und/oder Objekte darauf darstellen, erzeugen und/oder verarbeiten. Ebenso kann der Seitenansichtsensor 312 Bilddaten, die eine Seitenansicht der Platzierungsplattform 308 und/oder Objekte darauf darstellen, erzeugen und/oder verarbeiten.
  • Das Robotersystem 100 kann die Bilddaten von den Sensoren 216 dazu verwenden, Aufgaben auszuführen, wie etwa zum Übertragen der Objekte von dem Startstandort 114 zu dem Aufgabenstandort 116. Dementsprechend kann das Robotersystem 100 die Bilddaten verwenden, um einen oder mehrere Packpläne und/oder Bewegungspläne abzuleiten und umzusetzen, um die Aufgaben auszuführen. Wie nachfolgend ausführlicher beschrieben, kann das Robotersystem 100 Packpläne und entsprechende Bewegungspläne ableiten und/oder dynamisch anpassen, um Objekte auf oder innerhalb der Platzierungsplattform 308 zu platzieren. Die Pläne können einem oder mehreren Objekten entsprechen, die über anderen Objekten platziert werden (z. B. Stapeln). Das Robotersystem 100 kann die verschiedenen Pläne so ableiten und/oder einstellen, dass das gestapelte Objekt (z. B. das auf einem unteren Objekt platzierte Objekt) so platziert wird, dass sich die umlaufenden Teile des Objekts seitlich über die peripheren Teile des unteren Objekts hinaus erstrecken. In einigen Fällen kann das Robotersystem 100 die Pläne so ableiten und/oder einstellen, dass die hervorstehenden gestapelten Objekte eine vertikal ausgerichtete Wand oder einen Teiler der Platzierungsplattform 308 berühren und/oder daran anlehnen. Dementsprechend kann das Robotersystem 100 die Packpläne und die Bewegungspläne ableiten, um die Platzierungszone innerhalb der Platzierungsplattform 308 effektiv zu vergrößern und die vertikal ausgerichteten Wände oder Trennwände zu verwenden, um Objekte darin zu tragen.
  • Wie ebenfalls nachfolgend ausführlicher beschrieben, kann das Robotersystem 100 die Packpläne und/oder die Bewegungspläne basierend auf dem Erkennen von Abnormitäten, die mit Platzierungsplattform 308 assoziiert sind, dynamisch einstellen. Beispielsweise kann das Robotersystem 100 Echtzeitbilder der tatsächlichen Platzierungsplattformen (z. B. Wagen und/oder Käfige), wie sie während des Betriebs des Robotersystems 100 platziert werden, erhalten. Das Robotersystem 100 kann die Echtzeitbilder analysieren, um Anomalien in den Platzierungsplattformen zu erkennen, wie etwa eine Reduzierung einer Platzierungszone (z. B. im Vergleich zu einem vorbestimmten oder erwarteten Raum), die durch teilweise Öffnung, Fehlausrichtung und/oder Verzug in den vertikalen Wänden verursacht wird. Basierend auf dem Erkennen der Anomalien in Echtzeit kann das Robotersystem 100 die Pläne dynamisch aktualisieren (z. B. am Bereitstellungsstandort und/oder unmittelbar vor dem Umsetzen/Auslösen der ursprünglich abgeleiteten Pläne). In einigen Ausführungsformen kann das Robotersystem 100 verschiedene verschobene Platzierungsstandorte testen und verifizieren. Das Robotersystem 100 kann ferner aktualisierte Bewegungspläne, die dem Platzierungsstandort entsprechen, gemäß den Echtzeitbedingungen testen.
  • Das Robotersystem 100 kann in ähnlicher Weise einen oder mehrere der Sensoren 216 verwenden, um den Roboterarm 302, den Endeffektor 304 und/oder das Zielobjekt 112 zu lokalisieren und zu verfolgen. In einigen Ausführungsformen kann das Robotersystem 100 den Standort (in 3 als Koordinatensatz (x, y, z) gezeigt) basierend auf Ablesungen von Positionssensoren verfolgen. Das Robotersystem 100 kann auch den Standort basierend auf den kommunizierten oder ausgeführten Befehlen/Einstellungen berechnen und verfolgen. Das Robotersystem kann die Standorte gemäß einem vorbestimmten Koordinatensystem oder einem Gitter bestimmen und verfolgen.
  • Beispiel für Platzierungsplattformen
  • 4A-4D sind Veranschaulichungen von beispielhaften Objektbehältern (z. B. die Platzierungsplattform 308 aus 3) gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. 4A ist eine Seitenansicht eines beispielhaften Wagens 410 und 4B ist eine Draufsicht des Wagens 410. Der Wagen 410 kann ein Objektbehälter sein, der eine Wagenbasis 412 und ein Paar gegenüberliegender Wagenseitenwände 414 aufweist. Beispielsweise kann die Wagenbasis 412 ein Grundriss (z. B. eine Umfangsform oder eine Silhouette einer Ansicht von oben oder unten) mit einer rechteckigen Form aufweisen. Die Wagenseitenwände 414 können an/über einem Paar gegenüberliegender umlaufender Kanten der Wagenbasis 412 befestigt sein oder darin integriert sein. Der Raum über den verbleibenden umlaufenden Kanten der Wagenbasis 412 kann offen oder frei bleiben.
  • 4C ist eine Seitenansicht eines beispielhaften Käfigs 420 und 4D ist eine Draufsicht des Käfigs 420. Der Käfig 420 kann ein Objektbehälter sein, der eine Käfigbasis 422 und drei vertikal ausgerichtete Wände aufweist (z. B. ein Paar gegenüberliegender Käfigseitenwände 424 und eine Käfigrückwand 426). Beispielsweise kann die Käfigbasis 422 ein Grundriss mit einer rechteckigen Form aufweisen. Die Käfigseitenwände 424 können an/über einem Paar gegenüberliegender umlaufender Kanten der Käfigbasis 422 befestigt sein oder darin integriert sein. Die Käfigrückwand 426 kann an/über einer der verbleibenden umlaufenden Kanten der Käfigbasis 422 befestigt sein oder darin integriert sein. Der Raum gegenüber der Käfigrückwand 426 kann offen oder frei bleiben.
  • Jede Platzierungsplattform 308 kann eine erwartete Platzierungszone 430 beinhalten, die durch getragene/geladene Objekte besetzt sein kann. Mit anderen Worten kann die erwartete Platzierungszone 430 einen beabsichtigten oder einen vorbestimmten Laderaum für die entsprechende Platzierungsplattform 308 darstellen. Unter Bezugnahme auf die 4A-4D zusammen kann sich die erwartete Platzierungszone 430 für den Wagen 410 und den Käfig 420 bis zu den vertikal ausgerichteten Wänden (z. B. den Wagenseitenwänden 414, den Käfigseitenwänden 424 und/oder der Käfigrückwand 426) erstrecken und/oder durch diese begrenzt sein. Dementsprechend kann das Robotersystem 100 Pläne ableiten, umsetzen und/oder ausführen, um Objekte in den Wagen 410 und/oder den Käfig 420 zu legen, so dass die Objekte die vertikal ausgerichteten Wänden berühren und/oder durch diese gestützt werden. Die Platzierungszone 430 kann seitlich (z. B. entlang der y-Achse) bis zu (z. B. vor oder komplanar/zusammenfallend mit) den offenen/freien Kanten der Wagenbasis 412 und/oder der Käfigbasis 422 oder darüber hinaus verlaufen. In ähnlicher Weise kann die Platzierungszone 430 vertikal (z. B. entlang der z-Achse) bis zu einer Oberkante der vertikal ausgerichteten Wände oder darüber hinaus verlaufen. Mit anderen Worten kann in einigen Fällen das Robotersystem 100 Pläne ableiten, umsetzen und/oder ausführen, um Objekte zu platzieren, so dass sich mindestens ein Teil des platzierten Objekts über der Oberkante der vertikal ausgerichteten Wände der entsprechenden Platzierungsplattform 308 befindet.
  • Beispiel Endeffektor
  • 5A-5C sind Veranschaulichungen eines beispielhaften Endeffektors (z. B. des Endeffektors 304 aus 3) gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. 5A und 5B sind eine Seitenansicht bzw. eine Draufsicht einer beispielhaften Greiferanordnung 502 und eines Teils des Roboterarms 302. In einigen Ausführungsformen kann die Greiferanordnung 502 einem vakuumbasierten Greifer entsprechen, der dazu konfiguriert ist, ein Vakuum zwischen der Greiferanordnung 502 und einem Objekt zu erzeugen, wodurch das Objekt relativ zu der Greiferanordnung 502 fixiert wird (z. B. Greifen des Objekts).
  • Die Greiferanordnung 502 kann Strukturelemente 512 (z. B. Drehgelenke, Verlängerungsarme usw.) beinhalten, die den Roboterarm 302 strukturell mit einem Greifer 514 koppeln. Der Greifer 514 kann Schaltungen, Motoren und/oder andere mechanische Komponenten, die dazu konfiguriert sind, eine Greifschnittstelle 516 zu betreiben, beinhalten, um ein oder mehrere Zielobjekte relativ zu dem Greifer 514 zu berühren und zu befestigen. In einigen Ausführungsformen kann die Greifschnittstelle 516 Saugnäpfe beinhalten, die von Aktoren und/oder anderen mechanischen Komponenten in dem Greifer 514 gesteuert werden. Der Greifer 514 kann dazu konfiguriert sein, ein Vakuum innerhalb eines Raums, der durch jeden der Saugnäpfe und die kontaktierte Oberfläche begrenzt ist, zu bilden und zu steuern, wodurch das Zielobjekt befestigt und gegriffen wird.
  • Die Greiferanordnung 502 kann andere Komponenten beinhalten. In einigen Ausführungsformen kann die Greiferanordnung 502 eine Kalibrierungsplatine 518 beinhalten, die dazu konfiguriert ist, Funktionen bereitzustellen, die dazu verwendet werden, die Position der Greiferanordnung 502 und/oder eines oder mehrerer Teile davon zu bestimmen. Die Kalibrierungsplatine 518 kann als Referenz in erhaltenen Bildern verwendet werden und/oder detaillierte Standortinformationen für den Kalibrierungsprozess angeben. Die Kalibrierungsplatine 518 kann an einer umlaufenden Kante des Greifers 514 befestigt oder in diese integriert sein und von der umlaufenden Kante weg verlaufen. In einigen Ausführungsformen kann die Kalibrierungsplatine 518 vertikal von einer oberen Oberfläche des Greifers 514 weg verlaufen. Die Kalibrierungsplatine 518 kann auch seitlich in Richtung der Strukturelemente 512 und/oder einem Mittelteil des Greifers 514 oder von diesem weg verlaufen.
  • Die Greiferanordnung 502 kann Abmessungen aufweisen, die durch das Robotersystem 100 vorbestimmt oder bekannt sind. Beispielsweise kann die Greiferanordnung 502 eine Anordnungshöhe 522, eine Grundlänge 524 und/oder eine Basisbreite 526 aufweisen. Die Anordnungshöhe 522 kann einem Abstand (z. B. entlang einer z-Achse) zwischen einem äußersten Teil der Strukturelemente (z. B. einem oberen Teil oder einem mit dem Roboterarm 302 verbundenen Teil) und einem Teil der Greifschnittstelle 516 gegenüber dem äußersten Teil entsprechen. Die Basislänge 524 und die Basisbreite 526 können seitlichen Abmessungen des Greifers 514 entsprechen, die entlang orthogonaler Richtungen (z. B. die x-Achse und die y-Achse) gemessen werden. Die Abmessungen können einer vorgegebenen Stellung/Anordnung der Greiferanordnung 502, die mit dem Eingreifen in oder Greifen des Zielobjekts verbunden ist, entsprechen.
  • In einigen Ausführungsformen können sich eine oder mehrere Abmessungen der Greiferanordnung 502 ändern, während ein Objekt gegriffen wird. 5C ist eine veranschaulichende Seitenansicht der Greiferanordnung 502 nach dem Greifen und Anheben des Zielobjekts 112 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Für vakuumbasierte Greifer kann eine erweiterte Schnittstellenhöhe 532 einer Höhe der Saugnäpfe in ihrem anfänglichen und nicht eingreifenden Zustand entsprechen. Beim Berühren, Erzeugen und Aufrechterhalten des Vakuums in den Saugnäpfen kann sich die Form der Saugnäpfe verändern und/oder zusammendrücken. Dementsprechend, wenn der Greifer 514 in das Zielobjekt 112 eingreift und dieses greift, kann die Greifschnittstelle 516 einer Eingriffsschnittstellenhöhe 534 entsprechen, die kleiner als die erweiterte Schnittstellenhöhe 532 ist. Dementsprechend kann sich die Baugruppenhöhe 522 reduzieren, wenn in das Zielobjekt 112 eingegriffen/dieses gegriffen wird. Das Robotersystem 100 kann die Änderung der Höhe (z. B. der Eingriffsschnittstellenhöhe 534) bestimmen oder identifizieren, um die Positionen des Greifers 514, des Zielobjekts 112 und/oder von Teilen davon genau zu bestimmen und zu verfolgen. In einigen Ausführungsformen kann das Robotersystem 100 die Eingriffsschnittstellenhöhe 534 vorbestimmen und in den Speichervorrichtungen 204 aus 2 gespeichert haben. In einigen Ausführungsformen kann das Robotersystem 100 die Eingriffsschnittstellenhöhe 534 in Echtzeit (z. B. während des Einsetzens/Betriebs) basierend auf dem Erfassen und Analysieren von Bilddaten von dem Seitenansichtssensor 312 aus 3 nach dem Greifen des Zielobjekts 112 und Anheben des Greifers 514 um eine vorbestimmte Höhe bestimmen.
  • Beispiel für Diskretisierungsmodelle
  • 6 ist eine Veranschaulichung von beispielhaften diskretisierten Modellen 600 von Packkomponenten gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Die diskretisierten Modelle 600 können pixelierte Darstellungen der Packkomponenten beinhalten, wie z. B. die manipulierten/gepackten Objekte (z. B. die registrierten Objekte), Robotereinheiten oder Teile davon und/oder Objektbehälter (z. B. die Platzierungsplattform 308 aus 3). Beispielsweise können die diskretisierten Modelle 600 physikalische Größen/Formen der Packkomponenten gemäß Diskretisierungseinheiten 602 beschreiben (d. h. ein diskreter Bereich/Raum entsprechend vorgegebenen Abmessungen). Mit anderen Worten können die Diskretisierungseinheiten 602 Einheitspixeln entsprechen, wie etwa Polygonen (z. B. Quadraten oder Würfeln) mit einer oder mehreren Abmessungen, die der Diskretisierungslänge entsprechen.
  • In einigen Ausführungsformen kann die Diskretisierungseinheit 602 eine Länge beinhalten, die von einem Systembetreiber, einem Systementwickler, einer vorbestimmten Eingabe/Einstellung oder einer Kombination davon voreingestellt wird. In einigen Ausführungsformen können die Abmessungen der Diskretisierungseinheiten 602 während des Betriebs des Robotersystems 100 dynamisch eingestellt werden. In einigen Ausführungsformen kann sich die Größe der Einheitspixel 602 (z. B. der Diskretisierungseinheit) gemäß den Abmessungen der Objekte und/oder den Abmessungen der Ladeplattformen verändern. Die Größe der Diskretisierungseinheiten 602 (z. B. Pixel) 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.) an der Packgenauigkeit anzupassen. Wenn die Größe abnimmt, können die Rechenzeiten und die Packgenauigkeit basierend auf den resultierenden erhöhten Daten zunehmen. Dementsprechend stellt die Diskretisierung der Packaufgaben (z. B. die Zielpakete, die Endeffektoranordnung und die Packplattformen) unter Verwendung einstellbarer Diskretisierungseinheiten 602 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äß eindeutigen Szenarien, Mustern und/oder Umgebungen steuern.
  • Das Robotersystem 100 kann den Roboterarm 302 aus 3, den Endeffektor 304 aus 3, das Zielobjekt 112 aus 1, die Platzierungsplattform 308 (z. B. der Wagen 410 aus 4A und/oder der Käfig 420 aus 4B), bereits platzierte Objekte und/oder Teile davon über bekannte oder vorbestimmte Einheiten beschreiben oder darstellen. Somit kann das Robotersystem 100 einen durchgehenden Raum/Bereich der realen Welt in computerlesbare digitale Informationen umwandeln. Ferner können die diskretisierten Daten eine reduzierte Rechenkomplexität beim Beschreiben der von den Packkomponenten belegten Räume und beim Vergleichen verschiedener Paketplatzierungsstandorte bereitstellen. Beispielsweise können die Paketabmessungen ganzen Zahlen von Diskretisierungseinheiten anstelle von Echtwelt-Dezimalzahlen entsprechen, was die Komplexität von zugehörigen mathematischen Berechnungen reduziert.
  • Das Robotersystem 100 kann die diskretisierten Modelle 600 verwenden, die durch einen Diskretisierungsmechanismus erzeugt werden (z. B. einen Prozess, eine Schaltung, eine Funktion und/oder eine Routine). In einigen Fällen können die diskretisierten Modelle 600 von einer externen Quelle (z. B. einem Hersteller, einem Händler, einem Kunden usw.) bereitgestellt werden. Das Robotersystem 100 kann auch die diskretisierten Modelle 600 basierend auf der Segmentierung von Zieldaten (z. B. Bilddaten, Formvorlagen und/oder andere digitalisierte physikalische Darstellungen), die für die Packkomponenten repräsentativ sind, erzeugen. Das Robotersystem 100 kann tatsächliche Merkmale 606 (z. B. Kanten und/oder Ecken) in den Segmentierungszieldaten identifizieren, z. B. unter Verwendung von Kantenerkennungsmechanismen (z. B. eines Sobel-Filters). Basierend auf den identifizierten tatsächlichen Merkmalen 606 (durch durchgezogene Linien dargestellt) kann das Robotersystem 100 einen Referenzpunkt/-bereich 604 (z. B. eine Ecke, einen Mittelteil, einen mittleren Teil, eine visuelle Markierung und/oder ein Ortungsgerät) in den Segmentierungszieldaten bestimmen. Das Robotersystem 100 kann den Bezugsstandort 604 als Ursprungspunkt verwenden und dementsprechend die Segmentierungszieldaten unter Verwendung vorbestimmter Abmessungen und/oder Richtungen, die den Diskretisierungseinheiten 602 (durch gepunktete Linien dargestellt) entsprechen, teilen. Die resultierenden Segmente können die diskretisierten/pixelierten Einheiten der abgebildeten Komponente sein. Somit kann das Robotersystem 100 (z. B. über die Prozessoren 202 aus 2) durchgehende Flächen/Kanten von Objekten der realen Welt (z. B. Paketen, dem Roboterarm, dem Greifer, einem oder mehreren Teilen davon und/oder anderen Objekten, die mit der Aufgabe assoziiert sind) in diskrete Gegenstücke (z. B. Längeneinheiten und/oder Flächeneinheiten) abbilden.
  • In einigen Fällen stimmen die tatsächlichen Merkmale 606 möglicherweise nicht mit den Diskretisierungseinheiten 602 überein. Mit anderen Worten kann die Packkomponente eine Abmessung aufweisen, die eine dezimale/fraktionierte Komponente der Diskretisierungseinheiten (z. B. 1,2 Einheiten oder 3/4 Einheit) aufweist. Das Robotersystem 100 kann die diskretisierten Modelle 600 basierend auf dem Auf- oder Abrunden entsprechend dem Kontext erzeugen. Beispielsweise können die diskretisierten Modelle 600 Modellobjekte (z. B. das Zielobjekt 112 aus 1), die Platzierungsplattform 308 aus 3, der Roboterarm 302 aus 3 und/oder den Endeffektor 304 aus 3 sein oder beinhalten. Für Komponenten, die in die Objektbehälter (z. B. den Roboterarm 302, den Endeffektor 304 und/oder die Objekte) eintreten, kann das Robotersystem 100 die entsprechenden diskretisierten Modelle 600 erzeugen, indem die Abmessungen auf die Menge der Diskretisierungseinheiten 602 aufgerundet werden. Mit anderen Worten kann das Robotersystem 100 die diskretisierten Modelle 600 mit Modellgrenzen 608 (durch gestrichelte Linien dargestellt) jenseits der tatsächlichen Merkmale 606 der modellierten Komponenten erzeugen, die in den Wagen 410 aus 4 und/oder den Käfig 420 aus 4 gehen. Für die Objektbehälter (z. B. die Platzierungsplattform 308, wie etwa den Wagen 410 und/oder den Käfig 420) kann das Robotersystem 100 die entsprechenden diskretisierten Modelle 600 erzeugen, indem die Abmessungen auf die Menge der Diskretisierungseinheiten 602 abgerundet werden. Mit anderen Worten kann das Robotersystem 100 die diskretisierten Modelle 600 vor oder zwischen den tatsächlichen Merkmalen 606 der modellierten Komponenten erzeugen.
  • Das Robotersystem 100 kann die diskretisierten Modelle 600 mit der Modellgrenze 608 jenseits (z. B. getrennt von) den tatsächlichen Merkmalen 606 durch einen Trennungsabstand 610 erzeugen. Beispielsweise kann der Abstand 610 einem hinzugefügten Puffer entsprechen, so dass das Robotersystem 100 einen größeren Raum als die tatsächliche Komponente modelliert oder berücksichtigt, wie beispielsweise für den Endeffektor 304. Dementsprechend kann das Robotersystem 100 sicherstellen, dass die modellierte Komponente keine anderen Objekte/Strukturen während des Betriebs (z. B. beim Bewegen der Komponenten) berührt oder mit diesen kollidiert. Somit kann das Robotersystem 100 verringerte Kollisionsraten unter Verwendung der diskretisierten Modelle 600, die gemäß dem Trennungsabstand 610 erzeugt werden, bereitstellen. In einigen Ausführungsformen kann das Robotersystem 100 auch die diskretisierten Modelle 600 mit rechteckigen Querschnittsformen erzeugen, wobei die Modellgrenzen 608 mit den äußersten Teilen der modellierten Komponenten übereinstimmen oder auf diesen basieren. Dementsprechend kann das Robotersystem 100 eine weniger komplexe oder einfachere Verarbeitung (d. h. im Vergleich zur Berücksichtigung aller Kanten/Ecken/Merkmale) zum Prüfen von Standorten/Bewegungen für die modellierten Komponenten bereitstellen.
  • In einigen Ausführungsformen können die diskretisierten Modelle 600 vorbestimmt sein oder offline erzeugt werden (z. B. unabhängig von und vor einem entsprechenden Betrieb/einer entsprechenden Umsetzung) und in den Stammdaten 252 für den Zugriff während der Bereitstellung oder des Betriebs des Robotersystems 100 gespeichert werden. In anderen Ausführungsformen können die diskretisierten Modelle 600 in Echtzeit (z. B. während des Betriebs) basierend auf dem Erhalten von Bilddaten, die für den Startstandort 114 und/oder den Aufgabenstandort 116 repräsentativ, erzeugt werden.
  • Die diskretisierten Modelle 600 können die Formen, Abmessungen usw. der Packkomponenten in 2D und/oder 3D darstellen. Beispielsweise können die diskretisierten Modelle 600 ein Objektmodell (z. B. ein Objektgrundrissmodell 612 und/oder ein Objektprofilmodell 614) für jedes Exemplar oder jeden Typ eines registrierten oder abgebildeten Objekts beinhalten. Die diskretisierten Modelle 600 können auch ein Containermodell (z. B. ein Containergrundrissmodell 622 und/oder ein Containerprofilmodell 624) für jedes Exemplar oder jeden Typ der Platzierungsplattform 308 beinhalten. Die Containermodelle 622 und 624 können eine Platzierungsfläche (z. B. eine innere Bodenfläche eines Objektbehälters mit einer seitlichen Umhüllung, wie in den 4A-4D dargestellt) gemäß der Diskretisierungseinheit 602 darstellen. Die Containermodelle 622 und 624 können auf bekannten Objektbehältern oder Objektbehältern mit Standardgröße basieren. Darüber hinaus können die diskretisierten Modelle 600 ein Greifergrundrissmodell 632 und/oder ein Greiferprofilmodell 634 beinhalten, die Teile von Robotereinheiten darstellt, die zum Ausführen von Aufgaben verwendet werden, die mit dem Platzieren der Objekte (z. B. der Zielobjekte 112) auf/in der Platzierungsplattform 308 verbunden sind. Beispielsweise können die Greifermodelle 632 und/oder 634 den Endeffektor 304, den Roboterarm 302 und/oder Teile davon darstellen.
  • Die Grundrissmodelle können dem Umfang der modellierten Komponenten entlang einer seitlichen Ebene (z. B. x-y-Ebene) entsprechen. Die Profilmodelle können dem Umfang der modellierten Komponenten entlang einer vertikalen Ebene (z. B. x-z- und/oder y-z-Ebene) entsprechen. In einigen Ausführungsformen können die diskretisierten Modelle 600 3D-Modelle beinhalten.
  • Beispiel für Platzierungsplattformen
  • 7A ist eine Veranschaulichung eines beispielhaften Packplans 700 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Robotersystem 100 kann die diskretisierten Modelle 600 aus 6 dazu verwenden, den Packplan 700 abzuleiten, der abgeleitete Platzierungsstandorte für eine Reihe von Objekten innerhalb oder auf der Platzierungsplattform 308 aus 3 (z. B. einen Container) beinhaltet. Der Packplan 700 kann die Platzierungsstandorte und/oder die platzierten Objekte in 2D und/oder 3D darstellen. In einigen Ausführungsformen kann der Packplan 700 ein 3D-Modell sein. Der Packplan 700 kann einer Draufsicht 702 und/oder einer Seitenansicht 704, die seitliche und/oder vertikale Belegungen von Objekten, die innerhalb der erwarteten Platzierungszone 430 aus 4A platziert sind, entsprechen.
  • Für das in 7A veranschaulichte Beispiel können die Zielobjekte Objekte des ersten, zweiten und dritten Typs beinhalten, die dazu bestimmt sind, in ein Exemplar des Wagens 410 gepackt zu werden. Dementsprechend kann das Robotersystem 100 den Packplan 700 unter Verwendung eines ersten Objektmodells 706, eines zweiten Objektmodells 708 und eines dritten Objektmodells 710, die dem ersten, dem zweiten bzw. dem dritten Objekttyp entsprechen, und des Containermodells (z. B. das Containergrundrissmodell 622 und/oder das Containerprofilmodell 624) ableiten. Das Robotersystem 100 kann den Packplan 700 basierend auf dem Ableiten, Testen und Bewerten verschiedener Positionen der dem Containermodell überlagerten Objektmodelle ableiten. Gemäß den Regeln und/oder Bedingungen, die nachfolgend ausführlich beschrieben sind, kann das Robotersystem 100 den Packplan 700 ableiten, der den ersten und den zweiten Objekttyp in der unteren Schicht 712 (z. B. die unterste Schicht, die die Wagenbasis 412 aus 4A berührt) und den dritten Objekttyp in der gestapelten Schicht 722 platziert.
  • Das Robotersystem 100 kann den Packplan 700 zum Platzieren/Packen von Zielobjekten in die bezeichnete/zugewiesene Platzierungsplattform 308 ableiten. Das Robotersystem 100 kann den Packplan 700 basierend auf überlagernden Objektmodellen (z. B. Instanzen des Objektgrundrissmodells 612 aus 6 und/oder des Objektprofilmodells 614 aus 6) der Zielobjekte auf dem Containermodell (z. B. das Containergrundrissmodell 622 aus 6 und/oder das Containerprofilmodell 624 aus 6) der bezeichneten Platzierungsplattform 308 ableiten. Das Robotersystem 100 kann die entsprechenden Platzierungsstandorte gemäß einer Reihe vorgegebener Regeln und/oder Bedingungen ableiten und/oder prüfen. Das Robotersystem 100 kann iterativ Platzierungsstandorte für die Zielobjekte ableiten, um den Packplan 700 abzuleiten. Das Robotersystem 100 kann ferner den Packplan 700 und/oder einen entsprechenden Satz von Bewegungsplänen basierend auf der Minimierung des Ressourcenaufwands (z. B. Anzahl der Manöver, entsprechende Dauer usw.), Maximierung der Anzahl der gepackten Objekte und/oder Minimierung von Fehlern/Ausfällen (z. B. Stückverlust, Kollisionen usw.) ableiten.
  • Ferner kann das Robotersystem 100 den Packplan 700 zum Stapeln von Objekten übereinander, wie etwa in Schichten (z. B. einer unteren Schicht 712 und einer gestapelten Schicht 722), ableiten. Das Robotersystem 100 kann auch den Packplan 700 mit Objekten ableiten, die die vertikal ausgerichteten Wände des Containers (z. B. die Wagenseitenwände 414 aus 4A und/oder die Käfigseitenwände 424 aus 4C) berühren und/oder an diese anlehnen. Beispielsweise kann die untere Schicht 712 ein unterstes äußerstes Objekt 714 beinhalten, das einer Stützwand 725 (z. B. eine vertikal ausgerichtete Struktur des Containers, die die erwartete Platzierungszone 430, die dazu verwendet/bezeichnet sein kann, Objekte zu berühren/stützen) am nächsten liegt und durch eine Objekt-Wand-Trennung 726 (z. B. eine Entfernung und/oder eine Anzahl von Pixeln zwischen der Stützwand 725 und einer nächsten umlaufenden Kante/einem nächsten umlaufenden Punkt eines entsprechenden direkt benachbarten Objekts) getrennt ist. Objekte/Wände können direkt benachbart sein, wenn kein anderes Objekt den Raum zwischen dem entsprechenden Objektpaar einnimmt, wie etwa entlang einer seitlichen Richtung. Die obere gestapelte Schicht 722 kann ein gestapeltes Objekt 724 beinhalten, das zumindest teilweise auf dem untersten äußersten Objekt 714 angeordnet ist und von diesem getragen wird. Periphere Teile des gestapelten Objekts 724 können seitlich über eine umlaufende Kante des untersten äußersten Objekts 714 hinausragen. Die umlaufende Kante/Fläche des gestapelten Objekts 724 (z. B. eine vertikal ausgerichtete Fläche/Kante und/oder eine obere Ecke/Kante) kann näher an der Stützwand 725 sein oder diese berühren. Das Robotersystem 100 kann den Packplan 700 mit dem Platzierungsstandort für das gestapelte Objekt 724 (z. B. hinter dem unteren äußersten Objekt 714 überstehend/hervorstehend und/oder die Stützwand 725 berührend) basierend auf der Objekt-Wand-Trennung 726 ableiten. In einigen Ausführungsformen, wenn die Kante/Fläche des nächsten Objekts nicht parallel zu der Stützwand 725 ist, kann das Robotersystem 100 die Objekt-Wand-Trennung 726 als einen Mittelwert der entsprechenden Abstände berechnen. Das Robotersystem 100 kann den Packplan 700 ferner gemäß den Objektreferenzstandorten 728, wie etwa CoM-Standorten und/oder Mittelteilen, der Zielobjekte ableiten. Details bezüglich der Ableitung sind nachfolgend beschrieben.
  • In einigen Ausführungsformen kann das Robotersystem 100 einen achsenausgerichteten Begrenzungsrahmen (AABB) 730 für eine Reihe von Objekten, die zur Platzierung in dem Container bestimmt sind, ableiten und verwenden. Mit anderen Worten kann der AABB 730 eine bestimmte ebene Form (z. B. ein Rechteck) sein, die die äußersten Teile der Objekte gemäß dem abgeleiteten Platzierungsplan umfasst und/oder mit diesen zusammenfällt. Für das in 7A veranschaulichte Beispiel kann der AABB 730 ein Satz von Rechtecken sein, die gemäß einem Satz vorbestimmter Achsen (z. B. x-, y- und z-Achsen), die mit den äußersten Punkten der Objekte in dem Packplan 700 zusammenfallen, ausgerichtet sind. Der AABB 730 kann eine Gesamtgröße (z. B. Packgröße) des Packplans 700 darstellen. Das Robotersystem 100 kann den AABB 730 ableiten und verwenden, um den Packplan 700 einzustellen und unerwartete Bedingungen der realen Welt (z. B. teilweise geöffnete Container und/oder verzogene Containerwände) zu berücksichtigen. Wie nachfolgend detailliert beschrieben, kann das Robotersystem 100 den AABB 730 zum Ändern oder Verschieben der Platzierung oder der Position der Objekte (z. B. den Packplan 700) ableiten und verwenden. In einigen Ausführungsformen kann das Robotersystem 100 unter Verwendung des AABB 730 den gesamten Stapel von Objekten für den Packplan 700 als ein einzelnes Objekt betrachten. Der AABB 730 kann gemäß den vorstehend beschriebenen diskretisierten Einheiten abgeleitet werden.
  • 7B ist eine Veranschaulichung eines Platzierungsplanungsprozesses gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Robotersystem 100 aus 1 kann (z. B. über den einen oder die mehreren Prozessoren 202 aus 2) den Packplan 700 aus 7A für eine Reihe von verfügbaren Paketen 742 ableiten. Die verfügbaren Pakete 742 können den Objekten entsprechen, die für einen ausgehenden Versand und/oder eine Lagerung gepackt werden müssen oder dafür vorgesehen sind. Beispielsweise können die verfügbaren Pakete 742 eingehenden Objekten, die über einen eingehenden Versand aufgenommen wurden, und/oder gelagerten Objekten, die für einen ausgehenden Versand beauftragt wurden, entsprechen. In einigen Ausführungsformen kann das Robotersystem 100 einen Ladungsverzeichnis, eine Auftragsliste usw. verwenden, um die verfügbaren Pakete 742 in Echtzeit zu identifizieren, wie etwa direkt als Reaktion auf das Empfangen des Plans, der Liste usw. (d. h. innerhalb einer Schwellendauer davon). Dementsprechend kann das Robotersystem 100 die identifizierten verfügbaren Pakete 742 dazu verwenden, den Packplan 700 in Echtzeit abzuleiten. Demnach kann das Robotersystem 100 Echtzeit-Bedingungen, -Verfügbarkeit und/oder -Notwendigkeiten verwenden, um den Packplan 700 abzuleiten, anstelle von systemunabhängigen Packsimulatoren, die eine hypothetische Anzahl/Reihe/Kombination von Paketen verwenden, um Pläne abzuleiten, die unabhängig von Echtzeit-Bedingungen angewandt werden. In einigen Ausführungsformen kann das Robotersystem 100 Vorrichtungen (z. B. einen oder mehrere der Prozessoren 202) verwenden, die sich an der Position zum Aufnehmen, Lagern und/oder Senden der Objekte befinden, wie etwa einem Versandzentrum und/oder einem Lager. In anderen Ausführungsformen kann das Robotersystem 100 die erwarteten Bedingungen verwenden, um Packableitungen offline umzusetzen.
  • Beim Ableiten der Packpläne kann das Robotersystem 100 die verfügbare Pakete 742 gruppieren und/oder sequenzieren. Das Robotersystem 100 kann die sortierte Reihe der verfügbaren Pakete 742 verwenden, um den Packplan 700 abzuleiten. Das Robotersystem 100 kann eindeutige Platzierungspositionen/-kombinationen für die verfügbaren Pakete 742 bestimmen und beurteilen, um den Packplan 700 abzuleiten. Anders formuliert, kann das Robotersystem 100 eine Reihe von möglichen Platzierungskombinationen 744 bestimmen und diese gemäß einer Reihe von vorbestimmten Anforderungen, Bedingungen, Gewichten, Kosten, anschließenden Auswirkungen oder einer Kombination davon beurteilen (z. B. bewerten). Basierend auf der Beurteilung kann das Robotersystem 100 eine Platzierungskombination auswählen, um den Packplan 700 abzuleiten.
  • In mindestens einer Ausführungsform kann das Robotersystem 100 den Packplan 700 unter Verwendung eines Algorithmus ableiten, der Platzierungen der sequenzierten Pakete iterativ beurteilt. Wie in 7B veranschaulicht, kann das Robotersystem 100 beispielsweise mit der Ableitung beginnen, indem eine anfängliche Platzierung für das erste Paket bei den verfügbaren Paketen 742 bestimmt wird. Dementsprechend kann das Robotersystem 100 das entsprechende diskretisierte Objektmodell (z. B. das erste Objektmodell 706, das zweite Objektmodell 708 und/oder das dritte Objektmodell 710, wie in 7A veranschaulicht) das diskretisierte Plattformmodell (z. B. die Containermodelle 622 und/oder 624 aus 6) an einem anfänglichen Standort (z. B. einer Ecke, einem mittleren Standort und/oder einem anderen voreingestellten Standort) überlappen. Das Robotersystem 100 kann übrige Pakete 752 basierend auf dem Entfernen des platzierten Pakets (z. B. des ersten Pakets) von den verfügbaren Paketen 742 verfolgen.
  • Basierend auf der anfänglichen Platzierung kann das Robotersystem 100 eine Reihe von möglichen Platzierungen für das zweite Paket bei den verfügbaren Paketen 742 bestimmen. Das Robotersystem 100 kann die Reihe von möglichen Platzierungen gemäß einer vorbestimmten Regel, einem vorbestimmten Muster oder einer Kombination davon bestimmen. Beispielsweise kann das Robotersystem 100 die Platzierungsstandorte gemäß einem Muster von Positionen relativ zu dem/den vorher platzierten Paket(en) (z. B. relativ zu dem/den vorher platzierten Paket(en)) bestimmen. Außerdem kann das Robotersystem 100 die Platzierungsstandorte basierend auf einem minimalen/maximalen Trennungsabstand oder einem Fehlen davon, der zwischen einem oder mehreren der Pakete erforderlich ist, bestimmen. Ferner kann das Robotersystem 100 die Platzierungsstandorte basierend auf dem Drehen des Pakets (d. h. dem entsprechenden diskretisierten Objektmodell) um ein vorbestimmtes Ausmaß, wie etwa 90 Grad, bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsmöglichkeiten gemäß einem vorbestimmten Schwellenwert und/oder Muster einschränken. Ferner kann das Robotersystem 100 die übrigen Pakete 752 entsprechend aktualisieren.
  • Das Robotersystem 100 kann den vorstehend beschriebenen Prozess wiederholen und die verfügbaren Pakete 742 iterativ verarbeiten, bis eine Stoppbedingung erreicht ist. Einige Beispiele für die Stoppbedingung können darstellen, dass alle Pakete platziert wurden (d. h. die übrigen Pakete 752 leer sind), die Platzierungen nicht verbessert werden können (z. B. gleiche Beurteilung wie die vorherige Stufe/Wiederholung), keine Pakete mehr über dem diskretisierten Plattformmodell platziert werden können, oder eine Kombination davon.
  • In einigen Ausführungsformen kann das Robotersystem 100 die möglichen Platzierungen und die entsprechenden möglichen Platzierungskombinationen 744 mit einer Suchstruktur 754 verfolgen. Eine Wurzel der Suchstruktur 754 kann der anfänglichen Platzierung entsprechen und jede Ebene oder Stufe kann mögliche Platzierungen des nachfolgenden Pakets bei den verfügbaren Paketen 742 beinhalten. Die unterschiedlichen Stufen können verbunden werden, um einen Zweig zu bilden, der einer eindeutigen Kombination von Platzierungen für die Reihe von Paketen entspricht.
  • Für mögliche Platzierungen jedes Pakets kann das Robotersystem 100 redundante Grundrisse identifizieren und beseitigen (z. B. durch „X“ in 7B dargestellt). Beispielsweise kann das Robotersystem 100 bei jeder Stufe der Suchstruktur 754 die entstandenen Grundrisse der möglichen Platzierungspositionen/-kombinationen vergleichen (z. B. überlagern). Basierend auf dem Vergleich kann das Robotersystem 100 Duplikate der entstandenen Grundrisse beseitigen. In einigen Ausführungsformen kann das Robotersystem 100 ferner vertauschte, gedrehte und/oder gespiegelte Versionen der entstandenen Grundrisse vergleichen, um zugehörige Duplikate zu beseitigen. Beispielsweise kann das Robotersystem 100 einen Grundriss um ±90 Grad drehen und/oder den Grundriss an einer oder mehreren Spiegelachsen (z. B. eine diagonale Linie, die sich über gegenüberliegende Ecken erstreckt, eine/mehrere Winkelhalbierende, die sich entlang x- und/oder y-Richtungen erstreckt/erstrecken, oder einer Kombination davon) vertauschen und diesen mit anderen Grundrissen vergleichen.
  • Außerdem kann das Robotersystem 100 für mögliche Platzierungen jedes Pakets Platzierungen, die eine oder mehrere Anforderungen/Einschränkungen missachten, identifizieren und beseitigen. Ein Beispiel für die Anforderungen/Einschränkungen kann auf Kollisionswahrscheinlichkeiten basieren. Das Robotersystem 100 kann einen Anfahrtsweg für jede Platzierungsposition und eine entsprechende Kollisionswahrscheinlichkeit gemäß dem bereits bestehenden Grundriss, einer oder mehreren Abmessungen der Pakete, einem Standort des Übertragungsroboters, einem vorherigen Ereignis oder einem vorherigen Verlauf oder einer Kombination davon berechnen. Das Robotersystem 100 kann die Platzierungen, bei denen die Kollisionswahrscheinlichkeit einen vorbestimmten Schwellenwert überschreitet, beseitigen. Ein weiteres Beispiel für die Anforderungen/Einschränkungen kann ein gestütztes Gewicht für das Stapeln (z. B. Platzieren direkt auf/über einem oder mehreren stützenden Paketen) des Pakets sein. Für eines oder mehrere der Pakete unter dem Platzierungsstandort kann das Robotersystem 100 ein Stützgewicht (d. h. ein kombiniertes Gewicht von Paketen oder Teilen davon direkt darüber) basierend auf dem Gewicht des platzierten Pakets berechnen. Das Robotersystem 100 kann die Platzierungen, bei denen das Stützgewicht eine Zerbrechlichkeitsanforderung (z. B. ein maximal gestütztes Gewicht) für eines oder mehrere der Pakete unter der Platzierungsposition missachtet (z. B. überschreitet oder sich innerhalb eines Schwellenbereichs davon befindet), beseitigen.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungskombinationen 744 unter Verwendung einer Prioritätswarteschlange 756 (z. B. einer Bergstruktur usw.) verfolgen und/oder beurteilen. Die Prioritätswarteschlange 756 kann die Platzierungskombinationen 744 gemäß einer Sequenz von Präferenzen sortieren. Das Robotersystem 100 kann jede der Platzierungskombinationen 744 gemäß einem oder mehreren vorbestimmten Kriterien beurteilen oder bewerten. Die Kriterien können eine oder mehrere Kosten in Verbindung mit bereits platzierten Elementen und/oder einer oder mehreren heuristischen Bewertungen in Verbindung damit, wie die derzeitige Platzierung zukünftige Platzierungen oder Möglichkeiten beeinflusst, beinhalten.
  • Ein Beispiel für die Kriterien kann die Maximierung der Grundrissdichte beinhalten. Das Robotersystem 100 kann die Grundrissdichte für einen Außenumfang 762 für eine Gruppierung von Paketen berechnen. In einigen Ausführungsformen kann der Außenumfang 762 basierend auf freiliegenden Kanten/Außenumfangskanten der Gruppierung der Pakete bestimmt werden. Das Robotersystem 100 kann ferner umgebende/zugehörige Bereiche umschließen, indem es sich auf zwei oder mehr Kanten erweitert und einen Schnittpunkt findet und/oder indem es eine Linie zieht, die eine oder mehrere Ecken des Grundrisses verbindet. Das Robotersystem 100 kann die Grundrissdichte als Verhältnis zwischen einem tatsächlichen belegten Bereich 764 (z. B. einer Anzahl an Diskretisierungseinheiten 602 aus 6 oder Pixeln, die dem schattierten Bereich entsprechen) und einem leeren Bereich 766 (z. B. einer Anzahl an Diskretisierungseinheiten 602, die den umschlossenen/zugehörigen Bereichen entsprechen) berechnen. Das Robotersystem 100 kann dazu konfiguriert sein, Platzierungspläne, die den leeren Bereich 766 minimieren, zu bevorzugen (z. B. durch Zuweisen einer höheren/niedrigeren Punktzahl).
  • 7C ist eine Veranschaulichung von beispielhaften Platzierungsregeln gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Robotersystem 100 kann die Platzierungsregeln dazu verwenden, Platzierungsstandorte von Objekten innerhalb des bezeichneten Containers abzuleiten. Beispielsweise kann das Robotersystem 100 potenzielle Platzierungsstandorte, die eine oder mehrere Platzierungsregeln nicht erfüllen, verwerfen oder ausschließen.
  • Einige Instanzen der Platzierungsregeln können dazu dienen, Objekte übereinander zu platzieren, wie etwa zum Stapeln/Platzieren einer oder mehrerer Schichten von Paketen über einer oder mehreren anderen Schichten von Paketen. Das Robotersystem 100 kann die Platzierungsregeln verwenden, um die Stabilität der gestapelten Pakete zu verbessern/sicherzustellen und um zu verhindern, dass Objekte während der Bewegung des Containers verrutschen und/oder kippen. Zum Zwecke der Veranschaulichung zeigt 7C mehrere Szenarios eines oberen Pakets 772, das sich direkt über einem oder mehreren stützenden Paketen 774 befindet und direkt von diesen gestützt wird (z. B. diese direkt berührt).
  • Das Robotersystem 100 kann eine Horizontalversatzregel 776 verwenden, um 3D-Platzierungsstandorte abzuleiten (z. B. den 3D-Packplan 700 aus 7A). Die Horizontalversatzregel 776 kann eine Regulierung, eine Anforderung oder eine Kombination davon zum Steuern von Horizontalversätzen von vertikalen Kanten/Flächen zwischen gestapelten Elementen beinhalten. Beispielsweise kann die Horizontalversatzregel 776 auf einer Überlappungsanforderung 778, einer Überstandsanforderung 780 oder einer Kombination davon basieren. Die Überlappungsanforderung 778 kann einen Mindestbetrag (z. B. einen Prozentsatz oder ein Verhältnis von Länge, Breite und/oder Flächenbereich) der Überlappung zwischen den gestapelten Paketen beinhalten. In einigen Ausführungsformen kann die Überlappungsanforderung 778 erfordern, dass ein Mindestbetrag der horizontalen Abmessung/des horizontalen Flächenbereichs des oberen Pakets 772 mit der/dem des stützenden Pakets 774 überlappt und/oder dieses berührt. Die Überstandsanforderung 780 kann einen Mindestbetrag (z. B. einen Prozentsatz oder ein Verhältnis von Länge, Breite und/oder Flächenbereich) des Überstands beinhalten, wie etwa einen Teil des oberen Pakets 772, der sich horizontal über eine Umfangskante/Fläche des stützenden Pakets 774 hinaus erstreckt.
  • In einigen Ausführungsformen kann die Horizontalversatzregel 776 auf Gewicht, Abmessung und/oder Massenmittelpunkt(CoM)-Positionen 782 basieren. Beispielsweise können die Überlappungsanforderung 778 und/oder die Überstandsanforderung 780 auf den CoM-Standorten 782 basieren, wie etwa zum Beurteilen eines Abstands zwischen den CoM-Standorten 782 des oberen Pakets 772 und des stützenden Pakets 774 relativ zu einem Abstand zwischen dem oberen CoM-Standort und einer horizontalen Kante/Fläche des stützenden Pakets 774. Die Überlappungsanforderung 778 und/oder die Überstandsanforderung 780 können auch einer Beurteilen eines Abstands zwischen den CoM-Standorten 782 des oberen Pakets 772 und des stützenden Pakets 774 relativ zu einem Überstandsabstand (z. B. ein Maßes entlang einer horizontalen Richtung eines Teils des oberen Pakets 772, der sich über (eine) umlaufende Kante(n) des stützenden Pakets 774 hinaus erstreckt) entsprechen. In einigen Ausführungsformen kann die Horizontalversatzregel 776 auf einer CoM-Versatzanforderung 784 basieren, die erfordert, dass sich die CoM-Standorte 782 der oberen Pakete 772 und der stützenden Pakete 774 innerhalb eines CoM-Stützschwellenwerts befinden. Der CoM-Stützschwellenwert kann einen vorbestimmten Abstand, eine Schwellengrenze für ein Verhältnis zwischen dem Versatzabstand zwischen den CoM-Standorten 782 relativ zu einer horizontalen Abmessung, einen Überstandabstand, einen überlappten Abstand oder eine Kombination davon beinhalten.
  • Das Robotersystem 100 kann auch eine Stütztrennungsregel 786 verwenden, um die 3D-Platzierungsstandorte abzuleiten. Die Stütztrennungsregel 786 kann eine Regulierung, eine Anforderung oder eine Kombination davon zum Steuern eines seitlichen Trennungsabstands 788 zwischen den stützenden Paketen 774 beinhalten. Der seitliche Trennungsabstand 788 kann einem horizontalen Abstand zwischen umlaufenden Flächen/Kanten von direkt benachbarten stützenden Paketen 774 entsprechen. In einigen Ausführungsformen kann die Stütztrennungsregel 786 ferner auf Positionen und/oder Beträgen von überlappenden Flächen zwischen dem oberen Paket 772 und den stützenden Paketen 774 basieren. Beispielsweise kann die Stütztrennungsregel 786 erfordern, dass der seitliche Trennungsabstand 788 um einen vorbestimmten Prozentsatz größer ist als Überstandabstände. Außerdem kann die Stütztrennungsregel 786 erfordern, dass sich der seitliche Trennungsabstand 788 unter die CoM-Position 782 des oberen Pakets 772 erstreckt. In einigen Ausführungsformen, wenn der Platzierungsstandort des oberen Pakets 772 die Stütztrennungsregel 786 erfüllt, kann das Robotersystem 100 Teile des oberen Pakets 772 zwischen den Stützpaketen 774 (z. B. Teile über dem seitlichen Trennungsabstand 788) als durch ein Objekts in der unteren Schicht gestützt und/oder dieses berührend erachten.
  • Das Robotersystem 100 kann auch eine Vertikalversatzregel 790 verwenden, um die 3D-Platzierungsstandorte abzuleiten. Die Vertikalversatzregel 790 kann eine Regulierung, eine Anforderung oder eine Kombination davon zum Steuern einer Stützhöhendifferenz 792 zwischen vertikalen Positionen der Stützpakete 774 beinhalten. Die Stützhöhendifferenz 792 kann einem vertikalen Abstand zwischen oberen Teilen von entsprechenden stützenden Paketen 774 entsprechen, wie etwa für Teile, die das obere Paket 772, das über den entsprechenden stützenden Paketen 774 platziert ist, wahrscheinlich berühren. In einigen Ausführungsformen kann die Vertikalversatzregel 790 erfordern, dass die Stützhöhendifferenz 792 unter einer vorbestimmten Schwellenanforderung für das Stapeln eines oder mehrerer Pakete auf die Stützpakete 774 liegt.
  • In einigen Ausführungsformen kann die Vertikalversatzregel 790 basierend auf der Schichthöhe variieren. Wenn beispielsweise das obere Paket 772 (z. B. das gestützte Paket) Teil der obersten Schicht ist, kann die Einschränkung für die Stützhöhendifferenz 792 größer sein als für die unteren Schichten. In einigen Ausführungsformen kann die Vertikalversatzregel 790 basierend auf der Nähe zu vertikal ausgerichteten Wänden/Teilern des bezeichneten Containers variieren. Wenn beispielsweise das Stützpaket 774 mit der niedrigeren Höhe der vertikalen Wand am nächsten ist (z. B. ohne andere Objekte zwischen dem Stützpaket 774 und der Wand), kann die Grenze für den Stützhöhenunterschied 792 größer sein, da das obere Paket 772 durch die vertikale Wand getragen sein kann, selbst wenn die Stütze versagt und/oder das obere Paket 772 sich verschiebt.
  • Das Robotersystem 100 kann einen Schwenkstandort 793 ableiten/schätzen, der mit einer Ausrichtung des oberen Pakets 772 assoziiert ist (z. B. Neigung unter einer seitlichen/horizontalen Bezugsebene). Der Schwenkstandort 793 kann ein oberer Teil des größeren Stützpakets sein (d. h. der höchste Stützstandort). Das Robotersystem 100 kann den Schwenkstandort 793 als eine umlaufende Kante und/oder den höchsten Teil des Stützpakets, der dem kürzeren Stützpaket am nächsten liegt, ableiten. Das Robotersystem 100 kann ferner den Schwenkstandort 793 basierend auf dem CoM-Standort 782, den seitlichen Abmessungen des oberen Pakets 772 und/oder einem Gewicht des oberen Pakets 772 ableiten. In ähnlicher Weise kann das Robotersystem 100 eine Drehung des oberen Pakets 772 um den Schwenkstandort 793 schätzen. Das Robotersystem 100 kann die Drehung gemäß dem Objektreferenzstandort 728 (z. B. dem CoM-Standort 782), den seitlichen Abmessungen des oberen Pakets 772 und/oder einem Gewicht des oberen Pakets 772 schätzen.
  • Das Robotersystem 100 kann Packpläne erzeugen (z. B. eine 3D-Kombination aus mehreren 2D-Platzierungsplänen/-standorten) gemäß den Platzierungsregeln. Beispielsweise kann das Robotersystem 100 die 2D-Platzierungspläne (z. B. Platzierungsstandorte entlang einer seitlichen Schicht/Ebene) entsprechend den Höhenanforderungen erzeugen (z. B. um die Höhen der Objektgruppen innerhalb eines Schwellenabstands zu halten). Anschließend kann das Robotersystem 100 die Stapelpläne basierend auf einem vertikalen Überlappen (z. B. Stapeln) der 2D-Platzierungspläne erzeugen.
  • Das Robotersystem 100 kann ferner die Packpläne gemäß Platzierungsregeln zum Anlehnen von Objekten an die Stützwand 725 erzeugen. In einigen Ausführungsformen können die Platzierungsregeln eine Wandstützregel 794, eine Neigungsstützregel 796 und/oder eine Mehrfachüberhangregel 798 beinhalten. Die Wandstützregel 794 kann eine Regulierung, eine Anforderung oder eine Kombination davon zum Steuern der Platzierung von Objekten an/in Kontakt mit einer vertikal ausgerichteten Containerstruktur beinhalten. In einer oder mehreren Ausführungsformen kann zuerst die Wandstützregel 794 analysiert werden und andere Regeln (z. B. die Neigungsstützregel 796 und/oder die Mehrfachüberhangregel 798) können analysiert oder überprüft werden, wenn die vorgeschlagene/analysierte Platzierungsposition die Wandstützregel 794 erfüllt.
  • Die Wandstützregel 794 kann auf einer wirksamen Stütze 795 basieren, die einem Teil des oberen Pakets 772 (z. B. einem Teil einer Bodenfläche davon) entspricht, der das Stützpaket 774 berühren würde und/oder von diesem gestützt werden würde, wenn das obere Paket 772 auf dem Stützpaket 774 platziert wird. Mit anderen Worten kann die effektive Stützung 795 überlappenden Teilen zwischen dem Stützpaket 774 und dem oberen Paket 772 und/oder einem Teil des oberen Pakets 772, das von dem überhängenden Teil davon ausgeschlossen ist/davon übrigbleibt, entsprechen. In einigen Ausführungsformen kann die Wandstützregel 794 eine Mindestmenge (z. B. einen minimalen prozentualen Schwellenwert, wie etwa 51 % oder mehr) des effektiven Trägers 795 erfordern. Mit anderen Worten kann die Wandstützregel 794 erfordern, dass ein Überhangabstand um eine vorgeschriebene Menge kleiner als der effektive Träger 795 ist. In einer oder mehreren Ausführungsformen kann die Wandstützregel 794 erfordern, dass eine minimale Anzahl von Ecken (z. B. 4 bis 6 Ecken von 8 Ecken in einer kastenartigen Struktur) über dem Stützpaket 774 liegt/von diesem gestützt wird.
  • Die Wandstützregel 794 kann auch auf der Objekt-Wand-Trennung 726, die zwischen der Stützwand 725 und dem Stützpaket 774 gemessen wird, einer oder mehreren Abmessungen des oberen Pakets 772 und/oder dem CoM-Standort 782 des oberen Pakets 772 basieren. Beispielsweise kann die Wandstützregel 794 erfordern, dass der CoM-Standort 782 über oder innerhalb der umlaufenden Kanten der effektiven Stütze 795 liegt, so dass der CoM-Standort 782 über dem Stützpaket 774 und/oder durch dieses gestützt wird. Die Wandstützregel 794 kann auch erfordern, dass die Objekt-Wand-Trennung 726 kleiner als eine seitliche Abmessung der effektiven Stütze 795 ist (z. B. verbleibender/überlappender Teil des oberen Pakets 772). Die Wandstützregel 794 kann ähnliche Aspekte wie die Horizontalversatzregel 776 berücksichtigen, jedoch mit verringerten Stützanforderungen basierend auf dem Kontakt mit der und/oder der Abstützung bereitgestellt durch die Stützwand 725 für das obere Paket 772. Mit anderen Worten kann das Robotersystem 100 potenzielle Platzierungsstandorte ableiten, analysieren und/oder überprüfen, die gegen die Horizontalversatzregel 776 verstoßen, aber die Wandstützregel 794 erfüllen. Beispielsweise kann die Wandstützregel 794 potenzielle Platzierungsstandorte ableiten und validieren, die weiter entlang einer seitlichen Richtung überhängen, als dies durch die Horizontalversatzregel 776 zulässig ist. Da das am Platzierungsstandort platzierte Objekt die Stützwand 725 berühren und seine strukturelle Stütze/Stabilität von dem Container ableiten würde, kann das Objekt an Standorten platziert werden, die andernfalls gegen die Horizontalversatzregel 776 verstoßen würden.
  • Die Neigungsstützregel 796 kann eine Regelung, eine Anforderung oder eine Kombination davon zum Steuern der Platzierung von Objekten gemäß einer Neigung oder einer Änderung der Stellung des oberen Pakets 772 in Bezug auf den Kontakt zwischen dem oberen Paket 772 und der Stützwand 725 beinhalten. In einigen Ausführungsformen kann die Neigungsstützregel 796 angewendet/getestet werden, wenn das obere Paket 772 ohne Kontakt neben der Stützwand 725 liegt (z. B. mit einem Abstand ungleich null entlang einer seitlichen Richtung zwischen einer äußersten Kante des oberen Pakets 772 und der Stützwand 725). Die Neigungsstützregel 796 kann dazu verwendet werden, Verschiebungen und/oder Drehungen des oberen Pakets 772 zu berücksichtigen, die während des Transports auftreten können und sich auf andere Objekte innerhalb des Containers auswirken.
  • In einigen Ausführungsformen kann die Neigungsstützregel 796 eine Grenze (z. B. eine maximale Schwelle) für einen Neigungswinkel 797 festlegen, der dem oberen Paket 772 zugeordnet ist. Der Neigungswinkel 797 kann ein Winkel zwischen einer Referenzfläche (z. B. einer oberen Oberfläche) des oberen Pakets 772 in einer beabsichtigten Stellung oder an einem möglichen Platzierungsstandort und in einer gedrehten Stellung sein. Das Robotersystem 100 kann den Neigungswinkel 797 basierend auf dem Drehen des entsprechenden diskretisierten Modells des oberen Pakets 772 um den Schwenkstandort 793 berechnen (z. B. eine umlaufende Kante des Stützpakets 774, das der Stützwand 725 am nächsten liegt). Der Neigungswinkel 797 kann einem umlaufenden Teil des oberen Pakets 772 entsprechen (z. B. einem oberen Teil, der der Stützwand 725 am nächsten liegt), das die Stützwand 725 berührt. Dementsprechend kann die Neigungsstützregel 796 dazu verwendet werden, den Platzierungsstandort zu validieren, der dazu führen würde, dass das obere Paket 772 die Stützwand 725 ohne übermäßige Drehung des oberen Pakets 772 berührt und/oder von dieser gestützt wird (d. h. eine Menge von Drehung, die bewirken würde, dass sich das Stützpaket 774 in seiner Position verschiebt, und/oder die bewirken würde, dass das obere Paket 772 in die Objekt-Wand-Trennung 726 kippt/fällt). Das Robotersystem 100 kann die Neigungsstützregel 796 dazu verwenden, potenzielle Platzierungsstandorte abzuleiten, zu analysieren und/oder zu überprüfen, die gegen andere Regeln, wie etwa die Horizontalversatzregel 776 oder die Wandstützregel 794, verstoßen. Mit anderen Worten kann das Robotersystem 100 basierend auf der Neigungsstützregel 796 Positionen validieren, an denen das Objekt weiter als durch die Horizontalversatzregel 776 erlaubt verlaufen/überhängen würde, da das Objekt auch in dem Fall, dass sich das Objekt während des Transports verschiebt, gestützt/befestigt bleiben würde.
  • In einer oder mehreren Ausführungsformen kann die Neigungsstützregel 796 ferner auf dem Gewicht des oberen Pakets 772 und/oder dem CoM-Standort 782 des oberen Pakets 772 relativ zum Schwenkstandort 793 basieren. Beispielsweise kann das Robotersystem 100 eine Objektverschiebungswahrscheinlichkeit (z. B. eine Wahrscheinlichkeit einer seitlichen Verschiebung während der Übertragung) für das obere Paket 772 basierend auf dessen Gewicht berechnen. Das Robotersystem 100 kann auch eine Objektdrehwahrscheinlichkeit für das obere Paket 772 basierend auf dem Gewicht und dem CoM-Standort 782 des oberen Pakets 772 relativ zu dem Schwenkstandort 793 berechnen. Das Robotersystem 100 kann die verschiedenen Wahrscheinlichkeiten gemäß einer oder mehreren vorbestimmten Gleichungen/Prozessen berechnen, die die Kräfte, denen die Objekte während der Übertragung ausgesetzt sind, Reibungskräfte zwischen platzierten Objekten und/oder dem Container, und/oder andere zugehörige physikalische Parameter berücksichtigen. Das Robotersystem 100 kann (eine) qualifizierende Schwelle(n) für die verschiedenen Wahrscheinlichkeiten beinhalten. Mit anderen Worten kann das Robotersystem 100 zu dem Schluss kommen, dass die Zielplatzierungsposition die Neigungsstützregel 796 erfüllt, wenn die berechneten Verschiebungs-/Drehwahrscheinlichkeiten mit oder ohne Berücksichtigung des Neigungswinkels 797 unter den qualifizierenden Schwellen liegen.
  • Die Mehrfachüberhangregel 798 kann eine Regelung, eine Anforderung oder eine Kombination davon zur Steuerung der Platzierung von mehreren/aufeinanderfolgenden überhängenden Objekte beinhalten. Mit anderen Worten kann die Mehrfachüberhangregel 798 dazu verwendet werden, einen möglichen Platzierungsstandort zu bewerten, der sich über einem Zwischenobjekt 799 befindet und durch dieses gestützt wird, das sich über dem Stützpaket 774 befindet und durch dieses gestützt wird. Das Robotersystem 100 kann die Mehrfachüberhangregel 798 berücksichtigen, wenn der mögliche Platzierungsstandort über dem Zwischenobjekt 799 liegt, das ein oder mehrere Objekte darunter überhängt, wobei umlaufende Teile des Zwischenobjekts 799 seitlich über umlaufende Teile eines oder mehrerer Objekte darunter verlaufen. In anderen Fällen (z. B. wenn umlaufende Teile des Zwischenobjekts 799 seitlich bis zu umlaufenden Teilen von Objekten darunter und nicht darüber hinaus verlaufen) kann das Robotersystem 100 den möglichen Platzierungsstandort relativ zu dem Zwischenobjekt 799 berücksichtigen, beispielsweise durch Erachten des Zwischenobjekts 799 als das Stützobjekt.
  • Bei der Verarbeitung der Mehrfachüberhangregel 798 kann das Robotersystem 100 die effektive Stützung 795 des oberen Pakets 772 relativ zu einem oder mehreren Paketen unterhalb des Zwischenüberhangobjekts 799 ableiten. Beispielsweise kann das Robotersystem 100 die effektive Stützung 795 basierend auf einer Überlappung zwischen dem oberen Paket 772 und dem untersten Paket und/oder dem Paket, das seitlich am weitesten von der Stützwand 725 entfernt ist, ableiten. Mit anderen Worten kann das Robotersystem 100 das unterste Objekt oder das Objekt, das seitlich am weitesten von der Stützwand 725 entfernt ist, als Stützpaket 774 für Objekte darüber bezeichnen, einschließlich des oberen Pakets 772. In einigen Ausführungsformen kann das Robotersystem 100 als Teil der Verarbeitung für die Mehrfachüberhangregel 798 die resultierende effektive Stützung 795 für das obere Paket 772 dazu verwenden, die Horizontalversatzregel 776 und/oder die Wandstützregel 794 zu testen. Das Robotersystem 100 kann den möglichen Platzierungsstandort validieren und bestimmen, dass die Mehrfachüberhangregel 798 erfüllt ist, wenn die angepasste effektive Stützung 795 des oberen Pakets 772 die Horizontalversatzregel 776 und/oder die Wandstützregel 794 wie oben beschrieben erfüllt.
  • Alternativ oder zusätzlich kann das Robotersystem 100 eine kombinierte Objektschätzung 732 mit einem kombinierten Bezugsstandort 734 für die Objekte über dem bezeichneten Stützpaket 774 (z. B. das unterste Objekt und/oder das Objekt unterhalb des möglichen Platzierungsstandorts und seitlich am weitesten von der Stützwand 725 entfernt), einschließlich des möglichen Platzierungsstandorts des oberen Pakets 772, ableiten. Das Robotersystem 100 kann die kombinierte Objektschätzung 732 als eine bestimmte planare Form (z. B. ein Rechteck) ableiten, die die äußersten Teile der kombinierten Objekte umfasst und/oder mit diesen zusammenfällt (z. B. Objekte über dem bezeichneten Stützpaket 774 und/oder durch dieses gestützt). Mit anderen Worten kann das Robotersystem 100 die kombinierte Objektschätzung 732 ähnlich dem AABB 730 ableiten, jedoch für die kombinierten Objekte. Das Robotersystem 100 kann den kombinierten Bezugsstandort 734 basierend auf dem Kombinieren der Bezugsstandorte (z. B. der CoM-Standorte) der kombinierten Objekte ableiten. Beispielsweise kann das Robotersystem 100 den kombinierten Bezugsstandort 734 basierend auf dem Kombinieren (z. B. einem räumlichen Mitteln) der CoM-Standorte 782 mit den entsprechenden Paketgewichten als Parametergewichte für die CoM-Standorte 782 ableiten. Dementsprechend kann das Robotersystem 100 einen CoM-Standort für die kombinierte Reihe von Objekten schätzen und verarbeiten.
  • Um die Einhaltung der Mehrfachüberhangregel 798 zu testen, kann das Robotersystem 100 die kombinierte Objektschätzung 732 und/oder den kombinierten Bezugsstandort 734 anstelle des oberen Pakets 772 und/oder des entsprechenden CoM-Standorts 782 verarbeiten/testen. Beispielsweise kann das Robotersystem 100 den möglichen Platzierungsstandort validieren, wenn die entsprechende kombinierte Objektschätzung 732 und/oder der kombinierte Bezugsstandort 734 die Horizontalversatzregel 776, die Wandstützregel 794, die Neigungsstützregel 796 und/oder andere Platzierungsregeln erfüllen.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Objekt-Wand-Trennung 726 mit einem Stützschwellenabstand vergleichen, der eine Grenze zum Stützen des oberen Pakets 772 darstellt. Der Stützschwellenabstand kann auf einem oder mehreren physikalischen Aspekten des oberen Pakets 772 basieren (z. B. Pakethöhe). Beispielsweise kann der Stützschwellenabstand dazu dienen, zu bestimmen, ob der Objekt-Wand-Abstand 726 groß genug ist, damit sich das obere Paket 772 seitlich verschieben und zwischen die Stützwand 725 und das Stützpaket 774 fallen kann. Dementsprechend können es die Horizontalversatzregel 776, die Wandstützregel 794, die Neigungsstützregel 796 und/oder andere Platzierungsregeln erfordern, dass der Objekt-Wand-Abstand 726 unter dem Stützschwellenabstand liegt (z. B. ein Bruchteil einer Abmessung des oberen Pakets). In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die Schwellenanforderungen für die effektive Stützung 795 basierend auf der Beziehung zwischen der Objekt-Wand-Trennung 726 und dem Stützschwellenabstand anpassen. Beispielsweise kann das Robotersystem 100 die Schwellenanforderung für die effektive Stützung 795 erhöhen (z. B. von 51 % bis 60 % auf 75 % oder mehr), wenn der Objekt-Wand-Abstand 726 größer als der Stützschwellenabstand ist.
  • In einigen Ausführungsformen kann das Robotersystem 100 die möglichen Platzierungsstandorte berücksichtigen und validieren, wobei das obere Paket 772 über eine Oberkante der Stützwand 725 verläuft. Das Robotersystem 100 kann derartige Platzierungsstandorte validieren, beispielsweise basierend auf (1) einer Überlappungsmenge zwischen der Stützwand 725 und dem oberen Paket 772, (2) einer Vorsprungsmenge für die Teile des oberen Pakets 772, die über die obere Kante hinausragen, (3) einem Verhältnis zwischen (1) und (2), (4) dem CoM-Standort 782 des oberen Pakets 772 (z. B. vertikaler Standort des CoM relativ zu der Wandkante), (5) einem seitlicher Abstand zwischen dem oberen Paket 772 und der Stützwand 725, (6) dem Schwenkstandort, (7) geschätzten oder vorbestimmten Reibungskoeffizienten für die platzierten Objekte, (8) Gewicht der Objekte, (9) maximalen Beschleunigungs-/Kraftschwellen, die mit dem Verschieben/Kippen von Objekten assoziiert sind, und/oder anderen ähnlichen physikalischen Parametern.
  • Das Robotersystem 100 kann die verschiedenen Platzierungsregeln gemäß einer oder mehreren vorbestimmten Sequenzen und/oder Interaktionsmustern verarbeiten. Beispielsweise kann das Robotersystem 100 den möglichen Platzierungsstandort gemäß einer vorbestimmten Sequenz und/oder eines Ablaufs (z. B. Wenn-Dann-Typ der Verarbeitung), die/der den Platzierungsregeln zugeordnet ist, testen. Das Robotersystem 100 kann auch eine Bewertung verarbeiten, die jeder Platzierungsregel entspricht, die resultierenden Bewertungen aggregieren und die Gesamtbewertung mit einer Platzierungsbewertungsschwelle vergleichen, um den möglichen Platzierungsstandort zu validieren.
  • Beispiel 3D Berechnungen
  • 8A und 8B sind Veranschaulichungen von verschiedenen Aspekten einer Stützungsberechnung gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Wie vorstehend beschrieben, kann das Robotersystem 100 aus 1 den Packplan 700 aus FIG: 7A basierend auf dem Ableiten und Testen von möglichen Platzierungsstandorten für das Zielobjekt 112 aus 1 ableiten. Der mögliche Platzierungsstandort kann einen Knoten in der Suchstruktur 754 aus 7B darstellen. 8A und 8B können einen beispielhaften Mechanismus zum Berechnen von 3D-Platzierungen von Objekten (z. B. Stapeln von Objekten) veranschaulichen, das zumindest teilweise offline (unter Verwendung von z. B. erwarteten oder bekannten Parametern) und/oder zumindest teilweise in Echtzeit (basierend auf z. B. Echtzeitsensordaten) durchgeführt werden kann.
  • In einigen Ausführungsformen kann das Robotersystem 100 das diskretisierte Modell des Zielobjekts (z. B. das Objektgrundrissmodell 612 aus 6) iterativ über das diskretisierte Modell des bezeichneten Platzierungscontainers (z. B. das Containergrundrissmodell 622 aus 6) bewegen, um die möglichen Positionen zu erzeugen. Beispielsweise kann das Robotersystem 100 eine Anfangsinstanz einer möglichen Position 801 durch Platzieren eines entsprechenden diskretisierten Objektmodells gemäß einer oder mehreren Orientierungen an einem vorbestimmten Anfangsstandort (z. B. einer Ecke) des diskretisierten Plattformmodells erzeugen. Für die nächste Instanz der möglichen Position 801 kann das Robotersystem 100 das diskretisierte Objektmodell um eine vorbestimmte Entfernung (z. B. ein oder mehrere Einheitspixel) gemäß einer vorbestimmten Richtung/eines vorbestimmten Musters bewegen.
  • Wenn die mögliche Position 801 ein oder mehrere Objekte an einem geplanten Standort oder einem bestehenden Objekt/einer bestehenden Struktur überlappt (wie etwa für Echtzeit-Platzierungsberechnungen), kann das Robotersystem 100 ein Stützmaß (z. B. effektive Stützung 795 aus FIG: 7C) berechnen und bewerten, das von den bereits platzierten Objekten bereitgestellt wird. Um das Stützmaß zu berechnen und zu bewerten, kann das Robotersystem 100 Höhen/Kontur für den Platzierungsbereich bestimmen und verfolgen. Beispielsweise kann das Robotersystem 100 Höhenmaße 802 pro Flächeneinheit (z. B. die diskretisierten Einheiten 602 aus 6) gemäß bekannten/erwarteten Höhen der verarbeiteten Objekte (z. B. Objekte mit endgültigen oder validierten Platzierungsstandorten) aktualisieren. Für die Echtzeitverarbeitung kann das Robotersystem 100 Tiefenmessungen (z. B. Punktwolkenwerte) von einer oder mehreren der Bildgebungsvorrichtungen 222 aus 2, die auf den Aufgabenstandort 116 aus 1 gerichtet sind, verwenden. Da eine vertikale Position des Bodens und/oder Plattform Oberfläche bekannt ist (z. B. eine Höhe der Wagen/Käfigbasis über der Bodenoberfläche der Anlage), kann das Robotersystem 100 das Tiefenmaß verwenden, um die Höhen/die Kontur der freiliegenden Oberseitenfläche(n) der Plattform, der platzierten Objekte oder einer Kombination davon zu berechnen.
  • Das Robotersystem 100 kann das diskretisierte Plattformmodell aktualisieren, um die Höhenmaße 802 während der iterativen Platzierungsableitung einzuschließen. Das Robotersystem 100 kann die Höhenmaße 802 gemäß jedem der diskretisierten Pixel in dem diskretisierten Plattformmodell bestimmen. Beispielsweise kann das Robotersystem 100 die Höhenmaße 802 als maximale Höhen für die Oberflächenteile der Containerbasis und/oder der platzierten/verarbeiteten Objekte innerhalb der entsprechenden Einheitspixel bestimmen.
  • Für jede der möglichen Positionen 801, die eines oder mehrere der bereits platzierten Objekte überlappen, kann das Robotersystem 100 die Platzierungsmöglichkeit basierend auf den Höhenmaßen 802 bewerten. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsmöglichkeit basierend auf einem Identifizieren des höchsten Wertes der Höhenmaße 802, die an jeder der möglichen Positionen 801 überlappen, bewerten. Das Robotersystem 100 kann ferner andere Höhenmaße 802 identifizieren, die sich an jeder der möglichen Positionen 801 befinden, wobei die Höhenmaße 802 innerhalb einer Grenze einer Differenzschwelle relativ zu dem höchsten Maß der Höhenmaße 802 liegen. Die qualifizierenden Zellen/Pixel können Standorte darstellen, die das gestapelte Objekt stützen können, so dass das gestapelte Objekt im Wesentlichen flach/horizontal ruht (d. h. parallel zu der Aufstellungsfläche der Containerbasis).
  • Wie in 8A veranschaulicht, kann für die erste der möglichen Positionen 801 (z. B. die obere linke Ecke des Containergrundrissmodells 622) das höchste Höhenmaß 0,3 (d. h. 300 Millimeter (mm) hoch) betragen. Für die mit 0,02 vorgegebene Differenzschwelle (was z. B. 20 mm darstellt) kann das Robotersystem 100 die oberen vier diskretisierten Zellen/Pixel als die Differenzschwelle füllend identifizieren. Das Robotersystem 100 kann die identifizierten/qualifizierenden Zellen/Pixel verwenden, um den Grad der Stützung zu bewerten/darzustellen.
  • 8B veranschaulicht ein weiteres Beispiel der Stützberechnung. 8B zeigt eine der möglichen Positionen 801 mit dem Containergrundrissmodell 622 (gezeigt unter Verwendung eines durchgezogenen dickeren Umrisses), das in einer oberen linken Ecke der möglichen Positionen 801 überlagert ist. Das Robotersystem 100 kann verschiedene Stützparameter 804 berechnen/nutzen, was Parameter sind, die dazu verwendet werden, die mögliche Position 801 zu bewerten. Beispielsweise können die Stützparameter 804 diskretisierte Abmessungen 806, einen überlappenden Bereich 808, eine Höhendifferenzschwelle 810, eine Stützschwelle 812, eine maximale Höhe 814, eine untere Höhengrenze 816, eine qualifizierende Zählung 818, einen Satz von Bereichsumrissen des Stützbereichs 820, eine Größe des Stützbereichs 822, ein Stützverhältnis 824, den CoM-Standort 782 oder eine Kombination davon beinhalten.
  • Die diskretisierten Abmessungen 806 können physikalische Abmessungen (z. B. Länge, Breite, Höhe, Umfang usw.) des Zielobjekts 112 aus 1 gemäß den Diskretisierungseinheiten 602 aus 6 beschreiben. Beispielsweise können die diskretisierten Abmessungen 806 Mengen der Diskretisierungseinheiten 602, die umlaufende Kanten des diskretisierten Objektmodells 612/614 bilden, beinhalten. Der überlappende Bereich 808 kann einen durch das Zielobjekt 112 besetzten Bereich (z.B. eine Grundrissgröße entlang der horizontalen Ebene) beschreiben, der auf ähnliche Weise gemäß den Diskretisierungseinheiten 602 dargestellt werden kann. Mit anderen Worten kann der überlappende Bereich 808 einer Menge der Diskretisierungseinheiten 602 innerhalb des diskretisierten Objektmodells entsprechen. Für das in 8B veranschaulichte Beispiel kann das Zielobjekt 112 die diskretisierte Abmessung 806 von sechs Pixeln mal sieben Pixeln aufweisen, was dem überlappenden Bereich 808 von 42 Pixeln entspricht.
  • Die Höhendifferenzschwelle 810 und die Stützschwelle 812 können den Grenzen entsprechen, die dazu verwendet werden, die möglichen Positionen 801 zu verarbeiten und/oder zu validieren. Die Höhendifferenzschwelle 810, die vorbestimmt und/oder von einem Bediener und/oder einem Auftrag eingestellt sein kann, kann zulässige Abweichungen von einer anderen Referenzhöhe (z. B. die maximale Höhe 814, die der höchsten Instanz der Höhenmaße 802 in dem von dem diskretisierten Objektmodell überlappenden Bereich entspricht) für das Berühren und/oder Stützen von Pakete, die darauf platziert sind, darstellen. Mit anderen Worten kann die Höhendifferenzschwelle 810 dazu verwendet werden, einen Bereich von Oberflächenhöhen zu definieren, die das darauf platzierte Paket berühren und/oder stützen können. Somit kann, relativ zu der maximalen Höhe 814, die untere Höhengrenze 816 einer unteren Grenze für Höhen innerhalb des überlappenden Bereichs 808, die Stützung für das gestapelte Paket bereitstellen kann, entsprechen. Für das in 8B veranschaulichte Beispiel kann die Höhendifferenzschwelle 810 0,02 betragen. Wenn die maximale Höhe 814 0,2 beträgt, kann die untere Höhengrenze 816 0,18 betragen. Dementsprechend kann das Robotersystem 100 beim Platzieren des Zielobjekts 112 an der möglichen Position 801 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 in einer oder mehreren Ausführungsformen das Robotersystem 100 die Diskretisierungseinheiten 602 innerhalb des überlappenden Bereichs 808 gemäß der Höhendifferenzschwelle 810 kategorisieren. Beispielsweise kann das Robotersystem 100 die Diskretisierungseinheiten 602 mit Höhen, die die Höhendifferenzschwelle 810 erfüllen (d. h. Werte größer oder gleich der unteren Höhengrenze 816), als Stützstandorte 828 (z. B. eine Gruppierung von Diskretisierungseinheiten 602, die eine Oberfläche darstellen, auf der Objekte gestapelt werden können, wie etwa in 4B durch schattierte Pixel dargestellt) kategorisieren. Das Robotersystem 100 kann die anderen Diskretisierungseinheiten 602 als nicht qualifizierte Standorte 830 kategorisieren (z. B. Pixel mit Höhen, die niedriger als die untere Höhengrenze 816 sind).
  • Die Stützschwelle 812 kann eine Grenze zum Bewerten der möglichen Positionen 801 basierend auf einer ausreichenden Anzahl der stützenden Standorte 828 darstellen. Beispielsweise kann die Stützschwelle 812 zum Bewerten einer Menge, eines Verhältnisses, eines Bereichs, eines Standortes oder einer Kombination davon, die mit den Stützstandorten 828 assoziiert sind, dienen. In einigen Ausführungsformen kann die Stützschwelle 812 dazu verwendet werden, zu bestimmen, ob die qualifizierende Anzahl 818 (z. B. eine Menge der Stützstandorte 828) für die mögliche Position 801 zum Stützen des Zielobjekts 112 ausreichend ist.
  • In einer oder mehreren Ausführungsformen kann die Stützschwelle 812 dazu verwendet werden, einen gestützten Bereich (z. B. die Diskretisierungseinheiten 602, die ein darauf gestapeltes Objekt stützen können, wie dies durch die Höhenschwelle bestimmt werden kann) zu bewerten, der mit den Stützstandorten 828 assoziiert ist. Beispielsweise kann das Robotersystem 100 die Stützbereichsumrisse 820 basierend auf einem Verlängern von Kanten und/oder einem Bestimmen von Linien, die über oder um die nichtqualifizierten Standorte 830 verlaufen, um Ecken von äußersten Instanzen/Umfangsinstanzen der Stützstandorte 828 zu verbinden, bestimmen. Somit können die Stützbereichsumrisse 820 die nichtqualifizierten Standorte 830 ausschließen. Dementsprechend können die Stützbereichsumrisse 820 einen Umfang für den gestützten Bereich basierend auf den Umfangsinstanzen der Stützstandorte 828 definieren. Da sich die Stützungsbereichskonturen 820 über die nichtqualifizierten Standorte 830 verlaufen und/oder diese beinhalten können, kann die Stützbereichsgröße 822 (z. B. eine Menge der Diskretisierungseinheiten 602 innerhalb des gestützten Bereichs) größer als die qualifizierende Anzahl 818 sein. Somit stellt die Stützbereichsgröße 822 effektiv Trennungen zwischen den äußersten Kanten/Ecken, an denen die Stützung bereitgestellt wird, dar. Weil breitere Stützen bevorzugt werden (z. B. wobei Teile der Stützbereichsumrisse 820 größer als der Überlappungsbereich 808 des Objekts zum Reduzieren von Überhängen und/oder zum Verbessern der Stabilität sind), kann die Stützschwelle 812 einer minimalen Anzahl der Diskretisierungseinheiten 602 in dem gestützten Bereich entsprechen (z. B. zum Bewerten der Stützbereichsumrisse 820), wodurch eine Trennung zwischen den äußersten Kanten/Ecken, an denen die Stützung bereitgestellt wird, effektiv bewertet wird.
  • In einigen Ausführungsformen kann die Stützschwelle 812 zum Bewerten des Stützverhältnisses 824 dienen, das basierend auf dem Vergleichen der qualifizierenden Anzahl 818 und/oder der Stützbereichsgröße 822 mit dem überlappten Bereich 808 berechnet werden kann. Beispielsweise kann das Stützverhältnis 824 ein Verhältnis zwischen der qualifizierenden Anzahl 818 und dem überlappten Bereich 808 zum Darstellen der horizontalen Stabilität, der gestützten Gewichtskonzentration oder einer Kombination davon beinhalten. Das Stützverhältnis 824 kann auch ein Verhältnis zwischen der Stützbereichsgröße 822 und dem überlappten Bereich 808 zum Darstellen der relativen Breiten zwischen den stützenden Kanten/Ecken unter dem Zielobjekt 112 beinhalten.
  • Ferner kann das Robotersystem 100 die möglichen Positionen 801 basierend auf dem CoM-Standort 782 des Zielobjekts 112 weiter bewerten. In einigen Ausführungsformen kann das Robotersystem 100 aus den Stammdaten 252 aus 2 auf den CoM-Standort 782 des Zielobjekts 112 zugreifen und/oder den CoM-Standort 782 dynamisch basierend auf dem Greifen und/oder Anheben des Zielobjekts 112 schätzen. Sobald darauf zugegriffen/geschätzt, kann das Robotersystem 100 den CoM-Standort 782 mit den Stützbereichsumrissen 820 vergleichen. Das Robotersystem 100 kann verlangen, dass die mögliche Position 801 den CoM-Standort 782 innerhalb der Stützbereichsumrisse 820 beinhaltet und die möglichen Positionen 801 eliminiert/ausschließt, die diese Anforderung nicht erfüllen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 eine Platzierungsbewertung basierend auf Trennungsabständen (z. B. entlang der x- und/oder y-Achse) zwischen dem CoM-Standort 782 und den Stützbereichsumrissen 820 berechnen und bewerten.
  • Das Robotersystem 100 kann die Stützparameter 804 dazu verwenden, Beschränkungen/Anforderungen zu bewerten. Beispielsweise kann das Robotersystem 100 die möglichen Positionen, die die Stützschwelle 812 nicht erfüllen, eine CoM-Standortschwelle (z. B. eine Anforderung, den CoM-Standort 782 in den Stützbereichsumrissen 820 aufzunehmen) und/oder andere Stapelregeln eliminieren/ausschließen. Das Robotersystem 100 kann auch die Stützparameter 804 verwenden, um die Platzierungsbewertungen für die möglichen Positionen 801 (z. B. die Standorte, die die Beschränkungen erfüllen) gemäß vorbestimmten Gewichten und/oder Gleichungen zu berechnen. Wie nachfolgend ausführlich beschrieben, kann das Robotersystem 100 die berechnete Platzierungsbewertung dazu verwenden, die möglichen Positionen 801 gemäß den vorbestimmten Präferenzen (z. B. wie durch die Gewichte/Gleichungen dargestellt) einzustufen.
  • In einigen Ausführungsformen kann das Robotersystem 100 bestimmen, ob der Endeffektor 304 aus 3 so positioniert werden kann, um das Zielobjekt 112 zu platzieren. Beispielsweise kann das Robotersystem 100 das diskretisierte Endeffektormodell überlappen (z. B. das Greifergrundrissmodell 632 aus 6 und/oder das Greiferprofilmodell 634 aus 6) über dem diskretisierten Plattformmodell (z. B. das Containergrundrissmodell 622) und/oder dem Containerprofilmodell 624) an dem Aufgabenstandort 116 aus 1 gemäß den abgeleiteten möglichen Positionen 801 überlappen. Das Robotersystem 100 kann die möglichen Positionen 801 verifizieren, wenn sich das diskretisierte Endeffektormodell zwischen (z. B. ohne Überlappung) der Stützwand 725 aus 7C oder entsprechenden diskretisierten Teile befindet.
  • Als veranschaulichendes Beispiel kann das Robotersystem 100 einen Satz verfügbarer Greifkonfigurationen des Endeffektors 304 (z. B. über einem Mittelteil, der gegen eine umlaufende Kante ausgerichtet ist, um 1-359 Grad relativ zum Objekt gedreht usw.) für eine oder mehrere (z. B. jede) der möglichen Positionen 801 verifizieren. Für jede Greifkonfiguration kann das Robotersystem 100 das diskretisierte Endeffektormodell gemäß der Greifkonfiguration anpassen und das angepasste Modell über das diskretisierte Plattformmodell legen. Unter Verwendung der überlagerten Modelle kann das Robotersystem 100 Tiefenwerte für den Endeffektor 304 an der Platzierungsposition des Zielobjekts 112 berechnen (d. h. wobei das Zielobjekt 112 auf der Platzierungsfläche in der möglichen Position 801 ruht). Der Tiefenwert/die Tiefenwerte für eine obere Oberfläche des Zielobjekts 112 in der möglichen Position 801 kann/können als die Summe des Tiefenwerts der Platzierungsfläche gemäß dem diskretisierten Plattformmodell, der Höhe eines oder mehrerer Objekte, die zur Platzierung zwischen dem Containerboden und der möglichen Position 801 platziert oder geplant sind, und/oder der Höhe des Zielobjekts 112 berechnet werden. Der entsprechende Tiefenwert/die entsprechenden Tiefenwerte für den Endeffektor können als die Summe des berechneten Tiefenwerts der oberen Oberfläche des Zielobjekts an der möglichen Position 801 und dem Tiefenwert/der Tiefenwerte entsprechend dem diskretisierten Endeffektormodell berechnet werden.
  • Für jede Greifkonfiguration kann das Robotersystem 100 die Tiefenwerte des diskretisierten Endeffektormodells mit den Tiefenwerten vergleichen, die das Zielobjekt 112 in der möglichen Position 801 umgeben (z. B. Höhen anderer Objekte und/oder die Stützwand 725). Das Robotersystem 100 kann die Greifkonfiguration ablehnen, wenn die Tiefenwerte für die diskretisierte Plattform vorliegen und/oder Objekte darauf anzeigen, dass das 2D-Netz für das diskretisierte Endeffektormodell mit Teilen des Containers (z. B. der Stützwand 725) oder darin gestapelten Objekten kollidieren wird. Das Robotersystem 100 kann wahrscheinliche Kollisionen erkennen, wenn die Tiefenwerte gleich sind oder innerhalb eines Schwellenbereichs zwischen dem diskretisierten Plattformmodell und dem diskretisierten Endeffektormodell liegen. Das Robotersystem 100 kann auch die wahrscheinlichen Kollisionen erfassen, wenn die Tiefenwerte anzeigen, dass der diskretisierte Endeffektor niedriger als die entsprechenden/überlappenden Teile des diskretisierten Plattformmodells ist. In ähnlicher Weise kann das Robotersystem 100 mögliche Kollisionen bestimmen, wenn das 2D-Netz, das den Endeffektor und den angebrachten Teil des Roboterarms darstellt, die Grenzen des diskretisierten Plattformmodells berührt oder darüber hinaus verläuft.
  • Das Robotersystem 100 kann die Greifkonfiguration, die die Kollisionsanalyse besteht, akzeptieren oder validieren. Mit anderen Worten kann das Robotersystem 100 die verbleibenden Greifkonfigurationen validieren, die keinen beliebigen potenziellen Kollisionen entsprechen. Das Robotersystem 100 kann die entsprechende mögliche Position 801 basierend auf der Validierung der Greifkonfiguration weiter validieren. Somit kann das Robotersystem 100 den Endeffektor 304 beim Ableiten der Platzierung des Zielobjekts 112 berücksichtigen. Das Robotersystem 100 kann ferner den vorstehend beschriebenen Prozess dazu verwenden, den Endeffektor 304 beim Aktualisieren der Platzierungspläne in Echtzeit zu berücksichtigen, um sich an unerwartete Bedingungen (z. B. unerwartete(r) Standort und/oder Form der Stützwand 725) anzupassen.
  • Beispiel Bewegungsplanung
  • 9A-9C sind veranschaulichte Aspekte einer beispielhaften Bewegungsplanberechnung gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. 9A und 9B sind Profilansichten, die beispielhafte Ansätze zum Platzieren des Zielobjekts 112 aus 1 veranschaulichen. 6A und 6B veranschaulichen jeweils einen Annäherungsweg 901 zum Platzieren des Zielobjekts 112 an der entsprechenden möglichen Position 801 aus 8A über einem oder mehreren vorhergehenden Objekten 508 (z. B. Objekten, die bereits platziert oder für eine frühere Platzierung geplant sind) in dem Container.
  • Das Robotersystem 100 aus 1 kann den Annäherungsweg 901 basierend auf Annäherungsinkrementen 903, die in den gestrichelten Kästchen von F-1 bis F-5 veranschaulicht sind, ableiten. Die Annäherungsinkremente 903 können Abtastinkremente darstellen, die aufeinanderfolgenden Positionen des Zielobjekts 112, des Roboterarms 302 aus 3 (oder einem Teil davon), dem Endeffektor 304 aus 3 oder einer Kombination davon im 3D-Raum entlang des entsprechenden Annäherungsweges 901 entsprechen. In einigen Ausführungsformen können die Annäherungsinkremente 903 mit einer oder mehreren Abmessungen der Diskretisierungseinheiten 602 aus 6, die für die Modelle verwendet werden, übereinstimmen. Der Annäherungsweg 901 kann Wegsegmente 904 beinhalten, die linearen Segmenten/Richtungen entsprechen. Die Wegsegmente 904 können ein Endsegment 906 zum Platzieren des Zielobjekts 112 an der entsprechenden möglichen Position 801 aus 8A beinhalten. In einigen Ausführungsformen kann das letzte Segment 906 eine vertikale (z. B. eine abwärts gerichtete) Richtung oder Bewegung umfassen. In anderen Ausführungsformen kann das letzte Segment 906 eine abgewinkelte Abwärtsbewegungsbahn in die mögliche Position 801 nach einem vertikalen Abwärtsannäherungsinkrement beinhalten, um etwa das Objekt darunter und/oder seitlich in einen Überhang hineinragend zu platzieren.
  • Um den Annäherungsweg 901 abzuleiten, kann das Robotersystem 100 ein beliebiges der vorhergehenden Objekte 902 und/oder die Stützwände 725, die möglicherweise ein Hindernis für das Zielobjekt 112, den Roboterarm 302 und/oder den Endeffektor 304 beim Platzieren des Zielobjekts 112 an der möglichen Position 801 werden können, identifizieren. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 (ein) potenzielle(s) Hindernis(se) 910 als Instanz(en) der vorhergehenden Objekte 902 identifizieren, die eine horizontale Linie (z. B. eine gerade Linie entlang der x-y-Ebene) und/oder eine 2D-Ebene, die zwischen Standorten über dem Startstandort 114 und der entsprechenden möglichen Position 801 verlaufen, überlappen. Das Robotersystem 100 kann ferner das potenzielle Hindernis/die potenziellen Hindernisse 910 als Instanz(en) der vorhergehenden Objekte 902 identifizieren, die eine Spur 912 überlappen (wie in 9C veranschaulicht), die um die horizontale Linie herum abgeleitet ist, wie etwa basierend auf dem Ableiten der Spur 912 parallel zu und überlappend mit der horizontalen Linie und mit einer Breite basierend auf einer oder mehreren Abmessungen (z. B. einer Breite, einer Länge und/oder einer Höhe) des Zielobjekts 112. Wie in den FIG: 9A und 9B veranschaulicht, kann sich der Startstandort 114 rechts von der möglichen Position 801 befinden. In ähnlicher Weise kann das Robotersystem 100 das potenzielle Hindernis/die potenziellen Hindernisse 910 als die Stützwände 725 des Containers weiter identifizieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 das potenzielle Hindernis 910 basierend auf den vorstehend beschriebenen Tiefenmaßen validieren. Beispielsweise kann das Robotersystem 100 die potenziellen Hindernisse 910 mit einer oder mehreren der oberen Oberflächentiefenmaße größer oder gleich denen der möglichen Position 801 validieren/identifizieren. Das Robotersystem 100 kann aus den potenziellen Hindernissen 910 die vorhergehenden Objekte 902 entfernen, deren obere Oberflächentiefenmaße kleiner als die der möglichen Position 801 sind. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die potenziellen Hindernisse 910 basierend auf einer Mehrdeutigkeit, die mit der Höhe der möglichen Position 801 und/oder der Höhe der potenziellen Hindernisse 910 assoziiert ist, identifizieren/eliminieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 den Annäherungsweg 901 in einer umgekehrten Reihenfolge ableiten, wie etwa beginnend von der möglichen Position 801 und endend an dem Startstandort 114. Dementsprechend kann das Robotersystem 100 zuerst das letzte Segment 906 ableiten (z. B. vor anderen Segmenten), um die potenziellen Hindernisse 910 zu vermeiden. Beispielsweise kann das Robotersystem 100 einen Satz der Spuren 912 gemäß den Abmessungen des Objekts und des Endeffektors bestimmen (z. B. eine Kombination der Greifermodelle und der Objektmodelle gemäß der eingerasteten Schnittstellenhöhe 534 aus 5C). In einigen Ausführungsformen kann der Satz von Spuren eine oder mehrere seitlich verlaufende Spuren umfassen, die einer Höhe und/oder einer Breite des Zielobjekts entsprechen. Der Satz von Spuren kann auch eine oder mehrere vertikal verlaufende Spuren umfassen, die einer Länge und/oder einer Breite des Zielobjekts entsprechen.
  • Das Robotersystem 100 kann zuerst die vertikal verlaufenden Spuren ableiten, die von der möglichen Position 801 nach oben verlaufen. Das Robotersystem 100 kann bewerten, ob die vertikal verlaufenden Spuren alle vorhergehenden Objekte 902 und/oder die Stützwände 725 überlappen/berühren. Das Robotersystem 100 kann die mögliche Position 801 basierend auf dem Erkennen der Überlappung/Berührung disqualifizieren und/oder seitliche Bewegungen bewerten. Wenn die vertikal verlaufenden Spuren keine beliebigen potenziellen Hindernisse 910 (z. B. die vorhergehenden Objekte 902 und/oder die Stützwände 725) überlappen/berühren, kann das Robotersystem 100 die seitlich verlaufenden Spuren von den vertikal verlaufenden Spuren zu einem Standort über dem Startstartort 114 ableiten. Das Robotersystem 100 kann die seitlich verlaufenden Spuren auf einer vorbestimmten Mindesthöhe ableiten (z. minimale/maximale Fallhöhe und/oder die Containerwandhöhe).
  • Das Robotersystem 100 kann in ähnlicher Weise bewerten, ob die seitlich verlaufenden Spuren beliebige potenzielle Hindernisse 910 überlappen/berühren. Das Robotersystem 100 kann iterativ eine Höhe (z. B. um ein oder mehrere Annäherungsinkremente 903) für die seitlich verlaufenden Spuren basierend auf der Erfassung eines potenziellen Hindernisses erhöhen. Das Robotersystem 100 kann somit seitliche Spuren auf zunehmenden Höhen bewerten, bis eine klare Annäherungsspur bestimmt ist und/oder eine maximale Auswertungshöhe erreicht ist. Wenn die maximale Bewertungshöhe ohne eine freie Spur erreicht ist, kann das Robotersystem 100 die mögliche Position 801 ignorieren. Andernfalls kann das Robotersystem 100 die seitlich verlaufende Spur validieren.
  • Das Robotersystem 100 kann den Annäherungsweg 901 gemäß den validierten vertikalen Spuren (z. B. entsprechend dem letzten Segment 906) und den validierten lateralen Spuren (z. B. entsprechend dem Wegsegment 904) ableiten. In einigen Ausführungsformen kann das Robotersystem 100 in ähnlicher Weise diagonal verlaufende Spuren (z. B. Fahrspuren, die in einem Winkel nach oben und quer verlaufen) und/oder mehrere Spursegmente (z. B. iteratives Aufsteigen und anschließendes Überqueren, um einem Schrittmuster zu folgen) für den Annäherungsweg 901 bewerten.
  • Als veranschaulichendes Beispiel kann das Robotersystem 100 die Höhe der seitlich verlaufenden Spuren weiter erhöhen, bis sich die Bodenfläche/Spurkante über den potenziellen Hindernissen 910 befindet und/oder ein nächstgelegenes potenzielles Hindernis durch eine Freigabeschwelle 914 (z. B. eine Anforderung für eine minimale vertikale Trennung für das Zielobjekt 112 über einem höchsten Punkt der potenziellen Hindernisse 910, um einen Kontakt oder eine Kollision zwischen dem Zielobjekt 112 und dem potenziellen Hindernis 910 zu vermeiden) löscht. Wenn die Spuren die Freigabeschwelle 914 erfüllen, kann das Robotersystem 100 das entsprechende Annäherungsinkrement entlang einer horizontalen Richtung (z.B. in Richtung des Startstandorts 114) um einen vorbestimmten Abstand einstellen. Dementsprechend kann das Robotersystem 100 das endgültige Segment 906 und/oder die nachfolgenden Wegsegmente 904 basieren auf der möglichen Position 801 und dem Annäherungsweg 901 ableiten.
  • Einmal abgeleitet, kann das Robotersystem 100 den Annäherungsweg 901 dazu verwenden, die entsprechenden möglichen Positionen 801 zu bewerten. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsbewertung gemäß dem Annäherungsweg 901 berechnen. Beispielsweise kann das Robotersystem 100 die Platzierungsbewertung gemäß einer Präferenz (z. B. gemäß einem oder mehreren Gewichten, die vorbestimmten Platzierungspräferenzen entsprechen) für eine kürzere Länge/einen kürzeren Abstand für das letzte/vertikale Segment berechnen. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 eine Beschränkung beinhalten, wie beispielsweise eine maximale Grenze, die mit dem Annäherungsweg 901 assoziiert ist (z. B. für das letzte/vertikale Segment 906), der dazu verwendet wird, möglichen Positionen 801 zu eliminieren oder zu disqualifizieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 die entsprechenden möglichen Positionen 801 gemäß anderen mit Kollision/Blockierung verwandten Parametern weiter bewerten. Beispielsweise kann das Robotersystem 100 die möglichen Positionen 801 gemäß horizontalen Trennungen 916 zwischen den möglichen Positionen 360 und einem oder mehreren der vorhergehenden Objekte 902 bewerten. Jede der horizontalen Trennungen 916 kann ein Abstand (z. B. ein kürzester Abstand) entlang einer horizontalen Richtung (z. B. x-y-Ebene) zwischen der entsprechenden möglichen Position 360 und einer benachbarten Instanz der vorhergehenden Objekte 902 sein. Das Robotersystem 100 kann die Platzierungswerte für die möglichen Positionen 360 basierend auf der horizontalen Trennung 916 ähnlich wie vorstehend für den Annäherungsweg 901 beschrieben berechnen. Das Robotersystem 100 kann auch möglichen Positionen 360 basierend auf der horizontalen Trennung 916 eliminieren oder disqualifizieren, beispielsweise wenn die horizontale Trennung 916 eine Mindestanforderung nicht erfüllt. Da das letzte Segment 906 im Allgemeinen für die Objektplatzierung am schwierigsten ist, liefert die Validierung des Annäherungsweges 901, beginnend mit dem letzten Segment 906, eine verringerte Verarbeitungszeit zum Validieren des Annäherungsweges 901.
  • Beispieleinstellungen für unerwartete Bedingungen
  • 10 veranschaulicht beispielhafte Echtzeitsensordaten (z. B. Sensorausgang 1000) gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Robotersystem 100 aus 1 kann den Sensorausgang 1000 über die entsprechenden Sensoren erhalten. Beispielsweise kann der Sensorausgang 1000 ein Draufsichtbild 1052 von dem Draufsichtsensor 310 aus 3 und/oder ein Seitenansichtbild 1054 von dem Seitenansichtssensor 312 aus 3 beinhalten. Das Draufsichtbild 1052 und/oder das Seitenansichtbild 1054 kann den Container (z. B. den Wagen 410 aus 4A und/oder den Käfig 420 aus 4C) an dem Aufgabenstandort 116 aus 1 und/oder die Objekte in dem Container abbilden.
  • Das Robotersystem 100 aus 1 kann den Sensorausgang 1000 auf unerwartete Merkmale 1002 analysieren, die mit dem Container assoziiert sind. Beispielsweise kann das Robotersystem 100 den Sensorausgang 1000 basierend auf dem Erfassen der tatsächlichen Merkmale 606 (über z. B. einen Kantenerfassungsmechanismus, wie etwa einen Sobel-Filter) analysieren und diese mit vorbestimmten/erwarteten Merkmalen (z. B. Kanten) des Containers vergleichen. Das Robotersystem 100 kann die unerwarteten Merkmale 1002 erfassen, wenn die in der Sensorausgabe 1000 abgebildeten tatsächlichen Merkmale 606 von den erwarteten Merkmalen des Containers (dargestellt durch z. B. eine entsprechende Schablone) und/oder Vorlagenmustern für vorbestimmte Fehlerbedingungen abweichen. Einige Beispiele der unerwarteten Merkmale 1002 können Fehlerbedingungen für die Stützwand 725 aus 7C entsprechen, wie etwa eine teilweise geöffnete Wagenwand (veranschaulicht über die linke Wand) und/oder eine verzogene Wand (veranschaulicht über die rechte Wand).
  • Die unerwarteten Merkmale 1002 können einer Platzierungsfläche entsprechen, die von einer erwarteten Platzierungsfläche abweicht. Beispielsweise können die teilweise geöffnete Wagenwand und/oder die verzogene Wand einen reduzierten Teil der Containerbodenfläche freilegen. Somit können die Packpläne 700 aus 7A, die basierend auf erwarteten Bedingungen abgeleitet sind, möglicherweise für den tatsächlichen Container mit den unerwarteten Merkmalen 1002 nicht anwendbar sein (z. B. können nicht ohne Anpassungen passen). Auch können die unerwarteten Merkmale 1002 unerwartete Hindernisse/Blockierungen für Bewegungspläne (z. B. die Annäherungswege 901 aus 9A), die mit den Packplänen 700 assoziiert sind, darstellen.
  • Dementsprechend kann das Robotersystem 100 als Reaktion auf das Erfassen der unerwarteten Merkmale 1002 die Packpläne 700 dynamisch anpassen, um die unerwarteten Merkmale 1002 zu berücksichtigen. Mit anderen Worten kann das Robotersystem 100 dynamisch (z. B. während des Pack-/Ladebetriebs) die Packpläne 700 erzeugen oder aktualisieren, um die geplanten Objekte trotz oder im Hinblick auf die unerwarteten Merkmale 1002 in dem Container zu platzieren. Beim dynamischen Anpassen der Packpläne 700 kann das Robotersystem 100 den Sensorausgang 1000 dazu verwenden, ein oder mehrere tatsächliche Containermodelle, die die unerwarteten Merkmale 1002 beinhalten oder darstellen, dynamisch zu erzeugen. Beispielsweise kann das Robotersystem 100 ein angepasstes Grundrissmodell 1022 basierend auf dem Draufsichtbild 1052 und/oder ein angepasstes Profilmodell 1024 basierend auf dem Seitenansichtbild 1054 dynamisch erzeugen. Das Robotersystem 100 kann die angepassten Modelle basierend auf Pixelieren und/oder Diskretisieren des Sensorausgangs 1000 gemäß den Diskretisierungseinheiten 602 aus 6 und/oder den Annäherungsinkrementen 903 aus 9A erzeugen. Beispielsweise kann das Robotersystem 100 erfasste Kanten, die den Stützwänden 725 (z. B. eine oder mehrere innere Oberkanten davon) und/oder der Containerbasis entsprechen, basierend auf vorgegebenen Mustern, die mit Tiefe, Farbe, Form und/oder anderen Parametern identifizieren. Das Robotersystem 100 kann eine oder mehrere vorbestimmte Instanzen der identifizierten Kanten als Start-/Referenzkanten auswählen (z. B. ein Teil der Modellgrenze 608). Das Robotersystem 100 kann die ausgewählten Kanten verwenden und mit dem Teilen des Bereichs/Raums zwischen den Stützwänden 725 für den Pixelisierungsprozess beginnen. Das Robotersystem 100 kann den Bereich/Raum pixelieren, ohne die Kanten, die den Stützwänden 725 und/oder damit verbundenen Standorten/Höhen entsprechen, zu überschreiten oder darüber hinauszugehen. Somit kann das Robotersystem 100 verbleibende Teile der Modellgrenze 608 bestimmen. Dementsprechend kann das Robotersystem 100 die angepassten Modelle, die eine eingestellte Platzierungszone 1026 darstellen, in der die Objekte gespeichert werden können, dynamisch erzeugen.
  • Wie vorstehend beschrieben, kann das Robotersystem 100 die angepasste Platzierungszone 1026, die sich von der erwarteten Platzierungszone 430 aus 4A unterscheiden kann, dynamisch bestimmen. Wenn die unerwarteten Merkmale 1002 erfasst werden, kann das Robotersystem 100 die eingestellte Platzierungszone 1026 mit der erwarteten Platzierungszone 430 und/oder dem Packplan 700 zum Platzieren der Gegenstände in dem Container vergleichen. Beispielsweise kann das Robotersystem 100 die Containermodelle und/oder den Packplan 700 über den eingestellten Modellen überlagern. Dementsprechend kann das Robotersystem 100 bestimmen, ob sich die erwartete Platzierungszone 430 von der eingestellten Platzierungszone 1026 unterscheidet und/oder ob der Packplan 700 über die eingestellte Platzierungszone 1026 hinaus verläuft.
  • Das Robotersystem 100 kann, wenn sich die erwartete Platzierungszone 430 von der eingestellten Platzierungszone 1026 unterscheidet und/oder wenn der Packplan 700 oder ein Teil davon über die eingestellte Platzierungszone 1026 hinaus verläuft, eine Packverlagerung initiieren. Das Robotersystem 100 kann die Packverlagerung basierend auf dem Bewegen des Packplans 700 innerhalb der eingestellten Platzierungszone 1026 umsetzen. Beispielsweise kann das Robotersystem 100 anfänglich den AABB 730 aus 7A auf eine vorbestimmte Ecke/Kante der eingestellten Platzierungszone 1026 ausrichten und bewerten, ob der AABB 730 in der eingestellten Platzierungszone 1026 enthalten ist. Wenn die anfängliche Ausrichtung des AABB 730 nicht innerhalb der Grenzen der eingestellten Platzierungszone 1026 enthalten ist, kann das Robotersystem 100 den AABB 730 iterativ innerhalb der eingestellten Platzierungszone 1026 gemäß einem vorbestimmten Muster verschieben und bewerten, ob der AABB 730 innerhalb der eingestellten Platzierungszone 1026 enthalten ist. Somit kann das Robotersystem 100 die Platzierungsstandorte aller Objekte innerhalb des Packplans 700 als eine Gruppe/Einheit einstellen.
  • Wenn eine Platzierung des AABB 730 in die eingestellte Platzierungszone 1026 passt, kann das Robotersystem 100 die eingestellte Position des Packplans 700 validieren. In einigen Ausführungsformen kann das Robotersystem 100 die angepasste Position des Packplans 700 basierend auf der Bewertung validieren, ob der Annäherungsweg 901 aus 9A für ein oder mehrere Objekte in der verschobenen oder eingestellten Instanz des Packplans 700 mit den erkannten Containerkanten überlappt. Beispielsweise kann das Robotersystem 100 die Annäherungswege 901 des ersten Objekts, der ersten Schicht, Objekte an umlaufenden Standorten des AABB 730 und/oder anderer Objekte aktualisieren, um die Positionen der Einstellungsplatzierungsstandorte zu berücksichtigen. Die verschobenen Annäherungswege 901 können überlagert und mit dem Sensorausgang 1000 verglichen werden, um zu bestimmen, ob die verschobenen Annäherungswege 901 mit den Containerwänden und/oder vorhergehende Objekte überlappen und/oder kollidieren. Wenn die bewerteten Annäherungswege frei von den potenziellen Hindernissen 910 aus 9A für die unerwarteten Merkmale sind, kann das Robotersystem 100 den Packplan 700 gemäß dem verschobenen Standort validieren und umsetzen. Somit kann das Robotersystem 100 den Packplan 700 im Lichte der unerwarteten Merkmale 1002 umsetzen, wie etwa ohne den Packplan 700 und/oder die Annäherungswege 901 erneut abzuleiten. Wenn das Robotersystem 100 keinen alternativen Standort des AABB 730 bestimmt, an dem alle Objekte in der eingestellten Platzierungszone 1026 enthalten sind, kann das Robotersystem 100 den Packplan 700 erneut ableiten und/oder den Austausch des Containers initiieren/umsetzen. Details bezüglich der dynamischen Anpassungen an den unerwarteten Merkmalen 1002 sind nachfolgend beschrieben.
  • 11 ist ein Ablaufdiagramm für ein erstes beispielhaftes Verfahren 1100 zum Betreiben des Robotersystems 100 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. Das Verfahren 1100 kann zum Ableiten der Packpläne 700 aus 7A zum Platzieren von Objekten (z. B. Paketen, Kisten und/oder Kästen) in einen Container (z. B. den Wagen 410 aus 4A) und/oder der Käfig 420 aus 4C) dienen. Das Verfahren 1100 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. Die Prozessoren 202 können den Roboterarm 302 aus 3 und/oder den Endeffektor 304 aus 3 gemäß den Packplänen 700 steuern, wie etwa durch Übertragen des Zielobjekts 112 aus 1 von dem Startstandort 114 aus 1 zu dem Container an dem Aufgabenstandort 116 aus 1. Beispielsweise können die Prozessoren 202 die Robotereinheiten steuern, um die Komponenten/Objekte entlang der Annäherungswege 901 aus 9A zu manövrieren und sie an den entsprechenden Platzierungsstandorten in dem Container zu platzieren.
  • In Block 1102 kann das Robotersystem 100 eine Reihe von Objekten identifizieren (z. B. Objekte, die als das gestapelte Objekt 724 aus 7B bestimmt werden, das obere Paket 772 aus 7C, die Stützpakete 774 aus 7C, das Zwischenobjekt 799 aus 7C usw.), der zur Platzierung innerhalb von Containern an dem Aufgabenstandort 116 bestimmt ist. Beispielsweise kann das Robotersystem 100 Objekte (z.B. den Satz verfügbarer Pakete 742 aus 7B), die zum Packen verfügbar, innerhalb einer eingehenden Sendung, an einem bestimmten Ort ankommend, an einer Quelle befindlich, zum Platzieren bestimmt und/oder in einer Bestellung/einer Anfrage/einem Ladungsverzeichnis aufgeführt sind.
  • In Block 1102 kann das Robotersystem 100 auch die Container identifizieren, die dazu verfügbar sind, die identifizierten Objekte zu empfangen. Beispielsweise kann das Robotersystem 100 die Wagen 410 und/oder die Käfige 420, die einen leeren oder teilweise gefüllten Status haben und/oder für den Zugriff verfügbar sind (z. B. derzeit nicht verwendet oder nicht blockiert), identifizieren. Das Robotersystem 100 kann auch die Container identifizieren, die verfügbar werden, wie etwa aus einer Warteschlange. Das Robotersystem 100 kann ferner Eigenschaften/Merkmale (z. B. Kategorien, Abmessungen, Kennungen usw.) für die identifizierten Container bestimmen. Das Robotersystem 100 kann mit einem anderen System (z. B. einem Transportrobotersystem) verbunden sein, auf Informationen aus den Stammdaten 252 aus 2 zugreifen und/oder Echtzeitinformationen von Containern erhalten (z. B. über Sensoren an vorbestimmten Orten), um die Container und/oder deren Eigenschaften zu identifizieren.
  • In Block 1104 kann das Robotersystem 100 ein oder mehrere diskretisierte Modelle erhalten (z. B. durch Erzeugen in Echtzeit und/oder Zugreifen aus den Stammdaten 252). Beispielsweise kann das Robotersystem 100 diskretisierte Modelle erhalten, die die identifizierten Objekte darstellen, wie etwa die Objektmodelle 706-710 aus 7A, die entsprechenden Fußabdruckmodelle 612 aus 6 und/oder die entsprechenden Profilmodelle 614 aus 6. Das Robotersystem 100 kann auch diskretisierte Modelle erhalten, die die identifizierten Container darstellen, wie etwa die Containergrundrissmodelle 622 aus 6 und/oder die Containerprofilmodelle 624 aus 6.
  • In einigen Ausführungsformen kann das Robotersystem 100 die diskretisierten Modelle in Echtzeit (z. B. wie etwa nach Erhalt der Bestellung und/oder vor Beginn des Packvorgangs oder offline) basierend auf dem Pixelieren oder Teilen physikalischer Abmessungen oder Bilder der Objekte/Container gemäß den Diskretisierungseinheiten 602 aus 6 (z. B. Pixel mit festgelegten Abmessungen) erzeugen. Die Abmessungen der Diskretisierungseinheiten 602 können von einem Hersteller, einem bestellenden Kunden und/oder einer Bedienperson vorbestimmt oder dynamisch eingestellt werden. Beispielsweise können die Diskretisierungseinheiten 602 bei 1 Millimeter (mm) oder 1/16 Zoll (in) oder mehr (z. B. bei 5 mm oder 20 mm) liegen. In einigen Ausführungsformen können die Diskretisierungseinheiten 602 auf einer Abmessung oder einer Größe eines oder mehrerer der Objekte und/oder der Container basieren (z. B. ein Prozentsatz oder ein Bruchteil).
  • In einigen Ausführungsformen kann das Robotersystem 100 auf die diskretisierten Modelle zugreifen, die in den Speichervorrichtungen 204 und/oder einer anderen Vorrichtung (z. B. einer Speichervorrichtung, einer Datenbank, einem System zum Steuern von Transportrobotern und/oder einem Server eines Paketlieferanten, auf die bzw. den über die Kommunikationsvorrichtungen 206 aus 2 zugegriffen wird) gespeichert sind. Das Robotersystem 100 kann auf die vorbestimmten diskretisierten Modelle zugreifen, die die identifizierten Objekte und/oder die identifizierten Container darstellen. Beispielsweise kann das Robotersystem 100 auf die diskretisierten Objektmodelle zugreifen, die den identifizierten Objekten entsprechen, indem die Masterdaten 252 (z. B. eine vorbestimmte Tabelle oder eine Nachschlagetabelle) hinsichtlich der verfügbaren Objekte und ihrer entsprechenden Modelle durchsucht werden. Gleichermaßen kann das Robotersystem 100 auf das diskretisierte Containermodell zugreifen, welches den Aufgabenstandort 116, wie etwa die identifizierten Wagen oder Käfige, darstellt, auf denen die verfügbaren Objekte zu platzieren sind.
  • In Block 1106 kann das Robotersystem 100 Objektgruppierungen bestimmen (z. B. Untergruppierungen der identifizierten Objekte). Das Robotersystem 100 kann die Objektgruppierungen gemäß Ähnlichkeiten und/oder Mustern in einem oder mehreren Eigenschaften der identifizierten Objekte bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 die Objektgruppierungen gemäß vorbestimmten Gruppierungsbedingungen/-anforderungen, wie etwa einer Objektpriorität (z. B. wie von einem oder mehreren Kunden angegeben), einer Zerbrechlichkeitseinstufung (z. B. ein vom Objekt stützbares maximales Gewicht), einem Gewicht, einer Abmessung (z. B. einer Höhe), einem Typ oder einer Kombination davon bestimmen. Beim Gruppieren der Objekte kann das Robotersystem 100 die Stammdaten 252 nach den verschiedenen Merkmalen der identifizierten Objekte, die mit den Gruppierungsbedingungen/-anforderungen übereinstimmen, durchsuchen.
  • In Block 1108 kann das Robotersystem 100 eine Verarbeitungsreihenfolge (z. B. eine Sequenz zum Berücksichtigen/Ableiten von Platzierungsstandorten) für die identifizierten Objekte und/oder die Objektgruppierungen ableiten. In einigen Ausführungsformen kann das Robotersystem 100 die Verarbeitungsreihenfolge gemäß einer oder mehreren Sequenzierungsbedingungen/-anforderungen ableiten. Beispielsweise kann das Robotersystem 100 die Verarbeitung der Objektgruppierungen gemäß einer Anzahl von Objekten innerhalb jeder der Gruppierungen priorisieren, wie etwa um Gruppierungen mit einer größeren Anzahl von Objekten früher in der Platzierungsplanung zu verarbeiten. In einigen Ausführungsformen können die Sequenzierungsbedingungen die Gruppierungsbedingungen überlappen, wie etwa für die Gewichtsbereiche, die Zerbrechlichkeitseinstufungen usw. Beispielsweise kann das Robotersystem 100 die Verarbeitung der schwereren und/oder der weniger zerbrechlichen Objekte für eine frühere Verarbeitung und/oder für die Platzierung in unteren Schichten priorisieren. Zu einem früheren Zeitpunkt
  • In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsplanung gemäß einem kombinierten horizontalen Bereich priorisieren. Das Robotersystem 100 kann Flächenbereiche von oberen Flächen der Objekte in den Gruppierungen unter Verwendung von Informationen, die in den Stammdaten 252 festgelegt sind, berechnen (z. B. durch Multiplizieren entsprechender Breiten und Längen) oder darauf zugreifen. Beim Berechnen des kombinierten horizontalen Bereichs kann das Robotersystem 100 die Flächenbereiche von Objekten mit der gleichen Art und/oder Höhen innerhalb eines Schwellenbereichs hinzufügen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsplanung von Gruppierungen, die den größeren kombinierten horizontalen Bereich aufweisen, für eine frühere Verarbeitung und/oder für die Platzierung in unteren Schichten priorisieren.
  • Für eine oder mehrere Ausführungsformen kann das Robotersystem 100 einen Puffer (z. B. die Speichervorrichtung 204) mit Kennungen und/oder Mengen der identifizierten Objekte laden. Das Robotersystem 100 kann die Kennungen im Puffer gemäß den Gruppierungen sequenzieren. Ferner kann das Robotersystem 100 die Kennungen im Puffer gemäß der Verarbeitungsreihenfolge sequenzieren. Dementsprechend können die sequenzierten Werte im Puffer den verfügbaren Paketen 742 und/oder den übrigen Paketen 752, die in 7B veranschaulicht sind, entsprechen.
  • Das Robotersystem 100 kann die Verarbeitungsreihenfolge für einen anfänglichen Satz der verfügbaren Pakete 742 offline ableiten, wie etwa bevor ein beliebiges der Objekte auf der Plattform platziert wird. In einigen Ausführungsformen kann das Robotersystem 100 die Verarbeitungsreihenfolge für einen verbleibenden Satz der verfügbaren oder verbleibenden Pakete 752 nach dem Initiieren oder während des Umsetzens des entsprechenden Packplans 700 dynamisch ableiten. Beispielsweise, wie durch eine Rückkopplungsschleife aus Block 1116 dargestellt, kann das Robotersystem 100 die Verarbeitungsreihenfolge für den verbleibenden Satz (z. B. einen Teil der verfügbaren oder verbleibenden Pakete 752, die nicht auf die Plattform übertragen wurden und/oder die an einem Quellstandort bleiben) gemäß einer oder mehreren Auslösebedingungen berechnen. Beispielhafte Auslösebedingungen können Stapelfehler (z. B. verlorene oder heruntergefallene Objekte), Kollisionsereignisse, vorbestimmte Wiederauslösezeiten, Containeranomalien (z. B. Erkennen der unerwarteten Merkmale 1004 aus 10) oder eine Kombination davon beinhalten.
  • Das Robotersystem 100 kann den Packplan 700 basierend auf dem iterativen Ableiten und Bewerten der möglichen Positionen 801 und/oder Kombinationen davon gemäß einer oder mehreren Platzierungsregeln ableiten. Das Robotersystem 100 kann den Packplan 700 basierend auf der Überlagerung von Objektmodellen über dem diskretisierten Containermodell an den möglichen Positionen 801 ableiten. Das Robotersystem 100 kann ein oder mehrere Attribute (z. B. physikalische Anordnungen der Objekte, resultierendes Gewicht, Kollisionswahrscheinlichkeiten, Stabilität usw.), die mit den an den möglichen Positionen 801 überlagerten Objektmodellen assoziiert sind, schätzen.
  • In einigen Ausführungsformen kann das Robotersystem 100 die möglichen Positionen 801 gemäß Schichten ableiten, wodurch 2D-Pläne abgeleitet und bewertet werden. Beispielsweise kann das Robotersystem 100 die Objektplatzierungsstandorte ableiten (z. B. Instanzen der möglichen Positionen 801 validieren), die die unterste Schicht bilden, in der die platzierten Objekte direkt die Containerbasis (d. h. die Platzierungsfläche) berühren. Beim Ableiten der Schicht und/oder für nachfolgende Auswertungen kann das Robotersystem 100 die Höhenmaße 802 aus 8A zu den Platzierungsstandorten hinzufügen und die Standorte in 3D verarbeiten. Sobald die unterste Schicht abgeleitet/validiert ist, kann das Robotersystem 100 die möglichen Positionen 801 zur Platzierung von Objekten auf (z. B. direkter Kontakt mit den oberen Oberflächen von) den Objekten, die zur Platzierung in der untersten Schicht geplant sind, ableiten. Dementsprechend kann das Robotersystem 100 den Packplan 700 ableiten, der mehrere übereinander gestapelte 2D-Schichten enthält. Darüber hinaus kann das Robotersystem 100 beim Ableiten des Packplans 700 Positionen ableiten und validieren, an denen die gestapelten Objekte jeweils ein oder mehrere Objekte über den gestapelten Objekten überhängen und die Stützwand 725 zur Stützung nutzen. Einzelheiten bezüglich der Ableitung des Packplans 700 sind nachfolgend beschrieben.
  • In Block 1110 kann das Robotersystem 100 2D-Pläne (z. B. Schichten, wie etwa die untere Schicht 712 und/oder die gestapelte Schicht 722, die in 7A veranschaulicht ist) zum Platzieren der verfügbaren Pakete 742 entlang entsprechender horizontaler Ebenen ableiten. Beispielsweise kann das Robotersystem 100 die 2D-Abbildungen von Platzierungsstandorten entlang der horizontalen Ebene für eine Teilmenge der verfügbaren Pakete 742 ableiten. Das Robotersystem 100 kann die Platzierungspläne basierend auf den diskretisierten Modellen ableiten, wie etwa durch Überlagern/Vergleichen der diskretisierten Objektmodelle auf/mit dem diskretisierten Containermodell. Dementsprechend kann das Robotersystem 100 verschiedene Anordnungen (z. B. die möglichen Positionen 801 aus 8A) der diskretisierten Objektmodelle analysieren und die Anordnungen, die innerhalb der Grenzen des diskretisierten Plattformmodells liegen, validieren. Das Robotersystem 100 kann die Objekte bezeichnen, die nicht innerhalb der Grenzen des diskretisierten Containermodells für eine andere Schicht platziert werden können. Dementsprechend kann das Robotersystem 100 iterativ Platzierungsstandorte für die 2D-Schichten des Packplans 700 ableiten, bis jedem der Pakete in dem Paketsatz ein Standort zugewiesen wurde.
  • In einigen Ausführungsformen kann das Robotersystem 100 den Packplan 700 und/oder die darin enthaltenen Schichten basierend auf den Objektgruppierungen erzeugen. Beispielsweise kann das Robotersystem 100 die Anordnungen für die Objekte innerhalb einer Gruppierung bestimmen, bevor Platzierungen von Objekten in einer anderen Gruppierung berücksichtigt werden. Wenn Objekte innerhalb einer Objektgruppe eine Ebene überlaufen (d. h. nicht in eine Ebene oder eine Instanz des diskretisierten Plattformmodells passen) und/oder nach dem Platzieren aller Pakete einer Gruppierung kann das Robotersystem 100 Standorte für die Objekte in der nächsten Gruppierung beliebigen restlichen/nichtbelegten Bereichen in dem diskretisierten Containermodell zuweisen. Das Robotersystem 100 kann die Zuweisungen iterativ wiederholen, bis keines der nichtzugewiesenen Objekte über die verbleibenden Räume des diskretisierten Containermodells passen kann.
  • In ähnlicher Weise kann das Robotersystem 100 die Planschichten basierend auf der Verarbeitungsreihenfolge erzeugen (z. B. basierend auf den Objektgruppierungen gemäß der Verarbeitungsreihenfolge). Beispielsweise kann das Robotersystem 100 eine Testanordnung basierend auf dem Zuweisen von Objekten und/oder Gruppierungen gemäß der Verarbeitungsreihenfolge bestimmen. Das Robotersystem 100 kann das/die früheste sequenzierte Objekt/Gruppierung einer anfänglichen Platzierung für die Testanordnung zuweisen und dann die nachfolgenden Objekte/Gruppierungen entsprechend der Verarbeitungsreihenfolge testen/zuweisen. In einigen Ausführungsformen kann das Robotersystem 100 die Verarbeitungsreihenfolge für die Objekte/Gruppierungen über Ebenen hinweg (z. B. über Instanzen der Platzierungspläne 350) beibehalten. In einigen Ausführungsformen kann das Robotersystem 100 die Verarbeitungsreihenfolge erneut ableiten und aktualisieren (veranschaulicht unter Verwendung einer gestrichelten Rückkopplungslinie in 6), nachdem jede Schicht gefüllt ist. In einigen Ausführungsformen kann das Robotersystem 100 als veranschaulichendes Beispiel der vorstehend beschriebenen Prozesse die 2D-Pläne durch Identifizieren der unterschiedlichen/eindeutigen Pakettypen innerhalb jeder der Objektgruppierungen und/oder des Paketsatzes erzeugen.
  • Das Robotersystem 100 kann Platzierungsstandorte für jedes der verfügbaren Pakete 742 ableiten (z. B. iterativ). Das Robotersystem 100 kann einen anfänglichen Platzierungsstandort (z. B. die mögliche Position 801) für das eindeutige Objekt zuerst nacheinander gemäß der Verarbeitungsreihenfolge bestimmen. Das Robotersystem 100 kann den anfänglichen Platzierungsstandort gemäß einem vorbestimmten Muster (z. B. einer vorbestimmten Sequenz von Ausrichtungen/Positionen) wie vorstehend beschrieben bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 anfängliche Platzierungen für jedes eindeutige Paket berechnen. Die entstandenen anfänglichen Platzierungen können jeweils zu einer eindeutigen Platzierungskombination (z. B. einer Instanz der Suchstruktur 754 aus 7B) entwickelt werden, wie etwa durch Verfolgen der Kombination von Platzierungsstandorten über Iterationen hinweg. Das Robotersystem 100 kann mögliche Platzierungsstandorte für die nachfolgenden Objekte gemäß der Verarbeitungsreihenfolge und/oder den restlichen Paketen ableiten und verfolgen, wie vorstehend beschrieben. Dementsprechend kann das Robotersystem 100 die Platzierungskombinationen 744 aus 7B iterativ ableiten.
  • Beim Ableiten der Platzierungskombinationen 744 (z. B. eines Satzes von möglichen Positionen 801) kann das Robotersystem 100 iterativ mögliche Stapelszenarien ableiten und bewerten (z. B. mögliche Platzierung von Objekten auf den Objekten an den abgeleiteten möglichen Positionen 801). Beispielsweise kann das Robotersystem 100 den Satz von möglichen Positionen 801 in einer Schicht gemäß einer resultierenden oberen Oberfläche, einer Stabilitätsschätzung, einer Stützschätzung und/oder anderer Kriterien bewerten. Die bewerteten Kriterien können erfordern/bevorzugen, dass die diskretisierten Objektmodelle vollständig in die horizontalen Grenzen der Platzierungszone passen. Außerdem können die Platzierungskriterien erfordern, dass die Platzierung der diskretisierten Objektmodelle innerhalb eines Schwellenabstands relativ zu dem anfänglichen Platzierungsstandort (z. B. entlang einer horizontalen Richtung) und/oder dem vorherigen Platzierungsstandort liegt, z. B. für benachbarte Platzierungen oder Trennungsanforderungen. Andere Beispiele für die Platzierungskriterien können Präferenzen für benachbart platzierte Pakete beinhalten, die die geringste(n) Differenz(en) bei einer oder mehreren Paketabmessungen (z. B. Höhe), den Zerbrechlichkeitseinstufungen, den Gewichtsbereichen der Pakete oder einer Kombination davon aufweisen. In einigen Ausführungsformen können die Platzierungskriterien Kollisionswahrscheinlichkeiten beinhalten, die Standorten und/oder Eigenschaften (z. B. der Höhe) von bereits zugewiesenen Paketen in der Schicht relativ zu einer Referenzposition (z. B. der Position des Palettierungsroboters) entsprechen können. Dementsprechend kann das Robotersystem 100 mehrere eindeutige Platzierungskombinationen (d. h. mögliche Platzierungspläne für jede Schicht und/oder die möglichen Stapelszenarien, die mehrere Schichten beinhalten) der Paketplatzierungspositionen erzeugen. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungen der Kombination basierend auf dem Erzeugen und Aktualisieren der Suchstruktur 754 bei den Platzierungsiterationen verfolgen.
  • Beim Finalisieren der Platzierungsstandorte für eine 2D-Schicht kann das Robotersystem 100 eine Platzierungsbewertung für jede Kombination/Paketplatzierung berechnen/aktualisieren. Das Robotersystem 100 kann die Platzierungsbewertung gemäß einer oder mehreren der Platzierungsbedingungen/-präferenzen (z. B. Paketabmessungen, Kollisionswahrscheinlichkeiten, Zerbrechlichkeitseinstufungen, Gewichtsbereiche der Pakete, Trennungsanforderungen, Paketmengenbedingungen) berechnen. Beispielsweise kann das Robotersystem 100 Präferenzfaktoren (z. B. Multiplikatorgewichte) und/oder Gleichungen verwenden, um eine Präferenz für Folgendes zu beschreiben: Trennungsabstände zwischen Paketen, Differenzen bei Paketabmessungen/Zerbrechlichkeitseinstufungen/Paketgewichten für benachbarte Pakete, die Kollisionswahrscheinlichkeiten, durchgehende/benachbarte Flächen mit derselben Höhe, ein statistisches Ergebnis davon (z. B. durchschnittliche, maximale, minimale, Standardabweichung usw.) oder eine Kombination davon. Jede Kombination kann gemäß den Präferenzfaktoren und/oder den Gleichungen bewertet werden, die von einem Systemhersteller, einem Auftrag und/oder einem Systembetreiber vordefiniert werden können. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsbewertung am Ende der gesamten Platzierungsiterationen berechnen.
  • In einigen Ausführungsformen kann das Robotersystem 100 die Sequenz der Platzierungskombinationen 744 in der Prioritätswarteschlange 756 aus 7B nach jeder Platzierungsiteration aktualisieren. Das Robotersystem 100 kann die Sequenz basierend auf der Platzierungsbewertung aktualisieren.
  • Das Robotersystem 100 kann die Platzierungsiterationen stoppen (z. B. Abschluss eines möglichen Platzierungsplans), basierend auf dem Bestimmen eines Status einer leeren Quelle, eines Status einer vollständigen Schicht oder eines Status einer unveränderten Bewertung. Der leere Quellstatus kann darstellen, dass alle verfügbaren Objekte platziert wurden. Der Status der vollständigen Schicht kann darstellen, dass keine anderen Objekte in den restlichen Bereichen des betrachteten diskretisierten Containermodells platziert werden können. Der Status der unveränderten Bewertung kann darstellen, dass die Platzierungsbewertung für die Kombination über einer oder mehreren aufeinanderfolgenden Platzierungsiterationen konstant bleibt. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungsiterationen unter Verwendung unterschiedlicher anfänglicher Platzierungspositionen und/oder einer unterschiedlichen Verarbeitungsreihenfolge (z. B. für das Neusortieren von Gruppen mit demselben Sequenzierungswert/derselben Sequenzierungsbewertung in Verbindung mit den Sequenzierungsbedingungen) wiederholen, um andere Instanzen möglicher Stapelszenarien abzuleiten. Anders formuliert, kann das Robotersystem 100 mehrere 2D-Platzierungspläne erzeugen, wobei jeder 2D-Platzierungsplan eine Schicht innerhalb eines 3D-Stapels darstellen kann (z. B. eine Instanz der möglichen Stapelszenarien). In anderen Ausführungsformen kann das Robotersystem 100 den 3D-Effekt iterativ berücksichtigen, wenn ein 2D-Platzierungsplan abgeleitet wird, und mit dem Ableiten der nächsten Schicht als eine nächste Iteration beginnen, wenn der 2D-Platzierungsplan voll wird.
  • In Block 1112 kann das Robotersystem 100 Stapelszenarien für den 2D-Plan berechnen. Dabei kann das Robotersystem 100 jede der Platzierungskombinationen 744 und/oder der 2D-Platzierungspläne in 3D-Zustände umwandeln, wie in Block 1152 veranschaulicht. Beispielsweise kann das Robotersystem 100 die Höhenwerte der Objekte den Platzierungskombinationen 744 zuweisen. Das Robotersystem 100 kann eine Konturkarte (eine Schätzung einer Tiefenkarte) basierend auf der Berechnung des Höhenmaßes 802 für jede der Diskretisierungseinheiten 602/Pixel des Containermodells (z. B. des Containergrundrissmodells 622) gemäß den Höhen der entsprechenden Objekte in den Platzierungskombinationen 744 erzeugen. Für mehrere Schichten kann das Robotersystem 100 die Höhenmaße 802 berechnen, die die Höhen der Objekte, die zur Platzierung/Stapelung an dem pixelierten Standort geplant sind, kombinieren.
  • Bei den 3D-Zuständen kann das Robotersystem 100 die Platzierungskombinationen 744 gemäß einer oder mehreren Stapelregeln (z. B. der Horizontalversatzregel 776 aus 7C, der Stütztrennungsregel 786 aus 7C und/oder der Vertikalversatzregel 790 aus 7C) beurteilen. Als ein veranschaulichendes Beispiel kann das Robotersystem 100 eine reduzierte Bewertung für die Platzierungskombinationen 744 oder markierten Positionen davon berechnen, die die Überlappungsanforderung 778 aus 7C, die Überhanganforderung 780 aus 7C, die Vertikalversatzregel 790, die CoM-Versatzanforderung 784 aus 7C oder eine Kombination davon verletzen, wie vorstehend beschrieben. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 die Zerbrechlichkeitseinstufungen von einem oder mehreren Objekten berechnen, wie etwa durch Schätzen der gestützten Gewichte an den überlappten Paketen und Vergleichen dieser mit den entsprechenden Zerbrechlichkeitseinstufungen der Objekte, die für die unteren Schichten geplant sind.
  • In Block 1154 kann das Robotersystem 100 Kombinationen gemäß 3D-Bewertungen/Aktualisierungen auswählen. Mit anderen Worten kann das Robotersystem 100 3D-Platzierungsergebnisse berechnen oder die Platzierungsergebnisse aktualisieren und die Kombinationen entsprechend auswählen. Das Robotersystem 100 kann vorbestimmte Präferenzen (z. B. Gewichte und/oder Gleichungen) in Verbindung mit Platzierungskosten und/oder heuristischen Werten für 3D-Platzierungen verwenden. Die vorbestimmten 3D-Präferenzen können den 2D-Präferenzen, Gruppierungspräferenzen, Sequenzierungspräferenzen oder einer Kombination davon ähneln. Beispielsweise können die 3D-Präferenzen dazu konfiguriert sein, Kollisionswahrscheinlichkeiten basierend auf dem 3D-Zustand zu berechnen und Bewertungen zu berechnen, die die Platzierungskombinationen mit geringeren Kollisionswahrscheinlichkeiten bevorzugen. Außerdem kann das Robotersystem 100 die Bewertungen basierend auf den übrigen Paketen 752, Größen von Stützbereichen mit gemeinsamer Höhe, Anzahl von gepackten Elementen im 3D-Zustand, der Differenz zwischen den Höhen der verarbeiteten Pakete oder einer Kombination davon berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die Sequenz der Platzierungskombinationen 744 in der Prioritätswarteschlange 756 gemäß den Bewertungen aktualisieren.
  • Nachdem die 3D-Zustände verarbeitet wurden, kann das Robotersystem 100 die 2D-Pläne durch Ableiten einer Platzierung für das nächste Paket der übrigen Pakete 752 aktualisieren, wie etwa bei Block 1110. Das Robotersystem 100 kann den vorstehend beschriebenen Prozess bis zu einer Stoppbedingung wiederholen, wie etwa, wenn alle der verfügbaren Pakete 742 verarbeitet wurden (d. h. leerer Wert/leere Reihe für die übrigen Pakete 752) und/oder wenn die Platzierungskombinationen 744 nicht verbessert werden können (auch als nicht verbesserte Kombinationen bezeichnet). Einige Beispiele für nicht verbesserte Kombinationen können beinhalten, dass die derzeit verarbeitete Platzierung die letzte der Platzierungskombinationen 744 in der Prioritätswarteschlange 756 aufgrund einer oder mehreren der Missachtungen beseitigt und/oder dass die Platzierungsbewertung für die bevorzugten Kombinationen über eine Schwellenanzahl an Iterationen hinaus konstant bleibt.
  • Wenn die Stoppbedingung erkannt wurde, kann das Robotersystem 100 eine der abgeleiteten Platzierungskombinationen 744 gemäß den Platzierungsbewertungen (z. B. den 2D- und/oder den 3D-bezogenen Bewertungen) auswählen. Dementsprechend kann das Robotersystem 100 die ausgewählte Platzierungskombination als den Packplan 700 festlegen.
  • Als ein veranschaulichendes Beispiel kann das Robotersystem 100 die Funktionen von Block 1110 und 1112 unterschiedlich umsetzen. Beispielsweise kann das Robotersystem 100 bei Block 1110 den 2D-Plan (z. B. eine Instanz des Platzierungsplans 350) für eine untere Schicht erzeugen, wie vorstehend beschrieben. Demnach kann das Robotersystem 100 dazu konfiguriert sein, größere Präferenzen (z. B. größere Parametergewichtungen) für das Entsprechen der Pakethöhen, größere Paketgewichte und/oder ein größeres gestütztes Gewicht für die Pakete bei der Berücksichtigung der Platzierungen und/oder der Verarbeitungsreihenfolge zuzuordnen. Das Robotersystem 100 kann den ersten 2D-Plan für die Basisschicht ableiten, wie vorstehend für Block 1110 beschrieben.
  • Sobald die erste 2D-Schicht vollständig/voll ist, wie vorstehend beschrieben, wodurch die Basisschicht gebildet wird, kann das Robotersystem 100 den Platzierungsplan in 3D-Zustände umwandeln, wie für Block 1112 beschrieben. Unter Verwendung der 3D-Informationen kann das Robotersystem 100 einen oder mehrere planare Abschnitte/Bereiche der Basisschicht identifizieren, wie vorstehend beschrieben. Unter Verwendung der planaren Abschnitte kann das Robotersystem 100 Paketplatzierungen für die nächste Schicht über der Basisschicht iterativ/rekursiv ableiten. Das Robotersystem 100 kann effektiv jeden der planaren Abschnitte als neue Instanzen der diskretisierten Plattform berücksichtigen und unterschiedliche Platzierungen testen/beurteilen, wie vorstehend für Block 1110 beschrieben. In einigen Ausführungsformen kann das Robotersystem 100 die 2D-Platzierungen unter Verwendung der Platzierungsflächen ableiten, jedoch die Bewertung für die Gesamtheit des Platzierungsbereichs/-raums berechnen. Dementsprechend kann das Robotersystem 100 dazu konfiguriert sein, Präferenzen für größere Platzierungsbereiche für nachfolgende Schichten zu folgen, ohne auf die vorherigen Platzierungsbereiche beschränkt zu sein.
  • Sobald der iterative Platzierungsprozess für die zweite Schicht stoppt, kann das Robotersystem 100 planare Abschnitte (z. B. obere Flächen mit Höhen innerhalb eines Schwellenbereichs) für die abgeleitete Schicht berechnen, um die 2D-Platzierungen der übrigen Pakete/Gruppierungen für die nächste darüberliegende Schicht zu erzeugen. Der iterative Schichtungsprozess kann fortgesetzt werden, bis die Stoppbedingung erfüllt wurde, wie vorstehend beschrieben.
  • Beim Ableiten der 2D-Pläne für die zweite Schicht und höher kann das Robotersystem 100 Objektplatzierungsstandorte ableiten, an denen das Objekt für die geplante Platzierung ein oder mehrere Objekte darunter überhängt (d. h. die Objekte im 2D-Platzierungsplan einer unteren Schicht). Beispielsweise kann das Robotersystem 100 den 2D-Plan für eine untere/erste Schicht ableiten, in der ein erstes Objekt (z. B. das Stützpaket 774 aus 7C) direkt neben der Stützwand 725 liegt und durch die Objekt-Wand-Trennung 726 getrennt ist. Beim Ableiten des 2D-Plans für eine höhere/gestapelte Schicht kann das Robotersystem 100 die mögliche Position 801 für ein zweites Objekt (z. B. das gestapelte Objekt 724), das auf dem ersten Objekt zu stapeln/platzieren ist, ableiten, wobei ein Teil des zweiten Objekts seitlich über eine umlaufende Kante des ersten Objekts hinaus und in Richtung der Stützwand 725 hervorsteht. Das Robotersystem 100 kann die mögliche Position 801 zum Nutzen der Stützwand 725 ableiten und validieren, um die Platzierung des zweiten Objekts zu stützen.
  • In Block 1122 kann das Robotersystem 100 als veranschaulichendes Beispiel die mögliche Position 801 ableiten, die mit der Wandstützung beim Ableiten der 2D-Platzierungspläne assoziiert ist. Mit anderen Worten kann das Robotersystem 100 Positionen für das zweite Objekt (z. B. das gestapelte Objekt 724) ableiten, an denen das Objekt die Stützwand 725 direkt berührt und durch diese gestützt wird, sobald das zweite Objekt platziert ist. Das Robotersystem 100 kann ferner Positionen für das zweite Objekt ableiten, das von der Stützwand 725 um weniger als einen Schwellenabstand getrennt ist, so dass das Objekt die Stützwand 725 berührt und von dieser getragen werden kann, falls sich das Objekt während des Containertransports verschiebt. Die mögliche Position 801 kann innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts liegen. Die mögliche Position 801 kann auch so sein, dass das zweite Objekt seitlich über die umlaufende(n) Kante(n) des ersten Objekts hinausragt (z. B. über das erste Objekt hinausragend) und seitlich in Richtung der Stützwand 725 vorsteht.
  • In Block 1124 kann das Robotersystem 100 ein oder mehrere Attribute für die mögliche Position 801 schätzen. Mit anderen Worten kann das Robotersystem 100 wahrscheinliche physikalische Ergebnisse des Platzierens des zweiten Objekts an der möglichen Position 801 berechnen. Das Robotersystem 100 kann das eine oder die mehreren Attribute basierend auf dem Platzieren des ersten Objektmodells an dem ersten Platzierungsstandort und des zweiten Objektmodells an der möglichen Position schätzen.
  • In Block 1132 kann das Robotersystem 100 die kombinierte Objektschätzung 732 aus 7 für Szenarien mit mehreren Überhängen ableiten. Ein Szenario mit mehreren Überhängen kann das Zwischenobjekt 799 aus 7C beinhalten, das ein unteres Objekt überhängt, und die mögliche Position 801 überhängt das Zwischenobjekt 799 oder ein Objekt darüber. In einigen Ausführungsformen kann das Robotersystem 100 Platzierungsstandorte verfolgen, die ein geplantes Objekt darunter überragen. Unter Verwendung des verfolgten Status kann das Robotersystem 100 bestimmen, wann die mögliche Position 801 das geplante Objekt darunter überhängt, wobei ein oder mehrere geplante Standorte darunter auch andere Objekte überhängen.
  • Wenn die mögliche Position 801 einem Szenario mit mehrfachen Überhängen entspricht, kann das Robotersystem 100 die kombinierte Objektschätzung 732 basierend auf der möglichen Position 801 und der niedrigsten geschätzten Überhangposition ableiten. Das Robotersystem 100 kann die kombinierte Objektschätzung 732 zum Schätzen eines oder mehrerer Attribute, die der möglichen Position 801 zugeordnet sind, ableiten. Das Robotersystem 100 kann die kombinierte Objektschätzung 732 basierend auf dem Platzieren des Objektmodells für das gestapelte/verarbeitete Objekt (z. B. das obere Paket 772) an der möglichen Position 801 und der Objektmodelle, deren Platzierung unterhalb der möglichen Position 801 geplant ist, einschließlich des Objektmodells für das Zwischenobjekt 799, ableiten. In einigen Ausführungsformen kann das Robotersystem 100 die kombinierte Objektschätzung 732 basierend auf dem Ableiten eines Umrisses ableiten, der mit den äußersten Flächen/Kanten des platzierten Satzes von Objektmodellen ausgerichtet ist oder diese einschließt. Dementsprechend kann das Robotersystem 100 ein Modell oder eine Schätzung ableiten, die den Satz überhängender gestapelter Objekte als ein Objekt darstellt.
  • In Block 1134 kann das Robotersystem 100 eine effektive Stützung und/oder Überhangmaßnahmen berechnen. Beispielsweise kann das Robotersystem 100 die effektive Stützung 795 aus 7C basierend auf dem Zählen der Anzahl der Diskretisierungseinheiten 602 berechnen, die sich zwischen den Objektmodellen der gestapelten Objekte, wie etwa für das obere Paket 772 und das Stützpaket 774, an den geplanten Stellen überlappen. Für die Szenarien mit mehreren Überhängen kann das Robotersystem 100 die effektive Stützung 795 basierend auf Überlappungen zwischen dem Objektmodell des oberen Pakets 772 an der möglichen Position 801 und Modellen von Objekten, deren Platzierung unterhalb der möglichen Position 801 geplant ist, berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die effektive Stützung 795 als die kleinste Menge von Überlappung zwischen dem Modell an der möglichen Position 801 und den Modellen darunter berechnen, beispielsweise für das Stützobjekt, das am weitesten von der Stützwand 725 entfernt ist. In anderen Ausführungsformen kann das Robotersystem 100 die effektive Stützung 795 als die Überlappung zwischen dem oberen Objekt und dem untersten Objekt berechnen. In noch anderen Ausführungsformen kann das Robotersystem 100 die effektive Stützung 795 als die Überlappung zwischen der kombinierten Objektschätzung 732 und einem oder mehreren Objekten darunter berechnen.
  • Das Robotersystem 100 kann auch die Überhangmaße basierend auf dem Zählen der Anzahl der Diskretisierungseinheiten 602 des oberen Objektmodells, die über die umlaufende Kante des unteren Objektmodells hinaus und in Richtung der Stützwand 725 verlaufen, berechnen. In einigen Ausführungsformen kann das Robotersystem 100 das Überhangmaß basierend auf den Teilen (z. B. der Anzahl der Diskretisierungseinheiten 602) des oberen Objektmodells, die von der effektiven Stützung 795 getrennt bleiben, berechnen.
  • In Block 1136 kann das Robotersystem 100 den CoM-Standort 782 für das obere Objektmodell an dem möglichen Standort schätzen. In einigen Ausführungsformen kann das Robotersystem 100 den CoM-Standort 782 basierend auf dem Zugriff auf die vorbestimmten Informationen in dem Objektmodell und/oder aus den Stammdaten 252 schätzen. In einigen Ausführungsformen kann das Robotersystem 100 auch den CoM-Standort als den mittleren Teil des Objektmodells schätzen.
  • Das Robotersystem 100 kann ferner eine Beziehung zwischen dem CoM-Standort 782 und dem Objekt darunter ableiten. Beispielsweise kann das Robotersystem 100 den CoM-Standort 482 des oberen Pakets 772 relativ zu der umlaufenden Kante des Stützpakets 774 bestimmen.
  • Für die Szenarios mit mehreren Überhängen kann das Robotersystem 100 den kombinierten Bezugsstandort 734 aus 7C für die kombinierte Objektschätzung 732 ableiten. Das Robotersystem 100 kann den kombinierten Bezugsstandort 734 basierend auf dem Kombinieren der CoM-Standorte 782 für die gestapelte Reihe von Objekten über einen seitlichen Bereich/eine seitliche Abmessung der kombinierten Objektschätzung 732 ableiten. Das Robotersystem 100 kann die CoM-Standorte 782 basierend auf der Berechnung eines gewichteten Durchschnitts oder einer Gewichtsverteilung gemäß dem Gewicht der Objekte und den entsprechenden CoM-Standorten 782 über den seitlichen Bereich/die seitliche Abmessung kombinieren.
  • In Block 1138 kann das Robotersystem 100 die Schwenkstandorte 793 für die mögliche Position 801 schätzen. Das Robotersystem 100 kann den Schwenkstandort 793 als den Teil des Stützpakets 774 mit der höchsten Höhe gemäß den Stapelszenarien schätzen. Wenn mehrere Teile des Stützpakets 774 die gleichen Höhenwerte oder 3D-Zustände aufweisen, kann das Robotersystem 100 den Schwenkstandort 793 als den Teil/die Teile schätzen, der/die der Stützwand 725 am nächsten liegt/liegen. Dementsprechend kann das Robotersystem 100 den Schwenkstandort als die umlaufende Kante des Stützpakets 774 schätzen.
  • In Block 1140 kann das Robotersystem 100 verschobene Stellungen basierend auf der möglichen Position 801 ableiten. Wenn beispielsweise bei der möglichen Position 801 das obere Paket 772 von der Stützwand 725 getrennt ist (d. h. diese nicht direkt berührt), kann das Robotersystem 100 die verschobenen Stellungen basierend auf dem Verschieben des oberen Objektmodells von der möglichen Position 801 in Richtung der Stützwand 725 ableiten. Das Robotersystem 100 kann das obere Objektmodell seitlich verschieben, bis das Modell die Stützwand 725 berührt. Das Robotersystem 100 kann auch die verschobenen Stellungen basierend auf dem Drehen des oberen Objektmodells um den Schwenkstandort ableiten. Das Robotersystem 100 kann die gedrehten Stellungen ignorieren oder nicht beachten, wenn sich der CoM-Standort 782 über dem Stützpaket 774 befindet. Das Robotersystem 100 kann die gedrehten Posen beibehalten, wenn sich der CoM-Standort 782 zwischen der umlaufenden Kante des Stützpakets 774 und der Stützwand 725 befindet. Die verschobenen Stellungen können das obere Paket 772 darstellen, das sich aus der möglichen Position 801 verschiebt, wie etwa während des Transports des Containers, und/oder an der Stützwand 725 anliegt.
  • In Block 1126 kann das Robotersystem 100 den Annäherungsweg 901 aus 9A zum Platzieren des oberen Pakets 772 an der möglichen Position 801 ableiten. Das Robotersystem 100 kann den Annäherungsweg 901 basierend auf dem Ableiten einer Kombination des oberen Objektmodells und des Greifermodells ableiten. In einigen Ausführungsformen kann das Robotersystem 100 die Kombination der Modelle basierend auf dem Einstellen der Eingriffsschnittstellenhöhe 534 aus 5C ableiten. Das Robotersystem 100 kann den Annäherungsweg 901 basierend auf dem Platzieren des kombinierten Modells an der möglichen Position 801 ableiten. Dementsprechend kann das Robotersystem 100 das kombinierte Modell über das Containermodell und/oder andere Objektmodelle legen.
  • In einigen Ausführungsformen kann das Robotersystem 100 den Annäherungsweg 901 basierend auf dem Identifizieren der seitlich verlaufenden Spur 912 aus 9C ableiten. Wie vorstehend beschrieben, kann das Robotersystem 100 die seitlich verlaufende Spur 912 basierend auf verlaufenden seitlichen Linien von umlaufenden Kanten/Punkten des kombinierten Modells in Richtung des geplanten Standorts der Robotereinheit identifizieren. In einigen Ausführungsformen kann das Robotersystem 100 die Spur 912 gemäß vorbestimmten Abstandsentfernungen verbreitern.
  • Unter Verwendung der seitlich verlaufenden Spur 912 kann das Robotersystem 100 ein oder mehrere potenzielle Hindernisse identifizieren. Beispielsweise kann das Robotersystem 100 die potenziellen Hindernisse als die vorhergehenden Objekte 902 aus 9A (z. B. Objekte, die vor dem oberen Paket 772 platziert werden sollen) und/oder die Stützwand 725, die die Spur 912 überlappt, identifizieren. Mit anderen Worten kann das Robotersystem 100 bestimmen, ob sich auf der bewerteten Höhe die seitlich verlaufende Spur 912 mit dem einen oder den mehreren potenziellen Hindernissen überlappt.
  • Als ein veranschaulichendes Beispiel kann das Robotersystem 100 den Annäherungsweg 901 ableiten, indem es die Spuren 912 auf verschiedenen Höhen inkrementell identifiziert, wie in Block 1142 gezeigt, und potenzielle Hindernisse für die Spuren iterativ identifiziert, wie in Block 1144 gezeigt. Mit anderen Worten kann das Robotersystem 100 die Höhe der seitlich verlaufenden Spur 912 gemäß den Annäherungsinkrementen 903 iterativ erhöhen, wenn die Spur 912 mindestens ein potenzielles Hindernis überlappt. Dementsprechend kann das Robotersystem 100 die Höhe identifizieren, auf der die seitlich verlaufende Spur 912 alle potenziellen Hindernisse beseitigt. Das Robotersystem 100 kann die Wegsegmente 904 aus 9A und/oder das letzte Segment 906 aus 9A basierend auf der identifizierten Höhe ableiten. Somit kann das Robotersystem 100 den Annäherungsweg in umgekehrter Reihenfolge ableiten (z. B. ausgehend von der möglichen Position 801 zu dem Startpunkt), um eine Übertragung des oberen Pakets 772 zu simulieren. Die seitlich verlaufende Spur 912 kann dem Raum entsprechen, den durch der Endeffektor 304 und das obere Paket 772 während der seitlichen Bewegung zu der möglichen Position 801 eingenommen wird.
  • In Block 1128 kann das Robotersystem 100 die mögliche Position 801 für die Objektplatzierung validieren. Das Robotersystem 100 kann die mögliche Position 801 beim Ableiten der Platzierungsstandorte für den Packplan 700 validieren. Das Robotersystem 100 kann die mögliche Position 801 basierend auf der Bewertung der geschätzten Attribute gemäß den entsprechenden Regeln/Schwellen validieren. In einigen Ausführungsformen kann das Robotersystem 100 die möglichen Positionen 801 identifizieren, die direkt an die Stützwand angrenzen oder die Stützwand berühren (z. B. eine oder mehrere umlaufende Grenzen des Objektmodells an den möglichen Positionen 801, die eine oder mehrere Grenzen des Containers/der Wand überlappen). Für die identifizierten möglichen Positionen 801 kann das Robotersystem 100 gemäß den entsprechenden Regeln validieren. Beispielsweise kann das Robotersystem 100 die mögliche Position 801 validieren, wenn die geschätzten Attribute die Wandstützregel 794 aus 7C und/oder andere zugehörige Regeln (z. B. die Neigungsstützregel 796 aus 7C und/oder die Mehrfachüberhangregel 798 aus 7C) erfüllen, die eine oder mehrere Anforderungen zum Platzieren von Objekten gemäß vorbestimmten Beziehungen zu vertikal ausgerichteten Containerteilen darstellen.
  • Beispielsweise kann das Robotersystem 100 die mögliche Position 801 basierend auf dem Bestimmen validieren, dass die effektive Stützung 795 (z. B. die Anzahl überlappender Pixel) die Überlappungsanforderung 778 aus 7 für ein Objekt, das direkt neben der Containerwand angeordnet ist, erfüllt und/oder die Wandstützregel 794 für ein Objekt, das die Containerwand berührt, erfüllt. Das Robotersystem 100 kann auch die mögliche Position 801 basierend auf dem Bestimmen validieren, dass das Überhangmaß die Überhanganforderung 780 aus 7C für ein Objekt, das direkt neben der Containerwand angeordnet ist, erfüllt und/oder die Wandstützregel 794 für ein Objekt, das die Containerwand berührt, erfüllt. Ferner kann das Robotersystem 100 die mögliche Position 801 basierend auf dem Bestimmen validieren, dass der CoM-Standort 782 die CoM-Versatzanforderung 784 erfüllt, beispielsweise wenn sich der CoM-Standort 782 innerhalb der umlaufenden Kanten der Modelle für das/die Stützpaket(e) 774, innerhalb eines Schwellenabstands von derartigen umlaufenden Kanten und/oder innerhalb eines Schwellenabstands von den CoM-Standorten eines oder mehrerer Stützpakete 774 (z. B. wenn die Stützpakete auf anderen unteren Objekten gestapelt werden sollen) befindet. Zum Validieren der möglichen Position 801 eines Objekts, das direkt neben der Containerwand angeordnet ist, kann das Robotersystem 100 zusätzlich oder alternativ die mögliche Position 801 validieren, wenn die eine oder mehrere verschobenen Stellungen (z. B. der Neigungswinkel 797 aus 7) die Neigungsstützregel 796 erfüllen.
  • In einigen Ausführungsformen kann, wie vorstehend erörtert (z. B. in Bezug auf Block 1132), das Robotersystem 100 Bedingungen mit mehrfachen Überhängen identifizieren, die mit der möglichen Position 801 verbunden sind oder durch diese verursacht werden. Zum Validieren der möglichen Position 801, die mit Bedingungen mit mehrfachen Überhängen assoziiert ist, kann das Robotersystem 100 die mögliche Position 801 (z. B. die zugehörige effektive Stützung 795 relativ zu der untersten, am weitesten versetzten Position und/oder einem anderen qualifizierenden Stützobjekt darunter) gemäß der Mehrfachüberhangregel 798 bewerten. Alternativ oder zusätzlich kann das Robotersystem 100 basierend auf der Bewertung der kombinierten Objektschätzung 732 gemäß der Horizontalversatzregel 776, der Wandstützregel 794 und/oder einer oder mehreren anderen vorstehend beschriebenen Regeln validieren. Dementsprechend kann das Robotersystem 100 die mögliche Position 801 validieren, die mit Bedingungen mit mehrfachen Überhängen assoziiert ist, wenn das eine oder die mehreren berechneten Attribute die entsprechenden Regeln und Anforderungen erfüllen.
  • Das Robotersystem 100 kann auch die mögliche Position 801 basierend auf dem entsprechenden Annäherungsweg 901 validieren. Das Robotersystem 100 kann die möglichen Positionen 801 validieren, die dem Annäherungsweg 901 entsprechen, der wie vorstehend beschrieben frei ist. In einigen Ausführungsformen kann das Robotersystem 100 die mögliche Position 801 ausschließen, wenn der Annäherungsweg 901 nicht erfolgreich aus der/für die mögliche Position 801, die frei von allen möglichen Hindernissen 910 ist, abgeleitet werden kann. Wie vorstehend beschrieben, kann das Robotersystem 100 die Kombination des Greifermodells und des entsprechenden Objektmodells zusammen mit jeglichen griffbezogenen Anpassungen (z. B. durch Berücksichtigung eines Unterschieds zwischen der eingreifenden Schnittstellenhöhe 534 und der erweiterten Schnittstellenhöhe 532) beim Ableiten/Validieren in Bezug auf den Annäherungsweg 901 verwenden.
  • In einigen Ausführungsformen kann das Robotersystem 100 iterativ einen Satz potenzieller Platzierungsstandorte für das Zielobjekt 112 analysieren. Infolgedessen kann das Robotersystem 100 mehrere validierte Positionen für dasselbe Zielobjekt 112 erzeugen. Bei derartigen Szenarien kann das Robotersystem 100 dazu konfiguriert sein, eine validierte Position als die Platzierungsposition für das Objekt auszuwählen. Beispielsweise kann das Robotersystem 100 während des Validierungsprozesses eine Platzierungsbewertung für die entsprechende Position berechnen und die Position mit der höchsten Bewertung auswählen. Als veranschaulichendes Beispiel kann das Robotersystem 100 eine höhere Platzierungsbewertung für die Position berechnen, die einer größeren effektiven Stützung 795 entspricht. Als veranschaulichendes Beispiel kann das Robotersystem 100 auch eine höhere Platzierungsbewertung für die Position berechnen, die mit einem kürzeren Annäherungsweg assoziiert ist.
  • Als ein weiteres veranschaulichendes Beispiel kann das Robotersystem 100, wenn das platzierte Pakete auf/über einem oder mehreren bereits verarbeiteten Paketen gestapelt wird, beliebige der Platzierungskombinationen 744 beseitigen, die die Überlappungsanforderung 778, die Überhanganforderung 780, die Vertikalversatzregel 790, die CoM-Versatzanforderung 784 oder eine Kombination davon missachten, wie vorstehend beschrieben. In einer oder mehreren Ausführungsformen kann das Robotersystem 100 beliebige der Platzierungskombinationen 744 beseitigen, die die Zerbrechlichkeitseinstufungen von einem oder mehreren Paketen unter dem verarbeiteten Paket missachten, wie etwa durch Schätzen der gestützten Gewichte an den überlappten Paketen und Vergleichen dieser mit den entsprechenden Zerbrechlichkeitseinstufungen. Das Robotersystem 100 kann den Platzierungsstandort basierend auf den verbleibenden Kombinationen auswählen.
  • In einigen Ausführungsformen kann das Robotersystem 100 das Verfahren 1100 oder einen Teil davon offline umsetzen, wie etwa, wenn Bestellungen und Ladungsverzeichnisse empfangen werden und bevor die gezielte Reihe von Objekten für Echtzeitverarbeitung/-platzierung verfügbar wird. Alternativ oder zusätzlich kann das Robotersystem 100 das Verfahren 1100 oder einen Teil davon in Echtzeit umsetzen. Beispielsweise kann das Robotersystem 100 einen Teil des Verfahrens 1100 umsetzen, um den Packplan erneut abzuleiten, wenn der Container eines oder mehrere der unerwarteten Merkmale 1002 aus 10 aufweist. Das Robotersystem 100 kann Bilddaten erhalten, die den Container am Aufgabenstandort 116 darstellen (z. B. die Sensorausgabe 1000, die dem Draufsichtbild 1052 und/oder dem Seitenansichtbild 1054 entspricht, die alle in 10 veranschaulicht sind). Das Robotersystem 100 kann die erhaltenen Bilddaten analysieren, wie etwa basierend auf dem Erfassen und Analysieren der darin dargestellten Kanten, um das Vorhandensein der unerwarteten Merkmale 1002 zu erfassen oder zu bestimmen. Wie nachfolgend detailliert beschrieben, kann das Robotersystem 100 den vorhandenen Packplan 700 in Bezug auf die unerwarteten Merkmale 1002 bewerten und den bestehenden Packplan 700 einstellen/validieren.
  • Wenn die Einstellungen des vorhandenen Packplans 700 nicht verfügbar sind oder nicht validiert werden können, kann das Robotersystem 100 einen Teil des Verfahrens 1100 umsetzen. Beispielsweise kann das Robotersystem 100 Paketgruppierungen (Block 1106) und/oder die Verarbeitungsreihenfolge (Block 1108) für die Objekte, die mit dem vorhandenen Packplan 700 assoziiert sind, neu bestimmen. In einigen Ausführungsformen kann das Robotersystem 100 auf die zuvor bestimmten Instanzen der Paketgruppierungen und/oder die Verarbeitungsreihenfolge zugreifen. Mit den resultierenden Informationen kann das Robotersystem 100 neue 2D-Pläne unter Verwendung der erhaltenen Bilder anstelle der Containermodelle neu ableiten. Dementsprechend kann das Robotersystem 100 die unerwarteten Merkmale 1002 berücksichtigen und eine neue Instanz des Packplans ableiten, die den vorhandenen Packplan 700 ersetzt.
  • In Block 1116 kann das Robotersystem 100 den Packplan 700 (resultierend aus einer Echtzeitverarbeitung oder einer Offline-Verarbeitung) umsetzen, um die verfügbaren Pakete 742 in den/die Container zu legen. Das Robotersystem 100 kann den Packplan 700 basierend auf der Kommunikation eines oder mehrerer Bewegungspläne, Aktuatorenbefehle/- einstellungen oder einer Kombination davon zu der entsprechenden Vorrichtung/Einheit (z. B. die Übertragungseinheit 104 aus 1, die Betätigungsvorrichtungen 212 aus 2, die Sensoren 216 aus 2 usw.) gemäß dem Packplan 700 umsetzen. Das Robotersystem 100 kann ferner den Packplan 700 basierend auf dem Ausführen der kommunizierten Informationen an den Vorrichtungen/Einheiten umsetzen, um die verfügbaren Pakete 742 von einem Startstandort zu dem Zielcontainer zu übertragen. Dementsprechend kann das Robotersystem 100 die verfügbaren Pakete 742 gemäß den entsprechenden 3D-Platzierungsstandorten in dem Packplan 700 platzieren.
  • 12 ist ein Ablaufdiagramm für ein zweites beispielhaftes Verfahren 1200 zum Betreiben des Robotersystems 100 aus 1 gemäß einer oder mehreren Ausführungsformen der vorliegenden Technologie. In einigen Ausführungsformen kann das Verfahren 1200 als eine Unterroutine von Prozessen, die dem Block 1116 aus 11 entsprechen, umgesetzt werden. Beispielsweise kann das Robotersystem 100 während oder zu Beginn eines Echtzeitbetriebs zum Platzieren der verfügbaren Pakete 742 aus 7B in einen Container einen oder mehrere vorberechnete Packpläne (z. B. den Packplan 700 aus 7A) erhalten, wie in Block 1201 veranschaulicht. Das Robotersystem 100 kann den Packplan 700 erhalten, der vor dem Einleiten des Echtzeit-Packvorgangs abgeleitet wurde (z. B. über eine Offline-Berechnung). Das Robotersystem 100 kann den Packplan 700 basierend in einer Speichervorrichtung (z. B. der Speichervorrichtung 204 aus 2 und/oder einem anderen computerlesbaren Medium) speichern. Das Robotersystem 100 kann durch Lesen von der Speichervorrichtung den vorhandenen Packplan 700 erhalten oder darauf zugreifen.
  • In Block 1202 kann das Robotersystem 100 ein oder mehrere Bilder erhalten (z. B. das Draufsichtbild 1052 und/oder das Seitenansichtbild 1054, beide veranschaulicht in 11), die den Container darstellen, wie in Block 1202 veranschaulicht. Wie vorstehend beschrieben, kann das Robotersystem 100 die Bilder in Echtzeit über einen oder mehrere der Sensoren 216 (z.B. den Draufsichtsensor 310 und/oder den Seitenansichtssensor 312, dargestellt in 3), die mit dem Aufgabenstandort 116 aus 1 assoziiert sind, erhalten. Dementsprechend kann das Robotersystem 100 das eine oder die mehreren Echtzeitbilder des Containers (z. B. der Wagen 410 oder der Käfig 420, veranschaulicht in den 4A-4D), die dazu bestimmt sind, die verfügbaren Pakete 742 oder einer Teilmenge davon zu empfangen, erhalten. Das Robotersystem 100 kann das eine oder die mehreren Bildern während oder zu Beginn eines Echtzeitbetriebs erhalten, um die verfügbaren Pakete 742 in den Container, der sich an dem Aufgabenstandort 116 befindet, zu legen. Mit anderen Worten kann das Robotersystem 100 die Bilder erhalten, die den Container darstellen, bevor beliebige Objekte darin platziert werden oder nachdem ein oder mehrere Objekte platziert wurden.
  • In dem Entscheidungsblock 1204 kann das Robotersystem 100 basierend auf den Echtzeitbildern bestimmen, ob ein oder mehrere physikalische Attribute des Containers wie erwartet sind. Das Robotersystem 100 kann die erhaltenen Echtzeitbilddaten analysieren, um ein oder mehrere physikalische Attribute des dargestellten Containers zu identifizieren. Beispielsweise kann das Robotersystem 100 einen Kantenerfassungsmechanismus (z. B. einen Sobel-Filter) umsetzen, um 2D- und/oder 3D-Kanten, die in den Bilddaten dargestellt sind, zu erfassen. Das Robotersystem 100 kann ferner Ecken und/oder Übergänge, die zwei oder mehr Kantensegmente verbinden, identifizieren. Basierend auf den Kanten und den Ecken/Übergängen kann das Robotersystem 100 durch die Kanten begrenzte Bereiche identifizieren, die einer Struktur entsprechen, wie etwa dem Container und/oder einem Teil davon. Das Robotersystem 100 kann ferner die Schätzungen für den Container und/oder Teile davon basierend auf vorbestimmten Schwellenwerten und/oder Vorlagen verifizieren, die einer bestimmten Containerstellung (z. B. ein Standort und/oder eine Ausrichtung) an dem Aufgabenstandort 116, einer erwarteten Größe des Containers, einer erwarteten Abmessung des Containers, einer Reihe von Toleranzmaßen und/oder anderen bekannten oder erwarteten physikalischen Merkmalen des Containers entsprechen.
  • Beim Schätzen oder Erkennen des in den Bilddaten dargestellten Containers kann das Robotersystem 100 bestimmen, ob ein oder mehrere physikalische Attribute des Containers wie erwartet sind. Beispielsweise kann das Robotersystem 100 bestimmen, ob Standorte, Formen und/oder Ausrichtungen der Containerwände (z. B. der Seitenwände und/oder der Rückwand) wie erwartet sind. Das Robotersystem 100 kann den Zustand des Containers basierend auf dem Vergleich des geschätzten Containers oder eines Teils davon mit einer Vorlage bestimmen. Zusätzlich oder alternativ kann das Robotersystem 100 eine Konfidenzbewertung berechnen, die den Schätzungen für den Container und/oder einem Teil davon zugeordnet ist. Das Robotersystem 100 kann erfassen, ob das eine oder die mehreren physikalischen Attribute (z. B. der Status einer oder mehrerer Containerwände) wie erwartet sind, wenn die entsprechenden Teile innerhalb der durch die Vorlage definierten Schwellenbereiche liegen und/oder wenn der entsprechende Konfidenzwert eine Erwartungsschwelle erfüllt. Das Robotersystem 100 kann eine unerwartete Bedingung erfassen (z. B. Fehlerbedingungen, die mit dem Container oder eine oder mehreren Stützwänden davon assoziiert sind), wenn die entsprechenden Teile außerhalb der durch die Vorlage definierten Schwellenbereiche liegen und/oder wenn der entsprechende Konfidenzwert die Erwartungsschwelle nicht erfüllt. Die Erfassung der unerwarteten Bedingung kann die Erfassung des unerwarteten Merkmals 1002 aus 10 darstellen.
  • In Block 1206 kann das Robotersystem 100 eine aktuelle/aktive Instanz des Packplans umsetzen. Wenn beispielsweise der Container an dem Aufgabenstandort 116 den erwarteten Bedingungen entspricht, kann das Robotersystem 100 die vorhandene Instanz (d. h. nach der anfänglichen Berechnung/Offline-Berechnung nicht eingestellt) des Packplans 700 umsetzen. Wie nachfolgend detailliert beschrieben, kann das Robotersystem 100 auch eine angepasste Instanz des Packplans umsetzen. Das Robotersystem 100 kann den Packplan basierend auf dem Steuern einer Robotereinheit (z. B. durch Senden von Befehlen/Einstellungen an die Robotereinheit und Ausführen der Befehle/Einstellungen an der Robotereinheit) gemäß dem Packplan 700 umsetzen. Dementsprechend kann das Robotersystem 100 die verfügbaren Pakete 742 an entsprechenden Platzierungsstandorten innerhalb des Containers gemäß dem Packplan 700 platzieren.
  • Wenn der Container an dem Aufgabenstandort 116 unerwarteten Bedingungen entspricht, wie etwa in Block 1208 veranschaulicht, kann das Robotersystem 100 ein tatsächliches Containermodell dynamisch erzeugen. Mit anderen Worten kann das Robotersystem 100 ein Containermodell, das den Echtzeitzustand (z. B. die unerwarteten Merkmale 1002) des tatsächlichen Containers berücksichtigt, dynamisch erzeugen. Für nachfolgende Verarbeitung/Analyse kann das Robotersystem 100 das tatsächliche Containermodell anstelle des Containermodells, das die erwarteten Bedingungen des Containers darstellt (z. B. das Containergrundrissmodell 622 aus 6 und/oder das Containerprofilmodell 624 aus 6), verwenden.
  • Das Robotersystem 100 kann das tatsächliche Containermodell basierend auf den Echtzeitbilddaten dynamisch erzeugen. Beispielsweise kann das Robotersystem 100 das tatsächliche Containermodell basierend auf dem Teilen des Draufsichtbildes 1052 und/oder des Seitenansichtbildes 1054 gemäß den Diskretisierungseinheiten 602 aus 6 dynamisch erzeugen. Das Robotersystem 100 kann den Bezugsstandort 604 aus 6 (z. B. ein Mittelteil und/oder eine vorgegebene Ecke) für den in dem Echtzeitbild erkannten Container identifizieren oder schätzen. Das Robotersystem 100 kann das Bild so ausrichten oder neu ausrichten, dass eine oder mehrere erkannte Kanten, die eine vorbestimmte Beziehung zu dem geschätzten Bezugsstandort 604 haben (z. B. Kanten, die mit dem Referenzort zusammenfallen), mit den vorbestimmten Referenzrichtungen/-achsen für das System und den entsprechenden Raum ausgerichtet sind. Basierend auf dem Bezugsstandort und der Achsenausrichtung kann das Robotersystem 100 Unterteilungen basierend auf den Abmessungen der Diskretisierungseinheiten 602 identifizieren, wodurch das Echtzeitbild/die Echtzeitbilder pixeliert werden.
  • In Block 1210 kann das Robotersystem 100 den tatsächlichen Packbereich/- raum innerhalb des Containers an dem Aufgabenstandort 116 berechnen. Das Robotersystem 100 kann eine Platzierungszone zwischen den geschätzten Containerwänden schätzen. Beispielsweise kann das Robotersystem 100 Teile innerhalb der Bilddaten als Containerwände basierend auf einem oder mehreren vorbestimmten physikalischen Merkmalen der Wände (z. B. Größe, Standort, Ausrichtung, Form, Farbe usw.) identifizieren oder schätzen. Das Robotersystem 100 kann die Teile innerhalb der Bilddaten zwischen den Wänden als Platzierungszone des tatsächlichen Containers identifizieren. In einigen Ausführungsformen kann das Robotersystem 100 die Platzierungszone als einen rechteckigen Bereich identifizieren, der mit einer oder mehreren der Systemachsen ausgerichtet ist und mit den Kanten des Containerwänden/der Containerbasis, die/der dem Mittelteil des Containers am nächsten liegen/liegt, zusammenfällt. Mit anderen Worten kann das Robotersystem 100 die Platzierungszone als eine Instanz eines achsenausgerichteten Begrenzungsrahmens für den Bereich/Raum zwischen den Containerwänden identifizieren.
  • Das Robotersystem 100 kann ferner die Platzierungszone analysieren, um den tatsächlichen Packbereich/-raum zu berechnen. Beispielsweise kann das Robotersystem 100 eine Größe und/oder eine Reihe von Abmessungen für die Platzierungszone berechnen. In einigen Ausführungsformen kann das Robotersystem 100 die Größe und/oder die Reihe von Abmessungen basierend auf den Diskretisierungseinheiten 602 berechnen. Dementsprechend kann das Robotersystem 100 den tatsächlichen Packbereich/-raum als Gesamtmenge der Diskretisierungseinheiten 602 innerhalb der Platzierungszone und/oder Längen (z. B. eine Anzahl von Diskretisierungseinheiten 602) entlang der Systemachsen darstellen. Bei der Berechnung der Größe/Abmessungen kann das Robotersystem 100 die Diskretisierungseinheiten 602, die über die Platzierungszone hinaus verlaufen (d. h. die Diskretisierungseinheiten 602, die die Containerwände oder die Bereiche außerhalb der Containerbasis überlappen oder teilweise einschließen), abrunden oder ignorieren.
  • In dem Entscheidungsblock 1212 kann das Robotersystem 100 bestimmen, ob der berechnete Bereich/Raum größer als eine oder mehrere Mindestschwellenanforderungen für den Packbereich/-raum ist. Beispielsweise kann das Robotersystem 100 die Größe/Abmessungen der Platzierungszone mit einer Mindestschwelle, die allgemein für alle Container gilt, vergleichen. Zusätzlich oder alternativ kann das Robotersystem 100 die Größe mit der des vorhandenen Packplans 700 vergleichen.
  • Wenn der verfügbare Platzierungsbereich/-raum die verglichene(n) Schwelle(n) nicht erfüllt, wie in Block 1214 veranschaulicht, kann das Robotersystem 100 den Container an dem Aufgabenstandort 116 neu laden oder ersetzen. Wenn beispielsweise der berechneten Platzierungsbereich/-raum des Containers an dem Aufgabenstandort 116 nicht größer als der Mindestschwellenwert ist, kann das Robotersystem 100 mit einer Transporteinheit/einem Transportroboter und/oder einem entsprechenden System kommunizieren, um (1) den Container an dem Aufgabenstandort 116 zu entfernen und/oder (2) einen neuen/anderen Container an dem Aufgabenstandort 116 zu platzieren. Wenn ein neuer Container an dem Aufgabenstandort 116 platziert wird, kann das Robotersystem 100 das Containerbild erhalten, wie in Block 1202 veranschaulicht und vorstehend beschrieben.
  • Wenn der verfügbare Platzierungsbereich/-raum den minimalen Schwellenwert erfüllt, wie beispielsweise in Block 1216, kann das Robotersystem 100 einen Packumriss berechnen. Beispielsweise kann das Robotersystem 100 den AABB 730 basierend auf dem vorhandenen Packplan 700 ableiten. Das Robotersystem 100 kann den AABB 730 als eine Darstellung eines oder mehrerer physikalischer Attribute des Satzes von Objekten, die zur Platzierung geplant sind, ableiten. Das Robotersystem 100 kann den AABB 730 gemäß einer bestimmten ebenen Form (z. B. einem Rechteck) ableiten. Das Robotersystem 100 kann die bestimmte ebene Form an den Systemachsen und einem umlaufenden Punkt (z. B. einem der äußersten Teile) des Packplans 700 ausrichten. Das Robotersystem 100 kann anschließend andere/nicht ausgerichtete Kanten der bezeichneten ebenen Form verlängern/bewegen, damit diese mit anderen umlaufenden Punkten des Packplans 700 zusammenfallen. In einigen Ausführungsformen kann beispielsweise das Robotersystem 100 ein Rechteck berechnen, das die Gesamtabmessungen des Packplans 700 entlang der Systemachsen darstellt. Dementsprechend kann das Robotersystem 10 den AABB 730 berechnen, der mit den äußersten Punkten des bestehenden Packplans 700 zusammenfällt.
  • In Block 1218 kann das Robotersystem 100 einen möglichen Paketplatzierungsstandort ableiten. Das Robotersystem 100 kann den möglichen Paketstandort zum Einstellen von Platzierungen des bestehenden Packplans innerhalb des Containers ableiten. In einigen Ausführungsformen kann das Robotersystem 100 den möglichen Paketstandort als eine Ecke des tatsächlichen Containermodells (z. B. den Platzierungsbereich des Containers) ableiten. Das Robotersystem 100 kann den möglichen Paketstandort so ableiten, dass eine Ecke des AABB 730 mit der Ecke des tatsächlichen Containermodells ausgerichtet ist. Beispielsweise kann das Robotersystem 100 die Ecke gemäß einem vorbestimmten Muster/einer vorbestimmten Sequenz auswählen. Basierend auf der ausgewählten Ecke kann das Robotersystem 100 Koordinaten/Versätze für den AABB 730 und/oder den Bezugspunkt des tatsächlichen Containermodells berechnen, so dass die entsprechenden Ecken des AABB 730 und des tatsächlichen Containermodells ausgerichtet sind oder zusammenfallen.
  • Dementsprechend kann das Robotersystem 100 den AABB 730 auf dem tatsächlichen Containermodell gemäß dem möglichen Paketstandort überlagern, so dass die entsprechenden Ecken ausgerichtet sind. In dem Entscheidungsblock 1220 kann das Robotersystem 100 bestimmen, ob der Paketumriss, der an dem möglichen Paketplatzierungsstandort überlagert ist, in den verfügbaren Platzierungsbereich/-raum passt. Das Robotersystem 100 kann einen Passstatus basierend darauf bestimmen, ob sich der AABB 730 mit zumindest einer umlaufenden Kante des tatsächlichen Containermodells überlappt oder darüber hinausgeht. In einigen Ausführungsformen kann das Robotersystem 100 den Passstatus basierend auf dem Berechnen der Abmessungen des AABB 730 (z. B. Anzahl der Diskretisierungseinheiten 602 entlang der Systemachsen) und dem Vergleichen der berechneten Abmessungen mit den Abmessungen der Platzierungszone bestimmen.
  • Wenn der Paketumriss, der an dem möglichen Paketplatzierungsstandort überlagert ist, nicht in den verfügbaren Platzierungsbereich/-raum passt, wie etwa in dem Entscheidungsblock 1222 veranschaulicht, kann das Robotersystem 100 bestimmen, ob eine Endbedingung erreicht wurde. Beispielsweise kann das Robotersystem 100 bestimmen, ob alle möglichen Paketplatzierungsstandorte (z. B. alle Ecken und/oder anderen verfügbaren Standorte, die mit dem tatsächlichen Containermodell assoziiert sind) analysiert/verarbeitet wurden. Wenn das Robotersystem 100 bestimmt, dass die Endbedingung nicht erreicht wurde, kann das Robotersystem 100 einen anderen möglichen Paketplatzierungsstandort in Block 1218 ableiten. Dementsprechend kann das Robotersystem 100 potenzielle mögliche Paketplatzierungsstandorte iterativ verarbeiten und analysieren, bis der Passstatus anzeigt, dass der AABB 730 in das tatsächliche Containermodell passt oder die Endbedingung erreicht ist.
  • Wenn der Paketumriss, der an dem möglichen Paketplatzierungsstandort überlagert ist, in den verfügbaren Platzierungsbereich/-raum passt, wie etwa in dem Entscheidungsblock 1224 veranschaulicht, kann das Robotersystem 100 die eingestellte Paketplatzierung analysieren. Das Robotersystem 100 kann die eingestellte Paketplatzierung (z. B. den Packplan 700, der gemäß dem passenden möglichen Paketplatzierungsstandort verschoben wurde) als Teil eines Validierungsprozesses analysieren. Beispielsweise kann das Robotersystem 100 die angepasste Paketplatzierung basierend auf einem oder mehreren resultierenden Annäherungswegen und/oder Stützungsanforderungen für ein oder mehrere Objekte analysieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 bestimmen, ob der vorhandene Packplan 700 einen oder mehrere Platzierungsstandorte zum Platzieren entsprechender Objekte enthält, die dazu bestimmt sind, von einer vertikalen Wand des Containers gestützt zu werden (z. B. die Stützwand 725 aus 7A). Beispielsweise kann das Robotersystem 100 die wandgestützten Standorte während der anfänglichen Ableitung des Packplans 700 anzeigen. Dementsprechend kann das Robotersystem 100 anschließend bestimmen, ob der vorhandene Packplan 700 einen oder mehrere wandgestützte Platzierungsstandorte basierend auf dem Zugriff auf den Packplan 700 und die vorbestimmten Anzeigen enthält. Alternativ oder zusätzlich kann das Robotersystem 100 den vorhandenen Packplan 700 über das erwartete Containermodell (z. B. das Containergrundrissmodell 622) und/oder das Containerprofilmodell 624, das die unerwarteten Merkmale 1002 nicht berücksichtigt) legen. Das Robotersystem 100 kann bestimmen, dass der vorhandene Packplan 700 einen oder mehrere wandgestützte Platzierungsstandorte enthält, wenn ein Teil des vorhandenen Packplans 700 mit Containerwandteilen des erwarteten Containermodells zusammenfällt oder sich in einem vorbestimmten Abstand davon befindet.
  • Das Robotersystem 100 kann aktualisierte Platzierungsstandorte für die identifizierten wandgestützten Platzierungsstandorte in dem vorhandenen Packplan 700 bestimmen. Beispielsweise kann das Robotersystem 100 Übertragungsparameter berechnen (z. B. lineare Verschiebungen und/oder Drehungen um eine oder mehrere Systemachsen), die den Unterschied zwischen dem vorhandenen Packplan 700 und dem möglichen Paketplatzierungsstandort darstellen. Das Robotersystem 100 kann die Übertragungsparameter auf die identifizierten wandgestützten Platzierungsstandorte anwenden, um die aktualisierten Platzierungsstandorte zu bestimmen. Wie nachfolgend weiter beschrieben, kann das Robotersystem 100 die aktualisierten Platzierungsstandorte zur Wandstützung für Validierungszwecke analysieren.
  • In einigen Ausführungsformen kann das Robotersystem 100 eine oder mehrere aktualisierte Instanzen des Annäherungsweges 901 aus 9A, die den potenziellen eingestellten Standorten des Packplans 700 entsprechen und/oder den Platzierungsstandorten darin entsprechen, ableiten. Die aktualisierten Instanzen des Annäherungsweges 901 können Bewegungspläne darstellen, die mit der Platzierung entsprechender Objekte an eingestellten Standorten, die dem Verschieben des bestehenden Packplans 700 zu dem passenden möglichen Paketstandort entsprechen, assoziiert sind. Das Robotersystem 100 kann einen oder mehrere Objektplatzierungsstandorte für die Validierungsanalyse auswählen. Beispielsweise kann das Robotersystem 100 zur Validierungsanalyse einen Platzierungsstandort eines zuerst platzierten Objekts gemäß dem vorhandenen Packplan 700 auswählen. Zusätzlich oder alternativ kann das Robotersystem 100 zur Validierungsanalyse einen oder mehrere Platzierungsstandorte auswählen, die eine oder mehrere umlaufende Kanten oder eine Ecke für den bestehenden Packplan 700 bilden. Für den/die ausgewählten Platzierungsstandort(e) kann das Robotersystem 100 den entsprechenden Annäherungsweg wie vorstehend beschrieben ableiten (z. B. in Bezug auf Block 1126 aus 11).
  • In dem Entscheidungsblock 1226 kann das Robotersystem 100 bestimmen, ob die angepasste Paketplatzierung gültig ist oder nicht. Das Robotersystem 100 kann den möglichen Paketplatzierungsstandort basierend auf dem Passstatus validieren. Mit anderen Worten kann das Robotersystem 100 den Passstatus zur vorläufigen Validierung/Qualifizierung verwenden. Dementsprechend kann das Robotersystem 100 beliebige mögliche Paketplatzierungsstandorte, die dazu führen, dass der AABB 730 in das tatsächliche Containermodell passt, eliminieren. Das Robotersystem 100 kann ferner die passenden möglichen Paketplatzierungsstandorte validieren, beispielsweise basierend auf den entsprechenden aktualisierten Annäherungswegen und/oder den aktualisierten Wandstützstandorten.
  • In einigen Ausführungsformen kann das Robotersystem 100 den passenden möglichen Paketstandort basierend auf dem Validieren des aktualisierten wandgestützten Platzierungsstandortes gemäß einer oder mehreren Regeln (z. B. der Wandstützregel 794, der Neigungsstützregel 796, der Mehrfachüberhangregel 798 und/oder anderer Regeln/Anforderungen, die in 7C veranschaulicht sind), die dazu konfiguriert sind, die Stützung von einer vertikal ausgerichteten Struktur zu analysieren, validieren. Das Robotersystem 100 kann gemäß den vorstehend beschriebenen Regeln validieren (z. B. in Bezug auf Block 1110 und/oder Block 1128 aus 11). Das Robotersystem 100 kann den passenden möglichen Paketstandort validieren, wenn einer oder mehrere oder alle der aktualisierten wandgestützten Platzierungsstandorte die eine oder die mehreren wandstützungsbezogenen Regeln erfüllen. Zusätzlich oder alternativ kann das Robotersystem 100 den passenden möglichen Paketstandort basierend auf dem erfolgreichen Ableiten des aktualisierten Annäherungsweges validieren. Mit anderen Worten kann das Robotersystem 100 den passenden möglichen Paketstandort basierend auf dem erfolgreichen Ableiten einer oder mehrerer oder aller aktualisierten Instanzen des Annäherungsweges 901 für den ausgewählten Bezugsstandort/die ausgewählten Bezugsstandorte, der/die frei von den potenziellen Hindernissen 910 aus 9A ist/sind, validieren.
  • Wenn das Robotersystem 100 den möglichen Paketplatzierungsstandort validiert, wie in Block 1228 veranschaulicht, kann das Robotersystem 100 den bestehenden Packplan 700 einstellen. Das Robotersystem 100 kann die Objektplatzierungsstandorte und/oder entsprechende Annäherungswege 901 (z. B. Bewegungspläne) des bestehenden Packplans 700 gemäß dem validierten möglichen Paketplatzierungsstandort einstellen. Beispielsweise kann das Robotersystem 100 einen Unterschied und entsprechende Übertragungsparameter berechnen, die den Unterschied zwischen dem vorhandenen Packplan 700 und dem möglichen Paketplatzierungsstandort darstellen, wie vorstehend beschrieben. Das Robotersystem 100 kann die Übertragungsparameter auf die Objektplatzierungsstandorte des bestehenden Packplans 700 anwenden, um die eingestellten/aktualisierten Platzierungsstandorte, die mit dem validierten Paketplatzierungsstandort assoziiert sind, abzuleiten. Mit anderen Worten kann das Robotersystem 100 den bestehenden Packplan 700 und die entsprechenden Platzierungsstandorte gemäß dem möglichen Paketplatzierungsstandort verschieben. Dementsprechend kann das Robotersystem 100 die aktualisierten Platzierungsstandorte direkt basierend auf dem Einstellen/Verschieben der anfänglichen Platzierungsstandorte, wie etwa ohne Wiederholen der anfänglichen Prozesse, die dazu verwendet werden, die vorstehend beschriebenen Platzierungsstandorte abzuleiten (z. B. in Bezug auf Block 1110 aus 11), ableiten.
  • Alternativ oder zusätzlich kann das Robotersystem 100 einen Unterschied zwischen der Anfangsinstanz und der aktualisierten Instanz des Annäherungsweges 901 für den Bezugsplatzierungsstandort berechnen. Beispielsweise kann das Robotersystem 100 Unterschiedsvektoren oder Parameter berechnen, die dazu erforderlich sind, die Anfangsinstanz des Annäherungsweges 901 einzustellen, um die aktualisierte Instanz davon zu erzeugen, die dem validierten Paketplatzierungsstandort entspricht. Das Robotersystem 100 kann die restlichen Annäherungswege/Bewegungspläne für andere Objektplatzierungen einstellen, wie etwa durch Anwenden der Unterschiedsvektoren/Parameter dazu. Dementsprechend kann das Robotersystem 100 die aktualisierten Annäherungswege/Bewegungspläne direkt basierend auf den Unterschiedsvektoren/Parametern ableiten, wie etwa ohne die anfänglichen Prozesse zu wiederholen, die dazu verwendet werden, die Annäherungswege 901 für den Packplan 700 abzuleiten.
  • Das Robotersystem 100 kann den eingestellten Packplan umsetzen. Beispielsweise kann der Verarbeitungsfluss zu Block 1206 übergehen und das Robotersystem 100 kann die aktuelle/aktive Instanz des Packplans, wie etwa die eingestellte Instanz des Packplans 700, umsetzen. Dementsprechend kann das Robotersystem 100 den eingestellten Packplan zum Platzieren der Reihe von Objekten in dem Container umsetzen.
  • Wenn das Robotersystem 100 den möglichen Paketplatzierungsstandort nicht validiert, kann das Robotersystem 100 bestimmen, ob eine Endbedingung erreicht wurde, wie etwa in Entscheidungsblock 1222 veranschaulicht. Wie vorstehend beschrieben, kann das Robotersystem 100 iterativ mehrere mögliche Paketplatzierungsstandorte berücksichtigen. Bei Erreichen einer Endbedingung, wie etwa, wenn keiner der verfügbaren/analysierten möglichen Paketplatzierungsstandorte den AABB 730, der in den tatsächlichen Packbereich/- raum passt, bereitstellt, kann das Robotersystem eine Lösung ausführen, wie in Block 1230 veranschaulicht. In einigen Ausführungsformen kann das Ausführen der Lösung das erneute Laden des Containers an dem Aufgabenstandort 116 beinhalten, wie vorstehend in Bezug auf Block 1214 beschrieben.
  • In einigen Ausführungsformen kann das Ausführen der Lösung einen dynamischen Paketplanungsprozess beinhalten. Mit anderen Worten kann das Robotersystem 100 dynamisch einen neuen Packplan zum Ersetzen des bestehenden Packplans erneut ableiten. Beispielsweise kann das Robotersystem 100 das Verfahren 1100 aus 11 oder einen Teil davon umsetzen, um einen neuen Packplan für den Container, der mit den unerwarteten Merkmalen assoziiert ist, abzuleiten. Für die dynamische Neuableitung kann das Robotersystem 100 die Reihe von Objekten, die ursprünglich zur Platzierung innerhalb des Containers bestimmt waren, und Modelle, die für derartige Objekte repräsentativ sind, identifizieren, wie in Block 1232 veranschaulicht. Das Robotersystem 100 kann die eindeutigen Typen/Kategorien von Objekten, die ursprünglich dazu bestimmt waren, innerhalb des tatsächlichen Containers an dem Aufgabenstandort 116 platziert zu werden, identifizieren. Das Robotersystem 100 kann auch die Objektmodelle (z. B. die Objektgrundrissmodelle 612 und/oder die Objektprofilmodelle 614, veranschaulicht in 6), die die identifizierten eindeutigen Objekttypen/-kategorien darstellen, erhalten.
  • In Block 1234 kann das Robotersystem 100 Objektgruppierungen und/oder - reihenfolgen erhalten. In einigen Ausführungsformen kann das Robotersystem 100 die Objektgruppierungen/-reihenfolgen, die während der anfänglichen Ableitung des Packplans berechnet wurden, speichern. Das Robotersystem 100 kann die Objektgruppierungen und/oder -reihenfolgen durch Zugreifen auf die gespeicherten Informationen erhalten. Alternativ oder zusätzlich kann das Robotersystem 100 die Gruppierungen/Reihenfolge erneut verarbeiten, wie vorstehend beschrieben (z. B. in Bezug auf die Blöcke 1106 und/oder 1108 aus 11).
  • Das Robotersystem 100 kann die resultierenden Informationen verarbeiten, um eine neue Instanz der 2D-Pläne abzuleiten, wie etwa vorstehend für Block 1110 aus 11 beschrieben. Für die Ableitung kann das Robotersystem 100 das tatsächliche Containermodell anstelle der erwarteten Containermodelle, die die unerwarteten Merkmale 1002 nicht berücksichtigen, verwenden.
  • Beispielsweise kann das Robotersystem 100 mögliche Positionen zum Platzieren der identifizierten Reihe von Objekten bestimmen. Das Robotersystem 100 kann die Objektmodelle gemäß den bestimmten möglichen Positionen über das tatsächliche Containermodell legen. Das Robotersystem 100 kann die überlagerten Modelle analysieren und die möglichen Positionen basierend auf einer oder mehreren Platzierungsregeln, wie vorstehend beschrieben, validieren.
  • Schlussfolgerung
  • Die vorstehende detaillierte Beschreibung von Beispielen für die offenbarte Technologie erhebt keinerlei Anspruch auf Vollständigkeit und soll die offenbarte Technologie nicht auf die vorstehend erörterte genaue Form begrenzen. Wenngleich konkrete Beispiele für die offenbarte Technologie vorstehend zum Zwecke der Veranschaulichung beschrieben sind, sind verschiedene äquivalente Modifikationen im Geltungsbereich der offenbarten Technologie möglich, wie ein Fachmann auf dem entsprechenden Gebiet erkennt. Beispielsweise können, wenngleich Prozesse oder Blöcke in einer bestimmten Reihenfolge dargestellt sind, alternative Umsetzungen Routinen durchführen, die Schritte aufweisen, oder Systeme verwenden, die Blöcke aufweisen, die durch eine andere Reihenfolge gekennzeichnet sind, und einige Prozesse oder Blöcke können gelöscht, verschoben, hinzugefügt, unterteilt, kombiniert und/oder modifiziert sein, um alternative oder Unterkombinationen bereitzustellen. Jeder dieser Prozesse oder Blöcke kann auf eine Vielzahl von verschiedenen Arten umgesetzt sein. Zudem können, wenngleich Prozesse oder Blöcke manchmal so dargestellt sind, dass sie der Reihe nach ausgeführt werden, diese Prozesse oder Blöcke anstelle dessen parallel durchgeführt oder umgesetzt oder zu anderen Zeitpunkten durchgeführt werden. Zudem sind beliebige 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 viele Wege 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 beliebige konkrete Eigenschaften, Merkmale oder Aspekte der offenbarten Technologie beschränkt ist, mit der diese Terminologie assoziiert ist. Dementsprechend wird die Erfindung ausschließlich durch die beigefügten Patentansprüche beschränkt. Im Allgemeinen sollten die in den nachstehenden Patentansprüchen verwendeten Begriffe nicht so ausgelegt werden, dass sie die offenbarte Technologie auf die in der Patentschrift offenbarten konkreten Beispiele beschränken, sofern der vorstehende Abschnitt Detaillierte Beschreibung derartige Begriffe nicht ausdrücklich definiert.
  • Wenngleich bestimmte Aspekte der Erfindung nachstehend in bestimmten Anspruchsformen dargestellt sind, zieht der Anmelder die verschiedenen Aspekte der Erfindung in einer beliebigen Anzahl von Anspruchsformen in Betracht. Dementsprechend behält sich der Anmelder das Recht vor, zusätzliche Patentansprüche zu verfolgen, nachdem diese Anmeldung eingereicht wurde, um derartige zusätzliche Anspruchsformen zu verfolgen, entweder in dieser Anmeldung oder in einer fortführenden Anmeldung.

Claims (20)

  1. Verfahren zum Betreiben eines Robotersystems, wobei das Verfahren Folgendes umfasst: Erhalten eines ersten Objektmodells und eines zweiten Objektmodells, wobei das erste Objektmodell und das zweite Objektmodell diskretisierte Darstellungen von physikalischen Abmessungen, Formen oder einer Kombination davon für ein erstes Objekt bzw. ein zweites Objekt gemäß einer Diskretisierungseinheit sind, wobei das erste Objektmodell und das zweite Objektmodell das erste Objekt bzw. das zweite Objekt darstellen, die zum Platzieren in einem oder mehreren Containern an einem Aufgabenstandort bestimmt sind; Zugreifen auf ein Containermodell, das einen Container mit einer Stützwand, die über einer Containerbasis verläuft, darstellt, wobei das Containermodell eine diskretisierte Darstellung des Containers gemäß der Diskretisierungseinheit ist; Ableiten eines Packplans basierend auf dem Überlagern des ersten Objektmodells und des zweiten Objektmodells über dem diskretisierten Containermodell, wobei der Packplan einen ersten Platzierungsstandort zum Platzieren des ersten Objekts und einen zweiten Platzierungsstandort zum Platzieren des zweiten Objekts beinhaltet, wobei: der erste Platzierungsstandort einen Standort innerhalb des Containers direkt neben der Stützwand darstellt, der zweite Platzierungsstandort einen Standort über dem ersten Platzierungsstandort und innerhalb des Containers darstellt, wobei ein Teil des zweiten Objekts seitlich über eine umlaufende Kante des ersten Objekts in Richtung der Stützwand hinausragt, und der zweite Platzierungsstandort zum Nutzen der Stützwand dient, um das zweite Objekt, das über dem ersten Objekt platziert ist, zu stützen; und Umsetzen des Packplans zum Platzieren des ersten Objekts und des zweiten Objekts in dem Container unter Verwendung eines Roboterarms und eines Endeffektors.
  2. Verfahren nach Anspruch 1, wobei: der erste Platzierungsstandort zum Platzieren des ersten Objekts an einem Standort, der durch einen Objekt-Wand-Trennabstand von der Stützwand getrennt ist, dient; und der zweite Platzierungsstandort zum Platzieren des zweiten Objekts überhängend über dem ersten Objekt dient.
  3. Verfahren nach Anspruch 1, wobei das Ableiten des Packplans Folgendes umfasst: Ableiten einer möglichen Position innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts; Schätzen eines oder mehrerer Attribute, die mit der möglichen Position assoziiert sind, basierend auf dem Platzieren des ersten Objektmodells an dem ersten Platzierungsstandort und des zweiten Objektmodells an der möglichen Position; und Validieren der möglichen Position als den zweiten Platzierungsstandort, wenn die geschätzten Attribute eine Wandstützregel erfüllen, die eine oder mehrere Anforderungen zum Platzieren von Objekten an und in direktem Kontakt mit vertikal ausgerichteten Containerteilen darstellt.
  4. Verfahren nach Anspruch 3, wobei: das Schätzen des einen oder der mehreren Attribute das Berechnen einer effektiven Stützung basierend auf einem Teil des zweiten Objektmodells, der das erste Objektmodell überlappt, umfasst; und das Validieren der möglichen Position das Bestimmen, dass die effektive Stützung eine Überlappungsanforderung erfüllt, beinhaltet.
  5. Verfahren nach Anspruch 3, wobei: das Schätzen des einen oder der mehreren Attribute das Schätzen eines Überhangmaßes für einen Teil des zweiten Objektmodells, der über dem ersten Objektmodell hängt, beinhaltet; und das Validieren der möglichen Position das Bestimmen, dass das Überhangmaß eine Überhanganforderung erfüllt, beinhaltet.
  6. Verfahren nach Anspruch 3, wobei: das Schätzen des einen oder der mehreren Attribute das Schätzen eines Massenschwerpunkt (CoM)-Standorts entsprechend dem CoM des zweiten Objekts beinhaltet; und das Validieren der möglichen Position das Bestimmen, dass der CoM-Standort eine CoM-Versatzanforderung erfüllt, beinhaltet.
  7. Verfahren nach Anspruch 1, wobei das Ableiten des Packplans Folgendes umfasst: Ableiten einer möglichen Position innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts getrennt von der Stützwand; Schätzen eines Schwenkstandorts, der mit der möglichen Position assoziiert ist, basierend auf dem Platzieren des ersten Objektmodells an dem ersten Platzierungsstandort und des zweiten Objektmodells an der möglichen Position, wobei der Schwenkstandort eine umlaufende Kante oder einen höchsten Teil des ersten Objekts darstellt; Ableiten einer oder mehrerer verschobener Stellungen basierend auf dem Verschieben des zweiten Objektmodells in Richtung der Stützwand und/oder dem Drehen des zweiten Objektmodells um den Schwenkstandort, wobei die eine oder die mehreren verschobenen Stellungen das zweite Objekt darstellen, das sich von dem möglichen Standort verschiebt und die Stützwand direkt berührt; und Validieren der möglichen Position als den zweiten Platzierungsstandort, wenn die eine oder die mehreren verschobenen Stellungen eine Neigungsstützregel erfüllen, die eine oder mehrere Anforderungen zum Platzieren von Objekten seitlich getrennt von vertikal ausgerichteten Containerteilen darstellt.
  8. Verfahren nach Anspruch 1, wobei das Ableiten des Packplans Folgendes umfasst: Ableiten einer möglichen Position innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts, das über einem Zwischenobjekt hängt, das über dem ersten Objekt hängt; Schätzen eines oder mehrerer Attribute, die mit der möglichen Position assoziiert sind, basierend auf dem Platzieren des ersten Objektmodells an dem ersten Platzierungsstandort und des zweiten Objektmodells an der möglichen Position über einem Standort für das Zwischenobjekt; und Validieren der möglichen Position als den zweiten Platzierungsstandort, wenn die geschätzten Attribute eine Mehrfachüberhangregel erfüllen, die eine oder mehrere Anforderungen zum Platzieren mehrerer Objekte, die über einem untenliegenden Stützobjekt überhängen, darstellt.
  9. Verfahren nach Anspruch 8, wobei: das Schätzen des einen oder der mehreren Attribute das Berechnen einer effektiven Stützung basierend auf einem Teil des zweiten Objektmodells, der das erste Objektmodell überlappt, umfasst; und das Validieren der möglichen Position das Bestimmen, dass die effektive Stützung eine Überlappungsanforderung erfüllt, beinhaltet.
  10. Verfahren nach Anspruch 8, wobei: das Schätzen des einen oder der mehreren Attribute Folgendes umfasst: Ableiten einer kombinierten Objektschätzung, die das zweite Objekt und das Zwischenobjekt als ein Objekt darstellt; und Schätzen des einen oder der mehreren Attribute der kombinierten Objektschätzung; und das Validieren der möglichen Position das Bestimmen, dass das eine oder die mehreren Attribute einer Wandstützregel oder einer Neigungsstützregel entsprechen, beinhaltet.
  11. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen von Objektgruppierungen für Objekte, die zum Platzieren innerhalb von Containern an dem Aufgabenstandort bestimmt sind; Ableiten eines Verarbeitungsauftrags für die Objektgruppierungen; und wobei: das Ableiten des Packplans das Ableiten des Packplans basierend auf dem Verarbeitungsauftrag und den Objektgruppierungen beinhaltet.
  12. Verfahren nach Anspruch 1, wobei der Packplan während oder unmittelbar vor einem Packvorgang dynamisch abgeleitet wird.
  13. Verfahren nach Anspruch 12, ferner umfassend: Erhalten von Bilddaten, die den Container an dem Aufgabenstandort darstellen; Erkennen eines unerwarteten Merkmals basierend auf der Analyse der Bilddaten, wobei das unerwartete Merkmal eine tatsächliche physikalische Eigenschaft der Stützwand darstellt, die von einem erwarteten Zustand abweicht; und wobei: das Ableiten des Packplans das dynamisches Ableiten des Packplans basierend auf dem unerwarteten Merkmal beinhaltet, wobei der Packplan zum Ersetzen eines vorhergehenden Plans zum Platzieren des ersten Objekts und des zweiten Objekts in dem Container gemäß dem erwarteten Zustand dient.
  14. Verfahren nach Anspruch 1, ferner umfassend: Erhalten eines Greifermodells, das den Endeffektor darstellt; Identifizieren eines oder mehrerer potenzieller Hindernisse zum Platzieren des zweiten Objekts, wobei das eine oder die mehreren potenziellen Hindernisse einen vertikal ausgerichteten Teil des Containers umfassen; wobei das Ableiten des Packplans Folgendes umfasst: Ableiten einer möglichen Position innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts; und Ableiten eines Annäherungsweges basierend auf dem Überlagern einer Kombination des Greifermodells und des zweiten Objektmodells auf dem Containermodell, wobei der Annäherungsweg eine Abfolge von Standorten darstellt, an denen der Endeffektor das zweite Objekt von einem Startstandort zu der möglichen Position überträgt; und Validieren der möglichen Position als zweiter Platzierungsstandort, wenn die Kombination des Greifermodells und des zweiten Objektmodells entlang des Annäherungsweges frei von einem oder mehreren potenziellen Hindernissen ist.
  15. Verfahren nach Anspruch 14, wobei das Ableiten des Annäherungsweges Folgendes beinhaltet: Einstellen der Kombination des Greifermodells und des zweiten Objektmodells gemäß einer eingreifenden Schnittstellenhöhe, die den Endeffektor, der das zweite Objekt greift, darstellt; Identifizieren einer seitlich verlaufenden Spur auf einer Anfangshöhe, wobei die seitlich verlaufende Spur einer seitlichen Bewegung der angepassten Kombination des Greifermodells und des zweiten Objektmodells entspricht; Bestimmen, ob sich die seitlich verlaufende Spur mit dem einen oder den mehreren potenziellen Hindernissen, darunter ein vorhergehendes Objekts und/oder der vertikal ausgerichtete Teil, überlappt; und iteratives Erhöhen der Höhe der seitlich verlaufenden Spur gemäß einer Annäherungserhöhung, bis die seitlich verlaufende Spur das eine oder die mehreren potenziellen Hindernisse zum Simulieren einer Übertragung des zweiten Objekts entlang des Annäherungsweges in einer umgekehrten Reihenfolge beseitigt.
  16. Robotersystem, umfassend: eine Kommunikationsvorrichtung, die dazu konfiguriert ist, Daten mit einer Schaltung zu kommunizieren; und zumindest einen Prozessor, der mit der Kommunikationsvorrichtung gekoppelt ist, wobei der zumindest eine Prozessor zu Folgendem dient: basierend zumindest teilweise auf den kommunizierten Daten, Erhalten eines ersten Objektmodells und eines zweiten Objektmodells, wobei das erste Objektmodell und das zweite Objektmodell diskretisierte Darstellungen von physikalischen Abmessungen, Formen oder einer Kombination davon für ein erstes Objekt bzw. ein zweites Objekt gemäß einer Diskretisierungseinheit sind, wobei das erste Objektmodell und das zweite Objektmodell das erste Objekt bzw. das zweite Objekt darstellen, die zum Platzieren in einem oder mehreren Containern an einem Aufgabenstandort bestimmt sind; Zugreifen auf ein Containermodell, das einen Container mit einer Stützwand, die über einer Containerbasis verläuft, darstellt, wobei das Containermodell eine diskretisierte Darstellung des Containers gemäß der Diskretisierungseinheit ist; Ableiten eines Packplans basierend auf dem Überlagern des ersten Objektmodells und des zweiten Objektmodells über dem diskretisierten Containermodell, wobei der Packplan einen ersten Platzierungsstandort zum Platzieren des ersten Objekts und einen zweiten Platzierungsstandort zum Platzieren des zweiten Objekts beinhaltet, wobei: der erste Platzierungsstandort einen Standort innerhalb des Containers direkt neben der Stützwand darstellt, der zweite Platzierungsstandort einen Standort über dem ersten Platzierungsstandort und innerhalb des Containers darstellt, wobei ein Teil des zweiten Objekts seitlich über eine umlaufende Kante des ersten Objekts in Richtung der Stützwand hinausragt, und der zweite Platzierungsstandort zum Nutzen der Stützwand dient, um das zweite Objekt, das über dem ersten Objekt platziert ist, zu stützen; und Umsetzen des Packplans zum Platzieren des ersten Objekts und des zweiten Objekts in dem Container unter Verwendung eines Roboterarms und eines Endeffektors.
  17. Materielles, nichttransitorisches computerlesbares Medium, auf dem Prozessoranweisungen gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen, ein Verfahren auszuführen, wobei das Verfahren Folgendes umfasst: Erhalten eines ersten Objektmodells und eines zweiten Objektmodells, wobei das erste Objektmodell und das zweite Objektmodell diskretisierte Darstellungen von physikalischen Abmessungen, Formen oder einer Kombination davon für das erste Objekt bzw. das zweite Objekt gemäß einer Diskretisierungseinheit sind, wobei das erste Objektmodell und das zweite Objektmodell das erste Objekt bzw. das zweite Objekt darstellen, die zum Platzieren in einem oder mehreren Containern an einem Aufgabenstandort bestimmt sind; Zugreifen auf ein Containermodell, das einen Container mit einer Stützwand, die über einer Containerbasis verläuft, darstellt, wobei das Containermodell eine diskretisierte Darstellung des Containers gemäß der Diskretisierungseinheit ist; Ableiten eines Packplans basierend auf dem Überlagern des ersten Objektmodells und des zweiten Objektmodells über dem diskretisierten Containermodell, wobei der Packplan einen ersten Platzierungsstandort zum Platzieren des ersten Objekts und einen zweiten Platzierungsstandort zum Platzieren des zweiten Objekts beinhaltet, wobei: der erste Platzierungsstandort einen Standort innerhalb des Containers direkt neben der Stützwand darstellt, der zweite Platzierungsstandort einen Standort über dem ersten Platzierungsstandort und innerhalb des Containers darstellt, wobei ein Teil des zweiten Objekts seitlich über eine umlaufende Kante des ersten Objekts in Richtung der Stützwand hinausragt, und der zweite Platzierungsstandort zum Nutzen der Stützwand dient, um das zweite Objekt, das über dem ersten Objekt platziert ist, zu stützen; und Umsetzen des Packplans zum Platzieren des ersten Objekts und des zweiten Objekts in dem Container unter Verwendung eines Roboterarms und eines Endeffektors.
  18. Materielles, nicht flüchtiges computerlesbares Medium nach Anspruch 16, wobei das Ableiten des Packplans Folgendes umfasst: Ableiten einer möglichen Position innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts; Schätzen eines oder mehrerer Attribute, die mit der möglichen Position assoziiert sind, basierend auf dem Platzieren des ersten Objektmodells an dem ersten Platzierungsstandort und des zweiten Objektmodells an der möglichen Position; und Validieren der möglichen Position als den zweiten Platzierungsstandort, wenn die geschätzten Attribute eine Wandstützregel erfüllen, die eine oder mehrere Anforderungen zum Platzieren von Objekten an und in direktem Kontakt mit vertikal ausgerichteten Containerteilen darstellt.
  19. Materielles, nicht flüchtiges computerlesbares Medium nach Anspruch 17, wobei das Ableiten des Packplans Folgendes umfasst: Ableiten einer möglichen Position innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts getrennt von der Stützwand; Schätzen eines Schwenkstandorts, der mit der möglichen Position assoziiert sind, basierend auf dem Platzieren des ersten Objektmodells an dem ersten Platzierungsstandort und des zweiten Objektmodells an der möglichen Position, wobei der Schwenkstandort eine umlaufende Kante oder einen höchsten Teil des ersten Objekts darstellt; Ableiten einer oder mehrerer verschobener Stellungen basierend auf dem Verschieben des zweiten Modells in Richtung der Stützwand und/oder dem Drehen des zweiten Modells um den Schwenkstandort, wobei die eine oder die mehreren verschobenen Stellungen das zweite Objekt darstellen, das sich von dem möglichen Standort verschiebt und die Stützwand direkt berührt; und Validieren der möglichen Position als den zweiten Platzierungsstandort, wenn die eine oder die mehreren verschobenen Stellungen eine Neigungsstützregel erfüllen, die eine oder mehrere Anforderungen zum Platzieren von Objekten seitlich getrennt von vertikal ausgerichteten Containerteilen darstellt.
  20. Materielles, nicht flüchtiges computerlesbares Medium nach Anspruch 17, wobei das Ableiten des Packplans Folgendes umfasst: Ableiten einer möglichen Position innerhalb des diskretisierten Containermodells zum Platzieren des zweiten Objekts, das über einem Zwischenobjekt hängt, das über dem ersten Objekt hängt; Schätzen eines oder mehrerer Attribute, die mit der möglichen Position assoziiert sind, basierend auf dem Platzieren des ersten Objektmodells an dem ersten Platzierungsstandort und des zweiten Objektmodells an der möglichen Position über einem Standort für das Zwischenobjekt; und Validieren der möglichen Position als den zweiten Platzierungsstandort, wenn die geschätzten Attribute eine Mehrfachüberhangregel erfüllen, die eine oder mehrere Anforderungen zum Platzieren mehrerer Objekte, die über einem untenliegenden Stützobjekt überhängen, darstellt.
DE102020127473.4A 2019-11-05 2020-10-19 Robotersystem mit wandbasiertem packmechanismus und verfahren zum betreiben dieses systems Pending DE102020127473A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962931161P 2019-11-05 2019-11-05
US62/931,161 2019-11-05
US16/905,837 US11020854B2 (en) 2019-11-05 2020-06-18 Robotic system with wall-based packing mechanism and methods of operating same
US16/905,837 2020-06-18

Publications (1)

Publication Number Publication Date
DE102020127473A1 true DE102020127473A1 (de) 2021-07-15

Family

ID=75686827

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020127473.4A Pending DE102020127473A1 (de) 2019-11-05 2020-10-19 Robotersystem mit wandbasiertem packmechanismus und verfahren zum betreiben dieses systems

Country Status (5)

Country Link
US (3) US11020854B2 (de)
JP (2) JP6771799B1 (de)
KR (1) KR20210054448A (de)
CN (2) CN112589791B (de)
DE (1) DE102020127473A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021213568A1 (de) 2021-11-30 2023-06-01 Gebhardt Fördertechnik GmbH Lager- und Entnahmesystem sowie Verfahren zum Betreiben eines Lager- und Entnahmesystems

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10369701B1 (en) 2018-10-30 2019-08-06 Mujin, Inc. Automated package registration systems, devices, and methods
KR20240042157A (ko) 2018-10-30 2024-04-01 무진 아이엔씨 자동화된 패키지 등록 시스템, 디바이스 및 방법
US11216014B1 (en) * 2019-08-01 2022-01-04 Amazon Technologies, Inc. Combined semantic configuration spaces
US11020854B2 (en) * 2019-11-05 2021-06-01 Mujin, Inc. Robotic system with wall-based packing mechanism and methods of operating same
US20210253376A1 (en) * 2020-02-05 2021-08-19 Tata Consultancy Services Limited System and method for autonomous multi-bin parcel loading system
EP3866079A1 (de) * 2020-02-12 2021-08-18 Tata Consultancy Services Limited Verfahren und system zum automatischen verpacken von gegenständen
US11443449B2 (en) * 2020-02-26 2022-09-13 Zebra Technologies Corporation Three-dimensional (3D) imaging systems and methods for virtual grading of package walls in commercial trailer loading
US11772833B1 (en) * 2020-03-30 2023-10-03 Amazon Technologies, Inc. Systems and methods for automated custom shipping containers
US11511417B1 (en) * 2020-05-18 2022-11-29 Amazon Technologies, Inc. Conveyance modulation based on fragility ratings
US11334085B2 (en) * 2020-05-22 2022-05-17 The Regents Of The University Of California Method to optimize robot motion planning using deep learning
US20220016779A1 (en) * 2020-07-15 2022-01-20 The Board Of Trustees Of The University Of Illinois Autonomous Robot Packaging of Arbitrary Objects
JP7395451B2 (ja) * 2020-09-16 2023-12-11 株式会社東芝 ハンドリング装置、処理装置、コントローラ及びプログラム
US11905115B2 (en) * 2021-04-30 2024-02-20 Dexterity, Inc. Robotic system for identifying items
US20220402708A1 (en) * 2021-06-16 2022-12-22 Dexterity, Inc. Collision avoidance based on vision data, geometric data and physics engine evaluation
WO2022265931A1 (en) * 2021-06-16 2022-12-22 Dexterity, Inc. Simulated box placement for algorithm evaluation and refinement
EP4355672A1 (de) * 2021-06-16 2024-04-24 Dexterity, Inc. Arbeitsfluss zur verwendung eines baumsuchbasierten ansatzes zum platzieren von schachteln auf einer palette mit begrenztem wissen einer zukünftigen sequenz
CN114275211B (zh) * 2022-01-10 2023-03-03 季华实验室 一种防止物体挤压的自动化堆放方法及装置
WO2023146851A1 (en) * 2022-01-31 2023-08-03 Dexterity, Inc. Optimization of package weight distribution
CN114803570B (zh) * 2022-04-20 2023-06-09 北京汇力智能科技有限公司 物料抓取策略的确定方法、装置、存储介质以及电子设备
CN117961877A (zh) * 2022-10-25 2024-05-03 罗伯特·博世有限公司 用于确定放置对象的路径的方法、装置和计算机可读存储介质
CN115457088B (zh) * 2022-10-31 2023-03-24 成都盛锴科技有限公司 一种列车定轴方法及系统
CN117067204A (zh) 2023-08-18 2023-11-17 浙江恒逸石化有限公司 控制方法、装置、设备以及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP3969334B2 (ja) 2003-04-04 2007-09-05 株式会社ダイフク 物品の積付方法
EP3650375A1 (de) * 2015-06-02 2020-05-13 Alert Innovation Inc. Speicherungs- und abrufsystem
US9600798B2 (en) * 2015-08-12 2017-03-21 Amazon Technologies, Inc. Automated materials handling facility
JP6737087B2 (ja) 2016-09-07 2020-08-05 株式会社ダイフク 物品積載設備
DE102017000524A1 (de) * 2017-01-20 2018-07-26 Liebherr-Verzahntechnik Gmbh Vorrichtung zum automatisierten Entnehmen von in einem Behälter angeordneten Werkstücken
US10766149B2 (en) * 2018-03-23 2020-09-08 Amazon Technologies, Inc. Optimization-based spring lattice deformation model for soft materials
US10335947B1 (en) * 2019-01-18 2019-07-02 Mujin, Inc. Robotic system with piece-loss management mechanism
US10456915B1 (en) * 2019-01-25 2019-10-29 Mujin, Inc. Robotic system with enhanced scanning mechanism
US10576630B1 (en) * 2019-05-31 2020-03-03 Mujin, Inc. Robotic system with a robot arm suction control mechanism and method of operation thereof
CN112405570A (zh) * 2019-08-21 2021-02-26 牧今科技 用于夹持和保持物体的机器人多夹持器组件和方法
US11020854B2 (en) * 2019-11-05 2021-06-01 Mujin, Inc. Robotic system with wall-based packing mechanism and methods of operating same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021213568A1 (de) 2021-11-30 2023-06-01 Gebhardt Fördertechnik GmbH Lager- und Entnahmesystem sowie Verfahren zum Betreiben eines Lager- und Entnahmesystems

Also Published As

Publication number Publication date
JP2021075395A (ja) 2021-05-20
JP2021074867A (ja) 2021-05-20
CN112589791B (zh) 2022-02-08
JP6771799B1 (ja) 2020-10-21
US11020854B2 (en) 2021-06-01
US20210129333A1 (en) 2021-05-06
CN112775960A (zh) 2021-05-11
US11491654B2 (en) 2022-11-08
CN112589791A (zh) 2021-04-02
KR20210054448A (ko) 2021-05-13
US20230150134A1 (en) 2023-05-18
US20210129334A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
DE102020127473A1 (de) Robotersystem mit wandbasiertem packmechanismus und verfahren zum betreiben dieses systems
DE102019130043B4 (de) Robotersystem mit fehlererkennung und dynamischem packmechanismus
DE102019130902B4 (de) Ein Robotersytem mit dynamischem Packmechanismus
DE102019130923B4 (de) Robotersystem für das palettieren von paketen unter verwendung von echtzeit-platzierungssimulation
DE102019130635B4 (de) Ein robotersystem mit packmechanismus
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
DE102020101767B4 (de) Steuerverfahren und steuerung für ein robotersystem
DE102020116803A1 (de) System und verfahren zur objekterkennung auf der grundlage von bilddaten

Legal Events

Date Code Title Description
R082 Change of representative

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

R073 Re-establishment requested
R074 Re-establishment allowed